diff --git a/dist/chunks/FloatingViewer--x61GAzy.js b/dist/chunks/FloatingViewer-C567UXNF.js similarity index 96% rename from dist/chunks/FloatingViewer--x61GAzy.js rename to dist/chunks/FloatingViewer-C567UXNF.js index d2f4ab0d..c55ac405 100644 --- a/dist/chunks/FloatingViewer--x61GAzy.js +++ b/dist/chunks/FloatingViewer-C567UXNF.js @@ -1,14 +1,14 @@ -import { En as e, Mn as t, Sn as n, Wt as r, Yn as i, cn as a, dn as o, in as s, jn as c, kn as l, mn as u, pn as d, s as f, t as p, u as m, vn as h, wn as g, xn as _ } from "./config-C9a-wT5M.js"; +import { Cn as e, En as t, Kt as n, Nn as r, On as i, Pn as a, Zn as o, bn as s, gn as c, hn as l, jn as u, on as d, pn as f, s as p, t as m, u as h, un as g, wn as _ } from "./config-D56TZeFo.js"; import { a as v, i as y, o as b, s as x } from "./graphTraversal-DTdQWkn5.js"; -import { c as S, l as C, m as w, p as ee, s as T, t as E, u as D, v as O } from "./generationSectionState-DuXxSw-j.js"; +import { c as S, l as C, m as w, p as ee, s as T, t as E, u as D, v as O } from "./generationSectionState-BR-TS47u.js"; import { r as k } from "./events-1iwo5blr.js"; -import { C as A, D as j, E as M, T as N, _ as P, a as F, b as I, d as L, f as R, g as z, h as B, m as te, n as V, o as ne, p as H, r as re, s as ie, t as U, v as ae, w as oe, y as se } from "./tooltipShortcuts-Ury2eTek.js"; -import { I as ce } from "./mjr-primevue-C07IsEdU.js"; -import { C as le, S as ue, n as de, t as fe, w as pe } from "./genInfo-Dk8cerKp.js"; +import { C as A, D as j, E as M, T as N, _ as P, a as F, b as I, d as L, f as R, g as z, h as B, m as te, n as V, o as ne, p as H, r as re, s as ie, t as U, v as ae, w as oe, y as se } from "./tooltipShortcuts-BoJmznCQ.js"; +import { I as ce } from "./mjr-primevue-QrNPJaqR.js"; +import { C as le, S as ue, n as de, t as fe, w as pe } from "./genInfo-z8Muj1-U.js"; // ui/features/viewer/videoSync.ts var me = () => { try { - return !!p?.DEBUG_VIEWER; + return !!m?.DEBUG_VIEWER; } catch { return !1; } @@ -592,7 +592,7 @@ function G(e) { return a === ".gif" ? "gif" : Me.has(a) ? "video" : Ne.has(a) ? "audio" : ue.has(a) ? "model3d" : "image"; } function Fe(e) { - return e ? e.url ? String(e.url) : e.filename && i(e) || "" : ""; + return e ? e.url ? String(e.url) : e.filename && o(e) || "" : ""; } function K(e = "No media - select assets in the grid") { let t = document.createElement("div"); @@ -743,7 +743,7 @@ function J(e, { fill: t = !1, controls: n = !0, initialMuted: r = !1, initialPla canvasClassName: `mjr-mfv-media mjr-model3d-render-canvas${t ? " mjr-mfv-media--fill" : ""}`, hintText: "Rotate: left drag Pan: right drag Zoom: wheel or middle drag", disableViewerTransform: !0, - pauseDuringExecution: !!p.FLOATING_VIEWER_PAUSE_DURING_EXECUTION + pauseDuringExecution: !!m.FLOATING_VIEWER_PAUSE_DURING_EXECUTION }); let l = document.createElement("img"); return l.className = s, l.src = a, l.alt = String(e?.filename || ""), l.draggable = !1, (o === "gif" || c) && Ae(l, e, { kind: o === "gif" ? "gif" : "animated-image" }) || l; @@ -905,12 +905,12 @@ var nt = class { let t = e?.widgets?.[0], i = t?.inputEl ?? t?.element ?? t?.el ?? null; i != null && "value" in i && i.value !== n.value && (i.value = n.value), r(); try { - l(e); + u(e); } catch {} }), n._mjrAutoFit = r, this._noteTextarea = n, this._autoFits.push(r), c.appendChild(n), this._body = c, t.appendChild(c), this._el = t, this._applyExpandedState(), requestAnimationFrame(r), t; } - let u = e.widgets ?? [], d = !1; - for (let t of u) { + let l = e.widgets ?? [], d = !1; + for (let t of l) { let n = String(t.type || "").toLowerCase(); if (We.has(n) || t.hidden || t.options?.hidden) continue; d = !0; @@ -952,7 +952,7 @@ var nt = class { } let e = this._node; if (e) try { - d(e, { + l(e, { select: !1, focusCanvas: !1 }); @@ -1085,7 +1085,7 @@ var it = class { }; function at() { try { - return h(); + return s(); } catch { return null; } @@ -1135,14 +1135,14 @@ function ut(e, t, n) { } function dt(e) { try { - d(e); + l(e); } catch (e) { console.debug?.("[MFV] _focusNode", e); } } function ft() { try { - return n(); + return _(); } catch (e) { console.debug?.("[MFV] _getSelectedNodeIds", e); } @@ -1168,66 +1168,66 @@ function ht(e) { } } function gt(e) { - return g(e); + return t(e); } function _t(e) { - let t = h(); + let t = s(); if (!e || !t || typeof t.add != "function") return !1; let n = String(e?.type || e?.class_type || e?.comfyClass || "").trim(), r = null; try { - r = o(n); + r = f(n); } catch (e) { console.debug?.("[MFV Graph Map] createNode failed", e); } if (!r) return !1; try { let t = typeof structuredClone == "function" ? structuredClone(e) : JSON.parse(JSON.stringify(e)); - return St(t, e), delete t.id, Array.isArray(t.pos) && (t.pos = [Number(t.pos[0] || 0) + 32, Number(t.pos[1] || 0) + 32]), typeof r.configure == "function" ? r.configure(t) : Object.assign(r, t), a(r); + return St(t, e), delete t.id, Array.isArray(t.pos) && (t.pos = [Number(t.pos[0] || 0) + 32, Number(t.pos[1] || 0) + 32]), typeof r.configure == "function" ? r.configure(t) : Object.assign(r, t), g(r); } catch (e) { return console.debug?.("[MFV Graph Map] import node failed", e), !1; } } function vt(e) { - let n = yt(); - if (!e || !n) return { + let t = yt(); + if (!e || !t) return { ok: !1, count: 0, reason: "no-target" }; - let r = bt(e), i = Array.isArray(n.widgets) ? n.widgets : []; - if (!r.length || !i.length) return { + let n = bt(e), r = Array.isArray(t.widgets) ? t.widgets : []; + if (!n.length || !r.length) return { ok: !1, count: 0, reason: "no-widgets" }; - let a = /* @__PURE__ */ new Map(); - i.forEach((e, t) => { - for (let n of wt(e)) a.has(n) || a.set(n, { + let i = /* @__PURE__ */ new Map(); + r.forEach((e, t) => { + for (let n of wt(e)) i.has(n) || i.set(n, { widget: e, index: t }); }); - let o = Et(B(e)), s = Et(n?.type || n?.comfyClass || n?.class_type), c = !!(o && s && o === s), l = /* @__PURE__ */ new Set(), u = 0; - for (let e of r) { - let t = Tt(e.label), r = t ? a.get(t) : null, o = e.index; - if ((!r || l.has(r.index)) && c && typeof o == "number" && Number.isInteger(o)) { - let e = i[o]; - e && (r = { + let o = Et(B(e)), s = Et(t?.type || t?.comfyClass || t?.class_type), c = !!(o && s && o === s), l = /* @__PURE__ */ new Set(), u = 0; + for (let e of n) { + let n = Tt(e.label), a = n ? i.get(n) : null, o = e.index; + if ((!a || l.has(a.index)) && c && typeof o == "number" && Number.isInteger(o)) { + let e = r[o]; + e && (a = { widget: e, index: o }); } - r && !l.has(r.index) && ne(r.widget, X(e.value), n) && (l.add(r.index), u += 1); + a && !l.has(a.index) && ne(a.widget, X(e.value), t) && (l.add(a.index), u += 1); } - return t(), { + return a(), { ok: u > 0, count: u, reason: u > 0 ? "ok" : "no-match", - targetNode: n + targetNode: t }; } function yt() { - return u() || null; + return c() || null; } function bt(e) { let t = te(e); @@ -1735,14 +1735,14 @@ var Ht = 16, Ut = 250, Wt = class { let t = document.createElement("div"); t.className = "mjr-ws-sidebar-header"; let n = document.createElement("span"); - n.className = "mjr-ws-sidebar-title", n.textContent = s("workflowSidebar.nodes", "Nodes"), t.appendChild(n); + n.className = "mjr-ws-sidebar-title", n.textContent = d("workflowSidebar.nodes", "Nodes"), t.appendChild(n); let r = document.createElement("button"); - r.type = "button", r.className = "mjr-icon-btn", r.title = s("workflowSidebar.close", "Close sidebar"), r.innerHTML = "", r.addEventListener("click", () => { + r.type = "button", r.className = "mjr-icon-btn", r.title = d("workflowSidebar.close", "Close sidebar"), r.innerHTML = "", r.addEventListener("click", () => { let e = this._activeMode === "graph"; this.hide(), e && this._onCloseGraphMap?.(), this._onClose?.(); }), t.appendChild(r), e.appendChild(t); let i = document.createElement("div"); - i.className = "mjr-ws-tab-bar", this._nodesModeBtn = this._makeModeButton(s("workflowSidebar.nodes", "Nodes"), "pi pi-sliders-h", "nodes"), this._graphModeBtn = this._makeModeButton(s("workflowSidebar.graphMap", "Graph Map"), "pi pi-sitemap", "graph"), i.appendChild(this._nodesModeBtn), i.appendChild(this._graphModeBtn), e.appendChild(i); + i.className = "mjr-ws-tab-bar", this._nodesModeBtn = this._makeModeButton(d("workflowSidebar.nodes", "Nodes"), "pi pi-sliders-h", "nodes"), this._graphModeBtn = this._makeModeButton(d("workflowSidebar.graphMap", "Graph Map"), "pi pi-sitemap", "graph"), i.appendChild(this._nodesModeBtn), i.appendChild(this._graphModeBtn), e.appendChild(i); let a = document.createElement("div"); return a.className = "mjr-ws-sidebar-resizer", a.setAttribute("role", "separator"), a.setAttribute("aria-orientation", "vertical"), a.setAttribute("aria-hidden", "true"), e.appendChild(a), this._bindResize(a), this._body = document.createElement("div"), this._body.className = "mjr-ws-sidebar-body", e.appendChild(this._body), this._renderActiveMode(), e; } @@ -1834,7 +1834,7 @@ var Q = Object.freeze({ "latent2rgb", "taesd", "none" -]), Jt = "progress-update", Yt = (e, t = "") => s(e, t, void 0); +]), Jt = "progress-update", Yt = (e, t = "") => d(e, t, void 0); function Xt() { let t = document.createElement("div"); t.className = "mjr-mfv-run-controls"; @@ -1842,82 +1842,82 @@ function Xt() { n.type = "button", n.className = "mjr-icon-btn mjr-mfv-run-btn"; let r = Yt("tooltip.queuePrompt", "Queue Prompt (Run)"); n.title = r, n.setAttribute("aria-label", r); - let i = document.createElement("i"); - i.className = "pi pi-play", i.setAttribute("aria-hidden", "true"), n.appendChild(i); - let a = document.createElement("button"); - a.type = "button", a.className = "mjr-icon-btn mjr-mfv-stop-btn"; - let o = document.createElement("i"); - o.className = "pi pi-stop", o.setAttribute("aria-hidden", "true"), a.appendChild(o), t.appendChild(n), t.appendChild(a); - let s = Q.IDLE, c = !1, l = !1, u = null; - function d() { - u != null && (clearTimeout(u), u = null); + let a = document.createElement("i"); + a.className = "pi pi-play", a.setAttribute("aria-hidden", "true"), n.appendChild(a); + let o = document.createElement("button"); + o.type = "button", o.className = "mjr-icon-btn mjr-mfv-stop-btn"; + let s = document.createElement("i"); + s.className = "pi pi-stop", s.setAttribute("aria-hidden", "true"), o.appendChild(s), t.appendChild(n), t.appendChild(o); + let c = Q.IDLE, l = !1, u = !1, d = null; + function f() { + d != null && (clearTimeout(d), d = null); } - function f(e, { canStop: t = !1 } = {}) { - s = e, n.classList.toggle("running", s === Q.RUNNING), n.classList.toggle("stopping", s === Q.STOPPING), n.classList.toggle("error", s === Q.ERROR), n.disabled = s === Q.RUNNING || s === Q.STOPPING, a.disabled = !t || s === Q.STOPPING, a.classList.toggle("active", t && s !== Q.STOPPING), a.classList.toggle("stopping", s === Q.STOPPING), s === Q.RUNNING || s === Q.STOPPING ? i.className = "pi pi-spin pi-spinner" : i.className = "pi pi-play"; + function p(e, { canStop: t = !1 } = {}) { + c = e, n.classList.toggle("running", c === Q.RUNNING), n.classList.toggle("stopping", c === Q.STOPPING), n.classList.toggle("error", c === Q.ERROR), n.disabled = c === Q.RUNNING || c === Q.STOPPING, o.disabled = !t || c === Q.STOPPING, o.classList.toggle("active", t && c !== Q.STOPPING), o.classList.toggle("stopping", c === Q.STOPPING), c === Q.RUNNING || c === Q.STOPPING ? a.className = "pi pi-spin pi-spinner" : a.className = "pi pi-play"; } - function p() { + function m() { let e = Yt("tooltip.queueStop", "Stop Generation"); - a.title = e, a.setAttribute("aria-label", e); + o.title = e, o.setAttribute("aria-label", e); } - function m(e = j.getSnapshot(), { authoritative: t = !1 } = {}) { + function h(e = j.getSnapshot(), { authoritative: t = !1 } = {}) { let n = Math.max(0, Number(e?.queue) || 0), r = e?.prompt || null, i = !!r?.currentlyExecuting, a = !!(r && (r.currentlyExecuting || r.errorDetails)), o = n > 0 || a, s = !!r?.errorDetails; - t && n === 0 && !r && (c = !1, l = !1); - let u = c || l || i || n > 0; - if ((i || o || n > 0) && (c = !1), s) l = !1, d(), f(Q.ERROR, { canStop: !1 }); - else if (l) { - if (!u) { - l = !1, m(e); + t && n === 0 && !r && (l = !1, u = !1); + let c = l || u || i || n > 0; + if ((i || o || n > 0) && (l = !1), s) u = !1, f(), p(Q.ERROR, { canStop: !1 }); + else if (u) { + if (!c) { + u = !1, h(e); return; } - f(Q.STOPPING, { canStop: !1 }); - } else c || i || o || n > 0 ? (d(), f(Q.RUNNING, { canStop: !0 })) : (d(), f(Q.IDLE, { canStop: !1 })); + p(Q.STOPPING, { canStop: !1 }); + } else l || i || o || n > 0 ? (f(), p(Q.RUNNING, { canStop: !0 })) : (f(), p(Q.IDLE, { canStop: !1 })); } - function h() { - c = !1, l = !1, d(), f(Q.ERROR, { canStop: !1 }), u = setTimeout(() => { - u = null, m(); + function g() { + l = !1, u = !1, f(), p(Q.ERROR, { canStop: !1 }), d = setTimeout(() => { + d = null, h(); }, 1500); } - async function g() { - return { tracked: await e(_()) }; + async function _() { + return { tracked: await i(e()) }; } async function v() { - if (s !== Q.RUNNING && s !== Q.STOPPING) { - c = !0, l = !1, m(); + if (c !== Q.RUNNING && c !== Q.STOPPING) { + l = !0, u = !1, h(); try { - (await nn())?.tracked || (c = !1), m(); + (await nn())?.tracked || (l = !1), h(); } catch (e) { - console.error?.("[MFV Run]", e), h(); + console.error?.("[MFV Run]", e), g(); } } } async function y() { - if (s === Q.RUNNING) { - l = !0, m(); + if (c === Q.RUNNING) { + u = !0, h(); try { - (await g())?.tracked || (l = !1, c = !1), m(); + (await _())?.tracked || (u = !1, l = !1), h(); } catch (e) { - console.error?.("[MFV Stop]", e), l = !1, m(); + console.error?.("[MFV Stop]", e), u = !1, h(); } } } - p(), a.disabled = !0, n.addEventListener("click", v), a.addEventListener("click", y); + m(), o.disabled = !0, n.addEventListener("click", v), o.addEventListener("click", y); let b = (e) => { - m(e?.detail || j.getSnapshot(), { authoritative: !0 }); + h(e?.detail || j.getSnapshot(), { authoritative: !0 }); }; return j.addEventListener(Jt, b), M({ timeoutMs: 4e3 }).catch((e) => { console.debug?.(e); - }), m(), { + }), h(), { el: t, dispose() { - d(), n.removeEventListener("click", v), a.removeEventListener("click", y), j.removeEventListener(Jt, b); + f(), n.removeEventListener("click", v), o.removeEventListener("click", y), j.removeEventListener(Jt, b); } }; } -function Zt(e = p.MFV_PREVIEW_METHOD) { +function Zt(e = m.MFV_PREVIEW_METHOD) { let t = String(e || "").trim().toLowerCase(); - return qt.has(t) ? t : p.MFV_PREVIEW_METHOD || "auto"; + return qt.has(t) ? t : m.MFV_PREVIEW_METHOD || "auto"; } -function Qt(e, t = p.MFV_PREVIEW_METHOD) { +function Qt(e, t = m.MFV_PREVIEW_METHOD) { let n = Zt(t), r = { ...e?.extra_data || {}, extra_pnginfo: { ...e?.extra_data?.extra_pnginfo || {} } @@ -1927,7 +1927,7 @@ function Qt(e, t = p.MFV_PREVIEW_METHOD) { extra_data: r }; } -function $t(e, { previewMethod: t = p.MFV_PREVIEW_METHOD, clientId: n = null } = {}) { +function $t(e, { previewMethod: t = m.MFV_PREVIEW_METHOD, clientId: n = null } = {}) { let r = Qt(e, t), i = { prompt: r?.output, extra_data: r?.extra_data || {} @@ -1950,12 +1950,12 @@ function tn(e) { }), t; } async function nn() { - let e = _(); - if (!e) throw Error("ComfyUI app not available"); - let t = tn(v(e)); - return { tracked: await c({ - app: e, - forceNativeQueue: t, + let t = e(); + if (!t) throw Error("ComfyUI app not available"); + let n = tn(v(t)); + return { tracked: await r({ + app: t, + forceNativeQueue: n, resolvePromptData(e) { return typeof e?.graphToPrompt == "function" ? e.graphToPrompt() : null; }, @@ -2083,7 +2083,7 @@ function dn(e) { let i = document.createElement("span"); i.textContent = "Majoor Floating Viewer", n.append(r, i); let a = document.createElement("button"); - e._closeBtn = a, a.type = "button", a.className = "mjr-icon-btn mjr-mfv-close-btn", V(a, s("tooltip.closeViewer", "Close viewer"), "Esc"); + e._closeBtn = a, a.type = "button", a.className = "mjr-icon-btn mjr-mfv-close-btn", V(a, d("tooltip.closeViewer", "Close viewer"), "Esc"); let o = document.createElement("i"); return o.className = "pi pi-times", o.setAttribute("aria-hidden", "true"), a.appendChild(o), t.appendChild(n), t.appendChild(a), t; } @@ -2101,31 +2101,31 @@ function fn(e) { }; }, n = document.createElement("div"); n.className = "mjr-mfv-toolbar"; - let r = on("", s("viewer.mode", "Viewer mode"), [ + let r = on("", d("viewer.mode", "Viewer mode"), [ { value: W.SIMPLE, - html: `${s("viewer.mode.simple", "Simple")}` + html: `${d("viewer.mode.simple", "Simple")}` }, { value: W.AB, - html: `${s("viewer.mode.abCompare", "A/B Compare")}` + html: `${d("viewer.mode.abCompare", "A/B Compare")}` }, { value: W.SIDE, - html: `${s("viewer.mode.sideBySide", "Side-by-side")}` + html: `${d("viewer.mode.sideBySide", "Side-by-side")}` }, { value: W.GRID, - html: `${s("viewer.mode.grid", "Grid")}` + html: `${d("viewer.mode.grid", "Grid")}` }, { value: W.GRAPH, - html: `${s("workflowSidebar.graphMap", "Graph Map")}` + html: `${d("workflowSidebar.graphMap", "Graph Map")}` } ], e); e._modeDrop = r, e._modeBtn = r.trigger, e._modeSelect = r.select, e._updateModeBtnUI(), n.appendChild(r.wrap); let i = document.createElement("button"); - i.type = "button", i.className = "mjr-icon-btn mjr-mfv-pin-trigger", i.title = s("viewer.pinSlots", "Pin slots A/B/C/D"), i.setAttribute("aria-haspopup", "dialog"), i.setAttribute("aria-expanded", "false"), i.innerHTML = "", n.appendChild(i); + i.type = "button", i.className = "mjr-icon-btn mjr-mfv-pin-trigger", i.title = d("viewer.pinSlots", "Pin slots A/B/C/D"), i.setAttribute("aria-haspopup", "dialog"), i.setAttribute("aria-expanded", "false"), i.innerHTML = "", n.appendChild(i); let a = document.createElement("div"); a.className = "mjr-mfv-pin-popover", e.element.appendChild(a); let o = document.createElement("div"); @@ -2144,25 +2144,25 @@ function fn(e) { i.className = "pi pi-map-marker mjr-menu-item-check", i.style.opacity = "0", n.appendChild(r), n.appendChild(i), o.appendChild(n), e._pinBtns[t] = n; } e._updatePinUI(), e._pinBtn = i, e._pinPopover = a; - let c = () => { + let s = () => { let t = i.getBoundingClientRect(), n = e.element.getBoundingClientRect(); a.style.left = `${t.left - n.left}px`, a.style.top = `${t.bottom - n.top + 4}px`, a.classList.add("is-open"), i.setAttribute("aria-expanded", "true"); }; e._closePinPopover = () => { a.classList.remove("is-open"), i.setAttribute("aria-expanded", "false"); }, i.addEventListener("click", (t) => { - t.stopPropagation(), a.classList.contains("is-open") ? e._closePinPopover() : (e._closeAllToolbarPopovers?.(), c()); + t.stopPropagation(), a.classList.contains("is-open") ? e._closePinPopover() : (e._closeAllToolbarPopovers?.(), s()); }); - let l = document.createElement("button"); - l.type = "button", l.className = "mjr-icon-btn mjr-mfv-guides-trigger", l.title = "Guides", l.setAttribute("aria-haspopup", "listbox"), l.setAttribute("aria-expanded", "false"); - let u = document.createElement("img"); - u.src = new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKi0lEQVR4nO2d+28dxRXH58dSQIW2gIoqpP7YX4qqUtLS2A4xNIQCMQTHTlOgCZDEia/vtR3b+O3r2PEjNnbiujFuo6oFU6DQl1rRpqjlEWiiUlQU+Hu+1Vjfg45Wd2d87fXYjPZIR7u5dnbn7mfPzHnt2phccskll1xyySWXXHLJJZfIBcBXAbQAWADwCwBlALXbYFzfBHAQwAkARwDsBnC9iVn4Zf8L4BMA1wB8DOB/AD4CsALg9i0Y01cA9AG4COCXAJYBvADgAoBZADUmRgHQA+BTwrgC4C8A/gjg7wA+pP4NwK0Bx3QTL/pFWus8gLPUc7Riu603MQmA79AiPiEIe/f9HMAi1d6Z7wG4CuB8wHG1E8YSgNMARgAMAxiiTgCYAzAD4GsmFuEUYGH8qwKMn1EvAvg3gA8A3BFgTLfxRrCWMVYBxiCAAQCTBNJsYhEAl2khKykw7NRwHsAlAO/bxTXAmO4jkAUHjAF+bqewXhOLcPH+mBcgDcZ5rikWXluAMT3GBXzOAaOf/7ZWMmZiEeVNLTtgnAPwewDv2rk9wJj2cyqddcAQPQNg3MQiyrVddsCYB/AGgHcAlAIBucDpKA1GH3XcLvomFiGMj3hHpsGYB/A6gLcBFANNWdZapx0werm1HtioiUUI40MCSYMxB+B3AP4JoBBgTA0cy5QDhuioXWdMLEIY/6G/nwZjDsBrAN4KBGQfxzDhgPEct3bRHzSxCGFcpcubBuN5AK8C+AeAkwHG9AjPe8YBQ9ROaf0mFiGMKwSSBmMWwCuMRU4EGNNDPO+4A0YPtT+2OOQKo/BFB4xZAL9lbqslEJAZRulpMLq5Xf3cxCKE8T49rDQYMwBeBvAmgGMBxvQgXd5RBwxR+1m3iUUI4zKBpMGYAfASgL8GArKXEXjZAaOLavc7zXYTAN+m63pZpUMk6BPXVhZwmaYExrt0M9NgnAXwIrPBfwbwJwB/YPT+Ol3iVzmtrRDebwD8GsCvUuoZiyqFLueVc01yQR/xwDhlYSS2yf2kdtibitBv2SwYPSqFfm0dMN7hxUmDMc0LHBLGOKP0LGGI6mPcvRmVvk9VCn2FaesXqEtUuRCSr1pQet4DY5oqn01RJ6kTvIhyIce5IJ+mlpWOqAzuYIVIXFIisna4YHTyju9g/aSU0KJNhlILAFqVdqjj3ZkVjFtV2bVSccmVm3It4EkYUwrARAUAYwkAoykAXIlClzdVDYyiAlFQIE5ST1Bb+Hvd/N0vZAGkRZVdcxioCsZxaifPsXEr4QW/Ru8nh4GqYRxTVrInCyDLXMBt8SiHgaphHOPv2nM9nAWQMr0pG0HnMFA1jKM8hj1vXRZAapVba13LHAaqgnFMnfPrGwZCKCsE8h59/q2EMfw5gnGc57DnbMoEBoHczia2qwz4LiWCtzdUAPcag7hXEoHciyq+SIMxn4hlxBJ1cCeg5VhyHIE5quAJtAEFSeB0rRFGkZ/Lz9tT4hH5P7LfoW4CC+aGzIAQyi28OB9UiMDfZqXvLdYzLnHNeZPemaRDZjyWccERgS9VGYGLdUlwuJpCl0RhIgJ3WUZbSgSuVaxOJyQFui2EXZcpjASYO9iULAuVDCr5xbSZSzrkrGeaWiQMexEPAfgxz9UM4ACARjYn2Hr4oyzD7mOx6UdUm8V9wLqYAO5n/1U9gHsB7KLW8LhiIa5pSgPZxePcmzie/mw3j/8tAF8y21HU9DbtWTMWaRlNAcZ0j7IQ15pREMswsYhaa6Y9C/gCp6nGAGP6gcrMuhbwVpkFTCyisrZTHm/qHNeM/YGAyDTr8qaiBCIe2JTHtZ3nAr4/4JTV4XFtT8YIROoZk544Y47p/McCT1muOCNKIFJcmvAEfc/TtW0ICKTdE/SdEJfWxCIqQJzwpENm6WntCzCmnQkgaRF4i8QZJhZR0fq4Jx1ylp7WIwGBdHjSIS0xWojUwMc9ualpeloPBbYQV27quETfJhZR6ZAxT6Jwigt7SCAlT6IwSiCSmzrtydpOcGF/MLCFuLK2kj7vMbGIShSe9qTQzzBRuDcQkC5aiCuFflSytiYWUVnbUU89Y5wL+wMBxlSjgKTBeJbb6CxEUuhlT3FpjMHjnsAWkgZDdLUL3sQiqp5R9lT6Rjlt3R/YQtJgPKOmrKiASHFpxFN2LXPaui8wkDQYzygLiepxBKn0jXhq4CNc+OsDAelmYjENxtPcrpZ9TSyiyq7DnoaEIU5buwOMqVZZSBqMI9yPzkKkBj7k6Q4ZJLRdgYCIhaTBOML91c4VE4uohoQhT6vOAKHUbQGQSjAOxwpEukMGPX1Tffx5beA1JA3GYe6vPh5tYhHVqjPgaWLrpdYEspAeFqfSYPyU29VxmVhE9U31ezoKn6PuDDCmOmUhaTCeihWINLH1edo7e7h/T0ALKTpgPMX97QuEb2KrVw1qD/OZb2lS28smtR+qRjXpKOzz9Np2sRPENsTdTd2R2Bf9XgXVn3+fjQyyTepBNWWlwXhSWwjXnZ3c1hBqndqK2ua5uwDcvNkvjGxnXmq97Z29m/yAZdca2jtl26OApMF4UllIX0L7Ey68xFeDSofYdZl5X++XE2/vXFhn4/NaHrDsrNAErXU9jc+6cVo/qFlkpjcNxhNU/VCnaPLfSe1UcZU9541ZApH32i7xQn+eHgl41hNnuGD8hCp9xtJrLP3GTdQDqvf4cep+/j95m9DhLN/4LJZh80w5DKwJhjSFN/N62VniG1kAOcg1w3YV5jBQFYxHqW2cujdeeOMXXmZHSA4DVcNo4JjKmXT180ssqZdF5jBQFYwGjrWcSYssfeoLKlubw0BVMBp4PazHuSMLINfTvV1Q7yfMYWBNMPZxnKO8Vl/cMBBCqVFB32Tiub3ki1z0q/G61wGjrcKLXDSUlgpQjlaA8nQCShKMwHliDTCqBdTI47UThtXvZgJDQalPPOa8ngcsfTDaM4zA5cbQL7PsraCFNcCoFIEPKa9T3NqRxFuJJDDenHKC/ZMNHGgvA8Qsn3Yt8OchYfTxvK5p6uA6YAzzO1hLuc1sN1FQfGtGO38vRD1kN4G0eqakz4CYWETd9b4FvEQL2BkQSMGzPjSLZZhYRE1Z7R5vqp1AarYASNpi3STTlIlF1JRV8ri2pcBA+jkGl+ckQIZjnbJccUYpMJABjsHlxh6QxdtECKToCfpKBBKi66SeFtLqiSmiBtLmicBLdGFrA09Zrgi8UVxbEykQVzqkFNhCBhSQtHRIo8QZJkIgBU9uqkgLqQkMxJWbEiBlEyGQVk+isBRwyqpnfNHqSRQ+LhG4iUVUSqTVk7UtEUiIwHAXgRQ8WdtGSYeYWIQXu0sBSUuhdzAHdWeAMd1FIJ2eFPohAjllYhE2z3XxgrteGNlDC7kpwJhuVgW3Q456hqTQN/0dXsGE72uUDG4x5VWqpwijIeC4pCOkl/vJSp8Ul8rbMmu7EWEr6Gd/HEUFibJudPMCXBdwTDfw/JJGL/IGaVFl19EQTsaWiF0bGItUqmc0Zd5yubYx3cgqYqXiUn/mlb7tJvZPNhDMHs7RdZm98XkDYpvY+DbTZq4nOzKrgeeSSy655JJLLrnkkksuuZjtK/8HkUQ57PG6Io0AAAAASUVORK5CYII=", "" + import.meta.url).href, u.className = "mjr-mfv-guides-icon", u.alt = "", u.setAttribute("aria-hidden", "true"), l.appendChild(u), n.appendChild(l); - let d = document.createElement("div"); - d.className = "mjr-mfv-guides-popover", e.element.appendChild(d); + let c = document.createElement("button"); + c.type = "button", c.className = "mjr-icon-btn mjr-mfv-guides-trigger", c.title = "Guides", c.setAttribute("aria-haspopup", "listbox"), c.setAttribute("aria-expanded", "false"); + let l = document.createElement("img"); + l.src = new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKi0lEQVR4nO2d+28dxRXH58dSQIW2gIoqpP7YX4qqUtLS2A4xNIQCMQTHTlOgCZDEia/vtR3b+O3r2PEjNnbiujFuo6oFU6DQl1rRpqjlEWiiUlQU+Hu+1Vjfg45Wd2d87fXYjPZIR7u5dnbn7mfPzHnt2phccskll1xyySWXXHLJJZfIBcBXAbQAWADwCwBlALXbYFzfBHAQwAkARwDsBnC9iVn4Zf8L4BMA1wB8DOB/AD4CsALg9i0Y01cA9AG4COCXAJYBvADgAoBZADUmRgHQA+BTwrgC4C8A/gjg7wA+pP4NwK0Bx3QTL/pFWus8gLPUc7Riu603MQmA79AiPiEIe/f9HMAi1d6Z7wG4CuB8wHG1E8YSgNMARgAMAxiiTgCYAzAD4GsmFuEUYGH8qwKMn1EvAvg3gA8A3BFgTLfxRrCWMVYBxiCAAQCTBNJsYhEAl2khKykw7NRwHsAlAO/bxTXAmO4jkAUHjAF+bqewXhOLcPH+mBcgDcZ5rikWXluAMT3GBXzOAaOf/7ZWMmZiEeVNLTtgnAPwewDv2rk9wJj2cyqddcAQPQNg3MQiyrVddsCYB/AGgHcAlAIBucDpKA1GH3XcLvomFiGMj3hHpsGYB/A6gLcBFANNWdZapx0werm1HtioiUUI40MCSYMxB+B3AP4JoBBgTA0cy5QDhuioXWdMLEIY/6G/nwZjDsBrAN4KBGQfxzDhgPEct3bRHzSxCGFcpcubBuN5AK8C+AeAkwHG9AjPe8YBQ9ROaf0mFiGMKwSSBmMWwCuMRU4EGNNDPO+4A0YPtT+2OOQKo/BFB4xZAL9lbqslEJAZRulpMLq5Xf3cxCKE8T49rDQYMwBeBvAmgGMBxvQgXd5RBwxR+1m3iUUI4zKBpMGYAfASgL8GArKXEXjZAaOLavc7zXYTAN+m63pZpUMk6BPXVhZwmaYExrt0M9NgnAXwIrPBfwbwJwB/YPT+Ol3iVzmtrRDebwD8GsCvUuoZiyqFLueVc01yQR/xwDhlYSS2yf2kdtibitBv2SwYPSqFfm0dMN7hxUmDMc0LHBLGOKP0LGGI6mPcvRmVvk9VCn2FaesXqEtUuRCSr1pQet4DY5oqn01RJ6kTvIhyIce5IJ+mlpWOqAzuYIVIXFIisna4YHTyju9g/aSU0KJNhlILAFqVdqjj3ZkVjFtV2bVSccmVm3It4EkYUwrARAUAYwkAoykAXIlClzdVDYyiAlFQIE5ST1Bb+Hvd/N0vZAGkRZVdcxioCsZxaifPsXEr4QW/Ru8nh4GqYRxTVrInCyDLXMBt8SiHgaphHOPv2nM9nAWQMr0pG0HnMFA1jKM8hj1vXRZAapVba13LHAaqgnFMnfPrGwZCKCsE8h59/q2EMfw5gnGc57DnbMoEBoHczia2qwz4LiWCtzdUAPcag7hXEoHciyq+SIMxn4hlxBJ1cCeg5VhyHIE5quAJtAEFSeB0rRFGkZ/Lz9tT4hH5P7LfoW4CC+aGzIAQyi28OB9UiMDfZqXvLdYzLnHNeZPemaRDZjyWccERgS9VGYGLdUlwuJpCl0RhIgJ3WUZbSgSuVaxOJyQFui2EXZcpjASYO9iULAuVDCr5xbSZSzrkrGeaWiQMexEPAfgxz9UM4ACARjYn2Hr4oyzD7mOx6UdUm8V9wLqYAO5n/1U9gHsB7KLW8LhiIa5pSgPZxePcmzie/mw3j/8tAF8y21HU9DbtWTMWaRlNAcZ0j7IQ15pREMswsYhaa6Y9C/gCp6nGAGP6gcrMuhbwVpkFTCyisrZTHm/qHNeM/YGAyDTr8qaiBCIe2JTHtZ3nAr4/4JTV4XFtT8YIROoZk544Y47p/McCT1muOCNKIFJcmvAEfc/TtW0ICKTdE/SdEJfWxCIqQJzwpENm6WntCzCmnQkgaRF4i8QZJhZR0fq4Jx1ylp7WIwGBdHjSIS0xWojUwMc9ualpeloPBbYQV27quETfJhZR6ZAxT6Jwigt7SCAlT6IwSiCSmzrtydpOcGF/MLCFuLK2kj7vMbGIShSe9qTQzzBRuDcQkC5aiCuFflSytiYWUVnbUU89Y5wL+wMBxlSjgKTBeJbb6CxEUuhlT3FpjMHjnsAWkgZDdLUL3sQiqp5R9lT6Rjlt3R/YQtJgPKOmrKiASHFpxFN2LXPaui8wkDQYzygLiepxBKn0jXhq4CNc+OsDAelmYjENxtPcrpZ9TSyiyq7DnoaEIU5buwOMqVZZSBqMI9yPzkKkBj7k6Q4ZJLRdgYCIhaTBOML91c4VE4uohoQhT6vOAKHUbQGQSjAOxwpEukMGPX1Tffx5beA1JA3GYe6vPh5tYhHVqjPgaWLrpdYEspAeFqfSYPyU29VxmVhE9U31ezoKn6PuDDCmOmUhaTCeihWINLH1edo7e7h/T0ALKTpgPMX97QuEb2KrVw1qD/OZb2lS28smtR+qRjXpKOzz9Np2sRPENsTdTd2R2Bf9XgXVn3+fjQyyTepBNWWlwXhSWwjXnZ3c1hBqndqK2ua5uwDcvNkvjGxnXmq97Z29m/yAZdca2jtl26OApMF4UllIX0L7Ey68xFeDSofYdZl5X++XE2/vXFhn4/NaHrDsrNAErXU9jc+6cVo/qFlkpjcNxhNU/VCnaPLfSe1UcZU9541ZApH32i7xQn+eHgl41hNnuGD8hCp9xtJrLP3GTdQDqvf4cep+/j95m9DhLN/4LJZh80w5DKwJhjSFN/N62VniG1kAOcg1w3YV5jBQFYxHqW2cujdeeOMXXmZHSA4DVcNo4JjKmXT180ssqZdF5jBQFYwGjrWcSYssfeoLKlubw0BVMBp4PazHuSMLINfTvV1Q7yfMYWBNMPZxnKO8Vl/cMBBCqVFB32Tiub3ki1z0q/G61wGjrcKLXDSUlgpQjlaA8nQCShKMwHliDTCqBdTI47UThtXvZgJDQalPPOa8ngcsfTDaM4zA5cbQL7PsraCFNcCoFIEPKa9T3NqRxFuJJDDenHKC/ZMNHGgvA8Qsn3Yt8OchYfTxvK5p6uA6YAzzO1hLuc1sN1FQfGtGO38vRD1kN4G0eqakz4CYWETd9b4FvEQL2BkQSMGzPjSLZZhYRE1Z7R5vqp1AarYASNpi3STTlIlF1JRV8ri2pcBA+jkGl+ckQIZjnbJccUYpMJABjsHlxh6QxdtECKToCfpKBBKi66SeFtLqiSmiBtLmicBLdGFrA09Zrgi8UVxbEykQVzqkFNhCBhSQtHRIo8QZJkIgBU9uqkgLqQkMxJWbEiBlEyGQVk+isBRwyqpnfNHqSRQ+LhG4iUVUSqTVk7UtEUiIwHAXgRQ8WdtGSYeYWIQXu0sBSUuhdzAHdWeAMd1FIJ2eFPohAjllYhE2z3XxgrteGNlDC7kpwJhuVgW3Q456hqTQN/0dXsGE72uUDG4x5VWqpwijIeC4pCOkl/vJSp8Ul8rbMmu7EWEr6Gd/HEUFibJudPMCXBdwTDfw/JJGL/IGaVFl19EQTsaWiF0bGItUqmc0Zd5yubYx3cgqYqXiUn/mlb7tJvZPNhDMHs7RdZm98XkDYpvY+DbTZq4nOzKrgeeSSy655JJLLrnkkksuuZjtK/8HkUQ57PG6Io0AAAAASUVORK5CYII=", "" + import.meta.url).href, l.className = "mjr-mfv-guides-icon", l.alt = "", l.setAttribute("aria-hidden", "true"), c.appendChild(l), n.appendChild(c); + let u = document.createElement("div"); + u.className = "mjr-mfv-guides-popover", e.element.appendChild(u); let f = document.createElement("div"); - f.className = "mjr-menu", f.style.cssText = "display:grid;gap:4px;", d.appendChild(f); + f.className = "mjr-menu", f.style.cssText = "display:grid;gap:4px;", u.appendChild(f); let p = document.createElement("select"); - p.style.cssText = "position:absolute;opacity:0;pointer-events:none;width:0;height:0;overflow:hidden;", d.appendChild(p); + p.style.cssText = "position:absolute;opacity:0;pointer-events:none;width:0;height:0;overflow:hidden;", u.appendChild(p); let m = [ { value: "0", @@ -2191,15 +2191,15 @@ function fn(e) { let i = document.createElement("i"); i.className = "pi pi-check mjr-menu-item-check", i.style.opacity = e.value === h ? "1" : "0", n.appendChild(r), n.appendChild(i), f.appendChild(n), g.push(n), e.value === h && n.classList.add("is-active"); } - p.value = h, l.classList.toggle("is-on", h !== "0"), e._guidesSelect = p, e._guideBtn = l, e._guidePopover = d; + p.value = h, c.classList.toggle("is-on", h !== "0"), e._guidesSelect = p, e._guideBtn = c, e._guidePopover = u; let _ = () => { - let t = l.getBoundingClientRect(), n = e.element.getBoundingClientRect(); - d.style.left = `${t.left - n.left}px`, d.style.top = `${t.bottom - n.top + 4}px`, d.classList.add("is-open"), l.setAttribute("aria-expanded", "true"); + let t = c.getBoundingClientRect(), n = e.element.getBoundingClientRect(); + u.style.left = `${t.left - n.left}px`, u.style.top = `${t.bottom - n.top + 4}px`, u.classList.add("is-open"), c.setAttribute("aria-expanded", "true"); }; e._closeGuidePopover = () => { - d.classList.remove("is-open"), l.setAttribute("aria-expanded", "false"); - }, l.addEventListener("click", (t) => { - t.stopPropagation(), d.classList.contains("is-open") ? e._closeGuidePopover() : (e._closeAllToolbarPopovers?.(), _()); + u.classList.remove("is-open"), c.setAttribute("aria-expanded", "false"); + }, c.addEventListener("click", (t) => { + t.stopPropagation(), u.classList.contains("is-open") ? e._closeGuidePopover() : (e._closeAllToolbarPopovers?.(), _()); }), f.addEventListener("click", (t) => { let n = t.target.closest(".mjr-menu-item"); if (!n) return; @@ -2207,7 +2207,7 @@ function fn(e) { p.value = r ?? "", p.dispatchEvent(new Event("change", { bubbles: !0 })), g.forEach((e) => { let t = e.dataset.value === r; e.classList.toggle("is-active", t), e.querySelector(".mjr-menu-item-check").style.opacity = t ? "1" : "0"; - }), l.classList.toggle("is-on", r !== "0"), e._closeGuidePopover(); + }), c.classList.toggle("is-on", r !== "0"), e._closeGuidePopover(); }); let v = String(e._channel || "rgb"), y = document.createElement("button"); y.type = "button", y.className = "mjr-icon-btn mjr-mfv-ch-trigger", y.title = "Channel", y.setAttribute("aria-haspopup", "listbox"), y.setAttribute("aria-expanded", "false"); @@ -2376,24 +2376,24 @@ function fn(e) { }), e._closeFormatPopover(); }); let L = document.createElement("div"); - L.className = "mjr-mfv-toolbar-sep", L.setAttribute("aria-hidden", "true"), n.appendChild(L), e._liveBtn = document.createElement("button"), e._liveBtn.type = "button", e._liveBtn.className = "mjr-icon-btn", e._liveBtn.innerHTML = "", e._liveBtn.setAttribute("aria-pressed", "false"), V(e._liveBtn, s("tooltip.liveStreamOff", "Live Stream: OFF - click to follow final generation outputs"), "L"), n.appendChild(e._liveBtn), e._previewBtn = document.createElement("button"), e._previewBtn.type = "button", e._previewBtn.className = "mjr-icon-btn", e._previewBtn.innerHTML = "", e._previewBtn.setAttribute("aria-pressed", "false"), V(e._previewBtn, s("tooltip.previewStreamOff", "KSampler Preview: OFF - click to stream sampler denoising frames"), "K"), n.appendChild(e._previewBtn), e._nodeStreamBtn = document.createElement("button"), e._nodeStreamBtn.type = "button", e._nodeStreamBtn.className = "mjr-icon-btn", e._nodeStreamBtn.innerHTML = "", e._nodeStreamBtn.setAttribute("aria-pressed", "false"), V(e._nodeStreamBtn, s("tooltip.nodeStreamOff", "Node Stream: OFF - click to follow selected node previews, including ImageOps live canvases"), "N"), n.appendChild(e._nodeStreamBtn), e._genBtn = document.createElement("button"), e._genBtn.type = "button", e._genBtn.className = "mjr-icon-btn", e._genBtn.setAttribute("aria-pressed", String(!!e._genSidebarEnabled)); + L.className = "mjr-mfv-toolbar-sep", L.setAttribute("aria-hidden", "true"), n.appendChild(L), e._liveBtn = document.createElement("button"), e._liveBtn.type = "button", e._liveBtn.className = "mjr-icon-btn", e._liveBtn.innerHTML = "", e._liveBtn.setAttribute("aria-pressed", "false"), V(e._liveBtn, d("tooltip.liveStreamOff", "Live Stream: OFF - click to follow final generation outputs"), "L"), n.appendChild(e._liveBtn), e._previewBtn = document.createElement("button"), e._previewBtn.type = "button", e._previewBtn.className = "mjr-icon-btn", e._previewBtn.innerHTML = "", e._previewBtn.setAttribute("aria-pressed", "false"), V(e._previewBtn, d("tooltip.previewStreamOff", "KSampler Preview: OFF - click to stream sampler denoising frames"), "K"), n.appendChild(e._previewBtn), e._nodeStreamBtn = document.createElement("button"), e._nodeStreamBtn.type = "button", e._nodeStreamBtn.className = "mjr-icon-btn", e._nodeStreamBtn.innerHTML = "", e._nodeStreamBtn.setAttribute("aria-pressed", "false"), V(e._nodeStreamBtn, d("tooltip.nodeStreamOff", "Node Stream: OFF - click to follow selected node previews, including ImageOps live canvases"), "N"), n.appendChild(e._nodeStreamBtn), e._genBtn = document.createElement("button"), e._genBtn.type = "button", e._genBtn.className = "mjr-icon-btn", e._genBtn.setAttribute("aria-pressed", String(!!e._genSidebarEnabled)); let R = document.createElement("i"); R.className = "pi pi-info-circle", R.setAttribute("aria-hidden", "true"), e._genBtn.appendChild(R), n.appendChild(e._genBtn), e._updateGenBtnUI(), e._popoutBtn = document.createElement("button"), e._popoutBtn.type = "button", e._popoutBtn.className = "mjr-icon-btn"; - let z = s("tooltip.popOutViewer", "Pop out viewer to separate window"); + let z = d("tooltip.popOutViewer", "Pop out viewer to separate window"); e._popoutBtn.title = z, e._popoutBtn.setAttribute("aria-label", z), e._popoutBtn.setAttribute("aria-pressed", "false"); let B = document.createElement("i"); B.className = "pi pi-external-link", B.setAttribute("aria-hidden", "true"), e._popoutBtn.appendChild(B), n.appendChild(e._popoutBtn), e._captureBtn = document.createElement("button"), e._captureBtn.type = "button", e._captureBtn.className = "mjr-icon-btn"; - let te = s("tooltip.captureView", "Save view as image"); + let te = d("tooltip.captureView", "Save view as image"); e._captureBtn.title = te, e._captureBtn.setAttribute("aria-label", te); let ne = document.createElement("i"); ne.className = "pi pi-download", ne.setAttribute("aria-hidden", "true"), e._captureBtn.appendChild(ne), n.appendChild(e._captureBtn); let H = document.createElement("div"); H.className = "mjr-mfv-toolbar-sep", H.style.marginLeft = "auto", H.setAttribute("aria-hidden", "true"), n.appendChild(H), e._settingsBtn = document.createElement("button"), e._settingsBtn.type = "button", e._settingsBtn.className = "mjr-icon-btn mjr-mfv-settings-btn"; - let re = s("tooltip.nodeParams", "Node Parameters"); + let re = d("tooltip.nodeParams", "Node Parameters"); e._settingsBtn.title = re, e._settingsBtn.setAttribute("aria-label", re), e._settingsBtn.setAttribute("aria-pressed", "false"); let ie = document.createElement("i"); ie.className = "pi pi-sliders-h", ie.setAttribute("aria-hidden", "true"), e._settingsBtn.appendChild(ie), n.appendChild(e._settingsBtn), e._runHandle = Xt(), n.appendChild(e._runHandle.el), e._majoorSettingsBtn = document.createElement("button"), e._majoorSettingsBtn.type = "button", e._majoorSettingsBtn.className = "mjr-icon-btn mjr-mfv-majoor-settings-btn"; - let U = s("tooltip.openMajoorSettings", "Open Majoor Assets Manager settings"); + let U = d("tooltip.openMajoorSettings", "Open Majoor Assets Manager settings"); e._majoorSettingsBtn.title = U, e._majoorSettingsBtn.setAttribute("aria-label", U); let ae = document.createElement("i"); return ae.className = "pi pi-cog", ae.setAttribute("aria-hidden", "true"), e._majoorSettingsBtn.appendChild(ae), n.appendChild(e._majoorSettingsBtn), e._handleDocClick = (t) => { @@ -2455,7 +2455,7 @@ function mn(e, t) { } function hn(e) { if (!e._contentWrapper) return; - let t = p.MFV_SIDEBAR_POSITION || "right"; + let t = m.MFV_SIDEBAR_POSITION || "right"; e._contentWrapper.setAttribute("data-sidebar-pos", t), e._sidebar?.el && e._contentEl && (t === "left" ? e._contentWrapper.insertBefore(e._sidebar.el, e._contentEl) : e._contentWrapper.appendChild(e._sidebar.el)); } function gn(e) { @@ -2645,7 +2645,7 @@ function kn(e, t) { if (!e._liveBtn) return; let n = !!t; e._liveBtn.classList.toggle("mjr-live-active", n); - let r = n ? s("tooltip.liveStreamOn", "Live Stream: ON - follows final generation outputs after execution") : s("tooltip.liveStreamOff", "Live Stream: OFF - click to follow final generation outputs"), i = U(r, "L"); + let r = n ? d("tooltip.liveStreamOn", "Live Stream: ON - follows final generation outputs after execution") : d("tooltip.liveStreamOff", "Live Stream: OFF - click to follow final generation outputs"), i = U(r, "L"); e._liveBtn.setAttribute("aria-pressed", String(n)), e._liveBtn.setAttribute("aria-label", i); let a = document.createElement("i"); a.className = n ? "pi pi-circle-fill" : "pi pi-circle", a.setAttribute("aria-hidden", "true"), e._liveBtn.replaceChildren(a), e._liveBtn.title = i; @@ -2653,7 +2653,7 @@ function kn(e, t) { function An(e, t) { if (e._previewActive = !!t, !e._previewBtn) return; e._previewBtn.classList.toggle("mjr-preview-active", e._previewActive); - let n = e._previewActive ? s("tooltip.previewStreamOn", "KSampler Preview: ON - streams sampler denoising frames during execution") : s("tooltip.previewStreamOff", "KSampler Preview: OFF - click to stream sampler denoising frames"), r = U(n, "K"); + let n = e._previewActive ? d("tooltip.previewStreamOn", "KSampler Preview: ON - streams sampler denoising frames during execution") : d("tooltip.previewStreamOff", "KSampler Preview: OFF - click to stream sampler denoising frames"), r = U(n, "K"); e._previewBtn.setAttribute("aria-pressed", String(e._previewActive)), e._previewBtn.setAttribute("aria-label", r); let i = document.createElement("i"); i.className = e._previewActive ? "pi pi-eye" : "pi pi-eye-slash", i.setAttribute("aria-hidden", "true"), e._previewBtn.replaceChildren(i), e._previewBtn.title = r; @@ -2730,7 +2730,7 @@ function Pn(e) { function Fn(e, t) { if (e._nodeStreamActive = !!t, e._nodeStreamActive || e.setNodeStreamSelection?.(null), !e._nodeStreamBtn) return; e._nodeStreamBtn.classList.toggle("mjr-nodestream-active", e._nodeStreamActive); - let n = e._nodeStreamActive ? s("tooltip.nodeStreamOn", "Node Stream: ON - follows the selected node preview when frontend media exists") : s("tooltip.nodeStreamOff", "Node Stream: OFF - click to follow selected node previews, including ImageOps live canvases"), r = U(n, "N"); + let n = e._nodeStreamActive ? d("tooltip.nodeStreamOn", "Node Stream: ON - follows the selected node preview when frontend media exists") : d("tooltip.nodeStreamOff", "Node Stream: OFF - click to follow selected node previews, including ImageOps live canvases"), r = U(n, "N"); e._nodeStreamBtn.setAttribute("aria-pressed", String(e._nodeStreamActive)), e._nodeStreamBtn.setAttribute("aria-label", r); let i = document.createElement("i"); i.className = "pi pi-sitemap", i.setAttribute("aria-hidden", "true"), e._nodeStreamBtn.replaceChildren(i), e._nodeStreamBtn.title = r; @@ -2841,7 +2841,7 @@ function Wn(e, t) { function Gn(e, t) { e._desktopPopoutUnsupported = !0, $("electron-in-app-fallback", { message: t?.message || String(t || "unknown error") }, "warn"), e._setDesktopExpanded(!0); try { - r(s("toast.popoutElectronInAppFallback", "Desktop PiP is unavailable here. Viewer expanded inside the app instead."), "warning", 4500); + n(d("toast.popoutElectronInAppFallback", "Desktop PiP is unavailable here. Viewer expanded inside the app instead."), "warning", 4500); } catch (e) { console.debug?.(e); } @@ -3055,7 +3055,7 @@ function er(e) { if (!e._popoutBtn) return; let t = e._isPopped || e._desktopExpanded; e.element && e.element.classList.toggle("mjr-mfv--popped", t), e._popoutBtn.classList.toggle("mjr-popin-active", t); - let n = e._popoutBtn.querySelector("i") || document.createElement("i"), r = t ? s("tooltip.popInViewer", "Return to floating panel") : s("tooltip.popOutViewer", "Pop out viewer to separate window"); + let n = e._popoutBtn.querySelector("i") || document.createElement("i"), r = t ? d("tooltip.popInViewer", "Return to floating panel") : d("tooltip.popOutViewer", "Pop out viewer to separate window"); n.className = t ? "pi pi-sign-in" : "pi pi-external-link", e._popoutBtn.title = r, e._popoutBtn.setAttribute("aria-label", r), e._popoutBtn.setAttribute("aria-pressed", String(t)), e._popoutBtn.contains(n) || e._popoutBtn.replaceChildren(n); } // ui/features/viewer/floatingViewerPanel.ts @@ -3315,7 +3315,7 @@ function lr(e, t, n, r, i, a, o) { } async function ur(e) { if (!e._contentEl) return; - e._captureBtn && (e._captureBtn.disabled = !0, e._captureBtn.setAttribute("aria-label", s("tooltip.capturingView", "Capturing..."))); + e._captureBtn && (e._captureBtn.disabled = !0, e._captureBtn.setAttribute("aria-label", d("tooltip.capturingView", "Capturing..."))); let t = e._contentEl.clientWidth || 480, n = e._contentEl.clientHeight || 360, r = n; if (e._mode === W.SIMPLE && e._mediaA && e._genInfoSelections.size) { let i = document.createElement("canvas"); @@ -3393,7 +3393,7 @@ async function ur(e) { } catch (e) { console.warn("[MFV] download failed:", e); } finally { - e._captureBtn && (e._captureBtn.disabled = !1, e._captureBtn.setAttribute("aria-label", s("tooltip.captureView", "Save view as image"))); + e._captureBtn && (e._captureBtn.disabled = !1, e._captureBtn.setAttribute("aria-label", d("tooltip.captureView", "Save view as image"))); } } // ui/features/viewer/floatingViewerLoader.ts @@ -3408,8 +3408,8 @@ function pr(e, t, { autoMode: n = !1 } = {}) { (async () => { try { let n = await fe(e._mediaA, { - getAssetMetadata: f, - getFileMetadataScoped: m + getAssetMetadata: p, + getFileMetadataScoped: h }); if (e._refreshGen !== t) return; n && typeof n == "object" && (e._mediaA = n, e._refresh()); @@ -3426,8 +3426,8 @@ function mr(e, t, n) { if (!e) return e; try { return await fe(e, { - getAssetMetadata: f, - getFileMetadataScoped: m + getAssetMetadata: p, + getFileMetadataScoped: h }) || e; } catch { return e; @@ -3450,8 +3450,8 @@ function hr(e, t, n, r, i) { if (!e) return e; try { return await fe(e, { - getAssetMetadata: f, - getFileMetadataScoped: m + getAssetMetadata: p, + getFileMetadataScoped: h }) || e; } catch { return e; diff --git a/dist/chunks/LiveStreamTracker-C_DbXPzd.js b/dist/chunks/LiveStreamTracker-BAuKfk0M.js similarity index 98% rename from dist/chunks/LiveStreamTracker-C_DbXPzd.js rename to dist/chunks/LiveStreamTracker-BAuKfk0M.js index 1fb365bc..6c587f5e 100644 --- a/dist/chunks/LiveStreamTracker-C_DbXPzd.js +++ b/dist/chunks/LiveStreamTracker-BAuKfk0M.js @@ -1,5 +1,5 @@ -import { Vn as e, t } from "./config-C9a-wT5M.js"; -import { t as n } from "./floatingViewerManager-B_I-SRbd.js"; +import { Un as e, t } from "./config-D56TZeFo.js"; +import { t as n } from "./floatingViewerManager-D_aLLeau.js"; import { r } from "./events-1iwo5blr.js"; // ui/features/viewer/LiveStreamTracker.ts var i = !1, a = null, o = null, s = null, c = null, l = null, u = null, d = null, f = null, p = 0, m = 0, h = !1, g = 400, _ = "kj_preview_override", v = /* @__PURE__ */ new Set([ diff --git a/dist/chunks/TagsEditor-MUk741GH.js b/dist/chunks/TagsEditor-NiAR71Jm.js similarity index 83% rename from dist/chunks/TagsEditor-MUk741GH.js rename to dist/chunks/TagsEditor-NiAR71Jm.js index f76cbf88..249d87eb 100644 --- a/dist/chunks/TagsEditor-MUk741GH.js +++ b/dist/chunks/TagsEditor-NiAR71Jm.js @@ -1,9 +1,9 @@ -import { D as e, E as t, It as n, Jn as r, Lt as i, T as a, Wt as o, b as s, dn as c, dr as l, fr as u, g as d, h as f, i as p, in as m, l as h, ln as g, p as _, st as v, ur as y, w as b, xn as x, y as ee } from "./config-C9a-wT5M.js"; -import { t as S } from "./floatingViewerManager-B_I-SRbd.js"; -import { A as te, N as ne, a as C, d as w, i as T, k as E, m as D, n as O, o as re, p as k, r as A, t as j, v as ie, y as M } from "./generationSectionState-DuXxSw-j.js"; +import { Cn as e, D as t, E as n, Kt as r, Rt as i, T as a, Xn as o, b as s, dn as c, fr as l, g as u, h as d, i as f, l as p, lt as m, mr as h, on as g, p as _, pn as v, pr as y, w as b, y as x, zt as S } from "./config-D56TZeFo.js"; +import { t as C } from "./floatingViewerManager-D_aLLeau.js"; +import { A as ee, N as te, a as w, d as T, i as ne, k as E, m as D, n as O, o as re, p as k, r as A, t as j, v as ie, y as M } from "./generationSectionState-BR-TS47u.js"; import { n as N, t as P } from "./events-1iwo5blr.js"; -import { $ as ae, B as oe, C as F, D as se, E as I, H as ce, J as le, K as L, M as R, O as z, P as B, Q as V, S as ue, T as H, V as de, W as U, X as W, b as fe, gt as G, ht as K, j as pe, k as q, mt as me, ot as he, pt as J, st as Y, y as ge } from "./mjr-primevue-C07IsEdU.js"; -import { n as _e, r as ve } from "./mjr-vue-vendor-CEDOnn2t.js"; +import { $ as ae, B as oe, C as F, D as se, E as I, H as ce, J as le, K as L, M as R, O as z, P as B, Q as V, S as ue, T as H, V as de, W as U, X as W, b as fe, gt as G, ht as K, j as pe, k as q, mt as me, ot as he, pt as J, st as Y, y as ge } from "./mjr-primevue-QrNPJaqR.js"; +import { n as _e, r as ve } from "./mjr-vue-vendor-Dn5oe7QV.js"; import { t as ye } from "./viewerOpenRequest-WOJE90Gn.js"; // ui/features/status/AssetStatusDotTheme.ts function X(e) { @@ -910,14 +910,14 @@ var it = "application/x-mjr-asset", at = "application/x-mjr-assets", ot = "appli if (!o || typeof o.add != "function") return !1; let s = null; for (let n of Zt(t)) try { - if (s = c(n, e), s) break; + if (s = v(n, e), s) break; } catch (e) { console.debug?.(e); } if (!s) return !1; s.pos = Array.isArray(a) ? [Number(a[0]) || 0, Number(a[1]) || 0] : tn(e, r), o.add(s); - let l = Gt(s, t, i); - return l && Qt(l, n), Yt(e), !0; + let c = Gt(s, t, i); + return c && Qt(c, n), Yt(e), !0; }, rn = ({ app: e, items: t = [], event: n = null, gap: r = 90 }) => { let i = Array.isArray(t) ? t.filter(Boolean) : []; if (!i.length) return 0; @@ -936,15 +936,15 @@ var it = "application/x-mjr-asset", at = "application/x-mjr-assets", ot = "appli if (!o || typeof o.add != "function" || !r) return !1; let s = null; for (let n of Zt(t)) try { - if (s = c(n, e), s) break; + if (s = v(n, e), s) break; } catch (e) { console.debug?.(e); } if (!s) return !1; - let l = Number(r.pos[0]) || 0, u = Number(r.pos[1]) || 0, d = Array.isArray(s.size) && Number(s.size[0]) || 220; - s.pos = [l - d - 60, u + Number(i) * 20], o.add(s); - let f = Xt(t), p = Gt(s, t, f); - p && Qt(p, n); + let c = Number(r.pos[0]) || 0, l = Number(r.pos[1]) || 0, u = Array.isArray(s.size) && Number(s.size[0]) || 220; + s.pos = [c - u - 60, l + Number(i) * 20], o.add(s); + let d = Xt(t), f = Gt(s, t, d); + f && Qt(f, n); try { s.connect(0, r, i); } catch (e) { @@ -959,7 +959,7 @@ var it = "application/x-mjr-asset", at = "application/x-mjr-assets", ot = "appli subfolder: n.subfolder || "", dest_subfolder: "", type: n.type || "output", - root_id: l(n) || void 0 + root_id: y(n) || void 0 }] }; return i && (a.purpose = i), e(t, a); @@ -1213,7 +1213,7 @@ var xn = { let p = k(e); p != null && f.push({ label: "FPS", - value: w(p), + value: T(p), tooltip: "Native frame rate" }); let m = D(e, p); @@ -1382,56 +1382,56 @@ var xn = { }, Nn = /* @__PURE__ */ B({ __name: "GenerationInputThumb", props: { inputFile: {} }, - setup(e) { - let t = e, n = Y(0), i = Y(!1), a = null; - function c() { - return a ||= import("./floatingViewerManager-B_I-SRbd.js").then((e) => e.n), a; - } + setup(t) { + let n = t, i = Y(0), a = Y(!1), c = null; function l() { - return (Array.isArray(t.inputFile?.previewCandidates) ? t.inputFile.previewCandidates : [])[n.value] || ""; + return c ||= import("./floatingViewerManager-D_aLLeau.js").then((e) => e.n), c; } function u() { - let e = Array.isArray(t.inputFile?.previewCandidates) ? t.inputFile.previewCandidates : []; - n.value < e.length - 1 && (n.value += 1); + return (Array.isArray(n.inputFile?.previewCandidates) ? n.inputFile.previewCandidates : [])[i.value] || ""; } - async function d(e) { + function d() { + let e = Array.isArray(n.inputFile?.previewCandidates) ? n.inputFile.previewCandidates : []; + i.value < e.length - 1 && (i.value += 1); + } + async function f(e) { e?.stopPropagation?.(); - let n = String(t.inputFile?.filepath || t.inputFile?.filename || "").trim(); - if (n) try { - await navigator.clipboard.writeText(n), i.value = !0, setTimeout(() => { - i.value = !1; + let t = String(n.inputFile?.filepath || n.inputFile?.filename || "").trim(); + if (t) try { + await navigator.clipboard.writeText(t), a.value = !0, setTimeout(() => { + a.value = !1; }, 350); } catch (e) { console.debug?.(e); } } - function f(e) { - e?.stopPropagation?.(), b(); + function p(e) { + e?.stopPropagation?.(), x(); } - function p() { - let e = t.inputFile || {}, n = String(e.filepath || "").trim(); + function h() { + let e = n.inputFile || {}, t = String(e.filepath || "").trim(); return { filename: e.filename || "", name: e.filename || "", - filepath: n, - path: n, + filepath: t, + path: t, subfolder: e.subfolder || "", type: e.type || "input", source: e.type || "input", - kind: h(e), + kind: _(e), root_id: e.root_id || "", - preview_url: l() + preview_url: u() }; } - function h(e = t.inputFile || {}) { - let n = String(e.kind || "").trim().toLowerCase(); - if (n === "image" || n === "video" || n === "audio" || n === "model3d") return n; + function _(e = n.inputFile || {}) { + let t = String(e.kind || "").trim().toLowerCase(); + if (t === "image" || t === "video" || t === "audio" || t === "model3d") return t; if (e.isVideo) return "video"; if (e.isAudio) return "audio"; let r = String(e.filename || "").toLowerCase(); return /\.(mp4|mov|webm|mkv|avi|m4v)$/i.test(r) ? "video" : /\.(wav|mp3|flac|ogg|m4a|aac|opus)$/i.test(r) ? "audio" : /\.(glb|gltf|obj|stl|ply|fbx)$/i.test(r) ? "model3d" : "image"; } - function g(e, t, n, { disabled: r = !1 } = {}) { + function v(e, t, n, { disabled: r = !1 } = {}) { return { id: `mjr-generation-source-${String(e).toLowerCase().replace(/[^a-z0-9]+/g, "-")}`, type: "item", @@ -1443,91 +1443,91 @@ var xn = { action: n }; } - function _() { + function y() { return { id: "mjr-generation-source-separator", type: "separator" }; } - function y() { - return C(l()) || !!t.inputFile?.filename || !!t.inputFile?.filepath; - } function b() { - let e = p(); + return w(u()) || !!n.inputFile?.filename || !!n.inputFile?.filepath; + } + function x() { + let e = h(); if (ye({ asset: e, index: 0 })) return; - let t = l(); - if (C(t)) try { + let t = u(); + if (w(t)) try { window.open(t, "_blank", "noopener,noreferrer"); } catch (e) { console.debug?.(e); } } - async function ee() { + async function S() { try { - let { floatingViewerManager: e } = await c(); + let { floatingViewerManager: e } = await l(); await e.openAssets({ - assets: [p()], + assets: [h()], index: 0 }); } catch (e) { - console.debug?.(e), o(m("toast.viewerOpenFailed", "Failed to open viewer."), "error"); + console.debug?.(e), r(g("toast.viewerOpenFailed", "Failed to open viewer."), "error"); } } - async function S() { - let e = await v(p()); - e?.ok ? o(m("toast.openedInFolder", "Opened in folder"), "info", 1600) : o(e?.error || m("toast.openFolderFailed", "Failed to open folder."), "error"); + async function C() { + let e = await m(h()); + e?.ok ? r(g("toast.openedInFolder", "Opened in folder"), "info", 1600) : r(e?.error || g("toast.openFolderFailed", "Failed to open folder."), "error"); } - async function te() { - let e = p(), t = { - filename: e.filename, - subfolder: e.subfolder, - type: e.type || "input", - root_id: e.root_id || void 0, - kind: e.kind - }, n = await cn({ + async function ee() { + let t = h(), n = { + filename: t.filename, + subfolder: t.subfolder, + type: t.type || "input", + root_id: t.root_id || void 0, + kind: t.kind + }, i = await cn({ post: s, - endpoint: r.STAGE_TO_INPUT, - payload: t, + endpoint: o.STAGE_TO_INPUT, + payload: n, index: !1 }); - if (!n?.relativePath || !rn({ - app: x(), + if (!i?.relativePath || !rn({ + app: e(), items: [{ - payload: t, - relativePath: n.relativePath, - droppedExt: String(t.filename || "").split(".").pop() || "" + payload: n, + relativePath: i.relativePath, + droppedExt: String(n.filename || "").split(".").pop() || "" }], event: null })) { - o(m("toast.loadAssetFailed", "Failed to load asset."), "error"); + r(g("toast.loadAssetFailed", "Failed to load asset."), "error"); return; } - let i = e.kind ? e.kind.charAt(0).toUpperCase() + e.kind.slice(1) : "Asset"; - o(m("toast.assetLoadedToCanvas", "{kind} loader added to canvas.", { kind: i }), "success", 1800); + let a = t.kind ? t.kind.charAt(0).toUpperCase() + t.kind.slice(1) : "Asset"; + r(g("toast.assetLoadedToCanvas", "{kind} loader added to canvas.", { kind: a }), "success", 1800); } - function ne(e) { + function te(e) { e?.preventDefault?.(), e?.stopPropagation?.(); - let n = h(), r = n === "video" ? m("ctx.loadVideo", "Load video") : n === "audio" ? m("ctx.loadAudio", "Load audio") : n === "model3d" ? m("ctx.loadModel3d", "Load 3D model") : m("ctx.loadImage", "Load image"); + let t = _(), r = t === "video" ? g("ctx.loadVideo", "Load video") : t === "audio" ? g("ctx.loadAudio", "Load audio") : t === "model3d" ? g("ctx.loadModel3d", "Load 3D model") : g("ctx.loadImage", "Load image"); Ze({ x: e?.clientX || 0, y: e?.clientY || 0, items: [ - g(m("ctx.openInViewer", "Open in viewer"), "pi pi-eye", b, { disabled: !y() }), - g(m("ctx.openInFloatingViewer", "Open in Floating Viewer"), "pi pi-window-maximize", ee, { disabled: !y() }), - g(m("ctx.openInFolder", "Open in folder"), "pi pi-folder-open", S, { disabled: !t.inputFile?.filepath }), - _(), - g(r, "pi pi-plus-circle", te, { disabled: !t.inputFile?.filename }), - g(m("ctx.copyPath", "Copy path"), "pi pi-copy", d, { disabled: !(t.inputFile?.filepath || t.inputFile?.filename) }) + v(g("ctx.openInViewer", "Open in viewer"), "pi pi-eye", x, { disabled: !b() }), + v(g("ctx.openInFloatingViewer", "Open in Floating Viewer"), "pi pi-window-maximize", S, { disabled: !b() }), + v(g("ctx.openInFolder", "Open in folder"), "pi pi-folder-open", C, { disabled: !n.inputFile?.filepath }), + y(), + v(r, "pi pi-plus-circle", ee, { disabled: !n.inputFile?.filename }), + v(g("ctx.copyPath", "Copy path"), "pi pi-copy", f, { disabled: !(n.inputFile?.filepath || n.inputFile?.filename) }) ] }); } - function w(e) { + function T(e) { e.target?.play?.().catch?.(() => {}); } - function T(e) { + function ne(e) { try { e.target?.pause?.(); } catch (e) { @@ -1535,10 +1535,10 @@ var xn = { } } function E() { - return !!t.inputFile?.isAudio; + return !!n.inputFile?.isAudio; } - return (t, n) => (U(), q("div", { - title: `${e.inputFile.filename} (click to copy, double-click to open in new tab)`, + return (e, n) => (U(), q("div", { + title: `${t.inputFile.filename} (click to copy, double-click to open in new tab)`, style: K({ width: "64px", height: "64px", @@ -1550,15 +1550,15 @@ var xn = { display: "flex", alignItems: "center", justifyContent: "center", - outline: i.value ? "2px solid rgba(76, 175, 80, 0.9)" : "", - outlineOffset: i.value ? "1px" : "" + outline: a.value ? "2px solid rgba(76, 175, 80, 0.9)" : "", + outlineOffset: a.value ? "1px" : "" }), - onClick: d, - onDblclick: f, - onContextmenu: ne - }, [e.inputFile.isVideo ? (U(), q("video", { + onClick: f, + onDblclick: p, + onContextmenu: te + }, [t.inputFile.isVideo ? (U(), q("video", { key: 0, - src: l(), + src: u(), muted: "", loop: "", playsinline: "", @@ -1568,22 +1568,22 @@ var xn = { height: "100%", "object-fit": "cover" }, - onError: u, - onMouseover: w, - onMouseout: T + onError: d, + onMouseover: T, + onMouseout: ne }, null, 40, Dn)) : E() ? (U(), q("div", On, [n[0] ||= I("div", { style: { "font-size": "18px", "line-height": "1" - } }, "♪", -1), I("div", kn, G(e.inputFile.filename), 1)])) : (U(), q("img", { + } }, "♪", -1), I("div", kn, G(t.inputFile.filename), 1)])) : (U(), q("img", { key: 2, - src: l(), + src: u(), style: { width: "100%", height: "100%", "object-fit": "cover" }, - onError: u - }, null, 40, An)), e.inputFile.role && e.inputFile.role !== "secondary" ? (U(), q("div", jn, G(e.inputFile.roleLabel), 1)) : e.inputFile.isVideo ? (U(), q("div", Mn, " Play ")) : z("", !0)], 44, En)); + onError: d + }, null, 40, An)), t.inputFile.role && t.inputFile.role !== "secondary" ? (U(), q("div", jn, G(t.inputFile.roleLabel), 1)) : t.inputFile.isVideo ? (U(), q("div", Mn, " Play ")) : z("", !0)], 44, En)); } }), Pn = { key: 0, @@ -2080,35 +2080,35 @@ var xn = { __name: "SidebarGenerationSection", props: { asset: {} }, setup(e) { - let t = e, r = Y(0), a = Y(0), o = Y(""), s = Y(m("action.copy", "Copy")), c = Y(m("action.generate", "Generate")), l = Y(!1), u = Y(f()), d = 0; - function f() { + let t = e, n = Y(0), r = Y(0), a = Y(""), o = Y(g("action.copy", "Copy")), s = Y(g("action.generate", "Generate")), c = Y(!1), l = Y(d()), u = 0; + function d() { return { scoreText: "...", scoreColor: "#888", - qualityText: m("status.loading", "Loading"), + qualityText: g("status.loading", "Loading"), qualityColor: "#888", qualityBackground: "rgba(127,127,127,0.3)", fillWidth: "0%", fillColor: "#666", aiStatusVisible: !1, - aiStatusText: m("sidebar.generation.aiDisabledEnv", "AI features are disabled (enable vector search env var).") + aiStatusText: g("sidebar.generation.aiDisabledEnv", "AI features are disabled (enable vector search env var).") }; } - function p(e, t) { + function f(e, t) { let n = String(e || "").trim().replace(/^#/, ""); return /^[0-9a-fA-F]{6}$/.test(n) ? `rgba(${Number.parseInt(n.slice(0, 2), 16)}, ${Number.parseInt(n.slice(2, 4), 16)}, ${Number.parseInt(n.slice(4, 6), 16)}, ${t})` : `rgba(255,255,255,${t})`; } - function h(e, { emphasis: t = !1, startAlpha: n = .16, endAlpha: r = .08 } = {}) { + function p(e, { emphasis: t = !1, startAlpha: n = .16, endAlpha: r = .08 } = {}) { return { - background: t ? `linear-gradient(135deg, ${p(e, n)} 0%, ${p(e, r)} 100%)` : "var(--comfy-menu-bg, rgba(0,0,0,0.3))", + background: t ? `linear-gradient(135deg, ${f(e, n)} 0%, ${f(e, r)} 100%)` : "var(--comfy-menu-bg, rgba(0,0,0,0.3))", borderLeft: `3px solid ${e}`, - border: t ? `1px solid ${p(e, .45)}` : "1px solid var(--border-color, rgba(255,255,255,0.12))", - boxShadow: t ? `0 0 0 1px ${p(e, .15)} inset` : "none", + border: t ? `1px solid ${f(e, .45)}` : "1px solid var(--border-color, rgba(255,255,255,0.12))", + boxShadow: t ? `0 0 0 1px ${f(e, .15)} inset` : "none", borderRadius: "6px", padding: "12px" }; } - function g() { + function m() { return { background: "linear-gradient(135deg, rgba(233, 30, 99, 0.15) 0%, rgba(156, 39, 176, 0.15) 100%)", border: "2px solid #E91E63", @@ -2120,7 +2120,7 @@ var xn = { gap: "12px" }; } - function _() { + function h() { return { display: "inline-flex", alignItems: "center", @@ -2137,55 +2137,55 @@ var xn = { whiteSpace: "nowrap" }; } - let v = H(() => j(t.asset)), y = H(() => T()), b = H(() => v.value.kind === "full" || v.value.kind === "caption-only"), x = H(() => re(o.value) || v.value.emptyCaptionText), ee = H(() => y.value && v.value.isImageAsset && !!t.asset?.id), S = H(() => y.value && !!re(x.value) && x.value !== v.value.emptyCaptionText), te = H(() => v.value.branchCards.filter((e) => e.modelFields.length || e.loras.length)), ne = H(() => v.value.branchCards.filter((e) => e.samplingFields.length)); - H(() => v.value.branchCards.filter((e) => e.loras.length)); - let C = H(() => { + let _ = H(() => j(t.asset)), v = H(() => ne()), y = H(() => _.value.kind === "full" || _.value.kind === "caption-only"), b = H(() => re(a.value) || _.value.emptyCaptionText), x = H(() => v.value && _.value.isImageAsset && !!t.asset?.id), C = H(() => v.value && !!re(b.value) && b.value !== _.value.emptyCaptionText), ee = H(() => _.value.branchCards.filter((e) => e.modelFields.length || e.loras.length)), te = H(() => _.value.branchCards.filter((e) => e.samplingFields.length)); + H(() => _.value.branchCards.filter((e) => e.loras.length)); + let w = H(() => { let e = [], t = (e, t) => bn(e)?.title || t; - return !te.value.length && v.value.modelFields.length && e.push({ + return !ee.value.length && _.value.modelFields.length && e.push({ key: "model", - title: t("model", m("sidebar.generation.modelLora", "Model & LoRA")), + title: t("model", g("sidebar.generation.modelLora", "Model & LoRA")), accent: "#9C27B0", emphasis: !0, - fields: v.value.modelFields - }), !ne.value.length && v.value.samplingFields.length && e.push({ + fields: _.value.modelFields + }), !te.value.length && _.value.samplingFields.length && e.push({ key: "sampling", - title: t("sampler", m("sidebar.generation.sampling", "Sampling")), + title: t("sampler", g("sidebar.generation.sampling", "Sampling")), accent: "#FF9800", emphasis: !0, - fields: v.value.samplingFields - }), (v.value.ttsFields.length || v.value.workflowType.toLowerCase() === "tts") && e.push({ + fields: _.value.samplingFields + }), (_.value.ttsFields.length || _.value.workflowType.toLowerCase() === "tts") && e.push({ key: "tts", title: "TTS", accent: "#26A69A", emphasis: !0, - fields: v.value.ttsFields - }), v.value.ttsEngineFields.length && e.push({ + fields: _.value.ttsFields + }), _.value.ttsEngineFields.length && e.push({ key: "tts-engine", title: "TTS Engine", accent: "#00897B", emphasis: !1, - fields: v.value.ttsEngineFields - }), v.value.ttsRuntimeFields.length && e.push({ + fields: _.value.ttsEngineFields + }), _.value.ttsRuntimeFields.length && e.push({ key: "tts-runtime", title: "TTS Runtime", accent: "#00796B", emphasis: !1, - fields: v.value.ttsRuntimeFields - }), v.value.audioFields.length && e.push({ + fields: _.value.ttsRuntimeFields + }), _.value.audioFields.length && e.push({ key: "audio", - title: m("sidebar.generation.audio", "Audio"), + title: g("sidebar.generation.audio", "Audio"), accent: "#00BCD4", emphasis: !1, - fields: v.value.audioFields - }), v.value.imageFields.length && e.push({ + fields: _.value.audioFields + }), _.value.imageFields.length && e.push({ key: "image", - title: m("sidebar.generation.image", "Image"), + title: g("sidebar.generation.image", "Image"), accent: "#2196F3", emphasis: !1, - fields: v.value.imageFields + fields: _.value.imageFields }), e; }); - function w(e, t, n = 450) { + function T(e, t, n = 450) { if (!e) return; let r = e.style.background; e.style.background = t, setTimeout(() => { @@ -2194,9 +2194,9 @@ var xn = { } function E(e, t = !0) { return { - background: t ? `linear-gradient(135deg, ${p(e, .16)} 0%, ${p(e, .08)} 100%)` : "var(--comfy-menu-bg, rgba(0,0,0,0.3))", - border: `1px solid ${p(e, .42)}`, - boxShadow: `0 0 0 1px ${p(e, .14)} inset`, + background: t ? `linear-gradient(135deg, ${f(e, .16)} 0%, ${f(e, .08)} 100%)` : "var(--comfy-menu-bg, rgba(0,0,0,0.3))", + border: `1px solid ${f(e, .42)}`, + boxShadow: `0 0 0 1px ${f(e, .14)} inset`, borderRadius: "8px", padding: "12px", display: "flex", @@ -2217,47 +2217,47 @@ var xn = { async function M(e, t = null, n = "rgba(76, 175, 80, 0.35)") { let r = String(e ?? "").trim(); if (r && r !== "-") try { - await navigator.clipboard.writeText(r), w(t, n); + await navigator.clipboard.writeText(r), T(t, n); } catch (e) { console.debug?.(e); } } function N() { - u.value = { + l.value = { scoreText: "AI OFF", scoreColor: "#9E9E9E", - qualityText: m("status.disabled", "Disabled"), + qualityText: g("status.disabled", "Disabled"), qualityColor: "#BDBDBD", qualityBackground: "rgba(158,158,158,0.25)", fillWidth: "0%", fillColor: "#777", aiStatusVisible: !0, - aiStatusText: m("sidebar.generation.aiDisabledSettings", "AI features are disabled in settings.") + aiStatusText: g("sidebar.generation.aiDisabledSettings", "AI features are disabled in settings.") }; } function P() { - u.value = f(); + l.value = d(); } async function oe() { - d += 1; - let e = d; - if (!v.value.showAlignment || !t.asset?.id) P(); - else if (!y.value) N(); + u += 1; + let e = u; + if (!_.value.showAlignment || !t.asset?.id) P(); + else if (!v.value) N(); else { P(); try { - let n = await i(t.asset.id); - if (e !== d) return; + let n = await S(t.asset.id); + if (e !== u) return; if (!n?.ok && (String(n?.code || "").toUpperCase() === "SERVICE_UNAVAILABLE" || /vector search is not enabled/i.test(String(n?.error || "")))) { N(); return; } let r = n?.ok && n.data != null ? Number(n.data) : null; if (!Number.isFinite(r)) { - u.value = { + l.value = { scoreText: "N/A", scoreColor: "#888", - qualityText: m("status.na", "N/A"), + qualityText: g("status.na", "N/A"), qualityColor: "#888", qualityBackground: "rgba(127,127,127,0.3)", fillWidth: "0%", @@ -2267,24 +2267,24 @@ var xn = { }; return; } - let a = Math.round(r * 100), o = O(r); - u.value = { - scoreText: `${a}%`, - scoreColor: o, + let i = Math.round(r * 100), a = O(r); + l.value = { + scoreText: `${i}%`, + scoreColor: a, qualityText: A(r), - qualityColor: o, - qualityBackground: `${o}33`, - fillWidth: `${a}%`, - fillColor: o, + qualityColor: a, + qualityBackground: `${a}33`, + fillWidth: `${i}%`, + fillColor: a, aiStatusVisible: !1, aiStatusText: "" }; } catch (t) { - if (console.debug?.(t), e !== d) return; - u.value = { + if (console.debug?.(t), e !== u) return; + l.value = { scoreText: "-", scoreColor: "#888", - qualityText: m("status.unavailable", "Unavailable"), + qualityText: g("status.unavailable", "Unavailable"), qualityColor: "#888", qualityBackground: "rgba(127,127,127,0.3)", fillWidth: "0%", @@ -2296,41 +2296,41 @@ var xn = { } } async function ce() { - if (ee.value && !l.value) { - l.value = !0, c.value = m("status.generating", "Generating..."); + if (x.value && !c.value) { + c.value = !0, s.value = g("status.generating", "Generating..."); try { - let e = await n(t.asset.id); - e?.ok && (o.value = String(e?.data || "").trim()); + let e = await i(t.asset.id); + e?.ok && (a.value = String(e?.data || "").trim()); } catch (e) { console.debug?.(e); } finally { - l.value = !1, c.value = m("action.generate", "Generate"); + c.value = !1, s.value = g("action.generate", "Generate"); } } } async function B() { - if (S.value) try { - await navigator.clipboard.writeText(x.value), s.value = m("viewer.copySuccessShort", "Copied!"), setTimeout(() => { - s.value = m("action.copy", "Copy"); + if (C.value) try { + await navigator.clipboard.writeText(b.value), o.value = g("viewer.copySuccessShort", "Copied!"), setTimeout(() => { + o.value = g("action.copy", "Copy"); }, 900); } catch (e) { console.debug?.(e); } } return W(() => t.asset, () => { - r.value = 0, a.value = 0, o.value = String(t.asset?.enhanced_caption || "").trim(), s.value = m("action.copy", "Copy"), c.value = m("action.generate", "Generate"); + n.value = 0, r.value = 0, a.value = String(t.asset?.enhanced_caption || "").trim(), o.value = g("action.copy", "Copy"), s.value = g("action.generate", "Generate"); }, { immediate: !0 }), W(() => [ t.asset?.id, - v.value.kind, - v.value.showAlignment, - y.value + _.value.kind, + _.value.showAlignment, + v.value ], () => { oe(); }, { immediate: !0 }), (e, t) => { - let n = le("MButton"); - return v.value.kind === "empty" ? z("", !0) : (U(), q("div", Pn, [ - v.value.workflowType ? (U(), q("div", Fn, [I("span", In, G(J(m)("viewer.workflow", "Workflow")), 1), I("div", Ln, [I("span", { - title: J(m)("sidebar.generation.workflowEngine", "Workflow engine: {value}", { value: v.value.workflowType }), + let r = le("MButton"); + return _.value.kind === "empty" ? z("", !0) : (U(), q("div", Pn, [ + _.value.workflowType ? (U(), q("div", Fn, [I("span", In, G(J(g)("viewer.workflow", "Workflow")), 1), I("div", Ln, [I("span", { + title: J(g)("sidebar.generation.workflowEngine", "Workflow engine: {value}", { value: _.value.workflowType }), style: { background: "#2196F3", color: "white", @@ -2340,9 +2340,9 @@ var xn = { "font-size": "10px", "letter-spacing": "0.2px" } - }, G(v.value.workflowLabel || v.value.workflowType), 9, Rn), v.value.workflowBadge ? (U(), q("span", { + }, G(_.value.workflowLabel || _.value.workflowType), 9, Rn), _.value.workflowBadge ? (U(), q("span", { key: 0, - title: J(m)("sidebar.generation.apiProvider", "API provider: {value}", { value: v.value.workflowBadge }), + title: J(g)("sidebar.generation.apiProvider", "API provider: {value}", { value: _.value.workflowBadge }), style: { background: "rgba(255,255,255,0.08)", color: "var(--fg-color, #eee)", @@ -2353,41 +2353,41 @@ var xn = { "font-size": "10px", "letter-spacing": "0.2px" } - }, G(v.value.workflowBadge), 9, zn)) : z("", !0)])])) : z("", !0), - v.value.isOverride ? (U(), q("div", { + }, G(_.value.workflowBadge), 9, zn)) : z("", !0)])])) : z("", !0), + _.value.isOverride ? (U(), q("div", { key: 1, - style: K(h("#00BCD4", { + style: K(p("#00BCD4", { emphasis: !0, startAlpha: .14, endAlpha: .08 })) - }, [I("div", Bn, [I("span", Vn, G(J(m)("sidebar.generation.override", "Override")), 1), I("span", Hn, G(v.value.overrideLabel), 1)])], 4)) : z("", !0), - v.value.isTruncated ? (U(), q("div", { + }, [I("div", Bn, [I("span", Vn, G(J(g)("sidebar.generation.override", "Override")), 1), I("span", Hn, G(_.value.overrideLabel), 1)])], 4)) : z("", !0), + _.value.isTruncated ? (U(), q("div", { key: 2, - style: K(h("#FF9800", { + style: K(p("#FF9800", { emphasis: !0, startAlpha: .12, endAlpha: .08 })) - }, [I("div", Un, G(J(m)("sidebar.generation.metadataTruncated", "Metadata Truncated")), 1), I("div", Wn, G(J(m)("sidebar.generation.metadataTruncatedBody", "Generation data is incomplete because it exceeded the size limit.")), 1)], 4)) : z("", !0), - v.value.kind === "media-only" ? (U(), q("div", { + }, [I("div", Un, G(J(g)("sidebar.generation.metadataTruncated", "Metadata Truncated")), 1), I("div", Wn, G(J(g)("sidebar.generation.metadataTruncatedBody", "Generation data is incomplete because it exceeded the size limit.")), 1)], 4)) : z("", !0), + _.value.kind === "media-only" ? (U(), q("div", { key: 3, - style: K(h("#9E9E9E", { + style: K(p("#9E9E9E", { emphasis: !0, startAlpha: .1, endAlpha: .06 })) - }, [I("div", Gn, G(J(m)("sidebar.generation.generationData", "Generation Data")), 1), I("div", Kn, G(v.value.mediaOnlyMessage), 1)], 4)) : z("", !0), - v.value.kind === "full" ? (U(), q(F, { key: 4 }, [ - v.value.ltxDirector ? (U(), q("div", { + }, [I("div", Gn, G(J(g)("sidebar.generation.generationData", "Generation Data")), 1), I("div", Kn, G(_.value.mediaOnlyMessage), 1)], 4)) : z("", !0), + _.value.kind === "full" ? (U(), q(F, { key: 4 }, [ + _.value.ltxDirector ? (U(), q("div", { key: 0, - style: K(h("#26C6DA", { + style: K(p("#26C6DA", { emphasis: !0, startAlpha: .15, endAlpha: .08 })) }, [ - I("div", qn, [I("div", Jn, G(v.value.ltxDirector.title || "LTX Director"), 1), t[8] ||= I("span", { style: { + I("div", qn, [I("div", Jn, G(_.value.ltxDirector.title || "LTX Director"), 1), t[8] ||= I("span", { style: { "font-size": "10px", "font-weight": "700", color: "#26C6DA", @@ -2396,7 +2396,7 @@ var xn = { "border-radius": "999px", padding: "2px 8px" } }, " Director ", -1)]), - v.value.ltxDirector.fields.length ? (U(), q("div", Yn, [(U(!0), q(F, null, L(v.value.ltxDirector.fields, (e) => (U(), q("div", { + _.value.ltxDirector.fields.length ? (U(), q("div", Yn, [(U(!0), q(F, null, L(_.value.ltxDirector.fields, (e) => (U(), q("div", { key: `ltx-field-${e.label}`, style: { border: "1px solid rgba(255,255,255,0.10)", @@ -2406,7 +2406,7 @@ var xn = { "min-width": "0" } }, [I("div", Xn, G(e.label), 1), I("div", Zn, G(e.value), 1)]))), 128))])) : z("", !0), - v.value.ltxDirector.globalPrompt ? (U(), q("div", Qn, [t[9] ||= I("div", { style: { + _.value.ltxDirector.globalPrompt ? (U(), q("div", Qn, [t[9] ||= I("div", { style: { "font-size": "10px", "font-weight": "800", color: "#66BB6A", @@ -2414,7 +2414,7 @@ var xn = { "letter-spacing": "0.45px", "margin-bottom": "6px" } }, " Global Prompt ", -1), I("div", { - title: J(m)("action.clickToCopy", "Click to copy"), + title: J(g)("action.clickToCopy", "Click to copy"), style: { "font-size": "12px", color: "var(--fg-color,#eee)", @@ -2423,9 +2423,9 @@ var xn = { "word-break": "break-word", cursor: "pointer" }, - onClick: t[0] ||= (e) => M(v.value.ltxDirector.globalPrompt, e.currentTarget) - }, G(v.value.ltxDirector.globalPrompt), 9, $n)])) : z("", !0), - v.value.ltxDirector.segments.length ? (U(), q("div", er, [(U(!0), q(F, null, L(v.value.ltxDirector.segments, (e) => (U(), q("div", { + onClick: t[0] ||= (e) => M(_.value.ltxDirector.globalPrompt, e.currentTarget) + }, G(_.value.ltxDirector.globalPrompt), 9, $n)])) : z("", !0), + _.value.ltxDirector.segments.length ? (U(), q("div", er, [(U(!0), q(F, null, L(_.value.ltxDirector.segments, (e) => (U(), q("div", { key: e.key, style: { border: "1px solid rgba(38,198,218,0.30)", @@ -2446,7 +2446,7 @@ var xn = { } }, null, 8, ["input-file"])) : z("", !0), I("div", sr, [e.prompt ? (U(), q("div", { key: 0, - title: J(m)("action.clickToCopy", "Click to copy"), + title: J(g)("action.clickToCopy", "Click to copy"), style: { "font-size": "12px", color: "var(--fg-color,#eee)", @@ -2458,15 +2458,15 @@ var xn = { onClick: (t) => M(e.prompt, t.currentTarget) }, G(e.prompt), 9, cr)) : z("", !0), e.filename || e.type ? (U(), q("div", lr, [e.type ? (U(), q("span", ur, G(e.type), 1)) : z("", !0), e.filename ? (U(), q("span", dr, G(e.filename), 1)) : z("", !0)])) : z("", !0)])])]))), 128))])) : z("", !0) ], 4)) : z("", !0), - v.value.ideogram ? (U(), q("div", { + _.value.ideogram ? (U(), q("div", { key: 1, - style: K(h("#FFB300", { + style: K(p("#FFB300", { emphasis: !0, startAlpha: .15, endAlpha: .08 })) }, [ - I("div", fr, [I("div", pr, G(v.value.ideogram.title || "Ideogram 4"), 1), t[10] ||= I("span", { style: { + I("div", fr, [I("div", pr, G(_.value.ideogram.title || "Ideogram 4"), 1), t[10] ||= I("span", { style: { "font-size": "10px", "font-weight": "700", color: "#FFCA28", @@ -2475,7 +2475,7 @@ var xn = { "border-radius": "999px", padding: "2px 8px" } }, " Prompt JSON ", -1)]), - v.value.ideogram.fields.length ? (U(), q("div", mr, [(U(!0), q(F, null, L(v.value.ideogram.fields, (e) => (U(), q("div", { + _.value.ideogram.fields.length ? (U(), q("div", mr, [(U(!0), q(F, null, L(_.value.ideogram.fields, (e) => (U(), q("div", { key: `ideogram-field-${e.label}`, style: { border: "1px solid rgba(255,255,255,0.10)", @@ -2485,7 +2485,7 @@ var xn = { "min-width": "0" } }, [I("div", hr, G(e.label), 1), I("div", gr, G(e.value), 1)]))), 128))])) : z("", !0), - v.value.ideogram.highLevelDescription ? (U(), q("div", _r, [t[11] ||= I("div", { style: { + _.value.ideogram.highLevelDescription ? (U(), q("div", _r, [t[11] ||= I("div", { style: { "font-size": "10px", "font-weight": "800", color: "#81C784", @@ -2493,7 +2493,7 @@ var xn = { "letter-spacing": "0.45px", "margin-bottom": "6px" } }, " High Level Description ", -1), I("div", { - title: J(m)("action.clickToCopy", "Click to copy"), + title: J(g)("action.clickToCopy", "Click to copy"), style: { "font-size": "12px", color: "var(--fg-color,#eee)", @@ -2502,9 +2502,9 @@ var xn = { "word-break": "break-word", cursor: "pointer" }, - onClick: t[1] ||= (e) => M(v.value.ideogram.highLevelDescription, e.currentTarget) - }, G(v.value.ideogram.highLevelDescription), 9, vr)])) : z("", !0), - v.value.ideogram.background ? (U(), q("div", yr, [t[12] ||= I("div", { style: { + onClick: t[1] ||= (e) => M(_.value.ideogram.highLevelDescription, e.currentTarget) + }, G(_.value.ideogram.highLevelDescription), 9, vr)])) : z("", !0), + _.value.ideogram.background ? (U(), q("div", yr, [t[12] ||= I("div", { style: { "font-size": "10px", "font-weight": "800", color: "#64B5F6", @@ -2512,7 +2512,7 @@ var xn = { "letter-spacing": "0.45px", "margin-bottom": "6px" } }, " Background ", -1), I("div", { - title: J(m)("action.clickToCopy", "Click to copy"), + title: J(g)("action.clickToCopy", "Click to copy"), style: { "font-size": "12px", color: "var(--fg-color,#eee)", @@ -2521,9 +2521,9 @@ var xn = { "word-break": "break-word", cursor: "pointer" }, - onClick: t[2] ||= (e) => M(v.value.ideogram.background, e.currentTarget) - }, G(v.value.ideogram.background), 9, br)])) : z("", !0), - v.value.ideogram.elements.length ? (U(), q("div", xr, [(U(!0), q(F, null, L(v.value.ideogram.elements, (e) => (U(), q("div", { + onClick: t[2] ||= (e) => M(_.value.ideogram.background, e.currentTarget) + }, G(_.value.ideogram.background), 9, br)])) : z("", !0), + _.value.ideogram.elements.length ? (U(), q("div", xr, [(U(!0), q(F, null, L(_.value.ideogram.elements, (e) => (U(), q("div", { key: e.key, style: { border: "1px solid rgba(255,179,0,0.30)", @@ -2535,7 +2535,7 @@ var xn = { I("div", Sr, [I("div", Cr, G(e.label), 1), e.bbox ? (U(), q("span", wr, " bbox " + G(e.bbox), 1)) : z("", !0)]), e.description ? (U(), q("div", { key: 0, - title: J(m)("action.clickToCopy", "Click to copy"), + title: J(g)("action.clickToCopy", "Click to copy"), style: { "font-size": "12px", color: "var(--fg-color,#eee)", @@ -2568,7 +2568,7 @@ var xn = { "text-transform": "uppercase", "letter-spacing": "0.45px" } }, " JSON sent to text encoder ", -1), I("pre", { - title: J(m)("action.clickToCopy", "Click to copy"), + title: J(g)("action.clickToCopy", "Click to copy"), style: { margin: "0", padding: "10px", @@ -2581,19 +2581,19 @@ var xn = { "word-break": "break-word", cursor: "pointer" }, - onClick: t[3] ||= (e) => M(v.value.ideogram.json, e.currentTarget) - }, G(v.value.ideogram.json), 9, kr)]) + onClick: t[3] ||= (e) => M(_.value.ideogram.json, e.currentTarget) + }, G(_.value.ideogram.json), 9, kr)]) ], 4)) : z("", !0), - !v.value.ltxDirector && !v.value.ideogram && v.value.promptTabs.length ? (U(), q("div", { + !_.value.ltxDirector && !_.value.ideogram && _.value.promptTabs.length ? (U(), q("div", { key: 2, - style: K(h("#4CAF50", { + style: K(p("#4CAF50", { emphasis: !0, startAlpha: .16, endAlpha: .1 })) }, [ - I("div", Ar, G(J(m)("sidebar.generation.promptPipeline", "Prompt Pipeline ({count} variants)", { count: v.value.promptTabs.length })), 1), - I("div", jr, [(U(!0), q(F, null, L(v.value.promptTabs, (e, t) => (U(), se(n, { + I("div", Ar, G(J(g)("sidebar.generation.promptPipeline", "Prompt Pipeline ({count} variants)", { count: _.value.promptTabs.length })), 1), + I("div", jr, [(U(!0), q(F, null, L(_.value.promptTabs, (e, t) => (U(), se(r, { key: e.label, type: "button", severity: "secondary", @@ -2601,22 +2601,22 @@ var xn = { rounded: "", style: K({ appearance: "none", - border: r.value === t ? "1px solid #4CAF50" : "1px solid var(--border-color, rgba(255,255,255,0.12))", + border: n.value === t ? "1px solid #4CAF50" : "1px solid var(--border-color, rgba(255,255,255,0.12))", borderRadius: "999px", - background: r.value === t ? "#4CAF5033" : "rgba(127,127,127,0.12)", - color: r.value === t ? "#4CAF50" : "var(--fg-color, #ddd)", + background: n.value === t ? "#4CAF5033" : "rgba(127,127,127,0.12)", + color: n.value === t ? "#4CAF50" : "var(--fg-color, #ddd)", fontSize: "11px", padding: "4px 10px", cursor: "pointer", - fontWeight: r.value === t ? "700" : "500", - boxShadow: r.value === t ? "0 0 0 1px #4CAF5055 inset" : "none" + fontWeight: n.value === t ? "700" : "500", + boxShadow: n.value === t ? "0 0 0 1px #4CAF5055 inset" : "none" }), - onClick: (e) => r.value = t + onClick: (e) => n.value = t }, { default: V(() => [pe(G(e.label), 1)]), _: 2 }, 1032, ["style", "onClick"]))), 128))]), - (U(!0), q(F, null, L(v.value.promptTabs, (e, t) => ae((U(), q("div", { + (U(!0), q(F, null, L(_.value.promptTabs, (e, t) => ae((U(), q("div", { key: `${e.label}-panel`, style: { display: "flex", @@ -2629,7 +2629,7 @@ var xn = { padding: "10px" } }, [ - I("div", Mr, G(J(m)("sidebar.generation.positive", "POSITIVE")), 1), + I("div", Mr, G(J(g)("sidebar.generation.positive", "POSITIVE")), 1), I("div", { style: { "font-size": "12px", @@ -2640,7 +2640,7 @@ var xn = { }, onClick: (t) => M(e.positive, t.currentTarget) }, G(e.positive), 9, Nr), - e.negative ? (U(), q(F, { key: 0 }, [I("div", Pr, G(J(m)("sidebar.generation.negative", "NEGATIVE")), 1), I("div", { + e.negative ? (U(), q(F, { key: 0 }, [I("div", Pr, G(J(g)("sidebar.generation.negative", "NEGATIVE")), 1), I("div", { style: { "font-size": "12px", color: "var(--fg-color, #ddd)", @@ -2650,20 +2650,20 @@ var xn = { }, onClick: (t) => M(e.negative, t.currentTarget) }, G(e.negative), 9, Fr)], 64)) : z("", !0) - ])), [[fe, r.value === t]])), 128)) - ], 4)) : !v.value.ltxDirector && !v.value.ideogram && v.value.positivePrompt ? (U(), q("div", { + ])), [[fe, n.value === t]])), 128)) + ], 4)) : !_.value.ltxDirector && !_.value.ideogram && _.value.positivePrompt ? (U(), q("div", { key: 3, - style: K(h("#4CAF50", { + style: K(p("#4CAF50", { emphasis: !0, startAlpha: .16, endAlpha: .1 })) - }, [I("div", Ir, [I("span", null, G(J(m)("sidebar.generation.positivePrompt", "Positive Prompt")), 1), v.value.positivePromptOverride ? (U(), q("span", { + }, [I("div", Ir, [I("span", null, G(J(g)("sidebar.generation.positivePrompt", "Positive Prompt")), 1), _.value.positivePromptOverride ? (U(), q("span", { key: 0, - style: K(_()), - title: J(m)("sidebar.generation.overrideTooltip", "This field was forced by Majoor Gen Info Override") - }, G(J(m)("sidebar.generation.override", "override")), 13, Lr)) : z("", !0)]), I("div", { - title: J(m)("action.clickToCopy", "Click to copy"), + style: K(h()), + title: J(g)("sidebar.generation.overrideTooltip", "This field was forced by Majoor Gen Info Override") + }, G(J(g)("sidebar.generation.override", "override")), 13, Lr)) : z("", !0)]), I("div", { + title: J(g)("action.clickToCopy", "Click to copy"), style: { "font-size": "12px", color: "var(--fg-color, rgba(255,255,255,0.9))", @@ -2672,21 +2672,21 @@ var xn = { "word-break": "break-word", cursor: "pointer" }, - onClick: t[4] ||= (e) => M(v.value.positivePrompt, e.currentTarget) - }, G(v.value.positivePrompt), 9, Rr)], 4)) : z("", !0), - !v.value.ltxDirector && !v.value.ideogram && !v.value.promptTabs.length && v.value.negativePrompt ? (U(), q("div", { + onClick: t[4] ||= (e) => M(_.value.positivePrompt, e.currentTarget) + }, G(_.value.positivePrompt), 9, Rr)], 4)) : z("", !0), + !_.value.ltxDirector && !_.value.ideogram && !_.value.promptTabs.length && _.value.negativePrompt ? (U(), q("div", { key: 4, - style: K(h("#F44336", { + style: K(p("#F44336", { emphasis: !0, startAlpha: .16, endAlpha: .1 })) - }, [I("div", zr, [I("span", null, G(J(m)("sidebar.generation.negativePrompt", "Negative Prompt")), 1), v.value.negativePromptOverride ? (U(), q("span", { + }, [I("div", zr, [I("span", null, G(J(g)("sidebar.generation.negativePrompt", "Negative Prompt")), 1), _.value.negativePromptOverride ? (U(), q("span", { key: 0, - style: K(_()), - title: J(m)("sidebar.generation.overrideTooltip", "This field was forced by Majoor Gen Info Override") - }, G(J(m)("sidebar.generation.override", "override")), 13, Br)) : z("", !0)]), I("div", { - title: J(m)("action.clickToCopy", "Click to copy"), + style: K(h()), + title: J(g)("sidebar.generation.overrideTooltip", "This field was forced by Majoor Gen Info Override") + }, G(J(g)("sidebar.generation.override", "override")), 13, Br)) : z("", !0)]), I("div", { + title: J(g)("action.clickToCopy", "Click to copy"), style: { "font-size": "12px", color: "var(--fg-color, rgba(255,255,255,0.9))", @@ -2695,10 +2695,10 @@ var xn = { "word-break": "break-word", cursor: "pointer" }, - onClick: t[5] ||= (e) => M(v.value.negativePrompt, e.currentTarget) - }, G(v.value.negativePrompt), 9, Vr)], 4)) : z("", !0) + onClick: t[5] ||= (e) => M(_.value.negativePrompt, e.currentTarget) + }, G(_.value.negativePrompt), 9, Vr)], 4)) : z("", !0) ], 64)) : z("", !0), - b.value ? (U(), q("div", { + y.value ? (U(), q("div", { key: 5, style: { background: "linear-gradient(135deg, rgba(0, 188, 212, 0.14) 0%, rgba(33, 150, 243, 0.10) 100%)", @@ -2709,45 +2709,45 @@ var xn = { "flex-direction": "column", gap: "10px" }, - class: me({ "mjr-ai-disabled-block": !y.value }) + class: me({ "mjr-ai-disabled-block": !v.value }) }, [ - v.value.showAlignment ? (U(), q(F, { key: 0 }, [ - I("div", Hr, [I("span", { title: J(m)("sidebar.generation.promptAlignmentTooltip", "How closely the generated image matches the prompt (SigLIP2 score)") }, G(J(m)("sidebar.generation.promptAlignment", "Prompt Alignment")), 9, Ur)]), + _.value.showAlignment ? (U(), q(F, { key: 0 }, [ + I("div", Hr, [I("span", { title: J(g)("sidebar.generation.promptAlignmentTooltip", "How closely the generated image matches the prompt (SigLIP2 score)") }, G(J(g)("sidebar.generation.promptAlignment", "Prompt Alignment")), 9, Ur)]), I("div", Wr, [ I("div", Gr, [I("div", { style: K({ height: "100%", - width: u.value.fillWidth, - background: u.value.fillColor, + width: l.value.fillWidth, + background: l.value.fillColor, borderRadius: "4px", transition: "width 0.6s ease, background 0.4s ease" }) }, null, 4)]), I("span", { style: K({ fontSize: "13px", fontWeight: "700", - color: u.value.scoreColor, + color: l.value.scoreColor, minWidth: "60px", textAlign: "right", fontFamily: "'Consolas', 'Monaco', monospace" - }) }, G(u.value.scoreText), 5), + }) }, G(l.value.scoreText), 5), I("span", { style: K({ fontSize: "9px", fontWeight: "700", padding: "2px 6px", borderRadius: "3px", - background: u.value.qualityBackground, - color: u.value.qualityColor, + background: l.value.qualityBackground, + color: l.value.qualityColor, textTransform: "uppercase", letterSpacing: "0.5px" - }) }, G(u.value.qualityText), 5) + }) }, G(l.value.qualityText), 5) ]), - u.value.aiStatusVisible ? (U(), q("div", Kr, G(u.value.aiStatusText), 1)) : z("", !0) + l.value.aiStatusVisible ? (U(), q("div", Kr, G(l.value.aiStatusText), 1)) : z("", !0) ], 64)) : z("", !0), - I("div", qr, [I("span", { title: J(m)("sidebar.generation.aiCaptionTooltip", "AI caption generated by Florence-2") }, G(v.value.captionLabel), 9, Jr), I("div", Yr, [R(n, { + I("div", qr, [I("span", { title: J(g)("sidebar.generation.aiCaptionTooltip", "AI caption generated by Florence-2") }, G(_.value.captionLabel), 9, Jr), I("div", Yr, [R(r, { type: "button", class: "mjr-ai-control", severity: "secondary", text: "", - disabled: !ee.value || l.value, + disabled: !x.value || c.value, style: K([{ border: "1px solid rgba(0,188,212,0.45)", background: "rgba(0,188,212,0.12)", @@ -2758,19 +2758,19 @@ var xn = { padding: "2px 8px", cursor: "pointer" }, { - opacity: ee.value ? "1" : "0.6", - cursor: ee.value ? "pointer" : "default" + opacity: x.value ? "1" : "0.6", + cursor: x.value ? "pointer" : "default" }]), onClick: ue(ce, ["stop"]) }, { - default: V(() => [pe(G(c.value), 1)]), + default: V(() => [pe(G(s.value), 1)]), _: 1 - }, 8, ["disabled", "style"]), R(n, { + }, 8, ["disabled", "style"]), R(r, { type: "button", class: "mjr-ai-control", severity: "secondary", text: "", - disabled: !S.value, + disabled: !C.value, style: K([{ border: "1px solid rgba(0,188,212,0.45)", background: "rgba(0,188,212,0.12)", @@ -2781,16 +2781,16 @@ var xn = { padding: "2px 8px", cursor: "pointer" }, { - opacity: S.value ? "1" : "0.6", - cursor: S.value ? "pointer" : "default" + opacity: C.value ? "1" : "0.6", + cursor: C.value ? "pointer" : "default" }]), onClick: ue(B, ["stop"]) }, { - default: V(() => [pe(G(s.value), 1)]), + default: V(() => [pe(G(o.value), 1)]), _: 1 }, 8, ["disabled", "style"])])]), I("div", { - title: y.value ? J(m)("sidebar.generation.copyCaptionTooltip", "Click to copy caption") : J(m)("sidebar.generation.aiCaptionDisabled", "AI caption controls are disabled"), + title: v.value ? J(g)("sidebar.generation.copyCaptionTooltip", "Click to copy caption") : J(g)("sidebar.generation.aiCaptionDisabled", "AI caption controls are disabled"), style: K({ marginTop: "4px", padding: "8px", @@ -2802,19 +2802,19 @@ var xn = { lineHeight: "1.45", whiteSpace: "pre-wrap", wordBreak: "break-word", - cursor: S.value ? "copy" : "default" + cursor: C.value ? "copy" : "default" }), onClick: B - }, G(x.value), 13, Xr) + }, G(b.value), 13, Xr) ], 2)) : z("", !0), - te.value.length ? (U(), q("div", { + ee.value.length ? (U(), q("div", { key: 6, - style: K(h("#9C27B0", { + style: K(p("#9C27B0", { emphasis: !0, startAlpha: .18, endAlpha: .1 })) - }, [I("div", Zr, G(J(m)("sidebar.generation.models", "Models")), 1), I("div", Qr, [(U(!0), q(F, null, L(te.value, (e) => (U(), q("div", { + }, [I("div", Zr, G(J(g)("sidebar.generation.models", "Models")), 1), I("div", Qr, [(U(!0), q(F, null, L(ee.value, (e) => (U(), q("div", { key: `models-top-${e.key}`, style: K(E(D(e), !0)) }, [ @@ -2865,20 +2865,20 @@ var xn = { onClick: (e) => M(t, e.currentTarget) }, G(t), 9, ni))), 128))])) : z("", !0) ], 4))), 128))])], 4)) : z("", !0), - v.value.lyrics ? (U(), q("div", { + _.value.lyrics ? (U(), q("div", { key: 7, - style: K(h("#00BCD4", { emphasis: !1 })) - }, [I("div", ri, [I("span", null, G(J(m)("sidebar.generation.lyrics", "Lyrics")), 1)]), I("div", ii, G(v.value.lyrics), 1)], 4)) : z("", !0), - v.value.branchCards.length ? (U(), q(F, { key: 8 }, [ + style: K(p("#00BCD4", { emphasis: !1 })) + }, [I("div", ri, [I("span", null, G(J(g)("sidebar.generation.lyrics", "Lyrics")), 1)]), I("div", ii, G(_.value.lyrics), 1)], 4)) : z("", !0), + _.value.branchCards.length ? (U(), q(F, { key: 8 }, [ z("", !0), - ne.value.length ? (U(), q("div", { + te.value.length ? (U(), q("div", { key: 1, - style: K(h("#FF9800", { + style: K(p("#FF9800", { emphasis: !0, startAlpha: .16, endAlpha: .1 })) - }, [I("div", ai, G(J(m)("sidebar.generation.sampling", "Sampling")), 1), I("div", oi, [(U(!0), q(F, null, L(ne.value, (e) => (U(), q("div", { + }, [I("div", ai, G(J(g)("sidebar.generation.sampling", "Sampling")), 1), I("div", oi, [(U(!0), q(F, null, L(te.value, (e) => (U(), q("div", { key: `sampling-${e.key}`, style: K(E(k(e), !0)) }, [I("div", { style: K({ @@ -2907,14 +2907,14 @@ var xn = { onClick: (e) => M(t.value, e.currentTarget) }, G(t.value), 9, si)]))), 128))], 4))), 128))])], 4)) : z("", !0), z("", !0) - ], 64)) : v.value.modelGroups.length ? (U(), q("div", { + ], 64)) : _.value.modelGroups.length ? (U(), q("div", { key: 9, - style: K(h("#9C27B0", { + style: K(p("#9C27B0", { emphasis: !0, startAlpha: .18, endAlpha: .1 })) - }, [I("div", ci, G(J(m)("sidebar.generation.models", "Models")), 1), I("div", li, [(U(!0), q(F, null, L(v.value.modelGroups, (e) => (U(), q("div", { + }, [I("div", ci, G(J(g)("sidebar.generation.models", "Models")), 1), I("div", li, [(U(!0), q(F, null, L(_.value.modelGroups, (e) => (U(), q("div", { key: `model-group-${e.key}`, style: K(E(ie(e.key), !0)) }, [ @@ -2928,8 +2928,8 @@ var xn = { fontSize: "9px", fontWeight: "700", color: "#fff", - background: p(ie(e.key), .22), - border: `1px solid ${p(ie(e.key), .48)}`, + background: f(ie(e.key), .22), + border: `1px solid ${f(ie(e.key), .48)}`, borderRadius: "999px", padding: "2px 8px", letterSpacing: "0.4px", @@ -2951,7 +2951,7 @@ var xn = { }, onClick: (t) => M(e.model, t.currentTarget) }, G(e.model || "-"), 9, fi)]), - e.loras?.length ? (U(), q("div", pi, [I("div", mi, G(J(m)("sidebar.generation.loraStack", "LoRA Stack")), 1), I("div", hi, [(U(!0), q(F, null, L(e.loras, (t, n) => (U(), q("div", { + e.loras?.length ? (U(), q("div", pi, [I("div", mi, G(J(g)("sidebar.generation.loraStack", "LoRA Stack")), 1), I("div", hi, [(U(!0), q(F, null, L(e.loras, (t, n) => (U(), q("div", { key: `${e.key}-lora-${n}`, style: { "font-size": "12px", @@ -2967,9 +2967,9 @@ var xn = { onClick: (e) => M(t, e.currentTarget) }, G(t), 9, gi))), 128))])])) : z("", !0) ], 4))), 128))])], 4)) : z("", !0), - (U(!0), q(F, null, L(C.value, (e) => (U(), q("div", { + (U(!0), q(F, null, L(w.value, (e) => (U(), q("div", { key: e.key, - style: K(h(e.accent, { emphasis: e.emphasis })) + style: K(p(e.accent, { emphasis: e.emphasis })) }, [I("div", { style: K({ fontSize: "11px", fontWeight: "600", @@ -2989,9 +2989,9 @@ var xn = { } }, [I("span", null, G(t.label) + ":", 1), t.override ? (U(), q("span", { key: 0, - style: K(_()), - title: J(m)("sidebar.generation.overrideTooltip", "This field was forced by Majoor Gen Info Override") - }, G(J(m)("sidebar.generation.override", "override")), 13, yi)) : z("", !0)], 8, vi), I("div", { + style: K(h()), + title: J(g)("sidebar.generation.overrideTooltip", "This field was forced by Majoor Gen Info Override") + }, G(J(g)("sidebar.generation.override", "override")), 13, yi)) : z("", !0)], 8, vi), I("div", { title: `${t.label}: ${t.value}`, style: { "font-size": "12px", @@ -3002,10 +3002,10 @@ var xn = { }, onClick: (e) => M(t.value, e.currentTarget) }, G(t.value), 9, bi)], 64))), 128))])], 4))), 128)), - v.value.notesFields.length ? (U(), q("div", { + _.value.notesFields.length ? (U(), q("div", { key: 10, - style: K(h("#4CAF50", { emphasis: !1 })) - }, [I("div", xi, G(J(m)("sidebar.generation.notes", "Notes")), 1), (U(!0), q(F, null, L(v.value.notesFields, (e) => (U(), q("div", { + style: K(p("#4CAF50", { emphasis: !1 })) + }, [I("div", xi, G(J(g)("sidebar.generation.notes", "Notes")), 1), (U(!0), q(F, null, L(_.value.notesFields, (e) => (U(), q("div", { key: e.label, title: `${e.label}: ${e.value}`, style: { @@ -3018,14 +3018,14 @@ var xn = { }, onClick: (t) => M(e.value, t.currentTarget) }, G(e.value), 9, Si))), 128))], 4)) : z("", !0), - v.value.moduleBlocks.length ? (U(), q("div", { + _.value.moduleBlocks.length ? (U(), q("div", { key: 11, - style: K(h("#26C6DA", { + style: K(p("#26C6DA", { emphasis: !0, startAlpha: .14, endAlpha: .08 })) - }, [I("div", Ci, G(J(m)("sidebar.generation.modules", "Modules")), 1), I("div", wi, [(U(!0), q(F, null, L(v.value.moduleBlocks, (e) => (U(), q("div", { + }, [I("div", Ci, G(J(g)("sidebar.generation.modules", "Modules")), 1), I("div", wi, [(U(!0), q(F, null, L(_.value.moduleBlocks, (e) => (U(), q("div", { key: `module-${e.key}-${e.title}`, style: K(E(e.accent, !1)) }, [I("div", { style: K({ @@ -3054,11 +3054,11 @@ var xn = { }, onClick: (e) => M(t.value, e.currentTarget) }, G(t.value), 9, Ei)]))), 128))], 4))), 128))])], 4)) : z("", !0), - v.value.ttsInstruction ? (U(), q("div", { + _.value.ttsInstruction ? (U(), q("div", { key: 12, - style: K(h("#26A69A", { emphasis: !1 })) - }, [I("div", Di, [I("span", null, G(J(m)("sidebar.generation.ttsInstruction", "TTS Instruction")), 1)]), I("div", { - title: J(m)("action.clickToCopy", "Click to copy"), + style: K(p("#26A69A", { emphasis: !1 })) + }, [I("div", Di, [I("span", null, G(J(g)("sidebar.generation.ttsInstruction", "TTS Instruction")), 1)]), I("div", { + title: J(g)("action.clickToCopy", "Click to copy"), style: { "font-size": "12px", color: "var(--fg-color, rgba(255,255,255,0.9))", @@ -3067,13 +3067,13 @@ var xn = { "word-break": "break-word", cursor: "pointer" }, - onClick: t[6] ||= (e) => M(v.value.ttsInstruction, e.currentTarget) - }, G(v.value.ttsInstruction), 9, Oi)], 4)) : z("", !0), - v.value.seed !== null && v.value.seed !== void 0 && v.value.seed !== "" ? (U(), q("div", { + onClick: t[6] ||= (e) => M(_.value.ttsInstruction, e.currentTarget) + }, G(_.value.ttsInstruction), 9, Oi)], 4)) : z("", !0), + _.value.seed !== null && _.value.seed !== void 0 && _.value.seed !== "" ? (U(), q("div", { key: 13, - style: K(g()) - }, [I("div", ki, G(J(m)("sidebar.generation.seed", "SEED")), 1), I("div", { - title: J(m)("sidebar.generation.copySeedTooltip", "Click to copy seed: {seed}", { seed: v.value.seed }), + style: K(m()) + }, [I("div", ki, G(J(g)("sidebar.generation.seed", "SEED")), 1), I("div", { + title: J(g)("sidebar.generation.copySeedTooltip", "Click to copy seed: {seed}", { seed: _.value.seed }), style: { "font-size": "18px", "font-weight": "700", @@ -3085,17 +3085,17 @@ var xn = { "border-radius": "4px", transition: "background 0.2s" }, - onClick: t[7] ||= (e) => M(v.value.seed, e.currentTarget, "rgba(76, 175, 80, 0.4)") - }, G(v.value.seed), 9, Ai)], 4)) : z("", !0), - v.value.inputFiles.length ? (U(), q("div", { + onClick: t[7] ||= (e) => M(_.value.seed, e.currentTarget, "rgba(76, 175, 80, 0.4)") + }, G(_.value.seed), 9, Ai)], 4)) : z("", !0), + _.value.inputFiles.length ? (U(), q("div", { key: 14, - style: K(h("#4CAF50", { + style: K(p("#4CAF50", { emphasis: !0, startAlpha: .16, endAlpha: .1 })) }, [I("div", { - title: J(m)("tooltip.generationInputs", "Input files used in generation"), + title: J(g)("tooltip.generationInputs", "Input files used in generation"), style: { "font-size": "11px", "font-weight": "600", @@ -3104,7 +3104,7 @@ var xn = { "letter-spacing": "0.5px", "margin-bottom": "8px" } - }, G(J(m)("sidebar.generation.sourceFiles", "Source Files")), 9, ji), I("div", Mi, [(U(!0), q(F, null, L(v.value.inputFiles, (e) => (U(), se(Nn, { + }, G(J(g)("sidebar.generation.sourceFiles", "Source Files")), 9, ji), I("div", Mi, [(U(!0), q(F, null, L(_.value.inputFiles, (e) => (U(), se(Nn, { key: e.id, "input-file": e }, null, 8, ["input-file"]))), 128))])], 4)) : z("", !0) @@ -3454,8 +3454,8 @@ var xn = { } }, Ga = 1, Ka = 8, qa = 250, Ja = /* @__PURE__ */ B({ __name: "SidebarWorkflowSection", props: { asset: {} }, - setup(t) { - let n = t, r = Object.freeze({ + setup(e) { + let n = e, i = Object.freeze({ nodeColors: !0, showLinks: !0, showGroups: !0, @@ -3464,12 +3464,12 @@ var xn = { showViewport: !0, showNodeLabels: !1, size: "comfortable" - }), i = Object.freeze({ + }), a = Object.freeze({ zoom: 1, centerX: null, centerY: null, hoveredNodeId: null - }), a = Object.freeze([ + }), o = Object.freeze([ { key: "compact", label: "Compact", @@ -3485,7 +3485,7 @@ var xn = { label: "Expanded", height: 220 } - ]), s = Y(null), c = Y(""), l = Y(!1), h = Y(!1), v = Y(null), y = Y(!1), x = Y(null), ne = Y([]), C = Y(null), w = Y(!1), T = Y(!1), D = Y(ve()), O = Y({ ...i }), re = Y("crosshair"), k = Y(""), A = null, j = null, N = null; + ]), s = Y(null), l = Y(""), p = Y(!1), m = Y(!1), v = Y(null), y = Y(!1), S = Y(null), te = Y([]), w = Y(null), T = Y(!1), ne = Y(!1), D = Y(ve()), O = Y({ ...a }), re = Y("crosshair"), k = Y(""), A = null, j = null, N = null; function P(e, t, n) { let r = Number(e); return Number.isFinite(r) ? Math.max(t, Math.min(n, r)) : t; @@ -3499,7 +3499,7 @@ var xn = { }); } function B() { - O.value = { ...i }, k.value = ""; + O.value = { ...a }, k.value = ""; } function ue(e) { let t = e?.metadata_raw ?? null; @@ -3563,19 +3563,19 @@ var xn = { try { let e = E?.()?.workflowMinimap; if (e && typeof e == "object") return { - ...r, + ...i, ...e }; } catch (e) { console.debug?.(e); } try { - let e = localStorage?.getItem?.(u); - if (!e) return { ...r }; + let e = localStorage?.getItem?.(h); + if (!e) return { ...i }; let t = JSON.parse(e); - if (!t || typeof t != "object") return { ...r }; + if (!t || typeof t != "object") return { ...i }; let n = { - ...r, + ...i, ...t }; try { @@ -3583,13 +3583,13 @@ var xn = { e.workflowMinimap = { ...e.workflowMinimap, ...n - }, te(e), localStorage?.removeItem?.(u); + }, ee(e), localStorage?.removeItem?.(h); } catch (e) { console.debug?.(e); } return n; } catch { - return { ...r }; + return { ...i }; } } function ye(e) { @@ -3598,7 +3598,7 @@ var xn = { t.workflowMinimap = { ...t.workflowMinimap, ...e - }, te(t); + }, ee(t); } catch (e) { console.debug?.(e); } @@ -3617,14 +3617,14 @@ var xn = { n.asset?.detected_task ? `detected: ${n.asset.detected_task}` : "", n.asset?.detected_model_family ? n.asset.detected_model_family : "", n.asset?.detected_provider ? n.asset.detected_provider : "" - ].filter(Boolean).join(" · ")), Ae = H(() => Ge(n.asset?.missing_nodes || n.asset?.missingNodes)), je = H(() => Ge(n.asset?.missing_models || n.asset?.missingModels)), Me = H(() => Ge(n.asset?.tags || n.asset?.workflow_tags || n.asset?.tags_json)), Ne = H(() => Me.value.slice(0, 3)), Pe = H(() => Math.max(0, Me.value.length - Ne.value.length)), Fe = H(() => Ge(x.value?.missing_nodes)), Ie = H(() => Ge(x.value?.missing_models)), Le = H(() => Ge(x.value?.warnings)), Re = H(() => { - let e = x.value; + ].filter(Boolean).join(" · ")), Ae = H(() => Ge(n.asset?.missing_nodes || n.asset?.missingNodes)), je = H(() => Ge(n.asset?.missing_models || n.asset?.missingModels)), Me = H(() => Ge(n.asset?.tags || n.asset?.workflow_tags || n.asset?.tags_json)), Ne = H(() => Me.value.slice(0, 3)), Pe = H(() => Math.max(0, Me.value.length - Ne.value.length)), Fe = H(() => Ge(S.value?.missing_nodes)), Ie = H(() => Ge(S.value?.missing_models)), Le = H(() => Ge(S.value?.warnings)), Re = H(() => { + let e = S.value; return e ? `${Number(e.node_count || 0)} nodes | ${Number(e.subgraph_count || 0)} subgraphs | ${Array.isArray(e.required_nodes) ? e.required_nodes.length : 0} node types` : ""; }), ze = H(() => { - let e = ne.value?.[0]; + let e = te.value?.[0]; return e ? String(e.filename || "").replace(/\.json$/i, "") : ""; }), Be = H(() => { - let e = C.value; + let e = w.value; return e ? `${Number(e.changed?.length || 0)} changed | ${Number(e.added?.length || 0)} added | ${Number(e.removed?.length || 0)} removed` : ""; }), Ve = H(() => { let e = Number(n.asset?.usage_count || n.asset?.usageCount || 0); @@ -3691,8 +3691,8 @@ var xn = { async function qe() { if (X.value) return; let e = be.value; - if (e && !h.value) { - h.value = !0; + if (e && !m.value) { + m.value = !0; try { let t = await _(e, { timeoutMs: 25e3 }); if (!t?.ok) return; @@ -3705,7 +3705,7 @@ var xn = { } catch (e) { console.debug?.(e); } finally { - h.value = !1; + m.value = !1; } } } @@ -3718,70 +3718,70 @@ var xn = { return String(e?.type || e?.class_type || e?.name || "").trim(); } function nt() { - c.value = Xe.value; + l.value = Xe.value; } async function rt() { if (!xe.value) return; let e = String(n.asset?.filepath || n.asset?.path || n.asset?.file_info?.filepath || "").trim(); if (!e) { - o(m("toast.workflowMissingPath", "Workflow file path is missing."), "error"); + r(g("toast.workflowMissingPath", "Workflow file path is missing."), "error"); return; } - let t = String(c.value || "").trim(); + let t = String(l.value || "").trim(); if (t !== Xe.value) { - l.value = !0; + p.value = !0; try { - let n = await ee({ + let n = await x({ filepath: e, category: t }, { timeoutMs: 3e4 }); if (!n?.ok) { - o(n?.error || m("toast.workflowMoveFailed", "Failed to move workflow."), "error"); + r(n?.error || g("toast.workflowMoveFailed", "Failed to move workflow."), "error"); return; } - c.value = String(n?.data?.workflow?.category || t || "").trim(), o(m("toast.workflowCategoryUpdated", "Workflow category updated"), "success", 1800); + l.value = String(n?.data?.workflow?.category || t || "").trim(), r(g("toast.workflowCategoryUpdated", "Workflow category updated"), "success", 1800); } catch { - o(m("toast.workflowMoveFailed", "Failed to move workflow."), "error"); + r(g("toast.workflowMoveFailed", "Failed to move workflow."), "error"); } finally { - l.value = !1; + p.value = !1; } } } async function it() { let e = be.value; if (!e) { - o(m("toast.workflowMissingPath", "Workflow file path is missing."), "error"); + r(g("toast.workflowMissingPath", "Workflow file path is missing."), "error"); return; } - let t = await f({ + let t = await d({ filepath: e, limit: 12 }, { timeoutMs: 15e3 }); if (!t?.ok) { - o(t?.error || m("toast.workflowLoadFailed", "Failed to load workflow."), "error"); + r(t?.error || g("toast.workflowLoadFailed", "Failed to load workflow."), "error"); return; } - let r = Array.isArray(t.data) ? t.data : []; - if (!r.length) { - o(m("toast.workflowThumbnailNoCandidates", "No linked outputs are available for this workflow yet."), "warning", 2600); + let i = Array.isArray(t.data) ? t.data : []; + if (!i.length) { + r(g("toast.workflowThumbnailNoCandidates", "No linked outputs are available for this workflow yet."), "warning", 2600); return; } - let i = await dn({ - title: m("ctx.setWorkflowThumbnail", "Set workflow thumbnail"), + let a = await dn({ + title: g("ctx.setWorkflowThumbnail", "Set workflow thumbnail"), workflow: n.asset, - items: r + items: i }); - if (!i?.filepath) return; - let a = await b({ + if (!a?.filepath) return; + let o = await b({ filepath: e, - source_filepath: i.filepath + source_filepath: a.filepath }, { timeoutMs: 3e4 }); - a?.ok ? (o(m("toast.workflowUpdated", "Workflow updated"), "success", 1800), window?.dispatchEvent?.(new CustomEvent("mjr:reload-grid", { detail: { reason: "workflow-thumbnail-sidebar" } }))) : o(a?.error || m("toast.workflowSaveFailed", "Failed to save workflow."), "error"); + o?.ok ? (r(g("toast.workflowUpdated", "Workflow updated"), "success", 1800), window?.dispatchEvent?.(new CustomEvent("mjr:reload-grid", { detail: { reason: "workflow-thumbnail-sidebar" } }))) : r(o?.error || g("toast.workflowSaveFailed", "Failed to save workflow."), "error"); } async function at() { - if (await qe(), !X.value) o(m("toast.workflowLoadFailed", "Failed to load workflow."), "error"); + if (await qe(), !X.value) r(g("toast.workflowLoadFailed", "Failed to load workflow."), "error"); else try { - await S.openAssets({ + await C.openAssets({ assets: [{ ...n.asset, workflow: X.value, @@ -3791,28 +3791,28 @@ var xn = { mode: "graph" }); } catch (e) { - console.debug?.(e), o(m("toast.workflowLoadFailed", "Failed to load workflow."), "error"); + console.debug?.(e), r(g("toast.workflowLoadFailed", "Failed to load workflow."), "error"); } } async function ot() { - let t = be.value; - if (!t) o(m("toast.workflowMissingPath", "Workflow file path is missing."), "error"); + let e = be.value; + if (!e) r(g("toast.workflowMissingPath", "Workflow file path is missing."), "error"); else { - y.value = !0, x.value = null, ne.value = [], C.value = null; + y.value = !0, S.value = null, te.value = [], w.value = null; try { - let [n, r] = await Promise.all([e(t, { timeoutMs: 2e4 }), d(t, { timeoutMs: 15e3 })]); + let [n, i] = await Promise.all([t(e, { timeoutMs: 2e4 }), u(e, { timeoutMs: 15e3 })]); if (!n?.ok) { - o(n?.error || m("toast.workflowLoadFailed", "Failed to load workflow."), "error"); + r(n?.error || g("toast.workflowLoadFailed", "Failed to load workflow."), "error"); return; } - x.value = n.data || {}, ne.value = Array.isArray(r?.data?.versions) ? r.data.versions : []; - let i = ne.value[0]; - if (i?.filepath) { - let e = await p(t, i.filepath, { timeoutMs: 15e3 }); - e?.ok && (C.value = e.data || null); + S.value = n.data || {}, te.value = Array.isArray(i?.data?.versions) ? i.data.versions : []; + let a = te.value[0]; + if (a?.filepath) { + let t = await f(e, a.filepath, { timeoutMs: 15e3 }); + t?.ok && (w.value = t.data || null); } } catch (e) { - console.debug?.(e), o(m("toast.workflowLoadFailed", "Failed to load workflow."), "error"); + console.debug?.(e), r(g("toast.workflowLoadFailed", "Failed to load workflow."), "error"); } finally { y.value = !1; } @@ -3844,7 +3844,7 @@ var xn = { }; }), ut = H(() => { let e = String(D.value?.size || "comfortable"); - return a.find((t) => t.key === e) || a[1]; + return o.find((t) => t.key === e) || o[1]; }), dt = H(() => `${ut.value.height}px`), ft = H(() => [ { key: "showNodeLabels", @@ -3894,7 +3894,7 @@ var xn = { }) || null, oe(j?.resolvedView); } function pt(e) { - g(e); + c(e); } function mt(e) { let t = s.value; @@ -3970,7 +3970,7 @@ var xn = { }, ye(D.value); } function wt(e) { - a.some((t) => t.key === e) && (D.value = { + o.some((t) => t.key === e) && (D.value = { ...D.value, size: e }, ye(D.value)); @@ -3988,7 +3988,7 @@ var xn = { }, { deep: !0, flush: "post" - }), W(w, () => { + }), W(T, () => { Q(); }, { flush: "post" }), de(() => { try { @@ -4138,7 +4138,7 @@ var xn = { }, onClick: it }, { - default: V(() => [t[8] ||= I("i", { class: "pi pi-image" }, null, -1), I("span", null, G(J(m)("ctx.setWorkflowThumbnail", "Set workflow thumbnail")), 1)]), + default: V(() => [t[8] ||= I("i", { class: "pi pi-image" }, null, -1), I("span", null, G(J(g)("ctx.setWorkflowThumbnail", "Set workflow thumbnail")), 1)]), _: 1 }), R(n, { @@ -4161,7 +4161,7 @@ var xn = { }, onClick: at }, { - default: V(() => [t[9] ||= I("i", { class: "pi pi-search" }, null, -1), I("span", null, G(J(m)("ctx.inspect", "Inspect")), 1)]), + default: V(() => [t[9] ||= I("i", { class: "pi pi-search" }, null, -1), I("span", null, G(J(g)("ctx.inspect", "Inspect")), 1)]), _: 1 }), R(n, { @@ -4189,7 +4189,7 @@ var xn = { _: 1 }, 8, ["disabled"]) ]), - x.value ? (U(), q("div", aa, [ + S.value ? (U(), q("div", aa, [ I("div", oa, [t[10] ||= I("div", { style: { "font-size": "10px", "font-weight": "800", @@ -4290,9 +4290,9 @@ var xn = { "white-space": "nowrap" } }, G(e), 1))), 128))], 8, Ea)) : z("", !0)]), I("div", Da, [ae(I("input", { - "onUpdate:modelValue": t[0] ||= (e) => c.value = e, + "onUpdate:modelValue": t[0] ||= (e) => l.value = e, type: "text", - placeholder: J(m)("dialog.workflowCategory", "Workflow category"), + placeholder: J(g)("dialog.workflowCategory", "Workflow category"), style: { flex: "1", "min-width": "0", @@ -4303,26 +4303,26 @@ var xn = { color: "rgba(255,255,255,0.92)", "font-size": "12px" } - }, null, 8, Oa), [[ge, c.value]]), R(n, { + }, null, 8, Oa), [[ge, l.value]]), R(n, { type: "button", severity: "secondary", text: "", rounded: "", - disabled: l.value, + disabled: p.value, style: K({ padding: "8px 12px", borderRadius: "8px", border: "1px solid rgba(255,255,255,0.12)", - background: l.value ? "rgba(255,255,255,0.06)" : "rgba(33,150,243,0.16)", + background: p.value ? "rgba(255,255,255,0.06)" : "rgba(33,150,243,0.16)", color: "rgba(255,255,255,0.92)", - cursor: l.value ? "wait" : "pointer", + cursor: p.value ? "wait" : "pointer", fontSize: "12px", fontWeight: "700", whiteSpace: "nowrap" }), onClick: rt }, { - default: V(() => [pe(G(l.value ? "Saving..." : "Move"), 1)]), + default: V(() => [pe(G(p.value ? "Saving..." : "Move"), 1)]), _: 1 }, 8, ["disabled", "style"])])])) : z("", !0), st.value.length ? (U(), q("div", ka, [ @@ -4349,7 +4349,7 @@ var xn = { }, 8, ["value"]), ct.value ? (U(), q("div", Pa, " +" + G(ct.value) + " more nodes ", 1)) : z("", !0) ])) : z("", !0), - I("div", Fa, [I("div", Ia, [(U(!0), q(F, null, L(J(a), (e) => (U(), se(n, { + I("div", Fa, [I("div", Ia, [(U(!0), q(F, null, L(J(o), (e) => (U(), se(n, { key: e.key, type: "button", severity: "secondary", @@ -4381,7 +4381,7 @@ var xn = { severity: "secondary", text: "", rounded: "", - title: J(m)("tooltip.minimapSettings", "Minimap settings"), + title: J(g)("tooltip.minimapSettings", "Minimap settings"), style: { width: "28px", height: "28px", @@ -4394,12 +4394,12 @@ var xn = { color: "rgba(255,255,255,0.9)", cursor: "pointer" }, - onClick: t[1] ||= (e) => w.value = !w.value + onClick: t[1] ||= (e) => T.value = !T.value }, { default: V(() => [...t[16] ||= [I("i", { class: "pi pi-sliders-h" }, null, -1)]]), _: 1 }, 8, ["title"])]), - w.value ? (U(), q("div", La, [(U(!0), q(F, null, L(ft.value, (e) => (U(), se(n, { + T.value ? (U(), q("div", La, [(U(!0), q(F, null, L(ft.value, (e) => (U(), se(n, { key: e.key, type: "button", severity: "secondary", @@ -4472,9 +4472,9 @@ var xn = { }, null, 36)]), I("div", Ha, [I("span", null, G(k.value || "Click/drag to navigate | wheel to zoom"), 1), I("span", null, G(Math.round((O.value.zoom || 1) * 100)) + "% | " + G(ut.value.label), 1)]), I("details", { - open: T.value, + open: ne.value, style: { "margin-top": "10px" }, - onToggle: t[2] ||= (e) => T.value = e.target.open + onToggle: t[2] ||= (e) => ne.value = e.target.open }, [t[17] ||= I("summary", { style: { cursor: "pointer", color: "var(--mjr-muted, rgba(255,255,255,0.65))", @@ -4503,93 +4503,93 @@ var xn = { function n(e) { return Math.max(0, Math.min(5, Number(e) || 0)); } - let r = e, i = t, s = n(r.asset?.rating ?? r.modelValue), c = Y(s), l = Y(0), u = Y(!1), d = s, f = s, p = null, h = H(() => l.value > 0 ? l.value : c.value), g = (e) => e <= h.value ? "#FFD45A" : "#555", _ = (e) => e <= h.value ? "scale(1.1)" : "scale(1)", v = H(() => { - let e = r.size; + let i = e, o = t, s = n(i.asset?.rating ?? i.modelValue), c = Y(s), u = Y(0), d = Y(!1), f = s, p = s, m = null, h = H(() => u.value > 0 ? u.value : c.value), _ = (e) => e <= h.value ? "#FFD45A" : "#555", v = (e) => e <= h.value ? "scale(1.1)" : "scale(1)", y = H(() => { + let e = i.size; return typeof e == "number" ? `${Math.max(8, e)}px` : String(e || "").trim() || "16px"; }), b = (e) => Math.min(100 * 2 ** Math.max(0, e - 1), 2e3), x = (e) => new Promise((t) => setTimeout(t, e)); - function ee(e) { - if (u.value) return; + function S(e) { + if (d.value) return; let t = n(e); - d = t, f = t, t !== c.value && (c.value = t); + f = t, p = t, t !== c.value && (c.value = t); } - function S(e = null) { - c.value = d, f = d, i("update:modelValue", d), e && o(e, "error"); + function C(e = null) { + c.value = f, p = f, o("update:modelValue", f), e && r(e, "error"); } - async function te() { - if (u.value) return; - u.value = !0; + async function ee() { + if (d.value) return; + d.value = !0; let e = Date.now(); try { let t = 0; for (; t < 10;) { if (Date.now() - e > 3e4) { - S(m("toast.ratingUpdateFailed", "Rating update failed")); + C(g("toast.ratingUpdateFailed", "Rating update failed")); break; } t > 0 && await x(b(t)), t += 1; - let s = n(f), l = typeof AbortController < "u" ? new AbortController() : null; - p = l; - let u = null; + let s = n(p), u = typeof AbortController < "u" ? new AbortController() : null; + m = u; + let d = null; try { - u = await a(r.asset, s, l ? { signal: l.signal } : {}); + d = await a(i.asset, s, u ? { signal: u.signal } : {}); } catch (e) { console.error("Failed to update rating:", e); } - if (!u?.ok) { - if (u?.code === "ABORTED" && f !== s) continue; - S(u?.error || m("toast.ratingUpdateFailed", "Rating update failed")); + if (!d?.ok) { + if (d?.code === "ABORTED" && p !== s) continue; + C(d?.error || g("toast.ratingUpdateFailed", "Rating update failed")); break; } try { - let e = u?.data?.asset_id ?? null; - e != null && !y(r.asset.id) && (r.asset.id = e); + let e = d?.data?.asset_id ?? null; + e != null && !l(i.asset.id) && (i.asset.id = e); } catch (e) { console.debug?.(e); } - d = s, c.value = s; + f = s, c.value = s; try { - r.asset.rating = s; + i.asset.rating = s; } catch (e) { console.debug?.(e); } - if (i("update:modelValue", s), i("rating-change", { - assetId: r.asset?.id, + if (o("update:modelValue", s), o("rating-change", { + assetId: i.asset?.id, rating: s - }), ne(P, { - assetId: r.asset?.id == null ? "" : String(r.asset.id), + }), te(P, { + assetId: i.asset?.id == null ? "" : String(i.asset.id), rating: s - }), f === s) { - o(m("toast.ratingSetN", { n: s }), "success", 1e3); + }), p === s) { + r(g("toast.ratingSetN", { n: s }), "success", 1e3); break; } } - t >= 10 && S(m("toast.ratingUpdateFailed", "Rating update failed")); + t >= 10 && C(g("toast.ratingUpdateFailed", "Rating update failed")); } finally { - p = null, u.value = !1; + m = null, d.value = !1; } } - function C(e) { - if (r.disabled) return; + function w(e) { + if (i.disabled) return; let t = n(e); - f = t, c.value = t, l.value = 0, i("update:modelValue", t); + p = t, c.value = t, u.value = 0, o("update:modelValue", t); try { - p?.abort?.(); + m?.abort?.(); } catch (e) { console.debug?.(e); } - te(); - } - function w(e) { - C(e); + ee(); } function T(e) { - r.disabled || (l.value = e); + w(e); + } + function ne(e) { + i.disabled || (u.value = e); } function E() { - l.value = 0; + u.value = 0; } function D(e) { - if (r.disabled) return; + if (i.disabled) return; let t = null; switch (e.key) { case "ArrowRight": @@ -4608,18 +4608,18 @@ var xn = { break; default: e.key >= "0" && e.key <= "5" && (e.preventDefault(), t = parseInt(e.key, 10)); } - t !== null && t !== c.value && C(t); + t !== null && t !== c.value && w(t); } return de(() => { try { - p?.abort?.(); + m?.abort?.(); } catch (e) { console.debug?.(e); } - }), W(() => r.modelValue, (e) => { - ee(e); - }), W(() => r.asset?.rating, (e) => { - ee(e); + }), W(() => i.modelValue, (e) => { + S(e); + }), W(() => i.asset?.rating, (e) => { + S(e); }), (t, n) => { let r = le("MButton"); return U(), q("div", { @@ -4630,10 +4630,10 @@ var xn = { pointerEvents: e.disabled ? "none" : "auto", opacity: e.disabled ? .6 : 1 }), - "aria-busy": u.value, + "aria-busy": d.value, "aria-disabled": e.disabled, role: "slider", - "aria-label": J(m)("rating.label", "Rating"), + "aria-label": J(g)("rating.label", "Rating"), "aria-valuemin": 0, "aria-valuemax": 5, "aria-valuenow": c.value, @@ -4647,20 +4647,20 @@ var xn = { text: "", rounded: "", style: K({ - color: g(t), - transform: _(t), - fontSize: v.value, + color: _(t), + transform: v(t), + fontSize: y.value, background: "none", border: "none", cursor: e.disabled ? "default" : "pointer", padding: "0", transition: "all 0.15s ease" }), - "aria-label": J(m)("rating.setN", { n: t }), + "aria-label": J(g)("rating.setN", { n: t }), "aria-pressed": t <= c.value, disabled: e.disabled, - onClick: (e) => w(t), - onMouseenter: (e) => T(t), + onClick: (e) => T(t), + onMouseenter: (e) => ne(t), onMouseleave: E }, { default: V(() => [...n[0] ||= [pe(" ★ ", -1)]]), @@ -4693,8 +4693,8 @@ var xn = { } }, emits: ["update:modelValue", "tags-change"], - setup(e, { emit: n }) { - function r(e) { + setup(e, { emit: t }) { + function i(e) { try { let t = String(e ?? "").trim(); if (!t || t.length > no) return null; @@ -4707,24 +4707,24 @@ var xn = { return null; } } - function i(e) { + function a(e) { try { return String(e ?? "").replace(/[\x00-\x1f\x7f]/g, "").trim() || null; } catch { return null; } } - function a(e) { - let t = i(e); + function o(e) { + let t = a(e); return t ? t.toLowerCase() : ""; } function s(e) { let t = [], n = /* @__PURE__ */ new Set(); for (let r of Array.isArray(e) ? e : []) { - let e = i(r); + let e = a(r); if (!e) continue; - let a = e.toLowerCase(); - if (!n.has(a) && (n.add(a), t.push(e), t.length >= ro)) break; + let i = e.toLowerCase(); + if (!n.has(i) && (n.add(i), t.push(e), t.length >= ro)) break; } return t; } @@ -4742,164 +4742,164 @@ var xn = { } return []; } - function l(e, t) { + function u(e, t) { if (!Array.isArray(e) || !Array.isArray(t) || e.length !== t.length) return !1; for (let n = 0; n < e.length; n += 1) if (e[n] !== t[n]) return !1; return !0; } - let u = e, d = n, f = c(u.asset?.tags ?? u.modelValue ?? []), p = Y([...f]), g = Y(null), _ = Y(""), v = Y(!1), b = Y(-1), x = Y(null), ee = Y([]), S = Y(!1), te = (e) => e?.$el || e || null, C = !1, w = !1, T = null, E = [...f], D = (e) => Math.min(100 * 2 ** Math.max(0, e - 1), 2e3), O = (e) => new Promise((t) => setTimeout(t, e)), re = () => setTimeout(() => v.value = !1, 200), k = H(() => { - let e = _.value.toLowerCase().trim(); + let d = e, f = t, m = c(d.asset?.tags ?? d.modelValue ?? []), h = Y([...m]), _ = Y(null), v = Y(""), y = Y(!1), b = Y(-1), x = Y(null), S = Y([]), C = Y(!1), ee = (e) => e?.$el || e || null, w = !1, T = !1, ne = null, E = [...m], D = (e) => Math.min(100 * 2 ** Math.max(0, e - 1), 2e3), O = (e) => new Promise((t) => setTimeout(t, e)), re = () => setTimeout(() => y.value = !1, 200), k = H(() => { + let e = v.value.toLowerCase().trim(); if (!e) return []; - let t = new Set(p.value.map((e) => a(e)).filter(Boolean)); - return ee.value.filter((n) => { - let r = a(n); + let t = new Set(h.value.map((e) => o(e)).filter(Boolean)); + return S.value.filter((n) => { + let r = o(n); return n.toLowerCase().includes(e) && (!r || !t.has(r)); }).slice(0, 10); }), A = H(() => k.value.length > 0); function j(e) { - if (C) return; + if (w) return; let t = c(e); - E = [...t], l(t, p.value) || (p.value = [...t]); + E = [...t], u(t, h.value) || (h.value = [...t]); } function ie(e) { - let t = [...e], n = u.asset?.id == null ? "" : String(u.asset.id); - d("update:modelValue", t), d("tags-change", { - assetId: u.asset?.id, + let t = [...e], n = d.asset?.id == null ? "" : String(d.asset.id); + f("update:modelValue", t), f("tags-change", { + assetId: d.asset?.id, tags: t - }), ne(N, { + }), te(N, { assetId: n, tags: t }); } async function M() { - if (u.disabled) return; - if (C) { - w = !0; + if (d.disabled) return; + if (w) { + T = !0; try { - T?.abort?.(); + ne?.abort?.(); } catch (e) { console.debug?.(e); } return; } - C = !0, S.value = !0; + w = !0, C.value = !0; let e = 0; for (; e < 10;) { e > 0 && await O(D(e)), e += 1; - let n = c(p.value), r = typeof AbortController < "u" ? new AbortController() : null; - T = r; - let i = null; + let t = c(h.value), i = typeof AbortController < "u" ? new AbortController() : null; + ne = i; + let a = null; try { - i = await t(u.asset, n, r ? { signal: r.signal } : {}); + a = await n(d.asset, t, i ? { signal: i.signal } : {}); } catch (e) { console.error("Failed to update tags:", e); } - if (!i?.ok) { - if (i?.code === "ABORTED") { - if (w) { - w = !1; + if (!a?.ok) { + if (a?.code === "ABORTED") { + if (T) { + T = !1; continue; } break; } let e = [...E]; - p.value = e, d("update:modelValue", e), o(i?.error || m("toast.tagsUpdateFailed", "Failed to update tags"), "error"), C = !1, T = null, S.value = !1; + h.value = e, f("update:modelValue", e), r(a?.error || g("toast.tagsUpdateFailed", "Failed to update tags"), "error"), w = !1, ne = null, C.value = !1; return; } try { - let e = i?.data?.asset_id ?? null; - e != null && !y(u.asset.id) && (u.asset.id = e); + let e = a?.data?.asset_id ?? null; + e != null && !l(d.asset.id) && (d.asset.id = e); } catch (e) { console.debug?.(e); } - let a = c(Array.isArray(i?.data?.tags) ? i.data.tags : n); - E = [...a]; + let o = c(Array.isArray(a?.data?.tags) ? a.data.tags : t); + E = [...o]; try { - u.asset.tags = [...a]; + d.asset.tags = [...o]; } catch (e) { console.debug?.(e); } - if (w || (p.value = [...a]), ie(a), o(m("toast.tagsUpdated", "Tags updated"), "success", 1e3), !w) break; - w = !1; + if (T || (h.value = [...o]), ie(o), r(g("toast.tagsUpdated", "Tags updated"), "success", 1e3), !T) break; + T = !1; } if (e >= 10) { let e = [...E]; - p.value = e; + h.value = e; try { - u.asset.tags = [...e]; + d.asset.tags = [...e]; } catch (e) { console.debug?.(e); } - d("update:modelValue", e), o(m("toast.tagsUpdateFailed", "Failed to update tags"), "error"); + f("update:modelValue", e), r(g("toast.tagsUpdateFailed", "Failed to update tags"), "error"); } - C = !1, T = null, S.value = !1; + w = !1, ne = null, C.value = !1; } ce(async () => { try { - await oe(), u.autofocus && te(g.value)?.focus(); + await oe(), d.autofocus && ee(_.value)?.focus(); } catch (e) { console.debug?.(e); } try { - let e = await h(); - e?.ok && Array.isArray(e?.data) && (ee.value = s(e.data)); + let e = await p(); + e?.ok && Array.isArray(e?.data) && (S.value = s(e.data)); } catch (e) { console.warn("Failed to load available tags:", e); } }), de(() => { try { - T?.abort?.(); + ne?.abort?.(); } catch (e) { console.debug?.(e); } }); function P(e) { - if (u.disabled) return; - let t = r(e); + if (d.disabled) return; + let t = i(e); if (!t) return; - let n = a(t); - n && (p.value.some((e) => a(e) === n) || (p.value.length >= ro ? o(m("toast.maxTagsReached", "Maximum number of tags reached"), "warning") : (p.value = [...p.value, t], M()))); + let n = o(t); + n && (h.value.some((e) => o(e) === n) || (h.value.length >= ro ? r(g("toast.maxTagsReached", "Maximum number of tags reached"), "warning") : (h.value = [...h.value, t], M()))); } function se(e) { - if (u.disabled || e < 0 || e >= p.value.length) return; - let t = [...p.value]; - t.splice(e, 1), p.value = t, M(); + if (d.disabled || e < 0 || e >= h.value.length) return; + let t = [...h.value]; + t.splice(e, 1), h.value = t, M(); } function z(e) { if (e.key === "Enter" || e.key === ",") { e.preventDefault(); - let t = (v.value && A.value && b.value >= 0 ? k.value[b.value] : null) || _.value.trim(); - t && (P(t), _.value = "", v.value = !1, b.value = -1, x.value = null); - } else if (e.key === "Escape") v.value = !1, b.value = -1, x.value = null; + let t = (y.value && A.value && b.value >= 0 ? k.value[b.value] : null) || v.value.trim(); + t && (P(t), v.value = "", y.value = !1, b.value = -1, x.value = null); + } else if (e.key === "Escape") y.value = !1, b.value = -1, x.value = null; else if (e.key === "ArrowDown") e.preventDefault(), A.value && (b.value = Math.min(b.value + 1, k.value.length - 1)); else if (e.key === "ArrowUp") e.preventDefault(), b.value = Math.max(b.value - 1, 0); else if (e.key === "Tab" && A.value) { e.preventDefault(); let t = k.value[b.value] || k.value[0]; - t && (_.value = t); + t && (v.value = t); } } function B(e) { - P(e), _.value = "", v.value = !1, b.value = -1, x.value = null, te(g.value)?.focus(); + P(e), v.value = "", y.value = !1, b.value = -1, x.value = null, ee(_.value)?.focus(); } function ue(e) { let t = e?.value ?? x.value; t && B(t); } - return W(() => u.modelValue, (e) => { + return W(() => d.modelValue, (e) => { j(e); - }), W(() => u.asset?.tags, (e) => { + }), W(() => d.asset?.tags, (e) => { j(e); }), (t, n) => { let r = le("MButton"), i = le("MInputText"), a = le("MListbox"); return U(), q("div", { class: me(["mjr-tags-editor", { "is-disabled": e.disabled }]), - "aria-busy": S.value + "aria-busy": C.value }, [I("div", { class: "mjr-tags-display", role: "list", - "aria-label": J(m)("tags.label", "Tags") - }, [p.value.length === 0 ? (U(), q("span", $a, G(J(m)("msg.noTagsYet", "No tags yet...")), 1)) : (U(!0), q(F, { key: 1 }, L(p.value, (t, i) => (U(), q("div", { + "aria-label": J(g)("tags.label", "Tags") + }, [h.value.length === 0 ? (U(), q("span", $a, G(J(g)("msg.noTagsYet", "No tags yet...")), 1)) : (U(!0), q(F, { key: 1 }, L(h.value, (t, i) => (U(), q("div", { key: t, class: "mjr-tag-chip", role: "listitem" @@ -4909,7 +4909,7 @@ var xn = { severity: "secondary", text: "", rounded: "", - "aria-label": J(m)("tags.remove", "Remove tag"), + "aria-label": J(g)("tags.remove", "Remove tag"), disabled: e.disabled, onClick: (e) => se(i) }, { @@ -4921,19 +4921,19 @@ var xn = { "onClick" ])]))), 128))], 8, Qa), I("div", eo, [R(i, { ref_key: "inputRef", - ref: g, - modelValue: _.value, - "onUpdate:modelValue": n[0] ||= (e) => _.value = e, + ref: _, + modelValue: v.value, + "onUpdate:modelValue": n[0] ||= (e) => v.value = e, type: "text", class: "mjr-tag-input", - placeholder: J(m)("sidebar.addTag", "Add tag..."), + placeholder: J(g)("sidebar.addTag", "Add tag..."), disabled: e.disabled, - "aria-label": J(m)("tags.addLabel", "Add tag"), + "aria-label": J(g)("tags.addLabel", "Add tag"), "aria-autocomplete": A.value ? "list" : "none", - "aria-expanded": v.value, + "aria-expanded": y.value, "aria-haspopup": A.value ? "listbox" : void 0, - onFocus: n[1] ||= (e) => v.value = _.value.length > 0, - onInput: n[2] ||= (e) => v.value = _.value.length > 0, + onFocus: n[1] ||= (e) => y.value = v.value.length > 0, + onInput: n[2] ||= (e) => y.value = v.value.length > 0, onKeydown: z, onBlur: re }, null, 8, [ @@ -4950,7 +4950,7 @@ var xn = { options: k.value, class: "mjr-tags-dropdown", "scroll-height": "150px", - "aria-label": J(m)("tags.suggestions", "Tag suggestions"), + "aria-label": J(g)("tags.suggestions", "Tag suggestions"), onChange: ue }, { option: V(({ option: e, index: t }) => [I("div", { @@ -4963,7 +4963,7 @@ var xn = { "modelValue", "options", "aria-label" - ]), [[fe, v.value && A.value]])])], 10, Za); + ]), [[fe, y.value && A.value]])])], 10, Za); }; } }); diff --git a/dist/chunks/ViewerPortal-Sv96pbcb.js b/dist/chunks/ViewerPortal-CpLDC7XS.js similarity index 98% rename from dist/chunks/ViewerPortal-Sv96pbcb.js rename to dist/chunks/ViewerPortal-CpLDC7XS.js index 96bddca8..1d44f9e9 100644 --- a/dist/chunks/ViewerPortal-Sv96pbcb.js +++ b/dist/chunks/ViewerPortal-CpLDC7XS.js @@ -1,9 +1,9 @@ -import { T as e, Wt as t, Yn as n, f as r, in as i, ir as a, s as o, u as s } from "./config-C9a-wT5M.js"; -import { a as c, i as l, r as u } from "./floatingViewerManager-B_I-SRbd.js"; +import { Kt as e, T as t, Zn as n, f as r, on as i, or as a, s as o, u as s } from "./config-D56TZeFo.js"; +import { a as c, i as l, r as u } from "./floatingViewerManager-D_aLLeau.js"; import { i as d, r as f, t as p } from "./events-1iwo5blr.js"; -import { a as ee, i as m, n as h, r as g, t as _ } from "./TagsEditor-MUk741GH.js"; -import { $ as te, A as v, B as ne, C as y, D as b, E as x, H as S, J as re, K as C, M as w, O as T, P as E, Q as D, S as O, T as k, U as A, V as ie, W as j, X as M, Y as N, b as ae, gt as P, ht as F, j as I, k as L, lt as oe, mt as R, ot as se, pt as z, q as B, rt as ce, st as V, w as le, z as H } from "./mjr-primevue-C07IsEdU.js"; -import { C as U, _ as W, a as ue, b as de, c as G, d as fe, f as pe, g as me, h as he, i as ge, l as _e, m as ve, n as ye, o as K, p as be, r as xe, s as q, t as Se, u as Ce, v as we, x as Te, y as Ee } from "./genInfo-Dk8cerKp.js"; +import { a as ee, i as m, n as h, r as g, t as _ } from "./TagsEditor-NiAR71Jm.js"; +import { $ as te, A as v, B as ne, C as y, D as b, E as x, H as S, J as re, K as C, M as w, O as T, P as E, Q as D, S as O, T as k, U as A, V as ie, W as j, X as M, Y as N, b as ae, gt as P, ht as F, j as I, k as L, lt as oe, mt as R, ot as se, pt as z, q as B, rt as ce, st as V, w as le, z as H } from "./mjr-primevue-QrNPJaqR.js"; +import { C as U, _ as W, a as ue, b as de, c as G, d as fe, f as pe, g as me, h as he, i as ge, l as _e, m as ve, n as ye, o as K, p as be, r as xe, s as q, t as Se, u as Ce, v as we, x as Te, y as Ee } from "./genInfo-z8Muj1-U.js"; // ui/vue/components/viewer/FloatingViewerHost.vue var De = /* @__PURE__ */ E({ __name: "FloatingViewerHost", @@ -1428,12 +1428,12 @@ var Re = { X.value && (q.compare = q.compare === "off" ? "wipe" : "off"); } async function Ke() { - let e = await Me(Re()), n = window.ClipboardItem; - if (!e || !n || !navigator.clipboard?.write) t(i("viewer.studio.copyFailed", "Could not copy this image"), "error"); + let t = await Me(Re()), n = window.ClipboardItem; + if (!t || !n || !navigator.clipboard?.write) e(i("viewer.studio.copyFailed", "Could not copy this image"), "error"); else try { - await navigator.clipboard.write([new n({ "image/png": e })]), t(i("viewer.studio.copied", "Copied to clipboard"), "success"); - } catch (e) { - console.debug?.(e), t(i("viewer.studio.copyFailed", "Could not copy this image"), "error"); + await navigator.clipboard.write([new n({ "image/png": t })]), e(i("viewer.studio.copied", "Copied to clipboard"), "success"); + } catch (t) { + console.debug?.(t), e(i("viewer.studio.copyFailed", "Could not copy this image"), "error"); } } let qe = [ @@ -1499,14 +1499,14 @@ var Re = { async function tt(n) { let r = B.value; if (!r) return; - let a = Math.max(0, Math.min(5, n)), o = await e(r, a); + let a = Math.max(0, Math.min(5, n)), o = await t(r, a); o?.ok ? (r.rating = a, N.value = N.value ? { ...N.value, rating: a } : r, window.dispatchEvent(new CustomEvent(p, { detail: { assetId: r.id == null ? "" : String(r.id), rating: a - } }))) : t(o?.error || i("toast.ratingUpdateFailed", "Rating update failed"), "error"); + } }))) : e(o?.error || i("toast.ratingUpdateFailed", "Rating update failed"), "error"); } function rt(e) { return !!e?.closest?.("input, textarea, select, [contenteditable='true']"); diff --git a/dist/chunks/config-C9a-wT5M.js b/dist/chunks/config-D56TZeFo.js similarity index 97% rename from dist/chunks/config-C9a-wT5M.js rename to dist/chunks/config-D56TZeFo.js index 9c41daa7..d6ea2bd9 100644 --- a/dist/chunks/config-C9a-wT5M.js +++ b/dist/chunks/config-D56TZeFo.js @@ -147,6 +147,8 @@ var g = 200, _ = 0, v = { DB_BACKUPS: "/mjr/am/db/backups", DB_BACKUP_SAVE: "/mjr/am/db/backup-save", DB_BACKUP_RESTORE: "/mjr/am/db/backup-restore", + TRASH: "/mjr/am/trash", + TRASH_EMPTY: "/mjr/am/trash/empty", VECTOR_SEARCH: "/mjr/am/vector/search", VECTOR_SIMILAR: "/mjr/am/vector/similar", VECTOR_ALIGNMENT: "/mjr/am/vector/alignment", @@ -1953,6 +1955,8 @@ var F = { "btn.close": "Close", "btn.dbSave": "Save DB", "btn.dbRestore": "Restore DB", + "btn.emptyTrash": "Empty trash", + "btn.emptyTrashRunning": "Emptying...", "btn.back": "Back", "btn.up": "Up", "btn.saving": "Saving...", @@ -2130,6 +2134,8 @@ var F = { "status.memoryPurgeStarted": "Memory purge started...", "status.toolStatusChecking": "Tool status: checking...", "status.resetIndexHint": "Reset index cache (requires allowResetIndex in settings).", + "status.emptyTrashHint": "Permanently remove files Majoor sent to the freedesktop trash (requires allowDelete in settings).", + "status.emptyTrashDisabled": "Empty trash is disabled. Enable 'allow_delete' in settings or set MAJOOR_ALLOW_DELETE=1.", "status.scanningHint": "This may take a while", "status.toolAvailable": "{tool} available", "status.toolUnavailable": "{tool} unavailable", @@ -2577,6 +2583,8 @@ var F = { "dialog.newCollection.placeholder": "Collection name", "dialog.resetIndex.title": "Reset index?", "dialog.resetIndex.msg": "This will delete the database and rescan all files. Continue?", + "dialog.emptyTrash.title": "Empty trash?", + "dialog.emptyTrash.confirm": "Permanently delete {count} trashed files ({size}) that came from Majoor's folders? This cannot be undone.", "dialog.securityWarning": "This looks like a system or very broad directory.\n\nAdding it can expose sensitive files via the viewer/custom roots feature.\n\nContinue?", "dialog.securityWarningTitle": "Majoor: Security Warning", "dialog.enterFolderPath": "Enter a folder path to add as a Custom root:", @@ -2691,6 +2699,13 @@ var F = { "toast.dbRestoreReplacing": "Replacing database files", "toast.dbRestoreRescan": "Restarting scan", "toast.dbRestoreSuccess": "Database backup restored", + "toast.trashIsEmpty": "Trash is empty", + "toast.trashRemoved": "{count} files removed ({size})", + "toast.trashFailures": "{count} entries could not be removed", + "toast.trashSkippedDirs": "{count} directories in the trash were not removed", + "toast.trashStatusFailed": "Failed to check trash", + "toast.trashEmptyFailed": "Failed to empty trash", + "toast.trashUnsupported": "Trash is not supported on this platform", "toast.nameCollisionInView": "Name collision in current view", "toast.fileRenamedSuccess": "File renamed successfully!", "toast.fileRenameFailed": "Failed to rename file.", @@ -4457,20 +4472,26 @@ async function ki({ name: e = "", useLatest: t = !1 } = {}) { let n = {}; return e && (n.name = String(e)), t && (n.use_latest = !0), $(v.DB_BACKUP_RESTORE, n); } -async function Ai(e = 250) { +async function Ai() { + return Q(v.TRASH); +} +async function ji() { + return $(v.TRASH_EMPTY, {}); +} +async function Mi(e = 250) { return $("/mjr/am/duplicates/analyze", { limit: Math.max(10, Math.min(5e3, Number(e) || 250)) }); } -async function ji({ scope: e = "output", customRootId: t = "", maxGroups: n = 6, maxPairs: r = 10 } = {}, i = {}) { +async function Ni({ scope: e = "output", customRootId: t = "", maxGroups: n = 6, maxPairs: r = 10 } = {}, i = {}) { let a = `/mjr/am/duplicates/alerts?scope=${encodeURIComponent(String(e || "output"))}`; return t && (a += `&custom_root_id=${encodeURIComponent(String(t))}`), a += `&max_groups=${encodeURIComponent(String(Math.max(1, Number(n) || 6)))}`, a += `&max_pairs=${encodeURIComponent(String(Math.max(1, Number(r) || 10)))}`, Q(a, i); } -async function Mi(e, t = []) { +async function Pi(e, t = []) { return $("/mjr/am/duplicates/merge-tags", { keep_asset_id: Number(e) || 0, merge_asset_ids: Array.isArray(t) ? t.map((e) => Number(e) || 0).filter((e) => e > 0) : [] }); } -async function Ni(e) { +async function Fi(e) { let t, n; if (e && typeof e == "object") { t = d(e.id); @@ -4478,13 +4499,13 @@ async function Ni(e) { n = t ? { asset_id: t } : { filepath: r }; } else t = d(e), n = { asset_id: t }; let r = await $("/mjr/am/asset/delete", n); - return r?.ok && t && Fi([t]), r; + return r?.ok && t && Li([t]), r; } -async function Pi(e) { +async function Ii(e) { let t = Array.isArray(e) ? e.map((e) => d(e)).filter(Boolean) : [], n = await $("/mjr/am/assets/delete", { ids: t }); - return n?.ok && Fi(t), n; + return n?.ok && Li(t), n; } -function Fi(e) { +function Li(e) { try { let t = (Array.isArray(e) ? e : [e]).map((e) => String(e || "").trim()).filter(Boolean); if (!t.length) return; @@ -4493,7 +4514,7 @@ function Fi(e) { console.debug?.(e); } } -async function Ii(e, t) { +async function Ri(e, t) { let n; if (e && typeof e == "object") { n = d(e.id); @@ -4505,7 +4526,7 @@ async function Ii(e, t) { new_name: t }); if (i?.ok && n) try { - let e = await Ca(n); + let e = await Ta(n); e?.ok && e?.data && (i.data = { ...i.data || {}, asset: e.data @@ -4521,7 +4542,7 @@ async function Ii(e, t) { new_name: t }); if (r?.ok && n) try { - let e = await Ca(n); + let e = await Ta(n); e?.ok && e?.data && (r.data = { ...r.data || {}, asset: e.data @@ -4531,7 +4552,7 @@ async function Ii(e, t) { } return r; } -async function Li() { +async function zi() { let e = typeof AbortController < "u" ? new AbortController() : null, t = null; try { return e && (t = setTimeout(() => e.abort(), 1e4)), await Q("/mjr/am/collections", e ? { signal: e.signal } : {}); @@ -4539,26 +4560,26 @@ async function Li() { t && clearTimeout(t); } } -async function Ri(e) { +async function Bi(e) { return $("/mjr/am/collections", { name: String(e || "").trim() }); } -async function zi(e) { +async function Vi(e) { let t = String(e || "").trim(); return $(`/mjr/am/collections/${encodeURIComponent(t)}/delete`, {}); } -async function Bi(e, t) { +async function Hi(e, t) { let n = String(e || "").trim(), r = Array.isArray(t) ? t : []; return $(`/mjr/am/collections/${encodeURIComponent(n)}/add`, { assets: r }); } -async function Vi(e, t) { +async function Ui(e, t) { let n = String(e || "").trim(), r = Array.isArray(t) ? t : []; return $(`/mjr/am/collections/${encodeURIComponent(n)}/remove`, { filepaths: r }); } -async function Hi(e) { +async function Wi(e) { let t = String(e || "").trim(); return Q(`/mjr/am/collections/${encodeURIComponent(t)}/assets`); } -async function Ui(e, t = 20) { +async function Gi(e, t = 20) { let n = String(e || "").trim(); if (!n) return { ok: !1, @@ -4582,7 +4603,7 @@ async function Ui(e, t = 20) { dateExact: r?.dateExact ?? null }), Q(s, { timeoutMs: 12e4 }); } -async function Wi(e, t = 20) { +async function Ki(e, t = 20) { let n = String(e || "").trim(); if (!n) return { ok: !1, @@ -4591,24 +4612,24 @@ async function Wi(e, t = 20) { let r = t && typeof t == "object" ? t : { topK: Number(t) }, i = Math.max(1, Math.min(200, Number(r?.topK ?? 20) || 20)), a = String(r?.scope || "").trim(), o = String(r?.customRootId || "").trim(), s = `${v.VECTOR_SIMILAR}/${encodeURIComponent(n)}?top_k=${i}`; return a && (s += `&scope=${encodeURIComponent(a)}`), o && (s += `&custom_root_id=${encodeURIComponent(o)}`), Q(s, { dedupeKey: `vec:${n}:${i}:${a}:${o}` }); } -async function Gi(e) { +async function qi(e) { let t = String(e || "").trim(); return t ? Q(`${v.VECTOR_ALIGNMENT}/${encodeURIComponent(t)}`) : { ok: !1, error: "Missing asset ID" }; } -async function Ki(e) { +async function Ji(e) { let t = String(e || "").trim(); return t ? $(`${v.VECTOR_INDEX}/${encodeURIComponent(t)}`, {}) : { ok: !1, error: "Missing asset ID" }; } -async function qi() { +async function Yi() { return Q(v.VECTOR_STATS); } -async function Ji(e = 64, t = {}) { +async function Xi(e = 64, t = {}) { let n = Math.max(1, Math.min(200, e)), r = typeof t?.onProgress == "function" ? t.onProgress : null, i = String(t?.scope || "").trim().toLowerCase(), a = String(t?.customRootId ?? t?.custom_root_id ?? "").trim(), o = `${v.VECTOR_BACKFILL}?batch_size=${n}&async=1`; i && (o += `&scope=${encodeURIComponent(i)}`), a && (o += `&custom_root_id=${encodeURIComponent(a)}`); let s = await $(o, {}, { timeoutMs: 3e4 }); @@ -4624,7 +4645,7 @@ async function Ji(e = 64, t = {}) { "running", "pending" ].includes(l)) return s; - let d = Number(t?.pollIntervalMs), f = Number(t?.pollTimeoutMs), p = Number.isFinite(d) ? Math.max(500, Math.min(1e4, Math.floor(d))) : na, m = Number.isFinite(f) ? Math.max(1e4, Math.min(ia, Math.floor(f))) : ra, h = Date.now(), g = null; + let d = Number(t?.pollIntervalMs), f = Number(t?.pollTimeoutMs), p = Number.isFinite(d) ? Math.max(500, Math.min(1e4, Math.floor(d))) : ia, m = Number.isFinite(f) ? Math.max(1e4, Math.min(oa, Math.floor(f))) : aa, h = Date.now(), g = null; for (; Date.now() - h < m;) { await Ce(p); let e = await Q(`${v.VECTOR_BACKFILL_STATUS}?backfill_id=${encodeURIComponent(u)}`, { timeoutMs: 3e4 }); @@ -4693,14 +4714,14 @@ async function Ji(e = 64, t = {}) { status: 408 }; } -async function Yi(e) { +async function Zi(e) { let t = String(e || "").trim(); return t ? $(`${v.VECTOR_CAPTION}/${encodeURIComponent(t)}`, {}) : { ok: !1, error: "Missing asset ID" }; } -async function Xi(e, { topK: t = 50, scope: n = "output", customRootId: r = "", subfolder: i = null, kind: a = null, hasWorkflow: o = null, minRating: s = null, minSizeMB: c = null, maxSizeMB: l = null, minWidth: u = null, minHeight: d = null, maxWidth: f = null, maxHeight: p = null, workflowType: m = null, workflowId: h = null, dateRange: g = null, dateExact: _ = null } = {}) { +async function Qi(e, { topK: t = 50, scope: n = "output", customRootId: r = "", subfolder: i = null, kind: a = null, hasWorkflow: o = null, minRating: s = null, minSizeMB: c = null, maxSizeMB: l = null, minWidth: u = null, minHeight: d = null, maxWidth: f = null, maxHeight: p = null, workflowType: m = null, workflowId: h = null, dateRange: g = null, dateExact: _ = null } = {}) { let b = String(e || "").trim(); if (!b) return { ok: !1, @@ -4724,85 +4745,85 @@ async function Xi(e, { topK: t = 50, scope: n = "output", customRootId: r = "", dateExact: _ }), Q(x, { timeoutMs: 12e4 }); } -async function Zi(e = 8) { +async function $i(e = 8) { return $(v.VECTOR_SUGGEST_COLLECTIONS, { k: Math.max(2, Math.min(20, e)) }); } // ui/api/client.ts -var Qi = 3e4, $i = "__MJR_API_CLIENT__", ea = 2e3, ta = 200, na = 1e3, ra = 18e5, ia = 432e5, Y = "settings", aa = "available-tags", X = Re({ - ttlMs: ea, +var ea = 3e4, ta = "__MJR_API_CLIENT__", na = 2e3, ra = 200, ia = 1e3, aa = 18e5, oa = 432e5, Y = "settings", sa = "available-tags", X = Re({ + ttlMs: na, maxSize: 1 }), Z = Re({ - ttlMs: ea, + ttlMs: na, maxSize: 1 -}), oa = Re({ - ttlMs: () => ua(), +}), ca = Re({ + ttlMs: () => fa(), maxSize: 1 -}), sa = /* @__PURE__ */ new Set([ +}), la = /* @__PURE__ */ new Set([ "1", "true", "yes", "on" -]), ca = /* @__PURE__ */ new Set([ +]), ua = /* @__PURE__ */ new Set([ "0", "false", "no", "off" ]); -function la(e, t = !1) { +function da(e, t = !1) { if (typeof e == "boolean") return e; if (typeof e == "number") return e !== 0; if (typeof e == "string") { let t = e.trim().toLowerCase(); - if (sa.has(t)) return !0; - if (ca.has(t)) return !1; + if (la.has(t)) return !0; + if (ua.has(t)) return !1; } return !!t; } -function ua() { +function fa() { try { let e = localStorage?.getItem?.("mjrSettings") || "{}", t = JSON.parse(e), n = t?.cache?.tagsTTLms ?? t?.cache?.tagsTTL ?? t?.cache?.tags_ttl_ms ?? null, r = Number(n); - return Number.isFinite(r) ? Math.max(1e3, Math.min(6e5, Math.floor(r))) : Qi; + return Number.isFinite(r) ? Math.max(1e3, Math.min(6e5, Math.floor(r))) : ea; } catch { - return Qi; + return ea; } } -function da() { +function pa() { X.clear(); } -function fa() { +function ma() { Z.clear(); } -function pa() { - oa.clear(); +function ha() { + ca.clear(); } -function ma(e) { +function ga(e) { return String(e ?? "").trim().toLowerCase() || ""; } -function ha(e) { +function _a(e) { let t = [], n = /* @__PURE__ */ new Set(); for (let r of Array.isArray(e) ? e : []) { let e = String(r ?? "").trim(); if (!e) continue; - let i = ma(e); + let i = ga(e); i && !n.has(i) && (n.add(i), t.push(e)); } return t; } try { let e = typeof window < "u" ? window : null; - e && !e[$i] && (e[$i] = { initialized: !0 }, e.addEventListener?.("storage", (e) => { + e && !e[ta] && (e[ta] = { initialized: !0 }, e.addEventListener?.("storage", (e) => { try { - e?.key === "mjrSettings" && (da(), fa(), pa(), Ir()); + e?.key === "mjrSettings" && (pa(), ma(), ha(), Ir()); } catch (e) { console.debug?.(e); } }), e.addEventListener?.("mjr-settings-changed", () => { - da(), fa(), pa(), Ir(); + pa(), ma(), ha(), Ir(); })); } catch (e) { console.debug?.(e); } -var ga = () => { +var va = () => { let e = X.get(Y); if (e !== void 0) return e; let t = Date.now(); @@ -4814,33 +4835,33 @@ var ga = () => { } catch { return X.set(Y, !1, { at: t }), !1; } -}, _a = () => { +}, ya = () => { let e = Z.get(Y); if (e !== void 0) return e; let t = Date.now(); try { let e = localStorage?.getItem?.(r); if (!e) return Z.set(Y, !0, { at: t }), !0; - let n = JSON.parse(e)?.ratingTagsSync?.enabled, i = n == null || la(n, !0); + let n = JSON.parse(e)?.ratingTagsSync?.enabled, i = n == null || da(n, !0); return Z.set(Y, i, { at: t }), i; } catch { return Z.set(Y, !0, { at: t }), !0; } -}, va = Le({ - readObsEnabled: ga, +}, ba = Le({ + readObsEnabled: va, readAuthToken: wr, ensureWriteAuthToken: Fr, normalizeWriteAuthFailure: Nr -}), ya = va.fetchAPI; +}), xa = ba.fetchAPI; async function Q(e, t = {}) { - return va.get(e, t); + return ba.get(e, t); } async function $(e, t, n = {}) { - return va.post(e, t, n); + return ba.post(e, t, n); } -async function ba(e, t, n = {}) { - let r = _a(), i = e && typeof e == "object" ? e : null, a = d(i ? i.id : e), o = { rating: Math.max(0, Math.min(5, Number(t) || 0)) }; - return a ? o.asset_id = a : i && (o.filepath = i.filepath || i.path || i?.file_info?.filepath || "", o.type = i.type || "output", o.root_id = f(i)), ya("/mjr/am/asset/rating", { +async function Sa(e, t, n = {}) { + let r = ya(), i = e && typeof e == "object" ? e : null, a = d(i ? i.id : e), o = { rating: Math.max(0, Math.min(5, Number(t) || 0)) }; + return a ? o.asset_id = a : i && (o.filepath = i.filepath || i.path || i?.file_info?.filepath || "", o.type = i.type || "output", o.root_id = f(i)), xa("/mjr/am/asset/rating", { ...n, method: "POST", headers: { @@ -4850,10 +4871,10 @@ async function ba(e, t, n = {}) { body: JSON.stringify(o) }); } -async function xa(e, t, n = {}) { - let r = _a(), i = e && typeof e == "object" ? e : null, a = d(i ? i.id : e), o = String(i?.kind || i?.type || "").trim().toLowerCase() === "workflow", s = String(i?.filepath || i?.path || i?.file_info?.filepath || "").trim(), c = { tags: Array.isArray(t) ? t : [] }; +async function Ca(e, t, n = {}) { + let r = ya(), i = e && typeof e == "object" ? e : null, a = d(i ? i.id : e), o = String(i?.kind || i?.type || "").trim().toLowerCase() === "workflow", s = String(i?.filepath || i?.path || i?.file_info?.filepath || "").trim(), c = { tags: Array.isArray(t) ? t : [] }; o && s ? c.filepath = s : a ? c.asset_id = a : i && (c.filepath = i.filepath || i.path || i?.file_info?.filepath || "", c.type = i.type || "output", c.root_id = f(i)); - let l = await ya(o && s ? v.WORKFLOWS_TAGS : "/mjr/am/asset/tags", { + let l = await xa(o && s ? v.WORKFLOWS_TAGS : "/mjr/am/asset/tags", { ...n, method: "POST", headers: { @@ -4862,10 +4883,10 @@ async function xa(e, t, n = {}) { }, body: JSON.stringify(c) }); - return l?.ok && pa(), l; + return l?.ok && ha(), l; } -async function Sa() { - let e = oa.get(aa); +async function wa() { + let e = ca.get(sa); if (Array.isArray(e)) return { ok: !0, data: e, @@ -4875,22 +4896,22 @@ async function Sa() { }; let t = await Q("/mjr/am/tags"); if (t?.ok && Array.isArray(t.data)) { - let e = ha(t.data); - return oa.set(aa, e), { + let e = _a(t.data); + return ca.set(sa, e), { ...t, data: e }; } return t; } -async function Ca(e, t = {}) { +async function Ta(e, t = {}) { let n = encodeURIComponent(d(e)); return Q(`/mjr/am/asset/${n}`, { ...t, dedupeKey: t?.dedupeKey || `meta:${n}` }); } -async function wa(e, t = {}) { +async function Ea(e, t = {}) { let n = d(e); if (!n) return { ok: !1, @@ -4903,11 +4924,11 @@ async function wa(e, t = {}) { let { refresh: i, ...a } = t; return Q(r, a); } -async function Ta(e, t = {}) { +async function Da(e, t = {}) { let n = Array.isArray(e) ? e : [], r = []; for (let e of n) { let t = Number(e); - if (Number.isFinite(t) && (r.push(Math.trunc(t)), r.length >= ta)) break; + if (Number.isFinite(t) && (r.push(Math.trunc(t)), r.length >= ra)) break; } return r.length ? $("/mjr/am/assets/batch", { asset_ids: r }, t) : { ok: !0, @@ -4916,7 +4937,7 @@ async function Ta(e, t = {}) { code: "OK" }; } -async function Ea(e, t = {}) { +async function Oa(e, t = {}) { let n = S(e); return n ? Q(n, t) : { ok: !1, @@ -4925,7 +4946,7 @@ async function Ea(e, t = {}) { code: "INVALID_INPUT" }; } -async function Da(e, t = {}) { +async function ka(e, t = {}) { let n = ue(e); return n ? Q(n, t) : { ok: !1, @@ -4934,7 +4955,7 @@ async function Da(e, t = {}) { code: "INVALID_INPUT" }; } -async function Oa(e, t = {}) { +async function Aa(e, t = {}) { let n = de(e); return n ? Q(n, t) : { ok: !1, @@ -4943,7 +4964,7 @@ async function Oa(e, t = {}) { code: "INVALID_INPUT" }; } -async function ka(e, t = "", n = {}) { +async function ja(e, t = "", n = {}) { let r = fe(e, t); return r ? Q(r, n) : { ok: !1, @@ -4952,7 +4973,7 @@ async function ka(e, t = "", n = {}) { code: "INVALID_INPUT" }; } -async function Aa({ workflow: e = null, name: t = "", category: n = "", overwrite: r = !1, filepath: i = "", task: a = "", model_family: o = "", provider: s = "", runs_on: c = "", notes: l = "" } = {}, u = {}) { +async function Ma({ workflow: e = null, name: t = "", category: n = "", overwrite: r = !1, filepath: i = "", task: a = "", model_family: o = "", provider: s = "", runs_on: c = "", notes: l = "" } = {}, u = {}) { return $(v.WORKFLOWS_SAVE, { workflow: e, name: t, @@ -4966,32 +4987,32 @@ async function Aa({ workflow: e = null, name: t = "", category: n = "", overwrit notes: l }, u); } -async function ja({ filepath: e = "", name: t = "" } = {}, n = {}) { +async function Na({ filepath: e = "", name: t = "" } = {}, n = {}) { return $(v.WORKFLOWS_DUPLICATE, { filepath: e, name: t }, n); } -async function Ma({ filepath: e = "", name: t = "", category: n = "" } = {}, r = {}) { +async function Pa({ filepath: e = "", name: t = "", category: n = "" } = {}, r = {}) { return $(v.WORKFLOWS_MOVE, { filepath: e, name: t, category: n }, r); } -async function Na({ filepath: e = "" } = {}, t = {}) { +async function Fa({ filepath: e = "" } = {}, t = {}) { return $(v.WORKFLOWS_DELETE, { filepath: e }, t); } -async function Pa({ filepath: e = "" } = {}, t = {}) { +async function Ia({ filepath: e = "" } = {}, t = {}) { return $(v.WORKFLOWS_MARK_LOADED, { filepath: e }, t); } -async function Fa({ filepath: e = "", favorite: t = !1 } = {}, n = {}) { +async function La({ filepath: e = "", favorite: t = !1 } = {}, n = {}) { return $(v.WORKFLOWS_FAVORITE, { filepath: e, favorite: !!t }, n); } -async function Ia({ filepath: e = "", task: t = "", model_family: n = "", provider: r = "", runs_on: i = "", notes: a = "" } = {}, o = {}) { +async function Ra({ filepath: e = "", task: t = "", model_family: n = "", provider: r = "", runs_on: i = "", notes: a = "" } = {}, o = {}) { return $(v.WORKFLOWS_INFO, { filepath: e, task: t, @@ -5001,24 +5022,24 @@ async function Ia({ filepath: e = "", task: t = "", model_family: n = "", provid notes: a }, o); } -async function La({ filepath: e = "", limit: t = 12 } = {}, n = {}) { +async function za({ filepath: e = "", limit: t = 12 } = {}, n = {}) { let r = Math.max(1, Math.min(50, Number(t) || 12)); return Q(`${v.WORKFLOWS_THUMBNAIL_CANDIDATES}?filepath=${encodeURIComponent(String(e || "").trim())}&limit=${encodeURIComponent(String(r))}`, n); } -async function Ra(e = {}) { +async function Ba(e = {}) { return Q(v.WORKFLOWS_MODEL_FAMILIES, e); } -async function za({ q: e = "*", limit: t = 100, offset: n = 0, sort: r = "mtime" } = {}, i = {}) { +async function Va({ q: e = "*", limit: t = 100, offset: n = 0, sort: r = "mtime" } = {}, i = {}) { let a = Math.max(1, Math.min(500, Number(t) || 100)), o = Math.max(0, Number(n) || 0); return Q(`${v.LIST}?scope=workflow&q=${encodeURIComponent(String(e || "*"))}&limit=${encodeURIComponent(String(a))}&offset=${encodeURIComponent(String(o))}&sort=${encodeURIComponent(String(r || "mtime"))}`, i); } -async function Ba({ filepath: e = "", source_filepath: t = "" } = {}, n = {}) { +async function Ha({ filepath: e = "", source_filepath: t = "" } = {}, n = {}) { return $(v.WORKFLOWS_THUMBNAIL_SET, { filepath: e, source_filepath: t }, n); } -async function Va({ type: e = "output", filename: t = "", subfolder: n = "", root_id: r = "", rootId: i = "", filepath: a = "" } = {}, o = {}) { +async function Ua({ type: e = "output", filename: t = "", subfolder: n = "", root_id: r = "", rootId: i = "", filepath: a = "" } = {}, o = {}) { let s = String(e || "output").trim().toLowerCase() || "output", c = String(t || "").trim(), l = String(n || "").trim(), u = String(r || i || "").trim(), d = String(a || "").trim(); if (!c) return { ok: !1, @@ -5029,7 +5050,7 @@ async function Va({ type: e = "output", filename: t = "", subfolder: n = "", roo let f = `/mjr/am/metadata?type=${encodeURIComponent(s)}&filename=${encodeURIComponent(c)}`; return d && (f += `&filepath=${encodeURIComponent(d)}`), l && (f += `&subfolder=${encodeURIComponent(l)}`), u && (f += `&root_id=${encodeURIComponent(u)}`), Q(f, o); } -async function Ha({ filepath: e = "", root_id: t = "", subfolder: n = "" } = {}, r = {}) { +async function Wa({ filepath: e = "", root_id: t = "", subfolder: n = "" } = {}, r = {}) { try { if (globalThis.__mjrFolderInfoSupported === !1) return { ok: !1, @@ -5063,7 +5084,7 @@ async function Ha({ filepath: e = "", root_id: t = "", subfolder: n = "" } = {}, return l; } // ui/app/config.ts -var Ua = Object.freeze({ +var Ga = Object.freeze({ DEBUG_SAFE_CALL: !1, DEBUG_SAFE_LISTENERS: !1, DEBUG_VIEWER: !1, @@ -5144,5 +5165,5 @@ var Ua = Object.freeze({ DELETE_CONFIRMATION: !0, DEBUG_VERBOSE_ERRORS: !1, SIDEBAR_ASSET_BADGE_ENABLED: !0 -}), Wa = { ...Ua }; -export { Br as $, se as $n, Fn as $t, _i as A, Ot as An, Ai as At, Ur as B, _t as Bn, qi as Bt, Ia as C, pt as Cn, Lr as Ct, Da as D, Xt as Dn, Vr as Dt, xa as E, kt as En, $r as Et, zi as F, ht as Fn, Wi as Ft, ei as G, ct as Gn, pr as Gt, ci as H, E as Hn, Or as Ht, Ei as I, vt as In, Yi as It, Xr as J, v as Jn, er as Jt, Rr as K, st as Kn, rr as Kt, Jr as L, Yt as Ln, Gi as Lt, Ri as M, M as Mn, Hr as Mt, Ni as N, xt as Nn, Ci as Nt, Bi as O, gt as On, yi as Ot, Pi as P, St as Pn, Ji as Pt, wi as Q, te as Qn, Pn as Qt, Hi as R, mt as Rn, Ki as Rt, Fa as S, zt as Sn, si as St, ba as T, Jt as Tn, pi as Tt, ai as U, Ge as Un, Dr as Ut, Kr as V, Tt as Vn, Zi as Vt, ni as W, We as Wn, or as Wt, fi as X, ne as Xn, Zn as Xt, Ti as Y, ce as Yn, Qn as Yt, Qr as Z, pe as Zn, $n as Zt, za as _, ft as _n, li as _t, ja as a, F as an, b as ar, Di as at, $ as b, wt as bn, ti as bt, Ta as c, Ht as cn, c as cr, Vi as ct, Ha as d, Wt as dn, f as dr, ki as dt, jn as en, le as er, Si as et, wa as f, Et as fn, i as fr, Oi as ft, Oa as g, jt as gn, qr as gt, La as h, an as hn, Wr as ht, ka as i, V as in, x as ir, Li as it, gi as j, Zt as jn, xi as jt, mi as k, Vt as kn, di as kt, Sa as l, rn as ln, l as lr, Ii as lt, Ra as m, Bt as mn, Gr as mt, Ua as n, B as nn, ae as nr, ui as nt, Q as o, bt as on, oe as or, Mi as ot, Ea as p, Qt as pn, r as pr, Yr as pt, ii as q, Re as qn, zn as qt, Na as r, Nn as rn, ie as rr, Xi as rt, Ca as s, yt as sn, p as sr, hi as st, Wa as t, Mn as tn, ee as tr, bi as tt, Va as u, $t as un, d as ur, vi as ut, Pa as v, Mt as vn, oi as vt, Ba as w, qt as wn, Zr as wt, Aa as x, Ct as xn, zr as xt, Ma as y, dt as yn, ri as yt, ji as z, ut as zn, Ui as zt }; +}), Ka = { ...Ga }; +export { wi as $, pe as $n, $n as $t, _i as A, gt as An, yi as At, Ni as B, mt as Bn, Ji as Bt, Ra as C, Ct as Cn, zr as Ct, ka as D, Jt as Dn, pi as Dt, Ca as E, qt as En, Zr as Et, Vi as F, xt as Fn, Ci as Ft, ni as G, Ge as Gn, Dr as Gt, Kr as H, _t as Hn, Yi as Ht, ji as I, St as In, Xi as It, ii as J, st as Jn, rr as Jt, ei as K, We as Kn, or as Kt, Ei as L, ht as Ln, Ki as Lt, Bi as M, Ot as Mn, Mi as Mt, Fi as N, Zt as Nn, xi as Nt, Hi as O, kt as On, $r as Ot, Ii as P, M as Pn, Hr as Pt, Qr as Q, ne as Qn, Zn as Qt, Jr as R, vt as Rn, Zi as Rt, La as S, wt as Sn, ti as St, Sa as T, pt as Tn, Lr as Tt, ci as U, Tt as Un, $i as Ut, Ur as V, ut as Vn, Gi as Vt, ai as W, E as Wn, Or as Wt, Ti as X, v as Xn, er as Xt, Xr as Y, Re as Yn, zn as Yt, fi as Z, ce as Zn, Qn as Zt, Va as _, an as _n, Wr as _t, Na as a, Nn as an, ie as ar, Qi as at, $ as b, Mt as bn, oi as bt, Da as c, bt as cn, oe as cr, Pi as ct, Wa as d, rn as dn, l as dr, Ri as dt, Pn as en, te as er, Ai as et, Ea as f, $t as fn, d as fr, vi as ft, Aa as g, Bt as gn, Gr as gt, za as h, Qt as hn, r as hr, Yr as ht, ja as i, B as in, ae as ir, ui as it, gi as j, Vt as jn, di as jt, mi as k, Xt as kn, Vr as kt, wa as l, yt as ln, p as lr, hi as lt, Ba as m, Et as mn, i as mr, Oi as mt, Ga as n, jn as nn, le as nr, Si as nt, Q as o, V as on, x as or, zi as ot, Oa as p, Wt as pn, f as pr, ki as pt, Rr as q, ct as qn, pr as qt, Fa as r, Mn as rn, ee as rr, bi as rt, Ta as s, F as sn, b as sr, Di as st, Ka as t, Fn as tn, se as tr, Br as tt, Ua as u, Ht as un, c as ur, Ui as ut, Ia as v, jt as vn, qr as vt, Ha as w, zt as wn, si as wt, Ma as x, dt as xn, ri as xt, Pa as y, ft as yn, li as yt, Wi as z, Yt as zn, qi as zt }; diff --git a/dist/chunks/floatingViewerManager-B_I-SRbd.js b/dist/chunks/floatingViewerManager-D_aLLeau.js similarity index 97% rename from dist/chunks/floatingViewerManager-B_I-SRbd.js rename to dist/chunks/floatingViewerManager-D_aLLeau.js index ba08a638..45d10feb 100644 --- a/dist/chunks/floatingViewerManager-B_I-SRbd.js +++ b/dist/chunks/floatingViewerManager-D_aLLeau.js @@ -1,5 +1,5 @@ import { t as e } from "./rolldown-runtime-CGnMp29N.js"; -import { An as t, Wt as n, c as r, t as i } from "./config-C9a-wT5M.js"; +import { Kt as t, Mn as n, c as r, t as i } from "./config-D56TZeFo.js"; import { r as a } from "./events-1iwo5blr.js"; // ui/utils/logging.ts function o(e, ...t) { @@ -7,15 +7,15 @@ function o(e, ...t) { i.DEBUG_VERBOSE_ERRORS && console.debug(e, ...t); } catch {} } -function s(e, t = "Majoor", { showToast: r = !1, toastType: a = "error" } = {}) { +function s(e, n = "Majoor", { showToast: r = !1, toastType: a = "error" } = {}) { let o = e?.message || String(e || "Unknown error"); try { - i.DEBUG_VERBOSE_ERRORS ? console.error(`[Majoor][${t}]`, o, e) : console.debug(`[Majoor][${t}]`, o); + i.DEBUG_VERBOSE_ERRORS ? console.error(`[Majoor][${n}]`, o, e) : console.debug(`[Majoor][${n}]`, o); } catch (e) { console.debug?.(e); } if (r && i.DEBUG_VERBOSE_ERRORS) try { - n(`${t}: ${o}`, a, 4e3); + t(`${n}: ${o}`, a, 4e3); } catch (e) { console.debug?.(e); } @@ -201,7 +201,7 @@ var he = /* @__PURE__ */ e({ teardownFloatingViewerManager: () => Ue }), S = null, ge = null; async function _e() { - return S || (ge ||= import("./FloatingViewer--x61GAzy.js").then((e) => (S = e.FloatingViewer, S)), ge); + return S || (ge ||= import("./FloatingViewer-C567UXNF.js").then((e) => (S = e.FloatingViewer, S)), ge); } var C = null, ve = null; async function ye() { @@ -434,7 +434,7 @@ function Oe() { } function Y() { if (!G) try { - K = t(De, { includePointerFallback: !0 }), G = typeof K == "function"; + K = n(De, { includePointerFallback: !0 }), G = typeof K == "function"; } catch (e) { console.debug?.("[MFV] _bindNodeSelectionListener error", e); } diff --git a/dist/chunks/genInfo-Dk8cerKp.js b/dist/chunks/genInfo-z8Muj1-U.js similarity index 93% rename from dist/chunks/genInfo-Dk8cerKp.js rename to dist/chunks/genInfo-z8Muj1-U.js index 2e6e4928..509b99e8 100644 --- a/dist/chunks/genInfo-Dk8cerKp.js +++ b/dist/chunks/genInfo-z8Muj1-U.js @@ -1,7 +1,7 @@ -import { in as e, or as t, t as n } from "./config-C9a-wT5M.js"; -import { _ as r, f as i, p as a } from "./generationSectionState-DuXxSw-j.js"; +import { cr as e, on as t, t as n } from "./config-D56TZeFo.js"; +import { _ as r, f as i, p as a } from "./generationSectionState-BR-TS47u.js"; import { r as o } from "./events-1iwo5blr.js"; -import { $ as s, B as c, C as l, D as u, E as d, H as ee, J as te, M as f, O as p, P as m, Q as h, S as g, T as _, V as v, W as y, X as ne, b, gt as x, ht as S, j as C, k as w, mt as T, pt as E, q as re, st as D } from "./mjr-primevue-C07IsEdU.js"; +import { $ as s, B as c, C as l, D as u, E as d, H as ee, J as te, M as f, O as p, P as m, Q as h, S as g, T as _, V as v, W as y, X as ne, b, gt as x, ht as S, j as C, k as w, mt as T, pt as E, q as re, st as D } from "./mjr-primevue-QrNPJaqR.js"; // ui/features/viewer/model3dCore.ts function ie(e, t) { if (e && typeof t == "function") try { @@ -261,45 +261,45 @@ function R(e) { let t = Math.max(0, Number(e) || 0), n = Math.floor(t / 60), r = Math.floor(t % 60); return n > 0 ? `${n}:${String(r).padStart(2, "0")}` : `${Math.floor(t)}s`; } -function z(t, n) { +function z(e, n) { let r = document.createElement("button"); - return r.type = "button", r.textContent = String(t || ""), r.title = String(n || t || ""), r.setAttribute("aria-label", String(n || t || e("model3d.viewportAction", "3D viewport action"))), r.style.cssText = "height:28px;padding:0 10px;border-radius:999px;border:1px solid rgba(255,255,255,0.16);background:rgba(13,15,20,0.78);color:rgba(255,255,255,0.92);font:600 11px system-ui,sans-serif;letter-spacing:0.02em;cursor:pointer;backdrop-filter:blur(8px);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 18px rgba(0,0,0,0.24)", r; + return r.type = "button", r.textContent = String(e || ""), r.title = String(n || e || ""), r.setAttribute("aria-label", String(n || e || t("model3d.viewportAction", "3D viewport action"))), r.style.cssText = "height:28px;padding:0 10px;border-radius:999px;border:1px solid rgba(255,255,255,0.16);background:rgba(13,15,20,0.78);color:rgba(255,255,255,0.92);font:600 11px system-ui,sans-serif;letter-spacing:0.02em;cursor:pointer;backdrop-filter:blur(8px);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 18px rgba(0,0,0,0.24)", r; } function B(e, t) { if (!e) return; let n = !!t; e.dataset.active = n ? "1" : "0", e.style.background = n ? "rgba(76,175,80,0.18)" : "rgba(13,15,20,0.78)", e.style.borderColor = n ? "rgba(76,175,80,0.42)" : "rgba(255,255,255,0.16)", e.style.color = n ? "rgba(230,255,235,0.96)" : "rgba(255,255,255,0.92)"; } -function V(t, n, r = "", i = "#4CAF50") { - if (!t) return; +function V(e, n, r = "", i = "#4CAF50") { + if (!e) return; try { - let e = Math.max(480, Number(t.width) || 960), n = Math.max(270, Number(t.height) || 540); - t.width = e, t.height = n; + let t = Math.max(480, Number(e.width) || 960), n = Math.max(270, Number(e.height) || 540); + e.width = t, e.height = n; } catch (e) { console.debug?.(e); } let a = (() => { try { - return t.getContext("2d"); + return e.getContext("2d"); } catch { return null; } })(); if (!a) return; - let o = Number(t.width) || 960, s = Number(t.height) || 540, c = o / 2, l = s / 2; + let o = Number(e.width) || 960, s = Number(e.height) || 540, c = o / 2, l = s / 2; try { - let t = a.createLinearGradient(0, 0, o, s); - t.addColorStop(0, "#0f1419"), t.addColorStop(1, "#11181f"), a.fillStyle = t, a.fillRect(0, 0, o, s), a.save(), a.translate(c, l - 32), a.strokeStyle = i, a.lineWidth = 3, a.globalAlpha = .95, a.beginPath(), a.moveTo(0, -44), a.lineTo(42, -22), a.lineTo(42, 22), a.lineTo(0, 44), a.lineTo(-42, 22), a.lineTo(-42, -22), a.closePath(), a.stroke(), a.beginPath(), a.moveTo(0, -44), a.lineTo(0, 0), a.lineTo(42, 22), a.moveTo(0, 0), a.lineTo(-42, 22), a.moveTo(-42, -22), a.lineTo(0, 0), a.moveTo(42, -22), a.lineTo(0, 0), a.stroke(), a.restore(), a.fillStyle = "rgba(255,255,255,0.94)", a.font = "600 18px system-ui, sans-serif", a.textAlign = "center", a.textBaseline = "middle", a.fillText(String(n || e("model3d.preview", "3D preview")), c, l + 44), r && (a.fillStyle = "rgba(255,255,255,0.62)", a.font = "13px system-ui, sans-serif", a.fillText(String(r), c, l + 72)); + let e = a.createLinearGradient(0, 0, o, s); + e.addColorStop(0, "#0f1419"), e.addColorStop(1, "#11181f"), a.fillStyle = e, a.fillRect(0, 0, o, s), a.save(), a.translate(c, l - 32), a.strokeStyle = i, a.lineWidth = 3, a.globalAlpha = .95, a.beginPath(), a.moveTo(0, -44), a.lineTo(42, -22), a.lineTo(42, 22), a.lineTo(0, 44), a.lineTo(-42, 22), a.lineTo(-42, -22), a.closePath(), a.stroke(), a.beginPath(), a.moveTo(0, -44), a.lineTo(0, 0), a.lineTo(42, 22), a.moveTo(0, 0), a.lineTo(-42, 22), a.moveTo(-42, -22), a.lineTo(0, 0), a.moveTo(42, -22), a.lineTo(0, 0), a.stroke(), a.restore(), a.fillStyle = "rgba(255,255,255,0.94)", a.font = "600 18px system-ui, sans-serif", a.textAlign = "center", a.textBaseline = "middle", a.fillText(String(n || t("model3d.preview", "3D preview")), c, l + 44), r && (a.fillStyle = "rgba(255,255,255,0.62)", a.font = "13px system-ui, sans-serif", a.fillText(String(r), c, l + 72)); } catch (i) { console.debug?.(i); try { - P(t, n, r || e("model3d.unavailable", "3D viewer unavailable")); + P(e, n, r || t("model3d.unavailable", "3D viewer unavailable")); } catch (e) { console.debug?.(e); } } } -function pe({ defaultBgColor: t, defaultFov: n, defaultLightIntensity: r, hasSkeleton: i } = {}) { +function pe({ defaultBgColor: e, defaultFov: n, defaultLightIntensity: r, hasSkeleton: i } = {}) { let a = document.createElement("div"); a.className = "mjr-model3d-settings", a.style.cssText = "position:absolute;right:0;top:44px;width:210px;max-height:calc(100% - 100px);overflow-y:auto;background:rgba(14,18,26,0.96);border:1px solid rgba(255,255,255,0.10);border-right:none;border-radius:10px 0 0 10px;padding:10px 10px 12px 10px;z-index:4;display:none;box-shadow:-6px 4px 24px rgba(0,0,0,0.5);backdrop-filter:blur(12px);font:13px system-ui,sans-serif;color:rgba(255,255,255,0.88);scrollbar-width:thin", [ "pointerdown", @@ -351,7 +351,7 @@ function pe({ defaultBgColor: t, defaultFov: n, defaultLightIntensity: r, hasSke }; o("Scene"); let u = document.createElement("input"); - u.type = "color", u.value = t || "#282828", u.style.cssText = "width:34px;height:24px;cursor:pointer;border:1px solid rgba(255,255,255,0.18);border-radius:4px;padding:1px;background:none;flex-shrink:0;", s(e("model3d.background", "Background"), u), o("Model"); + u.type = "color", u.value = e || "#282828", u.style.cssText = "width:34px;height:24px;cursor:pointer;border:1px solid rgba(255,255,255,0.18);border-radius:4px;padding:1px;background:none;flex-shrink:0;", s(t("model3d.background", "Background"), u), o("Model"); let d = c([ ["original", "Original"], ["normal", "Normal map"], @@ -359,7 +359,7 @@ function pe({ defaultBgColor: t, defaultFov: n, defaultLightIntensity: r, hasSke ["wireframe", "Wireframe"], ["pointcloud", "Point cloud"] ], "original"); - s(e("model3d.material", "Material"), d); + s(t("model3d.material", "Material"), d); let ee = c([ ["original", "Original"], ["+y", "+Y (default)"], @@ -371,11 +371,11 @@ function pe({ defaultBgColor: t, defaultFov: n, defaultLightIntensity: r, hasSke ], "original"); s("Up", ee); let te = null, f = null; - i && (f = document.createElement("input"), f.type = "checkbox", f.checked = !1, f.style.cssText = "cursor:pointer;accent-color:#4CAF50;flex-shrink:0;", te = s(e("model3d.skeleton", "Skeleton"), f)), o("Camera"); + i && (f = document.createElement("input"), f.type = "checkbox", f.checked = !1, f.style.cssText = "cursor:pointer;accent-color:#4CAF50;flex-shrink:0;", te = s(t("model3d.skeleton", "Skeleton"), f)), o("Camera"); let p = l(15, 120, 1, n ?? 75); - s("FOV", p.wrap), o(e("model3d.lights", "Lights")); + s("FOV", p.wrap), o(t("model3d.lights", "Lights")); let m = l(0, 5, .1, r ?? 1); - return s(e("model3d.intensity", "Intensity"), m.wrap), { + return s(t("model3d.intensity", "Intensity"), m.wrap), { panel: a, bgInput: u, materialSel: d, @@ -389,8 +389,8 @@ function pe({ defaultBgColor: t, defaultFov: n, defaultLightIntensity: r, hasSke }; } function me() { - let t = document.createElement("div"); - t.className = "mjr-model3d-anim-bar", t.style.cssText = [ + let e = document.createElement("div"); + e.className = "mjr-model3d-anim-bar", e.style.cssText = [ "position:absolute", "bottom:0", "left:0", @@ -413,13 +413,13 @@ function me() { "mouseup", "wheel", "click" - ].forEach((e) => { - t.addEventListener(e, (e) => L(e, { preventDefault: !1 })); + ].forEach((t) => { + e.addEventListener(t, (e) => L(e, { preventDefault: !1 })); }); let n = document.createElement("button"); - n.type = "button", n.textContent = e("model3d.play", "Play"), n.title = e("model3d.playPause", "Play / Pause"), n.style.cssText = "width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,255,255,0.18);background:rgba(76,175,80,0.14);color:rgba(255,255,255,0.92);font:600 12px system-ui,sans-serif;cursor:pointer;flex-shrink:0;padding:0;line-height:1;display:flex;align-items:center;justify-content:center"; + n.type = "button", n.textContent = t("model3d.play", "Play"), n.title = t("model3d.playPause", "Play / Pause"), n.style.cssText = "width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,255,255,0.18);background:rgba(76,175,80,0.14);color:rgba(255,255,255,0.92);font:600 12px system-ui,sans-serif;cursor:pointer;flex-shrink:0;padding:0;line-height:1;display:flex;align-items:center;justify-content:center"; let r = document.createElement("select"); - r.title = e("model3d.playbackSpeed", "Playback speed"), r.style.cssText = "background:rgba(20,24,34,0.9);color:rgba(255,255,255,0.8);border:1px solid rgba(255,255,255,0.14);border-radius:6px;padding:3px 4px;font:11px system-ui,sans-serif;cursor:pointer;width:52px;flex-shrink:0"; + r.title = t("model3d.playbackSpeed", "Playback speed"), r.style.cssText = "background:rgba(20,24,34,0.9);color:rgba(255,255,255,0.8);border:1px solid rgba(255,255,255,0.14);border-radius:6px;padding:3px 4px;font:11px system-ui,sans-serif;cursor:pointer;width:52px;flex-shrink:0"; for (let e of F) { let t = document.createElement("option"); t.value = String(e), t.textContent = `${e}x`, e === 1 && (t.selected = !0), r.appendChild(t); @@ -429,8 +429,8 @@ function me() { let a = document.createElement("input"); a.type = "range", a.min = "0", a.max = "1000", a.value = "0", a.style.cssText = "flex:1;min-width:50px;cursor:pointer;accent-color:#4CAF50;height:3px;"; let o = document.createElement("span"); - return o.style.cssText = "font:500 11px system-ui,sans-serif;color:rgba(255,255,255,0.45);white-space:nowrap;flex-shrink:0", o.textContent = "0s / 0s", t.appendChild(n), t.appendChild(r), t.appendChild(i), t.appendChild(a), t.appendChild(o), { - bar: t, + return o.style.cssText = "font:500 11px system-ui,sans-serif;color:rgba(255,255,255,0.45);white-space:nowrap;flex-shrink:0", o.textContent = "0s / 0s", e.appendChild(n), e.appendChild(r), e.appendChild(i), e.appendChild(a), e.appendChild(o), { + bar: e, playBtn: n, speedSel: r, animSel: i, @@ -455,7 +455,7 @@ var H = Object.freeze({ "fbx", "stl", "ply" -]), ge = "#282828", W = e("model3d.controlHint", "Rotate: left drag Pan: right drag Zoom: wheel"), G = Object.freeze({ +]), ge = "#282828", W = t("model3d.controlHint", "Rotate: left drag Pan: right drag Zoom: wheel"), G = Object.freeze({ PERSPECTIVE: "perspective", ORTHOGRAPHIC: "orthographic" }); @@ -576,7 +576,7 @@ function Te(r, i, a = {}) { ee.className = "mjr-model3d-toolbar", ee.style.cssText = "position:absolute;top:10px;right:10px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;pointer-events:none;z-index:5"; let te = document.createElement("div"); te.style.cssText = "display:flex;align-items:center;gap:6px;flex-wrap:wrap;pointer-events:auto;"; - let f = z(e("model3d.reset", "Reset"), e("model3d.resetView", "Reset 3D view")), p = z(e("model3d.grid", "Grid"), e("model3d.toggleGrid", "Toggle grid")), m = z(e("model3d.persp", "Persp"), e("model3d.switchCamera", "Switch perspective / orthographic")), h = z(e("model3d.settings", "Settings"), e("model3d.settings", "Settings")); + let f = z(t("model3d.reset", "Reset"), t("model3d.resetView", "Reset 3D view")), p = z(t("model3d.grid", "Grid"), t("model3d.toggleGrid", "Toggle grid")), m = z(t("model3d.persp", "Persp"), t("model3d.switchCamera", "Switch perspective / orthographic")), h = z(t("model3d.settings", "Settings"), t("model3d.settings", "Settings")); te.append(f, p, m, h), ee.appendChild(te), c.appendChild(ee); let g = document.createElement("div"); g.className = "mjr-model3d-hint", g.textContent = a.hintText || W, g.style.cssText = "position:absolute;right:10px;bottom:10px;padding:5px 10px;border-radius:999px;font:500 11px system-ui,sans-serif;color:rgba(255,255,255,0.75);background:rgba(0,0,0,0.35);backdrop-filter:blur(6px);pointer-events:none;z-index:2;transition:bottom 0.2s", c.appendChild(g); @@ -710,9 +710,9 @@ function Te(r, i, a = {}) { } catch (e) { console.debug?.(e); } - }, qe = (t) => { + }, qe = (e) => { if (!J || !Y.length) return; - let n = Y[t]; + let n = Y[e]; if (!n) return; X.forEach((e) => { try { @@ -722,13 +722,13 @@ function Te(r, i, a = {}) { } }); let r = J.clipAction(n); - r.timeScale = Me, r.clampWhenFinished = !1, r.loop = b?.LoopRepeat ?? 2201, r.play(), X[t] = r, Z = t, Q = !0, v.playBtn.textContent = e("model3d.pause", "Pause"); + r.timeScale = Me, r.clampWhenFinished = !1, r.loop = b?.LoopRepeat ?? 2201, r.play(), X[e] = r, Z = e, Q = !0, v.playBtn.textContent = t("model3d.pause", "Pause"); try { let e = Math.max(100, Math.min(1e4, Math.round((n.duration || 1) * 100))); v.progressSlider.max = String(e); } catch {} }, Je = () => { - J && Y.length && (Q ? (J.timeScale = 0, Q = !1, v.playBtn.textContent = e("model3d.play", "Play")) : (J.timeScale = Me, X[Z]?.isRunning?.() ? (Q = !0, v.playBtn.textContent = e("model3d.pause", "Pause")) : qe(Z))); + J && Y.length && (Q ? (J.timeScale = 0, Q = !1, v.playBtn.textContent = t("model3d.play", "Play")) : (J.timeScale = Me, X[Z]?.isRunning?.() ? (Q = !0, v.playBtn.textContent = t("model3d.pause", "Pause")) : qe(Z))); }, Ye = (e, t) => { e && e.length !== 0 && b && (Y = e, J = new b.AnimationMixer(t), je = new b.Clock(), X = Array(e.length).fill(null), v.animSel.innerHTML = "", e.forEach((e, t) => { let n = document.createElement("option"); @@ -759,7 +759,7 @@ function Te(r, i, a = {}) { } })); }, Xe = () => { - B(p, !!P?.visible), B(m, q === G.ORTHOGRAPHIC), m.textContent = q === G.ORTHOGRAPHIC ? e("model3d.ortho", "Ortho") : e("model3d.persp", "Persp"), B(h, Pe); + B(p, !!P?.visible), B(m, q === G.ORTHOGRAPHIC), m.textContent = q === G.ORTHOGRAPHIC ? t("model3d.ortho", "Ortho") : t("model3d.persp", "Persp"), B(h, Pe); }; _.bgInput.addEventListener("input", () => { let e = _.bgInput.value; @@ -936,26 +936,26 @@ function Te(r, i, a = {}) { return $("Preparing 3D preview", Fe), Promise.resolve().then(async () => { let n = Se(r); if (he.has(n)) try { - let e = await N(); + let t = await N(); if (y) return; - let o = e.THREE; + let o = t.THREE; b = o; let s = new o.LoadingManager(); - s.setURLModifier((e) => { - if (!e || xe(e)) return e; - let n = t(r, e); + s.setURLModifier((t) => { + if (!t || xe(t)) return t; + let n = e(r, t); if (n) return n; try { - return new URL(e, i).href; + return new URL(t, i).href; } catch { - return e; + return t; } }), x = new o.WebGLRenderer({ canvas: l, antialias: !0, alpha: !0, preserveDrawingBuffer: !0 - }), x.outputColorSpace = o.SRGBColorSpace, x.setPixelRatio(Math.min(2, window.devicePixelRatio || 1)), S = new o.Scene(), S.background = new o.Color(ge), w = new o.PerspectiveCamera(ve, 16 / 9, .01, 1e4), T = new o.OrthographicCamera(-1, 1, 1, -1, -1e4, 1e4), C = w, E = new e.OrbitControls(C, l), E.enableDamping = !0, E.dampingFactor = .08, E.rotateSpeed = .82, E.zoomSpeed = 1, E.panSpeed = .9, E.screenSpacePanning = !0, E.mouseButtons = we(null, o.MOUSE), de = Ze(), Oe = new o.AmbientLight(16777215, K.ambient * Ae), S.add(Oe); + }), x.outputColorSpace = o.SRGBColorSpace, x.setPixelRatio(Math.min(2, window.devicePixelRatio || 1)), S = new o.Scene(), S.background = new o.Color(ge), w = new o.PerspectiveCamera(ve, 16 / 9, .01, 1e4), T = new o.OrthographicCamera(-1, 1, 1, -1, -1e4, 1e4), C = w, E = new t.OrbitControls(C, l), E.enableDamping = !0, E.dampingFactor = .08, E.rotateSpeed = .82, E.zoomSpeed = 1, E.panSpeed = .9, E.screenSpacePanning = !0, E.mouseButtons = we(null, o.MOUSE), de = Ze(), Oe = new o.AmbientLight(16777215, K.ambient * Ae), S.add(Oe); let u = new o.DirectionalLight(16777215, K.main * Ae); u.position.set(0, 10, 10); let d = new o.DirectionalLight(16777215, K.back * Ae); @@ -978,14 +978,14 @@ function Te(r, i, a = {}) { x.setSize(t, n, !1), w && (w.aspect = t / n, w.updateProjectionMatrix()), ze(t, n), Re(), Ie(); }; typeof ResizeObserver < "u" && (ne = new ResizeObserver(() => O()), ne.observe(c)); - let se = fe(e, n, s); + let se = fe(t, n, s); if (!se) { $("3D loader unavailable", `${n.toUpperCase()} loader could not be created.`), g.style.display = "none"; return; } - if (n === "obj" && e.MTLLoader) try { - let t = i.replace(/\.obj(\?.*)?$/i, (e, t) => `.mtl${t || ""}`), n = new e.MTLLoader(s), r = await new Promise((e) => { - n.load(t, e, void 0, () => e(null)); + if (n === "obj" && t.MTLLoader) try { + let e = i.replace(/\.obj(\?.*)?$/i, (e, t) => `.mtl${t || ""}`), n = new t.MTLLoader(s), r = await new Promise((t) => { + n.load(e, t, void 0, () => t(null)); }); r && !y && (r.preload(), se.setMaterials(r)); } catch (e) { @@ -1134,8 +1134,8 @@ function Te(r, i, a = {}) { console.warn("[MJR 3D] preview init failed", e), $("Failed to load 3D preview", String(e?.message || "Three.js initialization failed.")), g.style.display = "none"; } else if ($("3D preview unavailable", `${n.toUpperCase()} is not supported in the embedded viewer.`), g.style.display = "none", i) try { - let t = document.createElement("a"); - t.href = i, t.download = String(r?.filename || "model"), t.textContent = e("model3d.downloadFile", "Download {file}", { file: String(r?.filename || "file") }), t.style.cssText = "position:absolute;bottom:18px;left:50%;transform:translateX(-50%);padding:7px 16px;border-radius:8px;font:600 12px system-ui,sans-serif;color:#fff;background:rgba(76,175,80,0.85);text-decoration:none;pointer-events:auto;z-index:3", c.appendChild(t); + let e = document.createElement("a"); + e.href = i, e.download = String(r?.filename || "model"), e.textContent = t("model3d.downloadFile", "Download {file}", { file: String(r?.filename || "file") }), e.style.cssText = "position:absolute;bottom:18px;left:50%;transform:translateX(-50%);padding:7px 16px;border-radius:8px;font:600 12px system-ui,sans-serif;color:#fff;background:rgba(76,175,80,0.85);text-decoration:none;pointer-events:auto;z-index:3", c.appendChild(e); } catch {} }).catch((e) => { if (!y) { @@ -1544,8 +1544,8 @@ var it = ["src"], at = ["src"], ot = { "update:wipe", "dismiss" ], - setup(t, { expose: n, emit: r }) { - let i = t, a = r, o = D(null), m = D(null), ie = D(null), ae = D(null), oe = D(null), O = D({ + setup(e, { expose: n, emit: r }) { + let i = e, a = r, o = D(null), m = D(null), ie = D(null), ae = D(null), oe = D(null), O = D({ x: 0, y: 0, w: 0, @@ -1700,7 +1700,7 @@ var it = ["src"], at = ["src"], ot = { } else a("ended"); } function Ie() { - U.value = e("viewer.studio.mediaError", "This file cannot be played by the browser."); + U.value = t("viewer.studio.mediaError", "This file cannot be played by the browser."); } function $() { let e = q(); @@ -1854,14 +1854,14 @@ var it = ["src"], at = ["src"], ot = { ref_key: "root", ref: m, class: T(["mjr-studio-player", { - "is-audio": t.kind === "audio", - "is-compact": t.compact, + "is-audio": e.kind === "audio", + "is-compact": e.compact, "controls-hidden": !H.value }]), onPointermove: wt, onClick: J }, [ - t.kind === "video" ? (y(), w("div", { + e.kind === "video" ? (y(), w("div", { key: 0, ref_key: "screen", ref: ae, @@ -1871,12 +1871,12 @@ var it = ["src"], at = ["src"], ot = { }, [ d("div", { class: "mjr-studio-player__layers", - style: S(t.mediaFilter ? { filter: t.mediaFilter } : void 0) + style: S(e.mediaFilter ? { filter: e.mediaFilter } : void 0) }, [d("video", { ref_key: "media", ref: o, - class: T(["mjr-studio-player__media", t.mediaClass]), - src: t.src, + class: T(["mjr-studio-player__media", e.mediaClass]), + src: e.src, playsinline: "", preload: "auto", onPlay: Me, @@ -1889,9 +1889,9 @@ var it = ["src"], at = ["src"], ot = { }, null, 42, it), Se.value ? (y(), w("video", { ref_key: "mediaB", ref: oe, - key: `b:${t.compareSrc}`, + key: `b:${e.compareSrc}`, class: "mjr-studio-player__media is-b", - src: t.compareSrc || "", + src: e.compareSrc || "", playsinline: "", muted: "", preload: "auto", @@ -1907,10 +1907,10 @@ var it = ["src"], at = ["src"], ot = { }), we.value ? (y(), w("div", { key: 0, class: T(["mjr-studio-stage__divider", { - "is-vertical": t.compare === "wipeV", + "is-vertical": e.compare === "wipeV", "is-active": se.value }]), - style: S(t.compare === "wipeV" ? { top: `${Te.value}%` } : { left: `${Te.value}%` }), + style: S(e.compare === "wipeV" ? { top: `${Te.value}%` } : { left: `${Te.value}%` }), onClick: r[1] ||= g(() => {}, ["stop"]), onDblclick: r[2] ||= g((e) => a("update:wipe", 50), ["stop"]), onPointerdown: g(Y, ["stop"]), @@ -1920,7 +1920,7 @@ var it = ["src"], at = ["src"], ot = { }, [...r[12] ||= [d("span", { class: "mjr-studio-stage__divider-grip" }, null, -1)]], 38)) : p("", !0)], 4), Se.value ? (y(), w("div", ot, [ r[13] ||= d("span", null, "A", -1), - d("span", st, x(t.compare === "wipeV" ? "/" : "|"), 1), + d("span", st, x(e.compare === "wipeV" ? "/" : "|"), 1), r[14] ||= d("span", null, "B", -1) ])) : p("", !0) ], 34)) : (y(), w("div", { @@ -1935,11 +1935,11 @@ var it = ["src"], at = ["src"], ot = { "aria-hidden": "true" }, null, 512), [[b, ue.value]]), s(d("i", ct, null, 512), [[b, !ue.value]]), - d("span", null, x(t.filename), 1), + d("span", null, x(e.filename), 1), d("audio", { ref_key: "media", ref: o, - src: t.src, + src: e.src, preload: "auto", onPlay: Me, onPause: Q, @@ -1954,7 +1954,7 @@ var it = ["src"], at = ["src"], ot = { key: 2, type: "button", class: "mjr-studio-player__big-play", - "aria-label": E(e)("viewer.studio.play", "Play"), + "aria-label": E(t)("viewer.studio.play", "Play"), onClick: $ }, { default: h(() => [...r[15] ||= [d("i", { @@ -1972,7 +1972,7 @@ var it = ["src"], at = ["src"], ot = { ref: ie, class: "mjr-studio-player__track", role: "slider", - "aria-label": E(e)("viewer.studio.seek", "Seek"), + "aria-label": E(t)("viewer.studio.seek", "Seek"), "aria-valuemin": 0, "aria-valuemax": P.value, "aria-valuenow": N.value, @@ -2007,7 +2007,7 @@ var it = ["src"], at = ["src"], ot = { f(i, { type: "button", class: "mjr-studio-btn", - title: E(e)("viewer.studio.playPause", "Play / pause (Space)"), + title: E(t)("viewer.studio.playPause", "Play / pause (Space)"), onClick: $ }, { default: h(() => [d("i", { @@ -2016,10 +2016,10 @@ var it = ["src"], at = ["src"], ot = { }, null, 2)]), _: 1 }, 8, ["title"]), - t.kind === "video" ? (y(), w(l, { key: 0 }, [f(i, { + e.kind === "video" ? (y(), w(l, { key: 0 }, [f(i, { type: "button", class: "mjr-studio-btn", - title: E(e)("viewer.studio.prevFrame", "Previous frame (,)"), + title: E(t)("viewer.studio.prevFrame", "Previous frame (,)"), onClick: r[6] ||= (e) => ze(-1) }, { default: h(() => [...r[16] ||= [d("i", { @@ -2030,7 +2030,7 @@ var it = ["src"], at = ["src"], ot = { }, 8, ["title"]), f(i, { type: "button", class: "mjr-studio-btn", - title: E(e)("viewer.studio.nextFrame", "Next frame (.)"), + title: E(t)("viewer.studio.nextFrame", "Next frame (.)"), onClick: r[7] ||= (e) => ze(1) }, { default: h(() => [...r[17] ||= [d("i", { @@ -2040,10 +2040,10 @@ var it = ["src"], at = ["src"], ot = { _: 1 }, 8, ["title"])], 64)) : p("", !0), d("span", pt, [C(x(E(Ke)(N.value)) + " ", 1), d("span", mt, "/ " + x(E(Ke)(P.value)), 1)]), - t.kind === "video" && W.value ? (y(), w("span", { + e.kind === "video" && W.value ? (y(), w("span", { key: 1, class: "mjr-studio-chip", - title: E(e)("viewer.studio.frame", "Frame") + title: E(t)("viewer.studio.frame", "Frame") }, [ C(" f " + x(G.value), 1), _e.value ? (y(), w(l, { key: 0 }, [C(" / " + x(_e.value - 1), 1)], 64)) : p("", !0), @@ -2052,7 +2052,7 @@ var it = ["src"], at = ["src"], ot = { r[24] ||= d("span", { class: "mjr-studio-player__spacer" }, null, -1), d("div", { class: "mjr-studio-player__group", - title: E(e)("viewer.studio.abLoop", "A-B loop (I / O, U to clear)") + title: E(t)("viewer.studio.abLoop", "A-B loop (I / O, U to clear)") }, [ f(i, { type: "button", @@ -2074,7 +2074,7 @@ var it = ["src"], at = ["src"], ot = { key: 0, type: "button", class: "mjr-studio-btn", - title: E(e)("viewer.studio.clearLoop", "Clear A-B loop"), + title: E(t)("viewer.studio.clearLoop", "Clear A-B loop"), onClick: xt }, { default: h(() => [...r[20] ||= [d("i", { @@ -2087,7 +2087,7 @@ var it = ["src"], at = ["src"], ot = { f(i, { type: "button", class: T(["mjr-studio-btn", { "is-on": z.value }]), - title: E(e)("viewer.studio.loop", "Loop"), + title: E(t)("viewer.studio.loop", "Loop"), onClick: r[8] ||= (e) => z.value = !z.value }, { default: h(() => [...r[21] ||= [d("i", { @@ -2099,7 +2099,7 @@ var it = ["src"], at = ["src"], ot = { f(i, { type: "button", class: T(["mjr-studio-btn is-text", { "is-on": R.value !== 1 }]), - title: E(e)("viewer.studio.speed", "Speed ([ / ])"), + title: E(t)("viewer.studio.speed", "Speed ([ / ])"), onClick: r[9] ||= (e) => Je(1, !0) }, { default: h(() => [C(x(R.value) + "×", 1)]), @@ -2108,7 +2108,7 @@ var it = ["src"], at = ["src"], ot = { d("div", _t, [f(i, { type: "button", class: "mjr-studio-btn", - title: E(e)("viewer.studio.mute", "Mute (M)"), + title: E(t)("viewer.studio.mute", "Mute (M)"), onClick: et }, { default: h(() => [d("i", { @@ -2119,7 +2119,7 @@ var it = ["src"], at = ["src"], ot = { }, 8, ["title"]), d("div", { class: "mjr-studio-player__volume", role: "slider", - "aria-label": E(e)("viewer.studio.volume", "Volume"), + "aria-label": E(t)("viewer.studio.volume", "Volume"), "aria-valuemin": 0, "aria-valuemax": 1, "aria-valuenow": L.value ? 0 : I.value, @@ -2130,11 +2130,11 @@ var it = ["src"], at = ["src"], ot = { class: "mjr-studio-player__volume-fill", style: S({ width: `${(L.value ? 0 : I.value) * 100}%` }) }, null, 4)], 40, vt)]), - t.kind === "video" ? (y(), u(i, { + e.kind === "video" ? (y(), u(i, { key: 2, type: "button", class: "mjr-studio-btn", - title: E(e)("viewer.studio.exportFrame", "Save this frame as PNG"), + title: E(t)("viewer.studio.exportFrame", "Save this frame as PNG"), onClick: Ct }, { default: h(() => [...r[22] ||= [d("i", { @@ -2143,11 +2143,11 @@ var it = ["src"], at = ["src"], ot = { }, null, -1)]]), _: 1 }, 8, ["title"])) : p("", !0), - t.kind === "video" ? (y(), u(i, { + e.kind === "video" ? (y(), u(i, { key: 3, type: "button", class: "mjr-studio-btn", - title: E(e)("viewer.studio.fullscreen", "Fullscreen (F)"), + title: E(t)("viewer.studio.fullscreen", "Fullscreen (F)"), onClick: St }, { default: h(() => [...r[23] ||= [d("i", { diff --git a/dist/chunks/generationSectionState-DuXxSw-j.js b/dist/chunks/generationSectionState-BR-TS47u.js similarity index 78% rename from dist/chunks/generationSectionState-DuXxSw-j.js rename to dist/chunks/generationSectionState-BR-TS47u.js index 4ebbcf9e..f4eda41d 100644 --- a/dist/chunks/generationSectionState-DuXxSw-j.js +++ b/dist/chunks/generationSectionState-BR-TS47u.js @@ -1,6 +1,6 @@ -import { $ as e, $t as t, B as n, Bn as r, Bt as i, Cn as a, Ct as o, Dt as s, Et as c, Fn as l, G as u, H as d, Ht as f, J as p, K as m, Kt as h, L as g, Mt as _, Nt as v, On as y, Pt as b, Qt as x, Rn as S, St as C, Tt as ee, U as te, Ut as w, V as ne, W as T, Wt as E, X as D, Y as O, Z as re, _n as ie, _t as ae, an as k, ar as A, bt as j, en as oe, et as se, gt as ce, hn as le, ht as ue, in as M, jt as de, k as fe, kt as pe, mt as me, n as N, nn as he, nt as ge, pr as _e, pt as ve, q as ye, rn as be, t as P, tn as xe, tt as Se, vt as Ce, wt as we, xn as Te, xt as Ee, yn as De, yt as Oe } from "./config-C9a-wT5M.js"; +import { An as e, Bn as t, Cn as n, Ct as r, Dt as i, Et as a, Ft as o, G as s, Gt as c, H as l, Hn as u, Ht as d, It as f, J as p, Jt as m, K as h, Kt as g, Ln as _, Nt as v, Ot as y, Pt as b, Q as x, R as S, St as C, Tn as w, Tt as ee, U as T, V as E, W as te, Wt as D, X as O, Y as ne, Z as re, _n as ie, _t as ae, an as k, bt as oe, en as se, gt as A, hr as ce, ht as le, in as ue, it as de, jt as fe, k as pe, kt as me, n as j, nn as he, nt as ge, on as M, q as _e, rn as ve, rt as ye, sn as be, sr as xe, t as N, tn as Se, tt as Ce, vt as we, wt as Te, xn as Ee, xt as De, yn as Oe, yt as ke } from "./config-D56TZeFo.js"; // ui/utils/events.ts -function ke(e, t, { target: n = null, warnPrefix: r = "[Majoor]" } = {}) { +function Ae(e, t, { target: n = null, warnPrefix: r = "[Majoor]" } = {}) { let i = n || (typeof window < "u" ? window : null); if (!i || typeof i.dispatchEvent != "function") return !1; try { @@ -15,7 +15,7 @@ function ke(e, t, { target: n = null, warnPrefix: r = "[Majoor]" } = {}) { } } // ui/app/settings/settingsUtils.ts -var F = (e, t) => { +var P = (e, t) => { if (typeof e == "boolean") return e; if (typeof e == "string") { let t = e.trim().toLowerCase(); @@ -33,37 +33,37 @@ var F = (e, t) => { ].includes(t)) return !1; } return !!t; -}, I = (e, t) => { +}, F = (e, t) => { let n = Number(e); return Number.isFinite(n) ? n : Number(t); -}, Ae = (e, t, n) => { +}, je = (e, t, n) => { let r = typeof e == "string" ? e.trim() : String(e ?? ""); return t.includes(r) ? r : n; -}, je = (e) => e === "__proto__" || e === "prototype" || e === "constructor", Me = (e, t) => { +}, Me = (e) => e === "__proto__" || e === "prototype" || e === "constructor", Ne = (e, t) => { let n = { ...e }; return !t || typeof t != "object" || Object.keys(t).forEach((r) => { - if (je(r)) return; + if (Me(r)) return; let i = t[r]; - i && typeof i == "object" && !Array.isArray(i) ? n[r] = Me(e[r] || {}, i) : i !== void 0 && (n[r] = i); + i && typeof i == "object" && !Array.isArray(i) ? n[r] = Ne(e[r] || {}, i) : i !== void 0 && (n[r] = i); }), n; -}, Ne = Object.freeze({ +}, Pe = Object.freeze({ small: 80, medium: 120, large: 180 -}), Pe = Object.freeze([ +}), Fe = Object.freeze([ "small", "medium", "large" -]), Fe = (e, t) => Math.max(60, Math.min(600, Math.round(I(e, t)))), Ie = (e = {}) => { +]), Ie = (e, t) => Math.max(60, Math.min(600, Math.round(F(e, t)))), Le = (e = {}) => { let t = Number(e?.minSize); - if (Number.isFinite(t)) return Fe(t, N.GRID_MIN_SIZE); - let n = Ae(String(e?.minSizePreset || "").toLowerCase(), Pe, ""); - return n ? Ne[n] : Fe(e?.minSize, N.GRID_MIN_SIZE); -}, Le = (e = {}) => Fe(e?.minSize, N.FEED_GRID_MIN_SIZE), Re = (e) => { - let t = Math.round(I(e, N.GRID_MIN_SIZE)); + if (Number.isFinite(t)) return Ie(t, j.GRID_MIN_SIZE); + let n = je(String(e?.minSizePreset || "").toLowerCase(), Fe, ""); + return n ? Pe[n] : Ie(e?.minSize, j.GRID_MIN_SIZE); +}, Re = (e = {}) => Ie(e?.minSize, j.FEED_GRID_MIN_SIZE), ze = (e) => { + let t = Math.round(F(e, j.GRID_MIN_SIZE)); return t <= 100 ? "small" : t >= 150 ? "large" : "medium"; -}, ze = async (e, t = "Majoor", n = {}) => { - let r = Ue(); +}, Be = async (e, t = "Majoor", n = {}) => { + let r = We(); if (r && typeof r.alert == "function") try { await r.alert({ title: String(t || "Majoor"), @@ -73,7 +73,7 @@ var F = (e, t) => { } catch (e) { console.debug?.(e); } - let i = We(); + let i = Ge(); if (i) try { let n = String(e || ""); typeof i.info == "function" ? i.info(String(t || "Majoor"), { @@ -91,9 +91,9 @@ var F = (e, t) => { console.debug?.(e); } if (n?.native !== !1) { - let n = Ge(); + let n = Ke(); if (n) try { - n.show(Ke(e, t)); + n.show(qe(e, t)); try { n.element?.style?.setProperty?.("z-index", "1100"); } catch (e) { @@ -104,21 +104,21 @@ var F = (e, t) => { console.debug?.(e); } } - let a = Ze(); + let a = Qe(); if (a) return new Promise((n) => { let r = new a(); - tt(r); - let i = L("div", { style: { + nt(r); + let i = I("div", { style: { display: "flex", flexDirection: "column", gap: "18px", padding: "18px 20px 18px 20px" } }, [ - L("div", { style: { + I("div", { style: { display: "flex", alignItems: "center", justifyContent: "flex-start" - } }, [L("div", { + } }, [I("div", { textContent: t, style: { fontWeight: "700", @@ -127,7 +127,7 @@ var F = (e, t) => { lineHeight: "1.2" } })]), - L("div", { + I("div", { textContent: String(e || ""), style: { fontSize: "22px", @@ -136,11 +136,11 @@ var F = (e, t) => { lineHeight: "1.45" } }), - L("div", { style: { + I("div", { style: { display: "flex", justifyContent: "flex-end", gap: "10px" - } }, [L("button", { + } }, [I("button", { textContent: M("dialog.confirm", "Confirm"), onclick: () => { try { @@ -162,7 +162,7 @@ var F = (e, t) => { })]) ]); try { - r.show(i), setTimeout(() => nt(r), 0); + r.show(i), setTimeout(() => rt(r), 0); } catch { try { window.alert(e); @@ -177,8 +177,8 @@ var F = (e, t) => { } catch (e) { console.debug?.(e); } -}, Be = async (e, t = "Majoor") => { - let n = Ue(); +}, Ve = async (e, t = "Majoor") => { + let n = We(); if (n) try { let r = { title: String(t || M("dialog.confirm", "Confirm")), @@ -188,7 +188,7 @@ var F = (e, t) => { } catch (e) { console.debug?.(e); } - let r = Ze(); + let r = Qe(); if (!r) try { return window.confirm(e); } catch { @@ -196,7 +196,7 @@ var F = (e, t) => { } return new Promise((n) => { let i = new r(); - tt(i); + nt(i); let a = (e) => { try { i.close(); @@ -204,17 +204,17 @@ var F = (e, t) => { console.debug?.(e); } n(!!e); - }, o = L("div", { style: { + }, o = I("div", { style: { display: "flex", flexDirection: "column", gap: "18px", padding: "18px 20px 18px 20px" } }, [ - L("div", { style: { + I("div", { style: { display: "flex", alignItems: "center", justifyContent: "flex-start" - } }, [L("div", { + } }, [I("div", { textContent: t, style: { fontWeight: "700", @@ -223,7 +223,7 @@ var F = (e, t) => { lineHeight: "1.2" } })]), - L("div", { + I("div", { textContent: String(e || ""), style: { fontSize: "22px", @@ -232,11 +232,11 @@ var F = (e, t) => { lineHeight: "1.45" } }), - L("div", { style: { + I("div", { style: { display: "flex", justifyContent: "flex-end", gap: "10px" - } }, [L("button", { + } }, [I("button", { textContent: M("dialog.cancel", "Cancel"), onclick: () => a(!1), style: { @@ -248,7 +248,7 @@ var F = (e, t) => { fontWeight: "600", cursor: "pointer" } - }), L("button", { + }), I("button", { textContent: M("dialog.confirm", "Confirm"), onclick: () => a(!0), style: { @@ -263,7 +263,7 @@ var F = (e, t) => { })]) ]); try { - i.show(o), setTimeout(() => nt(i), 0); + i.show(o), setTimeout(() => rt(i), 0); } catch { try { n(!!window.confirm(e)); @@ -272,8 +272,8 @@ var F = (e, t) => { } } }); -}, Ve = async (e, t = "", n = "Majoor") => { - let r = Ue(); +}, He = async (e, t = "", n = "Majoor") => { + let r = We(); if (r) try { let i = { title: String(n || M("dialog.prompt", "Prompt")), @@ -284,7 +284,7 @@ var F = (e, t) => { } catch (e) { console.debug?.(e); } - let i = Ze(); + let i = Qe(); if (!i) try { return window.prompt(e, t); } catch { @@ -292,7 +292,7 @@ var F = (e, t) => { } return new Promise((r) => { let a = new i(); - tt(a); + nt(a); let o = (e) => { try { a.close(); @@ -300,7 +300,7 @@ var F = (e, t) => { console.debug?.(e); } r(e ?? null); - }, s = L("input", { + }, s = I("input", { type: "text", value: String(t ?? ""), style: { @@ -316,13 +316,13 @@ var F = (e, t) => { onkeydown: (e) => { e.key === "Enter" && o(s.value), e.key === "Escape" && o(null), e.stopPropagation(); } - }), c = L("div", { style: { + }), c = I("div", { style: { display: "flex", flexDirection: "column", gap: "12px", padding: "16px" } }, [ - L("div", { + I("div", { textContent: n, style: { fontWeight: "600", @@ -330,7 +330,7 @@ var F = (e, t) => { color: "rgba(255,255,255,0.95)" } }), - L("div", { + I("div", { textContent: String(e || ""), style: { fontSize: "13px", @@ -340,11 +340,11 @@ var F = (e, t) => { } }), s, - L("div", { style: { + I("div", { style: { display: "flex", justifyContent: "flex-end", gap: "10px" - } }, [L("button", { + } }, [I("button", { textContent: M("dialog.cancel", "Cancel"), onclick: () => o(null), style: { @@ -355,7 +355,7 @@ var F = (e, t) => { color: "rgba(255,255,255,0.85)", cursor: "pointer" } - }), L("button", { + }), I("button", { textContent: M("dialog.ok", "OK"), onclick: () => o(s.value), style: { @@ -369,7 +369,7 @@ var F = (e, t) => { })]) ]); try { - a.show(c), setTimeout(() => nt(a), 0), setTimeout(() => { + a.show(c), setTimeout(() => rt(a), 0), setTimeout(() => { try { s.focus(), s.select(); } catch (e) { @@ -384,41 +384,41 @@ var F = (e, t) => { } } }); -}, He = () => { +}, Ue = () => { try { - return Te()?.ui || null; + return n()?.ui || null; } catch { return null; } -}, Ue = () => { +}, We = () => { let e = (e) => !!e && (typeof e.alert == "function" || typeof e.confirm == "function" || typeof e.prompt == "function"); try { - let t = ie(); + let t = Oe(); if (e(t)) return t; } catch (e) { console.debug?.(e); } return null; -}, We = () => { - try { - let e = De(); - if (e) return e; - } catch (e) { - console.debug?.(e); - } - return null; }, Ge = () => { try { - let e = He(); + let e = Ee(); + if (e) return e; + } catch (e) { + console.debug?.(e); + } + return null; +}, Ke = () => { + try { + let e = Ue(); if (e?.dialog && typeof e.dialog.show == "function") return e.dialog; } catch (e) { console.debug?.(e); } return null; -}, Ke = (e, t = "Majoor") => { +}, qe = (e, t = "Majoor") => { let n = String(e ?? ""), r = String(t ?? "").trim(); return !r || r.toLowerCase() === "majoor" ? n : `${r}

${n}`; -}, qe = /* @__PURE__ */ new Set(/* @__PURE__ */ "abort.blur.change.click.close.contextmenu.dblclick.dragend.dragenter.dragleave.dragover.dragstart.drop.error.focus.input.keydown.keypress.keyup.load.mousedown.mouseenter.mouseleave.mousemove.mouseout.mouseover.mouseup.reset.resize.scroll.select.submit.touchcancel.touchend.touchmove.touchstart.transitionend.unload.wheel".split(".")), Je = /* @__PURE__ */ new Set([ +}, Je = /* @__PURE__ */ new Set(/* @__PURE__ */ "abort.blur.change.click.close.contextmenu.dblclick.dragend.dragenter.dragleave.dragover.dragstart.drop.error.focus.input.keydown.keypress.keyup.load.mousedown.mouseenter.mouseleave.mousemove.mouseout.mouseover.mouseup.reset.resize.scroll.select.submit.touchcancel.touchend.touchmove.touchstart.transitionend.unload.wheel".split(".")), Ye = /* @__PURE__ */ new Set([ "__proto__", "constructor", "prototype", @@ -429,7 +429,7 @@ var F = (e, t) => { "__defineSetter__", "__lookupGetter__", "__lookupSetter__" -]), Ye = /* @__PURE__ */ new Set([ +]), Xe = /* @__PURE__ */ new Set([ "id", "name", "value", @@ -442,20 +442,20 @@ var F = (e, t) => { "htmlFor", "role", "tabIndex" -]), Xe = (e, t = {}, n = []) => { +]), Ze = (e, t = {}, n = []) => { let r = document.createElement(e); return Object.entries(t || {}).forEach(([e, t]) => { let n = String(e || ""); - if (n && !Je.has(n)) { + if (n && !Ye.has(n)) { if (e === "style" && t && typeof t == "object") Object.assign(r.style, t); else if (e === "className") r.className = String(t); else if (n.startsWith("on")) { if (typeof t == "function") { let e = n.slice(2).toLowerCase(); - qe.has(e) && r.addEventListener(e, t); + Je.has(e) && r.addEventListener(e, t); } } else { - if (Ye.has(n)) try { + if (Xe.has(n)) try { r[n] = t; return; } catch (e) { @@ -475,19 +475,19 @@ var F = (e, t) => { r.appendChild(document.createTextNode(String(e))); } }), r; -}, L = (e, t, n) => { - let r = He(); +}, I = (e, t, n) => { + let r = Ue(); if (r?.$el) try { return r.$el(e, t, n); } catch {} - return Xe(e, t, n); -}, Ze = () => He()?.ComfyDialog || null, Qe = 999999, $e = 560, et = 12, tt = (e) => { + return Ze(e, t, n); +}, Qe = () => Ue()?.ComfyDialog || null, $e = 999999, et = 560, tt = 12, nt = (e) => { try { - e.element.style.zIndex = String(Qe), e.element.style.width = `${$e}px`, e.element.style.padding = "0", e.element.style.backgroundColor = "var(--comfy-menu-bg, #131722)", e.element.style.border = "1px solid rgba(255,255,255,0.14)", e.element.style.borderRadius = `${et}px`, e.element.style.boxSizing = "border-box", e.element.style.overflow = "hidden", e.element.style.boxShadow = "0 18px 48px rgba(0,0,0,0.48)"; + e.element.style.zIndex = String($e), e.element.style.width = `${et}px`, e.element.style.padding = "0", e.element.style.backgroundColor = "var(--comfy-menu-bg, #131722)", e.element.style.border = "1px solid rgba(255,255,255,0.14)", e.element.style.borderRadius = `${tt}px`, e.element.style.boxSizing = "border-box", e.element.style.overflow = "hidden", e.element.style.boxShadow = "0 18px 48px rgba(0,0,0,0.48)"; } catch (e) { console.debug?.(e); } -}, nt = (e) => { +}, rt = (e) => { try { let t = e?.element; if (!t) return; @@ -503,76 +503,76 @@ var F = (e, t) => { } catch (e) { console.debug?.(e); } -}, R = { +}, L = { debug: { - safeCall: N.DEBUG_SAFE_CALL, - safeListeners: N.DEBUG_SAFE_LISTENERS, - viewer: N.DEBUG_VIEWER + safeCall: j.DEBUG_SAFE_CALL, + safeListeners: j.DEBUG_SAFE_LISTENERS, + viewer: j.DEBUG_VIEWER }, grid: { - pageSize: N.DEFAULT_PAGE_SIZE, - minSize: N.GRID_MIN_SIZE, - minSizePreset: Re(N.GRID_MIN_SIZE), - gap: N.GRID_GAP, - showExtBadge: N.GRID_SHOW_BADGES_EXTENSION, - showRatingBadge: N.GRID_SHOW_BADGES_RATING, - showTagsBadge: N.GRID_SHOW_BADGES_TAGS, - showDetails: N.GRID_SHOW_DETAILS, - showFilename: N.GRID_SHOW_DETAILS_FILENAME, - showDate: N.GRID_SHOW_DETAILS_DATE, - showDimensions: N.GRID_SHOW_DETAILS_DIMENSIONS, - showGenTime: N.GRID_SHOW_DETAILS_GENTIME, - showHoverInfo: N.GRID_SHOW_HOVER_INFO, - showWorkflowDot: N.GRID_SHOW_WORKFLOW_DOT, - workflowGroupBy: N.WORKFLOW_GRID_GROUP_BY, - videoAutoplayMode: N.GRID_VIDEO_AUTOPLAY_MODE, - starColor: N.BADGE_STAR_COLOR, - badgeImageColor: N.BADGE_IMAGE_COLOR, - badgeVideoColor: N.BADGE_VIDEO_COLOR, - badgeAudioColor: N.BADGE_AUDIO_COLOR, - badgeModel3dColor: N.BADGE_MODEL3D_COLOR, - badgeDuplicateAlertColor: N.BADGE_DUPLICATE_ALERT_COLOR + pageSize: j.DEFAULT_PAGE_SIZE, + minSize: j.GRID_MIN_SIZE, + minSizePreset: ze(j.GRID_MIN_SIZE), + gap: j.GRID_GAP, + showExtBadge: j.GRID_SHOW_BADGES_EXTENSION, + showRatingBadge: j.GRID_SHOW_BADGES_RATING, + showTagsBadge: j.GRID_SHOW_BADGES_TAGS, + showDetails: j.GRID_SHOW_DETAILS, + showFilename: j.GRID_SHOW_DETAILS_FILENAME, + showDate: j.GRID_SHOW_DETAILS_DATE, + showDimensions: j.GRID_SHOW_DETAILS_DIMENSIONS, + showGenTime: j.GRID_SHOW_DETAILS_GENTIME, + showHoverInfo: j.GRID_SHOW_HOVER_INFO, + showWorkflowDot: j.GRID_SHOW_WORKFLOW_DOT, + workflowGroupBy: j.WORKFLOW_GRID_GROUP_BY, + videoAutoplayMode: j.GRID_VIDEO_AUTOPLAY_MODE, + starColor: j.BADGE_STAR_COLOR, + badgeImageColor: j.BADGE_IMAGE_COLOR, + badgeVideoColor: j.BADGE_VIDEO_COLOR, + badgeAudioColor: j.BADGE_AUDIO_COLOR, + badgeModel3dColor: j.BADGE_MODEL3D_COLOR, + badgeDuplicateAlertColor: j.BADGE_DUPLICATE_ALERT_COLOR }, infiniteScroll: { - enabled: N.INFINITE_SCROLL_ENABLED, - rootMargin: N.INFINITE_SCROLL_ROOT_MARGIN, - threshold: N.INFINITE_SCROLL_THRESHOLD, - bottomGapPx: N.BOTTOM_GAP_PX + enabled: j.INFINITE_SCROLL_ENABLED, + rootMargin: j.INFINITE_SCROLL_ROOT_MARGIN, + threshold: j.INFINITE_SCROLL_THRESHOLD, + bottomGapPx: j.BOTTOM_GAP_PX }, siblings: { hidePngSiblings: !0 }, - autoScan: { onStartup: N.AUTO_SCAN_ON_STARTUP }, + autoScan: { onStartup: j.AUTO_SCAN_ON_STARTUP }, scan: { fastMode: !0, jxlEnabled: !1 }, watcher: { enabled: !0, - debounceMs: N.WATCHER_DEBOUNCE_MS, - dedupeTtlMs: N.WATCHER_DEDUPE_TTL_MS, + debounceMs: j.WATCHER_DEBOUNCE_MS, + dedupeTtlMs: j.WATCHER_DEDUPE_TTL_MS, maxPending: 500, minSize: 100, maxSize: 4294967296 }, safety: { confirmDeletion: !0 }, - status: { pollInterval: N.STATUS_POLL_INTERVAL }, + status: { pollInterval: j.STATUS_POLL_INTERVAL }, viewer: { - pauseDuringExecution: N.VIEWER_PAUSE_DURING_EXECUTION, - floatingPauseDuringExecution: N.FLOATING_VIEWER_PAUSE_DURING_EXECUTION, - mfvLiveDefault: N.MFV_LIVE_DEFAULT, - mfvPreviewDefault: N.MFV_PREVIEW_DEFAULT, - mfvTopbarButton: N.MFV_TOPBAR_BUTTON, + pauseDuringExecution: j.VIEWER_PAUSE_DURING_EXECUTION, + floatingPauseDuringExecution: j.FLOATING_VIEWER_PAUSE_DURING_EXECUTION, + mfvLiveDefault: j.MFV_LIVE_DEFAULT, + mfvPreviewDefault: j.MFV_PREVIEW_DEFAULT, + mfvTopbarButton: j.MFV_TOPBAR_BUTTON, mfvSidebarPosition: "right", - mfvPreviewMethod: N.MFV_PREVIEW_METHOD, - mfvKjPreviewOverrideEnabled: N.MFV_KJ_PREVIEW_OVERRIDE_ENABLED, + mfvPreviewMethod: j.MFV_PREVIEW_METHOD, + mfvKjPreviewOverrideEnabled: j.MFV_KJ_PREVIEW_OVERRIDE_ENABLED, ltxavRgbFallback: !1 }, browser: { showFolders: !1 }, rtHydrate: { - concurrency: N.RT_HYDRATE_CONCURRENCY, - queueMax: N.RT_HYDRATE_QUEUE_MAX, - seenMax: N.RT_HYDRATE_SEEN_MAX, - pruneBudget: N.RT_HYDRATE_PRUNE_BUDGET, - seenTtlMs: N.RT_HYDRATE_SEEN_TTL_MS + concurrency: j.RT_HYDRATE_CONCURRENCY, + queueMax: j.RT_HYDRATE_QUEUE_MAX, + seenMax: j.RT_HYDRATE_SEEN_MAX, + pruneBudget: j.RT_HYDRATE_PRUNE_BUDGET, + seenTtlMs: j.RT_HYDRATE_SEEN_TTL_MS }, observability: { enabled: !1, @@ -582,22 +582,22 @@ var F = (e, t) => { verboseStartupLogs: !1 }, feed: { - minSize: N.FEED_GRID_MIN_SIZE, - showInfo: N.FEED_SHOW_INFO, - showFilename: N.FEED_SHOW_FILENAME, - showDimensions: N.FEED_SHOW_DIMENSIONS, - showDate: N.FEED_SHOW_DATE, - showGenTime: N.FEED_SHOW_GENTIME, - showWorkflowDot: N.FEED_SHOW_WORKFLOW_DOT, - showExtBadge: N.FEED_SHOW_BADGES_EXTENSION, - showRatingBadge: N.FEED_SHOW_BADGES_RATING, - showTagsBadge: N.FEED_SHOW_BADGES_TAGS + minSize: j.FEED_GRID_MIN_SIZE, + showInfo: j.FEED_SHOW_INFO, + showFilename: j.FEED_SHOW_FILENAME, + showDimensions: j.FEED_SHOW_DIMENSIONS, + showDate: j.FEED_SHOW_DATE, + showGenTime: j.FEED_SHOW_GENTIME, + showWorkflowDot: j.FEED_SHOW_WORKFLOW_DOT, + showExtBadge: j.FEED_SHOW_BADGES_EXTENSION, + showRatingBadge: j.FEED_SHOW_BADGES_RATING, + showTagsBadge: j.FEED_SHOW_BADGES_TAGS }, sidebar: { position: "right", showPreviewThumb: !0, widthPx: 360, - assetBadgeEnabled: N.SIDEBAR_ASSET_BADGE_ENABLED + assetBadgeEnabled: j.SIDEBAR_ASSET_BADGE_ENABLED }, integration: { hideNativeAssetsTab: !1 }, probeBackend: { mode: "auto" }, @@ -619,15 +619,15 @@ var F = (e, t) => { }, ratingTagsSync: { enabled: !0 }, cache: { tagsTTLms: 3e4 }, - search: { maxResults: N.SEARCH_DEFAULT_LIMIT }, + search: { maxResults: j.SEARCH_DEFAULT_LIMIT }, ai: { vectorSearchEnabled: !0, vectorCaptionOnIndex: !1, verboseAiLogs: !1 }, - executionGrouping: { enabled: N.EXECUTION_GROUPING_ENABLED }, + executionGrouping: { enabled: j.EXECUTION_GROUPING_ENABLED }, workflowMinimap: { - enabled: N.WORKFLOW_MINIMAP_ENABLED, + enabled: j.WORKFLOW_MINIMAP_ENABLED, nodeColors: !0, showLinks: !0, showGroups: !0, @@ -638,10 +638,10 @@ var F = (e, t) => { size: "comfortable" }, ui: { - cardHoverColor: N.UI_CARD_HOVER_COLOR, - cardSelectionColor: N.UI_CARD_SELECTION_COLOR, - ratingColor: N.UI_RATING_COLOR, - tagColor: N.UI_TAG_COLOR + cardHoverColor: j.UI_CARD_HOVER_COLOR, + cardSelectionColor: j.UI_CARD_SELECTION_COLOR, + ratingColor: j.UI_RATING_COLOR, + tagColor: j.UI_TAG_COLOR }, security: { safeMode: !1, @@ -657,26 +657,26 @@ var F = (e, t) => { tokenConfigured: !1, tokenHint: "" } -}, z = () => { +}, R = () => { try { - let e = k.get(_e); - if (!e) return { ...R }; + let e = be.get(ce); + if (!e) return { ...L }; let t = JSON.parse(e), n = t && typeof t == "object" && Number.isInteger(t.version) && t.data && typeof t.data == "object"; - if (!n && (!t || typeof t != "object" || Array.isArray(t))) return { ...R }; - if (n && Number(t.version) > 1) return console.warn("[Majoor] settings schema version is newer than this build, using defaults"), { ...R }; + if (!n && (!t || typeof t != "object" || Array.isArray(t))) return { ...L }; + if (n && Number(t.version) > 1) return console.warn("[Majoor] settings schema version is newer than this build, using defaults"), { ...L }; let r = n ? t.data : t, i = /* @__PURE__ */ new Set(/* @__PURE__ */ "debug.grid.infiniteScroll.siblings.autoScan.scan.watcher.status.viewer.rtHydrate.observability.feed.sidebar.probeBackend.i18n.paths.db.ratingTagsSync.cache.search.ai.executionGrouping.workflowMinimap.ui.security.safety".split(".")), a = {}; if (r && typeof r == "object") for (let [e, t] of Object.entries(r)) i.has(e) && (a[e] = t); - let o = Me(R, a); + let o = Ne(L, a); if (!n) try { - B(o); + z(o); } catch (e) { console.debug?.(e); } return o; } catch (e) { - return console.warn("[Majoor] settings load failed, using defaults", e), { ...R }; + return console.warn("[Majoor] settings load failed, using defaults", e), { ...L }; } -}, B = (e) => { +}, z = (e) => { try { let t = JSON.parse(JSON.stringify(e || {})); t?.security && typeof t.security == "object" && (t.security.apiToken = ""); @@ -684,117 +684,117 @@ var F = (e, t) => { version: 1, data: t }; - if (!k.set("mjrSettings", JSON.stringify(n))) throw Error("SettingsStore rejected the write"); + if (!be.set("mjrSettings", JSON.stringify(n))) throw Error("SettingsStore rejected the write"); } catch (e) { console.warn("[Majoor] settings save failed", e); try { let e = Date.now(); - e - (Number(window?._mjrSettingsSaveFailAt || 0) || 0) > 3e4 && (window._mjrSettingsSaveFailAt = e, ze(M("dialog.settingsSaveFailed", "Majoor: Failed to save settings (browser storage full or blocked)."))); + e - (Number(window?._mjrSettingsSaveFailAt || 0) || 0) > 3e4 && (window._mjrSettingsSaveFailAt = e, Be(M("dialog.settingsSaveFailed", "Majoor: Failed to save settings (browser storage full or blocked)."))); } catch (e) { console.debug?.(e); } try { - ke("mjr-settings-save-failed", { error: String(e?.message || e || "") }, { warnPrefix: "[Majoor]" }); + Ae("mjr-settings-save-failed", { error: String(e?.message || e || "") }, { warnPrefix: "[Majoor]" }); } catch (e) { console.debug?.(e); } } -}, V = (e) => { - let t = Number(N.MAX_PAGE_SIZE) || 2e3, n = Math.max(50, Math.min(t, Number(e.grid?.pageSize) || N.DEFAULT_PAGE_SIZE)); - P.DEFAULT_PAGE_SIZE = n, P.AUTO_SCAN_ON_STARTUP = !!e.autoScan?.onStartup, P.EXECUTION_GROUPING_ENABLED = !!(e.executionGrouping?.enabled ?? N.EXECUTION_GROUPING_ENABLED), P.STATUS_POLL_INTERVAL = Math.max(1e3, Number(e.status?.pollInterval) || N.STATUS_POLL_INTERVAL), P.DEBUG_SAFE_CALL = !!e.debug?.safeCall, P.DEBUG_SAFE_LISTENERS = !!e.debug?.safeListeners, P.DEBUG_VIEWER = !!e.debug?.viewer, P.GRID_MIN_SIZE = Ie(e.grid), P.FEED_GRID_MIN_SIZE = Le(e.feed), P.GRID_GAP = Math.max(0, Math.min(40, Math.round(I(e.grid?.gap, N.GRID_GAP)))), P.GRID_SHOW_BADGES_EXTENSION = !!(e.grid?.showExtBadge ?? N.GRID_SHOW_BADGES_EXTENSION), P.GRID_SHOW_BADGES_RATING = !!(e.grid?.showRatingBadge ?? N.GRID_SHOW_BADGES_RATING), P.GRID_SHOW_BADGES_TAGS = !!(e.grid?.showTagsBadge ?? N.GRID_SHOW_BADGES_TAGS), P.GRID_SHOW_DETAILS = !!(e.grid?.showDetails ?? N.GRID_SHOW_DETAILS), P.GRID_SHOW_DETAILS_FILENAME = !!(e.grid?.showFilename ?? N.GRID_SHOW_DETAILS_FILENAME), P.GRID_SHOW_DETAILS_DATE = !!(e.grid?.showDate ?? N.GRID_SHOW_DETAILS_DATE), P.GRID_SHOW_DETAILS_DIMENSIONS = !!(e.grid?.showDimensions ?? N.GRID_SHOW_DETAILS_DIMENSIONS), P.GRID_SHOW_DETAILS_GENTIME = !!(e.grid?.showGenTime ?? N.GRID_SHOW_DETAILS_GENTIME), P.GRID_SHOW_HOVER_INFO = !!(e.grid?.showHoverInfo ?? N.GRID_SHOW_HOVER_INFO), P.GRID_SHOW_WORKFLOW_DOT = !!(e.grid?.showWorkflowDot ?? N.GRID_SHOW_WORKFLOW_DOT); +}, B = (e) => { + let t = Number(j.MAX_PAGE_SIZE) || 2e3, n = Math.max(50, Math.min(t, Number(e.grid?.pageSize) || j.DEFAULT_PAGE_SIZE)); + N.DEFAULT_PAGE_SIZE = n, N.AUTO_SCAN_ON_STARTUP = !!e.autoScan?.onStartup, N.EXECUTION_GROUPING_ENABLED = !!(e.executionGrouping?.enabled ?? j.EXECUTION_GROUPING_ENABLED), N.STATUS_POLL_INTERVAL = Math.max(1e3, Number(e.status?.pollInterval) || j.STATUS_POLL_INTERVAL), N.DEBUG_SAFE_CALL = !!e.debug?.safeCall, N.DEBUG_SAFE_LISTENERS = !!e.debug?.safeListeners, N.DEBUG_VIEWER = !!e.debug?.viewer, N.GRID_MIN_SIZE = Le(e.grid), N.FEED_GRID_MIN_SIZE = Re(e.feed), N.GRID_GAP = Math.max(0, Math.min(40, Math.round(F(e.grid?.gap, j.GRID_GAP)))), N.GRID_SHOW_BADGES_EXTENSION = !!(e.grid?.showExtBadge ?? j.GRID_SHOW_BADGES_EXTENSION), N.GRID_SHOW_BADGES_RATING = !!(e.grid?.showRatingBadge ?? j.GRID_SHOW_BADGES_RATING), N.GRID_SHOW_BADGES_TAGS = !!(e.grid?.showTagsBadge ?? j.GRID_SHOW_BADGES_TAGS), N.GRID_SHOW_DETAILS = !!(e.grid?.showDetails ?? j.GRID_SHOW_DETAILS), N.GRID_SHOW_DETAILS_FILENAME = !!(e.grid?.showFilename ?? j.GRID_SHOW_DETAILS_FILENAME), N.GRID_SHOW_DETAILS_DATE = !!(e.grid?.showDate ?? j.GRID_SHOW_DETAILS_DATE), N.GRID_SHOW_DETAILS_DIMENSIONS = !!(e.grid?.showDimensions ?? j.GRID_SHOW_DETAILS_DIMENSIONS), N.GRID_SHOW_DETAILS_GENTIME = !!(e.grid?.showGenTime ?? j.GRID_SHOW_DETAILS_GENTIME), N.GRID_SHOW_HOVER_INFO = !!(e.grid?.showHoverInfo ?? j.GRID_SHOW_HOVER_INFO), N.GRID_SHOW_WORKFLOW_DOT = !!(e.grid?.showWorkflowDot ?? j.GRID_SHOW_WORKFLOW_DOT); { - let t = String(e.grid?.workflowGroupBy ?? N.WORKFLOW_GRID_GROUP_BY).toLowerCase(); - P.WORKFLOW_GRID_GROUP_BY = [ + let t = String(e.grid?.workflowGroupBy ?? j.WORKFLOW_GRID_GROUP_BY).toLowerCase(); + N.WORKFLOW_GRID_GROUP_BY = [ "none", "task", "model", "category" - ].includes(t) ? t : N.WORKFLOW_GRID_GROUP_BY; + ].includes(t) ? t : j.WORKFLOW_GRID_GROUP_BY; } - P.FEED_SHOW_INFO = !!(e.feed?.showInfo ?? N.FEED_SHOW_INFO), P.FEED_SHOW_FILENAME = !!(e.feed?.showFilename ?? N.FEED_SHOW_FILENAME), P.FEED_SHOW_DIMENSIONS = !!(e.feed?.showDimensions ?? N.FEED_SHOW_DIMENSIONS), P.FEED_SHOW_DATE = !!(e.feed?.showDate ?? N.FEED_SHOW_DATE), P.FEED_SHOW_GENTIME = !!(e.feed?.showGenTime ?? N.FEED_SHOW_GENTIME), P.FEED_SHOW_WORKFLOW_DOT = !!(e.feed?.showWorkflowDot ?? N.FEED_SHOW_WORKFLOW_DOT), P.FEED_SHOW_BADGES_EXTENSION = !!(e.feed?.showExtBadge ?? N.FEED_SHOW_BADGES_EXTENSION), P.FEED_SHOW_BADGES_RATING = !!(e.feed?.showRatingBadge ?? N.FEED_SHOW_BADGES_RATING), P.FEED_SHOW_BADGES_TAGS = !!(e.feed?.showTagsBadge ?? N.FEED_SHOW_BADGES_TAGS); + N.FEED_SHOW_INFO = !!(e.feed?.showInfo ?? j.FEED_SHOW_INFO), N.FEED_SHOW_FILENAME = !!(e.feed?.showFilename ?? j.FEED_SHOW_FILENAME), N.FEED_SHOW_DIMENSIONS = !!(e.feed?.showDimensions ?? j.FEED_SHOW_DIMENSIONS), N.FEED_SHOW_DATE = !!(e.feed?.showDate ?? j.FEED_SHOW_DATE), N.FEED_SHOW_GENTIME = !!(e.feed?.showGenTime ?? j.FEED_SHOW_GENTIME), N.FEED_SHOW_WORKFLOW_DOT = !!(e.feed?.showWorkflowDot ?? j.FEED_SHOW_WORKFLOW_DOT), N.FEED_SHOW_BADGES_EXTENSION = !!(e.feed?.showExtBadge ?? j.FEED_SHOW_BADGES_EXTENSION), N.FEED_SHOW_BADGES_RATING = !!(e.feed?.showRatingBadge ?? j.FEED_SHOW_BADGES_RATING), N.FEED_SHOW_BADGES_TAGS = !!(e.feed?.showTagsBadge ?? j.FEED_SHOW_BADGES_TAGS); { - let t = e.grid?.videoAutoplayMode ?? N.GRID_VIDEO_AUTOPLAY_MODE; - t ??= e.grid?.videoHoverAutoplay === !1 ? "off" : "hover", t === !0 && (t = "hover"), t === !1 && (t = "off"), t !== "hover" && t !== "always" && t !== "off" && (t = "hover"), P.GRID_VIDEO_AUTOPLAY_MODE = t; + let t = e.grid?.videoAutoplayMode ?? j.GRID_VIDEO_AUTOPLAY_MODE; + t ??= e.grid?.videoHoverAutoplay === !1 ? "off" : "hover", t === !0 && (t = "hover"), t === !1 && (t = "off"), t !== "hover" && t !== "always" && t !== "off" && (t = "hover"), N.GRID_VIDEO_AUTOPLAY_MODE = t; } let r = (e, t) => { let n = String(e || "").trim(); return /^[0-9a-fA-F]{6}$/.test(n) && (n = `#${n}`), /^#[0-9a-fA-F]{3,8}$/.test(n) ? n : t; }; - P.BADGE_STAR_COLOR = r(e.grid?.starColor, N.BADGE_STAR_COLOR), P.BADGE_IMAGE_COLOR = r(e.grid?.badgeImageColor, N.BADGE_IMAGE_COLOR), P.BADGE_VIDEO_COLOR = r(e.grid?.badgeVideoColor, N.BADGE_VIDEO_COLOR), P.BADGE_AUDIO_COLOR = r(e.grid?.badgeAudioColor, N.BADGE_AUDIO_COLOR), P.BADGE_MODEL3D_COLOR = r(e.grid?.badgeModel3dColor, N.BADGE_MODEL3D_COLOR), P.BADGE_DUPLICATE_ALERT_COLOR = r(e.grid?.badgeDuplicateAlertColor, N.BADGE_DUPLICATE_ALERT_COLOR), P.UI_CARD_HOVER_COLOR = r(e.ui?.cardHoverColor, N.UI_CARD_HOVER_COLOR), P.UI_CARD_SELECTION_COLOR = r(e.ui?.cardSelectionColor, N.UI_CARD_SELECTION_COLOR), P.UI_RATING_COLOR = r(e.ui?.ratingColor, N.UI_RATING_COLOR), P.UI_TAG_COLOR = r(e.ui?.tagColor, N.UI_TAG_COLOR); + N.BADGE_STAR_COLOR = r(e.grid?.starColor, j.BADGE_STAR_COLOR), N.BADGE_IMAGE_COLOR = r(e.grid?.badgeImageColor, j.BADGE_IMAGE_COLOR), N.BADGE_VIDEO_COLOR = r(e.grid?.badgeVideoColor, j.BADGE_VIDEO_COLOR), N.BADGE_AUDIO_COLOR = r(e.grid?.badgeAudioColor, j.BADGE_AUDIO_COLOR), N.BADGE_MODEL3D_COLOR = r(e.grid?.badgeModel3dColor, j.BADGE_MODEL3D_COLOR), N.BADGE_DUPLICATE_ALERT_COLOR = r(e.grid?.badgeDuplicateAlertColor, j.BADGE_DUPLICATE_ALERT_COLOR), N.UI_CARD_HOVER_COLOR = r(e.ui?.cardHoverColor, j.UI_CARD_HOVER_COLOR), N.UI_CARD_SELECTION_COLOR = r(e.ui?.cardSelectionColor, j.UI_CARD_SELECTION_COLOR), N.UI_RATING_COLOR = r(e.ui?.ratingColor, j.UI_RATING_COLOR), N.UI_TAG_COLOR = r(e.ui?.tagColor, j.UI_TAG_COLOR); try { let e = Array.from(document.querySelectorAll(".mjr-assets-manager")); - for (let t of e) t.style.setProperty("--mjr-star-active", P.BADGE_STAR_COLOR), t.style.setProperty("--mjr-badge-image", P.BADGE_IMAGE_COLOR), t.style.setProperty("--mjr-badge-video", P.BADGE_VIDEO_COLOR), t.style.setProperty("--mjr-badge-audio", P.BADGE_AUDIO_COLOR), t.style.setProperty("--mjr-badge-model3d", P.BADGE_MODEL3D_COLOR), t.style.setProperty("--mjr-badge-duplicate-alert", P.BADGE_DUPLICATE_ALERT_COLOR), t.style.setProperty("--mjr-card-hover-color", P.UI_CARD_HOVER_COLOR), t.style.setProperty("--mjr-card-selection-color", P.UI_CARD_SELECTION_COLOR), t.style.setProperty("--mjr-rating-color", P.UI_RATING_COLOR), t.style.setProperty("--mjr-tag-color", P.UI_TAG_COLOR); + for (let t of e) t.style.setProperty("--mjr-star-active", N.BADGE_STAR_COLOR), t.style.setProperty("--mjr-badge-image", N.BADGE_IMAGE_COLOR), t.style.setProperty("--mjr-badge-video", N.BADGE_VIDEO_COLOR), t.style.setProperty("--mjr-badge-audio", N.BADGE_AUDIO_COLOR), t.style.setProperty("--mjr-badge-model3d", N.BADGE_MODEL3D_COLOR), t.style.setProperty("--mjr-badge-duplicate-alert", N.BADGE_DUPLICATE_ALERT_COLOR), t.style.setProperty("--mjr-card-hover-color", N.UI_CARD_HOVER_COLOR), t.style.setProperty("--mjr-card-selection-color", N.UI_CARD_SELECTION_COLOR), t.style.setProperty("--mjr-rating-color", N.UI_RATING_COLOR), t.style.setProperty("--mjr-tag-color", N.UI_TAG_COLOR); } catch (e) { console.debug?.(e); } - P.INFINITE_SCROLL_ENABLED = !!e.infiniteScroll?.enabled, P.INFINITE_SCROLL_ROOT_MARGIN = String(e.infiniteScroll?.rootMargin || N.INFINITE_SCROLL_ROOT_MARGIN), P.INFINITE_SCROLL_THRESHOLD = Math.max(0, Math.min(1, I(e.infiniteScroll?.threshold, N.INFINITE_SCROLL_THRESHOLD))), P.BOTTOM_GAP_PX = Math.max(0, Math.min(5e3, Math.round(I(e.infiniteScroll?.bottomGapPx, N.BOTTOM_GAP_PX)))), P.VIEWER_PAUSE_DURING_EXECUTION = !!(e.viewer?.pauseDuringExecution ?? N.VIEWER_PAUSE_DURING_EXECUTION), P.FLOATING_VIEWER_PAUSE_DURING_EXECUTION = !!(e.viewer?.floatingPauseDuringExecution ?? N.FLOATING_VIEWER_PAUSE_DURING_EXECUTION), P.MFV_LIVE_DEFAULT = e.viewer?.mfvLiveDefault ?? N.MFV_LIVE_DEFAULT, P.MFV_PREVIEW_DEFAULT = e.viewer?.mfvPreviewDefault ?? N.MFV_PREVIEW_DEFAULT, P.MFV_KJ_PREVIEW_OVERRIDE_ENABLED = !!(e.viewer?.mfvKjPreviewOverrideEnabled ?? N.MFV_KJ_PREVIEW_OVERRIDE_ENABLED), P.MFV_TOPBAR_BUTTON = !!(e.viewer?.mfvTopbarButton ?? N.MFV_TOPBAR_BUTTON), P.MFV_LIVE_AUTO_OPEN = !1, P.MFV_PREVIEW_AUTO_OPEN = !1, P.MFV_NODE_STREAM_AUTO_OPEN = !1; + N.INFINITE_SCROLL_ENABLED = !!e.infiniteScroll?.enabled, N.INFINITE_SCROLL_ROOT_MARGIN = String(e.infiniteScroll?.rootMargin || j.INFINITE_SCROLL_ROOT_MARGIN), N.INFINITE_SCROLL_THRESHOLD = Math.max(0, Math.min(1, F(e.infiniteScroll?.threshold, j.INFINITE_SCROLL_THRESHOLD))), N.BOTTOM_GAP_PX = Math.max(0, Math.min(5e3, Math.round(F(e.infiniteScroll?.bottomGapPx, j.BOTTOM_GAP_PX)))), N.VIEWER_PAUSE_DURING_EXECUTION = !!(e.viewer?.pauseDuringExecution ?? j.VIEWER_PAUSE_DURING_EXECUTION), N.FLOATING_VIEWER_PAUSE_DURING_EXECUTION = !!(e.viewer?.floatingPauseDuringExecution ?? j.FLOATING_VIEWER_PAUSE_DURING_EXECUTION), N.MFV_LIVE_DEFAULT = e.viewer?.mfvLiveDefault ?? j.MFV_LIVE_DEFAULT, N.MFV_PREVIEW_DEFAULT = e.viewer?.mfvPreviewDefault ?? j.MFV_PREVIEW_DEFAULT, N.MFV_KJ_PREVIEW_OVERRIDE_ENABLED = !!(e.viewer?.mfvKjPreviewOverrideEnabled ?? j.MFV_KJ_PREVIEW_OVERRIDE_ENABLED), N.MFV_TOPBAR_BUTTON = !!(e.viewer?.mfvTopbarButton ?? j.MFV_TOPBAR_BUTTON), N.MFV_LIVE_AUTO_OPEN = !1, N.MFV_PREVIEW_AUTO_OPEN = !1, N.MFV_NODE_STREAM_AUTO_OPEN = !1; { - let t = String(e.viewer?.mfvPreviewMethod || N.MFV_PREVIEW_METHOD).toLowerCase(); - P.MFV_PREVIEW_METHOD = [ + let t = String(e.viewer?.mfvPreviewMethod || j.MFV_PREVIEW_METHOD).toLowerCase(); + N.MFV_PREVIEW_METHOD = [ "default", "auto", "latent2rgb", "taesd", "none" - ].includes(t) ? t : N.MFV_PREVIEW_METHOD; + ].includes(t) ? t : j.MFV_PREVIEW_METHOD; } { let t = String(e.viewer?.mfvSidebarPosition || "right").toLowerCase(); - P.MFV_SIDEBAR_POSITION = [ + N.MFV_SIDEBAR_POSITION = [ "left", "right", "bottom" ].includes(t) ? t : "right"; } - P.WORKFLOW_MINIMAP_ENABLED = !!(e.workflowMinimap?.enabled ?? N.WORKFLOW_MINIMAP_ENABLED), P.RT_HYDRATE_CONCURRENCY = Math.max(1, Math.min(16, Math.round(I(e.rtHydrate?.concurrency, N.RT_HYDRATE_CONCURRENCY)))), P.RT_HYDRATE_QUEUE_MAX = Math.max(10, Math.min(5e3, Math.round(I(e.rtHydrate?.queueMax, N.RT_HYDRATE_QUEUE_MAX)))), P.RT_HYDRATE_SEEN_MAX = Math.max(1e3, Math.min(2e5, Math.round(I(e.rtHydrate?.seenMax, N.RT_HYDRATE_SEEN_MAX)))), P.RT_HYDRATE_PRUNE_BUDGET = Math.max(10, Math.min(1e4, Math.round(I(e.rtHydrate?.pruneBudget, N.RT_HYDRATE_PRUNE_BUDGET)))), P.RT_HYDRATE_SEEN_TTL_MS = Math.max(5e3, Math.min(216e5, Math.round(I(e.rtHydrate?.seenTtlMs, N.RT_HYDRATE_SEEN_TTL_MS)))), P.DELETE_CONFIRMATION = !!e.safety?.confirmDeletion, P.DEBUG_VERBOSE_ERRORS = !!e.observability?.verboseErrors, P.WATCHER_MAX_PENDING = Math.max(10, Math.min(5e3, Math.round(I(e.watcher?.maxPending, 500)))), P.WATCHER_MIN_SIZE = Math.max(0, Math.min(1e6, Math.round(I(e.watcher?.minSize, 100)))), P.WATCHER_MAX_SIZE = Math.max(1e5, Math.min(17179869184, Math.round(I(e.watcher?.maxSize, 4294967296)))), P.DB_TIMEOUT_MS = Math.max(1e3, Math.min(3e4, Math.round(I(e.db?.timeoutMs, 5e3)))), P.DB_MAX_CONNECTIONS = Math.max(1, Math.min(100, Math.round(I(e.db?.maxConnections, 10)))), P.DB_QUERY_TIMEOUT_MS = Math.max(500, Math.min(1e4, Math.round(I(e.db?.queryTimeoutMs, 1e3)))), P.SIDEBAR_ASSET_BADGE_ENABLED = !!(e.sidebar?.assetBadgeEnabled ?? N.SIDEBAR_ASSET_BADGE_ENABLED), P.SEARCH_REQUEST_LIMIT = Math.max(10, Math.min(N.MAX_PAGE_SIZE || 2e3, Math.round(I(e.search?.maxResults, N.SEARCH_DEFAULT_LIMIT)))); + N.WORKFLOW_MINIMAP_ENABLED = !!(e.workflowMinimap?.enabled ?? j.WORKFLOW_MINIMAP_ENABLED), N.RT_HYDRATE_CONCURRENCY = Math.max(1, Math.min(16, Math.round(F(e.rtHydrate?.concurrency, j.RT_HYDRATE_CONCURRENCY)))), N.RT_HYDRATE_QUEUE_MAX = Math.max(10, Math.min(5e3, Math.round(F(e.rtHydrate?.queueMax, j.RT_HYDRATE_QUEUE_MAX)))), N.RT_HYDRATE_SEEN_MAX = Math.max(1e3, Math.min(2e5, Math.round(F(e.rtHydrate?.seenMax, j.RT_HYDRATE_SEEN_MAX)))), N.RT_HYDRATE_PRUNE_BUDGET = Math.max(10, Math.min(1e4, Math.round(F(e.rtHydrate?.pruneBudget, j.RT_HYDRATE_PRUNE_BUDGET)))), N.RT_HYDRATE_SEEN_TTL_MS = Math.max(5e3, Math.min(216e5, Math.round(F(e.rtHydrate?.seenTtlMs, j.RT_HYDRATE_SEEN_TTL_MS)))), N.DELETE_CONFIRMATION = !!e.safety?.confirmDeletion, N.DEBUG_VERBOSE_ERRORS = !!e.observability?.verboseErrors, N.WATCHER_MAX_PENDING = Math.max(10, Math.min(5e3, Math.round(F(e.watcher?.maxPending, 500)))), N.WATCHER_MIN_SIZE = Math.max(0, Math.min(1e6, Math.round(F(e.watcher?.minSize, 100)))), N.WATCHER_MAX_SIZE = Math.max(1e5, Math.min(17179869184, Math.round(F(e.watcher?.maxSize, 4294967296)))), N.DB_TIMEOUT_MS = Math.max(1e3, Math.min(3e4, Math.round(F(e.db?.timeoutMs, 5e3)))), N.DB_MAX_CONNECTIONS = Math.max(1, Math.min(100, Math.round(F(e.db?.maxConnections, 10)))), N.DB_QUERY_TIMEOUT_MS = Math.max(500, Math.min(1e4, Math.round(F(e.db?.queryTimeoutMs, 1e3)))), N.SIDEBAR_ASSET_BADGE_ENABLED = !!(e.sidebar?.assetBadgeEnabled ?? j.SIDEBAR_ASSET_BADGE_ENABLED), N.SEARCH_REQUEST_LIMIT = Math.max(10, Math.min(j.MAX_PAGE_SIZE || 2e3, Math.round(F(e.search?.maxResults, j.SEARCH_DEFAULT_LIMIT)))); }; -async function rt() { +async function it() { try { - let e = await D(); + let e = await re(); if (!e?.ok) return; let t = e.data?.prefs; if (!t || typeof t != "object") return; - let n = z(); - if (n.security = n.security || {}, n.security.safeMode = F(t.safe_mode, n.security.safeMode), n.security.allowWrite = F(t.allow_write, n.security.allowWrite), n.security.requireAuth = F(t.require_auth, n.security.requireAuth), n.security.allowRemoteWrite = F(t.allow_remote_write, n.security.allowRemoteWrite), n.security.allowInsecureTokenTransport = F(t.allow_insecure_token_transport, n.security.allowInsecureTokenTransport), n.security.allowDelete = F(t.allow_delete, n.security.allowDelete), n.security.allowRename = F(t.allow_rename, n.security.allowRename), n.security.allowOpenInFolder = F(t.allow_open_in_folder, n.security.allowOpenInFolder), n.security.allowResetIndex = F(t.allow_reset_index, n.security.allowResetIndex), n.security.tokenConfigured = F(t.token_configured, n.security.tokenConfigured), n.security.tokenHint = String(t.token_hint || "").trim(), !String(n.security.apiToken || "").trim()) try { - let e = await fe(), t = String(e?.data?.token || "").trim(); - e?.ok && t && w(t); + let n = R(); + if (n.security = n.security || {}, n.security.safeMode = P(t.safe_mode, n.security.safeMode), n.security.allowWrite = P(t.allow_write, n.security.allowWrite), n.security.requireAuth = P(t.require_auth, n.security.requireAuth), n.security.allowRemoteWrite = P(t.allow_remote_write, n.security.allowRemoteWrite), n.security.allowInsecureTokenTransport = P(t.allow_insecure_token_transport, n.security.allowInsecureTokenTransport), n.security.allowDelete = P(t.allow_delete, n.security.allowDelete), n.security.allowRename = P(t.allow_rename, n.security.allowRename), n.security.allowOpenInFolder = P(t.allow_open_in_folder, n.security.allowOpenInFolder), n.security.allowResetIndex = P(t.allow_reset_index, n.security.allowResetIndex), n.security.tokenConfigured = P(t.token_configured, n.security.tokenConfigured), n.security.tokenHint = String(t.token_hint || "").trim(), !String(n.security.apiToken || "").trim()) try { + let e = await pe(), t = String(e?.data?.token || "").trim(); + e?.ok && t && c(t); } catch (e) { console.debug?.(e); } - B(n), V(n), ke("mjr-settings-changed", { key: "security" }, { warnPrefix: "[Majoor]" }); + z(n), B(n), Ae("mjr-settings-changed", { key: "security" }, { warnPrefix: "[Majoor]" }); } catch (e) { console.warn("[Majoor] failed to sync backend security settings", e); } } -async function it() { +async function at() { try { - let t = await e(); - if (!t?.ok) return; - let n = t.data?.prefs; - if (!n || typeof n != "object") return; - let r = z(); - r.ai = r.ai || {}, r.ai.vectorSearchEnabled = F(n.enabled, r.ai.vectorSearchEnabled ?? !0), r.ai.vectorCaptionOnIndex = F(n.caption_on_index ?? n.captionOnIndex, r.ai.vectorCaptionOnIndex ?? !1), r.ai.vectorIndexOnScan = F(n.index_on_scan ?? n.indexOnScan, r.ai.vectorIndexOnScan ?? !1), r.ai.vectorUnloadAfterUse = F(n.unload_after_use ?? n.unloadAfterUse, r.ai.vectorUnloadAfterUse ?? !1), r.ai.vectorConcurrency = Math.max(1, Math.min(16, Math.floor(Number(n.concurrency ?? r.ai.vectorConcurrency ?? 1) || 1))), B(r), V(r), ke("mjr-settings-changed", { key: "ai.vectorSearch" }, { warnPrefix: "[Majoor]" }); + let e = await Ce(); + if (!e?.ok) return; + let t = e.data?.prefs; + if (!t || typeof t != "object") return; + let n = R(); + n.ai = n.ai || {}, n.ai.vectorSearchEnabled = P(t.enabled, n.ai.vectorSearchEnabled ?? !0), n.ai.vectorCaptionOnIndex = P(t.caption_on_index ?? t.captionOnIndex, n.ai.vectorCaptionOnIndex ?? !1), n.ai.vectorIndexOnScan = P(t.index_on_scan ?? t.indexOnScan, n.ai.vectorIndexOnScan ?? !1), n.ai.vectorUnloadAfterUse = P(t.unload_after_use ?? t.unloadAfterUse, n.ai.vectorUnloadAfterUse ?? !1), n.ai.vectorConcurrency = Math.max(1, Math.min(16, Math.floor(Number(t.concurrency ?? n.ai.vectorConcurrency ?? 1) || 1))), z(n), B(n), Ae("mjr-settings-changed", { key: "ai.vectorSearch" }, { warnPrefix: "[Majoor]" }); } catch (e) { console.warn("[Majoor] failed to sync backend vector search settings", e); } } -async function at() { +async function ot() { try { - let e = await n(); + let e = await E(); if (!e?.ok) return; let t = e.data?.prefs; if (!t || typeof t != "object") return; - let r = z(); - r.executionGrouping = r.executionGrouping || {}, r.executionGrouping.enabled = F(t.enabled, r.executionGrouping.enabled ?? N.EXECUTION_GROUPING_ENABLED), B(r), V(r), ke("mjr-settings-changed", { key: "executionGrouping.enabled" }, { warnPrefix: "[Majoor]" }); + let n = R(); + n.executionGrouping = n.executionGrouping || {}, n.executionGrouping.enabled = P(t.enabled, n.executionGrouping.enabled ?? j.EXECUTION_GROUPING_ENABLED), z(n), B(n), Ae("mjr-settings-changed", { key: "executionGrouping.enabled" }, { warnPrefix: "[Majoor]" }); } catch (e) { console.warn("[Majoor] failed to sync backend execution grouping settings", e); } } // ui/app/settings/settingsRuntime.ts -var ot = "mjr-runtime-status-dashboard", st = 3e4; -function ct() { +var st = "mjr-runtime-status-dashboard", ct = 3e4; +function lt() { try { - let e = z(), t = String(e?.observability?.runtimeDashboardMode || R.observability.runtimeDashboardMode); + let e = R(), t = String(e?.observability?.runtimeDashboardMode || L.observability.runtimeDashboardMode); return [ "autoHide30", "always", @@ -804,28 +804,28 @@ function ct() { return "autoHide30"; } } -function lt() { +function ut() { try { - document.getElementById(ot)?.remove?.(); + document.getElementById(st)?.remove?.(); } catch (e) { console.debug?.(e); } } -function ut() { +function dt() { try { window.__MJR_RUNTIME_STATUS_HIDE_TIMEOUT__ && (clearTimeout(window.__MJR_RUNTIME_STATUS_HIDE_TIMEOUT__), window.__MJR_RUNTIME_STATUS_HIDE_TIMEOUT__ = null); } catch (e) { console.debug?.(e); } } -function dt(e, t) { +function ft(e, t) { let n = t === "auth" ? "__mjrAuthLine" : "__mjrMetricsLine"; if (e?.[n]) return e[n]; let r = document.createElement("div"); return r.style.whiteSpace = "nowrap", r.style.lineHeight = "1.35", t === "auth" && (r.style.marginTop = "4px", r.style.fontWeight = "600"), e.appendChild(r), e[n] = r, r; } -function ft(e) { - let t = String(e?.token_hint || "").trim(), n = f(), r = t || (n ? "(session)" : ""), i = e?.allow_write !== !1, a = e?.require_auth === !0, o = e?.token_configured === !0; +function pt(e) { + let t = String(e?.token_hint || "").trim(), n = D(), r = t || (n ? "(session)" : ""), i = e?.allow_write !== !1, a = e?.require_auth === !0, o = e?.token_configured === !0; return i ? n ? { text: M("runtime.writeAuthActive", "Write auth: active {tokenHint}", { tokenHint: r || "(session)" }), color: "#7ee0a0" @@ -846,10 +846,10 @@ function ft(e) { color: "#ff9b9b" }; } -function pt() { +function mt() { try { - if (ct() === "hidden" || window.__MJR_RUNTIME_STATUS_HIDDEN__) return lt(), null; - let e = document.querySelector(".mjr-assets-manager.mjr-am-container"), t = document.getElementById(ot); + if (lt() === "hidden" || window.__MJR_RUNTIME_STATUS_HIDDEN__) return ut(), null; + let e = document.querySelector(".mjr-assets-manager.mjr-am-container"), t = document.getElementById(st); if (!e) { try { t?.remove?.(); @@ -864,18 +864,18 @@ function pt() { } catch (e) { console.debug?.(e); } - let n = document.getElementById(ot); - return n ? n.parentElement !== e && e.appendChild(n) : (n = document.createElement("div"), n.id = ot, n.style.position = "absolute", n.style.bottom = "10px", n.style.right = "10px", n.style.zIndex = "9999", n.style.padding = "6px 10px", n.style.borderRadius = "10px", n.style.border = "1px solid rgba(255,255,255,0.16)", n.style.background = "rgba(0,0,0,0.45)", n.style.backdropFilter = "blur(4px)", n.style.color = "var(--content-fg, #fff)", n.style.fontSize = "11px", n.style.pointerEvents = "none", n.style.display = "flex", n.style.flexDirection = "column", e.appendChild(n)), n; + let n = document.getElementById(st); + return n ? n.parentElement !== e && e.appendChild(n) : (n = document.createElement("div"), n.id = st, n.style.position = "absolute", n.style.bottom = "10px", n.style.right = "10px", n.style.zIndex = "9999", n.style.padding = "6px 10px", n.style.borderRadius = "10px", n.style.border = "1px solid rgba(255,255,255,0.16)", n.style.background = "rgba(0,0,0,0.45)", n.style.backdropFilter = "blur(4px)", n.style.color = "var(--content-fg, #fff)", n.style.fontSize = "11px", n.style.pointerEvents = "none", n.style.display = "flex", n.style.flexDirection = "column", e.appendChild(n)), n; } catch { return null; } } -async function mt() { - let e = pt(); +async function ht() { + let e = mt(); if (!e) return !1; - let t = dt(e, "metrics"), n = dt(e, "auth"); + let t = ft(e, "metrics"), n = ft(e, "auth"); try { - let [r, i] = await Promise.all([O(), D()]), a = M("runtime.unavailable", "Runtime: unavailable"); + let [r, i] = await Promise.all([O(), re()]), a = M("runtime.unavailable", "Runtime: unavailable"); if (!r?.ok || !r?.data) t.textContent = a; else { let e = r.data.db || {}, n = r.data.index || {}, i = r.data.watcher || {}, o = Number(e.active_connections || 0), s = Number(n.enrichment_queue_length || 0), c = Number(i.pending_files || 0); @@ -889,27 +889,27 @@ async function mt() { pending: c }); } - let o = ft(i?.data?.prefs || null); + let o = pt(i?.data?.prefs || null); return n.textContent = o.text, n.style.color = o.color, e.title = `${a}\n${o.text}`, !0; } catch { return t.textContent = M("runtime.unavailable", "Runtime: unavailable"), n.textContent = M("runtime.writeAuthUnknown", "Write auth: unknown"), n.style.color = "#c8ced8", e.title = `${M("runtime.unavailable", "Runtime: unavailable")}\n${n.textContent}`, !0; } } -function ht() { +function gt() { try { - let e = ct(); + let e = lt(); if (e === "hidden") { - window.__MJR_RUNTIME_STATUS_HIDDEN__ = !0, ut(), lt(); + window.__MJR_RUNTIME_STATUS_HIDDEN__ = !0, dt(), ut(); return; } window.__MJR_RUNTIME_STATUS_SETTINGS_LISTENER__ || (window.__MJR_RUNTIME_STATUS_SETTINGS_LISTENER__ = (e) => { if (e?.detail?.key !== "observability.runtimeDashboardMode") return; - let t = ct(); - window.__MJR_RUNTIME_STATUS_HIDDEN__ = t === "hidden", ut(), lt(), t !== "hidden" && ht(); - }, window.addEventListener?.("mjr-settings-changed", window.__MJR_RUNTIME_STATUS_SETTINGS_LISTENER__)), window.__MJR_RUNTIME_STATUS_HIDDEN__ = !1, ut(), e === "autoHide30" && (window.__MJR_RUNTIME_STATUS_HIDE_TIMEOUT__ = setTimeout(() => { - window.__MJR_RUNTIME_STATUS_HIDDEN__ = !0, lt(); - }, st)), mt().catch(() => {}), window.__MJR_RUNTIME_STATUS_INFLIGHT__ ?? (window.__MJR_RUNTIME_STATUS_INFLIGHT__ = !1), window.__MJR_RUNTIME_STATUS_MISS_COUNT__ ?? (window.__MJR_RUNTIME_STATUS_MISS_COUNT__ = 0), window.__MJR_RUNTIME_STATUS_INTERVAL__ || (window.__MJR_RUNTIME_STATUS_INTERVAL__ = setInterval(() => { - window.__MJR_RUNTIME_STATUS_INFLIGHT__ || (window.__MJR_RUNTIME_STATUS_INFLIGHT__ = !0, mt().then((e) => { + let t = lt(); + window.__MJR_RUNTIME_STATUS_HIDDEN__ = t === "hidden", dt(), ut(), t !== "hidden" && gt(); + }, window.addEventListener?.("mjr-settings-changed", window.__MJR_RUNTIME_STATUS_SETTINGS_LISTENER__)), window.__MJR_RUNTIME_STATUS_HIDDEN__ = !1, dt(), e === "autoHide30" && (window.__MJR_RUNTIME_STATUS_HIDE_TIMEOUT__ = setTimeout(() => { + window.__MJR_RUNTIME_STATUS_HIDDEN__ = !0, ut(); + }, ct)), ht().catch(() => {}), window.__MJR_RUNTIME_STATUS_INFLIGHT__ ?? (window.__MJR_RUNTIME_STATUS_INFLIGHT__ = !1), window.__MJR_RUNTIME_STATUS_MISS_COUNT__ ?? (window.__MJR_RUNTIME_STATUS_MISS_COUNT__ = 0), window.__MJR_RUNTIME_STATUS_INTERVAL__ || (window.__MJR_RUNTIME_STATUS_INTERVAL__ = setInterval(() => { + window.__MJR_RUNTIME_STATUS_INFLIGHT__ || (window.__MJR_RUNTIME_STATUS_INFLIGHT__ = !0, ht().then((e) => { e ? window.__MJR_RUNTIME_STATUS_MISS_COUNT__ = 0 : window.__MJR_RUNTIME_STATUS_MISS_COUNT__ = Number(window.__MJR_RUNTIME_STATUS_MISS_COUNT__ || 0) + 1; }).catch(() => {}).finally(() => { window.__MJR_RUNTIME_STATUS_INFLIGHT__ = !1; @@ -920,8 +920,8 @@ function ht() { } } // ui/utils/debounce.ts -var gt = 300; -function _t(e, t = gt) { +var _t = 300; +function vt(e, t = _t) { let n, r = (...r) => { clearTimeout(n), n = setTimeout(() => e(...r), t); }; @@ -932,77 +932,77 @@ function _t(e, t = gt) { }, r; } // ui/features/runtime/nativeAssetsTab.ts -var vt = /* @__PURE__ */ new Set([ +var yt = /* @__PURE__ */ new Set([ "assets", "media-assets", "assets-sidebar" -]), yt = [ +]), bt = [ 500, 2e3, 6e3 -], bt = !1, xt = /* @__PURE__ */ new Map(), St = []; -function Ct(e) { +], xt = !1, St = /* @__PURE__ */ new Map(), Ct = []; +function wt(e) { let t = String(e?.id || "").trim().toLowerCase(); - return !t || t.startsWith("majoor") || t.startsWith("mjr") ? !1 : vt.has(t); -} -function wt() { - for (let e of St.splice(0)) clearTimeout(e); + return !t || t.startsWith("majoor") || t.startsWith("mjr") ? !1 : yt.has(t); } function Tt() { - let e = 0; - for (let t of y()) { - if (!Ct(t)) continue; - let n = String(t.id); - r(n) && (xt.set(n, t), e += 1); - } - return e; + for (let e of Ct.splice(0)) clearTimeout(e); } function Et() { - for (let [e, t] of [...xt.entries()]) (y().some((t) => String(t?.id || "") === e) || l(t)) && xt.delete(e); + let t = 0; + for (let n of e()) { + if (!wt(n)) continue; + let e = String(n.id); + u(e) && (St.set(e, n), t += 1); + } + return t; } -function Dt(e) { - if (bt = !!e, wt(), !bt) Et(); +function Dt() { + for (let [t, n] of [...St.entries()]) (e().some((e) => String(e?.id || "") === t) || _(n)) && St.delete(t); +} +function Ot(e) { + if (xt = !!e, Tt(), !xt) Dt(); else { - Tt(); - for (let e of yt) St.push(setTimeout(() => { - bt && Tt(); + Et(); + for (let e of bt) Ct.push(setTimeout(() => { + xt && Et(); }, e)); } } -function Ot() { - bt = !1, wt(), Et(); +function kt() { + xt = !1, Tt(), Dt(); } // ui/app/settings/settingsGrid.ts -var H = "Majoor", kt = "Majoor Assets Manager"; -function At(e, t, n) { +var V = "Majoor", At = "Majoor Assets Manager"; +function jt(e, t, n) { let r = (e, t) => [ - kt, + At, e, t ], i = (e) => [ - kt, + At, M("cat.cards", "Cards"), e ], a = (e) => [ - kt, + At, M("cat.badges", "Badges"), e ], o = (e) => [ - kt, + At, M("cat.badges", "Badges"), e ], s = (e, t) => { let n = String(e || "").trim(); return /^[0-9a-fA-F]{6}$/.test(n) && (n = `#${n}`), /^#[0-9a-fA-F]{6}$/.test(n) ? n.toUpperCase() : t; }; - t.grid?.minSizePreset || (t.grid = t.grid || {}, t.grid.minSizePreset = Re(t.grid.minSize), B(t)), e({ - id: `${H}.Cards.ThumbSize`, + t.grid?.minSizePreset || (t.grid = t.grid || {}, t.grid.minSizePreset = ze(t.grid.minSize), z(t)), e({ + id: `${V}.Cards.ThumbSize`, category: i(M("setting.grid.cardSize.group", "Card size")), name: M("setting.grid.cardSize.name", "Majoor: Card Size"), tooltip: M("setting.grid.cardSize.desc", "Choose the card size preset used by the grid layout."), type: "combo", defaultValue: (() => { - let e = Ae(String(t.grid?.minSizePreset || "").toLowerCase(), Pe, Re(t.grid?.minSize)), n = { + let e = je(String(t.grid?.minSizePreset || "").toLowerCase(), Fe, ze(t.grid?.minSize)), n = { small: M("setting.grid.cardSize.small", "Small"), medium: M("setting.grid.cardSize.medium", "Medium"), large: M("setting.grid.cardSize.large", "Large") @@ -1016,10 +1016,10 @@ function At(e, t, n) { ], onChange: (e) => { let r = String(e || "").trim().toLowerCase(), i = M("setting.grid.cardSize.small", "Small").toLowerCase(), a = M("setting.grid.cardSize.medium", "Medium").toLowerCase(), o = M("setting.grid.cardSize.large", "Large").toLowerCase(), s = "medium"; - r === i || r === "small" || r === "petit" ? s = "small" : r === o || r === "large" || r === "grand" ? s = "large" : (r === a || r === "medium" || r === "moyen") && (s = "medium"), t.grid.minSizePreset = s, t.grid.minSize = Ne[s], B(t), V(t), n("grid.minSizePreset"); + r === i || r === "small" || r === "petit" ? s = "small" : r === o || r === "large" || r === "grand" ? s = "large" : (r === a || r === "medium" || r === "moyen") && (s = "medium"), t.grid.minSizePreset = s, t.grid.minSize = Pe[s], z(t), B(t), n("grid.minSizePreset"); } }), e({ - id: `${H}.Cards.CustomThumbSize`, + id: `${V}.Cards.CustomThumbSize`, category: i(M("setting.grid.cardSize.group", "Card size")), name: "Majoor: Custom Card Size (px)", tooltip: "Set the minimum card width used by the main grid layout (60-600 px).", @@ -1032,170 +1032,170 @@ function At(e, t, n) { }, onChange: (e) => { let r = Math.max(60, Math.min(600, Math.round(Number(e) || 120))); - t.grid.minSize = r, t.grid.minSizePreset = Re(r), B(t), V(t), n("grid.minSize"); + t.grid.minSize = r, t.grid.minSizePreset = ze(r), z(t), B(t), n("grid.minSize"); } }), e({ - id: `${H}.Grid.ShowDetails`, + id: `${V}.Grid.ShowDetails`, category: i("Show card details"), name: "Show metadata panel", tooltip: "Show the bottom details panel on asset cards (filename, date, etc.)", type: "boolean", defaultValue: !!t.grid?.showDetails, onChange: (e) => { - t.grid.showDetails = !!e, B(t), V(t), n("grid.showDetails"); + t.grid.showDetails = !!e, z(t), B(t), n("grid.showDetails"); } }), e({ - id: `${H}.Grid.ShowFilename`, + id: `${V}.Grid.ShowFilename`, category: i("Show filename"), name: "Show filename", tooltip: "Display filename in details panel", type: "boolean", defaultValue: !!t.grid?.showFilename, onChange: (e) => { - t.grid.showFilename = !!e, B(t), V(t), n("grid.showFilename"); + t.grid.showFilename = !!e, z(t), B(t), n("grid.showFilename"); } }), e({ - id: `${H}.Grid.ShowDate`, + id: `${V}.Grid.ShowDate`, category: i("Show date/time"), name: "Show date/time", tooltip: "Display date and time in details panel", type: "boolean", defaultValue: !!t.grid?.showDate, onChange: (e) => { - t.grid.showDate = !!e, B(t), V(t), n("grid.showDate"); + t.grid.showDate = !!e, z(t), B(t), n("grid.showDate"); } }), e({ - id: `${H}.Grid.ShowDimensions`, + id: `${V}.Grid.ShowDimensions`, category: i("Show dimensions"), name: "Show dimensions", tooltip: "Display resolution (WxH) in details panel", type: "boolean", defaultValue: !!t.grid?.showDimensions, onChange: (e) => { - t.grid.showDimensions = !!e, B(t), V(t), n("grid.showDimensions"); + t.grid.showDimensions = !!e, z(t), B(t), n("grid.showDimensions"); } }), e({ - id: `${H}.Grid.ShowGenTime`, + id: `${V}.Grid.ShowGenTime`, category: i("Show generation time"), name: "Show generation time", tooltip: "Display seconds taken to generate the asset (if available)", type: "boolean", - defaultValue: !!(t.grid?.showGenTime ?? N.GRID_SHOW_DETAILS_GENTIME), + defaultValue: !!(t.grid?.showGenTime ?? j.GRID_SHOW_DETAILS_GENTIME), onChange: (e) => { - t.grid.showGenTime = !!e, B(t), V(t), n("grid.showGenTime"); + t.grid.showGenTime = !!e, z(t), B(t), n("grid.showGenTime"); } }), e({ - id: `${H}.Grid.ShowHoverInfo`, + id: `${V}.Grid.ShowHoverInfo`, category: i("Show prompt on hover"), name: "Show prompt on hover", tooltip: "Show positive prompt and generation time as a tooltip overlay when hovering over a card thumbnail. Does not block video play-on-hover.", type: "boolean", - defaultValue: !!(t.grid?.showHoverInfo ?? N.GRID_SHOW_HOVER_INFO), + defaultValue: !!(t.grid?.showHoverInfo ?? j.GRID_SHOW_HOVER_INFO), onChange: (e) => { - t.grid.showHoverInfo = !!e, B(t), V(t), n("grid.showHoverInfo"); + t.grid.showHoverInfo = !!e, z(t), B(t), n("grid.showHoverInfo"); } }), e({ - id: `${H}.Grid.ShowWorkflowDot`, + id: `${V}.Grid.ShowWorkflowDot`, category: i("Show workflow dot"), name: "Show workflow indicator", tooltip: "Display the green dot indicating workflow metadata availability (bottom right of card)", type: "boolean", defaultValue: !!t.grid?.showWorkflowDot, onChange: (e) => { - t.grid.showWorkflowDot = !!e, B(t), V(t), n("grid.showWorkflowDot"); + t.grid.showWorkflowDot = !!e, z(t), B(t), n("grid.showWorkflowDot"); } }), e({ - id: `${H}.Grid.ShowExtBadge`, + id: `${V}.Grid.ShowExtBadge`, category: a("Show format badges"), name: "Show format badges", tooltip: "Display format badges (e.g. JPG, MP4) on thumbnails", type: "boolean", defaultValue: !!t.grid?.showExtBadge, onChange: (e) => { - t.grid.showExtBadge = !!e, B(t), V(t), n("grid.showExtBadge"); + t.grid.showExtBadge = !!e, z(t), B(t), n("grid.showExtBadge"); } }), e({ - id: `${H}.Grid.ShowRatingBadge`, + id: `${V}.Grid.ShowRatingBadge`, category: a("Show rating badges"), name: "Show ratings", tooltip: "Display star ratings on thumbnails", type: "boolean", defaultValue: !!t.grid?.showRatingBadge, onChange: (e) => { - t.grid.showRatingBadge = !!e, B(t), V(t), n("grid.showRatingBadge"); + t.grid.showRatingBadge = !!e, z(t), B(t), n("grid.showRatingBadge"); } }), e({ - id: `${H}.Grid.ShowTagsBadge`, + id: `${V}.Grid.ShowTagsBadge`, category: a("Show tags badges"), name: "Show tags", tooltip: "Display a small indicator if an asset has tags", type: "boolean", defaultValue: !!t.grid?.showTagsBadge, onChange: (e) => { - t.grid.showTagsBadge = !!e, B(t), V(t), n("grid.showTagsBadge"); + t.grid.showTagsBadge = !!e, z(t), B(t), n("grid.showTagsBadge"); } }), e({ - id: `${H}.Badges.StarColor`, + id: `${V}.Badges.StarColor`, category: o(M("setting.starColor", "Star color")), name: M("setting.starColor", "Majoor: Star color"), tooltip: M("setting.starColor.tooltip", "Color of rating stars on thumbnails (hex, e.g. #FFD45A)"), type: "color", - defaultValue: s(t.grid?.starColor, N.BADGE_STAR_COLOR), + defaultValue: s(t.grid?.starColor, j.BADGE_STAR_COLOR), onChange: (e) => { - t.grid.starColor = s(e, N.BADGE_STAR_COLOR), B(t), V(t), n("grid.starColor"); + t.grid.starColor = s(e, j.BADGE_STAR_COLOR), z(t), B(t), n("grid.starColor"); } }), e({ - id: `${H}.Badges.ImageColor`, + id: `${V}.Badges.ImageColor`, category: o(M("setting.badgeImageColor", "Image badge color")), name: M("setting.badgeImageColor", "Majoor: Image badge color"), tooltip: M("setting.badgeImageColor.tooltip", "Color for image badges: PNG, JPG, WEBP, GIF, BMP, TIF (hex)"), type: "color", - defaultValue: s(t.grid?.badgeImageColor, N.BADGE_IMAGE_COLOR), + defaultValue: s(t.grid?.badgeImageColor, j.BADGE_IMAGE_COLOR), onChange: (e) => { - t.grid.badgeImageColor = s(e, N.BADGE_IMAGE_COLOR), B(t), V(t), n("grid.badgeImageColor"); + t.grid.badgeImageColor = s(e, j.BADGE_IMAGE_COLOR), z(t), B(t), n("grid.badgeImageColor"); } }), e({ - id: `${H}.Badges.VideoColor`, + id: `${V}.Badges.VideoColor`, category: o(M("setting.badgeVideoColor", "Video badge color")), name: M("setting.badgeVideoColor", "Majoor: Video badge color"), tooltip: M("setting.badgeVideoColor.tooltip", "Color for video badges: MP4, WEBM, MOV, AVI, MKV (hex)"), type: "color", - defaultValue: s(t.grid?.badgeVideoColor, N.BADGE_VIDEO_COLOR), + defaultValue: s(t.grid?.badgeVideoColor, j.BADGE_VIDEO_COLOR), onChange: (e) => { - t.grid.badgeVideoColor = s(e, N.BADGE_VIDEO_COLOR), B(t), V(t), n("grid.badgeVideoColor"); + t.grid.badgeVideoColor = s(e, j.BADGE_VIDEO_COLOR), z(t), B(t), n("grid.badgeVideoColor"); } }), e({ - id: `${H}.Badges.AudioColor`, + id: `${V}.Badges.AudioColor`, category: o(M("setting.badgeAudioColor", "Audio badge color")), name: M("setting.badgeAudioColor", "Majoor: Audio badge color"), tooltip: M("setting.badgeAudioColor.tooltip", "Color for audio badges: MP3, WAV, OGG, FLAC (hex)"), type: "color", - defaultValue: s(t.grid?.badgeAudioColor, N.BADGE_AUDIO_COLOR), + defaultValue: s(t.grid?.badgeAudioColor, j.BADGE_AUDIO_COLOR), onChange: (e) => { - t.grid.badgeAudioColor = s(e, N.BADGE_AUDIO_COLOR), B(t), V(t), n("grid.badgeAudioColor"); + t.grid.badgeAudioColor = s(e, j.BADGE_AUDIO_COLOR), z(t), B(t), n("grid.badgeAudioColor"); } }), e({ - id: `${H}.Badges.Model3dColor`, + id: `${V}.Badges.Model3dColor`, category: o(M("setting.badgeModel3dColor", "3D model badge color")), name: M("setting.badgeModel3dColor", "Majoor: 3D model badge color"), tooltip: M("setting.badgeModel3dColor.tooltip", "Color for 3D model badges: OBJ, FBX, GLB, GLTF (hex)"), type: "color", - defaultValue: s(t.grid?.badgeModel3dColor, N.BADGE_MODEL3D_COLOR), + defaultValue: s(t.grid?.badgeModel3dColor, j.BADGE_MODEL3D_COLOR), onChange: (e) => { - t.grid.badgeModel3dColor = s(e, N.BADGE_MODEL3D_COLOR), B(t), V(t), n("grid.badgeModel3dColor"); + t.grid.badgeModel3dColor = s(e, j.BADGE_MODEL3D_COLOR), z(t), B(t), n("grid.badgeModel3dColor"); } }), e({ - id: `${H}.Badges.DuplicateAlertColor`, + id: `${V}.Badges.DuplicateAlertColor`, category: o(M("setting.badgeDuplicateAlertColor", "Duplicate alert badge color")), name: M("setting.badgeDuplicateAlertColor", "Majoor: Duplicate alert badge color"), tooltip: M("setting.badgeDuplicateAlertColor.tooltip", "Color for duplicate extension badges (PNG+, JPG+, etc)."), type: "color", - defaultValue: s(t.grid?.badgeDuplicateAlertColor, N.BADGE_DUPLICATE_ALERT_COLOR), + defaultValue: s(t.grid?.badgeDuplicateAlertColor, j.BADGE_DUPLICATE_ALERT_COLOR), onChange: (e) => { - t.grid.badgeDuplicateAlertColor = s(e, N.BADGE_DUPLICATE_ALERT_COLOR), B(t), V(t), n("grid.badgeDuplicateAlertColor"); + t.grid.badgeDuplicateAlertColor = s(e, j.BADGE_DUPLICATE_ALERT_COLOR), z(t), B(t), n("grid.badgeDuplicateAlertColor"); } }), e({ - id: `${H}.Grid.PageSize`, + id: `${V}.Grid.PageSize`, category: r(M("cat.grid"), M("setting.grid.pagesize.name").replace("Majoor: ", "")), name: M("setting.grid.pagesize.name"), tooltip: M("setting.grid.pagesize.desc"), @@ -1203,21 +1203,21 @@ function At(e, t, n) { defaultValue: t.grid.pageSize, attrs: { min: 50, - max: Number(P.MAX_PAGE_SIZE) || 2e3, + max: Number(N.MAX_PAGE_SIZE) || 2e3, step: 50 }, onChange: (e) => { - let r = Number(P.MAX_PAGE_SIZE) || 2e3; - t.grid.pageSize = Math.max(50, Math.min(r, Number(e) || N.DEFAULT_PAGE_SIZE)), B(t), V(t), n("grid.pageSize"); + let r = Number(N.MAX_PAGE_SIZE) || 2e3; + t.grid.pageSize = Math.max(50, Math.min(r, Number(e) || j.DEFAULT_PAGE_SIZE)), z(t), B(t), n("grid.pageSize"); } }), e({ - id: `${H}.Grid.WorkflowGroupBy`, + id: `${V}.Grid.WorkflowGroupBy`, category: r(M("cat.grid"), "Workflow grouping"), name: "Workflow grid grouping", tooltip: "In Workflow scope, insert titled separators and group cards by Task, Model, or Category.", type: "combo", defaultValue: (() => { - let e = String(t.grid?.workflowGroupBy || N.WORKFLOW_GRID_GROUP_BY).trim().toLowerCase(), n = { + let e = String(t.grid?.workflowGroupBy || j.WORKFLOW_GRID_GROUP_BY).trim().toLowerCase(), n = { none: "None", task: "Task", model: "Model", @@ -1238,20 +1238,20 @@ function At(e, t, n) { Model: "model", Category: "category" }[String(e || "")] || "none"; - t.grid = t.grid || {}, t.grid.workflowGroupBy = r, B(t), V(t), n("grid.workflowGroupBy"); + t.grid = t.grid || {}, t.grid.workflowGroupBy = r, z(t), B(t), n("grid.workflowGroupBy"); } }), e({ - id: `${H}.InfiniteScroll.Enabled`, + id: `${V}.InfiniteScroll.Enabled`, category: r(M("cat.grid"), M("setting.nav.infinite.name").replace("Majoor: ", "")), name: M("setting.nav.infinite.name"), tooltip: M("setting.nav.infinite.desc"), type: "boolean", defaultValue: !!t.infiniteScroll?.enabled, onChange: (e) => { - t.infiniteScroll = t.infiniteScroll || {}, t.infiniteScroll.enabled = !!e, B(t), V(t), n("infiniteScroll.enabled"); + t.infiniteScroll = t.infiniteScroll || {}, t.infiniteScroll.enabled = !!e, z(t), B(t), n("infiniteScroll.enabled"); } }), e({ - id: `${H}.Sidebar.Position`, + id: `${V}.Sidebar.Position`, category: r(M("cat.grid"), M("setting.sidebar.pos.name").replace("Majoor: ", "")), name: M("setting.sidebar.pos.name"), tooltip: M("setting.sidebar.pos.desc"), @@ -1259,40 +1259,40 @@ function At(e, t, n) { defaultValue: t.sidebar?.position || "right", options: ["left", "right"], onChange: (e) => { - t.sidebar = t.sidebar || {}, t.sidebar.position = e === "left" ? "left" : "right", B(t), n("sidebar.position"); + t.sidebar = t.sidebar || {}, t.sidebar.position = e === "left" ? "left" : "right", z(t), n("sidebar.position"); } }), e({ - id: `${H}.Sidebar.ShowPreviewThumb`, + id: `${V}.Sidebar.ShowPreviewThumb`, category: r(M("cat.grid"), "Sidebar preview"), name: "Show sidebar preview thumb", tooltip: "Show/hide the large media preview at the top of the sidebar metadata panel.", type: "boolean", defaultValue: !!(t.sidebar?.showPreviewThumb ?? !0), onChange: (e) => { - t.sidebar = t.sidebar || {}, t.sidebar.showPreviewThumb = !!e, B(t), n("sidebar.showPreviewThumb"); + t.sidebar = t.sidebar || {}, t.sidebar.showPreviewThumb = !!e, z(t), n("sidebar.showPreviewThumb"); } }), e({ - id: `${H}.Sidebar.AssetBadgeEnabled`, + id: `${V}.Sidebar.AssetBadgeEnabled`, category: r(M("cat.grid"), "Sidebar asset notification badge"), name: "Show new asset badge on sidebar icon", tooltip: "Display a small counter on the Majoor sidebar icon only when a new asset is indexed by Assets Manager.", type: "boolean", - defaultValue: !!(t.sidebar?.assetBadgeEnabled ?? N.SIDEBAR_ASSET_BADGE_ENABLED), + defaultValue: !!(t.sidebar?.assetBadgeEnabled ?? j.SIDEBAR_ASSET_BADGE_ENABLED), onChange: (e) => { - t.sidebar = t.sidebar || {}, t.sidebar.assetBadgeEnabled = !!e, B(t), V(t), n("sidebar.assetBadgeEnabled"); + t.sidebar = t.sidebar || {}, t.sidebar.assetBadgeEnabled = !!e, z(t), B(t), n("sidebar.assetBadgeEnabled"); } }), e({ - id: `${H}.Integration.HideNativeAssetsTab`, + id: `${V}.Integration.HideNativeAssetsTab`, category: r(M("cat.grid"), "Hide ComfyUI native Assets tab"), name: "Hide ComfyUI's native Assets sidebar tab", tooltip: "Optional. Removes ComfyUI's built-in Assets tab from the sidebar so only Majoor Assets Manager is shown. Turning it off restores the native tab. Your files and the native tab's data are not affected.", type: "boolean", defaultValue: !!t.integration?.hideNativeAssetsTab, onChange: (e) => { - t.integration = t.integration || {}, t.integration.hideNativeAssetsTab = !!e, B(t), Dt(!!e), n("integration.hideNativeAssetsTab"); + t.integration = t.integration || {}, t.integration.hideNativeAssetsTab = !!e, z(t), Ot(!!e), n("integration.hideNativeAssetsTab"); } }), e({ - id: `${H}.Sidebar.WidthPx`, + id: `${V}.Sidebar.WidthPx`, category: r(M("cat.grid"), "Sidebar width"), name: "Sidebar width (px)", tooltip: "Set the details sidebar width in pixels (240-640).", @@ -1304,20 +1304,20 @@ function At(e, t, n) { step: 10 }, onChange: (e) => { - t.sidebar = t.sidebar || {}, t.sidebar.widthPx = Math.max(240, Math.min(640, Math.round(Number(e) || 360))), B(t), n("sidebar.widthPx"); + t.sidebar = t.sidebar || {}, t.sidebar.widthPx = Math.max(240, Math.min(640, Math.round(Number(e) || 360))), z(t), n("sidebar.widthPx"); } }), e({ - id: `${H}.General.HideSiblings`, + id: `${V}.General.HideSiblings`, category: r(M("cat.grid"), M("setting.siblings.hide.name").replace("Majoor: ", "")), name: M("setting.siblings.hide.name"), tooltip: M("setting.siblings.hide.desc"), type: "boolean", defaultValue: !!t.siblings?.hidePngSiblings, onChange: (e) => { - t.siblings = t.siblings || {}, t.siblings.hidePngSiblings = !!e, B(t), n("siblings.hidePngSiblings"); + t.siblings = t.siblings || {}, t.siblings.hidePngSiblings = !!e, z(t), n("siblings.hidePngSiblings"); } }), e({ - id: `${H}.Grid.VideoAutoplayMode`, + id: `${V}.Grid.VideoAutoplayMode`, category: r(M("cat.grid"), M("setting.grid.videoAutoplayMode.name", "Video autoplay").replace("Majoor: ", "")), name: M("setting.grid.videoAutoplayMode.name", "Majoor: Video autoplay"), tooltip: M("setting.grid.videoAutoplayMode.desc", "Controls video thumbnail playback in the grid. Off: static frame. Hover: play on mouse hover. Always: loop while visible."), @@ -1343,52 +1343,52 @@ function At(e, t, n) { [M("setting.grid.videoAutoplayMode.hover", "Hover")]: "hover", [M("setting.grid.videoAutoplayMode.always", "Always")]: "always" }[e] || "off"; - t.grid = t.grid || {}, t.grid.videoAutoplayMode = r, delete t.grid.videoHoverAutoplay, B(t), V(t), n("grid.videoAutoplayMode"); + t.grid = t.grid || {}, t.grid.videoAutoplayMode = r, delete t.grid.videoHoverAutoplay, z(t), B(t), n("grid.videoAutoplayMode"); } }), e({ - id: `${H}.Cards.HoverColor`, + id: `${V}.Cards.HoverColor`, category: i("Hover color"), name: "Majoor: Card hover color", tooltip: "Background tint used when hovering a card (hex, e.g. #3D3D3D).", type: "color", - defaultValue: s(t.ui?.cardHoverColor, N.UI_CARD_HOVER_COLOR), + defaultValue: s(t.ui?.cardHoverColor, j.UI_CARD_HOVER_COLOR), onChange: (e) => { - t.ui = t.ui || {}, t.ui.cardHoverColor = s(e, N.UI_CARD_HOVER_COLOR), B(t), V(t), n("ui.cardHoverColor"); + t.ui = t.ui || {}, t.ui.cardHoverColor = s(e, j.UI_CARD_HOVER_COLOR), z(t), B(t), n("ui.cardHoverColor"); } }), e({ - id: `${H}.Cards.SelectionColor`, + id: `${V}.Cards.SelectionColor`, category: i("Selection color"), name: "Majoor: Card selection color", tooltip: "Outline/accent color used for selected cards (hex, e.g. #4A90E2).", type: "color", - defaultValue: s(t.ui?.cardSelectionColor, N.UI_CARD_SELECTION_COLOR), + defaultValue: s(t.ui?.cardSelectionColor, j.UI_CARD_SELECTION_COLOR), onChange: (e) => { - t.ui = t.ui || {}, t.ui.cardSelectionColor = s(e, N.UI_CARD_SELECTION_COLOR), B(t), V(t), n("ui.cardSelectionColor"); + t.ui = t.ui || {}, t.ui.cardSelectionColor = s(e, j.UI_CARD_SELECTION_COLOR), z(t), B(t), n("ui.cardSelectionColor"); } }), e({ - id: `${H}.Badges.RatingColor`, + id: `${V}.Badges.RatingColor`, category: a("Rating color"), name: "Majoor: Rating badge color", tooltip: "Color used for rating badge text/accent (hex, e.g. #FF9500).", type: "color", - defaultValue: s(t.ui?.ratingColor, N.UI_RATING_COLOR), + defaultValue: s(t.ui?.ratingColor, j.UI_RATING_COLOR), onChange: (e) => { - t.ui = t.ui || {}, t.ui.ratingColor = s(e, N.UI_RATING_COLOR), B(t), V(t), n("ui.ratingColor"); + t.ui = t.ui || {}, t.ui.ratingColor = s(e, j.UI_RATING_COLOR), z(t), B(t), n("ui.ratingColor"); } }), e({ - id: `${H}.Badges.TagColor`, + id: `${V}.Badges.TagColor`, category: a("Tag color"), name: "Majoor: Tags badge color", tooltip: "Color used for tags badge text/accent (hex, e.g. #4A90E2).", type: "color", - defaultValue: s(t.ui?.tagColor, N.UI_TAG_COLOR), + defaultValue: s(t.ui?.tagColor, j.UI_TAG_COLOR), onChange: (e) => { - t.ui = t.ui || {}, t.ui.tagColor = s(e, N.UI_TAG_COLOR), B(t), V(t), n("ui.tagColor"); + t.ui = t.ui || {}, t.ui.tagColor = s(e, j.UI_TAG_COLOR), z(t), B(t), n("ui.tagColor"); } }); } // ui/app/settings/settingsViewer.ts -var jt = "Majoor", Mt = "Majoor Assets Manager"; +var H = "Majoor", Mt = "Majoor Assets Manager"; function Nt(e, t, n) { let r = (e, t) => [ Mt, @@ -1396,27 +1396,27 @@ function Nt(e, t, n) { t ], i = (e) => r(M("cat.viewer", "Viewer"), e), a = (e) => r(M("cat.floatingViewer", "Floating Viewer"), e); e({ - id: `${jt}.Viewer.PauseDuringExecution`, + id: `${H}.Viewer.PauseDuringExecution`, category: i(M("setting.viewer.pauseExecution.name").replace("Majoor: ", "")), name: M("setting.viewer.pauseExecution.name"), tooltip: M("setting.viewer.pauseExecution.desc"), type: "boolean", defaultValue: !!t.viewer?.pauseDuringExecution, onChange: (e) => { - t.viewer = t.viewer || {}, t.viewer.pauseDuringExecution = !!e, B(t), V(t), n("viewer.pauseDuringExecution"); + t.viewer = t.viewer || {}, t.viewer.pauseDuringExecution = !!e, z(t), B(t), n("viewer.pauseDuringExecution"); } }), e({ - id: `${jt}.Viewer.FloatingPauseDuringExecution`, + id: `${H}.Viewer.FloatingPauseDuringExecution`, category: a(M("setting.viewer.floatingPauseExecution.name").replace("Majoor: ", "")), name: M("setting.viewer.floatingPauseExecution.name"), tooltip: M("setting.viewer.floatingPauseExecution.desc"), type: "boolean", defaultValue: !!t.viewer?.floatingPauseDuringExecution, onChange: (e) => { - t.viewer = t.viewer || {}, t.viewer.floatingPauseDuringExecution = !!e, B(t), V(t), n("viewer.floatingPauseDuringExecution"); + t.viewer = t.viewer || {}, t.viewer.floatingPauseDuringExecution = !!e, z(t), B(t), n("viewer.floatingPauseDuringExecution"); } }), e({ - id: `${jt}.Browser.ShowFolders`, + id: `${H}.Browser.ShowFolders`, category: i("Browser"), name: "Show folders in Input / Output panels", tooltip: "When enabled, subdirectories under the Input and Output roots are shown as folder cards in the browser grid. Disable to see only files.", @@ -1424,46 +1424,46 @@ function Nt(e, t, n) { defaultValue: !!(t.browser?.showFolders ?? !1), onChange: async (e) => { let r = !!e, i = !!(t.browser?.showFolders ?? !1); - t.browser = t.browser || {}, t.browser.showFolders = r, B(t), V(t), n("browser.showFolders"); + t.browser = t.browser || {}, t.browser.showFolders = r, z(t), B(t), n("browser.showFolders"); try { - let e = await me(r); + let e = await A(r); if (!e?.ok) throw Error(e?.error || "Failed to update show folders setting"); } catch (e) { - t.browser.showFolders = i, B(t), V(t), n("browser.showFolders"), E(e?.message || "Failed to update show folders setting", "error"); + t.browser.showFolders = i, z(t), B(t), n("browser.showFolders"), g(e?.message || "Failed to update show folders setting", "error"); } } }), e({ - id: `${jt}.Viewer.MfvLiveDefault`, + id: `${H}.Viewer.MfvLiveDefault`, category: a(M("setting.viewer.mfvLiveDefault.name").replace("Majoor: ", "")), name: M("setting.viewer.mfvLiveDefault.name"), tooltip: M("setting.viewer.mfvLiveDefault.desc"), type: "boolean", - defaultValue: !!(t.viewer?.mfvLiveDefault ?? N.MFV_LIVE_DEFAULT), + defaultValue: !!(t.viewer?.mfvLiveDefault ?? j.MFV_LIVE_DEFAULT), onChange: (e) => { - t.viewer = t.viewer || {}, t.viewer.mfvLiveDefault = !!e, B(t), V(t), n("viewer.mfvLiveDefault"); + t.viewer = t.viewer || {}, t.viewer.mfvLiveDefault = !!e, z(t), B(t), n("viewer.mfvLiveDefault"); } }), e({ - id: `${jt}.Viewer.MfvPreviewDefault`, + id: `${H}.Viewer.MfvPreviewDefault`, category: a(M("setting.viewer.mfvPreviewDefault.name").replace("Majoor: ", "")), name: M("setting.viewer.mfvPreviewDefault.name"), tooltip: M("setting.viewer.mfvPreviewDefault.desc"), type: "boolean", - defaultValue: !!(t.viewer?.mfvPreviewDefault ?? N.MFV_PREVIEW_DEFAULT), + defaultValue: !!(t.viewer?.mfvPreviewDefault ?? j.MFV_PREVIEW_DEFAULT), onChange: (e) => { - t.viewer = t.viewer || {}, t.viewer.mfvPreviewDefault = !!e, B(t), V(t), n("viewer.mfvPreviewDefault"); + t.viewer = t.viewer || {}, t.viewer.mfvPreviewDefault = !!e, z(t), B(t), n("viewer.mfvPreviewDefault"); } }), e({ - id: `${jt}.Viewer.MfvTopbarButton`, + id: `${H}.Viewer.MfvTopbarButton`, category: a("Top bar Viewer button"), name: "Show Viewer button in the top bar", tooltip: "Show a Viewer toggle button in the ComfyUI top bar next to the queue controls. Disable to hide it (the V shortcut keeps working).", type: "boolean", - defaultValue: !!(t.viewer?.mfvTopbarButton ?? N.MFV_TOPBAR_BUTTON), + defaultValue: !!(t.viewer?.mfvTopbarButton ?? j.MFV_TOPBAR_BUTTON), onChange: (e) => { - t.viewer = t.viewer || {}, t.viewer.mfvTopbarButton = !!e, B(t), V(t), n("viewer.mfvTopbarButton"); + t.viewer = t.viewer || {}, t.viewer.mfvTopbarButton = !!e, z(t), B(t), n("viewer.mfvTopbarButton"); } }), e({ - id: `${jt}.Viewer.MfvSidebarPosition`, + id: `${H}.Viewer.MfvSidebarPosition`, category: a("Node Parameters sidebar position"), name: "Node Parameters sidebar position", tooltip: "Position of the Node Parameters sidebar in the Floating Viewer (right, left, or bottom).", @@ -1480,15 +1480,15 @@ function Nt(e, t, n) { "right", "bottom" ].includes(e) ? e : "right"; - t.viewer = t.viewer || {}, t.viewer.mfvSidebarPosition = r, B(t), V(t), n("viewer.mfvSidebarPosition"); + t.viewer = t.viewer || {}, t.viewer.mfvSidebarPosition = r, z(t), B(t), n("viewer.mfvSidebarPosition"); } }), e({ - id: `${jt}.Viewer.MfvPreviewMethod`, + id: `${H}.Viewer.MfvPreviewMethod`, category: a(M("setting.viewer.mfvPreviewMethod.name").replace("Majoor: ", "")), name: M("setting.viewer.mfvPreviewMethod.name"), tooltip: M("setting.viewer.mfvPreviewMethod.desc"), type: "combo", - defaultValue: t.viewer?.mfvPreviewMethod || N.MFV_PREVIEW_METHOD, + defaultValue: t.viewer?.mfvPreviewMethod || j.MFV_PREVIEW_METHOD, options: [ "taesd", "latent2rgb", @@ -1503,21 +1503,21 @@ function Nt(e, t, n) { "auto", "default", "none" - ].includes(e) ? e : N.MFV_PREVIEW_METHOD; - t.viewer = t.viewer || {}, t.viewer.mfvPreviewMethod = r, B(t), V(t), n("viewer.mfvPreviewMethod"); + ].includes(e) ? e : j.MFV_PREVIEW_METHOD; + t.viewer = t.viewer || {}, t.viewer.mfvPreviewMethod = r, z(t), B(t), n("viewer.mfvPreviewMethod"); } }), e({ - id: `${jt}.Viewer.MfvKjPreviewOverrideEnabled`, + id: `${H}.Viewer.MfvKjPreviewOverrideEnabled`, category: a(M("setting.viewer.mfvKjPreviewOverride.name").replace("Majoor: ", "")), name: M("setting.viewer.mfvKjPreviewOverride.name"), tooltip: M("setting.viewer.mfvKjPreviewOverride.desc"), type: "boolean", - defaultValue: !!(t.viewer?.mfvKjPreviewOverrideEnabled ?? N.MFV_KJ_PREVIEW_OVERRIDE_ENABLED), + defaultValue: !!(t.viewer?.mfvKjPreviewOverrideEnabled ?? j.MFV_KJ_PREVIEW_OVERRIDE_ENABLED), onChange: (e) => { - t.viewer = t.viewer || {}, t.viewer.mfvKjPreviewOverrideEnabled = !!e, B(t), V(t), n("viewer.mfvKjPreviewOverrideEnabled"); + t.viewer = t.viewer || {}, t.viewer.mfvKjPreviewOverrideEnabled = !!e, z(t), B(t), n("viewer.mfvKjPreviewOverrideEnabled"); } }), e({ - id: `${jt}.Viewer.LtxavRgbFallback`, + id: `${H}.Viewer.LtxavRgbFallback`, category: a("LTXAV preview fallback"), name: "Majoor: LTXAV RGB Preview Fallback (experimental)", tooltip: "Reuse LTXV RGB projection for LTXAV when native latent preview is unavailable. Experimental; quality may be approximate.", @@ -1525,34 +1525,34 @@ function Nt(e, t, n) { defaultValue: !!t.viewer?.ltxavRgbFallback, onChange: async (e) => { let r = !!e, i = !!t.viewer?.ltxavRgbFallback; - t.viewer = t.viewer || {}, t.viewer.ltxavRgbFallback = r, B(t), V(t), n("viewer.ltxavRgbFallback"); + t.viewer = t.viewer || {}, t.viewer.ltxavRgbFallback = r, z(t), B(t), n("viewer.ltxavRgbFallback"); try { - let e = await j(r); + let e = await C(r); if (!e?.ok) throw Error(e?.error || "Failed to update LTXAV RGB preview fallback setting"); } catch (e) { - t.viewer.ltxavRgbFallback = i, B(t), V(t), n("viewer.ltxavRgbFallback"), E(e?.message || "Failed to update LTXAV RGB preview fallback setting", "error"); + t.viewer.ltxavRgbFallback = i, z(t), B(t), n("viewer.ltxavRgbFallback"), g(e?.message || "Failed to update LTXAV RGB preview fallback setting", "error"); } } }); try { - u().then((e) => { + h().then((e) => { if (!e?.ok) return; - let r = !!e?.data?.prefs?.enabled, i = z(); - i.viewer = i.viewer || {}, !!i.viewer.ltxavRgbFallback !== r && (i.viewer.ltxavRgbFallback = r, Object.assign(t, i), B(i), V(i), n("viewer.ltxavRgbFallback")); + let r = !!e?.data?.prefs?.enabled, i = R(); + i.viewer = i.viewer || {}, !!i.viewer.ltxavRgbFallback !== r && (i.viewer.ltxavRgbFallback = r, Object.assign(t, i), z(i), B(i), n("viewer.ltxavRgbFallback")); }).catch(() => {}); } catch (e) { console.debug?.(e); } ((r, a, o, s) => { e({ - id: `${jt}.WorkflowMinimap.${r}`, + id: `${H}.WorkflowMinimap.${r}`, category: i(M(o).replace("Majoor: ", "")), name: M(o), tooltip: M(s), type: "boolean", defaultValue: !!t.workflowMinimap?.[a], onChange: (e) => { - t.workflowMinimap = t.workflowMinimap || {}, t.workflowMinimap[a] = !!e, B(t), n(`workflowMinimap.${a}`); + t.workflowMinimap = t.workflowMinimap || {}, t.workflowMinimap[a] = !!e, z(t), n(`workflowMinimap.${a}`); } }); })("Enabled", "enabled", "setting.minimap.enabled.name", "setting.minimap.enabled.desc"); @@ -1571,16 +1571,16 @@ function Ft(e, t, n) { name: "Execution job/stack grouping", tooltip: "Enable or disable all live job_id / stack_id tracking, grouping, and stack finalization logic.", type: "boolean", - defaultValue: !!(t.executionGrouping?.enabled ?? N.EXECUTION_GROUPING_ENABLED), + defaultValue: !!(t.executionGrouping?.enabled ?? j.EXECUTION_GROUPING_ENABLED), onChange: async (e) => { - let r = !!(t.executionGrouping?.enabled ?? N.EXECUTION_GROUPING_ENABLED), i = !!e; - t.executionGrouping = t.executionGrouping || {}, t.executionGrouping.enabled = i, B(t), V(t), n("executionGrouping.enabled"); + let r = !!(t.executionGrouping?.enabled ?? j.EXECUTION_GROUPING_ENABLED), i = !!e; + t.executionGrouping = t.executionGrouping || {}, t.executionGrouping.enabled = i, z(t), B(t), n("executionGrouping.enabled"); try { - let e = await ue(i); + let e = await ae(i); if (!e?.ok) throw Error(e?.error || "Failed to update execution grouping setting"); - t.executionGrouping.enabled = !!e?.data?.prefs?.enabled, B(t), V(t), n("executionGrouping.enabled"); + t.executionGrouping.enabled = !!e?.data?.prefs?.enabled, z(t), B(t), n("executionGrouping.enabled"); } catch (e) { - t.executionGrouping.enabled = r, B(t), V(t), n("executionGrouping.enabled"), E(e?.message || "Failed to update execution grouping setting", "error"); + t.executionGrouping.enabled = r, z(t), B(t), n("executionGrouping.enabled"), g(e?.message || "Failed to update execution grouping setting", "error"); } } }), e({ @@ -1591,7 +1591,7 @@ function Ft(e, t, n) { type: "boolean", defaultValue: !!t.autoScan?.onStartup, onChange: (e) => { - t.autoScan = t.autoScan || {}, t.autoScan.onStartup = !!e, B(t), V(t), n("autoScan.onStartup"); + t.autoScan = t.autoScan || {}, t.autoScan.onStartup = !!e, z(t), B(t), n("autoScan.onStartup"); } }), e({ id: `${U}.Scan.FastMode`, @@ -1601,7 +1601,7 @@ function Ft(e, t, n) { type: "boolean", defaultValue: !!(t.scan?.fastMode ?? !0), onChange: (e) => { - t.scan = t.scan || {}, t.scan.fastMode = !!e, B(t), n("scan.fastMode"); + t.scan = t.scan || {}, t.scan.fastMode = !!e, z(t), n("scan.fastMode"); } }), e({ id: `${U}.Scan.JpegXL`, @@ -1612,34 +1612,34 @@ function Ft(e, t, n) { defaultValue: !!t.scan?.jxlEnabled, onChange: async (e) => { let r = !!t.scan?.jxlEnabled, i = !!e; - t.scan = t.scan || {}, t.scan.jxlEnabled = i, B(t), n("scan.jxlEnabled"); + t.scan = t.scan || {}, t.scan.jxlEnabled = i, z(t), n("scan.jxlEnabled"); try { - let e = await Oe(i); + let e = await De(i); if (!e?.ok) throw Error(e?.error || "Failed to update JPEG XL support"); } catch (e) { - t.scan.jxlEnabled = r, B(t), n("scan.jxlEnabled"), E(e?.message || "Failed to update JPEG XL support", "error"); + t.scan.jxlEnabled = r, z(t), n("scan.jxlEnabled"), g(e?.message || "Failed to update JPEG XL support", "error"); } } - }), T().then((e) => { - e?.ok && (t.scan = t.scan || {}, t.scan.jxlEnabled = !!e?.data?.prefs?.enabled, B(t), n("scan.jxlEnabled")); + }), s().then((e) => { + e?.ok && (t.scan = t.scan || {}, t.scan.jxlEnabled = !!e?.data?.prefs?.enabled, z(t), n("scan.jxlEnabled")); }).catch(() => {}), e({ id: `${U}.RtHydrate.Concurrency`, category: r(M("cat.scanning"), "Hydration"), name: "Hydrate Concurrency", tooltip: "Maximum concurrent hydration requests for rating/tags.", type: "number", - defaultValue: Number(t.rtHydrate?.concurrency || N.RT_HYDRATE_CONCURRENCY || 5), + defaultValue: Number(t.rtHydrate?.concurrency || j.RT_HYDRATE_CONCURRENCY || 5), attrs: { min: 1, max: 20, step: 1 }, onChange: (e) => { - t.rtHydrate = t.rtHydrate || {}, t.rtHydrate.concurrency = Math.max(1, Math.min(20, Math.round(I(e, N.RT_HYDRATE_CONCURRENCY || 5)))), B(t), V(t), n("rtHydrate.concurrency"); + t.rtHydrate = t.rtHydrate || {}, t.rtHydrate.concurrency = Math.max(1, Math.min(20, Math.round(F(e, j.RT_HYDRATE_CONCURRENCY || 5)))), z(t), B(t), n("rtHydrate.concurrency"); } }); let i = (e, t, n, r) => { - let i = Math.round(I(e, t)); + let i = Math.round(F(e, t)); return Math.max(n, Math.min(r, i)); }, a = (e = {}) => { let r = []; @@ -1651,10 +1651,10 @@ function Ft(e, t, n) { let n = Math.max(100, Math.min(3e4, Math.round(e.dedupe_ttl_ms))); t.watcher.dedupeTtlMs !== n && (t.watcher.dedupeTtlMs = n, r.push("watcher.dedupeTtlMs")); } - r.length && (B(t), r.forEach((e) => n(e))); - }, o = async () => { + r.length && (z(t), r.forEach((e) => n(e))); + }, c = async () => { try { - let e = await se(); + let e = await ge(); if (!e?.ok) return; a(e.data || {}); } catch (e) { @@ -1669,12 +1669,12 @@ function Ft(e, t, n) { type: "boolean", defaultValue: !!t.watcher?.enabled, onChange: async (e) => { - t.watcher = t.watcher || {}, t.watcher.enabled = !!e, B(t), n("watcher.enabled"); + t.watcher = t.watcher || {}, t.watcher.enabled = !!e, z(t), n("watcher.enabled"); try { - let r = await de(!!e); - r?.ok || (t.watcher.enabled = !e, B(t), n("watcher.enabled"), E(r?.error || M("toast.failedToggleWatcher", "Failed to toggle watcher"), "error")); + let r = await v(!!e); + r?.ok || (t.watcher.enabled = !e, z(t), n("watcher.enabled"), g(r?.error || M("toast.failedToggleWatcher", "Failed to toggle watcher"), "error")); } catch { - t.watcher.enabled = !e, B(t), n("watcher.enabled"); + t.watcher.enabled = !e, z(t), n("watcher.enabled"); } } }), e({ @@ -1683,23 +1683,23 @@ function Ft(e, t, n) { name: M("setting.watcher.debounce.name"), tooltip: M("setting.watcher.debounce.desc") + " (env: MJR_WATCHER_DEBOUNCE_MS)", type: "number", - defaultValue: t.watcher?.debounceMs ?? N.WATCHER_DEBOUNCE_MS, + defaultValue: t.watcher?.debounceMs ?? j.WATCHER_DEBOUNCE_MS, attrs: { min: 50, max: 6e4, step: 50 }, onChange: async (e) => { - let r = N.WATCHER_DEBOUNCE_MS, a = i(e, r, 50, 6e4), o = t.watcher?.debounceMs ?? r; - if (a !== o) { - t.watcher = t.watcher || {}, t.watcher.debounceMs = a, B(t); + let r = j.WATCHER_DEBOUNCE_MS, a = i(e, r, 50, 6e4), s = t.watcher?.debounceMs ?? r; + if (a !== s) { + t.watcher = t.watcher || {}, t.watcher.debounceMs = a, z(t); try { - let e = await v({ debounce_ms: a }); + let e = await o({ debounce_ms: a }); if (!e?.ok) throw Error(e?.error || M("setting.watcher.debounce.error")); let r = Math.round(Number(e?.data?.debounce_ms ?? a)); - t.watcher.debounceMs = r, B(t), n("watcher.debounceMs"); + t.watcher.debounceMs = r, z(t), n("watcher.debounceMs"); } catch (e) { - t.watcher.debounceMs = o, B(t), n("watcher.debounceMs"), E(e?.message || M("setting.watcher.debounce.error"), "error"); + t.watcher.debounceMs = s, z(t), n("watcher.debounceMs"), g(e?.message || M("setting.watcher.debounce.error"), "error"); } } } @@ -1709,23 +1709,23 @@ function Ft(e, t, n) { name: M("setting.watcher.dedupe.name"), tooltip: M("setting.watcher.dedupe.desc") + " (env: MJR_WATCHER_DEDUPE_TTL_MS)", type: "number", - defaultValue: t.watcher?.dedupeTtlMs ?? N.WATCHER_DEDUPE_TTL_MS, + defaultValue: t.watcher?.dedupeTtlMs ?? j.WATCHER_DEDUPE_TTL_MS, attrs: { min: 100, max: 12e4, step: 100 }, onChange: async (e) => { - let r = N.WATCHER_DEDUPE_TTL_MS, a = i(e, r, 100, 12e4), o = t.watcher?.dedupeTtlMs ?? r; - if (a !== o) { - t.watcher = t.watcher || {}, t.watcher.dedupeTtlMs = a, B(t); + let r = j.WATCHER_DEDUPE_TTL_MS, a = i(e, r, 100, 12e4), s = t.watcher?.dedupeTtlMs ?? r; + if (a !== s) { + t.watcher = t.watcher || {}, t.watcher.dedupeTtlMs = a, z(t); try { - let e = await v({ dedupe_ttl_ms: a }); + let e = await o({ dedupe_ttl_ms: a }); if (!e?.ok) throw Error(e?.error || M("setting.watcher.dedupe.error")); let r = Math.round(Number(e?.data?.dedupe_ttl_ms ?? a)); - t.watcher.dedupeTtlMs = r, B(t), n("watcher.dedupeTtlMs"); + t.watcher.dedupeTtlMs = r, z(t), n("watcher.dedupeTtlMs"); } catch (e) { - t.watcher.dedupeTtlMs = o, B(t), n("watcher.dedupeTtlMs"), E(e?.message || M("setting.watcher.dedupe.error"), "error"); + t.watcher.dedupeTtlMs = s, z(t), n("watcher.dedupeTtlMs"), g(e?.message || M("setting.watcher.dedupe.error"), "error"); } } } @@ -1742,7 +1742,7 @@ function Ft(e, t, n) { step: 10 }, onChange: (e) => { - t.watcher = t.watcher || {}, t.watcher.maxPending = Math.max(10, Math.min(5e3, Math.round(I(e, 500)))), B(t), V(t), n("watcher.maxPending"); + t.watcher = t.watcher || {}, t.watcher.maxPending = Math.max(10, Math.min(5e3, Math.round(F(e, 500)))), z(t), B(t), n("watcher.maxPending"); } }), e({ id: `${U}.Watcher.MinSize`, @@ -1757,7 +1757,7 @@ function Ft(e, t, n) { step: 100 }, onChange: (e) => { - t.watcher = t.watcher || {}, t.watcher.minSize = Math.max(0, Math.min(1e6, Math.round(I(e, 100)))), B(t), V(t), n("watcher.minSize"); + t.watcher = t.watcher || {}, t.watcher.minSize = Math.max(0, Math.min(1e6, Math.round(F(e, 100)))), z(t), B(t), n("watcher.minSize"); } }), e({ id: `${U}.Watcher.MaxSize`, @@ -1772,11 +1772,11 @@ function Ft(e, t, n) { step: 1e5 }, onChange: (e) => { - t.watcher = t.watcher || {}, t.watcher.maxSize = Math.max(1e5, Math.min(17179869184, Math.round(I(e, 4294967296)))), B(t), V(t), n("watcher.maxSize"); + t.watcher = t.watcher || {}, t.watcher.maxSize = Math.max(1e5, Math.min(17179869184, Math.round(F(e, 4294967296)))), z(t), B(t), n("watcher.maxSize"); } }); try { - o().catch(() => {}); + c().catch(() => {}); } catch (e) { console.debug?.(e); } @@ -1788,7 +1788,7 @@ function Ft(e, t, n) { type: "boolean", defaultValue: !!t.ratingTagsSync?.enabled, onChange: (e) => { - t.ratingTagsSync = t.ratingTagsSync || {}, t.ratingTagsSync.enabled = !!e, B(t), n("ratingTagsSync.enabled"); + t.ratingTagsSync = t.ratingTagsSync || {}, t.ratingTagsSync.enabled = !!e, z(t), n("ratingTagsSync.enabled"); } }); } @@ -1815,7 +1815,7 @@ function Rt(e, t, n) { step: 10 }, onChange: (e) => { - i(), t.feed.minSize = Math.max(60, Math.min(600, Math.round(Number(e) || 120))), B(t), V(t), n("feed.minSize"); + i(), t.feed.minSize = Math.max(60, Math.min(600, Math.round(Number(e) || 120))), z(t), B(t), n("feed.minSize"); } }), e({ id: `${It}.Feed.ShowInfo`, @@ -1823,9 +1823,9 @@ function Rt(e, t, n) { name: "Show card info section", tooltip: "Show or hide the entire info section (filename, metadata, dots) below thumbnails in the Generated Feed.", type: "boolean", - defaultValue: !!(t.feed?.showInfo ?? N.FEED_SHOW_INFO), + defaultValue: !!(t.feed?.showInfo ?? j.FEED_SHOW_INFO), onChange: (e) => { - i(), t.feed.showInfo = !!e, B(t), V(t), n("feed.showInfo"); + i(), t.feed.showInfo = !!e, z(t), B(t), n("feed.showInfo"); } }), e({ id: `${It}.Feed.ShowFilename`, @@ -1833,9 +1833,9 @@ function Rt(e, t, n) { name: "Show filename", tooltip: "Display the filename on feed cards.", type: "boolean", - defaultValue: !!(t.feed?.showFilename ?? N.FEED_SHOW_FILENAME), + defaultValue: !!(t.feed?.showFilename ?? j.FEED_SHOW_FILENAME), onChange: (e) => { - i(), t.feed.showFilename = !!e, B(t), V(t), n("feed.showFilename"); + i(), t.feed.showFilename = !!e, z(t), B(t), n("feed.showFilename"); } }), e({ id: `${It}.Feed.ShowDimensions`, @@ -1843,9 +1843,9 @@ function Rt(e, t, n) { name: "Show dimensions", tooltip: "Display resolution (WxH) and duration on feed cards.", type: "boolean", - defaultValue: !!(t.feed?.showDimensions ?? N.FEED_SHOW_DIMENSIONS), + defaultValue: !!(t.feed?.showDimensions ?? j.FEED_SHOW_DIMENSIONS), onChange: (e) => { - i(), t.feed.showDimensions = !!e, B(t), V(t), n("feed.showDimensions"); + i(), t.feed.showDimensions = !!e, z(t), B(t), n("feed.showDimensions"); } }), e({ id: `${It}.Feed.ShowDate`, @@ -1853,9 +1853,9 @@ function Rt(e, t, n) { name: "Show date/time", tooltip: "Display date and time on feed cards.", type: "boolean", - defaultValue: !!(t.feed?.showDate ?? N.FEED_SHOW_DATE), + defaultValue: !!(t.feed?.showDate ?? j.FEED_SHOW_DATE), onChange: (e) => { - i(), t.feed.showDate = !!e, B(t), V(t), n("feed.showDate"); + i(), t.feed.showDate = !!e, z(t), B(t), n("feed.showDate"); } }), e({ id: `${It}.Feed.ShowGenTime`, @@ -1863,9 +1863,9 @@ function Rt(e, t, n) { name: "Show generation time", tooltip: "Display the generation time badge on feed cards.", type: "boolean", - defaultValue: !!(t.feed?.showGenTime ?? N.FEED_SHOW_GENTIME), + defaultValue: !!(t.feed?.showGenTime ?? j.FEED_SHOW_GENTIME), onChange: (e) => { - i(), t.feed.showGenTime = !!e, B(t), V(t), n("feed.showGenTime"); + i(), t.feed.showGenTime = !!e, z(t), B(t), n("feed.showGenTime"); } }), e({ id: `${It}.Feed.ShowWorkflowDot`, @@ -1873,9 +1873,9 @@ function Rt(e, t, n) { name: "Show workflow indicator", tooltip: "Display the workflow availability dot on feed cards.", type: "boolean", - defaultValue: !!(t.feed?.showWorkflowDot ?? N.FEED_SHOW_WORKFLOW_DOT), + defaultValue: !!(t.feed?.showWorkflowDot ?? j.FEED_SHOW_WORKFLOW_DOT), onChange: (e) => { - i(), t.feed.showWorkflowDot = !!e, B(t), V(t), n("feed.showWorkflowDot"); + i(), t.feed.showWorkflowDot = !!e, z(t), B(t), n("feed.showWorkflowDot"); } }), e({ id: `${It}.Feed.ShowExtBadge`, @@ -1883,9 +1883,9 @@ function Rt(e, t, n) { name: "Show format badges", tooltip: "Display format badges (e.g. JPG, MP4) on feed card thumbnails.", type: "boolean", - defaultValue: !!(t.feed?.showExtBadge ?? N.FEED_SHOW_BADGES_EXTENSION), + defaultValue: !!(t.feed?.showExtBadge ?? j.FEED_SHOW_BADGES_EXTENSION), onChange: (e) => { - i(), t.feed.showExtBadge = !!e, B(t), V(t), n("feed.showExtBadge"); + i(), t.feed.showExtBadge = !!e, z(t), B(t), n("feed.showExtBadge"); } }), e({ id: `${It}.Feed.ShowRatingBadge`, @@ -1893,9 +1893,9 @@ function Rt(e, t, n) { name: "Show ratings", tooltip: "Display star ratings on feed card thumbnails.", type: "boolean", - defaultValue: !!(t.feed?.showRatingBadge ?? N.FEED_SHOW_BADGES_RATING), + defaultValue: !!(t.feed?.showRatingBadge ?? j.FEED_SHOW_BADGES_RATING), onChange: (e) => { - i(), t.feed.showRatingBadge = !!e, B(t), V(t), n("feed.showRatingBadge"); + i(), t.feed.showRatingBadge = !!e, z(t), B(t), n("feed.showRatingBadge"); } }), e({ id: `${It}.Feed.ShowTagsBadge`, @@ -1903,9 +1903,9 @@ function Rt(e, t, n) { name: "Show tags", tooltip: "Display tag indicators on feed card thumbnails.", type: "boolean", - defaultValue: !!(t.feed?.showTagsBadge ?? N.FEED_SHOW_BADGES_TAGS), + defaultValue: !!(t.feed?.showTagsBadge ?? j.FEED_SHOW_BADGES_TAGS), onChange: (e) => { - i(), t.feed.showTagsBadge = !!e, B(t), V(t), n("feed.showTagsBadge"); + i(), t.feed.showTagsBadge = !!e, z(t), B(t), n("feed.showTagsBadge"); } }); } @@ -1953,7 +1953,7 @@ function Zt() { return `mjr_${Xt(18)}`; } function Qt(e) { - return String(e?.apiToken || "").trim().length >= Vt && F(e?.allowWrite, !0) && F(e?.requireAuth, !1) && !F(e?.allowRemoteWrite, !1); + return String(e?.apiToken || "").trim().length >= Vt && P(e?.allowWrite, !0) && P(e?.requireAuth, !1) && !P(e?.allowRemoteWrite, !1); } function $t(e) { let t = String((e && typeof e == "object" ? e : {}).apiToken || "").trim(); @@ -1968,20 +1968,20 @@ function $t(e) { function en(e) { let t = e || {}; return { - safe_mode: F(t.safeMode, !1), - allow_write: F(t.allowWrite, !0), - require_auth: F(t.requireAuth, !1), - allow_remote_write: F(t.allowRemoteWrite, !1), - allow_insecure_token_transport: F(t.allowInsecureTokenTransport, !1), - allow_delete: F(t.allowDelete, !0), - allow_rename: F(t.allowRename, !0), - allow_open_in_folder: F(t.allowOpenInFolder, !0), - allow_reset_index: F(t.allowResetIndex, !0), + safe_mode: P(t.safeMode, !1), + allow_write: P(t.allowWrite, !0), + require_auth: P(t.requireAuth, !1), + allow_remote_write: P(t.allowRemoteWrite, !1), + allow_insecure_token_transport: P(t.allowInsecureTokenTransport, !1), + allow_delete: P(t.allowDelete, !0), + allow_rename: P(t.allowRename, !0), + allow_open_in_folder: P(t.allowOpenInFolder, !0), + allow_reset_index: P(t.allowResetIndex, !0), ...String(t.apiToken || "").trim() ? { api_token: String(t.apiToken || "").trim() } : {} }; } function tn(e) { - return ee(en(e)); + return i(en(e)); } function nn(e) { let t = String(e?.security?.tokenHint || "").trim(); @@ -2001,23 +2001,23 @@ function rn(e, t, n) { type: "boolean", defaultValue: t.safety?.confirmDeletion !== !1, onChange: (e) => { - Wt(t.safety?.confirmDeletion !== !1, e) || (t.safety = t.safety || {}, t.safety.confirmDeletion = !!e, B(t), V(t), n("safety.confirmDeletion")); + Wt(t.safety?.confirmDeletion !== !1, e) || (t.safety = t.safety || {}, t.safety.confirmDeletion = !!e, z(t), B(t), n("safety.confirmDeletion")); } }); - let i = (i, a, o, s = "cat.security") => { + let a = (i, a, o, s = "cat.security") => { e({ id: `${zt}.Security.${i}`, category: r(M(s), M(a).replace("Majoor: ", "")), name: M(a), tooltip: M(o), type: "boolean", - defaultValue: F(t.security?.[i], Ht[i] ?? !1), + defaultValue: P(t.security?.[i], Ht[i] ?? !1), onChange: (e) => { if (!Wt(t.security?.[i], e)) { - t.security = t.security || {}, t.security[i] = !!e, B(t), n(`security.${i}`); + t.security = t.security || {}, t.security[i] = !!e, z(t), n(`security.${i}`); try { tn(t.security).then((e) => { - e?.ok && e.data?.prefs ? rt() : e && e.ok === !1 && console.warn("[Majoor] backend security settings update failed", e.error || e); + e?.ok && e.data?.prefs ? it() : e && e.ok === !1 && console.warn("[Majoor] backend security settings update failed", e.error || e); }).catch(() => {}); } catch (e) { console.debug?.(e); @@ -2026,7 +2026,7 @@ function rn(e, t, n) { } }); }; - i("safeMode", "setting.sec.safe.name", "setting.sec.safe.desc"), i("allowWrite", "setting.sec.write.name", "setting.sec.write.desc"), i("allowDelete", "setting.sec.del.name", "setting.sec.del.desc"), i("allowRename", "setting.sec.ren.name", "setting.sec.ren.desc"), i("allowOpenInFolder", "setting.sec.open.name", "setting.sec.open.desc"), i("allowResetIndex", "setting.sec.reset.name", "setting.sec.reset.desc"), e({ + a("safeMode", "setting.sec.safe.name", "setting.sec.safe.desc"), a("allowWrite", "setting.sec.write.name", "setting.sec.write.desc"), a("allowDelete", "setting.sec.del.name", "setting.sec.del.desc"), a("allowRename", "setting.sec.ren.name", "setting.sec.ren.desc"), a("allowOpenInFolder", "setting.sec.open.name", "setting.sec.open.desc"), a("allowResetIndex", "setting.sec.reset.name", "setting.sec.reset.desc"), e({ id: `${zt}.Security.RemoteLanPreset`, category: r(M("cat.remote"), M("setting.sec.remoteLanPreset.name").replace("Majoor: ", "")), name: M("setting.sec.remoteLanPreset.name"), @@ -2036,22 +2036,22 @@ function rn(e, t, n) { onChange: (e) => { if (t.security = t.security || {}, Wt(t.security.remoteLanPreset, e)) return; if (t.security.remoteLanPreset = !!e, !e) { - B(t), n("security.remoteLanPreset"); + z(t), n("security.remoteLanPreset"); return; } let r; try { r = $t(t.security); } catch (e) { - E(e?.message || M("toast.remoteLanPresetFailed", "Failed to apply the recommended remote LAN setup."), "error"); + g(e?.message || M("toast.remoteLanPresetFailed", "Failed to apply the recommended remote LAN setup."), "error"); return; } - Object.assign(t.security, r), t.security.tokenConfigured = !0, t.security.tokenHint = String(r.apiToken || "").trim() ? `...${String(r.apiToken).trim().slice(-4)}` : "", r.apiToken && w(r.apiToken), B(t), n("security.remoteLanPreset"), n("security.apiToken"), n("security.allowWrite"), n("security.requireAuth"), n("security.allowRemoteWrite"), n("security.allowInsecureTokenTransport"); + Object.assign(t.security, r), t.security.tokenConfigured = !0, t.security.tokenHint = String(r.apiToken || "").trim() ? `...${String(r.apiToken).trim().slice(-4)}` : "", r.apiToken && c(r.apiToken), z(t), n("security.remoteLanPreset"), n("security.apiToken"), n("security.allowWrite"), n("security.requireAuth"), n("security.allowRemoteWrite"), n("security.allowInsecureTokenTransport"); try { tn(t.security).then((e) => { - e?.ok && e.data?.prefs ? (rt(), E(M("toast.remoteLanPresetApplied", "Recommended remote LAN setup applied. This browser session is now authorized for Majoor write operations."), "success")) : e && e.ok === !1 && (E(e.error || M("toast.remoteLanPresetFailed", "Failed to apply the recommended remote LAN setup."), "error"), console.warn("[Majoor] backend remote LAN preset update failed", e.error || e)); + e?.ok && e.data?.prefs ? (it(), g(M("toast.remoteLanPresetApplied", "Recommended remote LAN setup applied. This browser session is now authorized for Majoor write operations."), "success")) : e && e.ok === !1 && (g(e.error || M("toast.remoteLanPresetFailed", "Failed to apply the recommended remote LAN setup."), "error"), console.warn("[Majoor] backend remote LAN preset update failed", e.error || e)); }).catch((e) => { - E(e?.message || M("toast.remoteLanPresetFailed", "Failed to apply the recommended remote LAN setup."), "error"); + g(e?.message || M("toast.remoteLanPresetFailed", "Failed to apply the recommended remote LAN setup."), "error"); }); } catch (e) { console.debug?.(e); @@ -2068,24 +2068,24 @@ function rn(e, t, n) { onChange: (e) => { t.security = t.security || {}; let r = Gt(e); - if (Gt(t.security.apiToken) !== r && (t.security.apiToken = r, t.security.apiToken && (t.security.tokenConfigured = !0, t.security.tokenHint = `...${t.security.apiToken.slice(-4)}`, w(t.security.apiToken)), B(t), n("security.apiToken"), t.security.apiToken)) try { - ee({ api_token: t.security.apiToken }).then((e) => { - e?.ok && e.data?.prefs ? rt() : e && e.ok === !1 && console.warn("[Majoor] backend token update failed", e.error || e); + if (Gt(t.security.apiToken) !== r && (t.security.apiToken = r, t.security.apiToken && (t.security.tokenConfigured = !0, t.security.tokenHint = `...${t.security.apiToken.slice(-4)}`, c(t.security.apiToken)), z(t), n("security.apiToken"), t.security.apiToken)) try { + i({ api_token: t.security.apiToken }).then((e) => { + e?.ok && e.data?.prefs ? it() : e && e.ok === !1 && console.warn("[Majoor] backend token update failed", e.error || e); }).catch(() => {}); } catch (e) { console.debug?.(e); } } - }), i("requireAuth", "setting.sec.requireAuth.name", "setting.sec.requireAuth.desc", "cat.remote"), i("allowRemoteWrite", "setting.sec.remote.name", "setting.sec.remote.desc", "cat.remote"), i("allowInsecureTokenTransport", "setting.sec.insecureTransport.name", "setting.sec.insecureTransport.desc", "cat.remote"); + }), a("requireAuth", "setting.sec.requireAuth.name", "setting.sec.requireAuth.desc", "cat.remote"), a("allowRemoteWrite", "setting.sec.remote.name", "setting.sec.remote.desc", "cat.remote"), a("allowInsecureTokenTransport", "setting.sec.insecureTransport.name", "setting.sec.insecureTransport.desc", "cat.remote"); } // ui/app/settings/settingsAdvanced.ts var W = "Majoor", an = "Majoor Assets Manager"; -function on(e, n, r, a) { +function on(e, n, i, o) { let s = (e, t) => [ an, e, t - ], l = String(n.paths?.outputDirectory || ""), u = null, f = 0, _ = null; + ], c = String(n.paths?.outputDirectory || ""), u = null, h = 0, _ = null; e({ id: `${W}.Paths.OutputDirectory`, category: s(M("cat.advanced"), "Paths / Output"), @@ -2096,7 +2096,7 @@ function on(e, n, r, a) { attrs: { placeholder: "D:\\\\____COMFY_OUTPUTS" }, onChange: async (e) => { let t = String(e || "").trim(); - n.paths = n.paths || {}, n.paths.outputDirectory = t, B(n); + n.paths = n.paths || {}, n.paths.outputDirectory = t, z(n); try { u &&= (clearTimeout(u), null); } catch (e) { @@ -2104,7 +2104,7 @@ function on(e, n, r, a) { } u = setTimeout(async () => { u = null; - let e = ++f; + let e = ++h; try { _?.abort?.(); } catch (e) { @@ -2112,29 +2112,29 @@ function on(e, n, r, a) { } _ = typeof AbortController < "u" ? new AbortController() : null; try { - let i = await C(t, _ ? { signal: _.signal } : {}); - if (e !== f) return; - if (!i?.ok) throw Error(i?.error || M("toast.failedSetOutputDirectory", "Failed to set output directory")); - let a = String(i?.data?.output_directory || t).trim(); - n.paths.outputDirectory = a, l = a, B(n), r("paths.outputDirectory"); + let r = await Te(t, _ ? { signal: _.signal } : {}); + if (e !== h) return; + if (!r?.ok) throw Error(r?.error || M("toast.failedSetOutputDirectory", "Failed to set output directory")); + let a = String(r?.data?.output_directory || t).trim(); + n.paths.outputDirectory = a, c = a, z(n), i("paths.outputDirectory"); } catch (t) { - if (e !== f || String(t?.name || "") === "AbortError" || String(t?.code || "") === "ABORTED") return; - n.paths.outputDirectory = l, B(n), r("paths.outputDirectory"), E(t?.message || M("toast.failedSetOutputDirectory", "Failed to set output directory"), "error"); + if (e !== h || String(t?.name || "") === "AbortError" || String(t?.code || "") === "ABORTED") return; + n.paths.outputDirectory = c, z(n), i("paths.outputDirectory"), g(t?.message || M("toast.failedSetOutputDirectory", "Failed to set output directory"), "error"); } }, 700); } }); try { - ye().then((e) => { + p().then((e) => { if (!e?.ok) return; let t = String(e?.data?.output_directory || "").trim(); - n.paths = n.paths || {}, n.paths.outputDirectory !== t && (n.paths.outputDirectory = t, l = t, B(n), r("paths.outputDirectory")); + n.paths = n.paths || {}, n.paths.outputDirectory !== t && (n.paths.outputDirectory = t, c = t, z(n), i("paths.outputDirectory")); }).catch(() => {}); } catch (e) { console.debug?.(e); } - let v = String(n.paths?.inputDirectory || ""), y = null, ee = 0, w = null, T = (e) => { - n.paths = n.paths || {}, n.paths.inputDirectory = e, B(n), S(a, `${W}.Paths.InputDirectory`, e), r("paths.inputDirectory"); + let v = String(n.paths?.inputDirectory || ""), b = null, C = 0, w = null, E = (e) => { + n.paths = n.paths || {}, n.paths.inputDirectory = e, z(n), t(o, `${W}.Paths.InputDirectory`, e), i("paths.inputDirectory"); }; e({ id: `${W}.Paths.InputDirectory`, @@ -2147,33 +2147,33 @@ function on(e, n, r, a) { onChange: (e) => { let t = String(e || "").trim(); if (t === String(n.paths?.inputDirectory || "")) return; - n.paths = n.paths || {}, n.paths.inputDirectory = t, B(n), y && clearTimeout(y); - let r = ++ee; - w?.abort(), y = setTimeout(async () => { - y = null, w = typeof AbortController < "u" ? new AbortController() : null; + n.paths = n.paths || {}, n.paths.inputDirectory = t, z(n), b && clearTimeout(b); + let r = ++C; + w?.abort(), b = setTimeout(async () => { + b = null, w = typeof AbortController < "u" ? new AbortController() : null; try { - let e = await Ce(t, w ? { signal: w.signal } : {}); - if (r !== ee) return; + let e = await oe(t, w ? { signal: w.signal } : {}); + if (r !== C) return; if (!e?.ok) throw Error(e?.error || "Failed to set input directory"); let n = String(e?.data?.input_directory ?? t).trim(); - v = n, T(n); + v = n, E(n); } catch (e) { - if (r !== ee || e?.name === "AbortError" || e?.code === "ABORTED") return; - T(v), E(e?.message || "Failed to set input directory", "error"); + if (r !== C || e?.name === "AbortError" || e?.code === "ABORTED") return; + E(v), g(e?.message || "Failed to set input directory", "error"); } }, 700); } }); try { te().then((e) => { - if (!e?.ok || ee !== 0) return; + if (!e?.ok || C !== 0) return; let t = String(e?.data?.input_directory || "").trim(); - v = t, T(t); + v = t, E(t); }).catch(() => {}); } catch (e) { console.debug?.(e); } - let D = String(n.paths?.indexDirectory || ""), O = null, ie = 0, k = null; + let D = String(n.paths?.indexDirectory || ""), O = null, re = 0, ie = null; e({ id: `${W}.Paths.IndexDirectory`, category: s(M("cat.advanced"), "Paths / Index"), @@ -2184,7 +2184,7 @@ function on(e, n, r, a) { attrs: { placeholder: "D:\\MajoorIndex" }, onChange: async (e) => { let t = String(e || "").trim(); - n.paths = n.paths || {}, n.paths.indexDirectory = t, B(n); + n.paths = n.paths || {}, n.paths.indexDirectory = t, z(n); try { O &&= (clearTimeout(O), null); } catch (e) { @@ -2192,36 +2192,36 @@ function on(e, n, r, a) { } O = setTimeout(async () => { O = null; - let e = ++ie; + let e = ++re; try { - k?.abort?.(); + ie?.abort?.(); } catch (e) { console.debug?.(e); } - k = typeof AbortController < "u" ? new AbortController() : null; + ie = typeof AbortController < "u" ? new AbortController() : null; try { - let i = await ae(t, k ? { signal: k.signal } : {}); - if (e !== ie) return; - if (!i?.ok) throw Error(i?.error || M("toast.failedSetIndexDirectory", "Failed to set index directory")); - let a = String(i?.data?.index_directory || t).trim(), o = a !== D; - n.paths.indexDirectory = a, D = a, B(n), r("paths.indexDirectory"), o && E(M("toast.indexDirectorySavedRestart", "Index directory saved. Restart ComfyUI to apply."), "success", void 0, { history: { trackId: "settings:index-directory-saved" } }); + let r = await ke(t, ie ? { signal: ie.signal } : {}); + if (e !== re) return; + if (!r?.ok) throw Error(r?.error || M("toast.failedSetIndexDirectory", "Failed to set index directory")); + let a = String(r?.data?.index_directory || t).trim(), o = a !== D; + n.paths.indexDirectory = a, D = a, z(n), i("paths.indexDirectory"), o && g(M("toast.indexDirectorySavedRestart", "Index directory saved. Restart ComfyUI to apply."), "success", void 0, { history: { trackId: "settings:index-directory-saved" } }); } catch (t) { - if (e !== ie || String(t?.name || "") === "AbortError" || String(t?.code || "") === "ABORTED") return; - n.paths.indexDirectory = D, B(n), r("paths.indexDirectory"), E(t?.message || M("toast.failedSetIndexDirectory", "Failed to set index directory"), "error"); + if (e !== re || String(t?.name || "") === "AbortError" || String(t?.code || "") === "ABORTED") return; + n.paths.indexDirectory = D, z(n), i("paths.indexDirectory"), g(t?.message || M("toast.failedSetIndexDirectory", "Failed to set index directory"), "error"); } }, 700); } }); try { - d().then((e) => { + T().then((e) => { if (!e?.ok) return; let t = String(e?.data?.index_directory || "").trim(); - n.paths = n.paths || {}, n.paths.indexDirectory !== t && (n.paths.indexDirectory = t, D = t, B(n), r("paths.indexDirectory")); + n.paths = n.paths || {}, n.paths.indexDirectory !== t && (n.paths.indexDirectory = t, D = t, z(n), i("paths.indexDirectory")); }).catch(() => {}); } catch (e) { console.debug?.(e); } - let A = String(n.paths?.workflowRoots || ""), j = null, se = 0, le = null; + let ae = String(n.paths?.workflowRoots || ""), k = null, A = 0, ce = null; e({ id: `${W}.Paths.WorkflowRoots`, category: s(M("cat.advanced"), "Paths / Workflows"), @@ -2232,54 +2232,54 @@ function on(e, n, r, a) { attrs: { placeholder: "D:\\\\ComfyUI\\\\user\\\\default\\\\workflows" }, onChange: async (e) => { let t = String(e || "").trim(); - n.paths = n.paths || {}, n.paths.workflowRoots = t, B(n); + n.paths = n.paths || {}, n.paths.workflowRoots = t, z(n); try { - j &&= (clearTimeout(j), null); + k &&= (clearTimeout(k), null); } catch (e) { console.debug?.(e); } - j = setTimeout(async () => { - j = null; - let e = ++se; + k = setTimeout(async () => { + k = null; + let e = ++A; try { - le?.abort?.(); + ce?.abort?.(); } catch (e) { console.debug?.(e); } - le = typeof AbortController < "u" ? new AbortController() : null; + ce = typeof AbortController < "u" ? new AbortController() : null; try { - let i = await pe(t, le ? { signal: le.signal } : {}); - if (e !== se) return; - if (!i?.ok) throw Error(i?.error || M("toast.failedSetWorkflowRoots", "Failed to set workflow roots")); - let a = String(i?.data?.workflow_roots_text || t).trim(); - n.paths.workflowRoots = a, A = a, B(n), r("paths.workflowRoots"), E(M("toast.workflowRootsSaved", "Workflow roots saved"), "success", 1800); + let r = await fe(t, ce ? { signal: ce.signal } : {}); + if (e !== A) return; + if (!r?.ok) throw Error(r?.error || M("toast.failedSetWorkflowRoots", "Failed to set workflow roots")); + let a = String(r?.data?.workflow_roots_text || t).trim(); + n.paths.workflowRoots = a, ae = a, z(n), i("paths.workflowRoots"), g(M("toast.workflowRootsSaved", "Workflow roots saved"), "success", 1800); } catch (t) { - if (e !== se || String(t?.name || "") === "AbortError" || String(t?.code || "") === "ABORTED") return; - n.paths.workflowRoots = A, B(n), r("paths.workflowRoots"), E(t?.message || M("toast.failedSetWorkflowRoots", "Failed to set workflow roots"), "error"); + if (e !== A || String(t?.name || "") === "AbortError" || String(t?.code || "") === "ABORTED") return; + n.paths.workflowRoots = ae, z(n), i("paths.workflowRoots"), g(t?.message || M("toast.failedSetWorkflowRoots", "Failed to set workflow roots"), "error"); } }, 700); } }); try { - ge().then((e) => { + de().then((e) => { if (!e?.ok) return; let t = String(e?.data?.workflow_roots_text || "").trim(); - n.paths = n.paths || {}, n.paths.workflowRoots !== t && (n.paths.workflowRoots = t, A = t, B(n), r("paths.workflowRoots")); + n.paths = n.paths || {}, n.paths.workflowRoots !== t && (n.paths.workflowRoots = t, ae = t, z(n), i("paths.workflowRoots")); }).catch(() => {}); } catch (e) { console.debug?.(e); } - let ue = t().map((e) => e.code), de = ["auto", ...ue]; + let pe = Se().map((e) => e.code), me = ["auto", ...pe]; e({ id: `${W}.Language`, category: s(M("cat.advanced"), M("setting.language.name", "Language")), name: M("setting.language.name", "Majoor: Language"), tooltip: "Use auto to detect and follow ComfyUI language. Or choose a fixed language for Majoor only.", type: "combo", - defaultValue: n.i18n?.followComfyLanguage ? "auto" : x(), - options: de, + defaultValue: n.i18n?.followComfyLanguage ? "auto" : se(), + options: me, onChange: (e) => { - n.i18n = n.i18n || {}, e === "auto" ? (n.i18n.followComfyLanguage = !0, xe(!0), oe(a), B(n), r("language")) : ue.includes(e) && (n.i18n.followComfyLanguage = !1, xe(!1), he(e), B(n), r("language")); + n.i18n = n.i18n || {}, e === "auto" ? (n.i18n.followComfyLanguage = !0, ve(!0), he(o), z(n), i("language")) : pe.includes(e) && (n.i18n.followComfyLanguage = !1, ve(!1), ue(e), z(n), i("language")); } }), e({ id: `${W}.ProbeBackend.Mode`, @@ -2287,7 +2287,7 @@ function on(e, n, r, a) { name: M("setting.probe.mode.name"), tooltip: M("setting.probe.mode.desc") + " (env: MAJOOR_MEDIA_PROBE_BACKEND)", type: "combo", - defaultValue: n.probeBackend?.mode || R.probeBackend.mode, + defaultValue: n.probeBackend?.mode || L.probeBackend.mode, options: [ "auto", "exiftool", @@ -2295,13 +2295,13 @@ function on(e, n, r, a) { "both" ], onChange: (e) => { - let t = Ae(e, [ + let t = je(e, [ "auto", "exiftool", "ffprobe", "both" - ], R.probeBackend.mode); - n.probeBackend = n.probeBackend || {}, n.probeBackend.mode = t, B(n), V(n), r("probeBackend.mode"), o(t).catch(() => {}); + ], L.probeBackend.mode); + n.probeBackend = n.probeBackend || {}, n.probeBackend.mode = t, z(n), B(n), i("probeBackend.mode"), ee(t).catch(() => {}); } }), e({ id: `${W}.MetadataFallback.Image`, @@ -2309,18 +2309,18 @@ function on(e, n, r, a) { name: "Majoor: Metadata Fallback (Images)", tooltip: "Enable Pillow fallback when ExifTool is missing or fails.", type: "boolean", - defaultValue: n.metadataFallback?.image ?? R.metadataFallback.image, + defaultValue: n.metadataFallback?.image ?? L.metadataFallback.image, onChange: async (e) => { - let t = !!e, i = !!(n.metadataFallback?.image ?? R.metadataFallback.image); - n.metadataFallback = n.metadataFallback || {}, n.metadataFallback.image = t, B(n), r("metadataFallback.image"); + let t = !!e, a = !!(n.metadataFallback?.image ?? L.metadataFallback.image); + n.metadataFallback = n.metadataFallback || {}, n.metadataFallback.image = t, z(n), i("metadataFallback.image"); try { - let e = await Ee({ + let e = await r({ image: t, - media: n.metadataFallback?.media ?? R.metadataFallback.media + media: n.metadataFallback?.media ?? L.metadataFallback.media }); if (!e?.ok) throw Error(e?.error || M("toast.failedUpdateMetadataFallback", "Failed to update metadata fallback settings")); } catch (e) { - n.metadataFallback.image = i, B(n), r("metadataFallback.image"), E(e?.message || M("toast.failedUpdateMetadataFallback", "Failed to update metadata fallback settings"), "error"); + n.metadataFallback.image = a, z(n), i("metadataFallback.image"), g(e?.message || M("toast.failedUpdateMetadataFallback", "Failed to update metadata fallback settings"), "error"); } } }), e({ @@ -2329,28 +2329,28 @@ function on(e, n, r, a) { name: "Majoor: Metadata Fallback (Audio/Video)", tooltip: "Enable hachoir fallback when ffprobe is missing or fails.", type: "boolean", - defaultValue: n.metadataFallback?.media ?? R.metadataFallback.media, + defaultValue: n.metadataFallback?.media ?? L.metadataFallback.media, onChange: async (e) => { - let t = !!e, i = !!(n.metadataFallback?.media ?? R.metadataFallback.media); - n.metadataFallback = n.metadataFallback || {}, n.metadataFallback.media = t, B(n), r("metadataFallback.media"); + let t = !!e, a = !!(n.metadataFallback?.media ?? L.metadataFallback.media); + n.metadataFallback = n.metadataFallback || {}, n.metadataFallback.media = t, z(n), i("metadataFallback.media"); try { - let e = await Ee({ - image: n.metadataFallback?.image ?? R.metadataFallback.image, + let e = await r({ + image: n.metadataFallback?.image ?? L.metadataFallback.image, media: t }); if (!e?.ok) throw Error(e?.error || M("toast.failedUpdateMetadataFallback", "Failed to update metadata fallback settings")); } catch (e) { - n.metadataFallback.media = i, B(n), r("metadataFallback.media"), E(e?.message || M("toast.failedUpdateMetadataFallback", "Failed to update metadata fallback settings"), "error"); + n.metadataFallback.media = a, z(n), i("metadataFallback.media"), g(e?.message || M("toast.failedUpdateMetadataFallback", "Failed to update metadata fallback settings"), "error"); } } }); try { - m().then((e) => { + _e().then((e) => { if (!e?.ok || !e?.data?.prefs) return; - let t = e.data.prefs || {}, i = !!(t.image ?? R.metadataFallback.image), a = !!(t.media ?? R.metadataFallback.media); + let t = e.data.prefs || {}, r = !!(t.image ?? L.metadataFallback.image), a = !!(t.media ?? L.metadataFallback.media); n.metadataFallback = n.metadataFallback || {}; let o = !1; - n.metadataFallback.image !== i && (n.metadataFallback.image = i, o = !0), n.metadataFallback.media !== a && (n.metadataFallback.media = a, o = !0), o && (B(n), r("metadataFallback")); + n.metadataFallback.image !== r && (n.metadataFallback.image = r, o = !0), n.metadataFallback.media !== a && (n.metadataFallback.media = a, o = !0), o && (z(n), i("metadataFallback")); }).catch(() => {}); } catch (e) { console.debug?.(e); @@ -2368,7 +2368,7 @@ function on(e, n, r, a) { step: 1e3 }, onChange: (e) => { - n.db = n.db || {}, n.db.timeoutMs = Math.max(1e3, Math.min(3e4, Math.round(I(e, 5e3)))), B(n), V(n), r("db.timeoutMs"); + n.db = n.db || {}, n.db.timeoutMs = Math.max(1e3, Math.min(3e4, Math.round(F(e, 5e3)))), z(n), B(n), i("db.timeoutMs"); } }), e({ id: `${W}.Db.MaxConnections`, @@ -2383,7 +2383,7 @@ function on(e, n, r, a) { step: 1 }, onChange: (e) => { - n.db = n.db || {}, n.db.maxConnections = Math.max(1, Math.min(100, Math.round(I(e, 10)))), B(n), V(n), r("db.maxConnections"); + n.db = n.db || {}, n.db.maxConnections = Math.max(1, Math.min(100, Math.round(F(e, 10)))), z(n), B(n), i("db.maxConnections"); } }), e({ id: `${W}.Db.QueryTimeout`, @@ -2398,7 +2398,7 @@ function on(e, n, r, a) { step: 500 }, onChange: (e) => { - n.db = n.db || {}, n.db.queryTimeoutMs = Math.max(500, Math.min(1e4, Math.round(I(e, 1e3)))), B(n), V(n), r("db.queryTimeoutMs"); + n.db = n.db || {}, n.db.queryTimeoutMs = Math.max(500, Math.min(1e4, Math.round(F(e, 1e3)))), z(n), B(n), i("db.queryTimeoutMs"); } }), e({ id: `${W}.Observability.Enabled`, @@ -2408,7 +2408,7 @@ function on(e, n, r, a) { type: "boolean", defaultValue: !!n.observability?.enabled, onChange: (e) => { - n.observability = n.observability || {}, n.observability.enabled = !!e, B(n), V(n), r("observability.enabled"); + n.observability = n.observability || {}, n.observability.enabled = !!e, z(n), B(n), i("observability.enabled"); } }), e({ id: `${W}.Observability.RuntimeDashboardMode`, @@ -2416,19 +2416,19 @@ function on(e, n, r, a) { name: "Majoor: Runtime metrics badge", tooltip: "Controls the small DB/enrichment/watcher metrics badge in the Assets Manager panel.", type: "combo", - defaultValue: n.observability?.runtimeDashboardMode || R.observability.runtimeDashboardMode, + defaultValue: n.observability?.runtimeDashboardMode || L.observability.runtimeDashboardMode, options: [ "autoHide30", "always", "hidden" ], onChange: (e) => { - let t = Ae(e, [ + let t = je(e, [ "autoHide30", "always", "hidden" - ], R.observability.runtimeDashboardMode); - n.observability = n.observability || {}, n.observability.runtimeDashboardMode = t, B(n), r("observability.runtimeDashboardMode"); + ], L.observability.runtimeDashboardMode); + n.observability = n.observability || {}, n.observability.runtimeDashboardMode = t, z(n), i("observability.runtimeDashboardMode"); } }), e({ id: `${W}.Observability.VerboseErrors`, @@ -2438,7 +2438,7 @@ function on(e, n, r, a) { type: "boolean", defaultValue: !!n.observability?.verboseErrors, onChange: (e) => { - n.observability = n.observability || {}, n.observability.verboseErrors = !!e, B(n), V(n), r("observability.verboseErrors"); + n.observability = n.observability || {}, n.observability.verboseErrors = !!e, z(n), B(n), i("observability.verboseErrors"); } }), e({ id: `${W}.Observability.VerboseRouteRegistrationLogs`, @@ -2446,21 +2446,21 @@ function on(e, n, r, a) { name: "Majoor: Verbose route registration logs", tooltip: "When disabled, Majoor prints a compact startup summary instead of listing every registered API route. Takes effect on the next backend restart.", type: "boolean", - defaultValue: !!(n.observability?.verboseRouteRegistrationLogs ?? R.observability?.verboseRouteRegistrationLogs ?? !1), + defaultValue: !!(n.observability?.verboseRouteRegistrationLogs ?? L.observability?.verboseRouteRegistrationLogs ?? !1), onChange: async (e) => { - let t = !!e, i = !!(n.observability?.verboseRouteRegistrationLogs ?? R.observability?.verboseRouteRegistrationLogs ?? !1); - n.observability = n.observability || {}, n.observability.verboseRouteRegistrationLogs = t, B(n), r("observability.verboseRouteRegistrationLogs"); + let t = !!e, r = !!(n.observability?.verboseRouteRegistrationLogs ?? L.observability?.verboseRouteRegistrationLogs ?? !1); + n.observability = n.observability || {}, n.observability.verboseRouteRegistrationLogs = t, z(n), i("observability.verboseRouteRegistrationLogs"); try { - let e = await we(t); + let e = await a(t); if (!e?.ok) throw Error(e?.error || "Failed to update route logging settings"); } catch (e) { - n.observability.verboseRouteRegistrationLogs = i, B(n), r("observability.verboseRouteRegistrationLogs"), E(e?.message || "Failed to update route logging settings", "error"); + n.observability.verboseRouteRegistrationLogs = r, z(n), i("observability.verboseRouteRegistrationLogs"), g(e?.message || "Failed to update route logging settings", "error"); } } }), (async () => { try { - let e = !!(await p())?.data?.prefs?.enabled; - n.observability = n.observability || {}, n.observability.verboseRouteRegistrationLogs !== e && (n.observability.verboseRouteRegistrationLogs = e, B(n), r("observability.verboseRouteRegistrationLogs")); + let e = !!(await ne())?.data?.prefs?.enabled; + n.observability = n.observability || {}, n.observability.verboseRouteRegistrationLogs !== e && (n.observability.verboseRouteRegistrationLogs = e, z(n), i("observability.verboseRouteRegistrationLogs")); } catch (e) { console.debug?.(e); } @@ -2470,27 +2470,27 @@ function on(e, n, r, a) { name: "Majoor: Verbose startup logs", tooltip: "When disabled, Majoor suppresses most informational bootstrap logs during backend startup while keeping warnings and errors. Takes effect on the next backend restart.", type: "boolean", - defaultValue: !!(n.observability?.verboseStartupLogs ?? R.observability?.verboseStartupLogs ?? !1), + defaultValue: !!(n.observability?.verboseStartupLogs ?? L.observability?.verboseStartupLogs ?? !1), onChange: async (e) => { - let t = !!e, i = !!(n.observability?.verboseStartupLogs ?? R.observability?.verboseStartupLogs ?? !1); - n.observability = n.observability || {}, n.observability.verboseStartupLogs = t, B(n), r("observability.verboseStartupLogs"); + let t = !!e, r = !!(n.observability?.verboseStartupLogs ?? L.observability?.verboseStartupLogs ?? !1); + n.observability = n.observability || {}, n.observability.verboseStartupLogs = t, z(n), i("observability.verboseStartupLogs"); try { - let e = await c(t); + let e = await y(t); if (!e?.ok) throw Error(e?.error || "Failed to update startup logging settings"); } catch (e) { - n.observability.verboseStartupLogs = i, B(n), r("observability.verboseStartupLogs"), E(e?.message || "Failed to update startup logging settings", "error"); + n.observability.verboseStartupLogs = r, z(n), i("observability.verboseStartupLogs"), g(e?.message || "Failed to update startup logging settings", "error"); } } }), (async () => { try { - let e = !!(await re())?.data?.prefs?.enabled; - n.observability = n.observability || {}, n.observability.verboseStartupLogs !== e && (n.observability.verboseStartupLogs = e, B(n), r("observability.verboseStartupLogs")); + let e = !!(await x())?.data?.prefs?.enabled; + n.observability = n.observability || {}, n.observability.verboseStartupLogs !== e && (n.observability.verboseStartupLogs = e, z(n), i("observability.verboseStartupLogs")); } catch (e) { console.debug?.(e); } })(); { - let t = "HuggingFace Token", i = "", a = null, o = 0, c = !!n.ai?.huggingFaceTokenVisible, l = () => { + let t = "HuggingFace Token", r = "", a = null, o = 0, c = !!n.ai?.huggingFaceTokenVisible, u = () => { try { let e = Array.from(document.querySelectorAll("input[data-mjr-hf-token=\"1\"]")); for (let t of e) try { @@ -2501,7 +2501,7 @@ function on(e, n, r, a) { } catch (e) { console.debug?.(e); } - }, u = (e) => { + }, d = (e) => { try { let t = String(e || "").trim(); if (!t) return; @@ -2524,7 +2524,7 @@ function on(e, n, r, a) { defaultValue: c, onChange: (e) => { let t = !!e; - c = t, n.ai = n.ai || {}, n.ai.huggingFaceTokenVisible = t, B(n), r("ai.huggingFaceTokenVisible"), setTimeout(l, 0); + c = t, n.ai = n.ai || {}, n.ai.huggingFaceTokenVisible = t, z(n), i("ai.huggingFaceTokenVisible"), setTimeout(u, 0); } }), e({ id: `${W}.AI.HuggingFaceToken`, @@ -2542,7 +2542,7 @@ function on(e, n, r, a) { }, onChange: (e) => { let t = String(e || "").trim(); - if (t !== i) { + if (t !== r) { try { a &&= (clearTimeout(a), null); } catch (e) { @@ -2552,21 +2552,21 @@ function on(e, n, r, a) { a = null; let e = ++o; try { - let n = await ce(t); + let n = await we(t); if (e !== o) return; if (!n?.ok) throw Error(n?.error || "Failed to update HuggingFace token"); - i = t, r("ai.huggingFaceToken"), t ? E("HuggingFace token saved", "success") : E("HuggingFace token cleared", "success", void 0, { noHistory: !0 }); + r = t, i("ai.huggingFaceToken"), t ? g("HuggingFace token saved", "success") : g("HuggingFace token cleared", "success", void 0, { noHistory: !0 }); } catch (t) { if (e !== o) return; - E(t?.message || "Failed to update HuggingFace token", "error"); + g(t?.message || "Failed to update HuggingFace token", "error"); } }, 900); } } - }), setTimeout(l, 0), (async () => { + }), setTimeout(u, 0), (async () => { try { - let e = (await ne())?.data?.prefs || {}, t = !!e?.has_token, n = String(e?.token_hint || "").trim(), r = t ? `Configured ${n || "(saved)"}` : "Paste HuggingFace token (hf_...)"; - u(r); + let e = (await l())?.data?.prefs || {}, t = !!e?.has_token, n = String(e?.token_hint || "").trim(), r = t ? `Configured ${n || "(saved)"}` : "Paste HuggingFace token (hf_...)"; + d(r); } catch (e) { console.debug?.(e); } @@ -2576,21 +2576,21 @@ function on(e, n, r, a) { name: "Majoor: Verbose AI logs", tooltip: "Enable detailed HuggingFace/SigLIP2/X-CLIP logs and progress bars during model download/loading.", type: "boolean", - defaultValue: !!(n.ai?.verboseAiLogs ?? R.ai?.verboseAiLogs ?? !1), + defaultValue: !!(n.ai?.verboseAiLogs ?? L.ai?.verboseAiLogs ?? !1), onChange: async (e) => { - let t = !!e, i = !!(n.ai?.verboseAiLogs ?? R.ai?.verboseAiLogs ?? !1); - n.ai = n.ai || {}, n.ai.verboseAiLogs = t, B(n), r("ai.verboseAiLogs"); + let t = !!e, r = !!(n.ai?.verboseAiLogs ?? L.ai?.verboseAiLogs ?? !1); + n.ai = n.ai || {}, n.ai.verboseAiLogs = t, z(n), i("ai.verboseAiLogs"); try { - let e = await ve(t); + let e = await le(t); if (!e?.ok) throw Error(e?.error || "Failed to update AI logging settings"); } catch (e) { - n.ai.verboseAiLogs = i, B(n), r("ai.verboseAiLogs"), E(e?.message || "Failed to update AI logging settings", "error"); + n.ai.verboseAiLogs = r, z(n), i("ai.verboseAiLogs"), g(e?.message || "Failed to update AI logging settings", "error"); } } }), (async () => { try { - let e = !!(await g())?.data?.prefs?.enabled; - n.ai = n.ai || {}, n.ai.verboseAiLogs !== e && (n.ai.verboseAiLogs = e, B(n), r("ai.verboseAiLogs")); + let e = !!(await S())?.data?.prefs?.enabled; + n.ai = n.ai || {}, n.ai.verboseAiLogs !== e && (n.ai.verboseAiLogs = e, z(n), i("ai.verboseAiLogs")); } catch (e) { console.debug?.(e); } @@ -2605,7 +2605,7 @@ function on(e, n, r, a) { defaultValue: "Loading vector status..." }), (async () => { try { - let e = await i(); + let e = await d(); e?.ok ? console.debug?.("[Majoor] Vector status:", `${e.data?.total || 0} assets indexed | Model: ${e.data?.model || "N/A"}`) : console.debug?.("[Majoor] Vector status unavailable"); } catch (e) { console.debug?.("[Majoor] Vector status fetch failed", e); @@ -2628,14 +2628,14 @@ function on(e, n, r, a) { forceStore: !0 } }; try { - E(M("toast.vectorBackfillStarting", "Starting vector backfill... This may take a while."), "info", void 0, { history: { + g(M("toast.vectorBackfillStarting", "Starting vector backfill... This may take a while."), "info", void 0, { history: { ...t.history, status: "started", detail: "Starting vector backfill... This may take a while." } }); - let e = await b(64, { onProgress: (e) => { + let e = await f(64, { onProgress: (e) => { let n = String(e?.status || "running").toLowerCase() || "running", r = e?.progress || e?.result || {}, i = Number(r?.candidates ?? r?.processed ?? 0), a = Number(r?.indexed ?? 0), o = Number(r?.skipped ?? 0), s = Number(r?.errors ?? 0), c = Math.max(i, a + o + s), l = c > 0 ? Math.round((a + o + s) / c * 100) : null, u = n === "queued" ? "Vector backfill queued" : `Candidates ${i}, indexed ${a}, skipped ${o}, errors ${s}`; - h({ + m({ summary: "Vector Backfill", detail: u }, n === "failed" ? "error" : n === "succeeded" ? "success" : "info", 0, { history: { @@ -2654,48 +2654,48 @@ function on(e, n, r, a) { } }); } }); if (e?.ok) { - let n = e.data || {}, r = String(n?.status || "").toLowerCase(), a = !!n?.pending || [ + let n = e.data || {}, r = String(n?.status || "").toLowerCase(), i = !!n?.pending || [ "queued", "running", "pending" - ].includes(r), o = n?.progress || {}, s = Number(n?.processed ?? o?.candidates ?? 0), c = Number(n?.indexed ?? o?.indexed ?? 0), l = Number(n?.skipped ?? o?.skipped ?? 0); - if (a) { + ].includes(r), a = n?.progress || {}, o = Number(n?.processed ?? a?.candidates ?? 0), s = Number(n?.indexed ?? a?.indexed ?? 0), c = Number(n?.skipped ?? a?.skipped ?? 0); + if (i) { let e = String(n?.job_id || "").trim(); - E(M("toast.vectorBackfillRunning", "Vector backfill still running in background{job}.", { job: e ? ` (job ${e.slice(0, 8)})` : "" }), "info", void 0, { history: { + g(M("toast.vectorBackfillRunning", "Vector backfill still running in background{job}.", { job: e ? ` (job ${e.slice(0, 8)})` : "" }), "info", void 0, { history: { ...t.history, status: "running", detail: `Vector backfill still running in background${e ? ` (${e.slice(0, 8)})` : ""}.`, progress: { - current: c + l, - total: Math.max(s, c + l), - percent: Math.max(s, c + l) > 0 ? Math.round((c + l) / Math.max(s, c + l) * 100) : null, - indexed: c, - skipped: l, + current: s + c, + total: Math.max(o, s + c), + percent: Math.max(o, s + c) > 0 ? Math.round((s + c) / Math.max(o, s + c) * 100) : null, + indexed: s, + skipped: c, label: "running" } } }); } else { let e = M("toast.vectorBackfillComplete", "Vector backfill complete! Processed: {processed}, Indexed: {indexed}, Skipped: {skipped}", { - processed: s, - indexed: c, - skipped: l + processed: o, + indexed: s, + skipped: c }); - E(e, "success", void 0, { history: { + g(e, "success", void 0, { history: { ...t.history, status: "succeeded", - detail: `Processed ${s}, indexed ${c}, skipped ${l}`, + detail: `Processed ${o}, indexed ${s}, skipped ${c}`, progress: { - current: s, - total: s, - percent: s > 0 ? 100 : null, - indexed: c, - skipped: l, + current: o, + total: o, + percent: o > 0 ? 100 : null, + indexed: s, + skipped: c, label: "done" } } }); } try { - let e = await i(); + let e = await d(); e?.ok && console.debug?.("[Majoor] Vector stats after backfill:", e.data); } catch (e) { console.debug?.("[Majoor] Failed to refresh vector stats:", e); @@ -2703,7 +2703,7 @@ function on(e, n, r, a) { } else throw Error(e?.error || M("toast.vectorBackfillFailedGeneric", "Backfill failed")); } catch (e) { let n = e?.message || String(e || M("status.unknown", "unknown")); - E(M("toast.vectorBackfillFailedDetail", "Vector backfill failed: {error}", { error: n }), "error", void 0, { history: { + g(M("toast.vectorBackfillFailedDetail", "Vector backfill failed: {error}", { error: n }), "error", void 0, { history: { ...t.history, status: "failed", detail: n @@ -2730,16 +2730,16 @@ function ln(e, t, n) { onChange: async (e) => { t.ai = t.ai || {}; let r = !!(t.ai.vectorSearchEnabled ?? !0), i = !!e; - t.ai.vectorSearchEnabled = i, B(t), V(t), n("ai.vectorSearchEnabled"); + t.ai.vectorSearchEnabled = i, z(t), B(t), n("ai.vectorSearchEnabled"); try { - let e = await s(i); + let e = await me(i); if (!e?.ok) { - t.ai.vectorSearchEnabled = r, B(t), V(t), n("ai.vectorSearchEnabled"), E(e?.error || "Failed to update AI vector search setting", "error"); + t.ai.vectorSearchEnabled = r, z(t), B(t), n("ai.vectorSearchEnabled"), g(e?.error || "Failed to update AI vector search setting", "error"); return; } - E(i ? "AI semantic search enabled" : "AI semantic search disabled", "info", 2200); + g(i ? "AI semantic search enabled" : "AI semantic search disabled", "info", 2200); } catch (e) { - t.ai.vectorSearchEnabled = r, B(t), V(t), n("ai.vectorSearchEnabled"), E(e?.message || "Failed to update AI vector search setting", "error"); + t.ai.vectorSearchEnabled = r, z(t), B(t), n("ai.vectorSearchEnabled"), g(e?.message || "Failed to update AI vector search setting", "error"); } } }), e({ @@ -2752,16 +2752,16 @@ function ln(e, t, n) { onChange: async (e) => { t.ai = t.ai || {}; let r = !!(t.ai.vectorCaptionOnIndex ?? !1), i = !!e; - t.ai.vectorCaptionOnIndex = i, B(t), V(t), n("ai.vectorCaptionOnIndex"); + t.ai.vectorCaptionOnIndex = i, z(t), B(t), n("ai.vectorCaptionOnIndex"); try { - let e = await s({ caption_on_index: i }); + let e = await me({ caption_on_index: i }); if (!e?.ok) { - t.ai.vectorCaptionOnIndex = r, B(t), V(t), n("ai.vectorCaptionOnIndex"), E(e?.error || "Failed to update AI caption indexing setting", "error"); + t.ai.vectorCaptionOnIndex = r, z(t), B(t), n("ai.vectorCaptionOnIndex"), g(e?.error || "Failed to update AI caption indexing setting", "error"); return; } - i && E("AI captions during indexing enabled", "info", 2600); + i && g("AI captions during indexing enabled", "info", 2600); } catch (e) { - t.ai.vectorCaptionOnIndex = r, B(t), V(t), n("ai.vectorCaptionOnIndex"), E(e?.message || "Failed to update AI caption indexing setting", "error"); + t.ai.vectorCaptionOnIndex = r, z(t), B(t), n("ai.vectorCaptionOnIndex"), g(e?.message || "Failed to update AI caption indexing setting", "error"); } } }), e({ @@ -2774,16 +2774,16 @@ function ln(e, t, n) { onChange: async (e) => { t.ai = t.ai || {}; let r = !!(t.ai.vectorIndexOnScan ?? !1), i = !!e; - t.ai.vectorIndexOnScan = i, B(t), V(t), n("ai.vectorIndexOnScan"); + t.ai.vectorIndexOnScan = i, z(t), B(t), n("ai.vectorIndexOnScan"); try { - let e = await s({ index_on_scan: i }); + let e = await me({ index_on_scan: i }); if (!e?.ok) { - t.ai.vectorIndexOnScan = r, B(t), V(t), n("ai.vectorIndexOnScan"), E(e?.error || "Failed to update vector scan indexing", "error"); + t.ai.vectorIndexOnScan = r, z(t), B(t), n("ai.vectorIndexOnScan"), g(e?.error || "Failed to update vector scan indexing", "error"); return; } - E(i ? "Vector indexing during scans enabled" : "Vector indexing during scans disabled", "info", 2400); + g(i ? "Vector indexing during scans enabled" : "Vector indexing during scans disabled", "info", 2400); } catch (e) { - t.ai.vectorIndexOnScan = r, B(t), V(t), n("ai.vectorIndexOnScan"), E(e?.message || "Failed to update vector scan indexing", "error"); + t.ai.vectorIndexOnScan = r, z(t), B(t), n("ai.vectorIndexOnScan"), g(e?.message || "Failed to update vector scan indexing", "error"); } } }), e({ @@ -2801,12 +2801,12 @@ function ln(e, t, n) { onChange: async (e) => { t.ai = t.ai || {}; let r = Number(t.ai.vectorConcurrency || 1), i = Math.max(1, Math.min(16, Math.floor(Number(e) || 1))); - t.ai.vectorConcurrency = i, B(t), V(t), n("ai.vectorConcurrency"); + t.ai.vectorConcurrency = i, z(t), B(t), n("ai.vectorConcurrency"); try { - let e = await s({ concurrency: i }); - e?.ok || (t.ai.vectorConcurrency = r, B(t), V(t), n("ai.vectorConcurrency"), E(e?.error || "Failed to update vector concurrency", "error")); + let e = await me({ concurrency: i }); + e?.ok || (t.ai.vectorConcurrency = r, z(t), B(t), n("ai.vectorConcurrency"), g(e?.error || "Failed to update vector concurrency", "error")); } catch (e) { - t.ai.vectorConcurrency = r, B(t), V(t), n("ai.vectorConcurrency"), E(e?.message || "Failed to update vector concurrency", "error"); + t.ai.vectorConcurrency = r, z(t), B(t), n("ai.vectorConcurrency"), g(e?.message || "Failed to update vector concurrency", "error"); } } }), e({ @@ -2819,16 +2819,16 @@ function ln(e, t, n) { onChange: async (e) => { t.ai = t.ai || {}; let r = !!(t.ai.vectorUnloadAfterUse ?? !1), i = !!e; - t.ai.vectorUnloadAfterUse = i, B(t), V(t), n("ai.vectorUnloadAfterUse"); + t.ai.vectorUnloadAfterUse = i, z(t), B(t), n("ai.vectorUnloadAfterUse"); try { - let e = await s({ unload_after_use: i }); + let e = await me({ unload_after_use: i }); if (!e?.ok) { - t.ai.vectorUnloadAfterUse = r, B(t), V(t), n("ai.vectorUnloadAfterUse"), E(e?.error || "Failed to update model unload setting", "error"); + t.ai.vectorUnloadAfterUse = r, z(t), B(t), n("ai.vectorUnloadAfterUse"), g(e?.error || "Failed to update model unload setting", "error"); return; } - E(i ? "AI model unload after use enabled" : "AI model unload after use disabled", "info", 2400); + g(i ? "AI model unload after use enabled" : "AI model unload after use disabled", "info", 2400); } catch (e) { - t.ai.vectorUnloadAfterUse = r, B(t), V(t), n("ai.vectorUnloadAfterUse"), E(e?.message || "Failed to update model unload setting", "error"); + t.ai.vectorUnloadAfterUse = r, z(t), B(t), n("ai.vectorUnloadAfterUse"), g(e?.message || "Failed to update model unload setting", "error"); } } }), e({ @@ -2841,10 +2841,10 @@ function ln(e, t, n) { defaultValue: "Idle", onChange: async (e) => { if (String(e || "") === "Unload now") try { - let e = await _(); - E(e?.ok ? "Majoor AI model cache unloaded" : e?.error || "Failed to unload Majoor AI model cache", e?.ok ? "info" : "error", 2600); + let e = await b(); + g(e?.ok ? "Majoor AI model cache unloaded" : e?.error || "Failed to unload Majoor AI model cache", e?.ok ? "info" : "error", 2600); } catch (e) { - E(e?.message || "Failed to unload Majoor AI model cache", "error"); + g(e?.message || "Failed to unload Majoor AI model cache", "error"); } } }), e({ @@ -2853,14 +2853,14 @@ function ln(e, t, n) { name: M("setting.search.maxResults.name", "Max search results (client)"), tooltip: M("setting.search.maxResults.desc", "Maximum number of results requested per search. The backend still enforces MAJOOR_SEARCH_MAX_LIMIT; increase that env var if you need a higher hard cap."), type: "number", - defaultValue: Number(t.search?.maxResults || N.SEARCH_DEFAULT_LIMIT), + defaultValue: Number(t.search?.maxResults || j.SEARCH_DEFAULT_LIMIT), attrs: { min: 10, - max: N.MAX_PAGE_SIZE || 2e3, + max: j.MAX_PAGE_SIZE || 2e3, step: 1 }, onChange: (e) => { - t.search = t.search || {}, t.search.maxResults = Math.max(10, Math.min(N.MAX_PAGE_SIZE || 2e3, Number(e) || N.SEARCH_DEFAULT_LIMIT)), B(t), V(t), n("search.maxResults"); + t.search = t.search || {}, t.search.maxResults = Math.max(10, Math.min(j.MAX_PAGE_SIZE || 2e3, Number(e) || j.SEARCH_DEFAULT_LIMIT)), z(t), B(t), n("search.maxResults"); } }), e({ id: `${sn}.EnvVars.Reference`, @@ -2921,14 +2921,14 @@ function Tn(e) { } return !t.tooltip && typeof t.name == "string" && t.name.trim() && (t.tooltip = t.name.trim()), t; } -function En(e, t, n) { - let r = String(t?.id || "").trim(); - if (!r || wn.has(r)) return !1; - wn.add(r); +function En(e, n, r) { + let i = String(n?.id || "").trim(); + if (!i || wn.has(i)) return !1; + wn.add(i); try { - return S(e, r, n); + return t(e, i, r); } finally { - wn.delete(r); + wn.delete(i); } } function Dn(e, t) { @@ -2945,7 +2945,7 @@ function On(e) { try { return JSON.parse(JSON.stringify(e || {})); } catch { - return { ...R }; + return { ...L }; } } function kn(e, t, n, { wrapForComfy: r = !0 } = {}) { @@ -2953,7 +2953,7 @@ function kn(e, t, n, { wrapForComfy: r = !0 } = {}) { let n = Tn(e); n && i.push(r ? Dn(t, n) : n); }; - return At(a, e, n), Rt(a, e, n), Nt(a, e, n), Ft(a, e, n), rn(a, e, n), on(a, e, n, t), ln(a, e, n), i; + return jt(a, e, n), Rt(a, e, n), Nt(a, e, n), Ft(a, e, n), rn(a, e, n), on(a, e, n, t), ln(a, e, n), i; } function An(e, t) { if (e === t) return !0; @@ -2974,7 +2974,7 @@ function Nn(e, t, n) { String(e?.id || "").trim() && (En(n, e, t), typeof e?.onChange == "function" && e.onChange(t)); } function Pn(e, t, n, r) { - let i = !An(a(r, t.id, t.defaultValue), n); + let i = !An(w(r, t.id, t.defaultValue), n); e.disabled = !i, e.style.opacity = i ? "1" : "0.45"; } function Fn() { @@ -3017,27 +3017,27 @@ function In(e, t, n) { function Ln(e, t, { initRuntime: n = !1 } = {}) { if (Sn) typeof t == "function" && Sn.onAppliedListeners.add(t), e && !Sn.app && (Sn.app = e); else { - let n = z(); - n.i18n = n.i18n || {}, typeof n.i18n.followComfyLanguage == "boolean" ? xe(!!n.i18n.followComfyLanguage) : (n.i18n.followComfyLanguage = !0, xe(!0), B(n)); + let n = R(); + n.i18n = n.i18n || {}, typeof n.i18n.followComfyLanguage == "boolean" ? ve(!!n.i18n.followComfyLanguage) : (n.i18n.followComfyLanguage = !0, ve(!0), z(n)); let r = /* @__PURE__ */ new Set(); typeof t == "function" && r.add(t); let i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set(), o = () => { if (!i.size) return; let e = Array.from(i); i.clear(); - for (let t of e) ke("mjr-settings-changed", { key: t }, { warnPrefix: "[Majoor]" }); + for (let t of e) Ae("mjr-settings-changed", { key: t }, { warnPrefix: "[Majoor]" }); }, s = () => { if (!a.size) return; let e = Array.from(a); a.clear(); - for (let t of e) ke("mjr-settings-changed", { key: t }, { warnPrefix: "[Majoor]" }); - }, c = _t(o, 120), l = _t(s, 450), u = (e) => { + for (let t of e) Ae("mjr-settings-changed", { key: t }, { warnPrefix: "[Majoor]" }); + }, c = vt(o, 120), l = vt(s, 450), u = (e) => { typeof e == "string" && i.add(e), c(); }, d = (e) => { typeof e == "string" && a.add(e), l(); }, f = () => { - let e = z(); - Object.assign(n, e), V(n), u("storage"); + let e = R(); + Object.assign(n, e), B(n), u("storage"); }, p = (e) => { e && e.key === "mjrSettings" && e.newValue !== e.oldValue && f(); }; @@ -3070,14 +3070,14 @@ function Ln(e, t, { initRuntime: n = !1 } = {}) { } if (n && !Cn) { let t = e || Sn.app, n = Sn.settings; - oe(t), V(n), be(t), rt(), it(), at(), n?.watcher && typeof n.watcher.enabled == "boolean" && de(!!n.watcher.enabled).catch(() => {}), ht(), Cn = !0; + he(t), B(n), k(t), it(), at(), ot(), n?.watcher && typeof n.watcher.enabled == "boolean" && v(!!n.watcher.enabled).catch(() => {}), gt(), Cn = !0; } return Sn; } var Rn = (e, t) => Ln(e, t, { initRuntime: !0 }).settings, zn = (e, t) => { let n = Ln(e, t, { initRuntime: !1 }); - Object.assign(n.settings, z()); - let r = e || n.app, i = kn(n.settings, r, n.notifyApplied), a = kn(On(R), r, () => {}, { wrapForComfy: !1 }); + Object.assign(n.settings, R()); + let r = e || n.app, i = kn(n.settings, r, n.notifyApplied), a = kn(On(L), r, () => {}, { wrapForComfy: !1 }); return i.unshift(Dn(r, { id: mn, category: [ @@ -3092,10 +3092,10 @@ var Rn = (e, t) => Ln(e, t, { initRuntime: !0 }).settings, zn = (e, t) => { })), In(r, i, a), i; }; try { - let e = z(); - e?.watcher && typeof e.watcher.enabled == "boolean" && Se().then((e) => { - let t = !!e?.ok && !!e?.data?.enabled, n = z(); - n.watcher = n.watcher || {}, typeof t == "boolean" && t !== !!n.watcher.enabled && (n.watcher.enabled = t, B(n), ke("mjr-settings-changed", { key: "watcher.enabled" }, { warnPrefix: "[Majoor]" })); + let e = R(); + e?.watcher && typeof e.watcher.enabled == "boolean" && ye().then((e) => { + let t = !!e?.ok && !!e?.data?.enabled, n = R(); + n.watcher = n.watcher || {}, typeof t == "boolean" && t !== !!n.watcher.enabled && (n.watcher.enabled = t, z(n), Ae("mjr-settings-changed", { key: "watcher.enabled" }, { warnPrefix: "[Majoor]" })); }).catch(() => {}); } catch (e) { console.debug?.(e); @@ -3281,23 +3281,23 @@ function rr(e, t, n = null) { if (!m.length) return r.clearRect(0, 0, l, u), null; let v = m[0].x, y = m[0].y, b = m[0].x + m[0].w, x = m[0].y + m[0].h; for (let e of m) v = Math.min(v, e.x), y = Math.min(y, e.y), b = Math.max(b, e.x + e.w), x = Math.max(x, e.y + e.h); - let S = Math.max(1, b - v), C = Math.max(1, x - y), ee = v + S / 2, te = y + C / 2, w = i.view && typeof i.view == "object" ? i.view : Object.create(null), ne = er(w.zoom ?? 1, Yn, Xn), T = Math.max(1, S / ne), E = Math.max(1, C / ne), D = T / 2, O = E / 2, re = T >= S ? ee : er(w.centerX ?? ee, v + D, b - D), ie = E >= C ? te : er(w.centerY ?? te, y + O, x - O), ae = re - D, k = ie - O, A = Jn, j = Math.min((l - 12) / T, (u - 12) / E), oe = w.hoveredNodeId !== null && w.hoveredNodeId !== void 0 ? String(w.hoveredNodeId) : null; + let S = Math.max(1, b - v), C = Math.max(1, x - y), w = v + S / 2, ee = y + C / 2, T = i.view && typeof i.view == "object" ? i.view : Object.create(null), E = er(T.zoom ?? 1, Yn, Xn), te = Math.max(1, S / E), D = Math.max(1, C / E), O = te / 2, ne = D / 2, re = te >= S ? w : er(T.centerX ?? w, v + O, b - O), ae = D >= C ? ee : er(T.centerY ?? ee, y + ne, x - ne), k = re - O, oe = ae - ne, se = Jn, A = Math.min((l - 12) / te, (u - 12) / D), ce = T.hoveredNodeId !== null && T.hoveredNodeId !== void 0 ? String(T.hoveredNodeId) : null; r.clearRect(0, 0, l, u), r.fillStyle = "rgba(0,0,0,0.22)", r.fillRect(0, 0, l, u); - let se = (e, t) => ({ - x: A + (e - ae) * j, - y: A + (t - k) * j - }), ce = (e, t) => ({ - x: er(ae + (Number(e) - A) / j, v, b), - y: er(k + (Number(t) - A) / j, y, x) - }), ue = (e) => ({ - x: A + (e.x - ae) * j, - y: A + (e.y - k) * j, - w: Math.max(1, e.w * j), - h: Math.max(1, e.h * j) - }), M = (e) => Math.max(10, Math.min(24, Math.floor(Number(e) * .2))), de = (e, t, n) => { - let r = ue(e), i = M(r.h), a = n === "output" ? e.outputs : e.inputs, o = Math.max(1, Array.isArray(a) ? a.length : Number(e[`${n}Count`]) || 0), s = er(t, 0, Math.max(0, o - 1)); + let le = (e, t) => ({ + x: se + (e - k) * A, + y: se + (t - oe) * A + }), ue = (e, t) => ({ + x: er(k + (Number(e) - se) / A, v, b), + y: er(oe + (Number(t) - se) / A, y, x) + }), de = (e) => ({ + x: se + (e.x - k) * A, + y: se + (e.y - oe) * A, + w: Math.max(1, e.w * A), + h: Math.max(1, e.h * A) + }), fe = (e) => Math.max(10, Math.min(24, Math.floor(Number(e) * .2))), pe = (e, t, n) => { + let r = de(e), i = fe(r.h), a = n === "output" ? e.outputs : e.inputs, o = Math.max(1, Array.isArray(a) ? a.length : Number(e[`${n}Count`]) || 0), s = er(t, 0, Math.max(0, o - 1)); return r.y + i + (r.h - i) * (s + 1) / (o + 1); - }, fe = (e) => Array.isArray(e) && e.length >= 5 ? { + }, me = (e) => Array.isArray(e) && e.length >= 5 ? { originId: e[1], originSlot: Number(e[2]) || 0, targetId: e[3], @@ -3309,30 +3309,30 @@ function rr(e, t, n = null) { targetId: e.target_id ?? e.targetId ?? e.to ?? null, targetSlot: Number(e.target_slot ?? e.targetSlot ?? e.toSlot ?? 0) || 0, type: e.type - } : null, pe = (e) => { + } : null, j = (e) => { let t = String(e || "").toUpperCase(); return t.includes("IMAGE") ? "rgba(145,198,99,0.38)" : t.includes("LATENT") ? "rgba(89,178,118,0.38)" : t.includes("MODEL") ? "rgba(112,155,255,0.38)" : t.includes("CONDITIONING") ? "rgba(191,123,226,0.38)" : t.includes("CLIP") ? "rgba(220,178,77,0.38)" : t.includes("VAE") ? "rgba(72,184,214,0.38)" : t.includes("MASK") ? "rgba(190,190,190,0.36)" : "rgba(255,255,255,0.2)"; - }, me = () => { + }, he = () => { if (i.showLinks && c && c.length !== 0) { r.save(), r.globalAlpha = 1, r.lineWidth = 1; for (let e of c) { - let t = fe(e), n = t?.originId, i = t?.targetId; + let t = me(e), n = t?.originId, i = t?.targetId; if (n === null || i === null) continue; let a = h.get(String(n)), o = h.get(String(i)); if (!a || !o) continue; - let s = ue(a), c = ue(o), l = { + let s = de(a), c = de(o), l = { x: s.x + s.w, - y: de(a, t?.originSlot ?? 0, "output") + y: pe(a, t?.originSlot ?? 0, "output") }, u = { x: c.x, - y: de(o, t?.targetSlot ?? 0, "input") + y: pe(o, t?.targetSlot ?? 0, "input") }, d = Math.max(12, Math.min(80, Math.abs(u.x - l.x) * .35)); - r.strokeStyle = pe(t?.type), r.beginPath(), r.moveTo(l.x, l.y), r.bezierCurveTo(l.x + d, l.y, u.x - d, u.y, u.x, u.y), r.stroke(); + r.strokeStyle = j(t?.type), r.beginPath(), r.moveTo(l.x, l.y), r.bezierCurveTo(l.x + d, l.y, u.x - d, u.y, u.x, u.y), r.stroke(); } r.restore(); } - }, N = (e) => { - let { x: t, y: n, w: a, h: o } = ue(e), s = e.kind === "node", c = e.kind === "group", l = !!e.bypassed, u = !!e.errored, f = c ? .18 : l && i.renderBypassState ? .14 : .62, p = c ? .55 : l && i.renderBypassState ? .32 : .8, m = d(e.fill, f), h = d(e.stroke, p), g = s && i.showNodeLabels && a >= Zn && o >= Qn, _ = Math.max(2, Math.min(g ? 7 : 8, Math.floor(Math.min(a, o) * .08))), v = s ? M(o) : 0; + }, ge = (e) => { + let { x: t, y: n, w: a, h: o } = de(e), s = e.kind === "node", c = e.kind === "group", l = !!e.bypassed, u = !!e.errored, f = c ? .18 : l && i.renderBypassState ? .14 : .62, p = c ? .55 : l && i.renderBypassState ? .32 : .8, m = d(e.fill, f), h = d(e.stroke, p), g = s && i.showNodeLabels && a >= Zn && o >= Qn, _ = Math.max(2, Math.min(g ? 7 : 8, Math.floor(Math.min(a, o) * .08))), v = s ? fe(o) : 0; if (r.save(), r.globalAlpha = 1, typeof m == "string" && (m.startsWith("#") || m.startsWith("rgb") || m.startsWith("hsl")) ? (r.fillStyle = m, r.globalAlpha = f) : (r.fillStyle = typeof m == "string" ? m : "rgba(82,88,96,0.72)", r.globalAlpha = f), typeof r.roundRect == "function" ? (r.beginPath(), r.roundRect(t, n, a, o, _), r.fill()) : r.fillRect(t, n, a, o), r.restore(), s && (r.save(), r.fillStyle = d(e.stroke || e.fill, l ? .34 : .9), typeof r.roundRect == "function" ? (r.beginPath(), r.roundRect(t, n, a, v, [ _, _, @@ -3352,11 +3352,11 @@ function rr(e, t, n = null) { let n = Math.min(g ? 16 : 6, Number(e.inputCount) || 0), i = Math.min(g ? 16 : 6, Number(e.outputCount) || 0); r.save(), r.strokeStyle = "rgba(0,0,0,0.48)", r.lineWidth = 1; for (let i = 0; i < n; i += 1) { - let n = de(e, i, "input"); + let n = pe(e, i, "input"); r.fillStyle = tr(e.inputs?.[i]?.type, !1), r.beginPath(), r.arc(t, n, g ? 3 : 2.2, 0, Math.PI * 2), r.fill(), r.stroke(); } for (let n = 0; n < i; n += 1) { - let i = de(e, n, "output"); + let i = pe(e, n, "output"); r.fillStyle = tr(e.outputs?.[n]?.type, !0), r.beginPath(), r.arc(t + a, i, g ? 3 : 2.2, 0, Math.PI * 2), r.fill(), r.stroke(); } r.restore(); @@ -3369,7 +3369,7 @@ function rr(e, t, n = null) { } r.strokeStyle = "rgba(244,67,54,0.95)", r.lineWidth = 1.5, r.strokeRect(t - .5, n - .5, a + 1, o + 1); } - if (s && oe && String(e.id || "") === oe) { + if (s && ce && String(e.id || "") === ce) { try { r.setLineDash([]); } catch (e) { @@ -3400,24 +3400,24 @@ function rr(e, t, n = null) { let i = Math.max(24, a * .34); for (let a = 0; a < Math.min(8, e.inputs?.length || 0); a += 1) { let o = e.inputs[a], s = String(o?.label || o?.localized_name || o?.name || "").trim(); - s && r.fillText(nr(r, s, i), t + 7, de(e, a, "input") + n * .35, i); + s && r.fillText(nr(r, s, i), t + 7, pe(e, a, "input") + n * .35, i); } for (let o = 0; o < Math.min(8, e.outputs?.length || 0); o += 1) { let s = e.outputs[o], c = String(s?.label || s?.localized_name || s?.name || "").trim(); if (!c) continue; let l = nr(r, c, i); - r.fillText(l, t + a - 7 - Math.min(i, r.measureText(l).width), de(e, o, "output") + n * .35, i); + r.fillText(l, t + a - 7 - Math.min(i, r.measureText(l).width), pe(e, o, "output") + n * .35, i); } r.restore(); } }; - for (let e of m.filter((e) => e.kind === "group")) N(e); - me(); - for (let e of m.filter((e) => e.kind === "node")) N(e); + for (let e of m.filter((e) => e.kind === "group")) ge(e); + he(); + for (let e of m.filter((e) => e.kind === "node")) ge(e); if (i.showViewport) try { - let e = le(); + let e = ie(); if (e) { - let t = se(e.x0, e.y0), n = se(e.x1, e.y1), i = Math.min(t.x, n.x), a = Math.min(t.y, n.y), o = Math.abs(n.x - t.x), s = Math.abs(n.y - t.y); + let t = le(e.x0, e.y0), n = le(e.x1, e.y1), i = Math.min(t.x, n.x), a = Math.min(t.y, n.y), o = Math.abs(n.x - t.x), s = Math.abs(n.y - t.y); r.save(), r.globalAlpha = 1, r.strokeStyle = "rgba(255,255,255,0.9)", r.lineWidth = 1, r.strokeRect(i, a, o, s), r.restore(); } } catch (e) { @@ -3433,20 +3433,20 @@ function rr(e, t, n = null) { height: C }, resolvedView: { - zoom: ne, + zoom: E, centerX: re, - centerY: ie, - visibleW: T, - visibleH: E, - viewMinX: ae, - viewMinY: k, - pad: A, - renderScale: j + centerY: ae, + visibleW: te, + visibleH: D, + viewMinX: k, + viewMinY: oe, + pad: se, + renderScale: A }, - canvasToWorld: ce, - worldToCanvas: se, + canvasToWorld: ue, + worldToCanvas: le, hitTestNode: (e, t) => { - let n = ce(e, t); + let n = ue(e, t); for (let e = m.length - 1; e >= 0; --e) { let t = m[e]; if (t.kind === "node" && n.x >= t.x && n.x <= t.x + t.w && n.y >= t.y && n.y <= t.y + t.h) return t; @@ -3683,7 +3683,7 @@ function pr(e, t = null) { var mr = () => {}; function hr(e) { try { - return !!P?.[e]; + return !!N?.[e]; } catch { return !1; } @@ -4291,22 +4291,22 @@ function ai(e) { S != null && (n.temperature = S); let C = t.top_k?.value ?? t.top_k ?? null; C != null && (n.top_k = C); - let ee = t.top_p?.value ?? t.top_p ?? null; - ee != null && (n.top_p = ee); - let te = t.repetition_penalty?.value ?? t.repetition_penalty ?? null; - te != null && (n.repetition_penalty = te); - let w = t.max_new_tokens?.value ?? t.max_new_tokens ?? null; - w != null && (n.max_new_tokens = w); - let ne = t.device?.value ?? t.device ?? null; - ne != null && String(ne).trim() && (n.device = String(ne).trim()); - let T = t.voice_preset?.value ?? t.voice_preset ?? null; - T != null && String(T).trim() && (n.voice_preset = String(T).trim()); - let E = t.instruct?.value ?? t.instruct ?? null; - E != null && String(E).trim() && (n.instruct = String(E).trim()); - let D = t.dtype?.value ?? t.dtype ?? null; - D != null && String(D).trim() && (n.dtype = String(D).trim()); - let O = t.attn_implementation?.value ?? t.attn_implementation ?? null; - O != null && String(O).trim() && (n.attn_implementation = String(O).trim()); + let w = t.top_p?.value ?? t.top_p ?? null; + w != null && (n.top_p = w); + let ee = t.repetition_penalty?.value ?? t.repetition_penalty ?? null; + ee != null && (n.repetition_penalty = ee); + let T = t.max_new_tokens?.value ?? t.max_new_tokens ?? null; + T != null && (n.max_new_tokens = T); + let E = t.device?.value ?? t.device ?? null; + E != null && String(E).trim() && (n.device = String(E).trim()); + let te = t.voice_preset?.value ?? t.voice_preset ?? null; + te != null && String(te).trim() && (n.voice_preset = String(te).trim()); + let D = t.instruct?.value ?? t.instruct ?? null; + D != null && String(D).trim() && (n.instruct = String(D).trim()); + let O = t.dtype?.value ?? t.dtype ?? null; + O != null && String(O).trim() && (n.dtype = String(O).trim()); + let ne = t.attn_implementation?.value ?? t.attn_implementation ?? null; + ne != null && String(ne).trim() && (n.attn_implementation = String(ne).trim()); let re = t.x_vector_only_mode?.value ?? t.x_vector_only_mode ?? null; re != null && (n.x_vector_only_mode = re); let ie = t.use_torch_compile?.value ?? t.use_torch_compile ?? null; @@ -4315,32 +4315,32 @@ function ai(e) { ae != null && (n.use_cuda_graphs = ae); let k = t.compile_mode?.value ?? t.compile_mode ?? null; k != null && String(k).trim() && (n.compile_mode = String(k).trim()); - let A = t.enable_chunking?.value ?? t.enable_chunking ?? null; - A != null && (n.enable_chunking = A); - let j = t.max_chars_per_chunk?.value ?? t.max_chars_per_chunk ?? null; - j != null && (n.max_chars_per_chunk = j); - let oe = t.chunk_combination_method?.value ?? t.chunk_combination_method ?? null; - oe != null && String(oe).trim() && (n.chunk_combination_method = String(oe).trim()); - let se = t.silence_between_chunks_ms?.value ?? t.silence_between_chunks_ms ?? null; - se != null && (n.silence_between_chunks_ms = se); - let ce = t.enable_audio_cache?.value ?? t.enable_audio_cache ?? null; - ce != null && (n.enable_audio_cache = ce); - let le = t.batch_size?.value ?? t.batch_size ?? null; - le != null && (n.batch_size = le); - let ue = t.denoise?.value ?? t.denoise ?? null; - ue != null && (n.denoise = ue), i(["denoise", "denoising"], t.denoise); - let M = t.clip_skip?.value ?? t.clip_skip ?? t.clipSkip ?? null; - M != null && (n.clip_skip = M); - let de = t.inputs; - Array.isArray(de) && (n.inputs = de), t.ltx_director && typeof t.ltx_director == "object" && (n.ltx_director = t.ltx_director); - let fe = t.lyrics?.value ?? t.lyrics ?? null; - typeof fe == "string" && fe.trim() && (n.lyrics = fe); - let pe = t.lyrics_strength?.value ?? t.lyrics_strength ?? null; - pe != null && (n.lyrics_strength = pe); - let me = t.notes?.value ?? t.workflow_notes?.value ?? t.notes ?? t.workflow_notes ?? null; - typeof me == "string" && me.trim() && (n.workflow_notes = me.trim()), i(["workflow_notes", "notes"], t.notes ?? t.workflow_notes), Array.isArray(t.custom_info) && (n.custom_info = t.custom_info), Array.isArray(t.custom_info) && t.engine?.mode === "override" && r.add("custom_info"), Array.isArray(t.all_positive_prompts) && t.all_positive_prompts.length > 1 && (n.all_positive_prompts = t.all_positive_prompts), Array.isArray(t.all_negative_prompts) && t.all_negative_prompts.length > 1 && (n.all_negative_prompts = t.all_negative_prompts), Array.isArray(t.all_samplers) && t.all_samplers.length > 1 && (n.all_samplers = t.all_samplers), Array.isArray(t.chained_passes) && t.chained_passes.length > 1 && (n.chained_passes = t.chained_passes), Array.isArray(t.all_checkpoints) && t.all_checkpoints.length > 1 && (n.all_checkpoints = t.all_checkpoints); - let N = t.size || null; - if (N && typeof N == "object" && (N.width !== void 0 && (n.width = N.width), N.height !== void 0 && (n.height = N.height)), t.engine && typeof t.engine == "object" && (n.engine = t.engine, (t.engine.mode === "override" || t.engine.parser_version === "geninfo-override-v1" || t.engine.source === "majoor_geninfo") && (n.is_override = !0)), r.size && (n.override_fields = Array.from(r)), ui(n, pi(e)), mi(n, e), Object.keys(n).length) return n; + let oe = t.enable_chunking?.value ?? t.enable_chunking ?? null; + oe != null && (n.enable_chunking = oe); + let se = t.max_chars_per_chunk?.value ?? t.max_chars_per_chunk ?? null; + se != null && (n.max_chars_per_chunk = se); + let A = t.chunk_combination_method?.value ?? t.chunk_combination_method ?? null; + A != null && String(A).trim() && (n.chunk_combination_method = String(A).trim()); + let ce = t.silence_between_chunks_ms?.value ?? t.silence_between_chunks_ms ?? null; + ce != null && (n.silence_between_chunks_ms = ce); + let le = t.enable_audio_cache?.value ?? t.enable_audio_cache ?? null; + le != null && (n.enable_audio_cache = le); + let ue = t.batch_size?.value ?? t.batch_size ?? null; + ue != null && (n.batch_size = ue); + let de = t.denoise?.value ?? t.denoise ?? null; + de != null && (n.denoise = de), i(["denoise", "denoising"], t.denoise); + let fe = t.clip_skip?.value ?? t.clip_skip ?? t.clipSkip ?? null; + fe != null && (n.clip_skip = fe); + let pe = t.inputs; + Array.isArray(pe) && (n.inputs = pe), t.ltx_director && typeof t.ltx_director == "object" && (n.ltx_director = t.ltx_director); + let me = t.lyrics?.value ?? t.lyrics ?? null; + typeof me == "string" && me.trim() && (n.lyrics = me); + let j = t.lyrics_strength?.value ?? t.lyrics_strength ?? null; + j != null && (n.lyrics_strength = j); + let he = t.notes?.value ?? t.workflow_notes?.value ?? t.notes ?? t.workflow_notes ?? null; + typeof he == "string" && he.trim() && (n.workflow_notes = he.trim()), i(["workflow_notes", "notes"], t.notes ?? t.workflow_notes), Array.isArray(t.custom_info) && (n.custom_info = t.custom_info), Array.isArray(t.custom_info) && t.engine?.mode === "override" && r.add("custom_info"), Array.isArray(t.all_positive_prompts) && t.all_positive_prompts.length > 1 && (n.all_positive_prompts = t.all_positive_prompts), Array.isArray(t.all_negative_prompts) && t.all_negative_prompts.length > 1 && (n.all_negative_prompts = t.all_negative_prompts), Array.isArray(t.all_samplers) && t.all_samplers.length > 1 && (n.all_samplers = t.all_samplers), Array.isArray(t.chained_passes) && t.chained_passes.length > 1 && (n.chained_passes = t.chained_passes), Array.isArray(t.all_checkpoints) && t.all_checkpoints.length > 1 && (n.all_checkpoints = t.all_checkpoints); + let ge = t.size || null; + if (ge && typeof ge == "object" && (ge.width !== void 0 && (n.width = ge.width), ge.height !== void 0 && (n.height = ge.height)), t.engine && typeof t.engine == "object" && (n.engine = t.engine, (t.engine.mode === "override" || t.engine.parser_version === "geninfo-override-v1" || t.engine.source === "majoor_geninfo") && (n.is_override = !0)), r.size && (n.override_fields = Array.from(r)), ui(n, pi(e)), mi(n, e), Object.keys(n).length) return n; } let n = Tr(e); if (n) return n; @@ -4581,7 +4581,7 @@ function Ti(e) { } function Ei() { try { - return !!(z()?.ai?.vectorSearchEnabled ?? !0); + return !!(R()?.ai?.vectorSearchEnabled ?? !0); } catch { return !0; } @@ -4607,7 +4607,7 @@ function Ai(e) { if (!t) return []; let n = String(e?.subfolder || "").trim(), r = String(e?.folder_type || "input").trim().toLowerCase(), i = [], a = (e) => { if (!e) return; - let r = A(t, n, e); + let r = xe(t, n, e); r && !i.includes(r) && i.push(r); }; return (r === "input" || r === "output") && a(r), a("input"), a("output"), i; @@ -5243,7 +5243,7 @@ function ia(e) { Bi(M("sidebar.generation.cudaGraphs", "CUDA Graphs"), r.use_cuda_graphs), Bi(M("sidebar.generation.xVectorOnly", "X-Vector Only"), r.x_vector_only_mode) ].filter(Boolean).forEach((e) => C.push(e)); - let ee = []; + let w = []; [ Bi(M("sidebar.generation.chunking", "Chunking"), r.enable_chunking), r.max_chars_per_chunk !== void 0 && r.max_chars_per_chunk !== null ? { @@ -5263,27 +5263,27 @@ function ia(e) { label: M("sidebar.generation.batchSize", "Batch Size"), value: r.batch_size } : null - ].filter(Boolean).forEach((e) => ee.push(e)); - let te = []; - r.lyrics_strength !== void 0 && r.lyrics_strength !== null && te.push({ + ].filter(Boolean).forEach((e) => w.push(e)); + let ee = []; + r.lyrics_strength !== void 0 && r.lyrics_strength !== null && ee.push({ label: M("sidebar.generation.lyricsStrength", "Lyrics Strength"), value: r.lyrics_strength }); - let w = []; - Q(b) && !v.some((e) => e.label === "Denoise") && w.push({ + let T = []; + Q(b) && !v.some((e) => e.label === "Denoise") && T.push({ label: M("sidebar.generation.denoise", "Denoise"), value: b - }), Q(r.clip_skip) && w.push({ + }), Q(r.clip_skip) && T.push({ label: M("sidebar.generation.clipSkip", "Clip Skip"), value: r.clip_skip }); - let ne = [], T = String(r.workflow_notes || r.notes || "").trim(); - T && ne.push({ + let E = [], te = String(r.workflow_notes || r.notes || "").trim(); + te && E.push({ label: M("sidebar.generation.workflowNotes", "Workflow Notes"), - value: T, + value: te, override: $(o, "workflow_notes", "notes") }); - let E = ta(r.custom_info), D = Qi(r, h, v, x), O = $i(r, x, E, l.workflowType), re = Xi(r, x), ie = Array.isArray(r.inputs) ? r.inputs.filter((e) => e && typeof e == "object" && e.filename).map((e, t) => ({ + let D = ta(r.custom_info), O = Qi(r, h, v, x), ne = $i(r, x, D, l.workflowType), re = Xi(r, x), ie = Array.isArray(r.inputs) ? r.inputs.filter((e) => e && typeof e == "object" && e.filename).map((e, t) => ({ id: `${e.filename}-${t}`, filename: String(e.filename || "").trim(), subfolder: String(e.subfolder || "").trim(), @@ -5315,24 +5315,24 @@ function ia(e) { lyrics: String(r.lyrics || "").trim(), modelFields: f, modelGroups: h, - branchCards: D, + branchCards: O, pipelineTabs: x, samplingFields: v, ttsFields: S, ttsEngineFields: C, ttsInstruction: String(r.instruct || "").trim(), - ttsRuntimeFields: ee, - audioFields: te, + ttsRuntimeFields: w, + audioFields: ee, seed: re, - imageFields: w, + imageFields: T, inputFiles: ie, isOverride: c, overrideLabel: c ? "Gen Info Override" : "", - notesFields: ne, - customInfoBlocks: E, - moduleBlocks: O, + notesFields: E, + customInfoBlocks: D, + moduleBlocks: ne, ltxDirector: i, ideogram: a }; } -export { B as A, zn as C, _t as D, Ot as E, Ve as M, ke as N, V as O, qn as S, Dt as T, _r as _, Mi as a, Kn as b, J as c, Sr as d, yr as f, vr as g, mr as h, Ei as i, Be as j, z as k, ai as l, xr as m, Di as n, ki as o, br as p, Oi as r, xi as s, ia as t, q as u, rr as v, Rn as w, Wn as x, pr as y }; +export { z as A, zn as C, vt as D, kt as E, He as M, Ae as N, B as O, qn as S, Ot as T, _r as _, Mi as a, Kn as b, J as c, Sr as d, yr as f, vr as g, mr as h, Ei as i, Ve as j, R as k, ai as l, xr as m, Di as n, ki as o, br as p, Oi as r, xi as s, ia as t, q as u, rr as v, Rn as w, Wn as x, pr as y }; diff --git a/dist/chunks/mjr-primevue-C07IsEdU.js b/dist/chunks/mjr-primevue-QrNPJaqR.js similarity index 81% rename from dist/chunks/mjr-primevue-C07IsEdU.js rename to dist/chunks/mjr-primevue-QrNPJaqR.js index 15a4b91e..723bb524 100644 --- a/dist/chunks/mjr-primevue-C07IsEdU.js +++ b/dist/chunks/mjr-primevue-QrNPJaqR.js @@ -63,7 +63,7 @@ function _e(e) { let { class: t, style: n } = e; return t && !g(t) && (e.class = O(t)), n && (e.style = fe(n)), e; } -var ve = /* @__PURE__ */ e("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly"); +var ve = /* @__PURE__ */ e("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly"); function ye(e) { return !!e || e === ""; } @@ -417,13 +417,13 @@ function ct(e, t) { } function lt(e) { let t = /* @__PURE__ */ M(e); - return t === e || (ot(t, "iterate", at), /* @__PURE__ */ Yt(e)) ? t : /* @__PURE__ */ Jt(e) ? /* @__PURE__ */ qt(e) ? t.map((e) => $t(Qt(e))) : t.map($t) : t.map(Qt); + return t === e || (ot(t, "iterate", at), /* @__PURE__ */ Jt(e)) ? t : /* @__PURE__ */ qt(e) ? /* @__PURE__ */ Kt(e) ? t.map((e) => Qt(Zt(e))) : t.map(Qt) : t.map(Zt); } function ut(e) { return ot(e = /* @__PURE__ */ M(e), "iterate", at), e; } function dt(e, t) { - return /* @__PURE__ */ Jt(e) ? $t(/* @__PURE__ */ qt(e) ? Qt(t) : t) : Qt(t); + return /* @__PURE__ */ qt(e) ? Qt(/* @__PURE__ */ Kt(e) ? Zt(t) : t) : Zt(t); } var ft = { __proto__: null, @@ -437,61 +437,61 @@ var ft = { return pt(this, "entries", (e) => (e[1] = dt(this, e[1]), e)); }, every(e, t) { - return gt(this, "every", e, t, void 0, arguments); + return ht(this, "every", e, t, void 0, arguments); }, filter(e, t) { - return gt(this, "filter", e, t, (e) => e.map((e) => dt(this, e)), arguments); + return ht(this, "filter", e, t, (e) => e.map((e) => dt(this, e)), arguments); }, find(e, t) { - return gt(this, "find", e, t, (e) => dt(this, e), arguments); + return ht(this, "find", e, t, (e) => dt(this, e), arguments); }, findIndex(e, t) { - return gt(this, "findIndex", e, t, void 0, arguments); + return ht(this, "findIndex", e, t, void 0, arguments); }, findLast(e, t) { - return gt(this, "findLast", e, t, (e) => dt(this, e), arguments); + return ht(this, "findLast", e, t, (e) => dt(this, e), arguments); }, findLastIndex(e, t) { - return gt(this, "findLastIndex", e, t, void 0, arguments); + return ht(this, "findLastIndex", e, t, void 0, arguments); }, forEach(e, t) { - return gt(this, "forEach", e, t, void 0, arguments); + return ht(this, "forEach", e, t, void 0, arguments); }, includes(...e) { - return vt(this, "includes", e); + return _t(this, "includes", e); }, indexOf(...e) { - return vt(this, "indexOf", e); + return _t(this, "indexOf", e); }, join(e) { return lt(this).join(e); }, lastIndexOf(...e) { - return vt(this, "lastIndexOf", e); + return _t(this, "lastIndexOf", e); }, map(e, t) { - return gt(this, "map", e, t, void 0, arguments); + return ht(this, "map", e, t, void 0, arguments); }, pop() { - return yt(this, "pop"); + return vt(this, "pop"); }, push(...e) { - return yt(this, "push", e); + return vt(this, "push", e); }, reduce(e, ...t) { - return _t(this, "reduce", e, t); + return gt(this, "reduce", e, t); }, reduceRight(e, ...t) { - return _t(this, "reduceRight", e, t); + return gt(this, "reduceRight", e, t); }, shift() { - return yt(this, "shift"); + return vt(this, "shift"); }, some(e, t) { - return gt(this, "some", e, t, void 0, arguments); + return ht(this, "some", e, t, void 0, arguments); }, splice(...e) { - return yt(this, "splice", e); + return vt(this, "splice", e); }, toReversed() { return lt(this).toReversed(); @@ -503,41 +503,25 @@ var ft = { return lt(this).toSpliced(...e); }, unshift(...e) { - return yt(this, "unshift", e); + return vt(this, "unshift", e); }, values() { return pt(this, "values", (e) => dt(this, e)); } }; function pt(e, t, n) { - let r = ut(e), i = r[t], a = i.call(r); - if (r !== e && !/* @__PURE__ */ Yt(e)) { - if (a[Symbol.toStringTag] === "Array Iterator") { - let e = Object.create(Object.getPrototypeOf(a)); - return e.next = () => mt(a.next(), n), i !== ht[t] && Object.defineProperties(e, { - return: { get() { - let e = a.return; - return typeof e == "function" ? e.bind(a) : e; - } }, - throw: { get() { - let e = a.throw; - return typeof e == "function" ? e.bind(a) : e; - } } - }), e; - } - a._next = a.next, a.next = () => mt(a._next(), n); - } - return a; + let r = ut(e), i = r[t](); + return r !== e && !/* @__PURE__ */ Jt(e) && (i._next = i.next, i.next = () => { + let e = i._next(); + return e.done || (e.value = n(e.value)), e; + }), i; } -function mt(e, t) { - return e.done || (e.value = t(e.value)), e; -} -var ht = Array.prototype; -function gt(e, t, n, r, i, a) { - let o = ut(e), s = o !== e && !/* @__PURE__ */ Yt(e), c = o[t]; - if (c !== ht[t]) { +var mt = Array.prototype; +function ht(e, t, n, r, i, a) { + let o = ut(e), s = o !== e && !/* @__PURE__ */ Jt(e), c = o[t]; + if (c !== mt[t]) { let t = c.apply(e, a); - return s ? Qt(t) : t; + return s ? Zt(t) : t; } let l = n; o !== e && (s ? l = function(t, r) { @@ -548,8 +532,8 @@ function gt(e, t, n, r, i, a) { let u = c.call(o, l, r); return s && i ? i(u) : u; } -function _t(e, t, n, r) { - let i = ut(e), a = i !== e && !/* @__PURE__ */ Yt(e), o = n, s = !1; +function gt(e, t, n, r) { + let i = ut(e), a = i !== e && !/* @__PURE__ */ Jt(e), o = n, s = !1; i !== e && (a ? (s = r.length === 0, o = function(t, r, i) { return s && (s = !1, t = dt(e, t)), n.call(this, t, dt(e, r), i, e); }) : n.length > 3 && (o = function(t, r, i) { @@ -558,24 +542,24 @@ function _t(e, t, n, r) { let c = i[t](o, ...r); return s ? dt(e, c) : c; } -function vt(e, t, n) { +function _t(e, t, n) { let r = /* @__PURE__ */ M(e); ot(r, "iterate", at); let i = r[t](...n); - return (i === -1 || i === !1) && /* @__PURE__ */ Xt(n[0]) ? (n[0] = /* @__PURE__ */ M(n[0]), r[t](...n)) : i; + return (i === -1 || i === !1) && /* @__PURE__ */ Yt(n[0]) ? (n[0] = /* @__PURE__ */ M(n[0]), r[t](...n)) : i; } -function yt(e, t, n = []) { +function vt(e, t, n = []) { Ye(), ze(); let r = (/* @__PURE__ */ M(e))[t].apply(e, n); return Be(), Xe(), r; } -var bt = /* @__PURE__ */ e("__proto__,__v_isRef,__isVue"), xt = new Set(/* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((e) => e !== "arguments" && e !== "caller").map((e) => Symbol[e]).filter(_)); -function St(e) { +var yt = /* @__PURE__ */ e("__proto__,__v_isRef,__isVue"), bt = new Set(/* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((e) => e !== "arguments" && e !== "caller").map((e) => Symbol[e]).filter(_)); +function xt(e) { _(e) || (e = String(e)); let t = /* @__PURE__ */ M(this); return ot(t, "has", e), t.hasOwnProperty(e); } -var Ct = class { +var St = class { constructor(e = !1, t = !1) { this._isReadonly = e, this._isShallow = t; } @@ -585,30 +569,30 @@ var Ct = class { if (t === "__v_isReactive") return !r; if (t === "__v_isReadonly") return r; if (t === "__v_isShallow") return i; - if (t === "__v_raw") return n === (r ? i ? Vt : Bt : i ? zt : Rt).get(e) || Object.getPrototypeOf(e) === Object.getPrototypeOf(n) ? e : void 0; + if (t === "__v_raw") return n === (r ? i ? Bt : zt : i ? Rt : Lt).get(e) || Object.getPrototypeOf(e) === Object.getPrototypeOf(n) ? e : void 0; let a = d(e); if (!r) { let e; if (a && (e = ft[t])) return e; - if (t === "hasOwnProperty") return St; + if (t === "hasOwnProperty") return xt; } let o = Reflect.get(e, t, /* @__PURE__ */ N(e) ? e : n); - if ((_(t) ? xt.has(t) : bt(t)) || (r || ot(e, "get", t), i)) return o; + if ((_(t) ? bt.has(t) : yt(t)) || (r || ot(e, "get", t), i)) return o; if (/* @__PURE__ */ N(o)) { let e = a && w(t) ? o : o.value; - return r && v(e) ? /* @__PURE__ */ Gt(e) : e; + return r && v(e) ? /* @__PURE__ */ Wt(e) : e; } - return v(o) ? r ? /* @__PURE__ */ Gt(o) : /* @__PURE__ */ Ut(o) : o; + return v(o) ? r ? /* @__PURE__ */ Wt(o) : /* @__PURE__ */ Ht(o) : o; } -}, wt = class extends Ct { +}, Ct = class extends St { constructor(e = !1) { super(!1, e); } set(e, t, n, r) { let i = e[t], a = d(e) && w(t); if (!this._isShallow) { - let e = /* @__PURE__ */ Jt(i); - if (!/* @__PURE__ */ Yt(n) && !/* @__PURE__ */ Jt(n) && (i = /* @__PURE__ */ M(i), n = /* @__PURE__ */ M(n)), !a && /* @__PURE__ */ N(i) && !/* @__PURE__ */ N(n)) return e || (i.value = n), !0; + let e = /* @__PURE__ */ qt(i); + if (!/* @__PURE__ */ Jt(n) && !/* @__PURE__ */ qt(n) && (i = /* @__PURE__ */ M(i), n = /* @__PURE__ */ M(n)), !a && /* @__PURE__ */ N(i) && !/* @__PURE__ */ N(n)) return e || (i.value = n), !0; } let o = a ? Number(t) < e.length : u(e, t), s = Reflect.set(e, t, n, /* @__PURE__ */ N(e) ? e : r); return e === /* @__PURE__ */ M(r) && s && (o ? D(n, i) && st(e, "set", t, n, i) : st(e, "add", t, n)), s; @@ -619,12 +603,12 @@ var Ct = class { } has(e, t) { let n = Reflect.has(e, t); - return _(t) && xt.has(t) || ot(e, "has", t), n; + return _(t) && bt.has(t) || ot(e, "has", t), n; } ownKeys(e) { return ot(e, "iterate", d(e) ? "length" : rt), Reflect.ownKeys(e); } -}, Tt = class extends Ct { +}, wt = class extends St { constructor(e = !1) { super(!0, e); } @@ -634,10 +618,10 @@ var Ct = class { deleteProperty(e, t) { return !0; } -}, Et = /* @__PURE__ */ new wt(), Dt = /* @__PURE__ */ new Tt(), Ot = /* @__PURE__ */ new wt(!0), kt = (e) => e, At = (e) => Reflect.getPrototypeOf(e); -function jt(e, t, n) { +}, Tt = /* @__PURE__ */ new Ct(), Et = /* @__PURE__ */ new wt(), Dt = /* @__PURE__ */ new Ct(!0), Ot = (e) => e, kt = (e) => Reflect.getPrototypeOf(e); +function At(e, t, n) { return function(...r) { - let i = this.__v_raw, a = /* @__PURE__ */ M(i), o = f(a), c = e === "entries" || e === Symbol.iterator && o, l = e === "keys" && o, u = i[e](...r), d = n ? kt : t ? $t : Qt; + let i = this.__v_raw, a = /* @__PURE__ */ M(i), o = f(a), c = e === "entries" || e === Symbol.iterator && o, l = e === "keys" && o, u = i[e](...r), d = n ? Ot : t ? Qt : Zt; return !t && ot(a, "iterate", l ? it : rt), s(Object.create(u), { next() { let { value: e, done: t } = u.next(); return t ? { @@ -650,17 +634,17 @@ function jt(e, t, n) { } }); }; } -function Mt(e) { +function jt(e) { return function(...t) { return e === "delete" ? !1 : e === "clear" ? void 0 : this; }; } -function Nt(e, t) { +function Mt(e, t) { let n = { get(n) { let r = this.__v_raw, i = /* @__PURE__ */ M(r), a = /* @__PURE__ */ M(n); e || (D(n, a) && ot(i, "get", n), ot(i, "get", a)); - let { has: o } = At(i), s = t ? kt : e ? $t : Qt; + let { has: o } = kt(i), s = t ? Ot : e ? Qt : Zt; if (o.call(i, n)) return s(r.get(n)); if (o.call(i, a)) return s(r.get(a)); r !== i && r.get(n); @@ -674,29 +658,29 @@ function Nt(e, t) { return e || (D(t, i) && ot(r, "has", t), ot(r, "has", i)), t === i ? n.has(t) : n.has(t) || n.has(i); }, forEach(n, r) { - let i = this, a = i.__v_raw, o = /* @__PURE__ */ M(a), s = t ? kt : e ? $t : Qt; + let i = this, a = i.__v_raw, o = /* @__PURE__ */ M(a), s = t ? Ot : e ? Qt : Zt; return !e && ot(o, "iterate", rt), a.forEach((e, t) => n.call(r, s(e), s(t), i)); } }; return s(n, e ? { - add: Mt("add"), - set: Mt("set"), - delete: Mt("delete"), - clear: Mt("clear") + add: jt("add"), + set: jt("set"), + delete: jt("delete"), + clear: jt("clear") } : { add(e) { - let n = /* @__PURE__ */ M(this), r = At(n), i = /* @__PURE__ */ M(e), a = !t && !/* @__PURE__ */ Yt(e) && !/* @__PURE__ */ Jt(e) ? i : e; + let n = /* @__PURE__ */ M(this), r = kt(n), i = /* @__PURE__ */ M(e), a = !t && !/* @__PURE__ */ Jt(e) && !/* @__PURE__ */ qt(e) ? i : e; return r.has.call(n, a) || D(e, a) && r.has.call(n, e) || D(i, a) && r.has.call(n, i) || (n.add(a), st(n, "add", a, a)), this; }, set(e, n) { - t || /* @__PURE__ */ Yt(n) || /* @__PURE__ */ Jt(n) || (n = /* @__PURE__ */ M(n)); - let r = /* @__PURE__ */ M(this), { has: i, get: a } = At(r), o = i.call(r, e); + t || /* @__PURE__ */ Jt(n) || /* @__PURE__ */ qt(n) || (n = /* @__PURE__ */ M(n)); + let r = /* @__PURE__ */ M(this), { has: i, get: a } = kt(r), o = i.call(r, e); o ||= (e = /* @__PURE__ */ M(e), i.call(r, e)); let s = a.call(r, e); return r.set(e, n), o ? D(n, s) && st(r, "set", e, n, s) : st(r, "add", e, n), this; }, delete(e) { - let t = /* @__PURE__ */ M(this), { has: n, get: r } = At(t), i = n.call(t, e); + let t = /* @__PURE__ */ M(this), { has: n, get: r } = kt(t), i = n.call(t, e); i ||= (e = /* @__PURE__ */ M(e), n.call(t, e)); let a = r ? r.call(t, e) : void 0, o = t.delete(e); return i && st(t, "delete", e, void 0, a), o; @@ -711,15 +695,15 @@ function Nt(e, t) { "entries", Symbol.iterator ].forEach((r) => { - n[r] = jt(r, e, t); + n[r] = At(r, e, t); }), n; } -function Pt(e, t) { - let n = Nt(e, t); - return (r, i, a) => i === "__v_isReactive" ? !e : i === "__v_isReadonly" ? e : i === "__v_isShallow" ? t : i === "__v_raw" ? r : Reflect.get(u(n, i) && i in r ? n : r, i, a); +function Nt(e, t) { + let n = Mt(e, t); + return (t, r, i) => r === "__v_isReactive" ? !e : r === "__v_isReadonly" ? e : r === "__v_raw" ? t : Reflect.get(u(n, r) && r in t ? n : t, r, i); } -var Ft = { get: /* @__PURE__ */ Pt(!1, !1) }, It = { get: /* @__PURE__ */ Pt(!1, !0) }, Lt = { get: /* @__PURE__ */ Pt(!0, !1) }, Rt = /* @__PURE__ */ new WeakMap(), zt = /* @__PURE__ */ new WeakMap(), Bt = /* @__PURE__ */ new WeakMap(), Vt = /* @__PURE__ */ new WeakMap(); -function Ht(e) { +var Pt = { get: /* @__PURE__ */ Nt(!1, !1) }, Ft = { get: /* @__PURE__ */ Nt(!1, !0) }, It = { get: /* @__PURE__ */ Nt(!0, !1) }, Lt = /* @__PURE__ */ new WeakMap(), Rt = /* @__PURE__ */ new WeakMap(), zt = /* @__PURE__ */ new WeakMap(), Bt = /* @__PURE__ */ new WeakMap(); +function Vt(e) { switch (e) { case "Object": case "Array": return 1; @@ -731,40 +715,40 @@ function Ht(e) { } } // @__NO_SIDE_EFFECTS__ +function Ht(e) { + return /* @__PURE__ */ qt(e) ? e : Gt(e, !1, Tt, Pt, Lt); +} +// @__NO_SIDE_EFFECTS__ function Ut(e) { - return /* @__PURE__ */ Jt(e) ? e : Kt(e, !1, Et, Ft, Rt); + return Gt(e, !1, Dt, Ft, Rt); } // @__NO_SIDE_EFFECTS__ function Wt(e) { - return Kt(e, !1, Ot, It, zt); + return Gt(e, !0, Et, It, zt); } -// @__NO_SIDE_EFFECTS__ -function Gt(e) { - return Kt(e, !0, Dt, Lt, Bt); -} -function Kt(e, t, n, r, i) { +function Gt(e, t, n, r, i) { if (!v(e) || e.__v_raw && !(t && e.__v_isReactive) || e.__v_skip || !Object.isExtensible(e)) return e; let a = i.get(e); if (a) return a; - let o = Ht(S(e)); + let o = Vt(S(e)); if (o === 0) return e; let s = new Proxy(e, o === 2 ? r : n); return i.set(e, s), s; } // @__NO_SIDE_EFFECTS__ -function qt(e) { - return /* @__PURE__ */ Jt(e) ? /* @__PURE__ */ qt(e.__v_raw) : !!(e && e.__v_isReactive); +function Kt(e) { + return /* @__PURE__ */ qt(e) ? /* @__PURE__ */ Kt(e.__v_raw) : !!(e && e.__v_isReactive); } // @__NO_SIDE_EFFECTS__ -function Jt(e) { +function qt(e) { return !!(e && e.__v_isReadonly); } // @__NO_SIDE_EFFECTS__ -function Yt(e) { +function Jt(e) { return !!(e && e.__v_isShallow); } // @__NO_SIDE_EFFECTS__ -function Xt(e) { +function Yt(e) { return e ? !!e.__v_raw : !1; } // @__NO_SIDE_EFFECTS__ @@ -772,54 +756,54 @@ function M(e) { let t = e && e.__v_raw; return t ? /* @__PURE__ */ M(t) : e; } -function Zt(e) { +function Xt(e) { return !u(e, "__v_skip") && Object.isExtensible(e) && se(e, "__v_skip", !0), e; } -var Qt = (e) => v(e) ? /* @__PURE__ */ Ut(e) : e, $t = (e) => v(e) ? /* @__PURE__ */ Gt(e) : e; +var Zt = (e) => v(e) ? /* @__PURE__ */ Ht(e) : e, Qt = (e) => v(e) ? /* @__PURE__ */ Wt(e) : e; // @__NO_SIDE_EFFECTS__ function N(e) { return e ? e.__v_isRef === !0 : !1; } // @__NO_SIDE_EFFECTS__ -function en(e) { - return nn(e, !1); +function $t(e) { + return tn(e, !1); } // @__NO_SIDE_EFFECTS__ -function tn(e) { - return nn(e, !0); +function en(e) { + return tn(e, !0); } -function nn(e, t) { - return /* @__PURE__ */ N(e) ? e : new rn(e, t); +function tn(e, t) { + return /* @__PURE__ */ N(e) ? e : new nn(e, t); } -var rn = class { +var nn = class { constructor(e, t) { - this.dep = new et(), this.__v_isRef = !0, this.__v_isShallow = !1, this._rawValue = t ? e : /* @__PURE__ */ M(e), this._value = t ? e : Qt(e), this.__v_isShallow = t; + this.dep = new et(), this.__v_isRef = !0, this.__v_isShallow = !1, this._rawValue = t ? e : /* @__PURE__ */ M(e), this._value = t ? e : Zt(e), this.__v_isShallow = t; } get value() { return this.dep.track(), this._value; } set value(e) { - let t = this._rawValue, n = this.__v_isShallow || /* @__PURE__ */ Yt(e) || /* @__PURE__ */ Jt(e); - e = n ? e : /* @__PURE__ */ M(e), D(e, t) && (this._rawValue = e, this._value = n ? e : Qt(e), this.dep.trigger()); + let t = this._rawValue, n = this.__v_isShallow || /* @__PURE__ */ Jt(e) || /* @__PURE__ */ qt(e); + e = n ? e : /* @__PURE__ */ M(e), D(e, t) && (this._rawValue = e, this._value = n ? e : Zt(e), this.dep.trigger()); } }; -function an(e) { +function rn(e) { e.dep && e.dep.trigger(); } -function on(e) { +function an(e) { return /* @__PURE__ */ N(e) ? e.value : e; } -var sn = { - get: (e, t, n) => t === "__v_raw" ? e : on(Reflect.get(e, t, n)), +var on = { + get: (e, t, n) => t === "__v_raw" ? e : an(Reflect.get(e, t, n)), set: (e, t, n, r) => { let i = e[t]; return /* @__PURE__ */ N(i) && !/* @__PURE__ */ N(n) ? (i.value = n, !0) : Reflect.set(e, t, n, r); } }; -function cn(e) { - return /* @__PURE__ */ qt(e) ? e : new Proxy(e, sn); +function sn(e) { + return /* @__PURE__ */ Kt(e) ? e : new Proxy(e, on); } -var ln = class { +var cn = class { constructor(e) { this.__v_isRef = !0, this._value = void 0; let t = this.dep = new et(), { get: n, set: r } = e(t.track.bind(t), t.trigger.bind(t)); @@ -832,27 +816,27 @@ var ln = class { this._set(e); } }; -function un(e) { - return new ln(e); +function ln(e) { + return new cn(e); } // @__NO_SIDE_EFFECTS__ -function dn(e) { +function un(e) { let t = d(e) ? Array(e.length) : {}; - for (let n in e) t[n] = pn(e, n); + for (let n in e) t[n] = fn(e, n); return t; } -var fn = class { +var dn = class { constructor(e, t, n) { this._object = e, this._defaultValue = n, this.__v_isRef = !0, this._value = void 0, this._key = _(t) ? t : String(t), this._raw = /* @__PURE__ */ M(e); let r = !0, i = e; if (!d(e) || _(this._key) || !w(this._key)) do - r = !/* @__PURE__ */ Xt(i) || /* @__PURE__ */ Yt(i); + r = !/* @__PURE__ */ Yt(i) || /* @__PURE__ */ Jt(i); while (r && (i = i.__v_raw)); this._shallow = r; } get value() { let e = this._object[this._key]; - return this._shallow && (e = on(e)), this._value = e === void 0 ? this._defaultValue : e; + return this._shallow && (e = an(e)), this._value = e === void 0 ? this._defaultValue : e; } set value(e) { if (this._shallow && /* @__PURE__ */ N(this._raw[this._key])) { @@ -868,10 +852,10 @@ var fn = class { return ct(this._raw, this._key); } }; -function pn(e, t, n) { - return new fn(e, t, n); +function fn(e, t, n) { + return new dn(e, t, n); } -var mn = class { +var pn = class { constructor(e, t, n) { this.fn = e, this.setter = t, this._value = void 0, this.dep = new et(this), this.__v_isRef = !0, this.deps = void 0, this.depsTail = void 0, this.flags = 16, this.globalVersion = Qe - 1, this.next = void 0, this.effect = this, this.__v_isReadonly = !t, this.isSSR = n; } @@ -887,22 +871,22 @@ var mn = class { } }; // @__NO_SIDE_EFFECTS__ -function hn(e, t, n = !1) { +function mn(e, t, n = !1) { let r, i; - return h(e) ? r = e : (r = e.get, i = e.set), new mn(r, i, n); + return h(e) ? r = e : (r = e.get, i = e.set), new pn(r, i, n); } -var gn = {}, _n = /* @__PURE__ */ new WeakMap(), vn = void 0; -function yn(e, t = !1, n = vn) { +var hn = {}, gn = /* @__PURE__ */ new WeakMap(), _n = void 0; +function vn(e, t = !1, n = _n) { if (n) { - let t = _n.get(n); - t || _n.set(n, t = []), t.push(e); + let t = gn.get(n); + t || gn.set(n, t = []), t.push(e); } } -function bn(e, n, i = t) { - let { immediate: a, deep: o, once: s, scheduler: l, augmentJob: u, call: f } = i, p = (e) => o ? e : /* @__PURE__ */ Yt(e) || o === !1 || o === 0 ? xn(e, 1) : xn(e), m, g, _, v, y = !1, b = !1; - if (/* @__PURE__ */ N(e) ? (g = () => e.value, y = /* @__PURE__ */ Yt(e)) : /* @__PURE__ */ qt(e) ? (g = () => p(e), y = !0) : d(e) ? (b = !0, y = e.some((e) => /* @__PURE__ */ qt(e) || /* @__PURE__ */ Yt(e)), g = () => e.map((e) => { +function yn(e, n, i = t) { + let { immediate: a, deep: o, once: s, scheduler: l, augmentJob: u, call: f } = i, p = (e) => o ? e : /* @__PURE__ */ Jt(e) || o === !1 || o === 0 ? bn(e, 1) : bn(e), m, g, _, v, y = !1, b = !1; + if (/* @__PURE__ */ N(e) ? (g = () => e.value, y = /* @__PURE__ */ Jt(e)) : /* @__PURE__ */ Kt(e) ? (g = () => p(e), y = !0) : d(e) ? (b = !0, y = e.some((e) => /* @__PURE__ */ Kt(e) || /* @__PURE__ */ Jt(e)), g = () => e.map((e) => { if (/* @__PURE__ */ N(e)) return e.value; - if (/* @__PURE__ */ qt(e)) return p(e); + if (/* @__PURE__ */ Kt(e)) return p(e); if (h(e)) return f ? f(e, 2) : e(); })) : g = h(e) ? n ? f ? () => f(e, 2) : e : () => { if (_) { @@ -913,16 +897,16 @@ function bn(e, n, i = t) { Xe(); } } - let t = vn; - vn = m; + let t = _n; + _n = m; try { return f ? f(e, 3, [v]) : e(v); } finally { - vn = t; + _n = t; } } : r, n && o) { let e = g, t = o === !0 ? Infinity : o; - g = () => xn(e(), t); + g = () => bn(e(), t); } let x = je(), S = () => { m.stop(), x && x.active && c(x.effects, m); @@ -930,79 +914,76 @@ function bn(e, n, i = t) { if (s && n) { let e = n; n = (...t) => { - try { - return e(...t); - } finally { - S(); - } + let n = e(...t); + return S(), n; }; } - let C = b ? Array(e.length).fill(gn) : gn, w = (e) => { + let C = b ? Array(e.length).fill(hn) : hn, w = (e) => { if (m.flags & 1 && (m.dirty || e)) { if (n) { let t = m.run(); if (e || o || y || (b ? t.some((e, t) => D(e, C[t])) : D(t, C))) { - let e = vn; - Ye(); + _ && _(); + let e = _n; + _n = m; try { - _ && _(), vn = m; let e = [ t, - C === gn ? void 0 : b && C[0] === gn ? [] : C, + C === hn ? void 0 : b && C[0] === hn ? [] : C, v ]; C = t, f ? f(n, 3, e) : n(...e); } finally { - vn = e, Xe(); + _n = e; } } } else m.run(); } }; - return u && u(w), m = new Pe(g), m.scheduler = l ? () => l(w, !1) : w, v = (e) => yn(e, !1, m), _ = m.onStop = () => { - let e = _n.get(m); + return u && u(w), m = new Pe(g), m.scheduler = l ? () => l(w, !1) : w, v = (e) => vn(e, !1, m), _ = m.onStop = () => { + let e = gn.get(m); if (e) { if (f) f(e, 4); else for (let t of e) t(); - _n.delete(m); + gn.delete(m); } }, n ? a ? w(!0) : C = m.run() : l ? l(w.bind(null, !0), !0) : m.run(), S.pause = m.pause.bind(m), S.resume = m.resume.bind(m), S.stop = S, S; } -function xn(e, t = Infinity, n) { +function bn(e, t = Infinity, n) { if (t <= 0 || !v(e) || e.__v_skip || (n ||= /* @__PURE__ */ new Map(), (n.get(e) || 0) >= t)) return e; - if (n.set(e, t), t--, /* @__PURE__ */ N(e)) xn(e.value, t, n); - else if (d(e)) for (let r = 0; r < e.length; r++) xn(e[r], t, n); + if (n.set(e, t), t--, /* @__PURE__ */ N(e)) bn(e.value, t, n); + else if (d(e)) for (let r = 0; r < e.length; r++) bn(e[r], t, n); else if (p(e) || f(e)) e.forEach((e) => { - xn(e, t, n); + bn(e, t, n); }); else if (C(e)) { - for (let r in e) xn(e[r], t, n); - for (let r of Object.getOwnPropertySymbols(e)) Object.prototype.propertyIsEnumerable.call(e, r) && xn(e[r], t, n); + for (let r in e) bn(e[r], t, n); + for (let r of Object.getOwnPropertySymbols(e)) Object.prototype.propertyIsEnumerable.call(e, r) && bn(e[r], t, n); } return e; } // node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js -function Sn(e, t, n, r) { +function xn(e, t, n, r) { try { return r ? e(...r) : e(); } catch (e) { - wn(e, t, n); + Cn(e, t, n); } } -function Cn(e, t, n, r) { +function Sn(e, t, n, r) { if (h(e)) { - let i = Sn(e, t, n, r); + let i = xn(e, t, n, r); return i && y(i) && i.catch((e) => { - wn(e, t, n); + Cn(e, t, n); }), i; } if (d(e)) { let i = []; - for (let a = 0; a < e.length; a++) i.push(Cn(e[a], t, n, r)); + for (let a = 0; a < e.length; a++) i.push(Sn(e[a], t, n, r)); return i; } } -function wn(e, n, r, i = !0) { +function Cn(e, n, r, i = !0) { let a = n ? n.vnode : null, { errorHandler: o, throwUnhandledErrorInProduction: s } = n && n.appContext.config || t; if (n) { let t = n.parent, i = n.proxy, a = `https://vuejs.org/error-reference/#runtime-${r}`; @@ -1014,7 +995,7 @@ function wn(e, n, r, i = !0) { t = t.parent; } if (o) { - Ye(), Sn(o, null, 10, [ + Ye(), xn(o, null, 10, [ e, i, a @@ -1022,128 +1003,106 @@ function wn(e, n, r, i = !0) { return; } } - Tn(e, r, a, i, s); + wn(e, r, a, i, s); } -function Tn(e, t, n, r = !0, i = !1) { +function wn(e, t, n, r = !0, i = !1) { if (i) throw e; console.error(e); } -var En = [], Dn = -1, On = [], kn = null, An = 0, jn = /* @__PURE__ */ Promise.resolve(), Mn = null; -function Nn(e) { - let t = Mn || jn; +var Tn = [], En = -1, Dn = [], On = null, kn = 0, An = /* @__PURE__ */ Promise.resolve(), jn = null; +function Mn(e) { + let t = jn || An; return e ? t.then(this ? e.bind(this) : e) : t; } -function Pn(e) { - let t = Dn + 1, n = En.length; +function Nn(e) { + let t = En + 1, n = Tn.length; for (; t < n;) { - let r = t + n >>> 1, i = En[r], a = Hn(i); + let r = t + n >>> 1, i = Tn[r], a = zn(i); a < e || a === e && i.flags & 2 ? t = r + 1 : n = r; } return t; } -function Fn(e) { +function Pn(e) { if (!(e.flags & 1)) { - let t = Hn(e), n = En[En.length - 1]; - !n || !(e.flags & 2) && t >= Hn(n) ? En.push(e) : En.splice(Pn(t), 0, e), e.flags |= 1, In(); + let t = zn(e), n = Tn[Tn.length - 1]; + !n || !(e.flags & 2) && t >= zn(n) ? Tn.push(e) : Tn.splice(Nn(t), 0, e), e.flags |= 1, Fn(); } } -function In() { - Mn ||= jn.then(Un); +function Fn() { + jn ||= An.then(Bn); } -function Ln(e) { - if (!d(e)) kn && e.id === -1 ? kn.splice(An + 1, 0, e) : e.flags & 1 || (On.push(e), e.flags |= 1); - else for (let t = 0; t < e.length; t++) On.push(e[t]); - In(); +function In(e) { + if (!d(e)) On && e.id === -1 ? On.splice(kn + 1, 0, e) : e.flags & 1 || (Dn.push(e), e.flags |= 1); + else for (let t = 0; t < e.length; t++) Dn.push(e[t]); + Fn(); } -function Rn(e, t, n, r = Dn + 1) { - for (; r < En.length; r++) { - let n = En[r]; - if (n && n.flags & 2) { - if (e && n.id !== e.uid || t !== void 0 && !(n.id >= t)) continue; - En.splice(r, 1), r = e ? r - 1 : Dn, n.flags & 4 && (n.flags &= -2), n(), n.flags & 4 || (n.flags &= -2); +function Ln(e, t, n = En + 1) { + for (; n < Tn.length; n++) { + let t = Tn[n]; + if (t && t.flags & 2) { + if (e && t.id !== e.uid) continue; + Tn.splice(n, 1), n--, t.flags & 4 && (t.flags &= -2), t(), t.flags & 4 || (t.flags &= -2); } } } -function zn(e, t, n = 0) { - if (On.length) { - let e = On, r = 0; - if (t) { - e = []; - for (let i = 0; i < On.length; i++) { - let a = On[i]; - (a.i === void 0 ? t.has(a) : !a.i || a.i.uid < n) ? On[r++] = a : e.push(a); - } - } - let i = [...new Set(e)].sort((e, t) => Hn(e) - Hn(t)); - if (On.length = r, kn) { - for (let e = 0; e < i.length; e++) kn.push(i[e]); +function Rn(e) { + if (Dn.length) { + let e = [...new Set(Dn)].sort((e, t) => zn(e) - zn(t)); + if (Dn.length = 0, On) { + for (let t = 0; t < e.length; t++) On.push(e[t]); return; } - for (kn = i, An = 0; An < kn.length; An++) { - let e = kn[An]; + for (On = e, kn = 0; kn < On.length; kn++) { + let e = On[kn]; e.flags & 4 && (e.flags &= -2), e.flags & 8 || e(), e.flags &= -2; } - kn = null, An = 0; + On = null, kn = 0; } } -var Bn = !1; -function Vn(e, t) { - if (Bn) { - e(); - return; - } - let n = t === void 0 ? void 0 : new Set(On); - e(), Bn = !0; +var zn = (e) => e.id == null ? e.flags & 2 ? -1 : Infinity : e.id; +function Bn(e) { try { - Rn(void 0, t), zn(void 0, n, t); - } finally { - Bn = !1; - } -} -var Hn = (e) => e.id == null ? e.flags & 2 ? -1 : Infinity : e.id; -function Un(e) { - try { - for (Dn = 0; Dn < En.length; Dn++) { - let e = En[Dn]; - e && !(e.flags & 8) && (e.flags & 4 && (e.flags &= -2), Sn(e, e.i, e.i ? 15 : 14), e.flags & 4 || (e.flags &= -2)); + for (En = 0; En < Tn.length; En++) { + let e = Tn[En]; + e && !(e.flags & 8) && (e.flags & 4 && (e.flags &= -2), xn(e, e.i, e.i ? 15 : 14), e.flags & 4 || (e.flags &= -2)); } } finally { - for (; Dn < En.length; Dn++) { - let e = En[Dn]; + for (; En < Tn.length; En++) { + let e = Tn[En]; e && (e.flags &= -2); } - Dn = -1, En.length = 0, zn(e), Mn = null, (En.length || On.length) && Un(e); + En = -1, Tn.length = 0, Rn(e), jn = null, (Tn.length || Dn.length) && Bn(e); } } -var Wn = null, Gn = null; -function Kn(e) { - let t = Wn; - return Wn = e, Gn = e && e.type.__scopeId || null, t; +var Vn = null, Hn = null; +function Un(e) { + let t = Vn; + return Vn = e, Hn = e && e.type.__scopeId || null, t; } -function P(e, t = Wn, n) { +function P(e, t = Vn, n) { if (!t || e._n) return e; let r = (...n) => { - r._d && Ha(-1); - let i = Kn(t), a = Ra.length, o; + r._d && za(-1); + let i = Un(t), a = Fa.length, o; try { o = e(...n); } finally { - for (let e = Ra.length; e > a; e--) Ba(); - Kn(i), r._d && Ha(1); + for (let e = Fa.length; e > a; e--) La(); + Un(i), r._d && za(1); } return o; }; return r._n = !0, r._c = !0, r._d = !0, r; } -function qn(e, n) { - if (Wn === null) return e; - let r = So(Wn), i = e.dirs ||= []; +function Wn(e, n) { + if (Vn === null) return e; + let r = _o(Vn), i = e.dirs ||= []; for (let e = 0; e < n.length; e++) { let [a, o, s, c = t] = n[e]; a && (h(a) && (a = { mounted: a, updated: a - }), a.deep && xn(o), i.push({ + }), a.deep && bn(o), i.push({ dir: a, instance: r, value: o, @@ -1154,13 +1113,13 @@ function qn(e, n) { } return e; } -function Jn(e, t, n, r) { +function Gn(e, t, n, r) { let i = e.dirs, a = t && t.dirs; for (let o = 0; o < i.length; o++) { let s = i[o]; a && (s.oldValue = a[o].value); let c = s.dir[r]; - c && (Ye(), Cn(c, n, 8, [ + c && (Ye(), Sn(c, n, 8, [ e.el, s, e, @@ -1168,64 +1127,64 @@ function Jn(e, t, n, r) { ]), Xe()); } } -function Yn(e, t) { - if (so) { - let n = so.provides, r = so.parent && so.parent.provides; - r === n && (n = so.provides = Object.create(r)), n[e] = t; +function Kn(e, t) { + if (G) { + let n = G.provides, r = G.parent && G.parent.provides; + r === n && (n = G.provides = Object.create(r)), n[e] = t; } } -function Xn(e, t, n = !1) { - let r = co(); - if (r || Wi) { - let i = Wi ? Wi._context.provides : r ? r.parent == null || r.ce ? r.vnode.appContext && r.vnode.appContext.provides : r.parent.provides : void 0; +function qn(e, t, n = !1) { + let r = ro(); + if (r || Vi) { + let i = Vi ? Vi._context.provides : r ? r.parent == null || r.ce ? r.vnode.appContext && r.vnode.appContext.provides : r.parent.provides : void 0; if (i && e in i) return i[e]; if (arguments.length > 1) return n && h(t) ? t.call(r && r.proxy) : t; } } -function Zn() { - return !!(co() || Wi); +function Jn() { + return !!(ro() || Vi); } -var Qn = /* @__PURE__ */ Symbol.for("v-scx"), $n = () => Xn(Qn); -function er(e, t) { - return rr(e, null, t); +var Yn = /* @__PURE__ */ Symbol.for("v-scx"), Xn = () => qn(Yn); +function Zn(e, t) { + return er(e, null, t); } -function tr(e, t) { - return rr(e, null, { flush: "sync" }); +function Qn(e, t) { + return er(e, null, { flush: "sync" }); } -function nr(e, t, n) { - return rr(e, t, n); +function $n(e, t, n) { + return er(e, t, n); } -function rr(e, n, i = t) { +function er(e, n, i = t) { let { immediate: a, deep: o, flush: c, once: l } = i, u = s({}, i), d = n && a || !n && c !== "post", f; - if (ho) { + if (lo) { if (c === "sync") { - let e = $n(); + let e = Xn(); f = e.__watcherHandles ||= []; } else if (!d) { let e = () => {}; return e.stop = r, e.resume = r, e.pause = r, e; } } - let p = so; - u.call = (e, t, n) => Cn(e, p, t, n); + let p = G; + u.call = (e, t, n) => Sn(e, p, t, n); let m = !1; c === "post" ? u.scheduler = (e) => { - e.i = p, Ca(e, p && p.suspense); + ya(e, p && p.suspense); } : c !== "sync" && (m = !0, u.scheduler = (e, t) => { - t ? e() : Fn(e); + t ? e() : Pn(e); }), u.augmentJob = (e) => { n && (e.flags |= 4), m && (e.flags |= 2, p && (e.id = p.uid, e.i = p)); }; - let h = bn(e, n, u); - return ho && (f ? f.push(h) : d && h()), h; + let h = yn(e, n, u); + return lo && (f ? f.push(h) : d && h()), h; } -function ir(e, t, n) { - let r = this.proxy, i = g(e) ? e.includes(".") ? ar(r, e) : () => r[e] : e.bind(r, r), a; +function tr(e, t, n) { + let r = this.proxy, i = g(e) ? e.includes(".") ? nr(r, e) : () => r[e] : e.bind(r, r), a; h(t) ? a = t : (a = t.handler, n = t); - let o = fo(this), s = rr(i, a.bind(r), n); + let o = oo(this), s = er(i, a.bind(r), n); return o(), s; } -function ar(e, t) { +function nr(e, t) { let n = t.split("."); return () => { let t = e; @@ -1233,71 +1192,71 @@ function ar(e, t) { return t; }; } -var or = /* @__PURE__ */ new WeakMap(), sr = /* @__PURE__ */ Symbol("_vte"), cr = (e) => e.__isTeleport, lr = (e) => e && (e.disabled || e.disabled === ""), ur = (e) => e && (e.defer || e.defer === ""), dr = (e) => typeof SVGElement < "u" && e instanceof SVGElement, fr = (e) => typeof MathMLElement == "function" && e instanceof MathMLElement, pr = (e, t) => { +var rr = /* @__PURE__ */ new WeakMap(), ir = /* @__PURE__ */ Symbol("_vte"), ar = (e) => e.__isTeleport, or = (e) => e && (e.disabled || e.disabled === ""), sr = (e) => e && (e.defer || e.defer === ""), cr = (e) => typeof SVGElement < "u" && e instanceof SVGElement, lr = (e) => typeof MathMLElement == "function" && e instanceof MathMLElement, ur = (e, t) => { let n = e && e.to; return g(n) ? t ? t(n) : null : n; -}, mr = { +}, dr = { name: "Teleport", __isTeleport: !0, process(e, t, n, r, i, a, o, s, c, l) { - let { mc: u, pc: d, pbc: f, o: { insert: p, querySelector: m, createText: h, createComment: g, parentNode: _ } } = l, v = lr(t.props), { dynamicChildren: y } = t, b = (e, t, n) => { + let { mc: u, pc: d, pbc: f, o: { insert: p, querySelector: m, createText: h, createComment: g, parentNode: _ } } = l, v = or(t.props), { dynamicChildren: y } = t, b = (e, t, n) => { e.shapeFlag & 16 && u(e.children, t, n, i, a, o, s, c); }, x = (e = t) => { - let n = lr(e.props), r = e.target = pr(e.props, m), a = yr(r, e, h, p); - r && (o !== "svg" && dr(r) ? o = "svg" : o !== "mathml" && fr(r) && (o = "mathml"), i && i.isCE && (i.ce._teleportTargets || (i.ce._teleportTargets = /* @__PURE__ */ new Set())).add(r), n || (b(e, r, a), vr(e, !1))); + let n = or(e.props), r = e.target = ur(e.props, m), a = gr(r, e, h, p); + r && (o !== "svg" && cr(r) ? o = "svg" : o !== "mathml" && lr(r) && (o = "mathml"), i && i.isCE && (i.ce._teleportTargets || (i.ce._teleportTargets = /* @__PURE__ */ new Set())).add(r), n || (b(e, r, a), hr(e, !1))); }, S = (e) => { let t = () => { - if (or.get(e) === t) { - if (or.delete(e), lr(e.props)) { + if (rr.get(e) === t) { + if (rr.delete(e), or(e.props)) { let t = _(e.el) || n; - b(e, t, e.anchor), vr(e, !0); + b(e, t, e.anchor), hr(e, !0); } x(e); } }; - or.set(e, t), Ca(t, a); + rr.set(e, t), ya(t, a); }; if (e == null) { let e = t.el = h(""), i = t.anchor = h(""); - if (p(e, n, r), p(i, n, r), ur(t.props) || a && a.pendingBranch) { + if (p(e, n, r), p(i, n, r), sr(t.props) || a && a.pendingBranch) { S(t); return; } - v && (b(t, n, i), vr(t, !0)), x(); + v && (b(t, n, i), hr(t, !0)), x(); } else { t.el = e.el; - let r = t.anchor = e.anchor, u = or.get(e); + let r = t.anchor = e.anchor, u = rr.get(e); if (u) { - u.flags |= 8, or.delete(e), S(t); + u.flags |= 8, rr.delete(e), S(t); return; } t.targetStart = e.targetStart; - let p = t.target = e.target, h = t.targetAnchor = e.targetAnchor, g = lr(e.props), _ = g ? n : p, b = g ? r : h; - if (o === "svg" || dr(p) ? o = "svg" : (o === "mathml" || fr(p)) && (o = "mathml"), y ? (f(e.dynamicChildren, y, _, i, a, o, s), ka(e, t, !0)) : c || d(e, t, _, b, i, a, o, s, !1), v) g ? t.props && e.props && t.props.to !== e.props.to && (t.props.to = e.props.to) : hr(t, n, r, l, 1); + let p = t.target = e.target, h = t.targetAnchor = e.targetAnchor, g = or(e.props), _ = g ? n : p, b = g ? r : h; + if (o === "svg" || cr(p) ? o = "svg" : (o === "mathml" || lr(p)) && (o = "mathml"), y ? (f(e.dynamicChildren, y, _, i, a, o, s), Ta(e, t, !0)) : c || d(e, t, _, b, i, a, o, s, !1), v) g ? t.props && e.props && t.props.to !== e.props.to && (t.props.to = e.props.to) : fr(t, n, r, l, 1); else if ((t.props && t.props.to) !== (e.props && e.props.to)) { - let e = pr(t.props, m); - e && (t.target = e, hr(t, e, null, l, 0)); - } else g && hr(t, p, h, l, 1); - vr(t, v); + let e = ur(t.props, m); + e && (t.target = e, fr(t, e, null, l, 0)); + } else g && fr(t, p, h, l, 1); + hr(t, v); } }, remove(e, t, n, { um: r, o: { remove: i } }, a) { - let { shapeFlag: o, children: s, anchor: c, targetStart: l, targetAnchor: u, target: d, props: f } = e, p = lr(f), m = a || !p, h = or.get(e); - if (h && (h.flags |= 8, or.delete(e)), d && (i(l), i(u)), a && i(c), !h && (p || d) && o & 16) for (let e = 0; e < s.length; e++) { + let { shapeFlag: o, children: s, anchor: c, targetStart: l, targetAnchor: u, target: d, props: f } = e, p = or(f), m = a || !p, h = rr.get(e); + if (h && (h.flags |= 8, rr.delete(e)), d && (i(l), i(u)), a && i(c), !h && (p || d) && o & 16) for (let e = 0; e < s.length; e++) { let i = s[e]; r(i, t, n, m, !!i.dynamicChildren); } }, - move: hr, - hydrate: gr + move: fr, + hydrate: pr }; -function hr(e, t, n, { o: { insert: r }, m: i }, a = 2) { - a === 0 && (e.targetStart && r(e.targetStart, t, n), r(e.targetAnchor, t, n), n = e.targetAnchor); +function fr(e, t, n, { o: { insert: r }, m: i }, a = 2) { + a === 0 && r(e.targetAnchor, t, n); let { el: o, anchor: s, shapeFlag: c, children: l, props: u } = e, d = a === 2; - if (d && r(o, t, n), !or.has(e) && (!d || lr(u)) && c & 16) for (let e = 0; e < l.length; e++) i(l[e], t, n, 2); + if (d && r(o, t, n), !rr.has(e) && (!d || or(u)) && c & 16) for (let e = 0; e < l.length; e++) i(l[e], t, n, 2); d && r(s, t, n); } -function gr(e, t, n, r, i, a, { o: { nextSibling: o, parentNode: s, querySelector: c, insert: l, createText: u } }, d) { +function pr(e, t, n, r, i, a, { o: { nextSibling: o, parentNode: s, querySelector: c, insert: l, createText: u } }, d) { function f(e, n) { let r = n; for (; r;) { @@ -1314,15 +1273,15 @@ function gr(e, t, n, r, i, a, { o: { nextSibling: o, parentNode: s, querySelecto function p(e, t) { t.anchor = d(o(e), t, s(e), n, r, i, a); } - let m = t.target = pr(t.props, c), h = lr(t.props); + let m = t.target = ur(t.props, c), h = or(t.props); if (m) { let c = m._lpa || m.firstChild; - t.shapeFlag & 16 && (h ? (p(e, t), f(m, c), t.targetAnchor || yr(m, t, u, l, s(e) === m ? e : null)) : (t.anchor = o(e), f(m, c), t.targetAnchor || yr(m, t, u, l), d(c && o(c), t, m, n, r, i, a))), vr(t, h); + t.shapeFlag & 16 && (h ? (p(e, t), f(m, c), t.targetAnchor || gr(m, t, u, l, s(e) === m ? e : null)) : (t.anchor = o(e), f(m, c), t.targetAnchor || gr(m, t, u, l), d(c && o(c), t, m, n, r, i, a))), hr(t, h); } else h && t.shapeFlag & 16 && (p(e, t), t.targetStart = e, t.targetAnchor = o(e)); return t.anchor && o(t.anchor); } -var _r = mr; -function vr(e, t) { +var mr = dr; +function hr(e, t) { let n = e.ctx; if (n && n.ut) { let r, i; @@ -1330,64 +1289,67 @@ function vr(e, t) { n.ut(); } } -function yr(e, t, n, r, i = null) { +function gr(e, t, n, r, i = null) { let a = t.targetStart = n(""), o = t.targetAnchor = n(""); - return a[sr] = o, e && (r(a, e, i), r(o, e, i)), o; + return a[ir] = o, e && (r(a, e, i), r(o, e, i)), o; } -var br = /* @__PURE__ */ Symbol("_leaveCb"), xr = /* @__PURE__ */ Symbol("_enterCb"); -function Sr() { +var _r = /* @__PURE__ */ Symbol("_leaveCb"), vr = /* @__PURE__ */ Symbol("_enterCb"); +function yr() { let e = { isMounted: !1, isLeaving: !1, isUnmounting: !1, leavingVNodes: /* @__PURE__ */ new Map() }; - return ti(() => { + return Qr(() => { e.isMounted = !0; - }), ii(() => { + }), ti(() => { e.isUnmounting = !0; }), e; } -var Cr = [Function, Array], wr = { +var br = [Function, Array], xr = { mode: String, appear: Boolean, persisted: Boolean, - onBeforeEnter: Cr, - onEnter: Cr, - onAfterEnter: Cr, - onEnterCancelled: Cr, - onBeforeLeave: Cr, - onLeave: Cr, - onAfterLeave: Cr, - onLeaveCancelled: Cr, - onBeforeAppear: Cr, - onAppear: Cr, - onAfterAppear: Cr, - onAppearCancelled: Cr -}, Tr = { + onBeforeEnter: br, + onEnter: br, + onAfterEnter: br, + onEnterCancelled: br, + onBeforeLeave: br, + onLeave: br, + onAfterLeave: br, + onLeaveCancelled: br, + onBeforeAppear: br, + onAppear: br, + onAfterAppear: br, + onAppearCancelled: br +}, Sr = (e) => { + let t = e.subTree; + return t.component ? Sr(t.component) : t; +}, Cr = { name: "BaseTransition", - props: wr, + props: xr, setup(e, { slots: t }) { - let n = co(), r = Sr(); + let n = ro(), r = yr(); return () => { - let i = t.default && Nr(t.default(), !0), a = i && i.length ? Er(i) : n.subTree ? W() : void 0; + let i = t.default && jr(t.default(), !0), a = i && i.length ? wr(i) : n.subTree ? U() : void 0; if (!a) return; let o = /* @__PURE__ */ M(e), { mode: s } = o; - if (r.isLeaving) return Ar(a); - let c = jr(a); - if (!c) return Ar(a); - let l = kr(c, o, r, n, (e) => l = e); - c.type !== R && Mr(c, l); - let u = n.subTree && jr(n.subTree); - if (u && u.type !== R && !Ga(u, c) && Pr(n.subTree)) { - let e = kr(u, o, r, n); - if (Mr(u, e), s === "out-in" && c.type !== R) return r.isLeaving = !0, e.afterLeave = () => { + if (r.isLeaving) return Or(a); + let c = kr(a); + if (!c) return Or(a); + let l = Dr(c, o, r, n, (e) => l = e); + c.type !== Na && Ar(c, l); + let u = n.subTree && kr(n.subTree); + if (u && u.type !== Na && !Ha(u, c) && Sr(n).type !== Na) { + let e = Dr(u, o, r, n); + if (Ar(u, e), s === "out-in" && c.type !== Na) return r.isLeaving = !0, e.afterLeave = () => { r.isLeaving = !1, n.job.flags & 8 || n.update(), delete e.afterLeave, u = void 0; - }, Ar(a); - s === "in-out" && c.type !== R ? e.delayLeave = (e, t, n) => { - let i = Or(r, u); - i[String(u.key)] = u, e[br] = () => { - t(), e[br] = void 0, delete l.delayedLeave, u = void 0; + }, Or(a); + s === "in-out" && c.type !== Na ? e.delayLeave = (e, t, n) => { + let i = Er(r, u); + i[String(u.key)] = u, e[_r] = () => { + t(), e[_r] = void 0, delete l.delayedLeave, u = void 0; }, l.delayedLeave = () => { n(), delete l.delayedLeave, u = void 0; }; @@ -1397,24 +1359,24 @@ var Cr = [Function, Array], wr = { }; } }; -function Er(e) { +function wr(e) { let t = e[0]; if (e.length > 1) { - for (let n of e) if (n.type !== R) { + for (let n of e) if (n.type !== Na) { t = n; break; } } return t; } -var Dr = Tr; -function Or(e, t) { +var Tr = Cr; +function Er(e, t) { let { leavingVNodes: n } = e, r = n.get(t.type); return r || (r = /* @__PURE__ */ Object.create(null), n.set(t.type, r)), r; } -function kr(e, t, n, r, i) { - let { appear: a, mode: o, persisted: s = !1, onBeforeEnter: c, onEnter: l, onAfterEnter: u, onEnterCancelled: f, onBeforeLeave: p, onLeave: m, onAfterLeave: h, onLeaveCancelled: g, onBeforeAppear: _, onAppear: v, onAfterAppear: y, onAppearCancelled: b } = t, x = String(e.key), S = Or(n, e), C = (e, t) => { - e && Cn(e, r, 9, t); +function Dr(e, t, n, r, i) { + let { appear: a, mode: o, persisted: s = !1, onBeforeEnter: c, onEnter: l, onAfterEnter: u, onEnterCancelled: f, onBeforeLeave: p, onLeave: m, onAfterLeave: h, onLeaveCancelled: g, onBeforeAppear: _, onAppear: v, onAfterAppear: y, onAppearCancelled: b } = t, x = String(e.key), S = Er(n, e), C = (e, t) => { + e && Sn(e, r, 9, t); }, w = (e, t) => { let n = t[1]; C(e, t), d(e) ? e.every((e) => e.length <= 1) && n() : e.length <= 1 && n(); @@ -1427,17 +1389,9 @@ function kr(e, t, n, r, i) { if (a) r = _ || c; else return; } - t[br] && t[br](!0); + t[_r] && t[_r](!0); let i = S[x]; - if (i && Ga(e, i)) { - let e = i.el[br]; - if (!e) { - let t = Pr(i); - e = t && t.el[br]; - } - e && e(); - } - C(r, [t]); + i && Ha(e, i) && i.el[_r] && i.el[_r](), C(r, [t]); }, enter(t) { if (S[x] === e) return; @@ -1447,35 +1401,35 @@ function kr(e, t, n, r, i) { else return; } let s = !1; - t[xr] = (e) => { - s || (s = !0, C(e ? o : i, [t]), ee.delayedLeave && ee.delayedLeave(), t[xr] = void 0); + t[vr] = (e) => { + s || (s = !0, C(e ? o : i, [t]), ee.delayedLeave && ee.delayedLeave(), t[vr] = void 0); }; - let c = t[xr].bind(null, !1); + let c = t[vr].bind(null, !1); r ? w(r, [t, c]) : c(); }, leave(t, r) { let i = String(e.key); - if (t[xr] && t[xr](!0), n.isUnmounting) return r(); + if (t[vr] && t[vr](!0), n.isUnmounting) return r(); C(p, [t]); let a = !1; - t[br] = (n) => { - a || (a = !0, r(), C(n ? g : h, [t]), t[br] = void 0, S[i] === e && delete S[i]); + t[_r] = (n) => { + a || (a = !0, r(), C(n ? g : h, [t]), t[_r] = void 0, S[i] === e && delete S[i]); }; - let o = t[br].bind(null, !1); + let o = t[_r].bind(null, !1); S[i] = e, m ? w(m, [t, o]) : o(); }, clone(e) { - let a = kr(e, t, n, r, i); + let a = Dr(e, t, n, r, i); return i && i(a), a; } }; return ee; } -function Ar(e) { - if (qr(e)) return e = Xa(e), e.children = null, e; +function Or(e) { + if (Wr(e)) return e = qa(e), e.children = null, e; } -function jr(e) { - if (!qr(e)) return cr(e.type) && e.children ? Er(e.children) : e; +function kr(e) { + if (!Wr(e)) return ar(e.type) && e.children ? wr(e.children) : e; if (e.component) return e.component.subTree; let { shapeFlag: t, children: n } = e; if (n) { @@ -1483,72 +1437,60 @@ function jr(e) { if (t & 32 && h(n.default)) return n.default(); } } -function Mr(e, t) { +function Ar(e, t) { if (e.shapeFlag & 6 && e.component) { e.transition = t; let n = e.component.subTree; - Mr(cr(n.type) && jr(n) || n, t); - } else if (e.shapeFlag & 128) e.ssContent.transition = t.clone(e.ssContent), e.ssFallback.transition = t.clone(e.ssFallback); - else if (e.transition = t, e.type === L && d(e.children)) { - let n = Qi(e.children, !1); - n && Mr(n, t); - } + Ar(ar(n.type) && kr(n) || n, t); + } else e.shapeFlag & 128 ? (e.ssContent.transition = t.clone(e.ssContent), e.ssFallback.transition = t.clone(e.ssFallback)) : e.transition = t; } -function Nr(e, t = !1, n) { +function jr(e, t = !1, n) { let r = [], i = 0; for (let a = 0; a < e.length; a++) { let o = e[a], s = n == null ? o.key : String(n) + String(o.key == null ? a : o.key); - o.type === L ? (o.patchFlag & 128 && i++, r = r.concat(Nr(o.children, t, s))) : (t || o.type !== R) && r.push(s == null ? o : Xa(o, { key: s })); + o.type === L ? (o.patchFlag & 128 && i++, r = r.concat(jr(o.children, t, s))) : (t || o.type !== Na) && r.push(s == null ? o : qa(o, { key: s })); } if (i > 1) for (let e = 0; e < r.length; e++) r[e].patchFlag = -2; return r; } -function Pr(e) { - if (e.component) return Pr(e.component.subTree); - if (e.type === L) { - let t = d(e.children) && Qi(e.children, !1); - return t ? Pr(t) : void 0; - } - if (e.type !== R) return e; -} // @__NO_SIDE_EFFECTS__ -function Fr(e, t) { +function Mr(e, t) { return h(e) ? /* @__PURE__ */ s({ name: e.name }, t, { setup: e }) : e; } -function Ir() { - let e = co(); +function Nr() { + let e = ro(); return e ? (e.appContext.config.idPrefix || "v") + "-" + e.ids[0] + e.ids[1]++ : ""; } -function Lr(e) { +function Pr(e) { e.ids = [ e.ids[0] + e.ids[2]++ + "-", 0, 0 ]; } -function Rr(e, t) { +function Fr(e, t) { let n; return !!((n = Object.getOwnPropertyDescriptor(e, t)) && !n.configurable); } -var zr = /* @__PURE__ */ new WeakMap(); -function Br(e, n, r, a, o = !1) { +var Ir = /* @__PURE__ */ new WeakMap(); +function Lr(e, n, r, a, o = !1) { if (d(e)) { - e.forEach((e, t) => Br(e, n && (d(n) ? n[t] : n), r, a, o)); + e.forEach((e, t) => Lr(e, n && (d(n) ? n[t] : n), r, a, o)); return; } - if (Wr(a) && !o) { - a.shapeFlag & 512 && a.type.__asyncResolved && a.component.subTree.component && Br(e, n, r, a.component.subTree); + if (Vr(a) && !o) { + a.shapeFlag & 512 && a.type.__asyncResolved && a.component.subTree.component && Lr(e, n, r, a.component.subTree); return; } - let s = a.shapeFlag & 4 ? So(a.component) : a.el, l = o ? null : s, { i: f, r: p } = e, m = n && n.r, _ = f.refs === t ? f.refs = {} : f.refs, v = f.setupState, y = /* @__PURE__ */ M(v), b = v === t ? i : (e) => !Rr(_, e) && u(y, e), x = (e, t) => !(t && Rr(_, t)); + let s = a.shapeFlag & 4 ? _o(a.component) : a.el, l = o ? null : s, { i: f, r: p } = e, m = n && n.r, _ = f.refs === t ? f.refs = {} : f.refs, v = f.setupState, y = /* @__PURE__ */ M(v), b = v === t ? i : (e) => !Fr(_, e) && u(y, e), x = (e, t) => !(t && Fr(_, t)); if (m != null && m !== p) { - if (Vr(n), g(m)) _[m] = null, b(m) && (v[m] = null); + if (Rr(n), g(m)) _[m] = null, b(m) && (v[m] = null); else if (/* @__PURE__ */ N(m)) { let e = n; x(m, e.k) && (m.value = null), e.k && (_[e.k] = null); } } - if (h(p)) Sn(p, f, 12, [l, _]); + if (h(p)) xn(p, f, 12, [l, _]); else { let t = g(p), n = /* @__PURE__ */ N(p); if (t || n) { @@ -1566,26 +1508,26 @@ function Br(e, n, r, a, o = !1) { }; if (l) { let t = () => { - i(), zr.delete(e); + i(), Ir.delete(e); }; - t.id = -1, zr.set(e, t), Ca(t, r); - } else Vr(e), i(); + t.id = -1, Ir.set(e, t), ya(t, r); + } else Rr(e), i(); } } } -function Vr(e) { - let t = zr.get(e); - t && (t.flags |= 8, zr.delete(e)); +function Rr(e) { + let t = Ir.get(e); + t && (t.flags |= 8, Ir.delete(e)); } -var Hr = (e) => e.nodeType === 8; +var zr = (e) => e.nodeType === 8; de().requestIdleCallback, de().cancelIdleCallback; -function Ur(e, t) { - if (Hr(e) && e.data === "[") { +function Br(e, t) { + if (zr(e) && e.data === "[") { let n = 1, r = e.nextSibling; for (; r;) { if (r.nodeType === 1) { if (t(r) === !1) break; - } else if (Hr(r)) { + } else if (zr(r)) { if (r.data === "]") { if (--n === 0) break; } else r.data === "[" && n++; @@ -1594,9 +1536,9 @@ function Ur(e, t) { } } else t(e); } -var Wr = (e) => !!e.type.__asyncLoader; +var Vr = (e) => !!e.type.__asyncLoader; // @__NO_SIDE_EFFECTS__ -function Gr(e) { +function Hr(e) { h(e) && (e = { loader: e }); let { loader: t, loadingComponent: n, errorComponent: r, delay: i = 200, hydrate: a, timeout: o, suspensible: s = !0, onError: c } = e, l = null, u, d = 0, f = () => (d++, l = null, p()), p = () => { let e; @@ -1607,7 +1549,7 @@ function Gr(e) { throw e; }).then((t) => e !== l && l ? l : (t && (t.__esModule || t[Symbol.toStringTag] === "Module") && (t = t.default), u = t, t))); }; - return /* @__PURE__ */ Fr({ + return /* @__PURE__ */ Mr({ name: "AsyncComponentWrapper", __asyncLoader: p, __asyncHydrate(e, t, n) { @@ -1616,7 +1558,7 @@ function Gr(e) { let o = () => { i || !e.parentNode || r && !e.isConnected || n(); }, s = a ? () => { - let n = a(o, (t) => Ur(e, t)); + let n = a(o, (t) => Br(e, t)); n && (t.bum ||= []).push(n); } : o; u ? s() : p().then(() => !t.isUnmounted && s()); @@ -1625,14 +1567,14 @@ function Gr(e) { return u; }, setup() { - let e = so; - if (Lr(e), u) return () => Kr(u, e); + let e = G; + if (Pr(e), u) return () => Ur(u, e); let t = (t) => { - l = null, wn(t, e, 13, !r); + l = null, Cn(t, e, 13, !r); }; - if (s && e.suspense || ho) return p().then((t) => () => Kr(t, e)).catch((e) => (t(e), () => r ? U(r, { error: e }) : null)); - let a = /* @__PURE__ */ en(!1), c = /* @__PURE__ */ en(), d = /* @__PURE__ */ en(!!i), f, m; - return ai(() => { + if (s && e.suspense || lo) return p().then((t) => () => Ur(t, e)).catch((e) => (t(e), () => r ? H(r, { error: e }) : null)); + let a = /* @__PURE__ */ $t(!1), c = /* @__PURE__ */ $t(), d = /* @__PURE__ */ $t(!!i), f, m; + return ni(() => { f != null && clearTimeout(f), m != null && clearTimeout(m); }), i && (m = setTimeout(() => { e.isUnmounted || (d.value = !1); @@ -1642,29 +1584,29 @@ function Gr(e) { t(e), c.value = e; } }, o)), p().then(() => { - e.isUnmounted || (a.value = !0, e.parent && qr(e.parent.vnode) && e.parent.update()); + e.isUnmounted || (a.value = !0, e.parent && Wr(e.parent.vnode) && e.parent.update()); }).catch((n) => { e.isUnmounted ? l = null : (t(n), c.value = n); }), () => { - if (a.value && u) return Kr(u, e); - if (c.value && r) return U(r, { error: c.value }); - if (n && !d.value) return Kr(n, e); + if (a.value && u) return Ur(u, e); + if (c.value && r) return H(r, { error: c.value }); + if (n && !d.value) return Ur(n, e); }; } }); } -function Kr(e, t) { - let { ref: n, props: r, children: i, ce: a } = t.vnode, o = U(e, r, i); +function Ur(e, t) { + let { ref: n, props: r, children: i, ce: a } = t.vnode, o = H(e, r, i); return o.ref = n, o.ce = a, delete t.vnode.ce, o; } -var qr = (e) => e.type.__isKeepAlive; -function Jr(e, t) { - Xr(e, "a", t); +var Wr = (e) => e.type.__isKeepAlive; +function Gr(e, t) { + qr(e, "a", t); } -function Yr(e, t) { - Xr(e, "da", t); +function Kr(e, t) { + qr(e, "da", t); } -function Xr(e, t, n = so) { +function qr(e, t, n = G) { let r = e.__wdc ||= () => { let t = n; for (; t;) { @@ -1673,71 +1615,68 @@ function Xr(e, t, n = so) { } return e(); }; - if (Qr(t, r, n), n) { + if (Yr(t, r, n), n) { let e = n.parent; - for (; e && e.parent;) qr(e.parent.vnode) && Zr(r, t, n, e), e = e.parent; + for (; e && e.parent;) Wr(e.parent.vnode) && Jr(r, t, n, e), e = e.parent; } } -function Zr(e, t, n, r) { - let i = Qr(t, e, r, !0); - ai(() => { +function Jr(e, t, n, r) { + let i = Yr(t, e, r, !0); + ni(() => { c(r[t], i); }, n); } -function Qr(e, t, n = so, r = !1) { +function Yr(e, t, n = G, r = !1) { if (n) { let i = n[e] || (n[e] = []), a = t.__weh ||= (...r) => { Ye(); - let i = fo(n), a = Cn(t, n, e, r); + let i = oo(n), a = Sn(t, n, e, r); return i(), Xe(), a; }; return r ? i.unshift(a) : i.push(a), a; } } -var $r = (e) => (t, n = so) => { - ho && e !== "sp" || Qr(e, (...e) => t(...e), n); -}, ei = $r("bm"), ti = $r("m"), ni = $r("bu"), ri = $r("u"), ii = $r("bum"), ai = $r("um"), oi = $r("sp"), si = $r("rtg"), ci = $r("rtc"); -function li(e, t = so) { - Qr("ec", e, t); +var Xr = (e) => (t, n = G) => { + lo && e !== "sp" || Yr(e, (...e) => t(...e), n); +}, Zr = Xr("bm"), Qr = Xr("m"), $r = Xr("bu"), ei = Xr("u"), ti = Xr("bum"), ni = Xr("um"), ri = Xr("sp"), ii = Xr("rtg"), ai = Xr("rtc"); +function oi(e, t = G) { + Yr("ec", e, t); } -var ui = "components", di = "directives"; +var si = "components", ci = "directives"; function F(e, t) { - return hi(ui, e, !0, t) || e; + return fi(si, e, !0, t) || e; } -var fi = /* @__PURE__ */ Symbol.for("v-ndc"); -function pi(e) { - return g(e) ? hi(ui, e, !1) || e : e || fi; +var li = /* @__PURE__ */ Symbol.for("v-ndc"); +function ui(e) { + return g(e) ? fi(si, e, !1) || e : e || li; } -function mi(e) { - return hi(di, e); +function di(e) { + return fi(ci, e); } -function hi(e, t, n = !0, r = !1) { - let i = Wn || so; +function fi(e, t, n = !0, r = !1) { + let i = Vn || G; if (i) { let n = i.type; - if (e === ui) { - let e = Co(n, !1); + if (e === si) { + let e = vo(n, !1); if (e && (e === t || e === T(t) || e === ie(T(t)))) return n; } - let a = gi(i[e] || n[e], t) || gi(i.appContext[e], t); + let a = pi(i[e] || n[e], t) || pi(i.appContext[e], t); return !a && r ? n : a; } } -function gi(e, t) { +function pi(e, t) { return e && (e[t] || e[T(t)] || e[ie(T(t))]); } -function _i(e, t, n, r) { +function mi(e, t, n, r) { let i, a = n && n[r], o = d(e); if (o || g(e)) { - let n = o && /* @__PURE__ */ qt(e), r = !1, s = !1; - n && (r = !/* @__PURE__ */ Yt(e), s = /* @__PURE__ */ Jt(e), e = ut(e)), i = Array(e.length); - for (let n = 0, o = e.length; n < o; n++) i[n] = t(r ? s ? $t(Qt(e[n])) : Qt(e[n]) : e[n], n, void 0, a && a[n]); + let n = o && /* @__PURE__ */ Kt(e), r = !1, s = !1; + n && (r = !/* @__PURE__ */ Jt(e), s = /* @__PURE__ */ qt(e), e = ut(e)), i = Array(e.length); + for (let n = 0, o = e.length; n < o; n++) i[n] = t(r ? s ? Qt(Zt(e[n])) : Zt(e[n]) : e[n], n, void 0, a && a[n]); } else if (typeof e == "number") { - if (!Number.isInteger(e) || e < 0) i = []; - else { - i = Array(e); - for (let n = 0; n < e; n++) i[n] = t(n + 1, n, void 0, a && a[n]); - } + i = Array(e); + for (let n = 0; n < e; n++) i[n] = t(n + 1, n, void 0, a && a[n]); } else if (v(e)) { if (e[Symbol.iterator]) i = Array.from(e, (e, n) => t(e, n, void 0, a && a[n])); else { @@ -1751,7 +1690,7 @@ function _i(e, t, n, r) { } else i = []; return n && (n[r] = i), i; } -function vi(e, t) { +function hi(e, t) { for (let n = 0; n < t.length; n++) { let r = t[n]; if (d(r)) for (let t = 0; t < r.length; t++) e[r[t].name] = r[t].fn; @@ -1763,30 +1702,30 @@ function vi(e, t) { return e; } function I(e, t, n, r, i, a) { - if (n ??= {}, Wn.ce || Wn.parent && Wr(Wn.parent) && Wn.parent.ce) { + if (n ??= {}, Vn.ce || Vn.parent && Vr(Vn.parent) && Vn.parent.ce) { let e = a != null && n.key == null ? s({}, n, { key: a }) : n, i = Object.keys(e).length > 0; - return t !== "default" && (e.name = t), z(), V(L, null, [U("slot", e, r && r())], i ? -2 : 64); + return t !== "default" && (e.name = t), R(), B(L, null, [H("slot", e, r && r())], i ? -2 : 64); } let o = e[t]; o && o._c && (o._d = !1); - let c = Ra.length; - z(); + let c = Fa.length; + R(); let l; try { - let i = o && yi(o(n)), s = n.key || a || i && i.key; - l = V(L, { key: (s && !_(s) ? s : `_${t}`) + (!i && r ? "_fb" : "") }, i || (r ? r() : []), i && e._ === 1 ? 64 : -2); + let i = o && gi(o(n)), s = n.key || a || i && i.key; + l = B(L, { key: (s && !_(s) ? s : `_${t}`) + (!i && r ? "_fb" : "") }, i || (r ? r() : []), i && e._ === 1 ? 64 : -2); } catch (e) { - for (let e = Ra.length; e > c; e--) Ba(); + for (let e = Fa.length; e > c; e--) La(); throw e; } finally { o && o._c && (o._d = !0); } return !i && l.scopeId && (l.slotScopeIds = [l.scopeId + "-s"]), l; } -function yi(e) { - return e.some((e) => !Wa(e) || !(e.type === R || e.type === L && !yi(e.children))) ? e : null; +function gi(e) { + return e.some((e) => !Va(e) || !(e.type === Na || e.type === L && !gi(e.children))) ? e : null; } -var bi = (e) => e ? mo(e) ? So(e) : bi(e.parent) : null, xi = /* @__PURE__ */ s(/* @__PURE__ */ Object.create(null), { +var _i = (e) => e ? co(e) ? _o(e) : _i(e.parent) : null, vi = /* @__PURE__ */ s(/* @__PURE__ */ Object.create(null), { $: (e) => e, $el: (e) => e.vnode.el, $data: (e) => e.data, @@ -1794,17 +1733,17 @@ var bi = (e) => e ? mo(e) ? So(e) : bi(e.parent) : null, xi = /* @__PURE__ */ s( $attrs: (e) => e.attrs, $slots: (e) => e.slots, $refs: (e) => e.refs, - $parent: (e) => bi(e.parent), - $root: (e) => bi(e.root), + $parent: (e) => _i(e.parent), + $root: (e) => _i(e.root), $host: (e) => e.ce, $emit: (e) => e.emit, - $options: (e) => ji(e), + $options: (e) => Oi(e), $forceUpdate: (e) => e.f ||= () => { - Fn(e.update); + Pn(e.update); }, - $nextTick: (e) => e.n ||= Nn.bind(e.proxy), - $watch: (e) => ir.bind(e) -}), Si = (e, n) => e !== t && !e.__isScriptSetup && u(e, n), Ci = { + $nextTick: (e) => e.n ||= Mn.bind(e.proxy), + $watch: (e) => tr.bind(e) +}), yi = (e, n) => e !== t && !e.__isScriptSetup && u(e, n), bi = { get({ _: e }, n) { if (n === "__v_skip") return !0; let { ctx: r, setupState: i, data: a, props: o, accessCache: s, type: c, appContext: l } = e; @@ -1816,13 +1755,13 @@ var bi = (e) => e ? mo(e) ? So(e) : bi(e.parent) : null, xi = /* @__PURE__ */ s( case 4: return r[n]; case 3: return o[n]; } - else if (Si(i, n)) return s[n] = 1, i[n]; + else if (yi(i, n)) return s[n] = 1, i[n]; else if (a !== t && u(a, n)) return s[n] = 2, a[n]; else if (u(o, n)) return s[n] = 3, o[n]; else if (r !== t && u(r, n)) return s[n] = 4, r[n]; - else Ei && (s[n] = 0); + else Ci && (s[n] = 0); } - let d = xi[n], f, p; + let d = vi[n], f, p; if (d) return n === "$attrs" && ot(e.attrs, "get", ""), d(e); if ((f = c.__cssModules) && (f = f[n])) return f; if (r !== t && u(r, n)) return s[n] = 4, r[n]; @@ -1830,37 +1769,37 @@ var bi = (e) => e ? mo(e) ? So(e) : bi(e.parent) : null, xi = /* @__PURE__ */ s( }, set({ _: e }, n, r) { let { data: i, setupState: a, ctx: o } = e; - return Si(a, n) ? (a[n] = r, !0) : i !== t && u(i, n) ? (i[n] = r, !0) : u(e.props, n) || n[0] === "$" && n.slice(1) in e ? !1 : (o[n] = r, !0); + return yi(a, n) ? (a[n] = r, !0) : i !== t && u(i, n) ? (i[n] = r, !0) : u(e.props, n) || n[0] === "$" && n.slice(1) in e ? !1 : (o[n] = r, !0); }, has({ _: { data: e, setupState: n, accessCache: r, ctx: i, appContext: a, props: o, type: s } }, c) { let l; - return !!(r[c] || e !== t && c[0] !== "$" && u(e, c) || Si(n, c) || u(o, c) || u(i, c) || u(xi, c) || u(a.config.globalProperties, c) || (l = s.__cssModules) && l[c]); + return !!(r[c] || e !== t && c[0] !== "$" && u(e, c) || yi(n, c) || u(o, c) || u(i, c) || u(vi, c) || u(a.config.globalProperties, c) || (l = s.__cssModules) && l[c]); }, defineProperty(e, t, n) { return n.get == null ? u(n, "value") && this.set(e, t, n.value, null) : e._.accessCache[t] = 0, Reflect.defineProperty(e, t, n); } }; -function wi(e) { +function xi(e) { return d(e) ? e.reduce((e, t) => (e[t] = null, e), {}) : e; } -function Ti(e, t) { - return !e || !t ? e || t : d(e) && d(t) ? e.concat(t) : s({}, wi(e), wi(t)); +function Si(e, t) { + return !e || !t ? e || t : d(e) && d(t) ? e.concat(t) : s({}, xi(e), xi(t)); } -var Ei = !0; -function Di(e) { - let t = ji(e), n = e.proxy, i = e.ctx; - Ei = !1, t.beforeCreate && ki(t.beforeCreate, e, "bc"); +var Ci = !0; +function wi(e) { + let t = Oi(e), n = e.proxy, i = e.ctx; + Ci = !1, t.beforeCreate && Ei(t.beforeCreate, e, "bc"); let { data: a, computed: o, methods: s, watch: c, provide: l, inject: u, created: f, beforeMount: p, mounted: m, beforeUpdate: g, updated: _, activated: y, deactivated: b, beforeDestroy: x, beforeUnmount: S, destroyed: C, unmounted: w, render: ee, renderTracked: te, renderTriggered: ne, errorCaptured: T, serverPrefetch: re, expose: E, inheritAttrs: ie, components: ae, directives: D, filters: oe } = t; - if (u && Oi(u, i, null), s) for (let e in s) { + if (u && Ti(u, i, null), s) for (let e in s) { let t = s[e]; h(t) && (i[e] = t.bind(n)); } if (a) { let t = a.call(n, n); - v(t) && (e.data = /* @__PURE__ */ Ut(t)); + v(t) && (e.data = /* @__PURE__ */ Ht(t)); } - if (Ei = !0, o) for (let e in o) { - let t = o[e], a = To({ + if (Ci = !0, o) for (let e in o) { + let t = o[e], a = bo({ get: h(t) ? t.bind(n, n) : h(t.get) ? t.get.bind(n, n) : r, set: !h(t) && h(t.set) ? t.set.bind(n) : r }); @@ -1871,18 +1810,18 @@ function Di(e) { set: (e) => a.value = e }); } - if (c) for (let e in c) Ai(c[e], i, n, e); + if (c) for (let e in c) Di(c[e], i, n, e); if (l) { let e = h(l) ? l.call(n) : l; Reflect.ownKeys(e).forEach((t) => { - Yn(t, e[t]); + Kn(t, e[t]); }); } - f && ki(f, e, "c"); + f && Ei(f, e, "c"); function se(e, t) { d(t) ? t.forEach((t) => e(t.bind(n))) : t && e(t.bind(n)); } - if (se(ei, p), se(ti, m), se(ni, g), se(ri, _), se(Jr, y), se(Yr, b), se(li, T), se(ci, te), se(si, ne), se(ii, S), se(ai, w), se(oi, re), d(E)) { + if (se(Zr, p), se(Qr, m), se($r, g), se(ei, _), se(Gr, y), se(Kr, b), se(oi, T), se(ai, te), se(ii, ne), se(ti, S), se(ni, w), se(ri, re), d(E)) { if (E.length) { let t = e.exposed ||= {}; E.forEach((e) => { @@ -1894,13 +1833,13 @@ function Di(e) { }); } else e.exposed ||= {}; } - ee && e.render === r && (e.render = ee), ie != null && (e.inheritAttrs = ie), ae && (e.components = ae), D && (e.directives = D), re && Lr(e); + ee && e.render === r && (e.render = ee), ie != null && (e.inheritAttrs = ie), ae && (e.components = ae), D && (e.directives = D), re && Pr(e); } -function Oi(e, t, n = r) { - d(e) && (e = Ii(e)); +function Ti(e, t, n = r) { + d(e) && (e = Ni(e)); for (let n in e) { let r = e[n], i; - i = v(r) ? "default" in r ? Xn(r.from || n, r.default, !0) : Xn(r.from || n) : Xn(r), /* @__PURE__ */ N(i) ? Object.defineProperty(t, n, { + i = v(r) ? "default" in r ? qn(r.from || n, r.default, !0) : qn(r.from || n) : qn(r), /* @__PURE__ */ N(i) ? Object.defineProperty(t, n, { enumerable: !0, configurable: !0, get: () => i.value, @@ -1908,71 +1847,71 @@ function Oi(e, t, n = r) { }) : t[n] = i; } } -function ki(e, t, n) { - Cn(d(e) ? e.map((e) => e.bind(t.proxy)) : e.bind(t.proxy), t, n); +function Ei(e, t, n) { + Sn(d(e) ? e.map((e) => e.bind(t.proxy)) : e.bind(t.proxy), t, n); } -function Ai(e, t, n, r) { - let i = r.includes(".") ? ar(n, r) : () => n[r]; +function Di(e, t, n, r) { + let i = r.includes(".") ? nr(n, r) : () => n[r]; if (g(e)) { let n = t[e]; - h(n) && nr(i, n); - } else if (h(e)) nr(i, e.bind(n)); + h(n) && $n(i, n); + } else if (h(e)) $n(i, e.bind(n)); else if (v(e)) { - if (d(e)) e.forEach((e) => Ai(e, t, n, r)); + if (d(e)) e.forEach((e) => Di(e, t, n, r)); else { let r = h(e.handler) ? e.handler.bind(n) : t[e.handler]; - h(r) && nr(i, r, e); + h(r) && $n(i, r, e); } } } -function ji(e) { +function Oi(e) { let t = e.type, { mixins: n, extends: r } = t, { mixins: i, optionsCache: a, config: { optionMergeStrategies: o } } = e.appContext, s = a.get(t), c; - return s ? c = s : !i.length && !n && !r ? c = t : (c = {}, i.length && i.forEach((e) => Mi(c, e, o, !0)), Mi(c, t, o)), v(t) && a.set(t, c), c; + return s ? c = s : !i.length && !n && !r ? c = t : (c = {}, i.length && i.forEach((e) => ki(c, e, o, !0)), ki(c, t, o)), v(t) && a.set(t, c), c; } -function Mi(e, t, n, r = !1) { +function ki(e, t, n, r = !1) { let { mixins: i, extends: a } = t; - a && Mi(e, a, n, !0), i && i.forEach((t) => Mi(e, t, n, !0)); + a && ki(e, a, n, !0), i && i.forEach((t) => ki(e, t, n, !0)); for (let i in t) if (!(r && i === "expose")) { - let r = Ni[i] || n && n[i]; + let r = Ai[i] || n && n[i]; e[i] = r ? r(e[i], t[i]) : t[i]; } return e; } -var Ni = { - data: Pi, - props: zi, - emits: zi, - methods: Ri, - computed: Ri, - beforeCreate: Li, - created: Li, - beforeMount: Li, - mounted: Li, - beforeUpdate: Li, - updated: Li, - beforeDestroy: Li, - beforeUnmount: Li, - destroyed: Li, - unmounted: Li, - activated: Li, - deactivated: Li, - errorCaptured: Li, - serverPrefetch: Li, - components: Ri, - directives: Ri, - watch: Bi, - provide: Pi, - inject: Fi +var Ai = { + data: ji, + props: Ii, + emits: Ii, + methods: Fi, + computed: Fi, + beforeCreate: Pi, + created: Pi, + beforeMount: Pi, + mounted: Pi, + beforeUpdate: Pi, + updated: Pi, + beforeDestroy: Pi, + beforeUnmount: Pi, + destroyed: Pi, + unmounted: Pi, + activated: Pi, + deactivated: Pi, + errorCaptured: Pi, + serverPrefetch: Pi, + components: Fi, + directives: Fi, + watch: Li, + provide: ji, + inject: Mi }; -function Pi(e, t) { +function ji(e, t) { return t ? e ? function() { return s(h(e) ? e.call(this, this) : e, h(t) ? t.call(this, this) : t); } : t : e; } -function Fi(e, t) { - return Ri(Ii(e), Ii(t)); +function Mi(e, t) { + return Fi(Ni(e), Ni(t)); } -function Ii(e) { +function Ni(e) { if (d(e)) { let t = {}; for (let n = 0; n < e.length; n++) t[e[n]] = e[n]; @@ -1980,23 +1919,23 @@ function Ii(e) { } return e; } -function Li(e, t) { +function Pi(e, t) { return e ? [...new Set([].concat(e, t))] : t; } -function Ri(e, t) { +function Fi(e, t) { return e ? s(/* @__PURE__ */ Object.create(null), e, t) : t; } -function zi(e, t) { - return e ? d(e) && d(t) ? [.../* @__PURE__ */ new Set([...e, ...t])] : s(/* @__PURE__ */ Object.create(null), wi(e), wi(t ?? {})) : t; +function Ii(e, t) { + return e ? d(e) && d(t) ? [.../* @__PURE__ */ new Set([...e, ...t])] : s(/* @__PURE__ */ Object.create(null), xi(e), xi(t ?? {})) : t; } -function Bi(e, t) { +function Li(e, t) { if (!e) return t; if (!t) return e; let n = s(/* @__PURE__ */ Object.create(null), e); - for (let r in t) n[r] = Li(e[r], t[r]); + for (let r in t) n[r] = Pi(e[r], t[r]); return n; } -function Vi() { +function Ri() { return { app: null, config: { @@ -2017,18 +1956,18 @@ function Vi() { emitsCache: /* @__PURE__ */ new WeakMap() }; } -var Hi = 0; -function Ui(e, t) { +var zi = 0; +function Bi(e, t) { return function(n, r = null) { h(n) || (n = s({}, n)), r != null && !v(r) && (r = null); - let i = Vi(), a = /* @__PURE__ */ new WeakSet(), o = [], c = !1, l = i.app = { - _uid: Hi++, + let i = Ri(), a = /* @__PURE__ */ new WeakSet(), o = [], c = !1, l = i.app = { + _uid: zi++, _component: n, _props: r, _container: null, _context: i, _instance: null, - version: Do, + version: So, get config() { return i.config; }, @@ -2047,37 +1986,37 @@ function Ui(e, t) { }, mount(a, o, s) { if (!c) { - let u = l._ceVNode || U(n, r); - return u.appContext = i, s === !0 ? s = "svg" : s === !1 && (s = void 0), o && t ? t(u, a) : e(u, a, s), c = !0, l._container = a, a.__vue_app__ = l, So(u.component); + let u = l._ceVNode || H(n, r); + return u.appContext = i, s === !0 ? s = "svg" : s === !1 && (s = void 0), o && t ? t(u, a) : e(u, a, s), c = !0, l._container = a, a.__vue_app__ = l, _o(u.component); } }, onUnmount(e) { o.push(e); }, unmount() { - c && (Cn(o, l._instance, 16), e(null, l._container), delete l._container.__vue_app__); + c && (Sn(o, l._instance, 16), e(null, l._container), delete l._container.__vue_app__); }, provide(e, t) { return i.provides[e] = t, l; }, runWithContext(e) { - let t = Wi; - Wi = l; + let t = Vi; + Vi = l; try { return e(); } finally { - Wi = t; + Vi = t; } } }; return l; }; } -var Wi = null; -function Gi(e, n, r = t) { - let i = co(), a = T(n), o = E(n), s = Ki(e, a), c = un((s, c) => { +var Vi = null; +function Hi(e, n, r = t) { + let i = ro(), a = T(n), o = E(n), s = Ui(e, a), c = ln((s, c) => { let l, u = t, d; - return tr(() => { + return Qn(() => { let t = e[a]; D(l, t) && (l = t, c()); }), { @@ -2102,113 +2041,100 @@ function Gi(e, n, r = t) { } }; }, c; } -var Ki = (e, t) => t === "modelValue" || t === "model-value" ? e.modelModifiers : e[`${t}Modifiers`] || e[`${T(t)}Modifiers`] || e[`${E(t)}Modifiers`]; -function qi(e, n, ...r) { +var Ui = (e, t) => t === "modelValue" || t === "model-value" ? e.modelModifiers : e[`${t}Modifiers`] || e[`${T(t)}Modifiers`] || e[`${E(t)}Modifiers`]; +function Wi(e, n, ...r) { if (e.isUnmounted) return; - let i = e.vnode.props || t, a = r, o = n.startsWith("update:"), s = o && Ki(i, n.slice(7)); + let i = e.vnode.props || t, a = r, o = n.startsWith("update:"), s = o && Ui(i, n.slice(7)); s && (s.trim && (a = r.map((e) => g(e) ? e.trim() : e)), s.number && (a = a.map(ce))); let c, l = i[c = ae(n)] || i[c = ae(T(n))]; - !l && o && (l = i[c = ae(E(n))]), l && Cn(l, e, 6, a); + !l && o && (l = i[c = ae(E(n))]), l && Sn(l, e, 6, a); let u = i[c + "Once"]; if (u) { if (!e.emitted) e.emitted = {}; else if (e.emitted[c]) return; - e.emitted[c] = !0, Cn(u, e, 6, a); + e.emitted[c] = !0, Sn(u, e, 6, a); } } -var Ji = /* @__PURE__ */ new WeakMap(); -function Yi(e, t, n = !1) { - let r = n ? Ji : t.emitsCache, i = r.get(e); +var Gi = /* @__PURE__ */ new WeakMap(); +function Ki(e, t, n = !1) { + let r = n ? Gi : t.emitsCache, i = r.get(e); if (i !== void 0) return i; let a = e.emits, o = {}, c = !1; if (!h(e)) { let r = (e) => { - let n = Yi(e, t, !0); + let n = Ki(e, t, !0); n && (c = !0, s(o, n)); }; !n && t.mixins.length && t.mixins.forEach(r), e.extends && r(e.extends), e.mixins && e.mixins.forEach(r); } return !a && !c ? (v(e) && r.set(e, null), null) : (d(a) ? a.forEach((e) => o[e] = null) : s(o, a), v(e) && r.set(e, o), o); } -function Xi(e, t) { +function qi(e, t) { return !e || !a(t) ? !1 : (t = t.slice(2), t = t === "Once" ? t : t.replace(/Once$/, ""), u(e, t[0].toLowerCase() + t.slice(1)) || u(e, E(t)) || u(e, t)); } -function Zi(e) { - let { type: t, vnode: n, proxy: r, withProxy: i, propsOptions: [a], slots: s, attrs: c, emit: l, render: u, renderCache: d, props: f, data: p, setupState: m, ctx: h, inheritAttrs: g } = e, _ = Kn(e), v, y; +function Ji(e) { + let { type: t, vnode: n, proxy: r, withProxy: i, propsOptions: [a], slots: s, attrs: c, emit: l, render: u, renderCache: d, props: f, data: p, setupState: m, ctx: h, inheritAttrs: g } = e, _ = Un(e), v, y; try { if (n.shapeFlag & 4) { let e = i || r, t = e; - v = $a(u.call(t, e, d, f, m, p, h)), y = c; + v = Xa(u.call(t, e, d, f, m, p, h)), y = c; } else { let e = t; - v = $a(e.length > 1 ? e(f, { + v = Xa(e.length > 1 ? e(f, { attrs: c, slots: s, emit: l - }) : e(f, null)), y = t.props ? c : $i(c); + }) : e(f, null)), y = t.props ? c : Yi(c); } } catch (t) { - Ra.length = 0, wn(t, e, 1), v = U(R); + Fa.length = 0, Cn(t, e, 1), v = H(Na); } let b = v; if (y && g !== !1) { let e = Object.keys(y), { shapeFlag: t } = b; - e.length && t & 7 && (a && e.some(o) && (y = ea(y, a)), b = Xa(b, y, !1, !0)); + e.length && t & 7 && (a && e.some(o) && (y = Xi(y, a)), b = qa(b, y, !1, !0)); } - return n.dirs && (b = Xa(b, null, !1, !0), b.dirs = b.dirs ? b.dirs.concat(n.dirs) : n.dirs), n.transition && Mr(cr(b.type) && jr(b) || b, n.transition), v = b, Kn(_), v; + return n.dirs && (b = qa(b, null, !1, !0), b.dirs = b.dirs ? b.dirs.concat(n.dirs) : n.dirs), n.transition && Ar(ar(b.type) && kr(b) || b, n.transition), v = b, Un(_), v; } -function Qi(e, t = !0) { - let n; - for (let t = 0; t < e.length; t++) { - let r = e[t]; - if (Wa(r)) { - if (r.type !== R || r.children === "v-if") { - if (n) return; - n = r; - } - } else return; - } - return n; -} -var $i = (e) => { +var Yi = (e) => { let t; for (let n in e) (n === "class" || n === "style" || a(n)) && ((t ||= {})[n] = e[n]); return t; -}, ea = (e, t) => { +}, Xi = (e, t) => { let n = {}; for (let r in e) o(r) && r.slice(9) in t || (n[r] = e[r]); return n; }; -function ta(e, t, n) { +function Zi(e, t, n) { let { props: r, children: i, component: a } = e, { props: o, children: s, patchFlag: c } = t, l = a.emitsOptions; if (t.dirs || t.transition) return !0; if (n && c >= 0) { if (c & 1024) return !0; - if (c & 16) return r ? na(r, o, l) : !!o; + if (c & 16) return r ? Qi(r, o, l) : !!o; if (c & 8) { let e = t.dynamicProps; for (let t = 0; t < e.length; t++) { let n = e[t]; - if (ra(o, r, n) && !Xi(l, n)) return !0; + if ($i(o, r, n) && !qi(l, n)) return !0; } } - } else return (i || s) && (!s || !s.$stable) ? !0 : r === o ? !1 : r ? !o || na(r, o, l) : !!o; + } else return (i || s) && (!s || !s.$stable) ? !0 : r === o ? !1 : r ? !o || Qi(r, o, l) : !!o; return !1; } -function na(e, t, n) { +function Qi(e, t, n) { let r = Object.keys(t); if (r.length !== Object.keys(e).length) return !0; for (let i = 0; i < r.length; i++) { let a = r[i]; - if (!u(e, a) || ra(t, e, a) && !Xi(n, a)) return !0; + if ($i(t, e, a) && !qi(n, a)) return !0; } return !1; } -function ra(e, t, n) { +function $i(e, t, n) { let r = e[n], i = t[n]; return n === "style" && v(r) && v(i) ? !we(r, i) : r !== i; } -function ia({ vnode: e, parent: t, suspense: n }, r) { +function ea({ vnode: e, parent: t, suspense: n }, r) { for (; t;) { let n = t.subTree; if (n.suspense && n.suspense.activeBranch === e && (n.suspense.vnode.el = n.el = r, e = n), n === e) (e = t.vnode).el = r, t = t.parent; @@ -2216,56 +2142,56 @@ function ia({ vnode: e, parent: t, suspense: n }, r) { } n && n.activeBranch === e && (n.vnode.el = r); } -var aa = {}, oa = () => Object.create(aa), sa = (e) => Object.getPrototypeOf(e) === aa; -function ca(e, t, n, r = !1) { - let i = {}, a = oa(); - e.propsDefaults = /* @__PURE__ */ Object.create(null), ua(e, t, i, a); +var ta = {}, na = () => Object.create(ta), ra = (e) => Object.getPrototypeOf(e) === ta; +function ia(e, t, n, r = !1) { + let i = {}, a = na(); + e.propsDefaults = /* @__PURE__ */ Object.create(null), oa(e, t, i, a); for (let t in e.propsOptions[0]) t in i || (i[t] = void 0); - e.props = n ? r ? i : /* @__PURE__ */ Wt(i) : e.type.props ? i : a, e.attrs = a; + e.props = n ? r ? i : /* @__PURE__ */ Ut(i) : e.type.props ? i : a, e.attrs = a; } -function la(e, t, n, r) { +function aa(e, t, n, r) { let { props: i, attrs: a, vnode: { patchFlag: o } } = e, s = /* @__PURE__ */ M(i), [c] = e.propsOptions, l = !1; if ((r || o > 0) && !(o & 16)) { if (o & 8) { let n = e.vnode.dynamicProps; for (let r = 0; r < n.length; r++) { let o = n[r]; - if (Xi(e.emitsOptions, o)) continue; + if (qi(e.emitsOptions, o)) continue; let d = t[o]; if (c) { if (u(a, o)) d !== a[o] && (a[o] = d, l = !0); else { let t = T(o); - i[t] = da(c, s, t, d, e, !1); + i[t] = sa(c, s, t, d, e, !1); } } else d !== a[o] && (a[o] = d, l = !0); } } } else { - ua(e, t, i, a) && (l = !0); + oa(e, t, i, a) && (l = !0); let r; - for (let a in s) t && (u(t, a) || (r = E(a)) !== a && u(t, r)) || (c ? n && (n[a] !== void 0 || n[r] !== void 0) && (i[a] = da(c, s, a, void 0, e, !0)) : delete i[a]); + for (let a in s) t && (u(t, a) || (r = E(a)) !== a && u(t, r)) || (c ? n && (n[a] !== void 0 || n[r] !== void 0) && (i[a] = sa(c, s, a, void 0, e, !0)) : delete i[a]); if (a !== s) for (let e in a) t && u(t, e) || (delete a[e], l = !0); } l && st(e.attrs, "set", ""); } -function ua(e, n, r, i) { +function oa(e, n, r, i) { let [a, o] = e.propsOptions, s = !1, c; if (n) for (let t in n) { if (ee(t)) continue; let l = n[t], d; - a && u(a, d = T(t)) ? !o || !o.includes(d) ? r[d] = l : (c ||= {})[d] = l : Xi(e.emitsOptions, t) || t in i && l === i[t] || (i[t] = l, s = !0); + a && u(a, d = T(t)) ? !o || !o.includes(d) ? r[d] = l : (c ||= {})[d] = l : qi(e.emitsOptions, t) || t in i && l === i[t] || (i[t] = l, s = !0); } if (o) { let n = /* @__PURE__ */ M(r), i = c || t; for (let t = 0; t < o.length; t++) { let s = o[t]; - r[s] = da(a, n, s, i[s], e, !u(i, s)); + r[s] = sa(a, n, s, i[s], e, !u(i, s)); } } return s; } -function da(e, t, n, r, i, a) { +function sa(e, t, n, r, i, a) { let o = e[n]; if (o != null) { let e = u(o, "default"); @@ -2275,7 +2201,7 @@ function da(e, t, n, r, i, a) { let { propsDefaults: a } = i; if (n in a) r = a[n]; else { - let o = fo(i); + let o = oo(i); r = a[n] = e.call(null, t), o(); } } else r = e; @@ -2285,15 +2211,15 @@ function da(e, t, n, r, i, a) { } return r; } -var fa = /* @__PURE__ */ new WeakMap(); -function pa(e, r, i = !1) { - let a = i ? fa : r.propsCache, o = a.get(e); +var ca = /* @__PURE__ */ new WeakMap(); +function la(e, r, i = !1) { + let a = i ? ca : r.propsCache, o = a.get(e); if (o) return o; let c = e.props, l = {}, f = [], p = !1; if (!h(e)) { let t = (e) => { p = !0; - let [t, n] = pa(e, r, !0); + let [t, n] = la(e, r, !0); s(l, t), n && f.push(...n); }; !i && r.mixins.length && r.mixins.forEach(t), e.extends && t(e.extends), e.mixins && e.mixins.forEach(t); @@ -2301,11 +2227,11 @@ function pa(e, r, i = !1) { if (!c && !p) return v(e) && a.set(e, n), n; if (d(c)) for (let e = 0; e < c.length; e++) { let n = T(c[e]); - ma(n) && (l[n] = t); + ua(n) && (l[n] = t); } else if (c) for (let e in c) { let t = T(e); - if (ma(t)) { + if (ua(t)) { let n = c[e], r = l[t] = d(n) || h(n) ? { type: n } : s({}, n), i = r.type, a = !1, o = !0; if (d(i)) for (let e = 0; e < i.length; ++e) { let t = i[e], n = h(t) && t.name; @@ -2322,69 +2248,69 @@ function pa(e, r, i = !1) { let m = [l, f]; return v(e) && a.set(e, m), m; } -function ma(e) { +function ua(e) { return e[0] !== "$" && !ee(e); } -var ha = (e) => e === "_" || e === "_ctx" || e === "$stable", ga = (e) => d(e) ? e.map($a) : [$a(e)], _a = (e, t, n) => { +var da = (e) => e === "_" || e === "_ctx" || e === "$stable", fa = (e) => d(e) ? e.map(Xa) : [Xa(e)], pa = (e, t, n) => { if (t._n) return t; - let r = P((...e) => ga(t(...e)), n); + let r = P((...e) => fa(t(...e)), n); return r._c = !1, r; -}, va = (e, t, n) => { +}, ma = (e, t, n) => { let r = e._ctx; for (let n in e) { - if (ha(n)) continue; + if (da(n)) continue; let i = e[n]; - if (h(i)) t[n] = _a(n, i, r); + if (h(i)) t[n] = pa(n, i, r); else if (i != null) { - let e = ga(i); + let e = fa(i); t[n] = () => e; } } -}, ya = (e, t) => { - let n = ga(t); +}, ha = (e, t) => { + let n = fa(t); e.slots.default = () => n; -}, ba = (e, t, n) => { - for (let r in t) (n || !ha(r)) && (e[r] = t[r]); -}, xa = (e, t, n) => { - let r = e.slots = oa(); +}, ga = (e, t, n) => { + for (let r in t) (n || !da(r)) && (e[r] = t[r]); +}, _a = (e, t, n) => { + let r = e.slots = na(); if (e.vnode.shapeFlag & 32) { let e = t._; - e ? (ba(r, t, n), n && se(r, "_", e, !0)) : va(t, r); - } else t && ya(e, t); -}, Sa = (e, n, r) => { + e ? (ga(r, t, n), n && se(r, "_", e, !0)) : ma(t, r); + } else t && ha(e, t); +}, va = (e, n, r) => { let { vnode: i, slots: a } = e, o = !0, s = t; if (i.shapeFlag & 32) { let e = n._; - e ? r && e === 1 ? o = !1 : ba(a, n, r) : (o = !n.$stable, va(n, a)), s = n; - } else n && (ya(e, n), s = { default: 1 }); - if (o) for (let e in a) !ha(e) && s[e] == null && delete a[e]; -}, Ca = Fa; -function wa(e) { - return Ta(e); + e ? r && e === 1 ? o = !1 : ga(a, n, r) : (o = !n.$stable, ma(n, a)), s = n; + } else n && (ha(e, n), s = { default: 1 }); + if (o) for (let e in a) !da(e) && s[e] == null && delete a[e]; +}, ya = ja; +function ba(e) { + return xa(e); } -function Ta(e, i) { +function xa(e, i) { let a = de(); a.__VUE__ = !0; let { insert: o, remove: s, patchProp: c, createElement: l, createText: u, createComment: d, setText: f, setElementText: p, parentNode: m, nextSibling: h, setScopeId: g = r, insertStaticContent: _ } = e, v = (e, t, r, i = null, a = null, o = null, s = void 0, c = null, l = !!t.dynamicChildren) => { if (e === t) return; - e && !Ga(e, t) && (i = be(e), ge(e, a, o, !0), e = null), t.patchFlag === -2 && (l = !1, t.dynamicChildren = null), t.dynamicChildren && e && e.dynamicChildren && e.dynamicChildren.hasOnce && (t.dynamicChildren === n && (t.dynamicChildren = []), t.dynamicChildren.hasOnce = !0); + e && !Ha(e, t) && (i = be(e), ge(e, a, o, !0), e = null), t.patchFlag === -2 && (l = !1, t.dynamicChildren = null), t.dynamicChildren && e && e.dynamicChildren && e.dynamicChildren.hasOnce && (t.dynamicChildren === n && (t.dynamicChildren = []), t.dynamicChildren.hasOnce = !0); let { type: u, ref: d, shapeFlag: f } = t; switch (u) { - case Ia: + case Ma: y(e, t, r, i); break; - case R: + case Na: b(e, t, r, i); break; - case La: + case Pa: e ?? x(t, r, i, s); break; case L: ae(e, t, r, i, a, o, s, c, l); break; - default: f & 1 ? w(e, t, r, i, a, o, s, c, l) : f & 6 ? D(e, t, r, i, a, o, s, c, l) : (f & 64 || f & 128) && u.process(e, t, r, i, a, o, s, c, l, Se); + default: f & 1 ? w(e, t, r, i, a, o, s, c, l) : f & 6 ? D(e, t, r, i, a, o, s, c, l) : (f & 64 || f & 128) && u.process(e, t, r, i, a, o, s, c, l, Ce); } - d != null && a ? Br(d, e && e.ref, o, t || e, !t) : d == null && e && e.ref != null && Br(e.ref, null, o, e, !0); + d != null && a ? Lr(d, e && e.ref, o, t || e, !t) : d == null && e && e.ref != null && Lr(e.ref, null, o, e, !0); }, y = (e, t, n, r) => { if (e == null) o(t.el = u(t.children), n, r); else { @@ -2415,36 +2341,36 @@ function Ta(e, i) { } }, te = (e, t, n, r, i, a, s, u) => { let d, f, { props: m, shapeFlag: h, transition: g, dirs: _ } = e; - if (d = e.el = l(e.type, a, m && m.is, m), h & 8 ? p(d, e.children) : h & 16 && T(e.children, d, null, r, i, Ea(e, a), s, u), _ && Jn(e, null, r, "created"), ne(d, e, e.scopeId, s, r), m) { + if (d = e.el = l(e.type, a, m && m.is, m), h & 8 ? p(d, e.children) : h & 16 && T(e.children, d, null, r, i, Sa(e, a), s, u), _ && Gn(e, null, r, "created"), ne(d, e, e.scopeId, s, r), m) { for (let e in m) e !== "value" && !ee(e) && c(d, e, null, m[e], a, r); - "value" in m && c(d, "value", null, m.value, a), (f = m.onVnodeBeforeMount) && no(f, r, e); + "value" in m && c(d, "value", null, m.value, a), (f = m.onVnodeBeforeMount) && $a(f, r, e); } - _ && Jn(e, null, r, "beforeMount"); - let v = Oa(i, g); - v && g.beforeEnter(d), o(d, t, n), ((f = m && m.onVnodeMounted) || v || _) && Ca(() => { + _ && Gn(e, null, r, "beforeMount"); + let v = wa(i, g); + v && g.beforeEnter(d), o(d, t, n), ((f = m && m.onVnodeMounted) || v || _) && ya(() => { try { - f && no(f, r, e), v && g.enter(d), _ && Jn(e, null, r, "mounted"); + f && $a(f, r, e), v && g.enter(d), _ && Gn(e, null, r, "mounted"); } finally {} }, i); }, ne = (e, t, n, r, i) => { if (n && g(e, n), r) for (let t = 0; t < r.length; t++) g(e, r[t]); if (i) { let n = i.subTree; - if (t === n || Pa(n.type) && (n.ssContent === t || n.ssFallback === t)) { + if (t === n || Aa(n.type) && (n.ssContent === t || n.ssFallback === t)) { let t = i.vnode; ne(e, t, t.scopeId, t.slotScopeIds, i.parent); } } }, T = (e, t, n, r, i, a, o, s, c = 0) => { for (let l = c; l < e.length; l++) { - let c = e[l] = s ? eo(e[l]) : $a(e[l]); + let c = e[l] = s ? Za(e[l]) : Xa(e[l]); v(null, c, t, n, r, i, a, o, s); } }, re = (e, n, r, i, a, o, s) => { let l = n.el = e.el, { patchFlag: u, dynamicChildren: d, dirs: f } = n; u |= e.patchFlag & 16; let m = e.props || t, h = n.props || t, g; - if (r && Da(r, !1), (g = h.onVnodeBeforeUpdate) && no(g, r, n, e), f && Jn(n, e, r, "beforeUpdate"), r && Da(r, !0), d && (!e.dynamicChildren || e.dynamicChildren.length !== d.length) && (u = 0, s = !1, d = null), (m.innerHTML && h.innerHTML == null || m.textContent && h.textContent == null) && p(l, ""), d ? E(e.dynamicChildren, d, l, r, i, Ea(n, a), o) : s || fe(e, n, l, null, r, i, Ea(n, a), o, !1), u > 0) { + if (r && Ca(r, !1), (g = h.onVnodeBeforeUpdate) && $a(g, r, n, e), f && Gn(n, e, r, "beforeUpdate"), r && Ca(r, !0), d && (!e.dynamicChildren || e.dynamicChildren.length !== d.length) && (u = 0, s = !1, d = null), (m.innerHTML && h.innerHTML == null || m.textContent && h.textContent == null) && p(l, ""), d ? E(e.dynamicChildren, d, l, r, i, Sa(n, a), o) : s || fe(e, n, l, null, r, i, Sa(n, a), o, !1), u > 0) { if (u & 16) ie(l, m, h, r, a); else if (u & 2 && m.class !== h.class && c(l, "class", null, h.class, a), u & 4 && c(l, "style", m.style, h.style, a), u & 8) { let e = n.dynamicProps; @@ -2455,13 +2381,13 @@ function Ta(e, i) { } u & 1 && e.children !== n.children && p(l, n.children); } else !s && d == null && ie(l, m, h, r, a); - ((g = h.onVnodeUpdated) || f) && Ca(() => { - g && no(g, r, n, e), f && Jn(n, e, r, "updated"); + ((g = h.onVnodeUpdated) || f) && ya(() => { + g && $a(g, r, n, e), f && Gn(n, e, r, "updated"); }, i); }, E = (e, t, n, r, i, a, o) => { for (let s = 0; s < t.length; s++) { - let c = e[s], l = t[s], u = c.el || Na(c), d = u && (c.type === L || !Ga(c, l) || c.shapeFlag & 198) ? m(u) : n; - v(c, l, d, null, r, i, a, o, !0); + let c = e[s], l = t[s], u = c.el && (c.type === L || !Ha(c, l) || c.shapeFlag & 198) ? m(c.el) : n; + v(c, l, u, null, r, i, a, o, !0); } }, ie = (e, n, r, i, a) => { if (n !== r) { @@ -2475,35 +2401,35 @@ function Ta(e, i) { } }, ae = (e, t, n, r, i, a, s, c, l) => { let d = t.el = e ? e.el : u(""), f = t.anchor = e ? e.anchor : u(""), { patchFlag: p, dynamicChildren: m, slotScopeIds: h } = t; - h && (c = c ? c.concat(h) : h), e == null ? (o(d, n, r), o(f, n, r), T(t.children || [], n, f, i, a, s, c, l)) : p > 0 && p & 64 && m && e.dynamicChildren && e.dynamicChildren.length === m.length ? (E(e.dynamicChildren, m, n, i, a, s, c), (t.key != null || i && t === i.subTree) && ka(e, t, !0)) : fe(e, t, n, f, i, a, s, c, l); + h && (c = c ? c.concat(h) : h), e == null ? (o(d, n, r), o(f, n, r), T(t.children || [], n, f, i, a, s, c, l)) : p > 0 && p & 64 && m && e.dynamicChildren && e.dynamicChildren.length === m.length ? (E(e.dynamicChildren, m, n, i, a, s, c), (t.key != null || i && t === i.subTree) && Ta(e, t, !0)) : fe(e, t, n, f, i, a, s, c, l); }, D = (e, t, n, r, i, a, o, s, c) => { t.slotScopeIds = s, e == null ? t.shapeFlag & 512 ? i.ctx.activate(t, n, r, o, c) : se(t, n, r, i, a, o, c) : ce(e, t, c); }, se = (e, t, n, r, i, a, o) => { - let s = e.component = oo(e, r, i); - if (qr(e) && (s.ctx.renderer = Se), go(s, !1, o), s.asyncDep) { - if (i && i.registerDep(s, le, o, a), !e.el) { - let r = s.subTree = U(R); + let s = e.component = no(e, r, i); + if (Wr(e) && (s.ctx.renderer = Ce), uo(s, !1, o), s.asyncDep) { + if (i && i.registerDep(s, le, o), !e.el) { + let r = s.subTree = H(Na); b(null, r, t, n), e.placeholder = r.el; } } else le(s, e, t, n, i, a, o); }, ce = (e, t, n) => { let r = t.component = e.component; - if (ta(e, t, n)) { + if (Zi(e, t, n)) { if (r.asyncDep && !r.asyncResolved) { - t.el = e.el, t.placeholder = e.placeholder, ue(r, t, n); + t.el = e.el, ue(r, t, n); return; } r.next = t, r.update(); - } else t.el = e.el, t.placeholder = e.placeholder, r.vnode = t; + } else t.el = e.el, r.vnode = t; }, le = (e, t, n, r, i, a, o) => { let s = () => { if (e.isMounted) { let { next: t, bu: n, u: r, parent: s, vnode: c } = e; { - let n = ja(e); + let n = Da(e); if (n) { t && (t.el = c.el, ue(e, t, o)), n.asyncDep.then(() => { - Ca(() => { + ya(() => { e.isUnmounted || l(); }, i); }); @@ -2511,37 +2437,37 @@ function Ta(e, i) { } } let u = t, d; - Da(e, !1), t ? (t.el = c.el, ue(e, t, o)) : t = c, n && oe(n), (d = t.props && t.props.onVnodeBeforeUpdate) && no(d, s, t, c), Da(e, !0); - let f = Zi(e), p = e.subTree; - e.subTree = f, v(p, f, m(p.el), be(p), e, i, a), t.el = f.el, u === null && ia(e, f.el), r && Ca(r, i), (d = t.props && t.props.onVnodeUpdated) && Ca(() => no(d, s, t, c), i); + Ca(e, !1), t ? (t.el = c.el, ue(e, t, o)) : t = c, n && oe(n), (d = t.props && t.props.onVnodeBeforeUpdate) && $a(d, s, t, c), Ca(e, !0); + let f = Ji(e), p = e.subTree; + e.subTree = f, v(p, f, m(p.el), be(p), e, i, a), t.el = f.el, u === null && ea(e, f.el), r && ya(r, i), (d = t.props && t.props.onVnodeUpdated) && ya(() => $a(d, s, t, c), i); } else { - let o, { el: s, props: c } = t, { bm: l, m: u, parent: d, root: f, type: p } = e, m = Wr(t); - if (Da(e, !1), l && oe(l), !m && (o = c && c.onVnodeBeforeMount) && no(o, d, t), Da(e, !0), s && we) { + let o, { el: s, props: c } = t, { bm: l, m: u, parent: d, root: f, type: p } = e, m = Vr(t); + if (Ca(e, !1), l && oe(l), !m && (o = c && c.onVnodeBeforeMount) && $a(o, d, t), Ca(e, !0), s && Te) { let t = () => { - e.subTree = Zi(e), we(s, e.subTree, e, i, null); + e.subTree = Ji(e), Te(s, e.subTree, e, i, null); }; m && p.__asyncHydrate ? p.__asyncHydrate(s, e, t) : t(); } else { f.ce && f.ce._hasShadowRoot() && f.ce._injectChildStyle(p, e.parent ? e.parent.type : void 0); - let o = e.subTree = Zi(e); + let o = e.subTree = Ji(e); v(null, o, n, r, e, i, a), t.el = o.el; } - if (u && Ca(u, i), !m && (o = c && c.onVnodeMounted)) { + if (u && ya(u, i), !m && (o = c && c.onVnodeMounted)) { let e = t; - Ca(() => no(o, d, e), i); + ya(() => $a(o, d, e), i); } - (t.shapeFlag & 256 || d && Wr(d.vnode) && d.vnode.shapeFlag & 256) && e.a && Ca(e.a, i), e.isMounted = !0, t = n = r = null; + (t.shapeFlag & 256 || d && Vr(d.vnode) && d.vnode.shapeFlag & 256) && e.a && ya(e.a, i), e.isMounted = !0, t = n = r = null; } }; e.scope.on(); let c = e.effect = new Pe(s); e.scope.off(); let l = e.update = c.run.bind(c), u = e.job = c.runIfDirty.bind(c); - u.i = e, u.id = e.uid, c.scheduler = () => Fn(u), Da(e, !0), l(); + u.i = e, u.id = e.uid, c.scheduler = () => Pn(u), Ca(e, !0), l(); }, ue = (e, t, n) => { t.component = e; let r = e.vnode.props; - e.vnode = t, e.next = null, la(e, t.props, r, n), Sa(e, t.children, n), Ye(), Rn(e), Xe(); + e.vnode = t, e.next = null, aa(e, t.props, r, n), va(e, t.children, n), Ye(), Ln(e), Xe(); }, fe = (e, t, n, r, i, a, o, s, c = !1) => { let l = e && e.children, u = e ? e.shapeFlag : 0, d = t.children, { patchFlag: f, shapeFlag: m } = t; if (f > 0) { @@ -2559,34 +2485,34 @@ function Ta(e, i) { e ||= n, t ||= n; let u = e.length, d = t.length, f = Math.min(u, d), p = 0; for (; p < f; p++) { - let n = t[p] = l ? eo(t[p]) : $a(t[p]); + let n = t[p] = l ? Za(t[p]) : Xa(t[p]); v(e[p], n, r, null, a, o, s, c, l); } u > d ? ye(e, a, o, !0, !1, f) : T(t, r, i, a, o, s, c, l, f); }, me = (e, t, r, i, a, o, s, c, l) => { let u = 0, d = t.length, f = e.length - 1, p = d - 1; for (; u <= f && u <= p;) { - let n = e[u], i = t[u] = l ? eo(t[u]) : $a(t[u]); - if (Ga(n, i)) v(n, i, r, null, a, o, s, c, l); + let n = e[u], i = t[u] = l ? Za(t[u]) : Xa(t[u]); + if (Ha(n, i)) v(n, i, r, null, a, o, s, c, l); else break; u++; } for (; u <= f && u <= p;) { - let n = e[f], i = t[p] = l ? eo(t[p]) : $a(t[p]); - if (Ga(n, i)) v(n, i, r, null, a, o, s, c, l); + let n = e[f], i = t[p] = l ? Za(t[p]) : Xa(t[p]); + if (Ha(n, i)) v(n, i, r, null, a, o, s, c, l); else break; f--, p--; } if (u > f) { if (u <= p) { let e = p + 1, n = e < d ? t[e].el : i; - for (; u <= p;) v(null, t[u] = l ? eo(t[u]) : $a(t[u]), r, n, a, o, s, c, l), u++; + for (; u <= p;) v(null, t[u] = l ? Za(t[u]) : Xa(t[u]), r, n, a, o, s, c, l), u++; } } else if (u > p) for (; u <= f;) ge(e[u], a, o, !0), u++; else { let m = u, h = u, g = /* @__PURE__ */ new Map(); for (u = h; u <= p; u++) { - let e = t[u] = l ? eo(t[u]) : $a(t[u]); + let e = t[u] = l ? Za(t[u]) : Xa(t[u]); e.key != null && g.set(e.key, u); } let _, y = 0, b = p - h + 1, x = !1, S = 0, C = Array(b); @@ -2599,15 +2525,15 @@ function Ta(e, i) { } let i; if (n.key != null) i = g.get(n.key); - else for (_ = h; _ <= p; _++) if (C[_ - h] === 0 && Ga(n, t[_])) { + else for (_ = h; _ <= p; _++) if (C[_ - h] === 0 && Ha(n, t[_])) { i = _; break; } i === void 0 ? ge(n, a, o, !0) : (C[i - h] = u + 1, i >= S ? S = i : x = !0, v(n, t[i], r, null, a, o, s, c, l), y++); } - let w = x ? Aa(C) : n; + let w = x ? Ea(C) : n; for (_ = w.length - 1, u = b - 1; u >= 0; u--) { - let e = h + u, n = t[e], f = t[e + 1], p = e + 1 < d ? f.el || Na(f) : i; + let e = h + u, n = t[e], f = t[e + 1], p = e + 1 < d ? f.el || ka(f) : i; C[u] === 0 ? v(null, n, r, p, a, o, s, c, l) : x && (_ < 0 || u !== w[_] ? he(n, r, p, 2) : _--); } } @@ -2615,20 +2541,20 @@ function Ta(e, i) { let { el: a, type: c, transition: l, children: u, shapeFlag: d } = e; if (d & 6) he(e.component.subTree, t, n, r); else if (d & 128) e.suspense.move(t, n, r); - else if (d & 64) c.move(e, t, n, Se); + else if (d & 64) c.move(e, t, n, Ce); else if (c === L) { o(a, t, n); for (let e = 0; e < u.length; e++) he(u[e], t, n, r); o(e.anchor, t, n); - } else if (c === La) S(e, t, n); + } else if (c === Pa) S(e, t, n); else if (r !== 2 && d & 1 && l) { - if (r === 0) l.persisted && !a[br] ? o(a, t, n) : (l.beforeEnter(a), o(a, t, n), Ca(() => l.enter(a), i)); + if (r === 0) l.persisted && !a[_r] ? o(a, t, n) : (l.beforeEnter(a), o(a, t, n), ya(() => l.enter(a), i)); else { let { leave: r, delayLeave: i, afterLeave: c } = l, u = () => { e.ctx.isUnmounted ? s(a) : o(a, t, n); }, d = () => { - let e = a._isLeaving || !!a[br]; - a._isLeaving && a[br](!0), l.persisted && !e ? u() : r(a, () => { + let e = a._isLeaving || !!a[_r]; + a._isLeaving && a[_r](!0), l.persisted && !e ? u() : r(a, () => { u(), c && c(); }); }; @@ -2637,47 +2563,47 @@ function Ta(e, i) { } else o(a, t, n); }, ge = (e, t, n, r = !1, i = !1) => { let { type: a, props: o, ref: s, children: c, dynamicChildren: l, shapeFlag: u, patchFlag: d, dirs: f, cacheIndex: p, memo: m } = e; - if ((d === -2 || l && l.hasOnce) && (i = !1), s != null && (Ye(), Br(s, null, n, e, !0), Xe()), p == null || e.ctx && e.ctx !== t || (t.renderCache[p] = void 0), u & 256) { + if ((d === -2 || l && l.hasOnce) && (i = !1), s != null && (Ye(), Lr(s, null, n, e, !0), Xe()), p == null || e.ctx && e.ctx !== t || (t.renderCache[p] = void 0), u & 256) { t.ctx.deactivate(e); return; } - let h = u & 1 && f, g = !Wr(e), _; - if (g && (_ = o && o.onVnodeBeforeUnmount) && no(_, t, e), u & 6) ve(e.component, n, r); + let h = u & 1 && f, g = !Vr(e), _; + if (g && (_ = o && o.onVnodeBeforeUnmount) && $a(_, t, e), u & 6) ve(e.component, n, r); else { if (u & 128) { e.suspense.unmount(n, r); return; } - h && Jn(e, null, t, "beforeUnmount"), u & 64 ? e.type.remove(e, t, n, Se, r) : l && !l.hasOnce && (a !== L || d > 0 && d & 64) ? ye(l, t, n, !1, !0) : (a === L && d & 384 || !i && u & 16) && ye(c, t, n), r && O(e); + h && Gn(e, null, t, "beforeUnmount"), u & 64 ? e.type.remove(e, t, n, Ce, r) : l && !l.hasOnce && (a !== L || d > 0 && d & 64) ? ye(l, t, n, !1, !0) : (a === L && d & 384 || !i && u & 16) && ye(c, t, n), r && O(e); } let v = m != null && p == null; - (g && (_ = o && o.onVnodeUnmounted) || h || v) && Ca(() => { - _ && no(_, t, e), h && Jn(e, null, t, "unmounted"), v && (e.el = null); + (g && (_ = o && o.onVnodeUnmounted) || h || v) && ya(() => { + _ && $a(_, t, e), h && Gn(e, null, t, "unmounted"), v && (e.el = null); }, n); }, O = (e) => { - let { type: t, el: n, anchor: r, transition: i } = e, a = t === L; - if (a && !i) { + let { type: t, el: n, anchor: r, transition: i } = e; + if (t === L) { _e(n, r); return; } - if (t === La) { + if (t === Pa) { C(e), i && !i.persisted && i.afterLeave && i.afterLeave(); return; } - let o = a ? Pr(e) : e, c = () => { - a ? m(n) && _e(n, r) : s(n), i && !i.persisted && i.afterLeave && i.afterLeave(); + let a = () => { + s(n), i && !i.persisted && i.afterLeave && i.afterLeave(); }; - if (o && o.shapeFlag & 1 && i && !i.persisted) { - let { leave: e, delayLeave: t } = i, n = o.el, r = () => e(n, c); - t ? t(n, c, r) : r(); - } else c(); + if (e.shapeFlag & 1 && i && !i.persisted) { + let { leave: t, delayLeave: r } = i, o = () => t(n, a); + r ? r(e.el, a, o) : o(); + } else a(); }, _e = (e, t) => { let n; for (; e !== t;) n = h(e), s(e), e = n; s(t); }, ve = (e, t, n) => { let { bum: r, scope: i, job: a, subTree: o, um: s, m: c, a: l } = e; - Ma(c), Ma(l), r && oe(r), i.stop(), a ? (a.flags |= 8, ge(o, e, t, n)) : e.vnode.el && o && (o.transition = e.vnode.transition, ge(o, e, t, n)), s && Ca(s, t), Ca(() => { + Oa(c), Oa(l), r && oe(r), i.stop(), a ? (a.flags |= 8, ge(o, e, t, n)) : e.vnode.el && o && (o.transition = e.vnode.transition, ge(o, e, t, n)), s && ya(s, t), ya(() => { e.isUnmounted = !0; }, t); }, ye = (e, t, n, r = !1, i = !1, a = 0) => { @@ -2685,13 +2611,12 @@ function Ta(e, i) { }, be = (e) => { if (e.shapeFlag & 6) return be(e.component.subTree); if (e.shapeFlag & 128) return e.suspense.next(); - let t = h(e.anchor || e.el), n = t && t[sr]; + let t = h(e.anchor || e.el), n = t && t[ir]; return n ? h(n) : t; - }, xe = (e, t, n) => { - Vn(() => { - e == null ? t._vnode && ge(t._vnode, null, null, !0) : v(t._vnode || null, e, t, null, null, null, n), t._vnode = e; - }, e && t._vnode ? void 0 : e && e.component ? e.component.uid : ao()); - }, Se = { + }, xe = !1, Se = (e, t, n) => { + let r; + e == null ? t._vnode && (ge(t._vnode, null, null, !0), r = t._vnode.component) : v(t._vnode || null, e, t, null, null, null, n), t._vnode = e, xe ||= (xe = !0, Ln(r), Rn(), !1); + }, Ce = { p: v, um: ge, m: he, @@ -2702,30 +2627,30 @@ function Ta(e, i) { pbc: E, n: be, o: e - }, Ce, we; - return i && ([Ce, we] = i(Se)), { - render: xe, - hydrate: Ce, - createApp: Ui(xe, Ce) + }, we, Te; + return i && ([we, Te] = i(Ce)), { + render: Se, + hydrate: we, + createApp: Bi(Se, we) }; } -function Ea({ type: e, props: t }, n) { +function Sa({ type: e, props: t }, n) { return n === "svg" && e === "foreignObject" || n === "mathml" && e === "annotation-xml" && t && t.encoding && t.encoding.includes("html") ? void 0 : n; } -function Da({ effect: e, job: t }, n) { +function Ca({ effect: e, job: t }, n) { n ? (e.flags |= 32, t.flags |= 4) : (e.flags &= -33, t.flags &= -5); } -function Oa(e, t) { +function wa(e, t) { return (!e || e && !e.pendingBranch) && t && !t.persisted; } -function ka(e, t, n = !1) { +function Ta(e, t, n = !1) { let r = e.children, i = t.children; if (d(r) && d(i)) for (let e = 0; e < r.length; e++) { let t = r[e], a = i[e]; - a.shapeFlag & 1 && !a.dynamicChildren && ((a.patchFlag <= 0 || a.patchFlag === 32) && (a = i[e] = eo(i[e]), a.el = t.el), !n && a.patchFlag !== -2 && ka(t, a)), a.type === Ia && (a.patchFlag === -1 && (a = i[e] = eo(a)), a.el = t.el), a.type === R && !a.el && (a.el = t.el); + a.shapeFlag & 1 && !a.dynamicChildren && ((a.patchFlag <= 0 || a.patchFlag === 32) && (a = i[e] = Za(i[e]), a.el = t.el), !n && a.patchFlag !== -2 && Ta(t, a)), a.type === Ma && (a.patchFlag === -1 && (a = i[e] = Za(a)), a.el = t.el), a.type === Na && !a.el && (a.el = t.el); } } -function Aa(e) { +function Ea(e) { let t = e.slice(), n = [0], r, i, a, o, s, c = e.length; for (r = 0; r < c; r++) { let c = e[r]; @@ -2741,63 +2666,63 @@ function Aa(e) { for (a = n.length, o = n[a - 1]; a-- > 0;) n[a] = o, o = t[o]; return n; } -function ja(e) { +function Da(e) { let t = e.subTree.component; - if (t) return t.asyncDep && !t.asyncResolved ? t : ja(t); + if (t) return t.asyncDep && !t.asyncResolved ? t : Da(t); } -function Ma(e) { +function Oa(e) { if (e) for (let t = 0; t < e.length; t++) e[t].flags |= 8; } -function Na(e) { +function ka(e) { if (e.placeholder) return e.placeholder; let t = e.component; - return t ? Na(t.subTree) : null; + return t ? ka(t.subTree) : null; } -var Pa = (e) => e.__isSuspense; -function Fa(e, t) { - t && t.pendingBranch ? d(e) ? t.effects.push(...e) : t.effects.push(e) : Ln(e); +var Aa = (e) => e.__isSuspense; +function ja(e, t) { + t && t.pendingBranch ? d(e) ? t.effects.push(...e) : t.effects.push(e) : In(e); } -var L = /* @__PURE__ */ Symbol.for("v-fgt"), Ia = /* @__PURE__ */ Symbol.for("v-txt"), R = /* @__PURE__ */ Symbol.for("v-cmt"), La = /* @__PURE__ */ Symbol.for("v-stc"), Ra = [], za = null; -function z(e = !1) { - Ra.push(za = e ? null : []); +var L = /* @__PURE__ */ Symbol.for("v-fgt"), Ma = /* @__PURE__ */ Symbol.for("v-txt"), Na = /* @__PURE__ */ Symbol.for("v-cmt"), Pa = /* @__PURE__ */ Symbol.for("v-stc"), Fa = [], Ia = null; +function R(e = !1) { + Fa.push(Ia = e ? null : []); } -function Ba() { - Ra.pop(), za = Ra[Ra.length - 1] || null; +function La() { + Fa.pop(), Ia = Fa[Fa.length - 1] || null; } -var Va = 1; -function Ha(e, t = !1) { - Va += e, e < 0 && za && t && (za.hasOnce = !0); +var Ra = 1; +function za(e, t = !1) { + Ra += e, e < 0 && Ia && t && (Ia.hasOnce = !0); } -function Ua(e) { - return e.dynamicChildren = Va > 0 ? za || n : null, Ba(), Va > 0 && za && za.push(e), e; +function Ba(e) { + return e.dynamicChildren = Ra > 0 ? Ia || n : null, La(), Ra > 0 && Ia && Ia.push(e), e; } -function B(e, t, n, r, i, a) { - return Ua(H(e, t, n, r, i, a, !0)); +function z(e, t, n, r, i, a) { + return Ba(V(e, t, n, r, i, a, !0)); } -function V(e, t, n, r, i) { - return Ua(U(e, t, n, r, i, !0)); +function B(e, t, n, r, i) { + return Ba(H(e, t, n, r, i, !0)); } -function Wa(e) { +function Va(e) { return e ? e.__v_isVNode === !0 : !1; } -function Ga(e, t) { +function Ha(e, t) { return e.type === t.type && e.key === t.key; } -var Ka = ({ key: e }) => e ?? null, qa = ({ ref: e, ref_key: t, ref_for: n }) => (typeof e == "number" && (e = "" + e), e == null ? null : g(e) || /* @__PURE__ */ N(e) || h(e) ? { - i: Wn, +var Ua = ({ key: e }) => e ?? null, Wa = ({ ref: e, ref_key: t, ref_for: n }) => (typeof e == "number" && (e = "" + e), e == null ? null : g(e) || /* @__PURE__ */ N(e) || h(e) ? { + i: Vn, r: e, k: t, f: !!n } : e); -function H(e, t = null, n = null, r = 0, i = null, a = e === L ? 0 : 1, o = !1, s = !1) { +function V(e, t = null, n = null, r = 0, i = null, a = e === L ? 0 : 1, o = !1, s = !1) { let c = { __v_isVNode: !0, __v_skip: !0, type: e, props: t, - key: t && Ka(t), - ref: t && qa(t), - scopeId: Gn, + key: t && Ua(t), + ref: t && Wa(t), + scopeId: Hn, slotScopeIds: null, children: n, component: null, @@ -2817,35 +2742,35 @@ function H(e, t = null, n = null, r = 0, i = null, a = e === L ? 0 : 1, o = !1, dynamicProps: i, dynamicChildren: null, appContext: null, - ctx: Wn + ctx: Vn }; - return s ? (to(c, n), a & 128 && e.normalize(c)) : n && (c.shapeFlag |= g(n) ? 8 : 16), Va > 0 && !o && za && (c.patchFlag > 0 || a & 6) && c.patchFlag !== 32 && za.push(c), c; + return s ? (Qa(c, n), a & 128 && e.normalize(c)) : n && (c.shapeFlag |= g(n) ? 8 : 16), Ra > 0 && !o && Ia && (c.patchFlag > 0 || a & 6) && c.patchFlag !== 32 && Ia.push(c), c; } -var U = Ja; -function Ja(e, t = null, n = null, r = 0, i = null, a = !1) { - if (e && e !== fi || (e = R), Wa(e)) { - let r = Xa(e, t, !0); - return n && to(r, n), Va > 0 && !a && za && (r.shapeFlag & 6 ? za[za.indexOf(e)] = r : za.push(r)), r.patchFlag = -2, r; +var H = Ga; +function Ga(e, t = null, n = null, r = 0, i = null, a = !1) { + if (e && e !== li || (e = Na), Va(e)) { + let r = qa(e, t, !0); + return n && Qa(r, n), Ra > 0 && !a && Ia && (r.shapeFlag & 6 ? Ia[Ia.indexOf(e)] = r : Ia.push(r)), r.patchFlag = -2, r; } - if (wo(e) && (e = e.__vccOpts), t) { - t = Ya(t); + if (yo(e) && (e = e.__vccOpts), t) { + t = Ka(t); let { class: e, style: n } = t; - e && !g(e) && (t.class = O(e)), v(n) && (/* @__PURE__ */ Xt(n) && !d(n) && (n = s({}, n)), t.style = fe(n)); + e && !g(e) && (t.class = O(e)), v(n) && (/* @__PURE__ */ Yt(n) && !d(n) && (n = s({}, n)), t.style = fe(n)); } - let o = g(e) ? 1 : Pa(e) ? 128 : cr(e) ? 64 : v(e) ? 4 : h(e) ? 2 : 0; - return H(e, t, n, r, i, o, a, !0); + let o = g(e) ? 1 : Aa(e) ? 128 : ar(e) ? 64 : v(e) ? 4 : h(e) ? 2 : 0; + return V(e, t, n, r, i, o, a, !0); } -function Ya(e) { - return e ? /* @__PURE__ */ Xt(e) || sa(e) ? s({}, e) : e : null; +function Ka(e) { + return e ? /* @__PURE__ */ Yt(e) || ra(e) ? s({}, e) : e : null; } -function Xa(e, t, n = !1, r = !1) { - let { props: i, ref: a, patchFlag: o, children: s, transition: c } = e, l = t ? G(i || {}, t) : i, u = { +function qa(e, t, n = !1, r = !1) { + let { props: i, ref: a, patchFlag: o, children: s, transition: c } = e, l = t ? W(i || {}, t) : i, u = { __v_isVNode: !0, __v_skip: !0, type: e.type, props: l, - key: l && Ka(l), - ref: t && t.ref ? n && a ? d(a) ? a.concat(qa(t)) : [a, qa(t)] : qa(t) : a, + key: l && Ua(l), + ref: t && t.ref ? n && a ? d(a) ? a.concat(Wa(t)) : [a, Wa(t)] : Wa(t) : a, scopeId: e.scopeId, slotScopeIds: e.slotScopeIds, children: s, @@ -2862,8 +2787,8 @@ function Xa(e, t, n = !1, r = !1) { transition: c, component: e.component, suspense: e.suspense, - ssContent: e.ssContent && Xa(e.ssContent), - ssFallback: e.ssFallback && Xa(e.ssFallback), + ssContent: e.ssContent && qa(e.ssContent), + ssFallback: e.ssFallback && qa(e.ssFallback), placeholder: e.placeholder, el: e.el, anchor: e.anchor, @@ -2871,52 +2796,52 @@ function Xa(e, t, n = !1, r = !1) { ce: e.ce, cacheIndex: e.cacheIndex }; - return c && r && Mr(u, c.clone(u)), u; + return c && r && Ar(u, c.clone(u)), u; } -function Za(e = " ", t = 0) { - return U(Ia, null, e, t); +function Ja(e = " ", t = 0) { + return H(Ma, null, e, t); } -function Qa(e, t) { - let n = U(La, null, e); +function Ya(e, t) { + let n = H(Pa, null, e); return n.staticCount = t, n; } -function W(e = "", t = !1) { - return t ? (z(), V(R, null, e)) : U(R, null, e); +function U(e = "", t = !1) { + return t ? (R(), B(Na, null, e)) : H(Na, null, e); } -function $a(e) { - return e == null || typeof e == "boolean" ? U(R) : d(e) ? U(L, null, e.slice()) : Wa(e) ? eo(e) : U(Ia, null, String(e)); +function Xa(e) { + return e == null || typeof e == "boolean" ? H(Na) : d(e) ? H(L, null, e.slice()) : Va(e) ? Za(e) : H(Ma, null, String(e)); } -function eo(e) { - return e.el === null && e.patchFlag !== -1 || e.memo ? e : Xa(e); +function Za(e) { + return e.el === null && e.patchFlag !== -1 || e.memo ? e : qa(e); } -function to(e, t) { +function Qa(e, t) { let n = 0, { shapeFlag: r } = e; if (t == null) t = null; else if (d(t)) n = 16; else if (typeof t == "object") { if (r & 65) { let n = t.default; - n && (n._c && (n._d = !1), to(e, n()), n._c && (n._d = !0)); + n && (n._c && (n._d = !1), Qa(e, n()), n._c && (n._d = !0)); return; } { n = 32; let r = t._; - !r && !sa(t) ? t._ctx = Wn : r === 3 && Wn && (Wn.slots._ === 1 ? t._ = 1 : (t._ = 2, e.patchFlag |= 1024)); + !r && !ra(t) ? t._ctx = Vn : r === 3 && Vn && (Vn.slots._ === 1 ? t._ = 1 : (t._ = 2, e.patchFlag |= 1024)); } } else if (h(t)) { if (r & 65) { - to(e, { default: t }); + Qa(e, { default: t }); return; } t = { default: t, - _ctx: Wn + _ctx: Vn }, n = 32; - } else t = String(t), r & 64 ? (n = 16, t = [Za(t)]) : n = 8; + } else t = String(t), r & 64 ? (n = 16, t = [Ja(t)]) : n = 8; e.children = t, e.shapeFlag |= n; } -function G(...e) { +function W(...e) { let t = {}; for (let n = 0; n < e.length; n++) { let r = e[n]; @@ -2929,16 +2854,13 @@ function G(...e) { } return t; } -function no(e, t, n, r = null) { - Cn(e, t, 7, [n, r]); +function $a(e, t, n, r = null) { + Sn(e, t, 7, [n, r]); } -var ro = Vi(), io = 0; -function ao() { - return io; -} -function oo(e, n, r) { - let i = e.type, a = (n ? n.appContext : e.appContext) || ro, o = { - uid: io++, +var eo = Ri(), to = 0; +function no(e, n, r) { + let i = e.type, a = (n ? n.appContext : e.appContext) || eo, o = { + uid: to++, vnode: e, type: i, parent: n, @@ -2965,8 +2887,8 @@ function oo(e, n, r) { renderCache: [], components: null, directives: null, - propsOptions: pa(i, a), - emitsOptions: Yi(i, a), + propsOptions: la(i, a), + emitsOptions: Ki(i, a), emit: null, emitted: null, propsDefaults: t, @@ -3001,9 +2923,9 @@ function oo(e, n, r) { ec: null, sp: null }; - return o.ctx = { _: o }, o.root = n ? n.root : o, o.emit = qi.bind(null, o), e.ce && e.ce(o), o; + return o.ctx = { _: o }, o.root = n ? n.root : o, o.emit = Wi.bind(null, o), e.ce && e.ce(o), o; } -var so = null, co = () => so || Wn, lo, uo; +var G = null, ro = () => G || Vn, io, ao; { let e = de(), t = (t, n) => { let r; @@ -3011,71 +2933,71 @@ var so = null, co = () => so || Wn, lo, uo; r.length > 1 ? r.forEach((t) => t(e)) : r[0](e); }; }; - lo = t("__VUE_INSTANCE_SETTERS__", (e) => so = e), uo = t("__VUE_SSR_SETTERS__", (e) => ho = e); + io = t("__VUE_INSTANCE_SETTERS__", (e) => G = e), ao = t("__VUE_SSR_SETTERS__", (e) => lo = e); } -var fo = (e) => { - let t = so; - return lo(e), e.scope.on(), () => { - e.scope.off(), lo(t); +var oo = (e) => { + let t = G; + return io(e), e.scope.on(), () => { + e.scope.off(), io(t); }; -}, po = () => { - so && so.scope.off(), lo(null); +}, so = () => { + G && G.scope.off(), io(null); }; -function mo(e) { +function co(e) { return e.vnode.shapeFlag & 4; } -var ho = !1; -function go(e, t = !1, n = !1) { - t && uo(t); - let { props: r, children: i } = e.vnode, a = mo(e); - ca(e, r, a, t), xa(e, i, n || t); - let o = a ? _o(e, t) : void 0; - return t && uo(!1), o; +var lo = !1; +function uo(e, t = !1, n = !1) { + t && ao(t); + let { props: r, children: i } = e.vnode, a = co(e); + ia(e, r, a, t), _a(e, i, n || t); + let o = a ? fo(e, t) : void 0; + return t && ao(!1), o; } -function _o(e, t) { +function fo(e, t) { let n = e.type; - e.accessCache = /* @__PURE__ */ Object.create(null), e.proxy = new Proxy(e.ctx, Ci); + e.accessCache = /* @__PURE__ */ Object.create(null), e.proxy = new Proxy(e.ctx, bi); let { setup: r } = n; if (r) { Ye(); - let n = e.setupContext = r.length > 1 ? xo(e) : null, i = fo(e), a = Sn(r, e, 0, [e.props, n]), o = y(a); - if (Xe(), i(), (o || e.sp) && !Wr(e) && Lr(e), o) { - if (a.then(po, po), t) return a.then((n) => { - uo(!0); + let n = e.setupContext = r.length > 1 ? go(e) : null, i = oo(e), a = xn(r, e, 0, [e.props, n]), o = y(a); + if (Xe(), i(), (o || e.sp) && !Vr(e) && Pr(e), o) { + if (a.then(so, so), t) return a.then((n) => { + ao(!0); try { - vo(e, n, t); + po(e, n, t); } finally { - uo(!1); + ao(!1); } }).catch((t) => { - wn(t, e, 0); + Cn(t, e, 0); }); e.asyncDep = a; - } else vo(e, a, t); - } else yo(e, t); + } else po(e, a, t); + } else mo(e, t); } -function vo(e, t, n) { - h(t) ? e.type.__ssrInlineRender ? e.ssrRender = t : e.render = t : v(t) && (e.setupState = cn(t)), yo(e, n); +function po(e, t, n) { + h(t) ? e.type.__ssrInlineRender ? e.ssrRender = t : e.render = t : v(t) && (e.setupState = sn(t)), mo(e, n); } -function yo(e, t, n) { +function mo(e, t, n) { let i = e.type; e.render ||= i.render || r; { - let t = fo(e); + let t = oo(e); Ye(); try { - Di(e); + wi(e); } finally { Xe(), t(); } } } -var bo = { get(e, t) { +var ho = { get(e, t) { return ot(e, "get", ""), e[t]; } }; -function xo(e) { +function go(e) { return { - attrs: new Proxy(e.attrs, bo), + attrs: new Proxy(e.attrs, ho), slots: e.slots, emit: e.emit, expose: (t) => { @@ -3083,38 +3005,38 @@ function xo(e) { } }; } -function So(e) { - return e.exposed ? e.exposeProxy ||= new Proxy(cn(Zt(e.exposed)), { +function _o(e) { + return e.exposed ? e.exposeProxy ||= new Proxy(sn(Xt(e.exposed)), { get(t, n) { if (n in t) return t[n]; - if (n in xi) return xi[n](e); + if (n in vi) return vi[n](e); }, has(e, t) { - return t in e || t in xi; + return t in e || t in vi; } }) : e.proxy; } -function Co(e, t = !0) { +function vo(e, t = !0) { return h(e) ? e.displayName || e.name : e.name || t && e.__name; } -function wo(e) { +function yo(e) { return h(e) && "__vccOpts" in e; } -var To = (e, t) => /* @__PURE__ */ hn(e, t, ho); -function Eo(e, t, n) { +var bo = (e, t) => /* @__PURE__ */ mn(e, t, lo); +function xo(e, t, n) { try { - Ha(-1); + za(-1); let r = arguments.length; - return r === 2 ? v(t) && !d(t) ? Wa(t) ? U(e, null, [t]) : U(e, t) : U(e, null, t) : (r > 3 ? n = Array.prototype.slice.call(arguments, 2) : r === 3 && Wa(n) && (n = [n]), U(e, t, n)); + return r === 2 ? v(t) && !d(t) ? Va(t) ? H(e, null, [t]) : H(e, t) : H(e, null, t) : (r > 3 ? n = Array.prototype.slice.call(arguments, 2) : r === 3 && Va(n) && (n = [n]), H(e, t, n)); } finally { - Ha(1); + za(1); } } -var Do = "3.5.44", Oo = void 0, ko = typeof window < "u" && window.trustedTypes; -if (ko) try { - Oo = /* @__PURE__ */ ko.createPolicy("vue", { createHTML: (e) => e }); +var So = "3.5.43", Co = void 0, wo = typeof window < "u" && window.trustedTypes; +if (wo) try { + Co = /* @__PURE__ */ wo.createPolicy("vue", { createHTML: (e) => e }); } catch {} -var Ao = Oo ? (e) => Oo.createHTML(e) : (e) => e, jo = "http://www.w3.org/2000/svg", Mo = "http://www.w3.org/1998/Math/MathML", No = typeof document < "u" ? document : null, Po = No && /* @__PURE__ */ No.createElement("template"), Fo = { +var To = Co ? (e) => Co.createHTML(e) : (e) => e, Eo = "http://www.w3.org/2000/svg", Do = "http://www.w3.org/1998/Math/MathML", Oo = typeof document < "u" ? document : null, ko = Oo && /* @__PURE__ */ Oo.createElement("template"), Ao = { insert: (e, t, n) => { t.insertBefore(e, n || null); }, @@ -3123,11 +3045,11 @@ var Ao = Oo ? (e) => Oo.createHTML(e) : (e) => e, jo = "http://www.w3.org/2000/s t && t.removeChild(e); }, createElement: (e, t, n, r) => { - let i = t === "svg" ? No.createElementNS(jo, e) : t === "mathml" ? No.createElementNS(Mo, e) : n ? No.createElement(e, { is: n }) : No.createElement(e); + let i = t === "svg" ? Oo.createElementNS(Eo, e) : t === "mathml" ? Oo.createElementNS(Do, e) : n ? Oo.createElement(e, { is: n }) : Oo.createElement(e); return e === "select" && r && r.multiple != null && i.setAttribute("multiple", r.multiple), i; }, - createText: (e) => No.createTextNode(e), - createComment: (e) => No.createComment(e), + createText: (e) => Oo.createTextNode(e), + createComment: (e) => Oo.createComment(e), setText: (e, t) => { e.nodeValue = t; }, @@ -3136,7 +3058,7 @@ var Ao = Oo ? (e) => Oo.createHTML(e) : (e) => e, jo = "http://www.w3.org/2000/s }, parentNode: (e) => e.parentNode, nextSibling: (e) => e.nextSibling, - querySelector: (e) => No.querySelector(e), + querySelector: (e) => Oo.querySelector(e), setScopeId(e, t) { e.setAttribute(t, ""); }, @@ -3144,8 +3066,8 @@ var Ao = Oo ? (e) => Oo.createHTML(e) : (e) => e, jo = "http://www.w3.org/2000/s let o = n ? n.previousSibling : t.lastChild; if (i && (i === a || i.nextSibling)) for (; t.insertBefore(i.cloneNode(!0), n), i !== a && (i = i.nextSibling);); else { - Po.innerHTML = Ao(r === "svg" ? `${e}` : r === "mathml" ? `${e}` : e); - let i = Po.content; + ko.innerHTML = To(r === "svg" ? `${e}` : r === "mathml" ? `${e}` : e); + let i = ko.content; if (r === "svg" || r === "mathml") { let e = i.firstChild; for (; e.firstChild;) i.appendChild(e.firstChild); @@ -3155,7 +3077,7 @@ var Ao = Oo ? (e) => Oo.createHTML(e) : (e) => e, jo = "http://www.w3.org/2000/s } return [o ? o.nextSibling : t.firstChild, n ? n.previousSibling : t.lastChild]; } -}, Io = "transition", Lo = "animation", Ro = /* @__PURE__ */ Symbol("_vtc"), zo = { +}, jo = "transition", Mo = "animation", No = /* @__PURE__ */ Symbol("_vtc"), Po = { name: String, type: String, css: { @@ -3176,81 +3098,81 @@ var Ao = Oo ? (e) => Oo.createHTML(e) : (e) => e, jo = "http://www.w3.org/2000/s leaveFromClass: String, leaveActiveClass: String, leaveToClass: String -}, Bo = /* @__PURE__ */ s({}, wr, zo), Vo = /* @__PURE__ */ ((e) => (e.displayName = "Transition", e.props = Bo, e))((e, { slots: t }) => Eo(Dr, Wo(e), t)), Ho = (e, t = []) => { +}, Fo = /* @__PURE__ */ s({}, xr, Po), Io = /* @__PURE__ */ ((e) => (e.displayName = "Transition", e.props = Fo, e))((e, { slots: t }) => xo(Tr, zo(e), t)), Lo = (e, t = []) => { d(e) ? e.forEach((e) => e(...t)) : e && e(...t); -}, Uo = (e) => e ? d(e) ? e.some((e) => e.length > 1) : e.length > 1 : !1; -function Wo(e) { +}, Ro = (e) => e ? d(e) ? e.some((e) => e.length > 1) : e.length > 1 : !1; +function zo(e) { let t = {}; - for (let n in e) n in zo || (t[n] = e[n]); + for (let n in e) n in Po || (t[n] = e[n]); if (e.css === !1) return t; - let { name: n = "v", type: r, duration: i, enterFromClass: a = `${n}-enter-from`, enterActiveClass: o = `${n}-enter-active`, enterToClass: c = `${n}-enter-to`, appearFromClass: l = a, appearActiveClass: u = o, appearToClass: d = c, leaveFromClass: f = `${n}-leave-from`, leaveActiveClass: p = `${n}-leave-active`, leaveToClass: m = `${n}-leave-to` } = e, h = Go(i), g = h && h[0], _ = h && h[1], { onBeforeEnter: v, onEnter: y, onEnterCancelled: b, onLeave: x, onLeaveCancelled: S, onBeforeAppear: C = v, onAppear: w = y, onAppearCancelled: ee = b } = t, te = (e, t, n, r) => { - e._enterCancelled = r, Jo(e, t ? d : c), Jo(e, t ? u : o), n && n(); + let { name: n = "v", type: r, duration: i, enterFromClass: a = `${n}-enter-from`, enterActiveClass: o = `${n}-enter-active`, enterToClass: c = `${n}-enter-to`, appearFromClass: l = a, appearActiveClass: u = o, appearToClass: d = c, leaveFromClass: f = `${n}-leave-from`, leaveActiveClass: p = `${n}-leave-active`, leaveToClass: m = `${n}-leave-to` } = e, h = Bo(i), g = h && h[0], _ = h && h[1], { onBeforeEnter: v, onEnter: y, onEnterCancelled: b, onLeave: x, onLeaveCancelled: S, onBeforeAppear: C = v, onAppear: w = y, onAppearCancelled: ee = b } = t, te = (e, t, n, r) => { + e._enterCancelled = r, Uo(e, t ? d : c), Uo(e, t ? u : o), n && n(); }, ne = (e, t) => { - e._isLeaving = !1, Jo(e, f), Jo(e, m), Jo(e, p), t && t(); + e._isLeaving = !1, Uo(e, f), Uo(e, m), Uo(e, p), t && t(); }, T = (e) => (t, n) => { let i = e ? w : y, o = () => te(t, e, n); - Ho(i, [t, o]), Yo(() => { - Jo(t, e ? l : a), qo(t, e ? d : c), Uo(i) || Zo(t, r, g, o); + Lo(i, [t, o]), Wo(() => { + Uo(t, e ? l : a), Ho(t, e ? d : c), Ro(i) || Ko(t, r, g, o); }); }; return s(t, { onBeforeEnter(e) { - Ho(v, [e]), qo(e, a), qo(e, o); + Lo(v, [e]), Ho(e, a), Ho(e, o); }, onBeforeAppear(e) { - Ho(C, [e]), qo(e, l), qo(e, u); + Lo(C, [e]), Ho(e, l), Ho(e, u); }, onEnter: T(!1), onAppear: T(!0), onLeave(e, t) { e._isLeaving = !0; let n = () => ne(e, t); - qo(e, f), e._enterCancelled ? (qo(e, p), ts(e)) : (ts(e), qo(e, p)), Yo(() => { - e._isLeaving && (Jo(e, f), qo(e, m), Uo(x) || Zo(e, r, _, n)); - }), Ho(x, [e, n]); + Ho(e, f), e._enterCancelled ? (Ho(e, p), Xo(e)) : (Xo(e), Ho(e, p)), Wo(() => { + e._isLeaving && (Uo(e, f), Ho(e, m), Ro(x) || Ko(e, r, _, n)); + }), Lo(x, [e, n]); }, onEnterCancelled(e) { - te(e, !1, void 0, !0), Ho(b, [e]); + te(e, !1, void 0, !0), Lo(b, [e]); }, onAppearCancelled(e) { - te(e, !0, void 0, !0), Ho(ee, [e]); + te(e, !0, void 0, !0), Lo(ee, [e]); }, onLeaveCancelled(e) { - ne(e), Ho(S, [e]); + ne(e), Lo(S, [e]); } }); } -function Go(e) { +function Bo(e) { if (e == null) return null; - if (v(e)) return [Ko(e.enter), Ko(e.leave)]; + if (v(e)) return [Vo(e.enter), Vo(e.leave)]; { - let t = Ko(e); + let t = Vo(e); return [t, t]; } } -function Ko(e) { +function Vo(e) { return le(e); } -function qo(e, t) { - t.split(/\s+/).forEach((t) => t && e.classList.add(t)), (e[Ro] || (e[Ro] = /* @__PURE__ */ new Set())).add(t); +function Ho(e, t) { + t.split(/\s+/).forEach((t) => t && e.classList.add(t)), (e[No] || (e[No] = /* @__PURE__ */ new Set())).add(t); } -function Jo(e, t) { +function Uo(e, t) { t.split(/\s+/).forEach((t) => t && e.classList.remove(t)); - let n = e[Ro]; - n && (n.delete(t), n.size || (e[Ro] = void 0)); + let n = e[No]; + n && (n.delete(t), n.size || (e[No] = void 0)); } -function Yo(e) { +function Wo(e) { requestAnimationFrame(() => { requestAnimationFrame(e); }); } -var Xo = 0; -function Zo(e, t, n, r) { - let i = e._endId = ++Xo, a = () => { +var Go = 0; +function Ko(e, t, n, r) { + let i = e._endId = ++Go, a = () => { i === e._endId && r(); }; if (n != null) return setTimeout(a, n); - let { type: o, timeout: s, propCount: c } = Qo(e, t); + let { type: o, timeout: s, propCount: c } = qo(e, t); if (!o) return r(); let l = o + "end", u = 0, d = () => { e.removeEventListener(l, f), a(); @@ -3261,10 +3183,10 @@ function Zo(e, t, n, r) { u < c && d(); }, s + 1), e.addEventListener(l, f); } -function Qo(e, t) { - let n = window.getComputedStyle(e), r = (e) => (n[e] || "").split(", "), i = r(`${Io}Delay`), a = r(`${Io}Duration`), o = $o(i, a), s = r(`${Lo}Delay`), c = r(`${Lo}Duration`), l = $o(s, c), u = null, d = 0, f = 0; - t === Io ? o > 0 && (u = Io, d = o, f = a.length) : t === Lo ? l > 0 && (u = Lo, d = l, f = c.length) : (d = Math.max(o, l), u = d > 0 ? o > l ? Io : Lo : null, f = u ? u === Io ? a.length : c.length : 0); - let p = u === Io && /\b(?:transform|all)(?:,|$)/.test(r(`${Io}Property`).toString()); +function qo(e, t) { + let n = window.getComputedStyle(e), r = (e) => (n[e] || "").split(", "), i = r(`${jo}Delay`), a = r(`${jo}Duration`), o = Jo(i, a), s = r(`${Mo}Delay`), c = r(`${Mo}Duration`), l = Jo(s, c), u = null, d = 0, f = 0; + t === jo ? o > 0 && (u = jo, d = o, f = a.length) : t === Mo ? l > 0 && (u = Mo, d = l, f = c.length) : (d = Math.max(o, l), u = d > 0 ? o > l ? jo : Mo : null, f = u ? u === jo ? a.length : c.length : 0); + let p = u === jo && /\b(?:transform|all)(?:,|$)/.test(r(`${jo}Property`).toString()); return { type: u, timeout: d, @@ -3272,100 +3194,100 @@ function Qo(e, t) { hasTransform: p }; } -function $o(e, t) { +function Jo(e, t) { for (; e.length < t.length;) e = e.concat(e); - return Math.max(...t.map((t, n) => es(t) + es(e[n]))); + return Math.max(...t.map((t, n) => Yo(t) + Yo(e[n]))); } -function es(e) { +function Yo(e) { return e === "auto" ? 0 : Number(e.slice(0, -1).replace(",", ".")) * 1e3; } -function ts(e) { +function Xo(e) { return (e ? e.ownerDocument : document).body.offsetHeight; } -function ns(e, t, n) { - let r = e[Ro]; +function Zo(e, t, n) { + let r = e[No]; r && (t = (t ? [t, ...r] : [...r]).join(" ")), t == null ? e.removeAttribute("class") : n ? e.setAttribute("class", t) : e.className = t; } -var rs = /* @__PURE__ */ Symbol("_vod"), is = /* @__PURE__ */ Symbol("_vsh"), as = { +var Qo = /* @__PURE__ */ Symbol("_vod"), $o = /* @__PURE__ */ Symbol("_vsh"), es = { name: "show", beforeMount(e, { value: t }, { transition: n }) { - e[rs] = e.style.display === "none" ? "" : e.style.display, n && t ? n.beforeEnter(e) : os(e, t); + e[Qo] = e.style.display === "none" ? "" : e.style.display, n && t ? n.beforeEnter(e) : ts(e, t); }, mounted(e, { value: t }, { transition: n }) { n && t && n.enter(e); }, updated(e, { value: t, oldValue: n }, { transition: r }) { - !t != !n && (r ? t ? (r.beforeEnter(e), os(e, !0), r.enter(e)) : r.leave(e, () => { - os(e, !1); - }) : os(e, t)); + !t != !n && (r ? t ? (r.beforeEnter(e), ts(e, !0), r.enter(e)) : r.leave(e, () => { + ts(e, !1); + }) : ts(e, t)); }, beforeUnmount(e, { value: t }) { - os(e, t); + ts(e, t); } }; -function os(e, t) { - e.style.display = t ? e[rs] : "none", e[is] = !t; +function ts(e, t) { + e.style.display = t ? e[Qo] : "none", e[$o] = !t; } -var ss = /* @__PURE__ */ Symbol(""), cs = /(?:^|;)\s*display\s*:/; -function ls(e, t, n) { +var ns = /* @__PURE__ */ Symbol(""), rs = /(?:^|;)\s*display\s*:/; +function is(e, t, n) { let r = e.style, i = g(n), a = !1; if (n && !i) { if (t) { if (g(t)) for (let e of t.split(";")) { let t = e.slice(0, e.indexOf(":")).trim(); - n[t] ?? ds(r, t, ""); + n[t] ?? os(r, t, ""); } - else for (let e in t) n[e] ?? ds(r, e, ""); + else for (let e in t) n[e] ?? os(r, e, ""); } for (let i in n) { i === "display" && (a = !0); let o = n[i]; - o == null ? ds(r, i, "") : hs(e, i, !g(t) && t ? t[i] : void 0, o) || ds(r, i, o); + o == null ? os(r, i, "") : us(e, i, !g(t) && t ? t[i] : void 0, o) || os(r, i, o); } } else if (i) { if (t !== n) { - let e = r[ss]; - e && (n += ";" + e), r.cssText = n, a = cs.test(n); + let e = r[ns]; + e && (n += ";" + e), r.cssText = n, a = rs.test(n); } } else t && e.removeAttribute("style"); - rs in e && (i && t === n || (e[rs] = a ? r.display : ""), e[is] && (r.display = "none")); + Qo in e && (e[Qo] = a ? r.display : "", e[$o] && (r.display = "none")); } -var us = /\s*!important$/; -function ds(e, t, n) { - if (d(n)) n.forEach((n) => ds(e, t, n)); - else if (n ??= "", t.startsWith("--")) us.test(n) ? e.setProperty(t, n.replace(us, ""), "important") : e.setProperty(t, n); +var as = /\s*!important$/; +function os(e, t, n) { + if (d(n)) n.forEach((n) => os(e, t, n)); + else if (n ??= "", t.startsWith("--")) as.test(n) ? e.setProperty(t, n.replace(as, ""), "important") : e.setProperty(t, n); else { - let r = ms(e, t); - us.test(n) ? e.setProperty(E(r), n.replace(us, ""), "important") : e[r] = n; + let r = ls(e, t); + as.test(n) ? e.setProperty(E(r), n.replace(as, ""), "important") : e[r] = n; } } -var fs = [ +var ss = [ "Webkit", "Moz", "ms" -], ps = {}; -function ms(e, t) { - let n = ps[t]; +], cs = {}; +function ls(e, t) { + let n = cs[t]; if (n) return n; let r = T(t); - if (r !== "filter" && r in e) return ps[t] = r; + if (r !== "filter" && r in e) return cs[t] = r; r = ie(r); - for (let n = 0; n < fs.length; n++) { - let i = fs[n] + r; - if (i in e) return ps[t] = i; + for (let n = 0; n < ss.length; n++) { + let i = ss[n] + r; + if (i in e) return cs[t] = i; } return t; } -function hs(e, t, n, r) { +function us(e, t, n, r) { return e.tagName === "TEXTAREA" && (t === "width" || t === "height") && g(r) && n === r; } -var gs = "http://www.w3.org/1999/xlink"; -function _s(e, t, n, r, i, a = ve(t)) { - r && t.startsWith("xlink:") ? n == null ? e.removeAttributeNS(gs, t.slice(6, t.length)) : e.setAttributeNS(gs, t, n) : n == null || a && !ye(n) ? e.removeAttribute(t) : e.setAttribute(t, a ? "" : _(n) ? String(n) : n); +var ds = "http://www.w3.org/1999/xlink"; +function fs(e, t, n, r, i, a = ve(t)) { + r && t.startsWith("xlink:") ? n == null ? e.removeAttributeNS(ds, t.slice(6, t.length)) : e.setAttributeNS(ds, t, n) : n == null || a && !ye(n) ? e.removeAttribute(t) : e.setAttribute(t, a ? "" : _(n) ? String(n) : n); } -function vs(e, t, n, r, i) { +function ps(e, t, n, r, i) { if (t === "innerHTML" || t === "textContent") { - n != null && (e[t] = t === "innerHTML" ? Ao(n) : n); + n != null && (e[t] = t === "innerHTML" ? To(n) : n); return; } let a = e.tagName; @@ -3384,29 +3306,29 @@ function vs(e, t, n, r, i) { } catch {} o && e.removeAttribute(i || t); } -function ys(e, t, n, r) { +function ms(e, t, n, r) { e.addEventListener(t, n, r); } -function bs(e, t, n, r) { +function hs(e, t, n, r) { e.removeEventListener(t, n, r); } -var xs = /* @__PURE__ */ Symbol("_vei"); -function Ss(e, t, n, r, i = null) { - let a = e[xs] || (e[xs] = {}), o = a[t]; +var gs = /* @__PURE__ */ Symbol("_vei"); +function _s(e, t, n, r, i = null) { + let a = e[gs] || (e[gs] = {}), o = a[t]; if (r && o) o.value = r; else { - let [n, s] = Ts(t); - r ? ys(e, n, a[t] = ks(r, i), s) : o && (bs(e, n, o, s), a[t] = void 0); + let [n, s] = bs(t); + r ? ms(e, n, a[t] = ws(r, i), s) : o && (hs(e, n, o, s), a[t] = void 0); } } -var Cs = /(Once|Passive|Capture)$/, ws = /^on:?(?:Once|Passive|Capture)$/; -function Ts(e) { +var vs = /(Once|Passive|Capture)$/, ys = /^on:?(?:Once|Passive|Capture)$/; +function bs(e) { let t, n; - for (; (n = e.match(Cs)) && !ws.test(e);) t ||= {}, e = e.slice(0, e.length - n[1].length), t[n[1].toLowerCase()] = !0; + for (; (n = e.match(vs)) && !ys.test(e);) t ||= {}, e = e.slice(0, e.length - n[1].length), t[n[1].toLowerCase()] = !0; return [e[2] === ":" ? e.slice(3) : E(e.slice(2)), t]; } -var Es = 0, Ds = /* @__PURE__ */ Promise.resolve(), Os = () => Es ||= (Ds.then(() => Es = 0), Date.now()); -function ks(e, t) { +var xs = 0, Ss = /* @__PURE__ */ Promise.resolve(), Cs = () => xs ||= (Ss.then(() => xs = 0), Date.now()); +function ws(e, t) { let n = (e) => { if (!e._vts) e._vts = Date.now(); else if (e._vts <= n.attached) return; @@ -3419,93 +3341,93 @@ function ks(e, t) { let i = r.slice(), a = [e]; for (let n = 0; n < i.length && !e._stopped; n++) { let e = i[n]; - e && Cn(e, t, 5, a); + e && Sn(e, t, 5, a); } - } else Cn(r, t, 5, [e]); + } else Sn(r, t, 5, [e]); }; - return n.value = e, n.attached = Os(), n; + return n.value = e, n.attached = Cs(), n; } -var As = (e) => e.charCodeAt(0) === 111 && e.charCodeAt(1) === 110 && e.charCodeAt(2) > 96 && e.charCodeAt(2) < 123, js = (e, t, n, r, i, s) => { +var Ts = (e) => e.charCodeAt(0) === 111 && e.charCodeAt(1) === 110 && e.charCodeAt(2) > 96 && e.charCodeAt(2) < 123, Es = (e, t, n, r, i, s) => { let c = i === "svg"; - t === "class" ? ns(e, r, c) : t === "style" ? ls(e, n, r) : a(t) ? o(t) || Ss(e, t, n, r, s) : (t[0] === "." ? (t = t.slice(1), 1) : t[0] === "^" ? (t = t.slice(1), 0) : Ms(e, t, r, c)) ? (vs(e, t, r), e.tagName.includes("-") || t !== "value" && t !== "checked" && t !== "selected" || _s(e, t, r, c, s, t !== "value")) : e._isVueCE && (Ns(e, t) || e._def.__asyncLoader && (/[A-Z]/.test(t) || !g(r))) ? vs(e, T(t), r, s, t) : (t === "true-value" ? e._trueValue = r : t === "false-value" && (e._falseValue = r), _s(e, t, r, c)); + t === "class" ? Zo(e, r, c) : t === "style" ? is(e, n, r) : a(t) ? o(t) || _s(e, t, n, r, s) : (t[0] === "." ? (t = t.slice(1), 1) : t[0] === "^" ? (t = t.slice(1), 0) : Ds(e, t, r, c)) ? (ps(e, t, r), e.tagName.includes("-") || t !== "value" && t !== "checked" && t !== "selected" || fs(e, t, r, c, s, t !== "value")) : e._isVueCE && (Os(e, t) || e._def.__asyncLoader && (/[A-Z]/.test(t) || !g(r))) ? ps(e, T(t), r, s, t) : (t === "true-value" ? e._trueValue = r : t === "false-value" && (e._falseValue = r), fs(e, t, r, c)); }; -function Ms(e, t, n, r) { - if (r) return !!(t === "innerHTML" || t === "textContent" || t in e && As(t) && h(n)); +function Ds(e, t, n, r) { + if (r) return !!(t === "innerHTML" || t === "textContent" || t in e && Ts(t) && h(n)); if (t === "spellcheck" || t === "draggable" || t === "translate" || t === "autocorrect" || t === "sandbox" && e.tagName === "IFRAME" || t === "form" || t === "list" && e.tagName === "INPUT" || t === "type" && e.tagName === "TEXTAREA") return !1; if (t === "width" || t === "height") { let t = e.tagName; if (t === "IMG" || t === "VIDEO" || t === "CANVAS" || t === "SOURCE") return !1; } - return As(t) && g(n) ? !1 : t in e; + return Ts(t) && g(n) ? !1 : t in e; } -function Ns(e, t) { +function Os(e, t) { let n = e._def.props; if (!n) return !1; let r = T(t); return Array.isArray(n) ? n.some((e) => T(e) === r) : Object.keys(n).some((e) => T(e) === r); } -var Ps = (e) => { +var ks = (e) => { let t = e.props["onUpdate:modelValue"] || !1; return d(t) ? (e) => oe(t, e) : t; }; -function Fs(e) { +function As(e) { e.target.composing = !0; } -function Is(e) { +function js(e) { let t = e.target; t.composing && (t.composing = !1, t.dispatchEvent(new Event("input"))); } -var Ls = /* @__PURE__ */ Symbol("_assign"), Rs = /* @__PURE__ */ Symbol("_initialValue"); -function zs(e, t, n) { +var Ms = /* @__PURE__ */ Symbol("_assign"), Ns = /* @__PURE__ */ Symbol("_initialValue"); +function Ps(e, t, n) { return t && (e = e.trim()), n && (e = ce(e)), e; } -var Bs = { +var Fs = { created(e, { modifiers: { lazy: t, trim: n, number: r } }, i) { - e.parentNode && (e.type === "text" ? e[Rs] = e.defaultValue.replace(/[\r\n]/g, "") : e.type === "textarea" && (e[Rs] = e.defaultValue.replace(/\r\n?/g, "\n"))), e[Ls] = Ps(i); + e.parentNode && (e.type === "text" ? e[Ns] = e.defaultValue.replace(/[\r\n]/g, "") : e.type === "textarea" && (e[Ns] = e.defaultValue.replace(/\r\n?/g, "\n"))), e[Ms] = ks(i); let a = r || i.props && i.props.type === "number"; - ys(e, t ? "change" : "input", (t) => { - t.target.composing || e[Ls](zs(e.value, n, a)); - }), (n || a) && ys(e, "change", () => { - e.value = zs(e.value, n, a); - }), t || (ys(e, "compositionstart", Fs), ys(e, "compositionend", Is), ys(e, "change", Is)); + ms(e, t ? "change" : "input", (t) => { + t.target.composing || e[Ms](Ps(e.value, n, a)); + }), (n || a) && ms(e, "change", () => { + e.value = Ps(e.value, n, a); + }), t || (ms(e, "compositionstart", As), ms(e, "compositionend", js), ms(e, "change", js)); }, mounted(e, { value: t, modifiers: { trim: n, number: r } }) { - let i = t ?? "", a = e[Rs]; - delete e[Rs], a !== void 0 && (e.type === "text" || e.type === "textarea") && e.value !== a ? e[Ls](zs(e.value, n, r)) : e.value = i; + let i = t ?? "", a = e[Ns]; + delete e[Ns], a !== void 0 && (e.type === "text" || e.type === "textarea") && e.value !== a ? e[Ms](Ps(e.value, n, r)) : e.value = i; }, beforeUpdate(e, { value: t, oldValue: n, modifiers: { lazy: r, trim: i, number: a } }, o) { - if (e[Ls] = Ps(o), e.composing) return; + if (e[Ms] = ks(o), e.composing) return; let s = (a || e.type === "number") && !/^0\d/.test(e.value) ? ce(e.value) : e.value, c = t ?? ""; if (s === c) return; let l = e.getRootNode(); (l instanceof Document || l instanceof ShadowRoot) && l.activeElement === e && e.type !== "range" && (r && t === n || i && e.value.trim() === c) || (e.value = c); } -}, Vs = { +}, Is = { deep: !0, created(e, { value: t, modifiers: { number: n } }, r) { - e._modelValue = t, ys(e, "change", () => { - let t = Array.prototype.filter.call(e.options, (e) => e.selected).map((e) => n ? ce(Ws(e)) : Ws(e)), r = e.multiple, i = r ? p(e._modelValue) ? new Set(t) : t : t[0], a = e._pendingValue = [r, r ? d(i) ? t.slice() : t : i]; + e._modelValue = t, ms(e, "change", () => { + let t = Array.prototype.filter.call(e.options, (e) => e.selected).map((e) => n ? ce(zs(e)) : zs(e)), r = e.multiple, i = r ? p(e._modelValue) ? new Set(t) : t : t[0], a = e._pendingValue = [r, r ? d(i) ? t.slice() : t : i]; try { - e[Ls](i); + e[Ms](i); } finally { - Nn(() => { + Mn(() => { e._pendingValue === a && (e._pendingValue = void 0); }); } - }), e[Ls] = Ps(r); + }), e[Ms] = ks(r); }, mounted(e, { value: t }) { - Us(e, t); + Rs(e, t); }, beforeUpdate(e, { value: t }, n) { - e._modelValue = t, e[Ls] = Ps(n); + e._modelValue = t, e[Ms] = ks(n); }, updated(e, { value: t }) { let n = e._pendingValue; - e._pendingValue = void 0, n && n[0] === e.multiple && Hs(t, n[1], n[0]) || Us(e, t); + e._pendingValue = void 0, n && n[0] === e.multiple && Ls(t, n[1], n[0]) || Rs(e, t); } }; -function Hs(e, t, n) { +function Ls(e, t, n) { if (!n || d(e)) return we(e, t); if (p(e)) { if (e.size !== t.length) return !1; @@ -3514,17 +3436,17 @@ function Hs(e, t, n) { } return !1; } -function Us(e, t) { +function Rs(e, t) { let n = e.multiple, r = d(t); if (!n || r || p(t)) { for (let i = 0, a = e.options.length; i < a; i++) { - let a = e.options[i], o = Ws(a); + let a = e.options[i], o = zs(a); if (n) { if (r) { let e = typeof o; a.selected = e === "string" || e === "number" ? t.some((e) => String(e) === String(o)) : Te(t, o) > -1; } else a.selected = t.has(o); - } else if (we(Ws(a), t)) { + } else if (we(zs(a), t)) { e.selectedIndex !== i && (e.selectedIndex = i); return; } @@ -3532,15 +3454,15 @@ function Us(e, t) { !n && e.selectedIndex !== -1 && (e.selectedIndex = -1); } } -function Ws(e) { +function zs(e) { return "_value" in e ? e._value : e.value; } -var Gs = [ +var Bs = [ "ctrl", "shift", "alt", "meta" -], Ks = { +], Vs = { stop: (e) => e.stopPropagation(), prevent: (e) => e.preventDefault(), self: (e) => e.target !== e.currentTarget, @@ -3551,18 +3473,18 @@ var Gs = [ left: (e) => "button" in e && e.button !== 0, middle: (e) => "button" in e && e.button !== 1, right: (e) => "button" in e && e.button !== 2, - exact: (e, t) => Gs.some((n) => e[`${n}Key`] && !t.includes(n)) -}, qs = (e, t) => { + exact: (e, t) => Bs.some((n) => e[`${n}Key`] && !t.includes(n)) +}, Hs = (e, t) => { if (!e) return e; let n = e._withMods ||= {}, r = t.join("."); return n[r] || (n[r] = ((n, ...r) => { for (let e = 0; e < t.length; e++) { - let r = Ks[t[e]]; + let r = Vs[t[e]]; if (r && r(n, t)) return; } return e(n, ...r); })); -}, Js = { +}, Us = { esc: "escape", space: " ", up: "arrow-up", @@ -3570,57 +3492,57 @@ var Gs = [ right: "arrow-right", down: "arrow-down", delete: "backspace" -}, Ys = (e, t) => { +}, Ws = (e, t) => { let n = e._withKeys ||= {}, r = t.join("."); return n[r] || (n[r] = ((n) => { if (!("key" in n)) return; let r = E(n.key); - if (t.some((e) => e === r || Js[e] === r)) return e(n); + if (t.some((e) => e === r || Us[e] === r)) return e(n); })); -}, Xs = /* @__PURE__ */ s({ patchProp: js }, Fo), Zs; -function Qs() { - return Zs ||= wa(Xs); +}, Gs = /* @__PURE__ */ s({ patchProp: Es }, Ao), Ks; +function qs() { + return Ks ||= ba(Gs); } -var $s = ((...e) => { - let t = Qs().createApp(...e), { mount: n } = t; +var Js = ((...e) => { + let t = qs().createApp(...e), { mount: n } = t; return t.mount = (e) => { - let r = tc(e); + let r = Xs(e); if (!r) return; let i = t._component; h(i) || i.render || i.template || (i.template = r.innerHTML), r.nodeType === 1 && (r.textContent = ""); - let a = n(r, !1, ec(r)); + let a = n(r, !1, Ys(r)); return r instanceof Element && (r.removeAttribute("v-cloak"), r.setAttribute("data-v-app", "")), a; }, t; }); -function ec(e) { +function Ys(e) { if (e instanceof SVGElement) return "svg"; if (typeof MathMLElement == "function" && e instanceof MathMLElement) return "mathml"; } -function tc(e) { +function Xs(e) { return g(e) ? document.querySelector(e) : e; } // node_modules/@primeuix/utils/dist/object/index.mjs -var nc = Object.defineProperty, rc = Object.getOwnPropertySymbols, ic = Object.prototype.hasOwnProperty, ac = Object.prototype.propertyIsEnumerable, oc = (e, t, n) => t in e ? nc(e, t, { +var Zs = Object.defineProperty, Qs = Object.getOwnPropertySymbols, $s = Object.prototype.hasOwnProperty, ec = Object.prototype.propertyIsEnumerable, tc = (e, t, n) => t in e ? Zs(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n -}) : e[t] = n, sc = (e, t) => { - for (var n in t ||= {}) ic.call(t, n) && oc(e, n, t[n]); - if (rc) for (var n of rc(t)) ac.call(t, n) && oc(e, n, t[n]); +}) : e[t] = n, nc = (e, t) => { + for (var n in t ||= {}) $s.call(t, n) && tc(e, n, t[n]); + if (Qs) for (var n of Qs(t)) ec.call(t, n) && tc(e, n, t[n]); return e; }; -function cc(e) { +function rc(e) { return e == null || e === "" || Array.isArray(e) && e.length === 0 || !(e instanceof Date) && typeof e == "object" && Object.keys(e).length === 0; } -function lc(e, t, n = /* @__PURE__ */ new WeakSet()) { +function ic(e, t, n = /* @__PURE__ */ new WeakSet()) { if (e === t) return !0; if (!e || !t || typeof e != "object" || typeof t != "object" || n.has(e) || n.has(t)) return !1; n.add(e).add(t); let r = Array.isArray(e), i = Array.isArray(t), a, o, s; if (r && i) { if (o = e.length, o != t.length) return !1; - for (a = o; a-- !== 0;) if (!lc(e[a], t[a], n)) return !1; + for (a = o; a-- !== 0;) if (!ic(e[a], t[a], n)) return !1; return !0; } if (r != i) return !1; @@ -3633,26 +3555,26 @@ function lc(e, t, n = /* @__PURE__ */ new WeakSet()) { let f = Object.keys(e); if (o = f.length, o !== Object.keys(t).length) return !1; for (a = o; a-- !== 0;) if (!Object.prototype.hasOwnProperty.call(t, f[a])) return !1; - for (a = o; a-- !== 0;) if (s = f[a], !lc(e[s], t[s], n)) return !1; + for (a = o; a-- !== 0;) if (s = f[a], !ic(e[s], t[s], n)) return !1; return !0; } -function uc(e, t) { - return lc(e, t); +function ac(e, t) { + return ic(e, t); } -function dc(e) { +function oc(e) { return typeof e == "function" && "call" in e && "apply" in e; } function K(e) { - return !cc(e); + return !rc(e); } -function fc(e, t) { +function sc(e, t) { if (!e || !t) return null; try { let n = e[t]; if (K(n)) return n; } catch {} if (Object.keys(e).length) { - if (dc(t)) return t(e); + if (oc(t)) return t(e); if (t.indexOf(".") === -1) return e[t]; { let n = t.split("."), r = e; @@ -3665,29 +3587,29 @@ function fc(e, t) { } return null; } -function pc(e, t, n) { - return n ? fc(e, n) === fc(t, n) : uc(e, t); +function cc(e, t, n) { + return n ? sc(e, n) === sc(t, n) : ac(e, t); } -function mc(e, t) { +function lc(e, t) { if (e != null && t && t.length) { - for (let n of t) if (pc(e, n)) return !0; + for (let n of t) if (cc(e, n)) return !0; } return !1; } -function hc(e, t = !0) { +function uc(e, t = !0) { return e instanceof Object && e.constructor === Object && (t || Object.keys(e).length !== 0); } -function gc(e = {}, t = {}) { - let n = sc({}, e); +function dc(e = {}, t = {}) { + let n = nc({}, e); return Object.keys(t).forEach((r) => { let i = r; - hc(t[i]) && i in e && hc(e[i]) ? n[i] = gc(e[i], t[i]) : n[i] = t[i]; + uc(t[i]) && i in e && uc(e[i]) ? n[i] = dc(e[i], t[i]) : n[i] = t[i]; }), n; } -function _c(...e) { - return e.reduce((e, t, n) => n === 0 ? t : gc(e, t), {}); +function fc(...e) { + return e.reduce((e, t, n) => n === 0 ? t : dc(e, t), {}); } -function vc(e, t) { +function pc(e, t) { let n = -1; if (K(e)) try { n = e.findLastIndex(t); @@ -3696,42 +3618,42 @@ function vc(e, t) { } return n; } -function yc(e, ...t) { - return dc(e) ? e(...t) : e; +function mc(e, ...t) { + return oc(e) ? e(...t) : e; } -function bc(e, t = !0) { +function hc(e, t = !0) { return typeof e == "string" && (t || e !== ""); } -function xc(e) { - return bc(e) ? e.replace(/(-|_)/g, "").toLowerCase() : e; +function gc(e) { + return hc(e) ? e.replace(/(-|_)/g, "").toLowerCase() : e; } -function Sc(e, t = "", n = {}) { - let r = xc(t).split("."), i = r.shift(); - return i ? hc(e) ? Sc(yc(e[Object.keys(e).find((e) => xc(e) === i) || ""], n), r.join("."), n) : void 0 : yc(e, n); +function _c(e, t = "", n = {}) { + let r = gc(t).split("."), i = r.shift(); + return i ? uc(e) ? _c(mc(e[Object.keys(e).find((e) => gc(e) === i) || ""], n), r.join("."), n) : void 0 : mc(e, n); } -function Cc(e, t = !0) { +function vc(e, t = !0) { return Array.isArray(e) && (t || e.length !== 0); } -function wc(e) { +function yc(e) { return K(e) && !isNaN(e); } -function Tc(e = "") { +function bc(e = "") { return K(e) && e.length === 1 && !!e.match(/\S| /); } -function Ec(e, t) { +function xc(e, t) { if (t) { let n = t.test(e); return t.lastIndex = 0, n; } return !1; } -function Dc(...e) { - return _c(...e); +function Sc(...e) { + return fc(...e); } -function Oc(e) { +function Cc(e) { return e && e.replace(/\/\*(?:(?!\*\/)[\s\S])*\*\/|[\r\n\t]+/g, "").replace(/ {2,}/g, " ").replace(/ ([{:}]) /g, "$1").replace(/([;,]) /g, "$1").replace(/ !/g, "!").replace(/: /g, ":").trim(); } -function kc(e) { +function wc(e) { if (e && /[\xC0-\xFF\u0100-\u017E]/.test(e)) { let t = { A: /[\xC0-\xC5\u0100\u0102\u0104]/g, @@ -3783,14 +3705,14 @@ function kc(e) { } return e; } -function Ac(e) { - return bc(e, !1) ? e[0].toUpperCase() + e.slice(1) : e; +function Tc(e) { + return hc(e, !1) ? e[0].toUpperCase() + e.slice(1) : e; } -function jc(e) { - return bc(e) ? e.replace(/(_)/g, "-").replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase() : e; +function Ec(e) { + return hc(e) ? e.replace(/(_)/g, "-").replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase() : e; } // node_modules/@primeuix/utils/dist/eventbus/index.mjs -function Mc() { +function Dc() { let e = /* @__PURE__ */ new Map(); return { on(t, n) { @@ -3830,24 +3752,24 @@ function q(...e) { } } // node_modules/@primeuix/utils/dist/dom/index.mjs -function Nc(e, t) { +function Oc(e, t) { return e ? e.classList ? e.classList.contains(t) : RegExp("(^| )" + t + "( |$)", "gi").test(e.className) : !1; } -function Pc(e, t) { +function kc(e, t) { if (e && t) { let n = (t) => { - Nc(e, t) || (e.classList ? e.classList.add(t) : e.className += " " + t); + Oc(e, t) || (e.classList ? e.classList.add(t) : e.className += " " + t); }; [t].flat().filter(Boolean).forEach((e) => e.split(" ").forEach(n)); } } -function Fc() { +function Ac() { return window.innerWidth - document.documentElement.offsetWidth; } -function Ic(e) { - typeof e == "string" ? Pc(document.body, e || "p-overflow-hidden") : (e != null && e.variableName && document.body.style.setProperty(e.variableName, Fc() + "px"), Pc(document.body, e?.className || "p-overflow-hidden")); +function jc(e) { + typeof e == "string" ? kc(document.body, e || "p-overflow-hidden") : (e != null && e.variableName && document.body.style.setProperty(e.variableName, Ac() + "px"), kc(document.body, e?.className || "p-overflow-hidden")); } -function Lc(e, t) { +function Mc(e, t) { if (e && t) { let n = (t) => { e.classList ? e.classList.remove(t) : e.className = e.className.replace(RegExp("(^|\\b)" + t.split(" ").join("|") + "(\\b|$)", "gi"), " "); @@ -3855,10 +3777,10 @@ function Lc(e, t) { [t].flat().filter(Boolean).forEach((e) => e.split(" ").forEach(n)); } } -function Rc(e) { - typeof e == "string" ? Lc(document.body, e || "p-overflow-hidden") : (e != null && e.variableName && document.body.style.removeProperty(e.variableName), Lc(document.body, e?.className || "p-overflow-hidden")); +function Nc(e) { + typeof e == "string" ? Mc(document.body, e || "p-overflow-hidden") : (e != null && e.variableName && document.body.style.removeProperty(e.variableName), Mc(document.body, e?.className || "p-overflow-hidden")); } -function zc(e) { +function Pc(e) { for (let t of document == null ? void 0 : document.styleSheets) try { for (let n of t?.cssRules) for (let t of n?.style) if (e.test(t)) return { name: t, @@ -3867,7 +3789,7 @@ function zc(e) { } catch {} return null; } -function Bc(e) { +function Fc(e) { let t = { width: 0, height: 0 @@ -3878,40 +3800,40 @@ function Bc(e) { } return t; } -function Vc() { +function Ic() { let e = window, t = document, n = t.documentElement, r = t.getElementsByTagName("body")[0]; return { width: e.innerWidth || n.clientWidth || r.clientWidth, height: e.innerHeight || n.clientHeight || r.clientHeight }; } -function Hc(e) { +function Lc(e) { return e ? Math.abs(e.scrollLeft) : 0; } -function Uc() { +function Rc() { let e = document.documentElement; - return (window.pageXOffset || Hc(e)) - (e.clientLeft || 0); + return (window.pageXOffset || Lc(e)) - (e.clientLeft || 0); } -function Wc() { +function zc() { let e = document.documentElement; return (window.pageYOffset || e.scrollTop) - (e.clientTop || 0); } -function Gc(e) { +function Bc(e) { return e ? getComputedStyle(e).direction === "rtl" : !1; } -function Kc(e, t, n = !0) { +function Vc(e, t, n = !0) { if (e) { let r = e.offsetParent ? { width: e.offsetWidth, height: e.offsetHeight - } : Bc(e), i = r.height, a = r.width, o = t.offsetHeight, s = t.offsetWidth, c = t.getBoundingClientRect(), l = Wc(), u = Uc(), d = Vc(), f, p, m = "top"; - c.top + o + i > d.height ? (f = c.top + l - i, m = "bottom", f < 0 && (f = l)) : f = o + c.top + l, p = c.left + a > d.width ? Math.max(0, c.left + u + s - a) : c.left + u, Gc(e) ? e.style.insetInlineEnd = p + "px" : e.style.insetInlineStart = p + "px", e.style.top = f + "px", e.style.transformOrigin = m, n && (e.style.marginTop = m === "bottom" ? `calc(${zc(/-anchor-gutter$/)?.value ?? "2px"} * -1)` : zc(/-anchor-gutter$/)?.value ?? ""); + } : Fc(e), i = r.height, a = r.width, o = t.offsetHeight, s = t.offsetWidth, c = t.getBoundingClientRect(), l = zc(), u = Rc(), d = Ic(), f, p, m = "top"; + c.top + o + i > d.height ? (f = c.top + l - i, m = "bottom", f < 0 && (f = l)) : f = o + c.top + l, p = c.left + a > d.width ? Math.max(0, c.left + u + s - a) : c.left + u, Bc(e) ? e.style.insetInlineEnd = p + "px" : e.style.insetInlineStart = p + "px", e.style.top = f + "px", e.style.transformOrigin = m, n && (e.style.marginTop = m === "bottom" ? `calc(${Pc(/-anchor-gutter$/)?.value ?? "2px"} * -1)` : Pc(/-anchor-gutter$/)?.value ?? ""); } } -function qc(e, t) { +function Hc(e, t) { e && (typeof t == "string" ? e.style.cssText = t : Object.entries(t || {}).forEach(([t, n]) => e.style[t] = n)); } -function Jc(e, t) { +function Uc(e, t) { if (e instanceof HTMLElement) { let n = e.offsetWidth; if (t) { @@ -3922,33 +3844,33 @@ function Jc(e, t) { } return 0; } -function Yc(e, t, n = !0, r = void 0) { +function Wc(e, t, n = !0, r = void 0) { if (e) { let i = e.offsetParent ? { width: e.offsetWidth, height: e.offsetHeight - } : Bc(e), a = t.offsetHeight, o = t.getBoundingClientRect(), s = Vc(), c, l, u = r ?? "top"; + } : Fc(e), a = t.offsetHeight, o = t.getBoundingClientRect(), s = Ic(), c, l, u = r ?? "top"; if (!r && o.top + a + i.height > s.height ? (c = -1 * i.height, u = "bottom", o.top + c < 0 && (c = -1 * o.top)) : c = a, l = i.width > s.width ? o.left * -1 : o.left + i.width > s.width ? (o.left + i.width - s.width) * -1 : 0, e.style.top = c + "px", e.style.insetInlineStart = l + "px", e.style.transformOrigin = u, n) { - let t = zc(/-anchor-gutter$/)?.value; + let t = Pc(/-anchor-gutter$/)?.value; e.style.marginTop = u === "bottom" ? `calc(${t ?? "2px"} * -1)` : t ?? ""; } } } -function Xc(e) { +function Gc(e) { if (e) { let t = e.parentNode; return t && t instanceof ShadowRoot && t.host && (t = t.host), t; } return null; } -function Zc(e) { - return !!(e != null && e.nodeName && Xc(e)); +function Kc(e) { + return !!(e != null && e.nodeName && Gc(e)); } -function Qc(e) { +function qc(e) { return typeof Element < "u" ? e instanceof Element : typeof e == "object" && !!e && e.nodeType === 1 && typeof e.nodeName == "string"; } -function $c(e, t = {}) { - if (Qc(e)) { +function Jc(e, t = {}) { + if (qc(e)) { let n = (t, r) => { var i; let a = (i = e?.$attrs) != null && i[t] ? [e?.$attrs?.[t]] : []; @@ -3967,34 +3889,34 @@ function $c(e, t = {}) { Object.entries(t).forEach(([t, r]) => { if (r != null) { let i = t.match(/^on(.+)/); - i ? e.addEventListener(i[1].toLowerCase(), r) : t === "p-bind" || t === "pBind" ? $c(e, r) : (r = t === "class" ? [...new Set(n("class", r))].join(" ").trim() : t === "style" ? n("style", r).join(";").trim() : r, (e.$attrs = e.$attrs || {}) && (e.$attrs[t] = r), e.setAttribute(t, r)); + i ? e.addEventListener(i[1].toLowerCase(), r) : t === "p-bind" || t === "pBind" ? Jc(e, r) : (r = t === "class" ? [...new Set(n("class", r))].join(" ").trim() : t === "style" ? n("style", r).join(";").trim() : r, (e.$attrs = e.$attrs || {}) && (e.$attrs[t] = r), e.setAttribute(t, r)); } }); } } -function el(e, t = {}, ...n) { +function Yc(e, t = {}, ...n) { if (e) { let r = document.createElement(e); - return $c(r, t), r.append(...n), r; + return Jc(r, t), r.append(...n), r; } } -function tl(e, t) { - return Qc(e) ? Array.from(e.querySelectorAll(t)) : []; +function Xc(e, t) { + return qc(e) ? Array.from(e.querySelectorAll(t)) : []; } -function nl(e, t) { - return Qc(e) ? e.matches(t) ? e : e.querySelector(t) : null; +function Zc(e, t) { + return qc(e) ? e.matches(t) ? e : e.querySelector(t) : null; } function J(e, t) { e && document.activeElement !== e && e.focus(t); } -function rl(e, t) { - if (Qc(e)) { +function Qc(e, t) { + if (qc(e)) { let n = e.getAttribute(t); return isNaN(n) ? n === "true" || n === "false" ? n === "true" : n : +n; } } -function il(e, t = "") { - let n = tl(e, `button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${t}, +function $c(e, t = "") { + let n = Xc(e, `button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${t}, [href]:not([tabindex = "-1"]):not([style*="display:none"]):not([hidden])${t}, input:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${t}, select:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${t}, @@ -4004,27 +3926,27 @@ function il(e, t = "") { for (let e of n) getComputedStyle(e).display != "none" && getComputedStyle(e).visibility != "hidden" && r.push(e); return r; } -function al(e, t) { - let n = il(e, t); +function el(e, t) { + let n = $c(e, t); return n.length > 0 ? n[0] : null; } -function ol(e) { +function tl(e) { if (e) { let t = e.offsetHeight, n = getComputedStyle(e); return t -= parseFloat(n.paddingTop) + parseFloat(n.paddingBottom) + parseFloat(n.borderTopWidth) + parseFloat(n.borderBottomWidth), t; } return 0; } -function sl(e, t) { - let n = il(e, t); +function nl(e, t) { + let n = $c(e, t); return n.length > 0 ? n[n.length - 1] : null; } -function cl(e) { +function rl(e) { if (e) { let t = e.getBoundingClientRect(); return { top: t.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0), - left: t.left + (window.pageXOffset || Hc(document.documentElement) || Hc(document.body) || 0) + left: t.left + (window.pageXOffset || Lc(document.documentElement) || Lc(document.body) || 0) }; } return { @@ -4032,7 +3954,7 @@ function cl(e) { left: "auto" }; } -function ll(e, t) { +function il(e, t) { if (e) { let n = e.offsetHeight; if (t) { @@ -4043,14 +3965,14 @@ function ll(e, t) { } return 0; } -function ul(e, t = []) { - let n = Xc(e); - return n === null ? t : ul(n, t.concat([n])); +function al(e, t = []) { + let n = Gc(e); + return n === null ? t : al(n, t.concat([n])); } -function dl(e) { +function ol(e) { let t = []; if (e) { - let n = ul(e), r = /(auto|scroll)/, i = (e) => { + let n = al(e), r = /(auto|scroll)/, i = (e) => { try { let t = window.getComputedStyle(e, null); return r.test(t.getPropertyValue("overflow")) || r.test(t.getPropertyValue("overflowX")) || r.test(t.getPropertyValue("overflowY")); @@ -4063,7 +3985,7 @@ function dl(e) { if (n) { let r = n.split(","); for (let n of r) { - let r = nl(e, n); + let r = Zc(e, n); r && i(r) && t.push(r); } } @@ -4072,21 +3994,21 @@ function dl(e) { } return t; } -function fl(e) { +function sl(e) { if (e) { let t = e.offsetWidth, n = getComputedStyle(e); return t -= parseFloat(n.paddingLeft) + parseFloat(n.paddingRight) + parseFloat(n.borderLeftWidth) + parseFloat(n.borderRightWidth), t; } return 0; } -function pl() { +function cl() { return /(android)/i.test(navigator.userAgent); } -function ml() { +function ll() { return !!(typeof window < "u" && window.document && window.document.createElement); } -function hl(e, t = "") { - return Qc(e) ? e.matches(`button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${t}, +function ul(e, t = "") { + return qc(e) ? e.matches(`button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${t}, [href][clientHeight][clientWidth]:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${t}, input:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${t}, select:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${t}, @@ -4094,22 +4016,22 @@ function hl(e, t = "") { [tabIndex]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${t}, [contenteditable]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${t}`) : !1; } -function gl(e) { +function dl(e) { return !!(e && e.offsetParent != null); } -function _l() { +function fl() { return "ontouchstart" in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0; } -function vl(e, t = "", n) { - Qc(e) && n != null && e.setAttribute(t, n); +function pl(e, t = "", n) { + qc(e) && n != null && e.setAttribute(t, n); } // node_modules/@primeuix/utils/dist/uuid/index.mjs -var yl = {}; -function bl(e = "pui_id_") { - return Object.hasOwn(yl, e) || (yl[e] = 0), yl[e]++, `${e}${yl[e]}`; +var ml = {}; +function hl(e = "pui_id_") { + return Object.hasOwn(ml, e) || (ml[e] = 0), ml[e]++, `${e}${ml[e]}`; } // node_modules/@primeuix/utils/dist/zindex/index.mjs -function xl() { +function gl() { let e = [], t = (t, n, r = 999) => { let a = i(t, n, r), o = a.value + (a.key === t ? 0 : r) + 1; return e.push({ @@ -4133,58 +4055,58 @@ function xl() { getCurrent: (e) => r(e, !0) }; } -var Sl = xl(), Cl = Object.defineProperty, wl = Object.defineProperties, Tl = Object.getOwnPropertyDescriptors, El = Object.getOwnPropertySymbols, Dl = Object.prototype.hasOwnProperty, Ol = Object.prototype.propertyIsEnumerable, kl = (e, t, n) => t in e ? Cl(e, t, { +var _l = gl(), vl = Object.defineProperty, yl = Object.defineProperties, bl = Object.getOwnPropertyDescriptors, xl = Object.getOwnPropertySymbols, Sl = Object.prototype.hasOwnProperty, Cl = Object.prototype.propertyIsEnumerable, wl = (e, t, n) => t in e ? vl(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n -}) : e[t] = n, Al = (e, t) => { - for (var n in t ||= {}) Dl.call(t, n) && kl(e, n, t[n]); - if (El) for (var n of El(t)) Ol.call(t, n) && kl(e, n, t[n]); +}) : e[t] = n, Tl = (e, t) => { + for (var n in t ||= {}) Sl.call(t, n) && wl(e, n, t[n]); + if (xl) for (var n of xl(t)) Cl.call(t, n) && wl(e, n, t[n]); return e; -}, jl = (e, t) => wl(e, Tl(t)), Ml = (e, t) => { +}, El = (e, t) => yl(e, bl(t)), Dl = (e, t) => { var n = {}; - for (var r in e) Dl.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]); - if (e != null && El) for (var r of El(e)) t.indexOf(r) < 0 && Ol.call(e, r) && (n[r] = e[r]); + for (var r in e) Sl.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]); + if (e != null && xl) for (var r of xl(e)) t.indexOf(r) < 0 && Cl.call(e, r) && (n[r] = e[r]); return n; -}, Nl = Mc(), Pl = /{([^}]*)}/g, Fl = /(\d+\s+[\+\-\*\/]\s+\d+)/g, Il = /var\([^)]+\)/g; -function Ll(e) { - return bc(e) ? e.replace(/[A-Z]/g, (e, t) => t === 0 ? e : "." + e.toLowerCase()).toLowerCase() : e; +}, Ol = Dc(), kl = /{([^}]*)}/g, Al = /(\d+\s+[\+\-\*\/]\s+\d+)/g, jl = /var\([^)]+\)/g; +function Ml(e) { + return hc(e) ? e.replace(/[A-Z]/g, (e, t) => t === 0 ? e : "." + e.toLowerCase()).toLowerCase() : e; } -function Rl(e) { - return hc(e) && e.hasOwnProperty("$value") && e.hasOwnProperty("$type") ? e.$value : e; +function Nl(e) { + return uc(e) && e.hasOwnProperty("$value") && e.hasOwnProperty("$type") ? e.$value : e; } -function zl(e) { +function Pl(e) { return e.replaceAll(/ /g, "").replace(/[^\w]/g, "-"); } -function Bl(e = "", t = "") { - return zl(`${bc(e, !1) && bc(t, !1) ? `${e}-` : e}${t}`); +function Fl(e = "", t = "") { + return Pl(`${hc(e, !1) && hc(t, !1) ? `${e}-` : e}${t}`); } -function Vl(e = "", t = "") { - return `--${Bl(e, t)}`; +function Il(e = "", t = "") { + return `--${Fl(e, t)}`; } -function Hl(e = "") { +function Ll(e = "") { return ((e.match(/{/g) || []).length + (e.match(/}/g) || []).length) % 2 != 0; } -function Ul(e, t = "", n = "", r = [], i) { - if (bc(e)) { +function Rl(e, t = "", n = "", r = [], i) { + if (hc(e)) { let t = e.trim(); - if (Hl(t)) return; - if (Ec(t, Pl)) { - let e = t.replaceAll(Pl, (e) => `var(${Vl(n, jc(e.replace(/{|}/g, "").split(".").filter((e) => !r.some((t) => Ec(e, t))).join("-")))}${K(i) ? `, ${i}` : ""})`); - return Ec(e.replace(Il, "0"), Fl) ? `calc(${e})` : e; + if (Ll(t)) return; + if (xc(t, kl)) { + let e = t.replaceAll(kl, (e) => `var(${Il(n, Ec(e.replace(/{|}/g, "").split(".").filter((e) => !r.some((t) => xc(e, t))).join("-")))}${K(i) ? `, ${i}` : ""})`); + return xc(e.replace(jl, "0"), Al) ? `calc(${e})` : e; } return t; } - if (wc(e)) return e; + if (yc(e)) return e; } -function Wl(e, t, n) { - bc(t, !1) && e.push(`${t}:${n};`); +function zl(e, t, n) { + hc(t, !1) && e.push(`${t}:${n};`); } -function Gl(e, t) { +function Bl(e, t) { return e ? `${e}{${t}}` : ""; } -function Kl(e, t) { +function Vl(e, t) { if (e.indexOf("dt(") === -1) return e; function n(e, t) { let n = [], i = 0, a = "", o = null, s = 0; @@ -4192,7 +4114,7 @@ function Kl(e, t) { let c = e[i]; if ((c === "\"" || c === "'" || c === "`") && e[i - 1] !== "\\" && (o = o === c ? null : c), !o && (c === "(" && s++, c === ")" && s--, (c === "," || i === e.length) && s === 0)) { let e = a.trim(); - e.startsWith("dt(") ? n.push(Kl(e, t)) : n.push(r(e)), a = "", i++; + e.startsWith("dt(") ? n.push(Vl(e, t)) : n.push(r(e)), a = "", i++; } else c !== void 0 && (a += c), i++; } return n; @@ -4216,24 +4138,24 @@ function Kl(e, t) { } return e; } -var ql = (e) => { - let t = Y.getTheme(), n = Yl(t, e, void 0, "variable"); +var Hl = (e) => { + let t = Y.getTheme(), n = Wl(t, e, void 0, "variable"); return { name: n?.match(/--[\w-]+/g)?.[0], variable: n, - value: Yl(t, e, void 0, "value") + value: Wl(t, e, void 0, "value") }; -}, Jl = (...e) => Yl(Y.getTheme(), ...e), Yl = (e = {}, t, n, r) => { +}, Ul = (...e) => Wl(Y.getTheme(), ...e), Wl = (e = {}, t, n, r) => { if (t) { - let { variable: i, options: a } = Y.defaults || {}, { prefix: o, transform: s } = e?.options || a || {}, c = Ec(t, Pl) ? t : `{${t}}`; - return r === "value" || cc(r) && s === "strict" ? Y.getTokenValue(t) : Ul(c, void 0, o, [i.excludedKeyRegex], n); + let { variable: i, options: a } = Y.defaults || {}, { prefix: o, transform: s } = e?.options || a || {}, c = xc(t, kl) ? t : `{${t}}`; + return r === "value" || rc(r) && s === "strict" ? Y.getTokenValue(t) : Rl(c, void 0, o, [i.excludedKeyRegex], n); } return ""; }; -function Xl(e, ...t) { - return e instanceof Array ? Kl(e.reduce((e, n, r) => e + n + (yc(t[r], { dt: Jl }) ?? ""), ""), Jl) : yc(e, { dt: Jl }); +function Gl(e, ...t) { + return e instanceof Array ? Vl(e.reduce((e, n, r) => e + n + (mc(t[r], { dt: Ul }) ?? ""), ""), Ul) : mc(e, { dt: Ul }); } -function Zl(e, t = {}) { +function Kl(e, t = {}) { let n = Y.defaults.variable, { prefix: r = n.prefix, selector: i = n.selector, excludedKeyRegex: a = n.excludedKeyRegex } = t, o = [], s = [], c = [{ node: e, path: r @@ -4241,13 +4163,13 @@ function Zl(e, t = {}) { for (; c.length;) { let { node: e, path: t } = c.pop(); for (let n in e) { - let i = e[n], l = Rl(i), u = Ec(n, a) ? Bl(t) : Bl(t, jc(n)); - if (hc(l)) c.push({ + let i = e[n], l = Nl(i), u = xc(n, a) ? Fl(t) : Fl(t, Ec(n)); + if (uc(l)) c.push({ node: l, path: u }); else { - Wl(s, Vl(u), Ul(l, u, r, [a])); + zl(s, Il(u), Rl(l, u, r, [a])); let e = u; r && e.startsWith(r + "-") && (e = e.slice(r.length + 1)), o.push(e.replace(/-/g, ".")); } @@ -4258,10 +4180,10 @@ function Zl(e, t = {}) { value: s, tokens: o, declarations: l, - css: Gl(i, l) + css: Bl(i, l) }; } -var Ql = { +var ql = { regex: { rules: { class: { @@ -4318,12 +4240,12 @@ var Ql = { } }, _toVariables(e, t) { - return Zl(e, { prefix: t?.prefix }); + return Kl(e, { prefix: t?.prefix }); }, getCommon({ name: e = "", theme: t = {}, params: n, set: r, defaults: i }) { let { preset: a, options: o } = t, s, c, l, u, d, f, p; if (K(a) && o.transform !== "strict") { - let { primitive: t, semantic: n, extend: m } = a, h = n || {}, { colorScheme: g } = h, _ = Ml(h, ["colorScheme"]), v = m || {}, { colorScheme: y } = v, b = Ml(v, ["colorScheme"]), x = g || {}, { dark: S } = x, C = Ml(x, ["dark"]), w = y || {}, { dark: ee } = w, te = Ml(w, ["dark"]), ne = K(t) ? this._toVariables({ primitive: t }, o) : {}, T = K(_) ? this._toVariables({ semantic: _ }, o) : {}, re = K(C) ? this._toVariables({ light: C }, o) : {}, E = K(S) ? this._toVariables({ dark: S }, o) : {}, ie = K(b) ? this._toVariables({ semantic: b }, o) : {}, ae = K(te) ? this._toVariables({ light: te }, o) : {}, D = K(ee) ? this._toVariables({ dark: ee }, o) : {}, [oe, se] = [ne.declarations ?? "", ne.tokens], [ce, le] = [T.declarations ?? "", T.tokens || []], [ue, de] = [re.declarations ?? "", re.tokens || []], [fe, pe] = [E.declarations ?? "", E.tokens || []], [me, he] = [ie.declarations ?? "", ie.tokens || []], [ge, O] = [ae.declarations ?? "", ae.tokens || []], [_e, ve] = [D.declarations ?? "", D.tokens || []]; + let { primitive: t, semantic: n, extend: m } = a, h = n || {}, { colorScheme: g } = h, _ = Dl(h, ["colorScheme"]), v = m || {}, { colorScheme: y } = v, b = Dl(v, ["colorScheme"]), x = g || {}, { dark: S } = x, C = Dl(x, ["dark"]), w = y || {}, { dark: ee } = w, te = Dl(w, ["dark"]), ne = K(t) ? this._toVariables({ primitive: t }, o) : {}, T = K(_) ? this._toVariables({ semantic: _ }, o) : {}, re = K(C) ? this._toVariables({ light: C }, o) : {}, E = K(S) ? this._toVariables({ dark: S }, o) : {}, ie = K(b) ? this._toVariables({ semantic: b }, o) : {}, ae = K(te) ? this._toVariables({ light: te }, o) : {}, D = K(ee) ? this._toVariables({ dark: ee }, o) : {}, [oe, se] = [ne.declarations ?? "", ne.tokens], [ce, le] = [T.declarations ?? "", T.tokens || []], [ue, de] = [re.declarations ?? "", re.tokens || []], [fe, pe] = [E.declarations ?? "", E.tokens || []], [me, he] = [ie.declarations ?? "", ie.tokens || []], [ge, O] = [ae.declarations ?? "", ae.tokens || []], [_e, ve] = [D.declarations ?? "", D.tokens || []]; s = this.transformCSS(e, oe, "light", "variable", o, r, i), c = se, l = `${this.transformCSS(e, `${ce}${ue}`, "light", "variable", o, r, i)}${this.transformCSS(e, `${fe}`, "dark", "variable", o, r, i)}`, u = [.../* @__PURE__ */ new Set([ ...le, ...de, @@ -4332,7 +4254,7 @@ var Ql = { ...he, ...O, ...ve - ])], p = yc(a.css, { dt: Jl }); + ])], p = mc(a.css, { dt: Ul }); } return { primitive: { @@ -4353,16 +4275,16 @@ var Ql = { getPreset({ name: e = "", preset: t = {}, options: n, params: r, set: i, defaults: a, selector: o }) { let s, c, l; if (K(t) && n.transform !== "strict") { - let r = e.replace("-directive", ""), u = t, { colorScheme: d, extend: f, css: p } = u, m = Ml(u, [ + let r = e.replace("-directive", ""), u = t, { colorScheme: d, extend: f, css: p } = u, m = Dl(u, [ "colorScheme", "extend", "css" - ]), h = f || {}, { colorScheme: g } = h, _ = Ml(h, ["colorScheme"]), v = d || {}, { dark: y } = v, b = Ml(v, ["dark"]), x = g || {}, { dark: S } = x, C = Ml(x, ["dark"]), w = K(m) ? this._toVariables({ [r]: Al(Al({}, m), _) }, n) : {}, ee = K(b) ? this._toVariables({ [r]: Al(Al({}, b), C) }, n) : {}, te = K(y) ? this._toVariables({ [r]: Al(Al({}, y), S) }, n) : {}, [ne, T] = [w.declarations ?? "", w.tokens || []], [re, E] = [ee.declarations ?? "", ee.tokens || []], [ie, ae] = [te.declarations ?? "", te.tokens || []]; + ]), h = f || {}, { colorScheme: g } = h, _ = Dl(h, ["colorScheme"]), v = d || {}, { dark: y } = v, b = Dl(v, ["dark"]), x = g || {}, { dark: S } = x, C = Dl(x, ["dark"]), w = K(m) ? this._toVariables({ [r]: Tl(Tl({}, m), _) }, n) : {}, ee = K(b) ? this._toVariables({ [r]: Tl(Tl({}, b), C) }, n) : {}, te = K(y) ? this._toVariables({ [r]: Tl(Tl({}, y), S) }, n) : {}, [ne, T] = [w.declarations ?? "", w.tokens || []], [re, E] = [ee.declarations ?? "", ee.tokens || []], [ie, ae] = [te.declarations ?? "", te.tokens || []]; s = `${this.transformCSS(r, `${ne}${re}`, "light", "variable", n, i, a, o)}${this.transformCSS(r, ie, "dark", "variable", n, i, a, o)}`, c = [.../* @__PURE__ */ new Set([ ...T, ...E, ...ae - ])], l = yc(p, { dt: Jl }); + ])], l = mc(p, { dt: Ul }); } return { css: s, @@ -4400,7 +4322,7 @@ var Ql = { }, getLayerOrder(e, t = {}, n, r) { let { cssLayer: i } = t; - return i ? `@layer ${yc(i.order || i.name || "primeui", n)}` : ""; + return i ? `@layer ${mc(i.order || i.name || "primeui", n)}` : ""; }, getCommonStyleSheet({ name: e = "", theme: t = {}, params: n, props: r = {}, set: i, defaults: a }) { let o = this.getCommon({ @@ -4411,8 +4333,8 @@ var Ql = { defaults: a }), s = Object.entries(r).reduce((e, [t, n]) => e.push(`${t}="${n}"`) && e, []).join(" "); return Object.entries(o || {}).reduce((e, [t, n]) => { - if (hc(n) && Object.hasOwn(n, "css")) { - let r = Oc(n.css), i = `${t}-variables`; + if (uc(n) && Object.hasOwn(n, "css")) { + let r = Cc(n.css), i = `${t}-variables`; e.push(``); } return e; @@ -4426,7 +4348,7 @@ var Ql = { set: i, defaults: a }, s = (e.includes("-directive") ? this.getPresetD(o) : this.getPresetC(o))?.css, c = Object.entries(r).reduce((e, [t, n]) => e.push(`${t}="${n}"`) && e, []).join(" "); - return s ? `` : ""; + return s ? `` : ""; }, createTokens(e = {}, t, n = "", r = "", i = {}) { let a = function(e, t = {}, n = []) { @@ -4438,16 +4360,16 @@ var Ql = { }; n.push(this.path), t.name = this.path, t.binding ||= {}; let r = this.value; - if (typeof this.value == "string" && Pl.test(this.value)) { - let i = this.value.trim().replace(Pl, (r) => { + if (typeof this.value == "string" && kl.test(this.value)) { + let i = this.value.trim().replace(kl, (r) => { let i = r.slice(1, -1), a = this.tokens[i]; if (!a) return console.warn(`Token not found for path: ${i}`), "__UNRESOLVED__"; let o = a.computed(e, t, n); return Array.isArray(o) && o.length === 2 ? `light-dark(${o[0].value},${o[1].value})` : o?.value ?? "__UNRESOLVED__"; }); - r = Fl.test(i.replace(Il, "0")) ? `calc(${i})` : i; + r = Al.test(i.replace(jl, "0")) ? `calc(${i})` : i; } - return cc(t.binding) && delete t.binding, n.pop(), { + return rc(t.binding) && delete t.binding, n.pop(), { colorScheme: e, path: this.path, paths: t, @@ -4455,8 +4377,8 @@ var Ql = { }; }, o = (e, n, r) => { Object.entries(e).forEach(([e, s]) => { - let c = Ec(e, t.variable.excludedKeyRegex) ? n : n ? `${n}.${Ll(e)}` : Ll(e), l = r ? `${r}.${e}` : e; - hc(s) ? o(s, c, l) : (i[c] || (i[c] = { + let c = xc(e, t.variable.excludedKeyRegex) ? n : n ? `${n}.${Ml(e)}` : Ml(e), l = r ? `${r}.${e}` : e; + uc(s) ? o(s, c, l) : (i[c] || (i[c] = { paths: [], computed: (e, t = {}, n = []) => { if (i[c].paths.length === 1) return i[c].paths[0].computed(i[c].paths[0].scheme, t.binding, n); @@ -4478,31 +4400,31 @@ var Ql = { return o(e, n, r), i; }, getTokenValue(e, t, n) { - let r = ((e) => e.split(".").filter((e) => !Ec(e.toLowerCase(), n.variable.excludedKeyRegex)).join("."))(t), i = t.includes("colorScheme.light") ? "light" : t.includes("colorScheme.dark") ? "dark" : void 0, a = [e[r]?.computed(i)].flat().filter((e) => e); + let r = ((e) => e.split(".").filter((e) => !xc(e.toLowerCase(), n.variable.excludedKeyRegex)).join("."))(t), i = t.includes("colorScheme.light") ? "light" : t.includes("colorScheme.dark") ? "dark" : void 0, a = [e[r]?.computed(i)].flat().filter((e) => e); return a.length === 1 ? a[0].value : a.reduce((e = {}, t) => { let n = t, { colorScheme: r } = n; - return e[r] = Ml(n, ["colorScheme"]), e; + return e[r] = Dl(n, ["colorScheme"]), e; }, void 0); }, getSelectorRule(e, t, n, r) { - return n === "class" || n === "attr" ? Gl(K(t) ? `${e}${t},${e} ${t}` : e, r) : Gl(e, Gl(t ?? ":root,:host", r)); + return n === "class" || n === "attr" ? Bl(K(t) ? `${e}${t},${e} ${t}` : e, r) : Bl(e, Bl(t ?? ":root,:host", r)); }, transformCSS(e, t, n, r, i = {}, a, o, s) { if (K(t)) { let { cssLayer: c } = i; if (r !== "style") { let e = this.getColorSchemeOption(i, o); - t = n === "dark" ? e.reduce((e, { type: n, selector: r }) => (K(r) && (e += r.includes("[CSS]") ? r.replace("[CSS]", t) : this.getSelectorRule(r, s, n, t)), e), "") : Gl(s ?? ":root,:host", t); + t = n === "dark" ? e.reduce((e, { type: n, selector: r }) => (K(r) && (e += r.includes("[CSS]") ? r.replace("[CSS]", t) : this.getSelectorRule(r, s, n, t)), e), "") : Bl(s ?? ":root,:host", t); } if (c) { let n = { name: "primeui", order: "primeui" }; - hc(c) && (n.name = yc(c.name, { + uc(c) && (n.name = mc(c.name, { name: e, type: r - })), K(n.name) && (t = Gl(`@layer ${n.name}`, t), a?.layerNames(n.name)); + })), K(n.name) && (t = Bl(`@layer ${n.name}`, t), a?.layerNames(n.name)); } return t; } @@ -4528,7 +4450,7 @@ var Ql = { _tokens: {}, update(e = {}) { let { theme: t } = e; - t && (this._theme = jl(Al({}, t), { options: Al(Al({}, this.defaults.options), t.options) }), this._tokens = Ql.createTokens(this.preset, this.defaults), this.clearLoadedStyleNames()); + t && (this._theme = El(Tl({}, t), { options: Tl(Tl({}, this.defaults.options), t.options) }), this._tokens = ql.createTokens(this.preset, this.defaults), this.clearLoadedStyleNames()); }, get theme() { return this._theme; @@ -4546,19 +4468,19 @@ var Ql = { return this.theme; }, setTheme(e) { - this.update({ theme: e }), Nl.emit("theme:change", e); + this.update({ theme: e }), Ol.emit("theme:change", e); }, getPreset() { return this.preset; }, setPreset(e) { - this._theme = jl(Al({}, this.theme), { preset: e }), this._tokens = Ql.createTokens(e, this.defaults), this.clearLoadedStyleNames(), Nl.emit("preset:change", e), Nl.emit("theme:change", this.theme); + this._theme = El(Tl({}, this.theme), { preset: e }), this._tokens = ql.createTokens(e, this.defaults), this.clearLoadedStyleNames(), Ol.emit("preset:change", e), Ol.emit("theme:change", this.theme); }, getOptions() { return this.options; }, setOptions(e) { - this._theme = jl(Al({}, this.theme), { options: e }), this.clearLoadedStyleNames(), Nl.emit("options:change", e), Nl.emit("theme:change", this.theme); + this._theme = El(Tl({}, this.theme), { options: e }), this.clearLoadedStyleNames(), Ol.emit("options:change", e), Ol.emit("theme:change", this.theme); }, getLayerNames() { return [...this._layerNames]; @@ -4582,10 +4504,10 @@ var Ql = { this._loadedStyleNames.clear(); }, getTokenValue(e) { - return Ql.getTokenValue(this.tokens, e, this.defaults); + return ql.getTokenValue(this.tokens, e, this.defaults); }, getCommon(e = "", t) { - return Ql.getCommon({ + return ql.getCommon({ name: e, theme: this.theme, params: t, @@ -4601,7 +4523,7 @@ var Ql = { defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } }; - return Ql.getPresetC(n); + return ql.getPresetC(n); }, getDirective(e = "", t) { let n = { @@ -4611,7 +4533,7 @@ var Ql = { defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } }; - return Ql.getPresetD(n); + return ql.getPresetD(n); }, getCustomPreset(e = "", t, n, r) { let i = { @@ -4623,16 +4545,16 @@ var Ql = { defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } }; - return Ql.getPreset(i); + return ql.getPreset(i); }, getLayerOrderCSS(e = "") { - return Ql.getLayerOrder(e, this.options, { names: this.getLayerNames() }, this.defaults); + return ql.getLayerOrder(e, this.options, { names: this.getLayerNames() }, this.defaults); }, transformCSS(e = "", t, n = "style", r) { - return Ql.transformCSS(e, t, r, n, this.options, { layerNames: this.setLayerNames.bind(this) }, this.defaults); + return ql.transformCSS(e, t, r, n, this.options, { layerNames: this.setLayerNames.bind(this) }, this.defaults); }, getCommonStyleSheet(e = "", t, n = {}) { - return Ql.getCommonStyleSheet({ + return ql.getCommonStyleSheet({ name: e, theme: this.theme, params: t, @@ -4642,7 +4564,7 @@ var Ql = { }); }, getStyleSheet(e, t, n = {}) { - return Ql.getStyleSheet({ + return ql.getStyleSheet({ name: e, theme: this.theme, params: t, @@ -4658,9 +4580,9 @@ var Ql = { this._loadingStyles.add(e); }, onStyleLoaded(e, { name: t }) { - this._loadingStyles.size && (this._loadingStyles.delete(t), Nl.emit(`theme:${t}:load`, e), !this._loadingStyles.size && Nl.emit("theme:load")); + this._loadingStyles.size && (this._loadingStyles.delete(t), Ol.emit(`theme:${t}:load`, e), !this._loadingStyles.size && Ol.emit("theme:load")); } -}, $l = { +}, Jl = { STARTS_WITH: "startsWith", CONTAINS: "contains", NOT_CONTAINS: "notContains", @@ -4678,10 +4600,10 @@ var Ql = { DATE_BEFORE: "dateBefore", DATE_AFTER: "dateAfter" }; -function eu(e, t) { +function Yl(e, t) { var n = typeof Symbol < "u" && e[Symbol.iterator] || e["@@iterator"]; if (!n) { - if (Array.isArray(e) || (n = tu(e)) || t) { + if (Array.isArray(e) || (n = Xl(e)) || t) { n && (e = n); var r = 0, i = function() {}; return { @@ -4721,23 +4643,23 @@ function eu(e, t) { } }; } -function tu(e, t) { +function Xl(e, t) { if (e) { - if (typeof e == "string") return nu(e, t); + if (typeof e == "string") return Zl(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? nu(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Zl(e, t) : void 0; } } -function nu(e, t) { +function Zl(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -var ru = { +var Ql = { filter: function(e, t, n, r, i) { var a = []; if (!e) return a; - var o = eu(e), s; + var o = Yl(e), s; try { for (o.s(); !(s = o.n()).done;) { var c = s.value; @@ -4747,10 +4669,10 @@ var ru = { continue; } } else { - var l = eu(t), u; + var l = Yl(t), u; try { for (l.s(); !(u = l.n()).done;) { - var d = u.value, f = fc(c, d); + var d = u.value, f = sc(c, d); if (this.filters[r](f, n, i)) { a.push(c); break; @@ -4774,36 +4696,36 @@ var ru = { startsWith: function(e, t, n) { if (t == null || t === "") return !0; if (e == null) return !1; - var r = kc(t.toString()).toLocaleLowerCase(n); - return kc(e.toString()).toLocaleLowerCase(n).slice(0, r.length) === r; + var r = wc(t.toString()).toLocaleLowerCase(n); + return wc(e.toString()).toLocaleLowerCase(n).slice(0, r.length) === r; }, contains: function(e, t, n) { if (t == null || t === "") return !0; if (e == null) return !1; - var r = kc(t.toString()).toLocaleLowerCase(n); - return kc(e.toString()).toLocaleLowerCase(n).indexOf(r) !== -1; + var r = wc(t.toString()).toLocaleLowerCase(n); + return wc(e.toString()).toLocaleLowerCase(n).indexOf(r) !== -1; }, notContains: function(e, t, n) { if (t == null || t === "") return !0; if (e == null) return !1; - var r = kc(t.toString()).toLocaleLowerCase(n); - return kc(e.toString()).toLocaleLowerCase(n).indexOf(r) === -1; + var r = wc(t.toString()).toLocaleLowerCase(n); + return wc(e.toString()).toLocaleLowerCase(n).indexOf(r) === -1; }, endsWith: function(e, t, n) { if (t == null || t === "") return !0; if (e == null) return !1; - var r = kc(t.toString()).toLocaleLowerCase(n), i = kc(e.toString()).toLocaleLowerCase(n); + var r = wc(t.toString()).toLocaleLowerCase(n), i = wc(e.toString()).toLocaleLowerCase(n); return i.indexOf(r, i.length - r.length) !== -1; }, equals: function(e, t, n) { - return t == null || t === "" ? !0 : e == null ? !1 : e.getTime && t.getTime ? e.getTime() === t.getTime() : kc(e.toString()).toLocaleLowerCase(n) == kc(t.toString()).toLocaleLowerCase(n); + return t == null || t === "" ? !0 : e == null ? !1 : e.getTime && t.getTime ? e.getTime() === t.getTime() : wc(e.toString()).toLocaleLowerCase(n) == wc(t.toString()).toLocaleLowerCase(n); }, notEquals: function(e, t, n) { - return t == null || t === "" ? !1 : e == null ? !0 : e.getTime && t.getTime ? e.getTime() !== t.getTime() : kc(e.toString()).toLocaleLowerCase(n) != kc(t.toString()).toLocaleLowerCase(n); + return t == null || t === "" ? !1 : e == null ? !0 : e.getTime && t.getTime ? e.getTime() !== t.getTime() : wc(e.toString()).toLocaleLowerCase(n) != wc(t.toString()).toLocaleLowerCase(n); }, in: function(e, t) { if (t == null || t.length === 0) return !0; - for (var n = 0; n < t.length; n++) if (pc(e, t[n])) return !0; + for (var n = 0; n < t.length; n++) if (cc(e, t[n])) return !0; return !1; }, between: function(e, t) { @@ -4837,17 +4759,17 @@ var ru = { register: function(e, t) { this.filters[e] = t; } -}, iu = "\n *,\n ::before,\n ::after {\n box-sizing: border-box;\n }\n\n .p-collapsible-enter-active {\n animation: p-animate-collapsible-expand 0.2s ease-out;\n overflow: hidden;\n }\n\n .p-collapsible-leave-active {\n animation: p-animate-collapsible-collapse 0.2s ease-out;\n overflow: hidden;\n }\n\n @keyframes p-animate-collapsible-expand {\n from {\n grid-template-rows: 0fr;\n }\n to {\n grid-template-rows: 1fr;\n }\n }\n\n @keyframes p-animate-collapsible-collapse {\n from {\n grid-template-rows: 1fr;\n }\n to {\n grid-template-rows: 0fr;\n }\n }\n\n .p-disabled,\n .p-disabled * {\n cursor: default;\n pointer-events: none;\n user-select: none;\n }\n\n .p-disabled,\n .p-component:disabled {\n opacity: dt('disabled.opacity');\n }\n\n .pi {\n font-size: dt('icon.size');\n }\n\n .p-icon {\n width: dt('icon.size');\n height: dt('icon.size');\n }\n\n .p-overlay-mask {\n background: var(--px-mask-background, dt('mask.background'));\n color: dt('mask.color');\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n\n .p-overlay-mask-enter-active {\n animation: p-animate-overlay-mask-enter dt('mask.transition.duration') forwards;\n }\n\n .p-overlay-mask-leave-active {\n animation: p-animate-overlay-mask-leave dt('mask.transition.duration') forwards;\n }\n\n @keyframes p-animate-overlay-mask-enter {\n from {\n background: transparent;\n }\n to {\n background: var(--px-mask-background, dt('mask.background'));\n }\n }\n @keyframes p-animate-overlay-mask-leave {\n from {\n background: var(--px-mask-background, dt('mask.background'));\n }\n to {\n background: transparent;\n }\n }\n\n .p-anchored-overlay-enter-active {\n animation: p-animate-anchored-overlay-enter 300ms cubic-bezier(.19,1,.22,1);\n }\n\n .p-anchored-overlay-leave-active {\n animation: p-animate-anchored-overlay-leave 300ms cubic-bezier(.19,1,.22,1);\n }\n\n @keyframes p-animate-anchored-overlay-enter {\n from {\n opacity: 0;\n transform: scale(0.93);\n }\n }\n\n @keyframes p-animate-anchored-overlay-leave {\n to {\n opacity: 0;\n transform: scale(0.93);\n }\n }\n"; +}, $l = "\n *,\n ::before,\n ::after {\n box-sizing: border-box;\n }\n\n .p-collapsible-enter-active {\n animation: p-animate-collapsible-expand 0.2s ease-out;\n overflow: hidden;\n }\n\n .p-collapsible-leave-active {\n animation: p-animate-collapsible-collapse 0.2s ease-out;\n overflow: hidden;\n }\n\n @keyframes p-animate-collapsible-expand {\n from {\n grid-template-rows: 0fr;\n }\n to {\n grid-template-rows: 1fr;\n }\n }\n\n @keyframes p-animate-collapsible-collapse {\n from {\n grid-template-rows: 1fr;\n }\n to {\n grid-template-rows: 0fr;\n }\n }\n\n .p-disabled,\n .p-disabled * {\n cursor: default;\n pointer-events: none;\n user-select: none;\n }\n\n .p-disabled,\n .p-component:disabled {\n opacity: dt('disabled.opacity');\n }\n\n .pi {\n font-size: dt('icon.size');\n }\n\n .p-icon {\n width: dt('icon.size');\n height: dt('icon.size');\n }\n\n .p-overlay-mask {\n background: var(--px-mask-background, dt('mask.background'));\n color: dt('mask.color');\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n\n .p-overlay-mask-enter-active {\n animation: p-animate-overlay-mask-enter dt('mask.transition.duration') forwards;\n }\n\n .p-overlay-mask-leave-active {\n animation: p-animate-overlay-mask-leave dt('mask.transition.duration') forwards;\n }\n\n @keyframes p-animate-overlay-mask-enter {\n from {\n background: transparent;\n }\n to {\n background: var(--px-mask-background, dt('mask.background'));\n }\n }\n @keyframes p-animate-overlay-mask-leave {\n from {\n background: var(--px-mask-background, dt('mask.background'));\n }\n to {\n background: transparent;\n }\n }\n\n .p-anchored-overlay-enter-active {\n animation: p-animate-anchored-overlay-enter 300ms cubic-bezier(.19,1,.22,1);\n }\n\n .p-anchored-overlay-leave-active {\n animation: p-animate-anchored-overlay-leave 300ms cubic-bezier(.19,1,.22,1);\n }\n\n @keyframes p-animate-anchored-overlay-enter {\n from {\n opacity: 0;\n transform: scale(0.93);\n }\n }\n\n @keyframes p-animate-anchored-overlay-leave {\n to {\n opacity: 0;\n transform: scale(0.93);\n }\n }\n"; // node_modules/@primevue/core/usestyle/index.mjs -function au(e) { +function eu(e) { "@babel/helpers - typeof"; - return au = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return eu = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, au(e); + }, eu(e); } -function ou(e, t) { +function tu(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); @@ -4857,102 +4779,102 @@ function ou(e, t) { } return n; } -function su(e) { +function nu(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] == null ? {} : arguments[t]; - t % 2 ? ou(Object(n), !0).forEach(function(t) { - cu(e, t, n[t]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ou(Object(n)).forEach(function(t) { + t % 2 ? tu(Object(n), !0).forEach(function(t) { + ru(e, t, n[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : tu(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); }); } return e; } -function cu(e, t, n) { - return (t = lu(t)) in e ? Object.defineProperty(e, t, { +function ru(e, t, n) { + return (t = iu(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function lu(e) { - var t = uu(e, "string"); - return au(t) == "symbol" ? t : t + ""; +function iu(e) { + var t = au(e, "string"); + return eu(t) == "symbol" ? t : t + ""; } -function uu(e, t) { - if (au(e) != "object" || !e) return e; +function au(e, t) { + if (eu(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (au(r) != "object") return r; + if (eu(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -function du(e) { +function ou(e) { var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0; - co() && co().components ? ti(e) : t ? e() : Nn(e); + ro() && ro().components ? Qr(e) : t ? e() : Mn(e); } -var fu = 0; -function pu(e) { - var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, n = /* @__PURE__ */ en(!1), r = /* @__PURE__ */ en(e), i = /* @__PURE__ */ en(null), a = ml() ? window.document : void 0, o = t.document, s = o === void 0 ? a : o, c = t.immediate, l = c === void 0 || c, u = t.manual, d = u !== void 0 && u, f = t.name, p = f === void 0 ? `style_${++fu}` : f, m = t.id, h = m === void 0 ? void 0 : m, g = t.media, _ = g === void 0 ? void 0 : g, v = t.nonce, y = v === void 0 ? void 0 : v, b = t.first, x = b !== void 0 && b, S = t.onMounted, C = S === void 0 ? void 0 : S, w = t.onUpdated, ee = w === void 0 ? void 0 : w, te = t.onLoad, ne = te === void 0 ? void 0 : te, T = t.props, re = T === void 0 ? {} : T, E = function() {}, ie = function(t) { +var su = 0; +function cu(e) { + var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, n = /* @__PURE__ */ $t(!1), r = /* @__PURE__ */ $t(e), i = /* @__PURE__ */ $t(null), a = ll() ? window.document : void 0, o = t.document, s = o === void 0 ? a : o, c = t.immediate, l = c === void 0 || c, u = t.manual, d = u !== void 0 && u, f = t.name, p = f === void 0 ? `style_${++su}` : f, m = t.id, h = m === void 0 ? void 0 : m, g = t.media, _ = g === void 0 ? void 0 : g, v = t.nonce, y = v === void 0 ? void 0 : v, b = t.first, x = b !== void 0 && b, S = t.onMounted, C = S === void 0 ? void 0 : S, w = t.onUpdated, ee = w === void 0 ? void 0 : w, te = t.onLoad, ne = te === void 0 ? void 0 : te, T = t.props, re = T === void 0 ? {} : T, E = function() {}, ie = function(t) { var a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; if (s) { - var o = su(su({}, re), a), c = o.name || p, l = o.id || h, u = o.nonce || y; - i.value = s.querySelector(`style[data-primevue-style-id="${c}"]`) || s.getElementById(l) || s.createElement("style"), i.value.isConnected || (r.value = t || e, $c(i.value, { + var o = nu(nu({}, re), a), c = o.name || p, l = o.id || h, u = o.nonce || y; + i.value = s.querySelector(`style[data-primevue-style-id="${c}"]`) || s.getElementById(l) || s.createElement("style"), i.value.isConnected || (r.value = t || e, Jc(i.value, { type: "text/css", id: l, media: _, nonce: u - }), x ? s.head.prepend(i.value) : s.head.appendChild(i.value), vl(i.value, "data-primevue-style-id", c), $c(i.value, o), i.value.onload = function(e) { + }), x ? s.head.prepend(i.value) : s.head.appendChild(i.value), pl(i.value, "data-primevue-style-id", c), Jc(i.value, o), i.value.onload = function(e) { return ne?.(e, { name: c }); - }, C?.(c)), !n.value && (E = nr(r, function(e) { + }, C?.(c)), !n.value && (E = $n(r, function(e) { i.value.textContent = e, ee?.(c); }, { immediate: !0 }), n.value = !0); } }; - return l && !d && du(ie), { + return l && !d && ou(ie), { id: h, name: p, el: i, css: r, unload: function() { - s && n.value && (E(), Zc(i.value) && s.head.removeChild(i.value), n.value = !1, i.value = null); + s && n.value && (E(), Kc(i.value) && s.head.removeChild(i.value), n.value = !1, i.value = null); }, load: ie, - isLoaded: /* @__PURE__ */ Gt(n) + isLoaded: /* @__PURE__ */ Wt(n) }; } // node_modules/@primevue/core/base/style/index.mjs -function mu(e) { +function lu(e) { "@babel/helpers - typeof"; - return mu = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return lu = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, mu(e); + }, lu(e); } -var hu, gu, _u, vu; -function yu(e, t) { - return wu(e) || Cu(e, t) || xu(e, t) || bu(); +var uu, du, fu, pu; +function mu(e, t) { + return yu(e) || vu(e, t) || gu(e, t) || hu(); } -function bu() { +function hu() { throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function xu(e, t) { +function gu(e, t) { if (e) { - if (typeof e == "string") return Su(e, t); + if (typeof e == "string") return _u(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Su(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? _u(e, t) : void 0; } } -function Su(e, t) { +function _u(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function Cu(e, t) { +function vu(e, t) { var n = e == null ? null : typeof Symbol < "u" && e[Symbol.iterator] || e["@@iterator"]; if (n != null) { var r, i, a, o, s = [], c = !0, l = !1; @@ -4970,10 +4892,10 @@ function Cu(e, t) { return s; } } -function wu(e) { +function yu(e) { if (Array.isArray(e)) return e; } -function Tu(e, t) { +function bu(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); @@ -4983,40 +4905,40 @@ function Tu(e, t) { } return n; } -function Eu(e) { +function xu(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] == null ? {} : arguments[t]; - t % 2 ? Tu(Object(n), !0).forEach(function(t) { - Du(e, t, n[t]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Tu(Object(n)).forEach(function(t) { + t % 2 ? bu(Object(n), !0).forEach(function(t) { + Su(e, t, n[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : bu(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); }); } return e; } -function Du(e, t, n) { - return (t = Ou(t)) in e ? Object.defineProperty(e, t, { +function Su(e, t, n) { + return (t = Cu(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function Ou(e) { - var t = ku(e, "string"); - return mu(t) == "symbol" ? t : t + ""; +function Cu(e) { + var t = wu(e, "string"); + return lu(t) == "symbol" ? t : t + ""; } -function ku(e, t) { - if (mu(e) != "object" || !e) return e; +function wu(e, t) { + if (lu(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (mu(r) != "object") return r; + if (lu(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -function Au(e, t) { +function Tu(e, t) { return t ||= e.slice(0), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); } var X = { @@ -5044,14 +4966,14 @@ var X = { } `; }, - style: iu, + style: $l, classes: {}, inlineStyles: {}, load: function(e) { var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, n = (arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : function(e) { return e; - })(Xl(hu ||= Au(["", ""]), e)); - return K(n) ? pu(Oc(n), Eu({ name: this.name }, t)) : {}; + })(Gl(uu ||= Tu(["", ""]), e)); + return K(n) ? cu(Cc(n), xu({ name: this.name }, t)) : {}; }, loadCSS: function() { var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; @@ -5061,7 +4983,7 @@ var X = { var e = this, t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : ""; return this.load(this.style, t, function() { var r = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : ""; - return Y.transformCSS(t.name || e.name, `${r}${Xl(gu ||= Au(["", ""]), n)}`); + return Y.transformCSS(t.name || e.name, `${r}${Gl(du ||= Tu(["", ""]), n)}`); }); }, getCommonTheme: function(e) { @@ -5082,12 +5004,12 @@ var X = { getStyleSheet: function() { var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; if (this.css) { - var n = yc(this.css, { dt: Jl }) || "", r = Oc(Xl(_u ||= Au([ + var n = mc(this.css, { dt: Ul }) || "", r = Cc(Gl(fu ||= Tu([ "", "", "" ]), n, e)), i = Object.entries(t).reduce(function(e, t) { - var n = yu(t, 2), r = n[0], i = n[1]; + var n = mu(t, 2), r = n[0], i = n[1]; return e.push(`${r}="${i}"`) && e; }, []).join(" "); return K(r) ? `` : ""; @@ -5101,8 +5023,8 @@ var X = { getThemeStyleSheet: function(e) { var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, n = [Y.getStyleSheet(this.name, e, t)]; if (this.style) { - var r = this.name === "base" ? "global-style" : `${this.name}-style`, i = Xl(vu ||= Au(["", ""]), yc(this.style, { dt: Jl })), a = Oc(Y.transformCSS(r, i)), o = Object.entries(t).reduce(function(e, t) { - var n = yu(t, 2), r = n[0], i = n[1]; + var r = this.name === "base" ? "global-style" : `${this.name}-style`, i = Gl(pu ||= Tu(["", ""]), mc(this.style, { dt: Ul })), a = Cc(Y.transformCSS(r, i)), o = Object.entries(t).reduce(function(e, t) { + var n = mu(t, 2), r = n[0], i = n[1]; return e.push(`${r}="${i}"`) && e; }, []).join(" "); K(a) && n.push(``); @@ -5110,22 +5032,22 @@ var X = { return n.join(""); }, extend: function(e) { - return Eu(Eu({}, this), {}, { + return xu(xu({}, this), {}, { css: void 0, style: void 0 }, e); } -}, ju = Mc(); +}, Eu = Dc(); // node_modules/@primevue/core/config/index.mjs -function Mu(e) { +function Du(e) { "@babel/helpers - typeof"; - return Mu = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return Du = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, Mu(e); + }, Du(e); } -function Nu(e, t) { +function Ou(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); @@ -5135,40 +5057,40 @@ function Nu(e, t) { } return n; } -function Pu(e) { +function ku(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] == null ? {} : arguments[t]; - t % 2 ? Nu(Object(n), !0).forEach(function(t) { - Fu(e, t, n[t]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Nu(Object(n)).forEach(function(t) { + t % 2 ? Ou(Object(n), !0).forEach(function(t) { + Au(e, t, n[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Ou(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); }); } return e; } -function Fu(e, t, n) { - return (t = Iu(t)) in e ? Object.defineProperty(e, t, { +function Au(e, t, n) { + return (t = ju(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function Iu(e) { - var t = Lu(e, "string"); - return Mu(t) == "symbol" ? t : t + ""; +function ju(e) { + var t = Mu(e, "string"); + return Du(t) == "symbol" ? t : t + ""; } -function Lu(e, t) { - if (Mu(e) != "object" || !e) return e; +function Mu(e, t) { + if (Du(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (Mu(r) != "object") return r; + if (Du(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var Ru = { +var Nu = { ripple: !1, inputStyle: null, inputVariant: null, @@ -5355,26 +5277,26 @@ var Ru = { }, filterMatchModeOptions: { text: [ - $l.STARTS_WITH, - $l.CONTAINS, - $l.NOT_CONTAINS, - $l.ENDS_WITH, - $l.EQUALS, - $l.NOT_EQUALS + Jl.STARTS_WITH, + Jl.CONTAINS, + Jl.NOT_CONTAINS, + Jl.ENDS_WITH, + Jl.EQUALS, + Jl.NOT_EQUALS ], numeric: [ - $l.EQUALS, - $l.NOT_EQUALS, - $l.LESS_THAN, - $l.LESS_THAN_OR_EQUAL_TO, - $l.GREATER_THAN, - $l.GREATER_THAN_OR_EQUAL_TO + Jl.EQUALS, + Jl.NOT_EQUALS, + Jl.LESS_THAN, + Jl.LESS_THAN_OR_EQUAL_TO, + Jl.GREATER_THAN, + Jl.GREATER_THAN_OR_EQUAL_TO ], date: [ - $l.DATE_IS, - $l.DATE_IS_NOT, - $l.DATE_BEFORE, - $l.DATE_AFTER + Jl.DATE_IS, + Jl.DATE_IS_NOT, + Jl.DATE_BEFORE, + Jl.DATE_AFTER ] }, zIndex: { @@ -5391,59 +5313,59 @@ var Ru = { mergeProps: !1 }, csp: { nonce: void 0 } -}, zu = Symbol(); -function Bu(e, t) { - var n = { config: /* @__PURE__ */ Ut(t) }; - return e.config.globalProperties.$primevue = n, e.provide(zu, n), Hu(), Uu(e, n), n; +}, Pu = Symbol(); +function Fu(e, t) { + var n = { config: /* @__PURE__ */ Ht(t) }; + return e.config.globalProperties.$primevue = n, e.provide(Pu, n), Lu(), Ru(e, n), n; } -var Vu = []; -function Hu() { - Nl.clear(), Vu.forEach(function(e) { +var Iu = []; +function Lu() { + Ol.clear(), Iu.forEach(function(e) { return e?.(); - }), Vu = []; + }), Iu = []; } -function Uu(e, t) { - var n = /* @__PURE__ */ en(!1), r = function() { +function Ru(e, t) { + var n = /* @__PURE__ */ $t(!1), r = function() { if (t.config?.theme !== "none" && !Y.isStyleNameLoaded("common")) { var e, n = X.getCommonTheme?.call(X) || {}, r = n.primitive, i = n.semantic, a = n.global, o = n.style, s = { nonce: (e = t.config) == null || (e = e.csp) == null ? void 0 : e.nonce }; - X.load(r?.css, Pu({ name: "primitive-variables" }, s)), X.load(i?.css, Pu({ name: "semantic-variables" }, s)), X.load(a?.css, Pu({ name: "global-variables" }, s)), X.loadStyle(Pu({ name: "global-style" }, s), o), Y.setLoadedStyleName("common"); + X.load(r?.css, ku({ name: "primitive-variables" }, s)), X.load(i?.css, ku({ name: "semantic-variables" }, s)), X.load(a?.css, ku({ name: "global-variables" }, s)), X.loadStyle(ku({ name: "global-style" }, s), o), Y.setLoadedStyleName("common"); } }; - Nl.on("theme:change", function(t) { + Ol.on("theme:change", function(t) { n.value ||= (e.config.globalProperties.$primevue.config.theme = t, !0); }); - var i = nr(t.config, function(e, t) { - ju.emit("config:change", { + var i = $n(t.config, function(e, t) { + Eu.emit("config:change", { newValue: e, oldValue: t }); }, { immediate: !0, deep: !0 - }), a = nr(function() { + }), a = $n(function() { return t.config.ripple; }, function(e, t) { - ju.emit("config:ripple:change", { + Eu.emit("config:ripple:change", { newValue: e, oldValue: t }); }, { immediate: !0, deep: !0 - }), o = nr(function() { + }), o = $n(function() { return t.config.theme; }, function(e, i) { - n.value || Y.setTheme(e), t.config.unstyled || r(), n.value = !1, ju.emit("config:theme:change", { + n.value || Y.setTheme(e), t.config.unstyled || r(), n.value = !1, Eu.emit("config:theme:change", { newValue: e, oldValue: i }); }, { immediate: !0, deep: !1 - }), s = nr(function() { + }), s = $n(function() { return t.config.unstyled; }, function(e, n) { - !e && t.config.theme && r(), ju.emit("config:unstyled:change", { + !e && t.config.theme && r(), Eu.emit("config:unstyled:change", { newValue: e, oldValue: n }); @@ -5451,37 +5373,37 @@ function Uu(e, t) { immediate: !0, deep: !0 }); - Vu.push(i), Vu.push(a), Vu.push(o), Vu.push(s); + Iu.push(i), Iu.push(a), Iu.push(o), Iu.push(s); } -var Wu = { install: function(e, t) { - Bu(e, Dc(Ru, t)); -} }, Gu = Mc(), Ku = Symbol(), qu = { install: function(e) { +var zu = { install: function(e, t) { + Fu(e, Sc(Nu, t)); +} }, Bu = Dc(), Vu = Symbol(), Hu = { install: function(e) { var t = { add: function(e) { - Gu.emit("add", e); + Bu.emit("add", e); }, remove: function(e) { - Gu.emit("remove", e); + Bu.emit("remove", e); }, removeGroup: function(e) { - Gu.emit("remove-group", e); + Bu.emit("remove-group", e); }, removeAllGroups: function() { - Gu.emit("remove-all-groups"); + Bu.emit("remove-all-groups"); } }; - e.config.globalProperties.$toast = t, e.provide(Ku, t); -} }, Ju = Mc(), Yu = Symbol(), Xu = { install: function(e) { + e.config.globalProperties.$toast = t, e.provide(Vu, t); +} }, Uu = Dc(), Wu = Symbol(), Gu = { install: function(e) { var t = { require: function(e) { - Ju.emit("confirm", e); + Uu.emit("confirm", e); }, close: function() { - Ju.emit("close"); + Uu.emit("close"); } }; - e.config.globalProperties.$confirm = t, e.provide(Yu, t); -} }, Zu = { + e.config.globalProperties.$confirm = t, e.provide(Wu, t); +} }, Ku = { _loadedStyleNames: /* @__PURE__ */ new Set(), getLoadedStyleNames: function() { return this._loadedStyleNames; @@ -5500,44 +5422,44 @@ var Wu = { install: function(e, t) { } }; // node_modules/@primevue/core/useattrselector/index.mjs -function Qu() { - return `${arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "pc"}${Ir().replace("v-", "").replaceAll("-", "_")}`; +function qu() { + return `${arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "pc"}${Nr().replace("v-", "").replaceAll("-", "_")}`; } // node_modules/@primevue/core/basecomponent/index.mjs -var $u = X.extend({ name: "common" }); -function ed(e) { +var Ju = X.extend({ name: "common" }); +function Yu(e) { "@babel/helpers - typeof"; - return ed = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return Yu = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, ed(e); + }, Yu(e); } -function td(e) { - return cd(e) || nd(e) || ad(e) || id(); +function Xu(e) { + return rd(e) || Zu(e) || ed(e) || $u(); } -function nd(e) { +function Zu(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function rd(e, t) { - return cd(e) || sd(e, t) || ad(e, t) || id(); +function Qu(e, t) { + return rd(e) || nd(e, t) || ed(e, t) || $u(); } -function id() { +function $u() { throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function ad(e, t) { +function ed(e, t) { if (e) { - if (typeof e == "string") return od(e, t); + if (typeof e == "string") return td(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? od(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? td(e, t) : void 0; } } -function od(e, t) { +function td(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function sd(e, t) { +function nd(e, t) { var n = e == null ? null : typeof Symbol < "u" && e[Symbol.iterator] || e["@@iterator"]; if (n != null) { var r, i, a, o, s = [], c = !0, l = !1; @@ -5558,10 +5480,10 @@ function sd(e, t) { return s; } } -function cd(e) { +function rd(e) { if (Array.isArray(e)) return e; } -function ld(e, t) { +function id(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); @@ -5574,37 +5496,37 @@ function ld(e, t) { function Z(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] == null ? {} : arguments[t]; - t % 2 ? ld(Object(n), !0).forEach(function(t) { - ud(e, t, n[t]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ld(Object(n)).forEach(function(t) { + t % 2 ? id(Object(n), !0).forEach(function(t) { + ad(e, t, n[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : id(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); }); } return e; } -function ud(e, t, n) { - return (t = dd(t)) in e ? Object.defineProperty(e, t, { +function ad(e, t, n) { + return (t = od(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function dd(e) { - var t = fd(e, "string"); - return ed(t) == "symbol" ? t : t + ""; +function od(e) { + var t = sd(e, "string"); + return Yu(t) == "symbol" ? t : t + ""; } -function fd(e, t) { - if (ed(e) != "object" || !e) return e; +function sd(e, t) { + if (Yu(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (ed(r) != "object") return r; + if (Yu(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var pd = { +var cd = { name: "BaseComponent", props: { pt: { @@ -5629,14 +5551,14 @@ var pd = { isUnstyled: { immediate: !0, handler: function(e) { - Nl.off("theme:change", this._loadCoreStyles), e || (this._loadCoreStyles(), this._themeChangeListener(this._loadCoreStyles)); + Ol.off("theme:change", this._loadCoreStyles), e || (this._loadCoreStyles(), this._themeChangeListener(this._loadCoreStyles)); } }, dt: { immediate: !0, handler: function(e, t) { var n = this; - Nl.off("theme:change", this._themeScopedListener), e ? (this._loadScopedThemeStyles(e), this._themeScopedListener = function() { + Ol.off("theme:change", this._themeScopedListener), e ? (this._loadScopedThemeStyles(e), this._themeScopedListener = function() { return n._loadScopedThemeStyles(e); }, this._themeChangeListener(this._themeScopedListener)) : this._unloadScopedThemeStyles(); } @@ -5650,13 +5572,13 @@ var pd = { var e, t, n, r, i, a, o, s, c, l, u = this.pt?._usept, d = u ? (e = this.pt) == null || (e = e.originalValue) == null ? void 0 : e[this.$.type.name] : void 0; (n = (u ? (t = this.pt) == null || (t = t.value) == null ? void 0 : t[this.$.type.name] : this.pt) || d) == null || (n = n.hooks) == null || (r = n.onBeforeCreate) == null || r.call(n); var f = (i = this.$primevueConfig) == null || (i = i.pt) == null ? void 0 : i._usept, p = f ? (a = this.$primevue) == null || (a = a.config) == null || (a = a.pt) == null ? void 0 : a.originalValue : void 0; - (c = (f ? (o = this.$primevue) == null || (o = o.config) == null || (o = o.pt) == null ? void 0 : o.value : (s = this.$primevue) == null || (s = s.config) == null ? void 0 : s.pt) || p) == null || (c = c[this.$.type.name]) == null || (c = c.hooks) == null || (l = c.onBeforeCreate) == null || l.call(c), this.$attrSelector = Qu(), this.uid = this.$attrs.id || this.$attrSelector.replace("pc", "pv_id_"); + (c = (f ? (o = this.$primevue) == null || (o = o.config) == null || (o = o.pt) == null ? void 0 : o.value : (s = this.$primevue) == null || (s = s.config) == null ? void 0 : s.pt) || p) == null || (c = c[this.$.type.name]) == null || (c = c.hooks) == null || (l = c.onBeforeCreate) == null || l.call(c), this.$attrSelector = qu(), this.uid = this.$attrs.id || this.$attrSelector.replace("pc", "pv_id_"); }, created: function() { this._hook("onCreated"); }, beforeMount: function() { - this.rootEl = nl(Qc(this.$el) ? this.$el : this.$el?.parentElement, `[${this.$attrSelector}]`), this.rootEl && (this.rootEl.$pc = Z({ + this.rootEl = Zc(qc(this.$el) ? this.$el : this.$el?.parentElement, `[${this.$attrSelector}]`), this.rootEl && (this.rootEl.$pc = Z({ name: this.$.type.name, attrSelector: this.$attrSelector }, this.$params)), this._loadStyles(), this._hook("onBeforeMount"); @@ -5685,17 +5607,17 @@ var pd = { }, _mergeProps: function(e) { var t = [...arguments].slice(1); - return dc(e) ? e.apply(void 0, t) : G.apply(void 0, t); + return oc(e) ? e.apply(void 0, t) : W.apply(void 0, t); }, _load: function() { - Zu.isStyleNameLoaded("base") || (X.loadCSS(this.$styleOptions), this._loadGlobalStyles(), Zu.setLoadedStyleName("base")), this._loadThemeStyles(); + Ku.isStyleNameLoaded("base") || (X.loadCSS(this.$styleOptions), this._loadGlobalStyles(), Ku.setLoadedStyleName("base")), this._loadThemeStyles(); }, _loadStyles: function() { this._load(), this._themeChangeListener(this._load); }, _loadCoreStyles: function() { var e; - !Zu.isStyleNameLoaded(this.$style?.name) && (e = this.$style) != null && e.name && ($u.loadCSS(this.$styleOptions), this.$options.style && this.$style.loadCSS(this.$styleOptions), Zu.setLoadedStyleName(this.$style.name)); + !Ku.isStyleNameLoaded(this.$style?.name) && (e = this.$style) != null && e.name && (Ju.loadCSS(this.$styleOptions), this.$options.style && this.$style.loadCSS(this.$styleOptions), Ku.setLoadedStyleName(this.$style.name)); }, _loadGlobalStyles: function() { var e = this._useGlobalPT(this._getOptionValue, "global.css", this.$params); @@ -5731,10 +5653,10 @@ var pd = { }, _themeChangeListener: function() { var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : function() {}; - Zu.clearLoadedStyleNames(), Nl.on("theme:change", e); + Ku.clearLoadedStyleNames(), Ol.on("theme:change", e); }, _removeThemeListeners: function() { - Nl.off("theme:change", this._loadCoreStyles), Nl.off("theme:change", this._load), Nl.off("theme:change", this._themeScopedListener); + Ol.off("theme:change", this._loadCoreStyles), Ol.off("theme:change", this._load), Ol.off("theme:change", this._themeScopedListener); }, _getHostInstance: function(e) { return e ? this.$options.hostName ? e.$.type.name === this.$options.hostName ? e : this._getHostInstance(e.$parentInstance) : e.$parentInstance : void 0; @@ -5743,7 +5665,7 @@ var pd = { return this[e] || this._getHostInstance(this)?.[e]; }, _getOptionValue: function(e) { - return Sc(e, arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "", arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}); + return _c(e, arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "", arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}); }, _getPTValue: function() { var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "", n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, r = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !0, i = /./g.test(t) && !!n[t.split(".")[0]], a = this._getPropValue("ptOptions") || this.$primevueConfig?.ptOptions || {}, o = a.mergeSections, s = o === void 0 || o, c = a.mergeProps, l = c !== void 0 && c, u = r ? i ? this._useGlobalPT(this._getPTClassValue, t, n) : this._useDefaultPT(this._getPTClassValue, t, n) : void 0, d = i ? void 0 : this._getPTSelf(e, this._getPTClassValue, t, Z(Z({}, n), {}, { global: u || {} })), f = this._getPTDatasets(t); @@ -5751,19 +5673,19 @@ var pd = { }, _getPTSelf: function() { var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, t = [...arguments].slice(1); - return G(this._usePT.apply(this, [this._getPT(e, this.$name)].concat(t)), this._usePT.apply(this, [this.$_attrsPT].concat(t))); + return W(this._usePT.apply(this, [this._getPT(e, this.$name)].concat(t)), this._usePT.apply(this, [this.$_attrsPT].concat(t))); }, _getPTDatasets: function() { var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", t = "data-pc-", n = e === "root" && K(this.pt?.["data-pc-section"]); - return e !== "transition" && Z(Z({}, e === "root" && Z(Z(ud({}, `${t}name`, xc(n ? this.pt?.["data-pc-section"] : this.$.type.name)), n && ud({}, `${t}extend`, xc(this.$.type.name))), {}, ud({}, `${this.$attrSelector}`, ""))), {}, ud({}, `${t}section`, xc(e))); + return e !== "transition" && Z(Z({}, e === "root" && Z(Z(ad({}, `${t}name`, gc(n ? this.pt?.["data-pc-section"] : this.$.type.name)), n && ad({}, `${t}extend`, gc(this.$.type.name))), {}, ad({}, `${this.$attrSelector}`, ""))), {}, ad({}, `${t}section`, gc(e))); }, _getPTClassValue: function() { var e = this._getOptionValue.apply(this, arguments); - return bc(e) || Cc(e) ? { class: e } : e; + return hc(e) || vc(e) ? { class: e } : e; }, _getPT: function(e) { var t = this, n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "", r = arguments.length > 2 ? arguments[2] : void 0, i = function(e) { - var i = arguments.length > 1 && arguments[1] !== void 0 && arguments[1], a = r ? r(e) : e, o = xc(n), s = xc(t.$name); + var i = arguments.length > 1 && arguments[1] !== void 0 && arguments[1], a = r ? r(e) : e, o = gc(n), s = gc(t.$name); return (i && o === s ? void 0 : a?.[o]) ?? a; }; return e != null && e.hasOwnProperty("_usept") ? { @@ -5778,7 +5700,7 @@ var pd = { }; if (e != null && e.hasOwnProperty("_usept")) { var a = e._usept || this.$primevueConfig?.ptOptions || {}, o = a.mergeSections, s = o === void 0 || o, c = a.mergeProps, l = c !== void 0 && c, u = i(e.originalValue), d = i(e.value); - return u === void 0 && d === void 0 ? void 0 : bc(d) ? d : bc(u) ? u : s || !s && d ? l ? this._mergeProps(l, u, d) : Z(Z({}, u), d) : d; + return u === void 0 && d === void 0 ? void 0 : hc(d) ? d : hc(u) ? u : s || !s && d ? l ? this._mergeProps(l, u, d) : Z(Z({}, u), d) : d; } return i(e); }, @@ -5793,7 +5715,7 @@ var pd = { return this._getPTValue(this.pt, e, Z(Z({}, this.$params), t)); }, ptmi: function() { - var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, n = G(this.$_attrsWithoutPT, this.ptm(e, t)); + var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, n = W(this.$_attrsWithoutPT, this.ptm(e, t)); return n != null && n.hasOwnProperty("id") && (n.id ??= this.$id), n; }, ptmo: function() { @@ -5808,7 +5730,7 @@ var pd = { var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0, n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; if (t) { var r = this._getOptionValue(this.$style.inlineStyles, e, Z(Z({}, this.$params), n)); - return [this._getOptionValue($u.inlineStyles, e, Z(Z({}, this.$params), n)), r]; + return [this._getOptionValue(Ju.inlineStyles, e, Z(Z({}, this.$params), n)), r]; } } }, @@ -5816,13 +5738,13 @@ var pd = { globalPT: function() { var e = this; return this._getPT(this.$primevueConfig?.pt, void 0, function(t) { - return yc(t, { instance: e }); + return mc(t, { instance: e }); }); }, defaultPT: function() { var e = this; return this._getPT(this.$primevueConfig?.pt, void 0, function(t) { - return e._getOptionValue(t, e.$name, Z({}, e.$params)) || yc(t, Z({}, e.$params)); + return e._getOptionValue(t, e.$name, Z({}, e.$params)) || mc(t, Z({}, e.$params)); }); }, isUnstyled: function() { @@ -5834,7 +5756,7 @@ var pd = { $inProps: function() { var e = Object.keys(this.$.vnode?.props || {}); return Object.fromEntries(Object.entries(this.$props).filter(function(t) { - var n = rd(t, 1)[0]; + var n = Qu(t, 1)[0]; return e?.includes(n); })); }, @@ -5877,38 +5799,38 @@ var pd = { }, $_attrsPT: function() { return Object.entries(this.$attrs || {}).filter(function(e) { - return rd(e, 1)[0]?.startsWith("pt:"); + return Qu(e, 1)[0]?.startsWith("pt:"); }).reduce(function(e, t) { - var n = rd(t, 2), r = n[0], i = n[1]; - return od(td(r.split(":"))).slice(1)?.reduce(function(e, t, n, r) { + var n = Qu(t, 2), r = n[0], i = n[1]; + return td(Xu(r.split(":"))).slice(1)?.reduce(function(e, t, n, r) { return !e[t] && (e[t] = n === r.length - 1 ? i : {}), e[t]; }, e), e; }, {}); }, $_attrsWithoutPT: function() { return Object.entries(this.$attrs || {}).filter(function(e) { - var t = rd(e, 1)[0]; + var t = Qu(e, 1)[0]; return !(t != null && t.startsWith("pt:")); }).reduce(function(e, t) { - var n = rd(t, 2), r = n[0]; + var n = Qu(t, 2), r = n[0]; return e[r] = n[1], e; }, {}); } } -}, md = X.extend({ +}, ld = X.extend({ name: "baseicon", css: "\n.p-icon {\n display: inline-block;\n vertical-align: baseline;\n flex-shrink: 0;\n}\n\n.p-icon-spin {\n -webkit-animation: p-icon-spin 2s infinite linear;\n animation: p-icon-spin 2s infinite linear;\n}\n\n@-webkit-keyframes p-icon-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n\n@keyframes p-icon-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n" }); // node_modules/@primevue/icons/baseicon/index.mjs -function hd(e) { +function ud(e) { "@babel/helpers - typeof"; - return hd = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return ud = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, hd(e); + }, ud(e); } -function gd(e, t) { +function dd(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); @@ -5918,42 +5840,42 @@ function gd(e, t) { } return n; } -function _d(e) { +function fd(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] == null ? {} : arguments[t]; - t % 2 ? gd(Object(n), !0).forEach(function(t) { - vd(e, t, n[t]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : gd(Object(n)).forEach(function(t) { + t % 2 ? dd(Object(n), !0).forEach(function(t) { + pd(e, t, n[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : dd(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); }); } return e; } -function vd(e, t, n) { - return (t = yd(t)) in e ? Object.defineProperty(e, t, { +function pd(e, t, n) { + return (t = md(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function yd(e) { - var t = bd(e, "string"); - return hd(t) == "symbol" ? t : t + ""; +function md(e) { + var t = hd(e, "string"); + return ud(t) == "symbol" ? t : t + ""; } -function bd(e, t) { - if (hd(e) != "object" || !e) return e; +function hd(e, t) { + if (ud(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (hd(r) != "object") return r; + if (ud(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var xd = { +var gd = { name: "BaseIcon", - extends: pd, + extends: cd, props: { label: { type: String, @@ -5964,7 +5886,7 @@ var xd = { default: !1 } }, - style: md, + style: ld, provide: function() { return { $pcIcon: this, @@ -5972,63 +5894,63 @@ var xd = { }; }, methods: { pti: function() { - var e = cc(this.label); - return _d(_d({}, !this.isUnstyled && { class: ["p-icon", { "p-icon-spin": this.spin }] }), {}, { + var e = rc(this.label); + return fd(fd({}, !this.isUnstyled && { class: ["p-icon", { "p-icon-spin": this.spin }] }), {}, { role: e ? void 0 : "img", "aria-label": e ? void 0 : this.label, "aria-hidden": e }); } } -}, Sd = { +}, _d = { name: "SpinnerIcon", - extends: xd + extends: gd }; -function Cd(e) { - return Dd(e) || Ed(e) || Td(e) || wd(); +function vd(e) { + return Sd(e) || xd(e) || bd(e) || yd(); } -function wd() { +function yd() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function Td(e, t) { +function bd(e, t) { if (e) { - if (typeof e == "string") return Od(e, t); + if (typeof e == "string") return Cd(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Od(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Cd(e, t) : void 0; } } -function Ed(e) { +function xd(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function Dd(e) { - if (Array.isArray(e)) return Od(e); +function Sd(e) { + if (Array.isArray(e)) return Cd(e); } -function Od(e, t) { +function Cd(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function kd(e, t, n, r, i, a) { - return z(), B("svg", G({ +function wd(e, t, n, r, i, a) { + return R(), z("svg", W({ width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" - }, e.pti()), Cd(t[0] ||= [H("path", { + }, e.pti()), vd(t[0] ||= [V("path", { d: "M6.99701 14C5.85441 13.999 4.72939 13.7186 3.72012 13.1832C2.71084 12.6478 1.84795 11.8737 1.20673 10.9284C0.565504 9.98305 0.165424 8.89526 0.041387 7.75989C-0.0826496 6.62453 0.073125 5.47607 0.495122 4.4147C0.917119 3.35333 1.59252 2.4113 2.46241 1.67077C3.33229 0.930247 4.37024 0.413729 5.4857 0.166275C6.60117 -0.0811796 7.76026 -0.0520535 8.86188 0.251112C9.9635 0.554278 10.9742 1.12227 11.8057 1.90555C11.915 2.01493 11.9764 2.16319 11.9764 2.31778C11.9764 2.47236 11.915 2.62062 11.8057 2.73C11.7521 2.78503 11.688 2.82877 11.6171 2.85864C11.5463 2.8885 11.4702 2.90389 11.3933 2.90389C11.3165 2.90389 11.2404 2.8885 11.1695 2.85864C11.0987 2.82877 11.0346 2.78503 10.9809 2.73C9.9998 1.81273 8.73246 1.26138 7.39226 1.16876C6.05206 1.07615 4.72086 1.44794 3.62279 2.22152C2.52471 2.99511 1.72683 4.12325 1.36345 5.41602C1.00008 6.70879 1.09342 8.08723 1.62775 9.31926C2.16209 10.5513 3.10478 11.5617 4.29713 12.1803C5.48947 12.7989 6.85865 12.988 8.17414 12.7157C9.48963 12.4435 10.6711 11.7264 11.5196 10.6854C12.3681 9.64432 12.8319 8.34282 12.8328 7C12.8328 6.84529 12.8943 6.69692 13.0038 6.58752C13.1132 6.47812 13.2616 6.41667 13.4164 6.41667C13.5712 6.41667 13.7196 6.47812 13.8291 6.58752C13.9385 6.69692 14 6.84529 14 7C14 8.85651 13.2622 10.637 11.9489 11.9497C10.6356 13.2625 8.85432 14 6.99701 14Z", fill: "currentColor" }, null, -1)]), 16); } -Sd.render = kd; +_d.render = wd; // node_modules/primevue/badge/style/index.mjs -var Ad = X.extend({ +var Td = X.extend({ name: "badge", style: "\n .p-badge {\n display: inline-flex;\n border-radius: dt('badge.border.radius');\n align-items: center;\n justify-content: center;\n padding: dt('badge.padding');\n background: dt('badge.primary.background');\n color: dt('badge.primary.color');\n font-size: dt('badge.font.size');\n font-weight: dt('badge.font.weight');\n min-width: dt('badge.min.width');\n height: dt('badge.height');\n }\n\n .p-badge-dot {\n width: dt('badge.dot.size');\n min-width: dt('badge.dot.size');\n height: dt('badge.dot.size');\n border-radius: 50%;\n padding: 0;\n }\n\n .p-badge-circle {\n padding: 0;\n border-radius: 50%;\n }\n\n .p-badge-secondary {\n background: dt('badge.secondary.background');\n color: dt('badge.secondary.color');\n }\n\n .p-badge-success {\n background: dt('badge.success.background');\n color: dt('badge.success.color');\n }\n\n .p-badge-info {\n background: dt('badge.info.background');\n color: dt('badge.info.color');\n }\n\n .p-badge-warn {\n background: dt('badge.warn.background');\n color: dt('badge.warn.color');\n }\n\n .p-badge-danger {\n background: dt('badge.danger.background');\n color: dt('badge.danger.color');\n }\n\n .p-badge-contrast {\n background: dt('badge.contrast.background');\n color: dt('badge.contrast.color');\n }\n\n .p-badge-sm {\n font-size: dt('badge.sm.font.size');\n min-width: dt('badge.sm.min.width');\n height: dt('badge.sm.height');\n }\n\n .p-badge-lg {\n font-size: dt('badge.lg.font.size');\n min-width: dt('badge.lg.min.width');\n height: dt('badge.lg.height');\n }\n\n .p-badge-xl {\n font-size: dt('badge.xl.font.size');\n min-width: dt('badge.xl.min.width');\n height: dt('badge.xl.height');\n }\n", classes: { root: function(e) { var t = e.props, n = e.instance; return ["p-badge p-component", { "p-badge-circle": K(t.value) && String(t.value).length === 1, - "p-badge-dot": cc(t.value) && !n.$slots.default, + "p-badge-dot": rc(t.value) && !n.$slots.default, "p-badge-sm": t.size === "small", "p-badge-lg": t.size === "large", "p-badge-xl": t.size === "xlarge", @@ -6040,9 +5962,9 @@ var Ad = X.extend({ "p-badge-contrast": t.severity === "contrast" }]; } } -}), jd = { +}), Ed = { name: "BaseBadge", - extends: pd, + extends: cd, props: { value: { type: [String, Number], @@ -6057,7 +5979,7 @@ var Ad = X.extend({ default: null } }, - style: Ad, + style: Td, provide: function() { return { $pcBadge: this, @@ -6065,84 +5987,84 @@ var Ad = X.extend({ }; } }; -function Md(e) { +function Dd(e) { "@babel/helpers - typeof"; - return Md = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return Dd = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, Md(e); + }, Dd(e); } -function Nd(e, t, n) { - return (t = Pd(t)) in e ? Object.defineProperty(e, t, { +function Od(e, t, n) { + return (t = kd(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function Pd(e) { - var t = Fd(e, "string"); - return Md(t) == "symbol" ? t : t + ""; +function kd(e) { + var t = Ad(e, "string"); + return Dd(t) == "symbol" ? t : t + ""; } -function Fd(e, t) { - if (Md(e) != "object" || !e) return e; +function Ad(e, t) { + if (Dd(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (Md(r) != "object") return r; + if (Dd(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var Id = { +var jd = { name: "Badge", - extends: jd, + extends: Ed, inheritAttrs: !1, computed: { dataP: function() { - return q(Nd(Nd({ + return q(Od(Od({ circle: this.value != null && String(this.value).length === 1, empty: this.value == null && !this.$slots.default }, this.severity, this.severity), this.size, this.size)); } } -}, Ld = ["data-p"]; -function Rd(e, t, n, r, i, a) { - return z(), B("span", G({ +}, Md = ["data-p"]; +function Nd(e, t, n, r, i, a) { + return R(), z("span", W({ class: e.cx("root"), "data-p": a.dataP }, e.ptmi("root")), [I(e.$slots, "default", {}, function() { - return [Za(k(e.value), 1)]; - })], 16, Ld); + return [Ja(k(e.value), 1)]; + })], 16, Md); } -Id.render = Rd; +jd.render = Nd; // node_modules/@primevue/core/basedirective/index.mjs -function zd(e) { +function Pd(e) { "@babel/helpers - typeof"; - return zd = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return Pd = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, zd(e); + }, Pd(e); } -function Bd(e, t) { - return Gd(e) || Wd(e, t) || Hd(e, t) || Vd(); +function Fd(e, t) { + return Bd(e) || zd(e, t) || Ld(e, t) || Id(); } -function Vd() { +function Id() { throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function Hd(e, t) { +function Ld(e, t) { if (e) { - if (typeof e == "string") return Ud(e, t); + if (typeof e == "string") return Rd(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Ud(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Rd(e, t) : void 0; } } -function Ud(e, t) { +function Rd(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function Wd(e, t) { +function zd(e, t) { var n = e == null ? null : typeof Symbol < "u" && e[Symbol.iterator] || e["@@iterator"]; if (n != null) { var r, i, a, o, s = [], c = !0, l = !1; @@ -6160,10 +6082,10 @@ function Wd(e, t) { return s; } } -function Gd(e) { +function Bd(e) { if (Array.isArray(e)) return e; } -function Kd(e, t) { +function Vd(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); @@ -6176,59 +6098,59 @@ function Kd(e, t) { function Q(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] == null ? {} : arguments[t]; - t % 2 ? Kd(Object(n), !0).forEach(function(t) { - qd(e, t, n[t]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Kd(Object(n)).forEach(function(t) { + t % 2 ? Vd(Object(n), !0).forEach(function(t) { + Hd(e, t, n[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Vd(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); }); } return e; } -function qd(e, t, n) { - return (t = Jd(t)) in e ? Object.defineProperty(e, t, { +function Hd(e, t, n) { + return (t = Ud(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function Jd(e) { - var t = Yd(e, "string"); - return zd(t) == "symbol" ? t : t + ""; +function Ud(e) { + var t = Wd(e, "string"); + return Pd(t) == "symbol" ? t : t + ""; } -function Yd(e, t) { - if (zd(e) != "object" || !e) return e; +function Wd(e, t) { + if (Pd(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (zd(r) != "object") return r; + if (Pd(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } var $ = { _getMeta: function() { - return [hc(arguments.length <= 0 ? void 0 : arguments[0]) || arguments.length <= 0 ? void 0 : arguments[0], yc(hc(arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 0 ? void 0 : arguments[0] : arguments.length <= 1 ? void 0 : arguments[1])]; + return [uc(arguments.length <= 0 ? void 0 : arguments[0]) || arguments.length <= 0 ? void 0 : arguments[0], mc(uc(arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 0 ? void 0 : arguments[0] : arguments.length <= 1 ? void 0 : arguments[1])]; }, _getConfig: function(e, t) { var n, r; return ((e == null || (n = e.instance) == null ? void 0 : n.$primevue) || (t == null || (r = t.ctx) == null || (r = r.appContext) == null || (r = r.config) == null || (r = r.globalProperties) == null ? void 0 : r.$primevue))?.config; }, - _getOptionValue: Sc, + _getOptionValue: _c, _getPTValue: function() { var e, t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "", i = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {}, a = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, o = function() { var e = $._getOptionValue.apply($, arguments); - return bc(e) || Cc(e) ? { class: e } : e; + return hc(e) || vc(e) ? { class: e } : e; }, s = ((e = t.binding) == null || (e = e.value) == null ? void 0 : e.ptOptions) || t.$primevueConfig?.ptOptions || {}, c = s.mergeSections, l = c === void 0 || c, u = s.mergeProps, d = u !== void 0 && u, f = a ? $._useDefaultPT(t, t.defaultPT(), o, r, i) : void 0, p = $._usePT(t, $._getPT(n, t.$name), o, r, Q(Q({}, i), {}, { global: f || {} })), m = $._getPTDatasets(t, r); return l || !l && p ? d ? $._mergeProps(t, d, f, p, m) : Q(Q(Q({}, f), p), m) : Q(Q({}, p), m); }, _getPTDatasets: function() { var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "", n = "data-pc-"; - return Q(Q({}, t === "root" && qd({}, `${n}name`, xc(e.$name))), {}, qd({}, `${n}section`, xc(t))); + return Q(Q({}, t === "root" && Hd({}, `${n}name`, gc(e.$name))), {}, Hd({}, `${n}section`, gc(t))); }, _getPT: function(e) { var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "", n = arguments.length > 2 ? arguments[2] : void 0, r = function(e) { - var r = n ? n(e) : e, i = xc(t); + var r = n ? n(e) : e, i = gc(t); return r?.[i] ?? r; }; return e && Object.hasOwn(e, "_usept") ? { @@ -6243,7 +6165,7 @@ var $ = { }; if (t && Object.hasOwn(t, "_usept")) { var o = t._usept || e.$primevueConfig?.ptOptions || {}, s = o.mergeSections, c = s === void 0 || s, l = o.mergeProps, u = l !== void 0 && l, d = a(t.originalValue), f = a(t.value); - return d === void 0 && f === void 0 ? void 0 : bc(f) ? f : bc(d) ? d : c || !c && f ? u ? $._mergeProps(e, u, d, f) : Q(Q({}, d), f) : f; + return d === void 0 && f === void 0 ? void 0 : hc(f) ? f : hc(d) ? d : c || !c && f ? u ? $._mergeProps(e, u, d, f) : Q(Q({}, d), f) : f; } return a(t); }, @@ -6259,9 +6181,9 @@ var $ = { }, _loadCoreStyles: function() { var e, t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, n = arguments.length > 1 ? arguments[1] : void 0; - if (!Zu.isStyleNameLoaded(t.$style?.name) && (e = t.$style) != null && e.name) { + if (!Ku.isStyleNameLoaded(t.$style?.name) && (e = t.$style) != null && e.name) { var r; - X.loadCSS(n), (r = t.$style) == null || r.loadCSS(n), Zu.setLoadedStyleName(t.$style.name); + X.loadCSS(n), (r = t.$style) == null || r.loadCSS(n), Ku.setLoadedStyleName(t.$style.name); } }, _loadThemeStyles: function() { @@ -6293,14 +6215,14 @@ var $ = { }, _themeChangeListener: function() { var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : function() {}; - Zu.clearLoadedStyleNames(), Nl.on("theme:change", e); + Ku.clearLoadedStyleNames(), Ol.on("theme:change", e); }, _removeThemeListeners: function() { var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; - Nl.off("theme:change", e.$loadStyles), e.$loadStyles = void 0; + Ol.off("theme:change", e.$loadStyles), e.$loadStyles = void 0; }, _hook: function(e, t, n, r, i, a) { - var o, s, c = `on${Ac(t)}`, l = $._getConfig(r, i), u = n?.$instance, d = $._usePT(u, $._getPT(r == null || (o = r.value) == null ? void 0 : o.pt, e), $._getOptionValue, `hooks.${c}`), f = $._useDefaultPT(u, l == null || (s = l.pt) == null || (s = s.directives) == null ? void 0 : s[e], $._getOptionValue, `hooks.${c}`), p = { + var o, s, c = `on${Tc(t)}`, l = $._getConfig(r, i), u = n?.$instance, d = $._usePT(u, $._getPT(r == null || (o = r.value) == null ? void 0 : o.pt, e), $._getOptionValue, `hooks.${c}`), f = $._useDefaultPT(u, l == null || (s = l.pt) == null || (s = s.directives) == null ? void 0 : s[e], $._getOptionValue, `hooks.${c}`), p = { el: n, binding: r, vnode: i, @@ -6310,13 +6232,13 @@ var $ = { }, _mergeProps: function() { var e = arguments.length > 1 ? arguments[1] : void 0, t = [...arguments].slice(2); - return dc(e) ? e.apply(void 0, t) : G.apply(void 0, t); + return oc(e) ? e.apply(void 0, t) : W.apply(void 0, t); }, _extend: function(e) { var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, n = function(n, r, i, a, o) { var s, c, l; r._$instances = r._$instances || {}; - var u = $._getConfig(i, a), d = r._$instances[e] || {}, f = cc(d) ? Q(Q({}, t), t?.methods) : {}; + var u = $._getConfig(i, a), d = r._$instances[e] || {}, f = rc(d) ? Q(Q({}, t), t?.methods) : {}; r._$instances[e] = Q(Q({}, d), {}, { $name: e, $host: r, @@ -6382,16 +6304,16 @@ var $ = { a.$watchersCallback = { config: s, "config.ripple": c - }, o == null || (n = o.config) == null || n.call(a, a?.$primevueConfig), ju.on("config:change", s), o == null || (r = o["config.ripple"]) == null || r.call(a, a == null || (i = a.$primevueConfig) == null ? void 0 : i.ripple), ju.on("config:ripple:change", c); + }, o == null || (n = o.config) == null || n.call(a, a?.$primevueConfig), Eu.on("config:change", s), o == null || (r = o["config.ripple"]) == null || r.call(a, a == null || (i = a.$primevueConfig) == null ? void 0 : i.ripple), Eu.on("config:ripple:change", c); }, i = function(t) { var n = t._$instances[e].$watchersCallback; - n && (ju.off("config:change", n.config), ju.off("config:ripple:change", n["config.ripple"]), t._$instances[e].$watchersCallback = void 0); + n && (Eu.off("config:change", n.config), Eu.off("config:ripple:change", n["config.ripple"]), t._$instances[e].$watchersCallback = void 0); }; return { created: function(t, r, i, a) { t.$pd ||= {}, t.$pd[e] = { name: e, - attrSelector: bl("pd") + attrSelector: hl("pd") }, n("created", t, r, i, a); }, beforeMount: function(t, i, a, o) { @@ -6416,72 +6338,72 @@ var $ = { }; }, extend: function() { - var e = Bd($._getMeta.apply($, arguments), 2), t = e[0], n = e[1]; + var e = Fd($._getMeta.apply($, arguments), 2), t = e[0], n = e[1]; return Q({ extend: function() { - var e = Bd($._getMeta.apply($, arguments), 2), t = e[0], r = e[1]; + var e = Fd($._getMeta.apply($, arguments), 2), t = e[0], r = e[1]; return $.extend(t, Q(Q(Q({}, n), n?.methods), r)); } }, $._extend(t, n)); } -}, Xd = X.extend({ +}, Gd = X.extend({ name: "ripple-directive", style: "\n .p-ink {\n display: block;\n position: absolute;\n background: dt('ripple.background');\n border-radius: 100%;\n transform: scale(0);\n pointer-events: none;\n }\n\n .p-ink-active {\n animation: ripple 0.4s linear;\n }\n\n @keyframes ripple {\n 100% {\n opacity: 0;\n transform: scale(2.5);\n }\n }\n", classes: { root: "p-ink" } -}), Zd = $.extend({ style: Xd }); -function Qd(e) { +}), Kd = $.extend({ style: Gd }); +function qd(e) { "@babel/helpers - typeof"; - return Qd = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return qd = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, Qd(e); + }, qd(e); } -function $d(e) { - return rf(e) || nf(e) || tf(e) || ef(); +function Jd(e) { + return Qd(e) || Zd(e) || Xd(e) || Yd(); } -function ef() { +function Yd() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function tf(e, t) { +function Xd(e, t) { if (e) { - if (typeof e == "string") return af(e, t); + if (typeof e == "string") return $d(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? af(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? $d(e, t) : void 0; } } -function nf(e) { +function Zd(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function rf(e) { - if (Array.isArray(e)) return af(e); +function Qd(e) { + if (Array.isArray(e)) return $d(e); } -function af(e, t) { +function $d(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function of(e, t, n) { - return (t = sf(t)) in e ? Object.defineProperty(e, t, { +function ef(e, t, n) { + return (t = tf(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function sf(e) { - var t = cf(e, "string"); - return Qd(t) == "symbol" ? t : t + ""; +function tf(e) { + var t = nf(e, "string"); + return qd(t) == "symbol" ? t : t + ""; } -function cf(e, t) { - if (Qd(e) != "object" || !e) return e; +function nf(e, t) { + if (qd(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (Qd(r) != "object") return r; + if (qd(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var lf = Zd.extend("ripple", { +var rf = Kd.extend("ripple", { watch: { "config.ripple": function(e) { e ? (this.createRipple(this.$host), this.bindEvents(this.$host), this.$host.setAttribute("data-pd-ripple", !0), this.$host.style.overflow = "hidden", this.$host.style.position = "relative") : (this.remove(this.$host), this.$host.removeAttribute("data-pd-ripple")); } }, @@ -6498,7 +6420,7 @@ var lf = Zd.extend("ripple", { }, createRipple: function(e) { var t = this.getInk(e); - t || (t = el("span", of(of({ + t || (t = Yc("span", ef(ef({ role: "presentation", "aria-hidden": !0, "data-p-ink": !0, @@ -6514,64 +6436,64 @@ var lf = Zd.extend("ripple", { onMouseDown: function(e) { var t = this, n = e.currentTarget, r = this.getInk(n); if (r && getComputedStyle(r, null).display !== "none") { - if (!this.isUnstyled() && Lc(r, "p-ink-active"), r.setAttribute("data-p-ink-active", "false"), !ol(r) && !fl(r)) { - var i = Math.max(Jc(n), ll(n)); + if (!this.isUnstyled() && Mc(r, "p-ink-active"), r.setAttribute("data-p-ink-active", "false"), !tl(r) && !sl(r)) { + var i = Math.max(Uc(n), il(n)); r.style.height = i + "px", r.style.width = i + "px"; } - var a = cl(n), o = e.pageX - a.left + document.body.scrollTop - fl(r) / 2, s = e.pageY - a.top + document.body.scrollLeft - ol(r) / 2; - r.style.top = s + "px", r.style.left = o + "px", !this.isUnstyled() && Pc(r, "p-ink-active"), r.setAttribute("data-p-ink-active", "true"), this.timeout = setTimeout(function() { - r && (!t.isUnstyled() && Lc(r, "p-ink-active"), r.setAttribute("data-p-ink-active", "false")); + var a = rl(n), o = e.pageX - a.left + document.body.scrollTop - sl(r) / 2, s = e.pageY - a.top + document.body.scrollLeft - tl(r) / 2; + r.style.top = s + "px", r.style.left = o + "px", !this.isUnstyled() && kc(r, "p-ink-active"), r.setAttribute("data-p-ink-active", "true"), this.timeout = setTimeout(function() { + r && (!t.isUnstyled() && Mc(r, "p-ink-active"), r.setAttribute("data-p-ink-active", "false")); }, 401); } }, onAnimationEnd: function(e) { - this.timeout && clearTimeout(this.timeout), !this.isUnstyled() && Lc(e.currentTarget, "p-ink-active"), e.currentTarget.setAttribute("data-p-ink-active", "false"); + this.timeout && clearTimeout(this.timeout), !this.isUnstyled() && Mc(e.currentTarget, "p-ink-active"), e.currentTarget.setAttribute("data-p-ink-active", "false"); }, getInk: function(e) { - return e && e.children ? $d(e.children).find(function(e) { - return rl(e, "data-pc-name") === "ripple"; + return e && e.children ? Jd(e.children).find(function(e) { + return Qc(e, "data-pc-name") === "ripple"; }) : void 0; } } -}), uf = "\n .p-button {\n display: inline-flex;\n cursor: pointer;\n user-select: none;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n color: dt('button.primary.color');\n background: dt('button.primary.background');\n border: 1px solid dt('button.primary.border.color');\n padding: dt('button.padding.y') dt('button.padding.x');\n font-size: 1rem;\n font-family: inherit;\n font-feature-settings: inherit;\n transition:\n background dt('button.transition.duration'),\n color dt('button.transition.duration'),\n border-color dt('button.transition.duration'),\n outline-color dt('button.transition.duration'),\n box-shadow dt('button.transition.duration');\n border-radius: dt('button.border.radius');\n outline-color: transparent;\n gap: dt('button.gap');\n }\n\n .p-button:disabled {\n cursor: default;\n }\n\n .p-button-icon-right {\n order: 1;\n }\n\n .p-button-icon-right:dir(rtl) {\n order: -1;\n }\n\n .p-button:not(.p-button-vertical) .p-button-icon:not(.p-button-icon-right):dir(rtl) {\n order: 1;\n }\n\n .p-button-icon-bottom {\n order: 2;\n }\n\n .p-button-icon-only {\n width: dt('button.icon.only.width');\n padding-inline-start: 0;\n padding-inline-end: 0;\n gap: 0;\n }\n\n .p-button-icon-only.p-button-rounded {\n border-radius: 50%;\n height: dt('button.icon.only.width');\n }\n\n .p-button-icon-only .p-button-label {\n visibility: hidden;\n width: 0;\n }\n\n .p-button-icon-only::after {\n content: \"\xA0\";\n visibility: hidden;\n width: 0;\n }\n\n .p-button-sm {\n font-size: dt('button.sm.font.size');\n padding: dt('button.sm.padding.y') dt('button.sm.padding.x');\n }\n\n .p-button-sm .p-button-icon {\n font-size: dt('button.sm.font.size');\n }\n\n .p-button-sm.p-button-icon-only {\n width: dt('button.sm.icon.only.width');\n }\n\n .p-button-sm.p-button-icon-only.p-button-rounded {\n height: dt('button.sm.icon.only.width');\n }\n\n .p-button-lg {\n font-size: dt('button.lg.font.size');\n padding: dt('button.lg.padding.y') dt('button.lg.padding.x');\n }\n\n .p-button-lg .p-button-icon {\n font-size: dt('button.lg.font.size');\n }\n\n .p-button-lg.p-button-icon-only {\n width: dt('button.lg.icon.only.width');\n }\n\n .p-button-lg.p-button-icon-only.p-button-rounded {\n height: dt('button.lg.icon.only.width');\n }\n\n .p-button-vertical {\n flex-direction: column;\n }\n\n .p-button-label {\n font-weight: dt('button.label.font.weight');\n }\n\n .p-button-fluid {\n width: 100%;\n }\n\n .p-button-fluid.p-button-icon-only {\n width: dt('button.icon.only.width');\n }\n\n .p-button:not(:disabled):hover {\n background: dt('button.primary.hover.background');\n border: 1px solid dt('button.primary.hover.border.color');\n color: dt('button.primary.hover.color');\n }\n\n .p-button:not(:disabled):active {\n background: dt('button.primary.active.background');\n border: 1px solid dt('button.primary.active.border.color');\n color: dt('button.primary.active.color');\n }\n\n .p-button:focus-visible {\n box-shadow: dt('button.primary.focus.ring.shadow');\n outline: dt('button.focus.ring.width') dt('button.focus.ring.style') dt('button.primary.focus.ring.color');\n outline-offset: dt('button.focus.ring.offset');\n }\n\n .p-button .p-badge {\n min-width: dt('button.badge.size');\n height: dt('button.badge.size');\n line-height: dt('button.badge.size');\n }\n\n .p-button-raised {\n box-shadow: dt('button.raised.shadow');\n }\n\n .p-button-rounded {\n border-radius: dt('button.rounded.border.radius');\n }\n\n .p-button-secondary {\n background: dt('button.secondary.background');\n border: 1px solid dt('button.secondary.border.color');\n color: dt('button.secondary.color');\n }\n\n .p-button-secondary:not(:disabled):hover {\n background: dt('button.secondary.hover.background');\n border: 1px solid dt('button.secondary.hover.border.color');\n color: dt('button.secondary.hover.color');\n }\n\n .p-button-secondary:not(:disabled):active {\n background: dt('button.secondary.active.background');\n border: 1px solid dt('button.secondary.active.border.color');\n color: dt('button.secondary.active.color');\n }\n\n .p-button-secondary:focus-visible {\n outline-color: dt('button.secondary.focus.ring.color');\n box-shadow: dt('button.secondary.focus.ring.shadow');\n }\n\n .p-button-success {\n background: dt('button.success.background');\n border: 1px solid dt('button.success.border.color');\n color: dt('button.success.color');\n }\n\n .p-button-success:not(:disabled):hover {\n background: dt('button.success.hover.background');\n border: 1px solid dt('button.success.hover.border.color');\n color: dt('button.success.hover.color');\n }\n\n .p-button-success:not(:disabled):active {\n background: dt('button.success.active.background');\n border: 1px solid dt('button.success.active.border.color');\n color: dt('button.success.active.color');\n }\n\n .p-button-success:focus-visible {\n outline-color: dt('button.success.focus.ring.color');\n box-shadow: dt('button.success.focus.ring.shadow');\n }\n\n .p-button-info {\n background: dt('button.info.background');\n border: 1px solid dt('button.info.border.color');\n color: dt('button.info.color');\n }\n\n .p-button-info:not(:disabled):hover {\n background: dt('button.info.hover.background');\n border: 1px solid dt('button.info.hover.border.color');\n color: dt('button.info.hover.color');\n }\n\n .p-button-info:not(:disabled):active {\n background: dt('button.info.active.background');\n border: 1px solid dt('button.info.active.border.color');\n color: dt('button.info.active.color');\n }\n\n .p-button-info:focus-visible {\n outline-color: dt('button.info.focus.ring.color');\n box-shadow: dt('button.info.focus.ring.shadow');\n }\n\n .p-button-warn {\n background: dt('button.warn.background');\n border: 1px solid dt('button.warn.border.color');\n color: dt('button.warn.color');\n }\n\n .p-button-warn:not(:disabled):hover {\n background: dt('button.warn.hover.background');\n border: 1px solid dt('button.warn.hover.border.color');\n color: dt('button.warn.hover.color');\n }\n\n .p-button-warn:not(:disabled):active {\n background: dt('button.warn.active.background');\n border: 1px solid dt('button.warn.active.border.color');\n color: dt('button.warn.active.color');\n }\n\n .p-button-warn:focus-visible {\n outline-color: dt('button.warn.focus.ring.color');\n box-shadow: dt('button.warn.focus.ring.shadow');\n }\n\n .p-button-help {\n background: dt('button.help.background');\n border: 1px solid dt('button.help.border.color');\n color: dt('button.help.color');\n }\n\n .p-button-help:not(:disabled):hover {\n background: dt('button.help.hover.background');\n border: 1px solid dt('button.help.hover.border.color');\n color: dt('button.help.hover.color');\n }\n\n .p-button-help:not(:disabled):active {\n background: dt('button.help.active.background');\n border: 1px solid dt('button.help.active.border.color');\n color: dt('button.help.active.color');\n }\n\n .p-button-help:focus-visible {\n outline-color: dt('button.help.focus.ring.color');\n box-shadow: dt('button.help.focus.ring.shadow');\n }\n\n .p-button-danger {\n background: dt('button.danger.background');\n border: 1px solid dt('button.danger.border.color');\n color: dt('button.danger.color');\n }\n\n .p-button-danger:not(:disabled):hover {\n background: dt('button.danger.hover.background');\n border: 1px solid dt('button.danger.hover.border.color');\n color: dt('button.danger.hover.color');\n }\n\n .p-button-danger:not(:disabled):active {\n background: dt('button.danger.active.background');\n border: 1px solid dt('button.danger.active.border.color');\n color: dt('button.danger.active.color');\n }\n\n .p-button-danger:focus-visible {\n outline-color: dt('button.danger.focus.ring.color');\n box-shadow: dt('button.danger.focus.ring.shadow');\n }\n\n .p-button-contrast {\n background: dt('button.contrast.background');\n border: 1px solid dt('button.contrast.border.color');\n color: dt('button.contrast.color');\n }\n\n .p-button-contrast:not(:disabled):hover {\n background: dt('button.contrast.hover.background');\n border: 1px solid dt('button.contrast.hover.border.color');\n color: dt('button.contrast.hover.color');\n }\n\n .p-button-contrast:not(:disabled):active {\n background: dt('button.contrast.active.background');\n border: 1px solid dt('button.contrast.active.border.color');\n color: dt('button.contrast.active.color');\n }\n\n .p-button-contrast:focus-visible {\n outline-color: dt('button.contrast.focus.ring.color');\n box-shadow: dt('button.contrast.focus.ring.shadow');\n }\n\n .p-button-outlined {\n background: transparent;\n border-color: dt('button.outlined.primary.border.color');\n color: dt('button.outlined.primary.color');\n }\n\n .p-button-outlined:not(:disabled):hover {\n background: dt('button.outlined.primary.hover.background');\n border-color: dt('button.outlined.primary.border.color');\n color: dt('button.outlined.primary.color');\n }\n\n .p-button-outlined:not(:disabled):active {\n background: dt('button.outlined.primary.active.background');\n border-color: dt('button.outlined.primary.border.color');\n color: dt('button.outlined.primary.color');\n }\n\n .p-button-outlined.p-button-secondary {\n border-color: dt('button.outlined.secondary.border.color');\n color: dt('button.outlined.secondary.color');\n }\n\n .p-button-outlined.p-button-secondary:not(:disabled):hover {\n background: dt('button.outlined.secondary.hover.background');\n border-color: dt('button.outlined.secondary.border.color');\n color: dt('button.outlined.secondary.color');\n }\n\n .p-button-outlined.p-button-secondary:not(:disabled):active {\n background: dt('button.outlined.secondary.active.background');\n border-color: dt('button.outlined.secondary.border.color');\n color: dt('button.outlined.secondary.color');\n }\n\n .p-button-outlined.p-button-success {\n border-color: dt('button.outlined.success.border.color');\n color: dt('button.outlined.success.color');\n }\n\n .p-button-outlined.p-button-success:not(:disabled):hover {\n background: dt('button.outlined.success.hover.background');\n border-color: dt('button.outlined.success.border.color');\n color: dt('button.outlined.success.color');\n }\n\n .p-button-outlined.p-button-success:not(:disabled):active {\n background: dt('button.outlined.success.active.background');\n border-color: dt('button.outlined.success.border.color');\n color: dt('button.outlined.success.color');\n }\n\n .p-button-outlined.p-button-info {\n border-color: dt('button.outlined.info.border.color');\n color: dt('button.outlined.info.color');\n }\n\n .p-button-outlined.p-button-info:not(:disabled):hover {\n background: dt('button.outlined.info.hover.background');\n border-color: dt('button.outlined.info.border.color');\n color: dt('button.outlined.info.color');\n }\n\n .p-button-outlined.p-button-info:not(:disabled):active {\n background: dt('button.outlined.info.active.background');\n border-color: dt('button.outlined.info.border.color');\n color: dt('button.outlined.info.color');\n }\n\n .p-button-outlined.p-button-warn {\n border-color: dt('button.outlined.warn.border.color');\n color: dt('button.outlined.warn.color');\n }\n\n .p-button-outlined.p-button-warn:not(:disabled):hover {\n background: dt('button.outlined.warn.hover.background');\n border-color: dt('button.outlined.warn.border.color');\n color: dt('button.outlined.warn.color');\n }\n\n .p-button-outlined.p-button-warn:not(:disabled):active {\n background: dt('button.outlined.warn.active.background');\n border-color: dt('button.outlined.warn.border.color');\n color: dt('button.outlined.warn.color');\n }\n\n .p-button-outlined.p-button-help {\n border-color: dt('button.outlined.help.border.color');\n color: dt('button.outlined.help.color');\n }\n\n .p-button-outlined.p-button-help:not(:disabled):hover {\n background: dt('button.outlined.help.hover.background');\n border-color: dt('button.outlined.help.border.color');\n color: dt('button.outlined.help.color');\n }\n\n .p-button-outlined.p-button-help:not(:disabled):active {\n background: dt('button.outlined.help.active.background');\n border-color: dt('button.outlined.help.border.color');\n color: dt('button.outlined.help.color');\n }\n\n .p-button-outlined.p-button-danger {\n border-color: dt('button.outlined.danger.border.color');\n color: dt('button.outlined.danger.color');\n }\n\n .p-button-outlined.p-button-danger:not(:disabled):hover {\n background: dt('button.outlined.danger.hover.background');\n border-color: dt('button.outlined.danger.border.color');\n color: dt('button.outlined.danger.color');\n }\n\n .p-button-outlined.p-button-danger:not(:disabled):active {\n background: dt('button.outlined.danger.active.background');\n border-color: dt('button.outlined.danger.border.color');\n color: dt('button.outlined.danger.color');\n }\n\n .p-button-outlined.p-button-contrast {\n border-color: dt('button.outlined.contrast.border.color');\n color: dt('button.outlined.contrast.color');\n }\n\n .p-button-outlined.p-button-contrast:not(:disabled):hover {\n background: dt('button.outlined.contrast.hover.background');\n border-color: dt('button.outlined.contrast.border.color');\n color: dt('button.outlined.contrast.color');\n }\n\n .p-button-outlined.p-button-contrast:not(:disabled):active {\n background: dt('button.outlined.contrast.active.background');\n border-color: dt('button.outlined.contrast.border.color');\n color: dt('button.outlined.contrast.color');\n }\n\n .p-button-outlined.p-button-plain {\n border-color: dt('button.outlined.plain.border.color');\n color: dt('button.outlined.plain.color');\n }\n\n .p-button-outlined.p-button-plain:not(:disabled):hover {\n background: dt('button.outlined.plain.hover.background');\n border-color: dt('button.outlined.plain.border.color');\n color: dt('button.outlined.plain.color');\n }\n\n .p-button-outlined.p-button-plain:not(:disabled):active {\n background: dt('button.outlined.plain.active.background');\n border-color: dt('button.outlined.plain.border.color');\n color: dt('button.outlined.plain.color');\n }\n\n .p-button-text {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.primary.color');\n }\n\n .p-button-text:not(:disabled):hover {\n background: dt('button.text.primary.hover.background');\n border-color: transparent;\n color: dt('button.text.primary.color');\n }\n\n .p-button-text:not(:disabled):active {\n background: dt('button.text.primary.active.background');\n border-color: transparent;\n color: dt('button.text.primary.color');\n }\n\n .p-button-text.p-button-secondary {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.secondary.color');\n }\n\n .p-button-text.p-button-secondary:not(:disabled):hover {\n background: dt('button.text.secondary.hover.background');\n border-color: transparent;\n color: dt('button.text.secondary.color');\n }\n\n .p-button-text.p-button-secondary:not(:disabled):active {\n background: dt('button.text.secondary.active.background');\n border-color: transparent;\n color: dt('button.text.secondary.color');\n }\n\n .p-button-text.p-button-success {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.success.color');\n }\n\n .p-button-text.p-button-success:not(:disabled):hover {\n background: dt('button.text.success.hover.background');\n border-color: transparent;\n color: dt('button.text.success.color');\n }\n\n .p-button-text.p-button-success:not(:disabled):active {\n background: dt('button.text.success.active.background');\n border-color: transparent;\n color: dt('button.text.success.color');\n }\n\n .p-button-text.p-button-info {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.info.color');\n }\n\n .p-button-text.p-button-info:not(:disabled):hover {\n background: dt('button.text.info.hover.background');\n border-color: transparent;\n color: dt('button.text.info.color');\n }\n\n .p-button-text.p-button-info:not(:disabled):active {\n background: dt('button.text.info.active.background');\n border-color: transparent;\n color: dt('button.text.info.color');\n }\n\n .p-button-text.p-button-warn {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.warn.color');\n }\n\n .p-button-text.p-button-warn:not(:disabled):hover {\n background: dt('button.text.warn.hover.background');\n border-color: transparent;\n color: dt('button.text.warn.color');\n }\n\n .p-button-text.p-button-warn:not(:disabled):active {\n background: dt('button.text.warn.active.background');\n border-color: transparent;\n color: dt('button.text.warn.color');\n }\n\n .p-button-text.p-button-help {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.help.color');\n }\n\n .p-button-text.p-button-help:not(:disabled):hover {\n background: dt('button.text.help.hover.background');\n border-color: transparent;\n color: dt('button.text.help.color');\n }\n\n .p-button-text.p-button-help:not(:disabled):active {\n background: dt('button.text.help.active.background');\n border-color: transparent;\n color: dt('button.text.help.color');\n }\n\n .p-button-text.p-button-danger {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.danger.color');\n }\n\n .p-button-text.p-button-danger:not(:disabled):hover {\n background: dt('button.text.danger.hover.background');\n border-color: transparent;\n color: dt('button.text.danger.color');\n }\n\n .p-button-text.p-button-danger:not(:disabled):active {\n background: dt('button.text.danger.active.background');\n border-color: transparent;\n color: dt('button.text.danger.color');\n }\n\n .p-button-text.p-button-contrast {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.contrast.color');\n }\n\n .p-button-text.p-button-contrast:not(:disabled):hover {\n background: dt('button.text.contrast.hover.background');\n border-color: transparent;\n color: dt('button.text.contrast.color');\n }\n\n .p-button-text.p-button-contrast:not(:disabled):active {\n background: dt('button.text.contrast.active.background');\n border-color: transparent;\n color: dt('button.text.contrast.color');\n }\n\n .p-button-text.p-button-plain {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.plain.color');\n }\n\n .p-button-text.p-button-plain:not(:disabled):hover {\n background: dt('button.text.plain.hover.background');\n border-color: transparent;\n color: dt('button.text.plain.color');\n }\n\n .p-button-text.p-button-plain:not(:disabled):active {\n background: dt('button.text.plain.active.background');\n border-color: transparent;\n color: dt('button.text.plain.color');\n }\n\n .p-button-link {\n background: transparent;\n border-color: transparent;\n color: dt('button.link.color');\n }\n\n .p-button-link:not(:disabled):hover {\n background: transparent;\n border-color: transparent;\n color: dt('button.link.hover.color');\n }\n\n .p-button-link:not(:disabled):hover .p-button-label {\n text-decoration: underline;\n }\n\n .p-button-link:not(:disabled):active {\n background: transparent;\n border-color: transparent;\n color: dt('button.link.active.color');\n }\n"; +}), af = "\n .p-button {\n display: inline-flex;\n cursor: pointer;\n user-select: none;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n color: dt('button.primary.color');\n background: dt('button.primary.background');\n border: 1px solid dt('button.primary.border.color');\n padding: dt('button.padding.y') dt('button.padding.x');\n font-size: 1rem;\n font-family: inherit;\n font-feature-settings: inherit;\n transition:\n background dt('button.transition.duration'),\n color dt('button.transition.duration'),\n border-color dt('button.transition.duration'),\n outline-color dt('button.transition.duration'),\n box-shadow dt('button.transition.duration');\n border-radius: dt('button.border.radius');\n outline-color: transparent;\n gap: dt('button.gap');\n }\n\n .p-button:disabled {\n cursor: default;\n }\n\n .p-button-icon-right {\n order: 1;\n }\n\n .p-button-icon-right:dir(rtl) {\n order: -1;\n }\n\n .p-button:not(.p-button-vertical) .p-button-icon:not(.p-button-icon-right):dir(rtl) {\n order: 1;\n }\n\n .p-button-icon-bottom {\n order: 2;\n }\n\n .p-button-icon-only {\n width: dt('button.icon.only.width');\n padding-inline-start: 0;\n padding-inline-end: 0;\n gap: 0;\n }\n\n .p-button-icon-only.p-button-rounded {\n border-radius: 50%;\n height: dt('button.icon.only.width');\n }\n\n .p-button-icon-only .p-button-label {\n visibility: hidden;\n width: 0;\n }\n\n .p-button-icon-only::after {\n content: \"\xA0\";\n visibility: hidden;\n width: 0;\n }\n\n .p-button-sm {\n font-size: dt('button.sm.font.size');\n padding: dt('button.sm.padding.y') dt('button.sm.padding.x');\n }\n\n .p-button-sm .p-button-icon {\n font-size: dt('button.sm.font.size');\n }\n\n .p-button-sm.p-button-icon-only {\n width: dt('button.sm.icon.only.width');\n }\n\n .p-button-sm.p-button-icon-only.p-button-rounded {\n height: dt('button.sm.icon.only.width');\n }\n\n .p-button-lg {\n font-size: dt('button.lg.font.size');\n padding: dt('button.lg.padding.y') dt('button.lg.padding.x');\n }\n\n .p-button-lg .p-button-icon {\n font-size: dt('button.lg.font.size');\n }\n\n .p-button-lg.p-button-icon-only {\n width: dt('button.lg.icon.only.width');\n }\n\n .p-button-lg.p-button-icon-only.p-button-rounded {\n height: dt('button.lg.icon.only.width');\n }\n\n .p-button-vertical {\n flex-direction: column;\n }\n\n .p-button-label {\n font-weight: dt('button.label.font.weight');\n }\n\n .p-button-fluid {\n width: 100%;\n }\n\n .p-button-fluid.p-button-icon-only {\n width: dt('button.icon.only.width');\n }\n\n .p-button:not(:disabled):hover {\n background: dt('button.primary.hover.background');\n border: 1px solid dt('button.primary.hover.border.color');\n color: dt('button.primary.hover.color');\n }\n\n .p-button:not(:disabled):active {\n background: dt('button.primary.active.background');\n border: 1px solid dt('button.primary.active.border.color');\n color: dt('button.primary.active.color');\n }\n\n .p-button:focus-visible {\n box-shadow: dt('button.primary.focus.ring.shadow');\n outline: dt('button.focus.ring.width') dt('button.focus.ring.style') dt('button.primary.focus.ring.color');\n outline-offset: dt('button.focus.ring.offset');\n }\n\n .p-button .p-badge {\n min-width: dt('button.badge.size');\n height: dt('button.badge.size');\n line-height: dt('button.badge.size');\n }\n\n .p-button-raised {\n box-shadow: dt('button.raised.shadow');\n }\n\n .p-button-rounded {\n border-radius: dt('button.rounded.border.radius');\n }\n\n .p-button-secondary {\n background: dt('button.secondary.background');\n border: 1px solid dt('button.secondary.border.color');\n color: dt('button.secondary.color');\n }\n\n .p-button-secondary:not(:disabled):hover {\n background: dt('button.secondary.hover.background');\n border: 1px solid dt('button.secondary.hover.border.color');\n color: dt('button.secondary.hover.color');\n }\n\n .p-button-secondary:not(:disabled):active {\n background: dt('button.secondary.active.background');\n border: 1px solid dt('button.secondary.active.border.color');\n color: dt('button.secondary.active.color');\n }\n\n .p-button-secondary:focus-visible {\n outline-color: dt('button.secondary.focus.ring.color');\n box-shadow: dt('button.secondary.focus.ring.shadow');\n }\n\n .p-button-success {\n background: dt('button.success.background');\n border: 1px solid dt('button.success.border.color');\n color: dt('button.success.color');\n }\n\n .p-button-success:not(:disabled):hover {\n background: dt('button.success.hover.background');\n border: 1px solid dt('button.success.hover.border.color');\n color: dt('button.success.hover.color');\n }\n\n .p-button-success:not(:disabled):active {\n background: dt('button.success.active.background');\n border: 1px solid dt('button.success.active.border.color');\n color: dt('button.success.active.color');\n }\n\n .p-button-success:focus-visible {\n outline-color: dt('button.success.focus.ring.color');\n box-shadow: dt('button.success.focus.ring.shadow');\n }\n\n .p-button-info {\n background: dt('button.info.background');\n border: 1px solid dt('button.info.border.color');\n color: dt('button.info.color');\n }\n\n .p-button-info:not(:disabled):hover {\n background: dt('button.info.hover.background');\n border: 1px solid dt('button.info.hover.border.color');\n color: dt('button.info.hover.color');\n }\n\n .p-button-info:not(:disabled):active {\n background: dt('button.info.active.background');\n border: 1px solid dt('button.info.active.border.color');\n color: dt('button.info.active.color');\n }\n\n .p-button-info:focus-visible {\n outline-color: dt('button.info.focus.ring.color');\n box-shadow: dt('button.info.focus.ring.shadow');\n }\n\n .p-button-warn {\n background: dt('button.warn.background');\n border: 1px solid dt('button.warn.border.color');\n color: dt('button.warn.color');\n }\n\n .p-button-warn:not(:disabled):hover {\n background: dt('button.warn.hover.background');\n border: 1px solid dt('button.warn.hover.border.color');\n color: dt('button.warn.hover.color');\n }\n\n .p-button-warn:not(:disabled):active {\n background: dt('button.warn.active.background');\n border: 1px solid dt('button.warn.active.border.color');\n color: dt('button.warn.active.color');\n }\n\n .p-button-warn:focus-visible {\n outline-color: dt('button.warn.focus.ring.color');\n box-shadow: dt('button.warn.focus.ring.shadow');\n }\n\n .p-button-help {\n background: dt('button.help.background');\n border: 1px solid dt('button.help.border.color');\n color: dt('button.help.color');\n }\n\n .p-button-help:not(:disabled):hover {\n background: dt('button.help.hover.background');\n border: 1px solid dt('button.help.hover.border.color');\n color: dt('button.help.hover.color');\n }\n\n .p-button-help:not(:disabled):active {\n background: dt('button.help.active.background');\n border: 1px solid dt('button.help.active.border.color');\n color: dt('button.help.active.color');\n }\n\n .p-button-help:focus-visible {\n outline-color: dt('button.help.focus.ring.color');\n box-shadow: dt('button.help.focus.ring.shadow');\n }\n\n .p-button-danger {\n background: dt('button.danger.background');\n border: 1px solid dt('button.danger.border.color');\n color: dt('button.danger.color');\n }\n\n .p-button-danger:not(:disabled):hover {\n background: dt('button.danger.hover.background');\n border: 1px solid dt('button.danger.hover.border.color');\n color: dt('button.danger.hover.color');\n }\n\n .p-button-danger:not(:disabled):active {\n background: dt('button.danger.active.background');\n border: 1px solid dt('button.danger.active.border.color');\n color: dt('button.danger.active.color');\n }\n\n .p-button-danger:focus-visible {\n outline-color: dt('button.danger.focus.ring.color');\n box-shadow: dt('button.danger.focus.ring.shadow');\n }\n\n .p-button-contrast {\n background: dt('button.contrast.background');\n border: 1px solid dt('button.contrast.border.color');\n color: dt('button.contrast.color');\n }\n\n .p-button-contrast:not(:disabled):hover {\n background: dt('button.contrast.hover.background');\n border: 1px solid dt('button.contrast.hover.border.color');\n color: dt('button.contrast.hover.color');\n }\n\n .p-button-contrast:not(:disabled):active {\n background: dt('button.contrast.active.background');\n border: 1px solid dt('button.contrast.active.border.color');\n color: dt('button.contrast.active.color');\n }\n\n .p-button-contrast:focus-visible {\n outline-color: dt('button.contrast.focus.ring.color');\n box-shadow: dt('button.contrast.focus.ring.shadow');\n }\n\n .p-button-outlined {\n background: transparent;\n border-color: dt('button.outlined.primary.border.color');\n color: dt('button.outlined.primary.color');\n }\n\n .p-button-outlined:not(:disabled):hover {\n background: dt('button.outlined.primary.hover.background');\n border-color: dt('button.outlined.primary.border.color');\n color: dt('button.outlined.primary.color');\n }\n\n .p-button-outlined:not(:disabled):active {\n background: dt('button.outlined.primary.active.background');\n border-color: dt('button.outlined.primary.border.color');\n color: dt('button.outlined.primary.color');\n }\n\n .p-button-outlined.p-button-secondary {\n border-color: dt('button.outlined.secondary.border.color');\n color: dt('button.outlined.secondary.color');\n }\n\n .p-button-outlined.p-button-secondary:not(:disabled):hover {\n background: dt('button.outlined.secondary.hover.background');\n border-color: dt('button.outlined.secondary.border.color');\n color: dt('button.outlined.secondary.color');\n }\n\n .p-button-outlined.p-button-secondary:not(:disabled):active {\n background: dt('button.outlined.secondary.active.background');\n border-color: dt('button.outlined.secondary.border.color');\n color: dt('button.outlined.secondary.color');\n }\n\n .p-button-outlined.p-button-success {\n border-color: dt('button.outlined.success.border.color');\n color: dt('button.outlined.success.color');\n }\n\n .p-button-outlined.p-button-success:not(:disabled):hover {\n background: dt('button.outlined.success.hover.background');\n border-color: dt('button.outlined.success.border.color');\n color: dt('button.outlined.success.color');\n }\n\n .p-button-outlined.p-button-success:not(:disabled):active {\n background: dt('button.outlined.success.active.background');\n border-color: dt('button.outlined.success.border.color');\n color: dt('button.outlined.success.color');\n }\n\n .p-button-outlined.p-button-info {\n border-color: dt('button.outlined.info.border.color');\n color: dt('button.outlined.info.color');\n }\n\n .p-button-outlined.p-button-info:not(:disabled):hover {\n background: dt('button.outlined.info.hover.background');\n border-color: dt('button.outlined.info.border.color');\n color: dt('button.outlined.info.color');\n }\n\n .p-button-outlined.p-button-info:not(:disabled):active {\n background: dt('button.outlined.info.active.background');\n border-color: dt('button.outlined.info.border.color');\n color: dt('button.outlined.info.color');\n }\n\n .p-button-outlined.p-button-warn {\n border-color: dt('button.outlined.warn.border.color');\n color: dt('button.outlined.warn.color');\n }\n\n .p-button-outlined.p-button-warn:not(:disabled):hover {\n background: dt('button.outlined.warn.hover.background');\n border-color: dt('button.outlined.warn.border.color');\n color: dt('button.outlined.warn.color');\n }\n\n .p-button-outlined.p-button-warn:not(:disabled):active {\n background: dt('button.outlined.warn.active.background');\n border-color: dt('button.outlined.warn.border.color');\n color: dt('button.outlined.warn.color');\n }\n\n .p-button-outlined.p-button-help {\n border-color: dt('button.outlined.help.border.color');\n color: dt('button.outlined.help.color');\n }\n\n .p-button-outlined.p-button-help:not(:disabled):hover {\n background: dt('button.outlined.help.hover.background');\n border-color: dt('button.outlined.help.border.color');\n color: dt('button.outlined.help.color');\n }\n\n .p-button-outlined.p-button-help:not(:disabled):active {\n background: dt('button.outlined.help.active.background');\n border-color: dt('button.outlined.help.border.color');\n color: dt('button.outlined.help.color');\n }\n\n .p-button-outlined.p-button-danger {\n border-color: dt('button.outlined.danger.border.color');\n color: dt('button.outlined.danger.color');\n }\n\n .p-button-outlined.p-button-danger:not(:disabled):hover {\n background: dt('button.outlined.danger.hover.background');\n border-color: dt('button.outlined.danger.border.color');\n color: dt('button.outlined.danger.color');\n }\n\n .p-button-outlined.p-button-danger:not(:disabled):active {\n background: dt('button.outlined.danger.active.background');\n border-color: dt('button.outlined.danger.border.color');\n color: dt('button.outlined.danger.color');\n }\n\n .p-button-outlined.p-button-contrast {\n border-color: dt('button.outlined.contrast.border.color');\n color: dt('button.outlined.contrast.color');\n }\n\n .p-button-outlined.p-button-contrast:not(:disabled):hover {\n background: dt('button.outlined.contrast.hover.background');\n border-color: dt('button.outlined.contrast.border.color');\n color: dt('button.outlined.contrast.color');\n }\n\n .p-button-outlined.p-button-contrast:not(:disabled):active {\n background: dt('button.outlined.contrast.active.background');\n border-color: dt('button.outlined.contrast.border.color');\n color: dt('button.outlined.contrast.color');\n }\n\n .p-button-outlined.p-button-plain {\n border-color: dt('button.outlined.plain.border.color');\n color: dt('button.outlined.plain.color');\n }\n\n .p-button-outlined.p-button-plain:not(:disabled):hover {\n background: dt('button.outlined.plain.hover.background');\n border-color: dt('button.outlined.plain.border.color');\n color: dt('button.outlined.plain.color');\n }\n\n .p-button-outlined.p-button-plain:not(:disabled):active {\n background: dt('button.outlined.plain.active.background');\n border-color: dt('button.outlined.plain.border.color');\n color: dt('button.outlined.plain.color');\n }\n\n .p-button-text {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.primary.color');\n }\n\n .p-button-text:not(:disabled):hover {\n background: dt('button.text.primary.hover.background');\n border-color: transparent;\n color: dt('button.text.primary.color');\n }\n\n .p-button-text:not(:disabled):active {\n background: dt('button.text.primary.active.background');\n border-color: transparent;\n color: dt('button.text.primary.color');\n }\n\n .p-button-text.p-button-secondary {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.secondary.color');\n }\n\n .p-button-text.p-button-secondary:not(:disabled):hover {\n background: dt('button.text.secondary.hover.background');\n border-color: transparent;\n color: dt('button.text.secondary.color');\n }\n\n .p-button-text.p-button-secondary:not(:disabled):active {\n background: dt('button.text.secondary.active.background');\n border-color: transparent;\n color: dt('button.text.secondary.color');\n }\n\n .p-button-text.p-button-success {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.success.color');\n }\n\n .p-button-text.p-button-success:not(:disabled):hover {\n background: dt('button.text.success.hover.background');\n border-color: transparent;\n color: dt('button.text.success.color');\n }\n\n .p-button-text.p-button-success:not(:disabled):active {\n background: dt('button.text.success.active.background');\n border-color: transparent;\n color: dt('button.text.success.color');\n }\n\n .p-button-text.p-button-info {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.info.color');\n }\n\n .p-button-text.p-button-info:not(:disabled):hover {\n background: dt('button.text.info.hover.background');\n border-color: transparent;\n color: dt('button.text.info.color');\n }\n\n .p-button-text.p-button-info:not(:disabled):active {\n background: dt('button.text.info.active.background');\n border-color: transparent;\n color: dt('button.text.info.color');\n }\n\n .p-button-text.p-button-warn {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.warn.color');\n }\n\n .p-button-text.p-button-warn:not(:disabled):hover {\n background: dt('button.text.warn.hover.background');\n border-color: transparent;\n color: dt('button.text.warn.color');\n }\n\n .p-button-text.p-button-warn:not(:disabled):active {\n background: dt('button.text.warn.active.background');\n border-color: transparent;\n color: dt('button.text.warn.color');\n }\n\n .p-button-text.p-button-help {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.help.color');\n }\n\n .p-button-text.p-button-help:not(:disabled):hover {\n background: dt('button.text.help.hover.background');\n border-color: transparent;\n color: dt('button.text.help.color');\n }\n\n .p-button-text.p-button-help:not(:disabled):active {\n background: dt('button.text.help.active.background');\n border-color: transparent;\n color: dt('button.text.help.color');\n }\n\n .p-button-text.p-button-danger {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.danger.color');\n }\n\n .p-button-text.p-button-danger:not(:disabled):hover {\n background: dt('button.text.danger.hover.background');\n border-color: transparent;\n color: dt('button.text.danger.color');\n }\n\n .p-button-text.p-button-danger:not(:disabled):active {\n background: dt('button.text.danger.active.background');\n border-color: transparent;\n color: dt('button.text.danger.color');\n }\n\n .p-button-text.p-button-contrast {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.contrast.color');\n }\n\n .p-button-text.p-button-contrast:not(:disabled):hover {\n background: dt('button.text.contrast.hover.background');\n border-color: transparent;\n color: dt('button.text.contrast.color');\n }\n\n .p-button-text.p-button-contrast:not(:disabled):active {\n background: dt('button.text.contrast.active.background');\n border-color: transparent;\n color: dt('button.text.contrast.color');\n }\n\n .p-button-text.p-button-plain {\n background: transparent;\n border-color: transparent;\n color: dt('button.text.plain.color');\n }\n\n .p-button-text.p-button-plain:not(:disabled):hover {\n background: dt('button.text.plain.hover.background');\n border-color: transparent;\n color: dt('button.text.plain.color');\n }\n\n .p-button-text.p-button-plain:not(:disabled):active {\n background: dt('button.text.plain.active.background');\n border-color: transparent;\n color: dt('button.text.plain.color');\n }\n\n .p-button-link {\n background: transparent;\n border-color: transparent;\n color: dt('button.link.color');\n }\n\n .p-button-link:not(:disabled):hover {\n background: transparent;\n border-color: transparent;\n color: dt('button.link.hover.color');\n }\n\n .p-button-link:not(:disabled):hover .p-button-label {\n text-decoration: underline;\n }\n\n .p-button-link:not(:disabled):active {\n background: transparent;\n border-color: transparent;\n color: dt('button.link.active.color');\n }\n"; // node_modules/primevue/button/style/index.mjs -function df(e) { +function of(e) { "@babel/helpers - typeof"; - return df = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return of = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, df(e); + }, of(e); } -function ff(e, t, n) { - return (t = pf(t)) in e ? Object.defineProperty(e, t, { +function sf(e, t, n) { + return (t = cf(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function pf(e) { - var t = mf(e, "string"); - return df(t) == "symbol" ? t : t + ""; +function cf(e) { + var t = lf(e, "string"); + return of(t) == "symbol" ? t : t + ""; } -function mf(e, t) { - if (df(e) != "object" || !e) return e; +function lf(e, t) { + if (of(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (df(r) != "object") return r; + if (of(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var hf = X.extend({ +var uf = X.extend({ name: "button", - style: uf, + style: af, classes: { root: function(e) { var t = e.instance, n = e.props; - return ["p-button p-component", ff(ff(ff(ff(ff(ff(ff(ff(ff({ + return ["p-button p-component", sf(sf(sf(sf(sf(sf(sf(sf(sf({ "p-button-icon-only": t.hasIcon && !n.label && !n.badge, "p-button-vertical": (n.iconPos === "top" || n.iconPos === "bottom") && n.label, "p-button-loading": n.loading, @@ -6581,13 +6503,13 @@ var hf = X.extend({ loadingIcon: "p-button-loading-icon", icon: function(e) { var t = e.props; - return ["p-button-icon", ff({}, `p-button-icon-${t.iconPos}`, t.label)]; + return ["p-button-icon", sf({}, `p-button-icon-${t.iconPos}`, t.label)]; }, label: "p-button-label" } -}), gf = { +}), df = { name: "BaseButton", - extends: pd, + extends: cd, props: { label: { type: String, @@ -6674,7 +6596,7 @@ var hf = X.extend({ default: null } }, - style: hf, + style: uf, provide: function() { return { $pcButton: this, @@ -6682,39 +6604,39 @@ var hf = X.extend({ }; } }; -function _f(e) { +function ff(e) { "@babel/helpers - typeof"; - return _f = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return ff = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, _f(e); + }, ff(e); } -function vf(e, t, n) { - return (t = yf(t)) in e ? Object.defineProperty(e, t, { +function pf(e, t, n) { + return (t = mf(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function yf(e) { - var t = bf(e, "string"); - return _f(t) == "symbol" ? t : t + ""; +function mf(e) { + var t = hf(e, "string"); + return ff(t) == "symbol" ? t : t + ""; } -function bf(e, t) { - if (_f(e) != "object" || !e) return e; +function hf(e, t) { + if (ff(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (_f(r) != "object") return r; + if (ff(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var xf = { +var gf = { name: "Button", - extends: gf, + extends: df, inheritAttrs: !1, inject: { $pcFluid: { default: null } }, methods: { getPTOptions: function(e) { @@ -6731,7 +6653,7 @@ var xf = { return this.icon || this.$slots.icon; }, attrs: function() { - return G(this.asAttrs, this.a11yAttrs, this.getPTOptions("root")); + return W(this.asAttrs, this.a11yAttrs, this.getPTOptions("root")); }, asAttrs: function() { return this.as === "BUTTON" ? { @@ -6748,31 +6670,31 @@ var xf = { }; }, hasFluid: function() { - return cc(this.fluid) ? !!this.$pcFluid : this.fluid; + return rc(this.fluid) ? !!this.$pcFluid : this.fluid; }, dataP: function() { - return q(vf(vf(vf(vf(vf(vf(vf(vf(vf(vf({}, this.size, this.size), "icon-only", this.hasIcon && !this.label && !this.badge), "loading", this.loading), "fluid", this.hasFluid), "rounded", this.rounded), "raised", this.raised), "outlined", this.outlined || this.variant === "outlined"), "text", this.text || this.variant === "text"), "link", this.link || this.variant === "link"), "vertical", (this.iconPos === "top" || this.iconPos === "bottom") && this.label)); + return q(pf(pf(pf(pf(pf(pf(pf(pf(pf(pf({}, this.size, this.size), "icon-only", this.hasIcon && !this.label && !this.badge), "loading", this.loading), "fluid", this.hasFluid), "rounded", this.rounded), "raised", this.raised), "outlined", this.outlined || this.variant === "outlined"), "text", this.text || this.variant === "text"), "link", this.link || this.variant === "link"), "vertical", (this.iconPos === "top" || this.iconPos === "bottom") && this.label)); }, dataIconP: function() { - return q(vf(vf({}, this.iconPos, this.iconPos), this.size, this.size)); + return q(pf(pf({}, this.iconPos, this.iconPos), this.size, this.size)); }, dataLabelP: function() { - return q(vf(vf({}, this.size, this.size), "icon-only", this.hasIcon && !this.label && !this.badge)); + return q(pf(pf({}, this.size, this.size), "icon-only", this.hasIcon && !this.label && !this.badge)); } }, components: { - SpinnerIcon: Sd, - Badge: Id + SpinnerIcon: _d, + Badge: jd }, - directives: { ripple: lf } -}, Sf = ["data-p"], Cf = ["data-p"]; -function wf(e, t, n, r, i, a) { - var o = F("SpinnerIcon"), s = F("Badge"), c = mi("ripple"); + directives: { ripple: rf } +}, _f = ["data-p"], vf = ["data-p"]; +function yf(e, t, n, r, i, a) { + var o = F("SpinnerIcon"), s = F("Badge"), c = di("ripple"); return e.asChild ? I(e.$slots, "default", { key: 1, class: O(e.cx("root")), a11yAttrs: a.a11yAttrs - }) : qn((z(), V(pi(e.as), G({ + }) : Wn((R(), B(ui(e.as), W({ key: 0, class: e.cx("root"), "data-p": a.dataP @@ -6780,27 +6702,27 @@ function wf(e, t, n, r, i, a) { default: P(function() { return [I(e.$slots, "default", {}, function() { return [ - e.loading ? I(e.$slots, "loadingicon", G({ + e.loading ? I(e.$slots, "loadingicon", W({ key: 0, class: [e.cx("loadingIcon"), e.cx("icon")] }, e.ptm("loadingIcon")), function() { - return [e.loadingIcon ? (z(), B("span", G({ + return [e.loadingIcon ? (R(), z("span", W({ key: 0, class: [ e.cx("loadingIcon"), e.cx("icon"), e.loadingIcon ] - }, e.ptm("loadingIcon")), null, 16)) : (z(), V(o, G({ + }, e.ptm("loadingIcon")), null, 16)) : (R(), B(o, W({ key: 1, class: [e.cx("loadingIcon"), e.cx("icon")], spin: "" }, e.ptm("loadingIcon")), null, 16, ["class"]))]; - }) : I(e.$slots, "icon", G({ + }) : I(e.$slots, "icon", W({ key: 1, class: [e.cx("icon")] }, e.ptm("icon")), function() { - return [e.icon ? (z(), B("span", G({ + return [e.icon ? (R(), z("span", W({ key: 0, class: [ e.cx("icon"), @@ -6808,13 +6730,13 @@ function wf(e, t, n, r, i, a) { e.iconClass ], "data-p": a.dataIconP - }, e.ptm("icon")), null, 16, Sf)) : W("", !0)]; + }, e.ptm("icon")), null, 16, _f)) : U("", !0)]; }), - e.label ? (z(), B("span", G({ + e.label ? (R(), z("span", W({ key: 2, class: e.cx("label") - }, e.ptm("label"), { "data-p": a.dataLabelP }), k(e.label), 17, Cf)) : W("", !0), - e.badge ? (z(), V(s, { + }, e.ptm("label"), { "data-p": a.dataLabelP }), k(e.label), 17, vf)) : U("", !0), + e.badge ? (R(), B(s, { key: 3, value: e.badge, class: O(e.badgeClass), @@ -6827,102 +6749,102 @@ function wf(e, t, n, r, i, a) { "severity", "unstyled", "pt" - ])) : W("", !0) + ])) : U("", !0) ]; })]; }), _: 3 }, 16, ["class", "data-p"])), [[c]]); } -xf.render = wf; +gf.render = yf; // node_modules/@primevue/icons/check/index.mjs -var Tf = { +var bf = { name: "CheckIcon", - extends: xd + extends: gd }; -function Ef(e) { - return Af(e) || kf(e) || Of(e) || Df(); +function xf(e) { + return Tf(e) || wf(e) || Cf(e) || Sf(); } -function Df() { +function Sf() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function Of(e, t) { +function Cf(e, t) { if (e) { - if (typeof e == "string") return jf(e, t); + if (typeof e == "string") return Ef(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? jf(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Ef(e, t) : void 0; } } -function kf(e) { +function wf(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function Af(e) { - if (Array.isArray(e)) return jf(e); +function Tf(e) { + if (Array.isArray(e)) return Ef(e); } -function jf(e, t) { +function Ef(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function Mf(e, t, n, r, i, a) { - return z(), B("svg", G({ +function Df(e, t, n, r, i, a) { + return R(), z("svg", W({ width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" - }, e.pti()), Ef(t[0] ||= [H("path", { + }, e.pti()), xf(t[0] ||= [V("path", { d: "M4.86199 11.5948C4.78717 11.5923 4.71366 11.5745 4.64596 11.5426C4.57826 11.5107 4.51779 11.4652 4.46827 11.4091L0.753985 7.69483C0.683167 7.64891 0.623706 7.58751 0.580092 7.51525C0.536478 7.44299 0.509851 7.36177 0.502221 7.27771C0.49459 7.19366 0.506156 7.10897 0.536046 7.03004C0.565935 6.95111 0.613367 6.88 0.674759 6.82208C0.736151 6.76416 0.8099 6.72095 0.890436 6.69571C0.970973 6.67046 1.05619 6.66385 1.13966 6.67635C1.22313 6.68886 1.30266 6.72017 1.37226 6.76792C1.44186 6.81567 1.4997 6.8786 1.54141 6.95197L4.86199 10.2503L12.6397 2.49483C12.7444 2.42694 12.8689 2.39617 12.9932 2.40745C13.1174 2.41873 13.2343 2.47141 13.3251 2.55705C13.4159 2.64268 13.4753 2.75632 13.4938 2.87973C13.5123 3.00315 13.4888 3.1292 13.4271 3.23768L5.2557 11.4091C5.20618 11.4652 5.14571 11.5107 5.07801 11.5426C5.01031 11.5745 4.9368 11.5923 4.86199 11.5948Z", fill: "currentColor" }, null, -1)]), 16); } -Tf.render = Mf; +bf.render = Df; // node_modules/@primevue/icons/minus/index.mjs -var Nf = { +var Of = { name: "MinusIcon", - extends: xd + extends: gd }; -function Pf(e) { - return Rf(e) || Lf(e) || If(e) || Ff(); +function kf(e) { + return Nf(e) || Mf(e) || jf(e) || Af(); } -function Ff() { +function Af() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function If(e, t) { +function jf(e, t) { if (e) { - if (typeof e == "string") return zf(e, t); + if (typeof e == "string") return Pf(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? zf(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Pf(e, t) : void 0; } } -function Lf(e) { +function Mf(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function Rf(e) { - if (Array.isArray(e)) return zf(e); +function Nf(e) { + if (Array.isArray(e)) return Pf(e); } -function zf(e, t) { +function Pf(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function Bf(e, t, n, r, i, a) { - return z(), B("svg", G({ +function Ff(e, t, n, r, i, a) { + return R(), z("svg", W({ width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" - }, e.pti()), Pf(t[0] ||= [H("path", { + }, e.pti()), kf(t[0] ||= [V("path", { d: "M13.2222 7.77778H0.777778C0.571498 7.77778 0.373667 7.69584 0.227806 7.54998C0.0819442 7.40412 0 7.20629 0 7.00001C0 6.79373 0.0819442 6.5959 0.227806 6.45003C0.373667 6.30417 0.571498 6.22223 0.777778 6.22223H13.2222C13.4285 6.22223 13.6263 6.30417 13.7722 6.45003C13.9181 6.5959 14 6.79373 14 7.00001C14 7.20629 13.9181 7.40412 13.7722 7.54998C13.6263 7.69584 13.4285 7.77778 13.2222 7.77778Z", fill: "currentColor" }, null, -1)]), 16); } -Nf.render = Bf; +Of.render = Ff; // node_modules/@primevue/core/baseeditableholder/index.mjs -var Vf = { +var If = { name: "BaseEditableHolder", - extends: pd, + extends: cd, emits: ["update:modelValue", "value-change"], props: { modelValue: { @@ -7041,9 +6963,9 @@ var Vf = { return this.$filled; } } -}, Hf = { +}, Lf = { name: "BaseInput", - extends: Vf, + extends: If, props: { size: { type: String, @@ -7073,7 +6995,7 @@ var Vf = { return this.$fluid; } } -}, Uf = X.extend({ +}, Rf = X.extend({ name: "checkbox", style: "\n .p-checkbox {\n position: relative;\n display: inline-flex;\n user-select: none;\n vertical-align: bottom;\n width: dt('checkbox.width');\n height: dt('checkbox.height');\n }\n\n .p-checkbox-input {\n cursor: pointer;\n appearance: none;\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n opacity: 0;\n z-index: 1;\n outline: 0 none;\n border: 1px solid transparent;\n border-radius: dt('checkbox.border.radius');\n }\n\n .p-checkbox-box {\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: dt('checkbox.border.radius');\n border: 1px solid dt('checkbox.border.color');\n background: dt('checkbox.background');\n width: dt('checkbox.width');\n height: dt('checkbox.height');\n transition:\n background dt('checkbox.transition.duration'),\n color dt('checkbox.transition.duration'),\n border-color dt('checkbox.transition.duration'),\n box-shadow dt('checkbox.transition.duration'),\n outline-color dt('checkbox.transition.duration');\n outline-color: transparent;\n box-shadow: dt('checkbox.shadow');\n }\n\n .p-checkbox-icon {\n transition-duration: dt('checkbox.transition.duration');\n color: dt('checkbox.icon.color');\n font-size: dt('checkbox.icon.size');\n width: dt('checkbox.icon.size');\n height: dt('checkbox.icon.size');\n }\n\n .p-checkbox:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box {\n border-color: dt('checkbox.hover.border.color');\n }\n\n .p-checkbox-checked .p-checkbox-box {\n border-color: dt('checkbox.checked.border.color');\n background: dt('checkbox.checked.background');\n }\n\n .p-checkbox-checked .p-checkbox-icon {\n color: dt('checkbox.icon.checked.color');\n }\n\n .p-checkbox-checked:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box {\n background: dt('checkbox.checked.hover.background');\n border-color: dt('checkbox.checked.hover.border.color');\n }\n\n .p-checkbox-checked:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-icon {\n color: dt('checkbox.icon.checked.hover.color');\n }\n\n .p-checkbox:not(.p-disabled):has(.p-checkbox-input:focus-visible) .p-checkbox-box {\n border-color: dt('checkbox.focus.border.color');\n box-shadow: dt('checkbox.focus.ring.shadow');\n outline: dt('checkbox.focus.ring.width') dt('checkbox.focus.ring.style') dt('checkbox.focus.ring.color');\n outline-offset: dt('checkbox.focus.ring.offset');\n }\n\n .p-checkbox-checked:not(.p-disabled):has(.p-checkbox-input:focus-visible) .p-checkbox-box {\n border-color: dt('checkbox.checked.focus.border.color');\n }\n\n .p-checkbox.p-invalid > .p-checkbox-box {\n border-color: dt('checkbox.invalid.border.color');\n }\n\n .p-checkbox.p-variant-filled .p-checkbox-box {\n background: dt('checkbox.filled.background');\n }\n\n .p-checkbox-checked.p-variant-filled .p-checkbox-box {\n background: dt('checkbox.checked.background');\n }\n\n .p-checkbox-checked.p-variant-filled:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box {\n background: dt('checkbox.checked.hover.background');\n }\n\n .p-checkbox.p-disabled {\n opacity: 1;\n }\n\n .p-checkbox.p-disabled .p-checkbox-box {\n background: dt('checkbox.disabled.background');\n border-color: dt('checkbox.checked.disabled.border.color');\n }\n\n .p-checkbox.p-disabled .p-checkbox-box .p-checkbox-icon {\n color: dt('checkbox.icon.disabled.color');\n }\n\n .p-checkbox-sm,\n .p-checkbox-sm .p-checkbox-box {\n width: dt('checkbox.sm.width');\n height: dt('checkbox.sm.height');\n }\n\n .p-checkbox-sm .p-checkbox-icon {\n font-size: dt('checkbox.icon.sm.size');\n width: dt('checkbox.icon.sm.size');\n height: dt('checkbox.icon.sm.size');\n }\n\n .p-checkbox-lg,\n .p-checkbox-lg .p-checkbox-box {\n width: dt('checkbox.lg.width');\n height: dt('checkbox.lg.height');\n }\n\n .p-checkbox-lg .p-checkbox-icon {\n font-size: dt('checkbox.icon.lg.size');\n width: dt('checkbox.icon.lg.size');\n height: dt('checkbox.icon.lg.size');\n }\n", classes: { @@ -7092,9 +7014,9 @@ var Vf = { input: "p-checkbox-input", icon: "p-checkbox-icon" } -}), Wf = { +}), zf = { name: "BaseCheckbox", - extends: Hf, + extends: Lf, props: { value: null, binary: Boolean, @@ -7143,7 +7065,7 @@ var Vf = { default: null } }, - style: Uf, + style: Rf, provide: function() { return { $pcCheckbox: this, @@ -7151,63 +7073,63 @@ var Vf = { }; } }; -function Gf(e) { +function Bf(e) { "@babel/helpers - typeof"; - return Gf = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return Bf = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, Gf(e); + }, Bf(e); } -function Kf(e, t, n) { - return (t = qf(t)) in e ? Object.defineProperty(e, t, { +function Vf(e, t, n) { + return (t = Hf(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function qf(e) { - var t = Jf(e, "string"); - return Gf(t) == "symbol" ? t : t + ""; +function Hf(e) { + var t = Uf(e, "string"); + return Bf(t) == "symbol" ? t : t + ""; } -function Jf(e, t) { - if (Gf(e) != "object" || !e) return e; +function Uf(e, t) { + if (Bf(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (Gf(r) != "object") return r; + if (Bf(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -function Yf(e) { - return $f(e) || Qf(e) || Zf(e) || Xf(); +function Wf(e) { + return Jf(e) || qf(e) || Kf(e) || Gf(); } -function Xf() { +function Gf() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function Zf(e, t) { +function Kf(e, t) { if (e) { - if (typeof e == "string") return ep(e, t); + if (typeof e == "string") return Yf(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? ep(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Yf(e, t) : void 0; } } -function Qf(e) { +function qf(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function $f(e) { - if (Array.isArray(e)) return ep(e); +function Jf(e) { + if (Array.isArray(e)) return Yf(e); } -function ep(e, t) { +function Yf(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -var tp = { +var Xf = { name: "Checkbox", - extends: Wf, + extends: zf, inheritAttrs: !1, emits: [ "change", @@ -7240,8 +7162,8 @@ var tp = { var t = this; if (!this.disabled && !this.readonly) { var n = this.$pcCheckboxGroup ? this.$pcCheckboxGroup.d_value : this.d_value, r = this.binary ? this.d_indeterminate ? this.trueValue : this.checked ? this.falseValue : this.trueValue : this.checked || this.d_indeterminate ? n.filter(function(e) { - return !pc(e, t.value); - }) : n ? [].concat(Yf(n), [this.value]) : [this.value]; + return !cc(e, t.value); + }) : n ? [].concat(Wf(n), [this.value]) : [this.value]; this.d_indeterminate && (this.d_indeterminate = !1, this.$emit("update:indeterminate", this.d_indeterminate)), this.$pcCheckboxGroup ? this.$pcCheckboxGroup.writeValue(r, e) : this.writeValue(r, e), this.$emit("change", e); } }, @@ -7262,10 +7184,10 @@ var tp = { }, checked: function() { var e = this.$pcCheckboxGroup ? this.$pcCheckboxGroup.d_value : this.d_value; - return this.d_indeterminate ? !1 : this.binary ? e === this.trueValue : mc(this.value, e); + return this.d_indeterminate ? !1 : this.binary ? e === this.trueValue : lc(this.value, e); }, dataP: function() { - return q(Kf({ + return q(Vf({ invalid: this.$invalid, checked: this.checked, disabled: this.disabled, @@ -7274,15 +7196,15 @@ var tp = { } }, components: { - CheckIcon: Tf, - MinusIcon: Nf + CheckIcon: bf, + MinusIcon: Of } -}, np = [ +}, Zf = [ "data-p-checked", "data-p-indeterminate", "data-p-disabled", "data-p" -], rp = [ +], Qf = [ "id", "value", "name", @@ -7294,15 +7216,15 @@ var tp = { "aria-labelledby", "aria-label", "aria-invalid" -], ip = ["data-p"]; -function ap(e, t, n, r, i, a) { +], $f = ["data-p"]; +function ep(e, t, n, r, i, a) { var o = F("CheckIcon"), s = F("MinusIcon"); - return z(), B("div", G({ class: e.cx("root") }, a.getPTOptions("root"), { + return R(), z("div", W({ class: e.cx("root") }, a.getPTOptions("root"), { "data-p-checked": a.checked, "data-p-indeterminate": i.d_indeterminate || void 0, "data-p-disabled": e.disabled, "data-p": a.dataP - }), [H("input", G({ + }), [V("input", W({ ref: "input", id: e.inputId, type: "checkbox", @@ -7327,26 +7249,26 @@ function ap(e, t, n, r, i, a) { onChange: t[2] ||= function() { return a.onChange && a.onChange.apply(a, arguments); } - }, a.getPTOptions("input")), null, 16, rp), H("div", G({ class: e.cx("box") }, a.getPTOptions("box"), { "data-p": a.dataP }), [I(e.$slots, "icon", { + }, a.getPTOptions("input")), null, 16, Qf), V("div", W({ class: e.cx("box") }, a.getPTOptions("box"), { "data-p": a.dataP }), [I(e.$slots, "icon", { checked: a.checked, indeterminate: i.d_indeterminate, class: O(e.cx("icon")), dataP: a.dataP }, function() { - return [a.checked ? (z(), V(o, G({ + return [a.checked ? (R(), B(o, W({ key: 0, class: e.cx("icon") - }, a.getPTOptions("icon"), { "data-p": a.dataP }), null, 16, ["class", "data-p"])) : i.d_indeterminate ? (z(), V(s, G({ + }, a.getPTOptions("icon"), { "data-p": a.dataP }), null, 16, ["class", "data-p"])) : i.d_indeterminate ? (R(), B(s, W({ key: 1, class: e.cx("icon") - }, a.getPTOptions("icon"), { "data-p": a.dataP }), null, 16, ["class", "data-p"])) : W("", !0)]; - })], 16, ip)], 16, np); + }, a.getPTOptions("icon"), { "data-p": a.dataP }), null, 16, ["class", "data-p"])) : U("", !0)]; + })], 16, $f)], 16, Zf); } -tp.render = ap; +Xf.render = ep; // node_modules/primevue/inputtext/index.mjs -var op = { +var tp = { name: "BaseInputText", - extends: Hf, + extends: Lf, style: X.extend({ name: "inputtext", style: "\n .p-inputtext {\n font-family: inherit;\n font-feature-settings: inherit;\n font-size: 1rem;\n color: dt('inputtext.color');\n background: dt('inputtext.background');\n padding-block: dt('inputtext.padding.y');\n padding-inline: dt('inputtext.padding.x');\n border: 1px solid dt('inputtext.border.color');\n transition:\n background dt('inputtext.transition.duration'),\n color dt('inputtext.transition.duration'),\n border-color dt('inputtext.transition.duration'),\n outline-color dt('inputtext.transition.duration'),\n box-shadow dt('inputtext.transition.duration');\n appearance: none;\n border-radius: dt('inputtext.border.radius');\n outline-color: transparent;\n box-shadow: dt('inputtext.shadow');\n }\n\n .p-inputtext:enabled:hover {\n border-color: dt('inputtext.hover.border.color');\n }\n\n .p-inputtext:enabled:focus {\n border-color: dt('inputtext.focus.border.color');\n box-shadow: dt('inputtext.focus.ring.shadow');\n outline: dt('inputtext.focus.ring.width') dt('inputtext.focus.ring.style') dt('inputtext.focus.ring.color');\n outline-offset: dt('inputtext.focus.ring.offset');\n }\n\n .p-inputtext.p-invalid {\n border-color: dt('inputtext.invalid.border.color');\n }\n\n .p-inputtext.p-variant-filled {\n background: dt('inputtext.filled.background');\n }\n\n .p-inputtext.p-variant-filled:enabled:hover {\n background: dt('inputtext.filled.hover.background');\n }\n\n .p-inputtext.p-variant-filled:enabled:focus {\n background: dt('inputtext.filled.focus.background');\n }\n\n .p-inputtext:disabled {\n opacity: 1;\n background: dt('inputtext.disabled.background');\n color: dt('inputtext.disabled.color');\n }\n\n .p-inputtext::placeholder {\n color: dt('inputtext.placeholder.color');\n }\n\n .p-inputtext.p-invalid::placeholder {\n color: dt('inputtext.invalid.placeholder.color');\n }\n\n .p-inputtext-sm {\n font-size: dt('inputtext.sm.font.size');\n padding-block: dt('inputtext.sm.padding.y');\n padding-inline: dt('inputtext.sm.padding.x');\n }\n\n .p-inputtext-lg {\n font-size: dt('inputtext.lg.font.size');\n padding-block: dt('inputtext.lg.padding.y');\n padding-inline: dt('inputtext.lg.padding.x');\n }\n\n .p-inputtext-fluid {\n width: 100%;\n }\n", @@ -7369,67 +7291,67 @@ var op = { }; } }; -function sp(e) { +function np(e) { "@babel/helpers - typeof"; - return sp = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return np = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, sp(e); + }, np(e); } -function cp(e, t, n) { - return (t = lp(t)) in e ? Object.defineProperty(e, t, { +function rp(e, t, n) { + return (t = ip(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function lp(e) { - var t = up(e, "string"); - return sp(t) == "symbol" ? t : t + ""; +function ip(e) { + var t = ap(e, "string"); + return np(t) == "symbol" ? t : t + ""; } -function up(e, t) { - if (sp(e) != "object" || !e) return e; +function ap(e, t) { + if (np(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (sp(r) != "object") return r; + if (np(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var dp = { +var op = { name: "InputText", - extends: op, + extends: tp, inheritAttrs: !1, methods: { onInput: function(e) { this.writeValue(e.target.value, e); } }, computed: { attrs: function() { - return G(this.ptmi("root", { context: { + return W(this.ptmi("root", { context: { filled: this.$filled, disabled: this.disabled } }), this.formField); }, dataP: function() { - return q(cp({ + return q(rp({ invalid: this.$invalid, fluid: this.$fluid, filled: this.$variant === "filled" }, this.size, this.size)); } } -}, fp = [ +}, sp = [ "value", "name", "disabled", "aria-invalid", "data-p" ]; -function pp(e, t, n, r, i, a) { - return z(), B("input", G({ +function cp(e, t, n, r, i, a) { + return R(), z("input", W({ type: "text", class: e.cx("root"), value: e.d_value, @@ -7440,11 +7362,11 @@ function pp(e, t, n, r, i, a) { onInput: t[0] ||= function() { return a.onInput && a.onInput.apply(a, arguments); } - }, a.attrs), null, 16, fp); + }, a.attrs), null, 16, sp); } -dp.render = pp; +op.render = cp; // node_modules/primevue/textarea/style/index.mjs -var mp = X.extend({ +var lp = X.extend({ name: "textarea", style: "\n .p-textarea {\n font-family: inherit;\n font-feature-settings: inherit;\n font-size: 1rem;\n color: dt('textarea.color');\n background: dt('textarea.background');\n padding-block: dt('textarea.padding.y');\n padding-inline: dt('textarea.padding.x');\n border: 1px solid dt('textarea.border.color');\n transition:\n background dt('textarea.transition.duration'),\n color dt('textarea.transition.duration'),\n border-color dt('textarea.transition.duration'),\n outline-color dt('textarea.transition.duration'),\n box-shadow dt('textarea.transition.duration');\n appearance: none;\n border-radius: dt('textarea.border.radius');\n outline-color: transparent;\n box-shadow: dt('textarea.shadow');\n }\n\n .p-textarea:enabled:hover {\n border-color: dt('textarea.hover.border.color');\n }\n\n .p-textarea:enabled:focus {\n border-color: dt('textarea.focus.border.color');\n box-shadow: dt('textarea.focus.ring.shadow');\n outline: dt('textarea.focus.ring.width') dt('textarea.focus.ring.style') dt('textarea.focus.ring.color');\n outline-offset: dt('textarea.focus.ring.offset');\n }\n\n .p-textarea.p-invalid {\n border-color: dt('textarea.invalid.border.color');\n }\n\n .p-textarea.p-variant-filled {\n background: dt('textarea.filled.background');\n }\n\n .p-textarea.p-variant-filled:enabled:hover {\n background: dt('textarea.filled.hover.background');\n }\n\n .p-textarea.p-variant-filled:enabled:focus {\n background: dt('textarea.filled.focus.background');\n }\n\n .p-textarea:disabled {\n opacity: 1;\n background: dt('textarea.disabled.background');\n color: dt('textarea.disabled.color');\n }\n\n .p-textarea::placeholder {\n color: dt('textarea.placeholder.color');\n }\n\n .p-textarea.p-invalid::placeholder {\n color: dt('textarea.invalid.placeholder.color');\n }\n\n .p-textarea-fluid {\n width: 100%;\n }\n\n .p-textarea-resizable {\n overflow: hidden;\n resize: none;\n }\n\n .p-textarea-sm {\n font-size: dt('textarea.sm.font.size');\n padding-block: dt('textarea.sm.padding.y');\n padding-inline: dt('textarea.sm.padding.x');\n }\n\n .p-textarea-lg {\n font-size: dt('textarea.lg.font.size');\n padding-block: dt('textarea.lg.padding.y');\n padding-inline: dt('textarea.lg.padding.x');\n }\n", classes: { root: function(e) { @@ -7459,11 +7381,11 @@ var mp = X.extend({ "p-textarea-fluid": t.$fluid }]; } } -}), hp = { +}), up = { name: "BaseTextarea", - extends: Hf, + extends: Lf, props: { autoResize: Boolean }, - style: mp, + style: lp, provide: function() { return { $pcTextarea: this, @@ -7471,39 +7393,39 @@ var mp = X.extend({ }; } }; -function gp(e) { +function dp(e) { "@babel/helpers - typeof"; - return gp = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return dp = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, gp(e); + }, dp(e); } -function _p(e, t, n) { - return (t = vp(t)) in e ? Object.defineProperty(e, t, { +function fp(e, t, n) { + return (t = pp(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function vp(e) { - var t = yp(e, "string"); - return gp(t) == "symbol" ? t : t + ""; +function pp(e) { + var t = mp(e, "string"); + return dp(t) == "symbol" ? t : t + ""; } -function yp(e, t) { - if (gp(e) != "object" || !e) return e; +function mp(e, t) { + if (dp(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (gp(r) != "object") return r; + if (dp(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var bp = { +var hp = { name: "Textarea", - extends: hp, + extends: up, inheritAttrs: !1, observer: null, mounted: function() { @@ -7533,28 +7455,28 @@ var bp = { }, computed: { attrs: function() { - return G(this.ptmi("root", { context: { + return W(this.ptmi("root", { context: { filled: this.$filled, disabled: this.disabled } }), this.formField); }, dataP: function() { - return q(_p({ + return q(fp({ invalid: this.$invalid, fluid: this.$fluid, filled: this.$variant === "filled" }, this.size, this.size)); } } -}, xp = [ +}, gp = [ "value", "name", "disabled", "aria-invalid", "data-p" ]; -function Sp(e, t, n, r, i, a) { - return z(), B("textarea", G({ +function _p(e, t, n, r, i, a) { + return R(), z("textarea", W({ class: e.cx("root"), value: e.d_value, name: e.name, @@ -7564,54 +7486,54 @@ function Sp(e, t, n, r, i, a) { onInput: t[0] ||= function() { return a.onInput && a.onInput.apply(a, arguments); } - }, a.attrs), null, 16, xp); + }, a.attrs), null, 16, gp); } -bp.render = Sp; +hp.render = _p; // node_modules/@primevue/core/utils/index.mjs -function Cp(e) { +function vp(e) { "@babel/helpers - typeof"; - return Cp = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return vp = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, Cp(e); + }, vp(e); } -function wp(e, t) { +function yp(e, t) { if (!(e instanceof t)) throw TypeError("Cannot call a class as a function"); } -function Tp(e, t) { +function bp(e, t) { for (var n = 0; n < t.length; n++) { var r = t[n]; - r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, Dp(r.key), r); + r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, Sp(r.key), r); } } -function Ep(e, t, n) { - return t && Tp(e.prototype, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; +function xp(e, t, n) { + return t && bp(e.prototype, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function Dp(e) { - var t = Op(e, "string"); - return Cp(t) == "symbol" ? t : t + ""; +function Sp(e) { + var t = Cp(e, "string"); + return vp(t) == "symbol" ? t : t + ""; } -function Op(e, t) { - if (Cp(e) != "object" || !e) return e; +function Cp(e, t) { + if (vp(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (Cp(r) != "object") return r; + if (vp(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return String(e); } -var kp = /*#__PURE__*/ function() { +var wp = /*#__PURE__*/ function() { function e(t) { var n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : function() {}; - wp(this, e), this.element = t, this.listener = n; + yp(this, e), this.element = t, this.listener = n; } - return Ep(e, [ + return xp(e, [ { key: "bindScrollListener", value: function() { - this.scrollableParents = dl(this.element); + this.scrollableParents = ol(this.element); for (var e = 0; e < this.scrollableParents.length; e++) this.scrollableParents[e].addEventListener("scroll", this.listener); } }, @@ -7628,183 +7550,183 @@ var kp = /*#__PURE__*/ function() { } } ]); -}(), Ap = { +}(), Tp = { name: "BlankIcon", - extends: xd + extends: gd }; -function jp(e) { - return Fp(e) || Pp(e) || Np(e) || Mp(); +function Ep(e) { + return Ap(e) || kp(e) || Op(e) || Dp(); } -function Mp() { +function Dp() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function Np(e, t) { +function Op(e, t) { if (e) { - if (typeof e == "string") return Ip(e, t); + if (typeof e == "string") return jp(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Ip(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? jp(e, t) : void 0; } } -function Pp(e) { +function kp(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function Fp(e) { - if (Array.isArray(e)) return Ip(e); +function Ap(e) { + if (Array.isArray(e)) return jp(e); } -function Ip(e, t) { +function jp(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function Lp(e, t, n, r, i, a) { - return z(), B("svg", G({ +function Mp(e, t, n, r, i, a) { + return R(), z("svg", W({ width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" - }, e.pti()), jp(t[0] ||= [H("rect", { + }, e.pti()), Ep(t[0] ||= [V("rect", { width: "1", height: "1", fill: "currentColor", "fill-opacity": "0" }, null, -1)]), 16); } -Ap.render = Lp; +Tp.render = Mp; // node_modules/@primevue/icons/chevrondown/index.mjs -var Rp = { +var Np = { name: "ChevronDownIcon", - extends: xd + extends: gd }; -function zp(e) { - return Up(e) || Hp(e) || Vp(e) || Bp(); +function Pp(e) { + return Rp(e) || Lp(e) || Ip(e) || Fp(); } -function Bp() { +function Fp() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function Vp(e, t) { +function Ip(e, t) { if (e) { - if (typeof e == "string") return Wp(e, t); + if (typeof e == "string") return zp(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Wp(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? zp(e, t) : void 0; } } -function Hp(e) { +function Lp(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function Up(e) { - if (Array.isArray(e)) return Wp(e); +function Rp(e) { + if (Array.isArray(e)) return zp(e); } -function Wp(e, t) { +function zp(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function Gp(e, t, n, r, i, a) { - return z(), B("svg", G({ +function Bp(e, t, n, r, i, a) { + return R(), z("svg", W({ width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" - }, e.pti()), zp(t[0] ||= [H("path", { + }, e.pti()), Pp(t[0] ||= [V("path", { d: "M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z", fill: "currentColor" }, null, -1)]), 16); } -Rp.render = Gp; +Np.render = Bp; // node_modules/@primevue/icons/search/index.mjs -var Kp = { +var Vp = { name: "SearchIcon", - extends: xd + extends: gd }; -function qp(e) { - return Zp(e) || Xp(e) || Yp(e) || Jp(); +function Hp(e) { + return Kp(e) || Gp(e) || Wp(e) || Up(); } -function Jp() { +function Up() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function Yp(e, t) { +function Wp(e, t) { if (e) { - if (typeof e == "string") return Qp(e, t); + if (typeof e == "string") return qp(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Qp(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? qp(e, t) : void 0; } } -function Xp(e) { +function Gp(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function Zp(e) { - if (Array.isArray(e)) return Qp(e); +function Kp(e) { + if (Array.isArray(e)) return qp(e); } -function Qp(e, t) { +function qp(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function $p(e, t, n, r, i, a) { - return z(), B("svg", G({ +function Jp(e, t, n, r, i, a) { + return R(), z("svg", W({ width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" - }, e.pti()), qp(t[0] ||= [H("path", { + }, e.pti()), Hp(t[0] ||= [V("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M2.67602 11.0265C3.6661 11.688 4.83011 12.0411 6.02086 12.0411C6.81149 12.0411 7.59438 11.8854 8.32483 11.5828C8.87005 11.357 9.37808 11.0526 9.83317 10.6803L12.9769 13.8241C13.0323 13.8801 13.0983 13.9245 13.171 13.9548C13.2438 13.985 13.3219 14.0003 13.4007 14C13.4795 14.0003 13.5575 13.985 13.6303 13.9548C13.7031 13.9245 13.7691 13.8801 13.8244 13.8241C13.9367 13.7116 13.9998 13.5592 13.9998 13.4003C13.9998 13.2414 13.9367 13.089 13.8244 12.9765L10.6807 9.8328C11.053 9.37773 11.3573 8.86972 11.5831 8.32452C11.8857 7.59408 12.0414 6.81119 12.0414 6.02056C12.0414 4.8298 11.6883 3.66579 11.0268 2.67572C10.3652 1.68564 9.42494 0.913972 8.32483 0.45829C7.22472 0.00260857 6.01418 -0.116618 4.84631 0.115686C3.67844 0.34799 2.60568 0.921393 1.76369 1.76338C0.921698 2.60537 0.348296 3.67813 0.115991 4.84601C-0.116313 6.01388 0.00291375 7.22441 0.458595 8.32452C0.914277 9.42464 1.68595 10.3649 2.67602 11.0265ZM3.35565 2.0158C4.14456 1.48867 5.07206 1.20731 6.02086 1.20731C7.29317 1.20731 8.51338 1.71274 9.41304 2.6124C10.3127 3.51206 10.8181 4.73226 10.8181 6.00457C10.8181 6.95337 10.5368 7.88088 10.0096 8.66978C9.48251 9.45868 8.73328 10.0736 7.85669 10.4367C6.98011 10.7997 6.01554 10.8947 5.08496 10.7096C4.15439 10.5245 3.2996 10.0676 2.62869 9.39674C1.95778 8.72583 1.50089 7.87104 1.31579 6.94046C1.13068 6.00989 1.22568 5.04532 1.58878 4.16874C1.95187 3.29215 2.56675 2.54292 3.35565 2.0158Z", fill: "currentColor" }, null, -1)]), 16); } -Kp.render = $p; +Vp.render = Jp; // node_modules/@primevue/icons/times/index.mjs -var em = { +var Yp = { name: "TimesIcon", - extends: xd + extends: gd }; -function tm(e) { - return am(e) || im(e) || rm(e) || nm(); +function Xp(e) { + return em(e) || $p(e) || Qp(e) || Zp(); } -function nm() { +function Zp() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function rm(e, t) { +function Qp(e, t) { if (e) { - if (typeof e == "string") return om(e, t); + if (typeof e == "string") return tm(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? om(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? tm(e, t) : void 0; } } -function im(e) { +function $p(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function am(e) { - if (Array.isArray(e)) return om(e); +function em(e) { + if (Array.isArray(e)) return tm(e); } -function om(e, t) { +function tm(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function sm(e, t, n, r, i, a) { - return z(), B("svg", G({ +function nm(e, t, n, r, i, a) { + return R(), z("svg", W({ width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" - }, e.pti()), tm(t[0] ||= [H("path", { + }, e.pti()), Xp(t[0] ||= [V("path", { d: "M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z", fill: "currentColor" }, null, -1)]), 16); } -em.render = sm; +Yp.render = nm; // node_modules/primevue/iconfield/index.mjs -var cm = { +var rm = { name: "IconField", extends: { name: "BaseIconField", - extends: pd, + extends: cd, style: X.extend({ name: "iconfield", style: "\n .p-iconfield {\n position: relative;\n display: block;\n }\n\n .p-inputicon {\n position: absolute;\n top: 50%;\n margin-top: calc(-1 * (dt('icon.size') / 2));\n color: dt('iconfield.icon.color');\n line-height: 1;\n z-index: 1;\n }\n\n .p-iconfield .p-inputicon:first-child {\n inset-inline-start: dt('form.field.padding.x');\n }\n\n .p-iconfield .p-inputicon:last-child {\n inset-inline-end: dt('form.field.padding.x');\n }\n\n .p-iconfield .p-inputtext:not(:first-child),\n .p-iconfield .p-inputwrapper:not(:first-child) .p-inputtext {\n padding-inline-start: calc((dt('form.field.padding.x') * 2) + dt('icon.size'));\n }\n\n .p-iconfield .p-inputtext:not(:last-child) {\n padding-inline-end: calc((dt('form.field.padding.x') * 2) + dt('icon.size'));\n }\n\n .p-iconfield:has(.p-inputfield-sm) .p-inputicon {\n font-size: dt('form.field.sm.font.size');\n width: dt('form.field.sm.font.size');\n height: dt('form.field.sm.font.size');\n margin-top: calc(-1 * (dt('form.field.sm.font.size') / 2));\n }\n\n .p-iconfield:has(.p-inputfield-lg) .p-inputicon {\n font-size: dt('form.field.lg.font.size');\n width: dt('form.field.lg.font.size');\n height: dt('form.field.lg.font.size');\n margin-top: calc(-1 * (dt('form.field.lg.font.size') / 2));\n }\n", @@ -7819,16 +7741,16 @@ var cm = { }, inheritAttrs: !1 }; -function lm(e, t, n, r, i, a) { - return z(), B("div", G({ class: e.cx("root") }, e.ptmi("root")), [I(e.$slots, "default")], 16); +function im(e, t, n, r, i, a) { + return R(), z("div", W({ class: e.cx("root") }, e.ptmi("root")), [I(e.$slots, "default")], 16); } -cm.render = lm; +rm.render = im; // node_modules/primevue/inputicon/index.mjs -var um = { +var am = { name: "InputIcon", extends: { name: "BaseInputIcon", - extends: pd, + extends: cd, style: X.extend({ name: "inputicon", classes: { root: "p-inputicon" } @@ -7846,12 +7768,12 @@ var um = { return [this.cx("root"), this.class]; } } }; -function dm(e, t, n, r, i, a) { - return z(), B("span", G({ class: a.containerClass }, e.ptmi("root"), { "aria-hidden": "true" }), [I(e.$slots, "default")], 16); +function om(e, t, n, r, i, a) { + return R(), z("span", W({ class: a.containerClass }, e.ptmi("root"), { "aria-hidden": "true" }), [I(e.$slots, "default")], 16); } -um.render = dm; +am.render = om; // node_modules/primevue/overlayeventbus/index.mjs -var fm = Mc(), pm = { +var sm = Dc(), cm = { name: "Portal", props: { appendTo: { @@ -7867,27 +7789,27 @@ var fm = Mc(), pm = { return { mounted: !1 }; }, mounted: function() { - this.mounted = ml(); + this.mounted = ll(); }, computed: { inline: function() { return this.disabled || this.appendTo === "self"; } } }; -function mm(e, t, n, r, i, a) { - return a.inline ? I(e.$slots, "default", { key: 0 }) : i.mounted ? (z(), V(_r, { +function lm(e, t, n, r, i, a) { + return a.inline ? I(e.$slots, "default", { key: 0 }) : i.mounted ? (R(), B(mr, { key: 1, to: n.appendTo - }, [I(e.$slots, "default")], 8, ["to"])) : W("", !0); + }, [I(e.$slots, "default")], 8, ["to"])) : U("", !0); } -pm.render = mm; +cm.render = lm; // node_modules/primevue/virtualscroller/style/index.mjs -var hm = X.extend({ +var um = X.extend({ name: "virtualscroller", css: "\n.p-virtualscroller {\n position: relative;\n overflow: auto;\n contain: strict;\n transform: translateZ(0);\n will-change: scroll-position;\n outline: 0 none;\n}\n\n.p-virtualscroller-content {\n position: absolute;\n top: 0;\n left: 0;\n min-height: 100%;\n min-width: 100%;\n will-change: transform;\n}\n\n.p-virtualscroller-spacer {\n position: absolute;\n top: 0;\n left: 0;\n height: 1px;\n width: 1px;\n transform-origin: 0 0;\n pointer-events: none;\n}\n\n.p-virtualscroller-loader {\n position: sticky;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.p-virtualscroller-loader-mask {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.p-virtualscroller-horizontal > .p-virtualscroller-content {\n display: flex;\n}\n\n.p-virtualscroller-inline .p-virtualscroller-content {\n position: static;\n}\n\n.p-virtualscroller .p-virtualscroller-loading {\n transform: none !important;\n min-height: 0;\n position: sticky;\n inset-block-start: 0;\n inset-inline-start: 0;\n}\n", style: "\n .p-virtualscroller-loader {\n background: dt('virtualscroller.loader.mask.background');\n color: dt('virtualscroller.loader.mask.color');\n }\n\n .p-virtualscroller-loading-icon {\n font-size: dt('virtualscroller.loader.icon.size');\n width: dt('virtualscroller.loader.icon.size');\n height: dt('virtualscroller.loader.icon.size');\n }\n" -}), gm = { +}), dm = { name: "BaseVirtualScroller", - extends: pd, + extends: cd, props: { id: { type: String, @@ -7970,7 +7892,7 @@ var hm = X.extend({ default: !1 } }, - style: hm, + style: um, provide: function() { return { $pcVirtualScroller: this, @@ -7979,18 +7901,18 @@ var hm = X.extend({ }, beforeMount: function() { var e; - hm.loadCSS({ nonce: (e = this.$primevueConfig) == null || (e = e.csp) == null ? void 0 : e.nonce }); + um.loadCSS({ nonce: (e = this.$primevueConfig) == null || (e = e.csp) == null ? void 0 : e.nonce }); } }; -function _m(e) { +function fm(e) { "@babel/helpers - typeof"; - return _m = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return fm = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, _m(e); + }, fm(e); } -function vm(e, t) { +function pm(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); @@ -8000,42 +7922,42 @@ function vm(e, t) { } return n; } -function ym(e) { +function mm(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] == null ? {} : arguments[t]; - t % 2 ? vm(Object(n), !0).forEach(function(t) { - bm(e, t, n[t]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : vm(Object(n)).forEach(function(t) { + t % 2 ? pm(Object(n), !0).forEach(function(t) { + hm(e, t, n[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : pm(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); }); } return e; } -function bm(e, t, n) { - return (t = xm(t)) in e ? Object.defineProperty(e, t, { +function hm(e, t, n) { + return (t = gm(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function xm(e) { - var t = Sm(e, "string"); - return _m(t) == "symbol" ? t : t + ""; +function gm(e) { + var t = _m(e, "string"); + return fm(t) == "symbol" ? t : t + ""; } -function Sm(e, t) { - if (_m(e) != "object" || !e) return e; +function _m(e, t) { + if (fm(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (_m(r) != "object") return r; + if (fm(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var Cm = { +var vm = { name: "VirtualScroller", - extends: gm, + extends: dm, inheritAttrs: !1, emits: [ "update:numToleratedItems", @@ -8130,7 +8052,7 @@ var Cm = { }, methods: { viewInit: function() { - gl(this.element) && (this.setContentEl(this.content), this.init(), this.calculateAutoSize(), this.defaultWidth = fl(this.element), this.defaultHeight = ol(this.element), this.defaultContentWidth = fl(this.content), this.defaultContentHeight = ol(this.content), this.initialized = !0), this.element && this.bindResizeListener(); + dl(this.element) && (this.setContentEl(this.content), this.init(), this.calculateAutoSize(), this.defaultWidth = sl(this.element), this.defaultHeight = tl(this.element), this.defaultContentWidth = sl(this.content), this.defaultContentHeight = tl(this.content), this.initialized = !0), this.element && this.bindResizeListener(); }, init: function() { this.disabled || (this.setSize(), this.calculateOptions(), this.setSpacerSize()); @@ -8268,7 +8190,7 @@ var Cm = { if (e.content) { var t = e.isBoth(), n = e.isHorizontal(), r = e.isVertical(); e.content.style.minHeight = e.content.style.minWidth = "auto", e.content.style.position = "relative", e.element.style.contain = "none"; - var i = [fl(e.element), ol(e.element)], a = i[0], o = i[1]; + var i = [sl(e.element), tl(e.element)], a = i[0], o = i[1]; (t || n) && (e.element.style.width = a < e.defaultWidth ? a + "px" : e.scrollWidth || e.defaultWidth + "px"), (t || r) && (e.element.style.height = o < e.defaultHeight ? o + "px" : e.scrollHeight || e.defaultHeight + "px"), e.content.style.minHeight = e.content.style.minWidth = "", e.content.style.position = "", e.element.style.contain = ""; } }); @@ -8312,7 +8234,7 @@ var Cm = { if (t) { var n = this.isBoth(), r = this.isHorizontal(), i = this.getContentPosition(), a = function(t, n, r) { var i = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0; - return e.spacerStyle = ym(ym({}, e.spacerStyle), bm({}, `${t}`, (n || []).length * r + i + "px")); + return e.spacerStyle = mm(mm({}, e.spacerStyle), hm({}, `${t}`, (n || []).length * r + i + "px")); }; n ? (a("height", t, this.itemSize[0], i.y), a("width", this.columns || t[1], this.itemSize[1], i.x)) : r ? a("width", this.columns || t, this.itemSize, i.x) : a("height", t, this.itemSize, i.y); } @@ -8324,7 +8246,7 @@ var Cm = { return e * t; }, o = function() { var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0, n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; - return t.contentStyle = ym(ym({}, t.contentStyle), { transform: `translate3d(${e}px, ${n}px, 0)` }); + return t.contentStyle = mm(mm({}, t.contentStyle), { transform: `translate3d(${e}px, ${n}px, 0)` }); }; if (n) o(a(i.cols, this.itemSize[1]), a(i.rows, this.itemSize[0])); else { @@ -8411,9 +8333,9 @@ var Cm = { onResize: function() { var e = this; this.resizeTimeout && clearTimeout(this.resizeTimeout), this.resizeTimeout = setTimeout(function() { - if (gl(e.element)) { - var t = e.isBoth(), n = e.isVertical(), r = e.isHorizontal(), i = [fl(e.element), ol(e.element)], a = i[0], o = i[1], s = a !== e.defaultWidth, c = o !== e.defaultHeight; - (t ? s || c : r ? s : n && c) && (e.d_numToleratedItems = e.numToleratedItems, e.defaultWidth = a, e.defaultHeight = o, e.defaultContentWidth = fl(e.content), e.defaultContentHeight = ol(e.content), e.init()); + if (dl(e.element)) { + var t = e.isBoth(), n = e.isVertical(), r = e.isHorizontal(), i = [sl(e.element), tl(e.element)], a = i[0], o = i[1], s = a !== e.defaultWidth, c = o !== e.defaultHeight; + (t ? s || c : r ? s : n && c) && (e.d_numToleratedItems = e.numToleratedItems, e.defaultWidth = a, e.defaultHeight = o, e.defaultContentWidth = sl(e.content), e.defaultContentHeight = tl(e.content), e.init()); } }, this.resizeDelay); }, @@ -8439,7 +8361,7 @@ var Cm = { }, getLoaderOptions: function(e, t) { var n = this.loaderArr.length; - return ym({ + return mm({ index: e, count: n, first: e === 0, @@ -8455,7 +8377,7 @@ var Cm = { return this.step && !this.lazy ? this.page !== this.getPageByFirst(e ?? this.first) : !0; }, setContentEl: function(e) { - this.content = e || this.content || nl(this.element, "[data-pc-section=\"content\"]"); + this.content = e || this.content || Zc(this.element, "[data-pc-section=\"content\"]"); }, elementRef: function(e) { this.element = e; @@ -8499,15 +8421,15 @@ var Cm = { return this.columns; } }, - components: { SpinnerIcon: Sd } -}, wm = ["tabindex"]; -function Tm(e, t, n, r, i, a) { + components: { SpinnerIcon: _d } +}, ym = ["tabindex"]; +function bm(e, t, n, r, i, a) { var o = F("SpinnerIcon"); - return e.disabled ? (z(), B(L, { key: 1 }, [I(e.$slots, "default"), I(e.$slots, "content", { + return e.disabled ? (R(), z(L, { key: 1 }, [I(e.$slots, "default"), I(e.$slots, "content", { items: e.items, rows: e.items, columns: a.loadedColumns - })], 64)) : (z(), B("div", G({ + })], 64)) : (R(), z("div", W({ key: 0, ref: a.elementRef, class: a.containerClass, @@ -8533,11 +8455,11 @@ function Tm(e, t, n, r, i, a) { horizontal: a.isHorizontal(), both: a.isBoth() }, function() { - return [H("div", G({ + return [V("div", W({ ref: a.contentRef, class: a.contentClass, style: i.contentStyle - }, e.ptm("content")), [(z(!0), B(L, null, _i(a.loadedItems, function(t, n) { + }, e.ptm("content")), [(R(!0), z(L, null, mi(a.loadedItems, function(t, n) { return I(e.$slots, "item", { key: n, item: t, @@ -8545,30 +8467,30 @@ function Tm(e, t, n, r, i, a) { }); }), 128))], 16)]; }), - e.showSpacer ? (z(), B("div", G({ + e.showSpacer ? (R(), z("div", W({ key: 0, class: "p-virtualscroller-spacer", style: i.spacerStyle - }, e.ptm("spacer")), null, 16)) : W("", !0), - !e.loaderDisabled && e.showLoader && i.d_loading ? (z(), B("div", G({ + }, e.ptm("spacer")), null, 16)) : U("", !0), + !e.loaderDisabled && e.showLoader && i.d_loading ? (R(), z("div", W({ key: 1, class: a.loaderClass - }, e.ptm("loader")), [e.$slots && e.$slots.loader ? (z(!0), B(L, { key: 0 }, _i(i.loaderArr, function(t, n) { + }, e.ptm("loader")), [e.$slots && e.$slots.loader ? (R(!0), z(L, { key: 0 }, mi(i.loaderArr, function(t, n) { return I(e.$slots, "loader", { key: n, options: a.getLoaderOptions(n, a.isBoth() && { numCols: e.d_numItemsInViewport.cols }) }); - }), 128)) : W("", !0), I(e.$slots, "loadingicon", {}, function() { - return [U(o, G({ + }), 128)) : U("", !0), I(e.$slots, "loadingicon", {}, function() { + return [H(o, W({ spin: "", class: "p-virtualscroller-loading-icon" }, e.ptm("loadingIcon")), null, 16)]; - })], 16)) : W("", !0) - ], 16, wm)); + })], 16)) : U("", !0) + ], 16, ym)); } -Cm.render = Tm; +vm.render = bm; // node_modules/primevue/select/style/index.mjs -var Em = X.extend({ +var xm = X.extend({ name: "select", style: "\n .p-select {\n display: inline-flex;\n cursor: pointer;\n position: relative;\n user-select: none;\n background: dt('select.background');\n border: 1px solid dt('select.border.color');\n transition:\n background dt('select.transition.duration'),\n color dt('select.transition.duration'),\n border-color dt('select.transition.duration'),\n outline-color dt('select.transition.duration'),\n box-shadow dt('select.transition.duration');\n border-radius: dt('select.border.radius');\n outline-color: transparent;\n box-shadow: dt('select.shadow');\n }\n\n .p-select:not(.p-disabled):hover {\n border-color: dt('select.hover.border.color');\n }\n\n .p-select:not(.p-disabled).p-focus {\n border-color: dt('select.focus.border.color');\n box-shadow: dt('select.focus.ring.shadow');\n outline: dt('select.focus.ring.width') dt('select.focus.ring.style') dt('select.focus.ring.color');\n outline-offset: dt('select.focus.ring.offset');\n }\n\n .p-select.p-variant-filled {\n background: dt('select.filled.background');\n }\n\n .p-select.p-variant-filled:not(.p-disabled):hover {\n background: dt('select.filled.hover.background');\n }\n\n .p-select.p-variant-filled:not(.p-disabled).p-focus {\n background: dt('select.filled.focus.background');\n }\n\n .p-select.p-invalid {\n border-color: dt('select.invalid.border.color');\n }\n\n .p-select.p-disabled {\n opacity: 1;\n background: dt('select.disabled.background');\n }\n\n .p-select-clear-icon {\n align-self: center;\n color: dt('select.clear.icon.color');\n inset-inline-end: dt('select.dropdown.width');\n }\n\n .p-select-dropdown {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: transparent;\n color: dt('select.dropdown.color');\n width: dt('select.dropdown.width');\n border-start-end-radius: dt('select.border.radius');\n border-end-end-radius: dt('select.border.radius');\n }\n\n .p-select-label {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n flex: 1 1 auto;\n width: 1%;\n padding: dt('select.padding.y') dt('select.padding.x');\n text-overflow: ellipsis;\n cursor: pointer;\n color: dt('select.color');\n background: transparent;\n border: 0 none;\n outline: 0 none;\n font-size: 1rem;\n }\n\n .p-select-label.p-placeholder {\n color: dt('select.placeholder.color');\n }\n\n .p-select.p-invalid .p-select-label.p-placeholder {\n color: dt('select.invalid.placeholder.color');\n }\n\n .p-select.p-disabled .p-select-label {\n color: dt('select.disabled.color');\n }\n\n .p-select-label-empty {\n overflow: hidden;\n opacity: 0;\n }\n\n input.p-select-label {\n cursor: default;\n }\n\n .p-select-overlay {\n position: absolute;\n top: 0;\n left: 0;\n background: dt('select.overlay.background');\n color: dt('select.overlay.color');\n border: 1px solid dt('select.overlay.border.color');\n border-radius: dt('select.overlay.border.radius');\n box-shadow: dt('select.overlay.shadow');\n min-width: 100%;\n transform-origin: inherit;\n will-change: transform;\n }\n\n .p-select-header {\n padding: dt('select.list.header.padding');\n }\n\n .p-select-filter {\n width: 100%;\n }\n\n .p-select-list-container {\n overflow: auto;\n }\n\n .p-select-option-group {\n cursor: auto;\n margin: 0;\n padding: dt('select.option.group.padding');\n background: dt('select.option.group.background');\n color: dt('select.option.group.color');\n font-weight: dt('select.option.group.font.weight');\n }\n\n .p-select-list {\n margin: 0;\n padding: 0;\n list-style-type: none;\n padding: dt('select.list.padding');\n gap: dt('select.list.gap');\n display: flex;\n flex-direction: column;\n }\n\n .p-select-option {\n cursor: pointer;\n font-weight: normal;\n white-space: nowrap;\n position: relative;\n overflow: hidden;\n display: flex;\n align-items: center;\n padding: dt('select.option.padding');\n border: 0 none;\n color: dt('select.option.color');\n background: transparent;\n transition:\n background dt('select.transition.duration'),\n color dt('select.transition.duration'),\n border-color dt('select.transition.duration'),\n box-shadow dt('select.transition.duration'),\n outline-color dt('select.transition.duration');\n border-radius: dt('select.option.border.radius');\n }\n\n .p-select-option:not(.p-select-option-selected):not(.p-disabled).p-focus {\n background: dt('select.option.focus.background');\n color: dt('select.option.focus.color');\n }\n\n .p-select-option:not(.p-select-option-selected):not(.p-disabled):hover {\n background: dt('select.option.focus.background');\n color: dt('select.option.focus.color');\n }\n\n .p-select-option.p-select-option-selected {\n background: dt('select.option.selected.background');\n color: dt('select.option.selected.color');\n }\n\n .p-select-option.p-select-option-selected.p-focus {\n background: dt('select.option.selected.focus.background');\n color: dt('select.option.selected.focus.color');\n }\n \n .p-select-option-blank-icon {\n flex-shrink: 0;\n }\n\n .p-select-option-check-icon {\n position: relative;\n flex-shrink: 0;\n margin-inline-start: dt('select.checkmark.gutter.start');\n margin-inline-end: dt('select.checkmark.gutter.end');\n color: dt('select.checkmark.color');\n }\n\n .p-select-empty-message {\n padding: dt('select.empty.message.padding');\n }\n\n .p-select-fluid {\n display: flex;\n width: 100%;\n }\n\n .p-select-sm .p-select-label {\n font-size: dt('select.sm.font.size');\n padding-block: dt('select.sm.padding.y');\n padding-inline: dt('select.sm.padding.x');\n }\n\n .p-select-sm .p-select-dropdown .p-icon {\n font-size: dt('select.sm.font.size');\n width: dt('select.sm.font.size');\n height: dt('select.sm.font.size');\n }\n\n .p-select-lg .p-select-label {\n font-size: dt('select.lg.font.size');\n padding-block: dt('select.lg.padding.y');\n padding-inline: dt('select.lg.padding.x');\n }\n\n .p-select-lg .p-select-dropdown .p-icon {\n font-size: dt('select.lg.font.size');\n width: dt('select.lg.font.size');\n height: dt('select.lg.font.size');\n }\n\n .p-floatlabel-in .p-select-filter {\n padding-block-start: dt('select.padding.y');\n padding-block-end: dt('select.padding.y');\n }\n", classes: { @@ -8618,9 +8540,9 @@ var Em = X.extend({ optionBlankIcon: "p-select-option-blank-icon", emptyMessage: "p-select-empty-message" } -}), Dm = { +}), Sm = { name: "BaseSelect", - extends: Hf, + extends: Lf, props: { options: Array, optionLabel: [String, Function], @@ -8786,7 +8708,7 @@ var Em = X.extend({ default: null } }, - style: Em, + style: xm, provide: function() { return { $pcSelect: this, @@ -8794,39 +8716,39 @@ var Em = X.extend({ }; } }; -function Om(e) { +function Cm(e) { "@babel/helpers - typeof"; - return Om = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return Cm = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, Om(e); + }, Cm(e); } -function km(e) { - return Nm(e) || Mm(e) || jm(e) || Am(); +function wm(e) { + return Om(e) || Dm(e) || Em(e) || Tm(); } -function Am() { +function Tm() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function jm(e, t) { +function Em(e, t) { if (e) { - if (typeof e == "string") return Pm(e, t); + if (typeof e == "string") return km(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Pm(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? km(e, t) : void 0; } } -function Mm(e) { +function Dm(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function Nm(e) { - if (Array.isArray(e)) return Pm(e); +function Om(e) { + if (Array.isArray(e)) return km(e); } -function Pm(e, t) { +function km(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function Fm(e, t) { +function Am(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); @@ -8836,42 +8758,42 @@ function Fm(e, t) { } return n; } -function Im(e) { +function jm(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] == null ? {} : arguments[t]; - t % 2 ? Fm(Object(n), !0).forEach(function(t) { - Lm(e, t, n[t]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Fm(Object(n)).forEach(function(t) { + t % 2 ? Am(Object(n), !0).forEach(function(t) { + Mm(e, t, n[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Am(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); }); } return e; } -function Lm(e, t, n) { - return (t = Rm(t)) in e ? Object.defineProperty(e, t, { +function Mm(e, t, n) { + return (t = Nm(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function Rm(e) { - var t = zm(e, "string"); - return Om(t) == "symbol" ? t : t + ""; +function Nm(e) { + var t = Pm(e, "string"); + return Cm(t) == "symbol" ? t : t + ""; } -function zm(e, t) { - if (Om(e) != "object" || !e) return e; +function Pm(e, t) { + if (Cm(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (Om(r) != "object") return r; + if (Cm(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var Bm = { +var Fm = { name: "Select", - extends: Dm, + extends: Sm, inheritAttrs: !1, emits: [ "change", @@ -8919,20 +8841,20 @@ var Bm = { this.overlayVisible && this.isModelValueChanged && this.scrollInView(this.findSelectedOptionIndex()), this.isModelValueChanged = !1; }, beforeUnmount: function() { - this.unbindOutsideClickListener(), this.unbindResizeListener(), this.unbindLabelClickListener(), this.unbindMatchMediaOrientationListener(), this.scrollHandler &&= (this.scrollHandler.destroy(), null), this.overlay &&= (Sl.clear(this.overlay), null); + this.unbindOutsideClickListener(), this.unbindResizeListener(), this.unbindLabelClickListener(), this.unbindMatchMediaOrientationListener(), this.scrollHandler &&= (this.scrollHandler.destroy(), null), this.overlay &&= (_l.clear(this.overlay), null); }, methods: { getOptionIndex: function(e, t) { return this.virtualScrollerDisabled ? e : t && t(e).index; }, getOptionLabel: function(e) { - return this.optionLabel ? fc(e, this.optionLabel) : e; + return this.optionLabel ? sc(e, this.optionLabel) : e; }, getOptionValue: function(e) { - return this.optionValue ? fc(e, this.optionValue) : e; + return this.optionValue ? sc(e, this.optionValue) : e; }, getOptionRenderKey: function(e, t) { - return (this.dataKey ? fc(e, this.dataKey) : this.getOptionLabel(e)) + "_" + t; + return (this.dataKey ? sc(e, this.dataKey) : this.getOptionLabel(e)) + "_" + t; }, getPTItemOptions: function(e, t, n, r) { return this.ptm(r, { context: { @@ -8944,16 +8866,16 @@ var Bm = { } }); }, isOptionDisabled: function(e) { - return this.optionDisabled ? fc(e, this.optionDisabled) : !1; + return this.optionDisabled ? sc(e, this.optionDisabled) : !1; }, isOptionGroup: function(e) { return this.optionGroupLabel && e.optionGroup && e.group; }, getOptionGroupLabel: function(e) { - return fc(e, this.optionGroupLabel); + return sc(e, this.optionGroupLabel); }, getOptionGroupChildren: function(e) { - return fc(e, this.optionGroupChildren); + return sc(e, this.optionGroupChildren); }, getAriaPosInset: function(e) { var t = this; @@ -8986,7 +8908,7 @@ var Bm = { var t = this; if (this.disabled) e.preventDefault(); else { - if (pl()) switch (e.code) { + if (cl()) switch (e.code) { case "Backspace": this.onBackspaceKey(e, this.editable); break; @@ -9040,7 +8962,7 @@ var Bm = { break; case "ShiftLeft": case "ShiftRight": break; - default: !n && Tc(e.key) && (!this.overlayVisible && this.show(), !this.editable && this.searchOptions(e, e.key), this.filter && this.$nextTick(function() { + default: !n && bc(e.key) && (!this.overlayVisible && this.show(), !this.editable && this.searchOptions(e, e.key), this.filter && this.$nextTick(function() { t.$refs.filterInput && J(t.$refs.filterInput.$el); })); } @@ -9058,10 +8980,10 @@ var Bm = { this.updateModel(e, null), this.resetFilterOnClear && (this.filterValue = null); }, onFirstHiddenFocus: function(e) { - J(e.relatedTarget === this.$refs.focusInput ? al(this.overlay, ":not([data-p-hidden-focusable=\"true\"])") : this.$refs.focusInput); + J(e.relatedTarget === this.$refs.focusInput ? el(this.overlay, ":not([data-p-hidden-focusable=\"true\"])") : this.$refs.focusInput); }, onLastHiddenFocus: function(e) { - J(e.relatedTarget === this.$refs.focusInput ? sl(this.overlay, ":not([data-p-hidden-focusable=\"true\"])") : this.$refs.focusInput); + J(e.relatedTarget === this.$refs.focusInput ? nl(this.overlay, ":not([data-p-hidden-focusable=\"true\"])") : this.$refs.focusInput); }, onOptionSelect: function(e, t) { var n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !0; @@ -9115,7 +9037,7 @@ var Bm = { this.overlayVisible && this.alignOverlay(); }, onOverlayClick: function(e) { - fm.emit("overlay-click", { + sm.emit("overlay-click", { originalEvent: e, target: this.$el }); @@ -9183,7 +9105,7 @@ var Bm = { }, onOverlayEnter: function(e) { var t = this; - Sl.set("overlay", e, this.$primevue.config.zIndex.overlay), qc(e, { + _l.set("overlay", e, this.$primevue.config.zIndex.overlay), Hc(e, { position: "absolute", top: "0" }), this.alignOverlay(), this.scrollInView(), this.$attrSelector && e.setAttribute(this.$attrSelector, ""), setTimeout(function() { @@ -9200,10 +9122,10 @@ var Bm = { }), this.$emit("hide"), this.overlay = null; }, onOverlayAfterLeave: function(e) { - Sl.clear(e); + _l.clear(e); }, alignOverlay: function() { - this.appendTo === "self" ? Yc(this.overlay, this.$el) : this.overlay && (this.overlay.style.minWidth = Jc(this.$el) + "px", Kc(this.overlay, this.$el)); + this.appendTo === "self" ? Wc(this.overlay, this.$el) : this.overlay && (this.overlay.style.minWidth = Uc(this.$el) + "px", Vc(this.overlay, this.$el)); }, bindOutsideClickListener: function() { var e = this; @@ -9217,7 +9139,7 @@ var Bm = { }, bindScrollListener: function() { var e = this; - this.scrollHandler ||= new kp(this.$refs.container, function() { + this.scrollHandler ||= new wp(this.$refs.container, function() { e.overlayVisible && e.hide(); }), this.scrollHandler.bindScrollListener(); }, @@ -9227,7 +9149,7 @@ var Bm = { bindResizeListener: function() { var e = this; this.resizeListener || (this.resizeListener = function() { - e.overlayVisible && !_l() && e.hide(); + e.overlayVisible && !fl() && e.hide(); }, window.addEventListener("resize", this.resizeListener)); }, unbindResizeListener: function() { @@ -9237,7 +9159,7 @@ var Bm = { var e = this; if (!this.editable && !this.labelClickListener) { var t = document.querySelector(`label[for="${this.labelId}"]`); - t && gl(t) && (this.labelClickListener = function() { + t && dl(t) && (this.labelClickListener = function() { J(e.$refs.focusInput); }, t.addEventListener("click", this.labelClickListener)); } @@ -9245,7 +9167,7 @@ var Bm = { unbindLabelClickListener: function() { if (this.labelClickListener) { var e = document.querySelector(`label[for="${this.labelId}"]`); - e && gl(e) && e.removeEventListener("click", this.labelClickListener); + e && dl(e) && e.removeEventListener("click", this.labelClickListener); } }, bindMatchMediaOrientationListener: function() { @@ -9261,7 +9183,7 @@ var Bm = { this.matchMediaOrientationListener &&= (this.queryOrientation.removeEventListener("change", this.matchMediaOrientationListener), this.queryOrientation = null, null); }, hasFocusableElements: function() { - return il(this.overlay, ":not([data-p-hidden-focusable=\"true\"])").length > 0; + return $c(this.overlay, ":not([data-p-hidden-focusable=\"true\"])").length > 0; }, isOptionExactMatched: function(e) { return this.isValidOption(e) && typeof this.getOptionLabel(e) == "string" && this.getOptionLabel(e)?.toLocaleLowerCase(this.filterLocale) == this.searchValue.toLocaleLowerCase(this.filterLocale); @@ -9276,7 +9198,7 @@ var Bm = { return this.isValidOption(e) && this.isSelected(e); }, isSelected: function(e) { - return pc(this.d_value, this.getOptionValue(e), this.equalityKey); + return cc(this.d_value, this.getOptionValue(e), this.equalityKey); }, findFirstOptionIndex: function() { var e = this; @@ -9286,7 +9208,7 @@ var Bm = { }, findLastOptionIndex: function() { var e = this; - return vc(this.visibleOptions, function(t) { + return pc(this.visibleOptions, function(t) { return e.isValidOption(t); }); }, @@ -9297,7 +9219,7 @@ var Bm = { return n > -1 ? n + e + 1 : e; }, findPrevOptionIndex: function(e) { - var t = this, n = e > 0 ? vc(this.visibleOptions.slice(0, e), function(e) { + var t = this, n = e > 0 ? pc(this.visibleOptions.slice(0, e), function(e) { return t.isValidOption(e); }) : -1; return n > -1 ? n : e; @@ -9334,7 +9256,7 @@ var Bm = { scrollInView: function() { var e = this, t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : -1; this.$nextTick(function() { - var n = t === -1 ? e.focusedOptionId : `${e.$id}_${t}`, r = nl(e.list, `li[id="${n}"]`); + var n = t === -1 ? e.focusedOptionId : `${e.$id}_${t}`, r = Zc(e.list, `li[id="${n}"]`); r ? r.scrollIntoView && r.scrollIntoView({ block: "nearest", inline: "nearest" @@ -9378,14 +9300,14 @@ var Bm = { visibleOptions: function() { var e = this, t = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || []; if (this.filterValue) { - var n = ru.filter(t, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale); + var n = Ql.filter(t, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale); if (this.optionGroupLabel) { var r = this.options || [], i = []; return r.forEach(function(t) { var r = e.getOptionGroupChildren(t).filter(function(e) { return n.includes(e); }); - r.length > 0 && i.push(Im(Im({}, t), {}, Lm({}, typeof e.optionGroupChildren == "string" ? e.optionGroupChildren : "items", km(r)))); + r.length > 0 && i.push(jm(jm({}, t), {}, Mm({}, typeof e.optionGroupChildren == "string" ? e.optionGroupChildren : "items", wm(r)))); }), this.flatOptions(i); } return n; @@ -9446,7 +9368,7 @@ var Bm = { return !this.virtualScrollerOptions; }, containerDataP: function() { - return q(Lm({ + return q(Mm({ invalid: this.$invalid, disabled: this.disabled, focus: this.focused, @@ -9455,7 +9377,7 @@ var Bm = { }, this.size, this.size)); }, labelDataP: function() { - return q(Lm(Lm({ + return q(Mm(Mm({ placeholder: !this.editable && this.label === this.placeholder, clearable: this.showClear, disabled: this.disabled, @@ -9463,27 +9385,27 @@ var Bm = { }, this.size, this.size), "empty", !this.editable && !this.$slots.value && (this.label === "p-emptylabel" || this.label.length === 0))); }, dropdownIconDataP: function() { - return q(Lm({}, this.size, this.size)); + return q(Mm({}, this.size, this.size)); }, overlayDataP: function() { - return q(Lm({}, "portal-" + this.appendTo, "portal-" + this.appendTo)); + return q(Mm({}, "portal-" + this.appendTo, "portal-" + this.appendTo)); } }, - directives: { ripple: lf }, + directives: { ripple: rf }, components: { - InputText: dp, - VirtualScroller: Cm, - Portal: pm, - InputIcon: um, - IconField: cm, - TimesIcon: em, - ChevronDownIcon: Rp, - SpinnerIcon: Sd, - SearchIcon: Kp, - CheckIcon: Tf, - BlankIcon: Ap + InputText: op, + VirtualScroller: vm, + Portal: cm, + InputIcon: am, + IconField: rm, + TimesIcon: Yp, + ChevronDownIcon: Np, + SpinnerIcon: _d, + SearchIcon: Vp, + CheckIcon: bf, + BlankIcon: Tp } -}, Vm = ["id", "data-p"], Hm = [ +}, Im = ["id", "data-p"], Lm = [ "name", "id", "value", @@ -9497,7 +9419,7 @@ var Bm = { "aria-activedescendant", "aria-invalid", "data-p" -], Um = [ +], Rm = [ "name", "id", "tabindex", @@ -9509,7 +9431,7 @@ var Bm = { "aria-invalid", "aria-disabled", "data-p" -], Wm = ["data-p"], Gm = ["id"], Km = ["id"], qm = [ +], zm = ["data-p"], Bm = ["id"], Vm = ["id"], Hm = [ "id", "aria-label", "aria-selected", @@ -9522,9 +9444,9 @@ var Bm = { "data-p-focused", "data-p-disabled" ]; -function Jm(e, t, n, r, i, a) { - var o = F("SpinnerIcon"), s = F("InputText"), c = F("SearchIcon"), l = F("InputIcon"), u = F("IconField"), d = F("CheckIcon"), f = F("BlankIcon"), p = F("VirtualScroller"), m = F("Portal"), h = mi("ripple"); - return z(), B("div", G({ +function Um(e, t, n, r, i, a) { + var o = F("SpinnerIcon"), s = F("InputText"), c = F("SearchIcon"), l = F("InputIcon"), u = F("IconField"), d = F("CheckIcon"), f = F("BlankIcon"), p = F("VirtualScroller"), m = F("Portal"), h = di("ripple"); + return R(), z("div", W({ ref: "container", id: e.$id, class: e.cx("root"), @@ -9533,7 +9455,7 @@ function Jm(e, t, n, r, i, a) { }, "data-p": a.containerDataP }, e.ptmi("root")), [ - e.editable ? (z(), B("input", G({ + e.editable ? (R(), z("input", W({ key: 0, ref: "focusInput", name: e.name, @@ -9571,7 +9493,7 @@ function Jm(e, t, n, r, i, a) { return a.onEditableInput && a.onEditableInput.apply(a, arguments); }, "data-p": a.labelDataP - }, e.ptm("label")), null, 16, Hm)) : (z(), B("span", G({ + }, e.ptm("label")), null, 16, Lm)) : (R(), z("span", W({ key: 1, ref: "focusInput", name: e.name, @@ -9606,24 +9528,24 @@ function Jm(e, t, n, r, i, a) { value: e.d_value, placeholder: e.placeholder }, function() { - return [Za(k(a.label === "p-emptylabel" ? "\xA0" : a.label ?? "empty"), 1)]; - })], 16, Um)), + return [Ja(k(a.label === "p-emptylabel" ? "\xA0" : a.label ?? "empty"), 1)]; + })], 16, Rm)), a.isClearIconVisible ? I(e.$slots, "clearicon", { key: 2, class: O(e.cx("clearIcon")), clearCallback: a.onClearClick }, function() { - return [(z(), V(pi(e.clearIcon ? "i" : "TimesIcon"), G({ + return [(R(), B(ui(e.clearIcon ? "i" : "TimesIcon"), W({ ref: "clearIcon", class: [e.cx("clearIcon"), e.clearIcon], onClick: a.onClearClick }, e.ptm("clearIcon"), { "data-pc-section": "clearicon" }), null, 16, ["class", "onClick"]))]; - }) : W("", !0), - H("div", G({ class: e.cx("dropdown") }, e.ptm("dropdown")), [e.loading ? I(e.$slots, "loadingicon", { + }) : U("", !0), + V("div", W({ class: e.cx("dropdown") }, e.ptm("dropdown")), [e.loading ? I(e.$slots, "loadingicon", { key: 0, class: O(e.cx("loadingIcon")) }, function() { - return [e.loadingIcon ? (z(), B("span", G({ + return [e.loadingIcon ? (R(), z("span", W({ key: 0, class: [ e.cx("loadingIcon"), @@ -9631,7 +9553,7 @@ function Jm(e, t, n, r, i, a) { e.loadingIcon ], "aria-hidden": "true" - }, e.ptm("loadingIcon")), null, 16)) : (z(), V(o, G({ + }, e.ptm("loadingIcon")), null, 16)) : (R(), B(o, W({ key: 1, class: e.cx("loadingIcon"), spin: "", @@ -9641,15 +9563,15 @@ function Jm(e, t, n, r, i, a) { key: 1, class: O(e.cx("dropdownIcon")) }, function() { - return [(z(), V(pi(e.dropdownIcon ? "span" : "ChevronDownIcon"), G({ + return [(R(), B(ui(e.dropdownIcon ? "span" : "ChevronDownIcon"), W({ class: [e.cx("dropdownIcon"), e.dropdownIcon], "aria-hidden": "true", "data-p": a.dropdownIconDataP }, e.ptm("dropdownIcon")), null, 16, ["class", "data-p"]))]; })], 16), - U(m, { appendTo: e.appendTo }, { + H(m, { appendTo: e.appendTo }, { default: P(function() { - return [U(Vo, G({ + return [H(Io, W({ name: "p-anchored-overlay", onEnter: a.onOverlayEnter, onAfterEnter: a.onOverlayAfterEnter, @@ -9657,7 +9579,7 @@ function Jm(e, t, n, r, i, a) { onAfterLeave: a.onOverlayAfterLeave }, e.ptm("transition")), { default: P(function() { - return [i.overlayVisible ? (z(), B("div", G({ + return [i.overlayVisible ? (R(), z("div", W({ key: 0, ref: a.overlayRef, class: [ @@ -9674,7 +9596,7 @@ function Jm(e, t, n, r, i, a) { }, "data-p": a.overlayDataP }, e.ptm("overlay")), [ - H("span", G({ + V("span", W({ ref: "firstHiddenFocusableElementOnOverlay", role: "presentation", "aria-hidden": "true", @@ -9691,15 +9613,15 @@ function Jm(e, t, n, r, i, a) { value: e.d_value, options: a.visibleOptions }), - e.filter ? (z(), B("div", G({ + e.filter ? (R(), z("div", W({ key: 0, class: e.cx("header") - }, e.ptm("header")), [U(u, { + }, e.ptm("header")), [H(u, { unstyled: e.unstyled, pt: e.ptm("pcFilterContainer") }, { default: P(function() { - return [U(s, { + return [H(s, { ref: "filterInput", type: "text", value: i.filterValue, @@ -9732,40 +9654,40 @@ function Jm(e, t, n, r, i, a) { "onBlur", "onInput", "pt" - ]), U(l, { + ]), H(l, { unstyled: e.unstyled, pt: e.ptm("pcFilterIconContainer") }, { default: P(function() { return [I(e.$slots, "filtericon", {}, function() { - return [e.filterIcon ? (z(), B("span", G({ + return [e.filterIcon ? (R(), z("span", W({ key: 0, class: e.filterIcon - }, e.ptm("filterIcon")), null, 16)) : (z(), V(c, _e(G({ key: 1 }, e.ptm("filterIcon"))), null, 16))]; + }, e.ptm("filterIcon")), null, 16)) : (R(), B(c, _e(W({ key: 1 }, e.ptm("filterIcon"))), null, 16))]; })]; }), _: 3 }, 8, ["unstyled", "pt"])]; }), _: 3 - }, 8, ["unstyled", "pt"]), H("span", G({ + }, 8, ["unstyled", "pt"]), V("span", W({ role: "status", "aria-live": "polite", class: "p-hidden-accessible" - }, e.ptm("hiddenFilterResult"), { "data-p-hidden-accessible": !0 }), k(a.filterResultMessageText), 17)], 16)) : W("", !0), - H("div", G({ + }, e.ptm("hiddenFilterResult"), { "data-p-hidden-accessible": !0 }), k(a.filterResultMessageText), 17)], 16)) : U("", !0), + V("div", W({ class: e.cx("listContainer"), style: { "max-height": a.virtualScrollerDisabled ? e.scrollHeight : "" } - }, e.ptm("listContainer")), [U(p, G({ ref: a.virtualScrollerRef }, e.virtualScrollerOptions, { + }, e.ptm("listContainer")), [H(p, W({ ref: a.virtualScrollerRef }, e.virtualScrollerOptions, { items: a.visibleOptions, style: { height: e.scrollHeight }, tabindex: -1, disabled: a.virtualScrollerDisabled, pt: e.ptm("virtualScroller") - }), vi({ + }), hi({ content: P(function(n) { var r = n.styleClass, o = n.contentRef, s = n.items, c = n.getItemOptions, l = n.contentStyle, u = n.itemSize; - return [H("ul", G({ + return [V("ul", W({ ref: function(e) { return a.listRef(e, o); }, @@ -9773,8 +9695,8 @@ function Jm(e, t, n, r, i, a) { class: [e.cx("list"), r], style: l, role: "listbox" - }, e.ptm("list")), [(z(!0), B(L, null, _i(s, function(n, r) { - return z(), B(L, { key: a.getOptionRenderKey(n, a.getOptionIndex(r, c)) }, [a.isOptionGroup(n) ? (z(), B("li", G({ + }, e.ptm("list")), [(R(!0), z(L, null, mi(s, function(n, r) { + return R(), z(L, { key: a.getOptionRenderKey(n, a.getOptionIndex(r, c)) }, [a.isOptionGroup(n) ? (R(), z("li", W({ key: 0, id: e.$id + "_" + a.getOptionIndex(r, c), style: { height: u ? u + "px" : void 0 }, @@ -9784,8 +9706,8 @@ function Jm(e, t, n, r, i, a) { option: n.optionGroup, index: a.getOptionIndex(r, c) }, function() { - return [H("span", G({ class: e.cx("optionGroupLabel") }, { ref_for: !0 }, e.ptm("optionGroupLabel")), k(a.getOptionGroupLabel(n.optionGroup)), 17)]; - })], 16, Km)) : qn((z(), B("li", G({ + return [V("span", W({ class: e.cx("optionGroupLabel") }, { ref_for: !0 }, e.ptm("optionGroupLabel")), k(a.getOptionGroupLabel(n.optionGroup)), 17)]; + })], 16, Vm)) : Wn((R(), z("li", W({ key: 1, id: e.$id + "_" + a.getOptionIndex(r, c), class: e.cx("option", { @@ -9805,36 +9727,36 @@ function Jm(e, t, n, r, i, a) { onMousemove: function(e) { return a.onOptionMouseMove(e, a.getOptionIndex(r, c)); }, - onClick: t[8] ||= qs(function() {}, ["stop"]), + onClick: t[8] ||= Hs(function() {}, ["stop"]), "data-p-selected": !e.checkmark && a.isSelected(n), "data-p-focused": i.focusedOptionIndex === a.getOptionIndex(r, c), "data-p-disabled": a.isOptionDisabled(n) - }, { ref_for: !0 }, a.getPTItemOptions(n, c, r, "option")), [e.checkmark ? (z(), B(L, { key: 0 }, [a.isSelected(n) ? (z(), V(d, G({ + }, { ref_for: !0 }, a.getPTItemOptions(n, c, r, "option")), [e.checkmark ? (R(), z(L, { key: 0 }, [a.isSelected(n) ? (R(), B(d, W({ key: 0, class: e.cx("optionCheckIcon") - }, { ref_for: !0 }, e.ptm("optionCheckIcon")), null, 16, ["class"])) : (z(), V(f, G({ + }, { ref_for: !0 }, e.ptm("optionCheckIcon")), null, 16, ["class"])) : (R(), B(f, W({ key: 1, class: e.cx("optionBlankIcon") - }, { ref_for: !0 }, e.ptm("optionBlankIcon")), null, 16, ["class"]))], 64)) : W("", !0), I(e.$slots, "option", { + }, { ref_for: !0 }, e.ptm("optionBlankIcon")), null, 16, ["class"]))], 64)) : U("", !0), I(e.$slots, "option", { option: n, selected: a.isSelected(n), index: a.getOptionIndex(r, c) }, function() { - return [H("span", G({ class: e.cx("optionLabel") }, { ref_for: !0 }, e.ptm("optionLabel")), k(a.getOptionLabel(n)), 17)]; - })], 16, qm)), [[h]])], 64); - }), 128)), i.filterValue && (!s || s && s.length === 0) ? (z(), B("li", G({ + return [V("span", W({ class: e.cx("optionLabel") }, { ref_for: !0 }, e.ptm("optionLabel")), k(a.getOptionLabel(n)), 17)]; + })], 16, Hm)), [[h]])], 64); + }), 128)), i.filterValue && (!s || s && s.length === 0) ? (R(), z("li", W({ key: 0, class: e.cx("emptyMessage"), role: "option" }, e.ptm("emptyMessage"), { "data-p-hidden-accessible": !0 }), [I(e.$slots, "emptyfilter", {}, function() { - return [Za(k(a.emptyFilterMessageText), 1)]; - })], 16)) : !e.options || e.options && e.options.length === 0 ? (z(), B("li", G({ + return [Ja(k(a.emptyFilterMessageText), 1)]; + })], 16)) : !e.options || e.options && e.options.length === 0 ? (R(), z("li", W({ key: 1, class: e.cx("emptyMessage"), role: "option" }, e.ptm("emptyMessage"), { "data-p-hidden-accessible": !0 }), [I(e.$slots, "empty", {}, function() { - return [Za(k(a.emptyMessageText), 1)]; - })], 16)) : W("", !0)], 16, Gm)]; + return [Ja(k(a.emptyMessageText), 1)]; + })], 16)) : U("", !0)], 16, Bm)]; }), _: 2 }, [e.$slots.loader ? { @@ -9854,18 +9776,18 @@ function Jm(e, t, n, r, i, a) { value: e.d_value, options: a.visibleOptions }), - !e.options || e.options && e.options.length === 0 ? (z(), B("span", G({ + !e.options || e.options && e.options.length === 0 ? (R(), z("span", W({ key: 1, role: "status", "aria-live": "polite", class: "p-hidden-accessible" - }, e.ptm("hiddenEmptyMessage"), { "data-p-hidden-accessible": !0 }), k(a.emptyMessageText), 17)) : W("", !0), - H("span", G({ + }, e.ptm("hiddenEmptyMessage"), { "data-p-hidden-accessible": !0 }), k(a.emptyMessageText), 17)) : U("", !0), + V("span", W({ role: "status", "aria-live": "polite", class: "p-hidden-accessible" }, e.ptm("hiddenSelectedMessage"), { "data-p-hidden-accessible": !0 }), k(a.selectedMessageText), 17), - H("span", G({ + V("span", W({ ref: "lastHiddenFocusableElementOnOverlay", role: "presentation", "aria-hidden": "true", @@ -9878,7 +9800,7 @@ function Jm(e, t, n, r, i, a) { "data-p-hidden-accessible": !0, "data-p-hidden-focusable": !0 }), null, 16) - ], 16, Wm)) : W("", !0)]; + ], 16, zm)) : U("", !0)]; }), _: 3 }, 16, [ @@ -9890,11 +9812,11 @@ function Jm(e, t, n, r, i, a) { }), _: 3 }, 8, ["appendTo"]) - ], 16, Vm); + ], 16, Im); } -Bm.render = Jm; +Fm.render = Um; // node_modules/primevue/togglebutton/style/index.mjs -var Ym = X.extend({ +var Wm = X.extend({ name: "togglebutton", style: "\n .p-togglebutton {\n display: inline-flex;\n cursor: pointer;\n user-select: none;\n overflow: hidden;\n position: relative;\n color: dt('togglebutton.color');\n background: dt('togglebutton.background');\n border: 1px solid dt('togglebutton.border.color');\n padding: dt('togglebutton.padding');\n font-size: 1rem;\n font-family: inherit;\n font-feature-settings: inherit;\n transition:\n background dt('togglebutton.transition.duration'),\n color dt('togglebutton.transition.duration'),\n border-color dt('togglebutton.transition.duration'),\n outline-color dt('togglebutton.transition.duration'),\n box-shadow dt('togglebutton.transition.duration');\n border-radius: dt('togglebutton.border.radius');\n outline-color: transparent;\n font-weight: dt('togglebutton.font.weight');\n }\n\n .p-togglebutton-content {\n display: inline-flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n gap: dt('togglebutton.gap');\n padding: dt('togglebutton.content.padding');\n background: transparent;\n border-radius: dt('togglebutton.content.border.radius');\n transition:\n background dt('togglebutton.transition.duration'),\n color dt('togglebutton.transition.duration'),\n border-color dt('togglebutton.transition.duration'),\n outline-color dt('togglebutton.transition.duration'),\n box-shadow dt('togglebutton.transition.duration');\n }\n\n .p-togglebutton:not(:disabled):not(.p-togglebutton-checked):hover {\n background: dt('togglebutton.hover.background');\n color: dt('togglebutton.hover.color');\n }\n\n .p-togglebutton.p-togglebutton-checked {\n background: dt('togglebutton.checked.background');\n border-color: dt('togglebutton.checked.border.color');\n color: dt('togglebutton.checked.color');\n }\n\n .p-togglebutton-checked .p-togglebutton-content {\n background: dt('togglebutton.content.checked.background');\n box-shadow: dt('togglebutton.content.checked.shadow');\n }\n\n .p-togglebutton:focus-visible {\n box-shadow: dt('togglebutton.focus.ring.shadow');\n outline: dt('togglebutton.focus.ring.width') dt('togglebutton.focus.ring.style') dt('togglebutton.focus.ring.color');\n outline-offset: dt('togglebutton.focus.ring.offset');\n }\n\n .p-togglebutton.p-invalid {\n border-color: dt('togglebutton.invalid.border.color');\n }\n\n .p-togglebutton:disabled {\n opacity: 1;\n cursor: default;\n background: dt('togglebutton.disabled.background');\n border-color: dt('togglebutton.disabled.border.color');\n color: dt('togglebutton.disabled.color');\n }\n\n .p-togglebutton-label,\n .p-togglebutton-icon {\n position: relative;\n transition: none;\n }\n\n .p-togglebutton-icon {\n color: dt('togglebutton.icon.color');\n }\n\n .p-togglebutton:not(:disabled):not(.p-togglebutton-checked):hover .p-togglebutton-icon {\n color: dt('togglebutton.icon.hover.color');\n }\n\n .p-togglebutton.p-togglebutton-checked .p-togglebutton-icon {\n color: dt('togglebutton.icon.checked.color');\n }\n\n .p-togglebutton:disabled .p-togglebutton-icon {\n color: dt('togglebutton.icon.disabled.color');\n }\n\n .p-togglebutton-sm {\n padding: dt('togglebutton.sm.padding');\n font-size: dt('togglebutton.sm.font.size');\n }\n\n .p-togglebutton-sm .p-togglebutton-content {\n padding: dt('togglebutton.content.sm.padding');\n }\n\n .p-togglebutton-lg {\n padding: dt('togglebutton.lg.padding');\n font-size: dt('togglebutton.lg.font.size');\n }\n\n .p-togglebutton-lg .p-togglebutton-content {\n padding: dt('togglebutton.content.lg.padding');\n }\n\n .p-togglebutton-fluid {\n width: 100%;\n }\n", classes: { @@ -9912,9 +9834,9 @@ var Ym = X.extend({ icon: "p-togglebutton-icon", label: "p-togglebutton-label" } -}), Xm = { +}), Gm = { name: "BaseToggleButton", - extends: Vf, + extends: If, props: { onIcon: String, offIcon: String, @@ -9951,7 +9873,7 @@ var Ym = X.extend({ default: null } }, - style: Ym, + style: Wm, provide: function() { return { $pcToggleButton: this, @@ -9959,39 +9881,39 @@ var Ym = X.extend({ }; } }; -function Zm(e) { +function Km(e) { "@babel/helpers - typeof"; - return Zm = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return Km = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, Zm(e); + }, Km(e); } -function Qm(e, t, n) { - return (t = $m(t)) in e ? Object.defineProperty(e, t, { +function qm(e, t, n) { + return (t = Jm(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function $m(e) { - var t = eh(e, "string"); - return Zm(t) == "symbol" ? t : t + ""; +function Jm(e) { + var t = Ym(e, "string"); + return Km(t) == "symbol" ? t : t + ""; } -function eh(e, t) { - if (Zm(e) != "object" || !e) return e; +function Ym(e, t) { + if (Km(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (Zm(r) != "object") return r; + if (Km(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var th = { +var Xm = { name: "ToggleButton", - extends: Xm, + extends: Gm, inheritAttrs: !1, emits: ["change"], methods: { @@ -10020,14 +9942,14 @@ var th = { return this.hasLabel ? this.d_value ? this.onLabel : this.offLabel : "\xA0"; }, dataP: function() { - return q(Qm({ + return q(qm({ checked: this.active, invalid: this.$invalid }, this.size, this.size)); } }, - directives: { ripple: lf } -}, nh = [ + directives: { ripple: rf } +}, Zm = [ "tabindex", "disabled", "aria-pressed", @@ -10036,10 +9958,10 @@ var th = { "data-p-checked", "data-p-disabled", "data-p" -], rh = ["data-p"]; -function ih(e, t, n, r, i, a) { - var o = mi("ripple"); - return qn((z(), B("button", G({ +], Qm = ["data-p"]; +function $m(e, t, n, r, i, a) { + var o = di("ripple"); + return Wn((R(), z("button", W({ type: "button", class: e.cx("root"), tabindex: e.tabindex, @@ -10057,21 +9979,21 @@ function ih(e, t, n, r, i, a) { "data-p-checked": a.active, "data-p-disabled": e.disabled, "data-p": a.dataP - }), [H("span", G({ class: e.cx("content") }, a.getPTOptions("content"), { "data-p": a.dataP }), [I(e.$slots, "default", {}, function() { + }), [V("span", W({ class: e.cx("content") }, a.getPTOptions("content"), { "data-p": a.dataP }), [I(e.$slots, "default", {}, function() { return [I(e.$slots, "icon", { value: e.d_value, class: O(e.cx("icon")) }, function() { - return [e.onIcon || e.offIcon ? (z(), B("span", G({ + return [e.onIcon || e.offIcon ? (R(), z("span", W({ key: 0, class: [e.cx("icon"), e.d_value ? e.onIcon : e.offIcon] - }, a.getPTOptions("icon")), null, 16)) : W("", !0)]; - }), H("span", G({ class: e.cx("label") }, a.getPTOptions("label")), k(a.label), 17)]; - })], 16, rh)], 16, nh)), [[o]]); + }, a.getPTOptions("icon")), null, 16)) : U("", !0)]; + }), V("span", W({ class: e.cx("label") }, a.getPTOptions("label")), k(a.label), 17)]; + })], 16, Qm)], 16, Zm)), [[o]]); } -th.render = ih; +Xm.render = $m; // node_modules/primevue/tag/style/index.mjs -var ah = X.extend({ +var eh = X.extend({ name: "tag", style: "\n .p-tag {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: dt('tag.primary.background');\n color: dt('tag.primary.color');\n font-size: dt('tag.font.size');\n font-weight: dt('tag.font.weight');\n padding: dt('tag.padding');\n border-radius: dt('tag.border.radius');\n gap: dt('tag.gap');\n }\n\n .p-tag-icon {\n font-size: dt('tag.icon.size');\n width: dt('tag.icon.size');\n height: dt('tag.icon.size');\n }\n\n .p-tag-rounded {\n border-radius: dt('tag.rounded.border.radius');\n }\n\n .p-tag-success {\n background: dt('tag.success.background');\n color: dt('tag.success.color');\n }\n\n .p-tag-info {\n background: dt('tag.info.background');\n color: dt('tag.info.color');\n }\n\n .p-tag-warn {\n background: dt('tag.warn.background');\n color: dt('tag.warn.color');\n }\n\n .p-tag-danger {\n background: dt('tag.danger.background');\n color: dt('tag.danger.color');\n }\n\n .p-tag-secondary {\n background: dt('tag.secondary.background');\n color: dt('tag.secondary.color');\n }\n\n .p-tag-contrast {\n background: dt('tag.contrast.background');\n color: dt('tag.contrast.color');\n }\n", classes: { @@ -10090,16 +10012,16 @@ var ah = X.extend({ icon: "p-tag-icon", label: "p-tag-label" } -}), oh = { +}), th = { name: "BaseTag", - extends: pd, + extends: cd, props: { value: null, severity: null, rounded: Boolean, icon: String }, - style: ah, + style: eh, provide: function() { return { $pcTag: this, @@ -10107,158 +10029,158 @@ var ah = X.extend({ }; } }; -function sh(e) { +function nh(e) { "@babel/helpers - typeof"; - return sh = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return nh = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, sh(e); + }, nh(e); } -function ch(e, t, n) { - return (t = lh(t)) in e ? Object.defineProperty(e, t, { +function rh(e, t, n) { + return (t = ih(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function lh(e) { - var t = uh(e, "string"); - return sh(t) == "symbol" ? t : t + ""; +function ih(e) { + var t = ah(e, "string"); + return nh(t) == "symbol" ? t : t + ""; } -function uh(e, t) { - if (sh(e) != "object" || !e) return e; +function ah(e, t) { + if (nh(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (sh(r) != "object") return r; + if (nh(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var dh = { +var oh = { name: "Tag", - extends: oh, + extends: th, inheritAttrs: !1, computed: { dataP: function() { - return q(ch({ rounded: this.rounded }, this.severity, this.severity)); + return q(rh({ rounded: this.rounded }, this.severity, this.severity)); } } -}, fh = ["data-p"]; -function ph(e, t, n, r, i, a) { - return z(), B("span", G({ +}, sh = ["data-p"]; +function ch(e, t, n, r, i, a) { + return R(), z("span", W({ class: e.cx("root"), "data-p": a.dataP - }, e.ptmi("root")), [e.$slots.icon ? (z(), V(pi(e.$slots.icon), G({ + }, e.ptmi("root")), [e.$slots.icon ? (R(), B(ui(e.$slots.icon), W({ key: 0, class: e.cx("icon") - }, e.ptm("icon")), null, 16, ["class"])) : e.icon ? (z(), B("span", G({ + }, e.ptm("icon")), null, 16, ["class"])) : e.icon ? (R(), z("span", W({ key: 1, class: [e.cx("icon"), e.icon] - }, e.ptm("icon")), null, 16)) : W("", !0), e.value != null || e.$slots.default ? I(e.$slots, "default", { key: 2 }, function() { - return [H("span", G({ class: e.cx("label") }, e.ptm("label")), k(e.value), 17)]; - }) : W("", !0)], 16, fh); + }, e.ptm("icon")), null, 16)) : U("", !0), e.value != null || e.$slots.default ? I(e.$slots, "default", { key: 2 }, function() { + return [V("span", W({ class: e.cx("label") }, e.ptm("label")), k(e.value), 17)]; + }) : U("", !0)], 16, sh); } -dh.render = ph; +oh.render = ch; // node_modules/@primevue/icons/windowmaximize/index.mjs -var mh = { +var lh = { name: "WindowMaximizeIcon", - extends: xd + extends: gd }; -function hh(e) { - return yh(e) || vh(e) || _h(e) || gh(); +function uh(e) { + return mh(e) || ph(e) || fh(e) || dh(); } -function gh() { +function dh() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _h(e, t) { +function fh(e, t) { if (e) { - if (typeof e == "string") return bh(e, t); + if (typeof e == "string") return hh(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? bh(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? hh(e, t) : void 0; } } -function vh(e) { +function ph(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function yh(e) { - if (Array.isArray(e)) return bh(e); +function mh(e) { + if (Array.isArray(e)) return hh(e); } -function bh(e, t) { +function hh(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function xh(e, t, n, r, i, a) { - return z(), B("svg", G({ +function gh(e, t, n, r, i, a) { + return R(), z("svg", W({ width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" - }, e.pti()), hh(t[0] ||= [H("path", { + }, e.pti()), uh(t[0] ||= [V("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14ZM9.77805 7.42192C9.89013 7.534 10.0415 7.59788 10.2 7.59995C10.3585 7.59788 10.5099 7.534 10.622 7.42192C10.7341 7.30985 10.798 7.15844 10.8 6.99995V3.94242C10.8066 3.90505 10.8096 3.86689 10.8089 3.82843C10.8079 3.77159 10.7988 3.7157 10.7824 3.6623C10.756 3.55552 10.701 3.45698 10.622 3.37798C10.5099 3.2659 10.3585 3.20202 10.2 3.19995H7.00002C6.84089 3.19995 6.68828 3.26317 6.57576 3.37569C6.46324 3.48821 6.40002 3.64082 6.40002 3.79995C6.40002 3.95908 6.46324 4.11169 6.57576 4.22422C6.68828 4.33674 6.84089 4.39995 7.00002 4.39995H8.80006L6.19997 7.00005C6.10158 7.11005 6.04718 7.25246 6.04718 7.40005C6.04718 7.54763 6.10158 7.69004 6.19997 7.80005C6.30202 7.91645 6.44561 7.98824 6.59997 8.00005C6.75432 7.98824 6.89791 7.91645 6.99997 7.80005L9.60002 5.26841V6.99995C9.6021 7.15844 9.66598 7.30985 9.77805 7.42192ZM1.4 14H3.8C4.17066 13.9979 4.52553 13.8498 4.78763 13.5877C5.04973 13.3256 5.1979 12.9707 5.2 12.6V10.2C5.1979 9.82939 5.04973 9.47452 4.78763 9.21242C4.52553 8.95032 4.17066 8.80215 3.8 8.80005H1.4C1.02934 8.80215 0.674468 8.95032 0.412371 9.21242C0.150274 9.47452 0.00210008 9.82939 0 10.2V12.6C0.00210008 12.9707 0.150274 13.3256 0.412371 13.5877C0.674468 13.8498 1.02934 13.9979 1.4 14ZM1.25858 10.0586C1.29609 10.0211 1.34696 10 1.4 10H3.8C3.85304 10 3.90391 10.0211 3.94142 10.0586C3.97893 10.0961 4 10.147 4 10.2V12.6C4 12.6531 3.97893 12.704 3.94142 12.7415C3.90391 12.779 3.85304 12.8 3.8 12.8H1.4C1.34696 12.8 1.29609 12.779 1.25858 12.7415C1.22107 12.704 1.2 12.6531 1.2 12.6V10.2C1.2 10.147 1.22107 10.0961 1.25858 10.0586Z", fill: "currentColor" }, null, -1)]), 16); } -mh.render = xh; +lh.render = gh; // node_modules/@primevue/icons/windowminimize/index.mjs -var Sh = { +var _h = { name: "WindowMinimizeIcon", - extends: xd + extends: gd }; -function Ch(e) { - return Dh(e) || Eh(e) || Th(e) || wh(); +function vh(e) { + return Sh(e) || xh(e) || bh(e) || yh(); } -function wh() { +function yh() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function Th(e, t) { +function bh(e, t) { if (e) { - if (typeof e == "string") return Oh(e, t); + if (typeof e == "string") return Ch(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Oh(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Ch(e, t) : void 0; } } -function Eh(e) { +function xh(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function Dh(e) { - if (Array.isArray(e)) return Oh(e); +function Sh(e) { + if (Array.isArray(e)) return Ch(e); } -function Oh(e, t) { +function Ch(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function kh(e, t, n, r, i, a) { - return z(), B("svg", G({ +function wh(e, t, n, r, i, a) { + return R(), z("svg", W({ width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" - }, e.pti()), Ch(t[0] ||= [H("path", { + }, e.pti()), vh(t[0] ||= [V("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0ZM6.368 7.952C6.44137 7.98326 6.52025 7.99958 6.6 8H9.8C9.95913 8 10.1117 7.93678 10.2243 7.82426C10.3368 7.71174 10.4 7.55913 10.4 7.4C10.4 7.24087 10.3368 7.08826 10.2243 6.97574C10.1117 6.86321 9.95913 6.8 9.8 6.8H8.048L10.624 4.224C10.73 4.11026 10.7877 3.95982 10.7849 3.80438C10.7822 3.64894 10.7192 3.50063 10.6093 3.3907C10.4994 3.28077 10.3511 3.2178 10.1956 3.21506C10.0402 3.21232 9.88974 3.27002 9.776 3.376L7.2 5.952V4.2C7.2 4.04087 7.13679 3.88826 7.02426 3.77574C6.91174 3.66321 6.75913 3.6 6.6 3.6C6.44087 3.6 6.28826 3.66321 6.17574 3.77574C6.06321 3.88826 6 4.04087 6 4.2V7.4C6.00042 7.47975 6.01674 7.55862 6.048 7.632C6.07656 7.70442 6.11971 7.7702 6.17475 7.82524C6.2298 7.88029 6.29558 7.92344 6.368 7.952ZM1.4 8.80005H3.8C4.17066 8.80215 4.52553 8.95032 4.78763 9.21242C5.04973 9.47452 5.1979 9.82939 5.2 10.2V12.6C5.1979 12.9707 5.04973 13.3256 4.78763 13.5877C4.52553 13.8498 4.17066 13.9979 3.8 14H1.4C1.02934 13.9979 0.674468 13.8498 0.412371 13.5877C0.150274 13.3256 0.00210008 12.9707 0 12.6V10.2C0.00210008 9.82939 0.150274 9.47452 0.412371 9.21242C0.674468 8.95032 1.02934 8.80215 1.4 8.80005ZM3.94142 12.7415C3.97893 12.704 4 12.6531 4 12.6V10.2C4 10.147 3.97893 10.0961 3.94142 10.0586C3.90391 10.0211 3.85304 10 3.8 10H1.4C1.34696 10 1.29609 10.0211 1.25858 10.0586C1.22107 10.0961 1.2 10.147 1.2 10.2V12.6C1.2 12.6531 1.22107 12.704 1.25858 12.7415C1.29609 12.779 1.34696 12.8 1.4 12.8H3.8C3.85304 12.8 3.90391 12.779 3.94142 12.7415Z", fill: "currentColor" }, null, -1)]), 16); } -Sh.render = kh; +_h.render = wh; // node_modules/primevue/focustrap/style/index.mjs -var Ah = X.extend({ name: "focustrap-directive" }), jh = $.extend({ style: Ah }); -function Mh(e) { +var Th = X.extend({ name: "focustrap-directive" }), Eh = $.extend({ style: Th }); +function Dh(e) { "@babel/helpers - typeof"; - return Mh = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return Dh = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, Mh(e); + }, Dh(e); } -function Nh(e, t) { +function Oh(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); @@ -10268,40 +10190,40 @@ function Nh(e, t) { } return n; } -function Ph(e) { +function kh(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] == null ? {} : arguments[t]; - t % 2 ? Nh(Object(n), !0).forEach(function(t) { - Fh(e, t, n[t]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Nh(Object(n)).forEach(function(t) { + t % 2 ? Oh(Object(n), !0).forEach(function(t) { + Ah(e, t, n[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Oh(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); }); } return e; } -function Fh(e, t, n) { - return (t = Ih(t)) in e ? Object.defineProperty(e, t, { +function Ah(e, t, n) { + return (t = jh(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function Ih(e) { - var t = Lh(e, "string"); - return Mh(t) == "symbol" ? t : t + ""; +function jh(e) { + var t = Mh(e, "string"); + return Dh(t) == "symbol" ? t : t + ""; } -function Lh(e, t) { - if (Mh(e) != "object" || !e) return e; +function Mh(e, t) { + if (Dh(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (Mh(r) != "object") return r; + if (Dh(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var Rh = jh.extend("focustrap", { +var Nh = Eh.extend("focustrap", { mounted: function(e, t) { (t.value || {}).disabled || (this.createHiddenFocusableElements(e, t), this.bind(e, t), this.autoElementFocus(e, t)), e.setAttribute("data-pd-focustrap", !0), this.$el = e; }, @@ -10321,7 +10243,7 @@ var Rh = jh.extend("focustrap", { t.forEach(function(t) { if (t.type === "childList" && !e.contains(document.activeElement)) { var r = function(t) { - var i = hl(t) ? hl(t, n.getComputedSelector(e.$_pfocustrap_focusableselector)) ? t : al(e, n.getComputedSelector(e.$_pfocustrap_focusableselector)) : al(t); + var i = ul(t) ? ul(t, n.getComputedSelector(e.$_pfocustrap_focusableselector)) ? t : el(e, n.getComputedSelector(e.$_pfocustrap_focusableselector)) : el(t); return K(i) ? i : t.nextSibling && r(t.nextSibling); }; J(r(t.nextSibling)); @@ -10337,23 +10259,23 @@ var Rh = jh.extend("focustrap", { e.$_pfocustrap_mutationobserver && e.$_pfocustrap_mutationobserver.disconnect(), e.$_pfocustrap_focusinlistener && e.removeEventListener("focusin", e.$_pfocustrap_focusinlistener) && (e.$_pfocustrap_focusinlistener = null), e.$_pfocustrap_focusoutlistener && e.removeEventListener("focusout", e.$_pfocustrap_focusoutlistener) && (e.$_pfocustrap_focusoutlistener = null); }, autoFocus: function(e) { - this.autoElementFocus(this.$el, { value: Ph(Ph({}, e), {}, { autoFocus: !0 }) }); + this.autoElementFocus(this.$el, { value: kh(kh({}, e), {}, { autoFocus: !0 }) }); }, autoElementFocus: function(e, t) { - var n = t.value || {}, r = n.autoFocusSelector, i = r === void 0 ? "" : r, a = n.firstFocusableSelector, o = a === void 0 ? "" : a, s = n.autoFocus, c = s !== void 0 && s, l = al(e, `[autofocus]${this.getComputedSelector(i)}`); - c && !l && (l = al(e, this.getComputedSelector(o))), J(l); + var n = t.value || {}, r = n.autoFocusSelector, i = r === void 0 ? "" : r, a = n.firstFocusableSelector, o = a === void 0 ? "" : a, s = n.autoFocus, c = s !== void 0 && s, l = el(e, `[autofocus]${this.getComputedSelector(i)}`); + c && !l && (l = el(e, this.getComputedSelector(o))), J(l); }, onFirstHiddenElementFocus: function(e) { var t, n = e.currentTarget, r = e.relatedTarget; - J(r === n.$_pfocustrap_lasthiddenfocusableelement || !((t = this.$el) != null && t.contains(r)) ? al(n.parentElement, this.getComputedSelector(n.$_pfocustrap_focusableselector)) : n.$_pfocustrap_lasthiddenfocusableelement); + J(r === n.$_pfocustrap_lasthiddenfocusableelement || !((t = this.$el) != null && t.contains(r)) ? el(n.parentElement, this.getComputedSelector(n.$_pfocustrap_focusableselector)) : n.$_pfocustrap_lasthiddenfocusableelement); }, onLastHiddenElementFocus: function(e) { var t, n = e.currentTarget, r = e.relatedTarget; - J(r === n.$_pfocustrap_firsthiddenfocusableelement || !((t = this.$el) != null && t.contains(r)) ? sl(n.parentElement, this.getComputedSelector(n.$_pfocustrap_focusableselector)) : n.$_pfocustrap_firsthiddenfocusableelement); + J(r === n.$_pfocustrap_firsthiddenfocusableelement || !((t = this.$el) != null && t.contains(r)) ? nl(n.parentElement, this.getComputedSelector(n.$_pfocustrap_focusableselector)) : n.$_pfocustrap_firsthiddenfocusableelement); }, createHiddenFocusableElements: function(e, t) { var n = this, r = t.value || {}, i = r.tabIndex, a = i === void 0 ? 0 : i, o = r.firstFocusableSelector, s = o === void 0 ? "" : o, c = r.lastFocusableSelector, l = c === void 0 ? "" : c, u = function(e) { - return el("span", { + return Yc("span", { class: "p-hidden-accessible p-hidden-focusable", tabIndex: a, role: "presentation", @@ -10368,14 +10290,14 @@ var Rh = jh.extend("focustrap", { } }); // node_modules/primevue/utils/index.mjs -function zh() { - Ic({ variableName: ql("scrollbar.width").name }); +function Ph() { + jc({ variableName: Hl("scrollbar.width").name }); } -function Bh() { - Rc({ variableName: ql("scrollbar.width").name }); +function Fh() { + Nc({ variableName: Hl("scrollbar.width").name }); } // node_modules/primevue/dialog/style/index.mjs -var Vh = X.extend({ +var Ih = X.extend({ name: "dialog", style: "\n .p-dialog {\n max-height: 90%;\n transform: scale(1);\n border-radius: dt('dialog.border.radius');\n box-shadow: dt('dialog.shadow');\n background: dt('dialog.background');\n border: 1px solid dt('dialog.border.color');\n color: dt('dialog.color');\n will-change: transform;\n }\n\n .p-dialog-content {\n overflow-y: auto;\n padding: dt('dialog.content.padding');\n flex-grow: 1;\n }\n\n .p-dialog-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-shrink: 0;\n padding: dt('dialog.header.padding');\n }\n\n .p-dialog-title {\n font-weight: dt('dialog.title.font.weight');\n font-size: dt('dialog.title.font.size');\n }\n\n .p-dialog-footer {\n flex-shrink: 0;\n padding: dt('dialog.footer.padding');\n display: flex;\n justify-content: flex-end;\n gap: dt('dialog.footer.gap');\n }\n\n .p-dialog-header-actions {\n display: flex;\n align-items: center;\n gap: dt('dialog.header.gap');\n }\n\n .p-dialog-top .p-dialog,\n .p-dialog-bottom .p-dialog,\n .p-dialog-left .p-dialog,\n .p-dialog-right .p-dialog,\n .p-dialog-topleft .p-dialog,\n .p-dialog-topright .p-dialog,\n .p-dialog-bottomleft .p-dialog,\n .p-dialog-bottomright .p-dialog {\n margin: 1rem;\n }\n\n .p-dialog-maximized {\n width: 100vw !important;\n height: 100vh !important;\n top: 0px !important;\n left: 0px !important;\n max-height: 100%;\n height: 100%;\n border-radius: 0;\n }\n\n .p-dialog .p-resizable-handle {\n position: absolute;\n font-size: 0.1px;\n display: block;\n cursor: se-resize;\n width: 12px;\n height: 12px;\n right: 1px;\n bottom: 1px;\n }\n\n .p-dialog-enter-active {\n animation: p-animate-dialog-enter 300ms cubic-bezier(.19,1,.22,1);\n }\n\n .p-dialog-leave-active {\n animation: p-animate-dialog-leave 300ms cubic-bezier(.19,1,.22,1);\n }\n\n @keyframes p-animate-dialog-enter {\n from {\n opacity: 0;\n transform: scale(0.93);\n }\n }\n\n @keyframes p-animate-dialog-leave {\n to {\n opacity: 0;\n transform: scale(0.93);\n }\n }\n", classes: { @@ -10431,11 +10353,11 @@ var Vh = X.extend({ pointerEvents: "auto" } } -}), Hh = { +}), Lh = { name: "Dialog", extends: { name: "BaseDialog", - extends: pd, + extends: cd, props: { header: { type: null, @@ -10559,7 +10481,7 @@ var Vh = X.extend({ }, _instance: null }, - style: Vh, + style: Ih, provide: function() { return { $pcDialog: this, @@ -10580,7 +10502,7 @@ var Vh = X.extend({ ], provide: function() { var e = this; - return { dialogRef: To(function() { + return { dialogRef: bo(function() { return e._instance; }) }; }, @@ -10612,7 +10534,7 @@ var Vh = X.extend({ this.visible && (this.containerVisible = this.visible); }, beforeUnmount: function() { - this.unbindDocumentState(), this.unbindGlobalListeners(), this.destroyStyle(), this.mask && this.autoZIndex && Sl.clear(this.mask), this.container = null, this.mask = null; + this.unbindDocumentState(), this.unbindGlobalListeners(), this.destroyStyle(), this.mask && this.autoZIndex && _l.clear(this.mask), this.container = null, this.mask = null; }, mounted: function() { this.breakpoints && this.createStyle(); @@ -10622,19 +10544,19 @@ var Vh = X.extend({ this.$emit("update:visible", !1); }, onEnter: function() { - this.$emit("show"), this.target = document.activeElement, this.enableDocumentSettings(), this.bindGlobalListeners(), this.autoZIndex && Sl.set("modal", this.mask, this.baseZIndex || this.$primevue.config.zIndex.modal); + this.$emit("show"), this.target = document.activeElement, this.enableDocumentSettings(), this.bindGlobalListeners(), this.autoZIndex && _l.set("modal", this.mask, this.baseZIndex || this.$primevue.config.zIndex.modal); }, onAfterEnter: function() { this.focus(); }, onBeforeLeave: function() { - this.modal && !this.isUnstyled && Pc(this.mask, "p-overlay-mask-leave-active"), this.dragging && this.documentDragEndListener && this.documentDragEndListener(); + this.modal && !this.isUnstyled && kc(this.mask, "p-overlay-mask-leave-active"), this.dragging && this.documentDragEndListener && this.documentDragEndListener(); }, onLeave: function() { this.$emit("hide"), J(this.target), this.target = null, this.focusableClose = null, this.focusableMax = null; }, onAfterLeave: function() { - this.autoZIndex && Sl.clear(this.mask), this.containerVisible = !1, this.unbindDocumentState(), this.unbindGlobalListeners(), this.$emit("after-hide"); + this.autoZIndex && _l.clear(this.mask), this.containerVisible = !1, this.unbindDocumentState(), this.unbindGlobalListeners(), this.$emit("after-hide"); }, onMaskMouseDown: function(e) { this.maskMouseDownTarget = e.target; @@ -10649,13 +10571,13 @@ var Vh = X.extend({ t || (t = this.$slots.header && e(this.headerContainer), t || (t = this.$slots.default && e(this.content), t || (this.maximizable ? (this.focusableMax = !0, t = this.maximizableButton) : (this.focusableClose = !0, t = this.closeButton)))), t && J(t, { focusVisible: !0 }); }, maximize: function(e) { - this.maximized ? (this.maximized = !1, this.$emit("unmaximize", e)) : (this.maximized = !0, this.$emit("maximize", e)), this.modal || (this.maximized ? zh() : Bh()); + this.maximized ? (this.maximized = !1, this.$emit("unmaximize", e)) : (this.maximized = !0, this.$emit("maximize", e)), this.modal || (this.maximized ? Ph() : Fh()); }, enableDocumentSettings: function() { - (this.modal || !this.modal && this.blockScroll || this.maximizable && this.maximized) && zh(); + (this.modal || !this.modal && this.blockScroll || this.maximizable && this.maximized) && Ph(); }, unbindDocumentState: function() { - (this.modal || !this.modal && this.blockScroll || this.maximizable && this.maximized) && Bh(); + (this.modal || !this.modal && this.blockScroll || this.maximizable && this.maximized) && Fh(); }, onKeyDown: function(e) { e.code === "Escape" && this.closeOnEscape && !e.isComposing && this.close(); @@ -10690,7 +10612,7 @@ var Vh = X.extend({ createStyle: function() { if (!this.styleElement && !this.isUnstyled) { var e; - this.styleElement = document.createElement("style"), this.styleElement.type = "text/css", vl(this.styleElement, "nonce", (e = this.$primevue) == null || (e = e.config) == null || (e = e.csp) == null ? void 0 : e.nonce), document.head.appendChild(this.styleElement); + this.styleElement = document.createElement("style"), this.styleElement.type = "text/css", pl(this.styleElement, "nonce", (e = this.$primevue) == null || (e = e.config) == null || (e = e.csp) == null ? void 0 : e.nonce), document.head.appendChild(this.styleElement); var t = ""; for (var n in this.breakpoints) t += ` @media screen and (max-width: ${n}) { @@ -10706,7 +10628,7 @@ var Vh = X.extend({ this.styleElement &&= (document.head.removeChild(this.styleElement), null); }, initDrag: function(e) { - e.target.closest("div").getAttribute("data-pc-section") !== "headeractions" && this.draggable && (this.dragging = !0, this.lastPageX = e.pageX, this.lastPageY = e.pageY, this.container.style.margin = "0", document.body.setAttribute("data-p-unselectable-text", "true"), !this.isUnstyled && qc(document.body, { "user-select": "none" }), this.$emit("dragstart", e)); + e.target.closest("div").getAttribute("data-pc-section") !== "headeractions" && this.draggable && (this.dragging = !0, this.lastPageX = e.pageX, this.lastPageY = e.pageY, this.container.style.margin = "0", document.body.setAttribute("data-p-unselectable-text", "true"), !this.isUnstyled && Hc(document.body, { "user-select": "none" }), this.$emit("dragstart", e)); }, bindGlobalListeners: function() { this.draggable && (this.bindDocumentDragListener(), this.bindDocumentDragEndListener()), this.closeOnEscape && this.bindDocumentKeyDownListener(); @@ -10718,7 +10640,7 @@ var Vh = X.extend({ var e = this; this.documentDragListener = function(t) { if (e.dragging) { - var n = Jc(e.container), r = ll(e.container), i = t.pageX - e.lastPageX, a = t.pageY - e.lastPageY, o = e.container.getBoundingClientRect(), s = o.left + i, c = o.top + a, l = Vc(), u = getComputedStyle(e.container), d = parseFloat(u.marginLeft), f = parseFloat(u.marginTop); + var n = Uc(e.container), r = il(e.container), i = t.pageX - e.lastPageX, a = t.pageY - e.lastPageY, o = e.container.getBoundingClientRect(), s = o.left + i, c = o.top + a, l = Ic(), u = getComputedStyle(e.container), d = parseFloat(u.marginLeft), f = parseFloat(u.marginTop); e.container.style.position = "fixed", e.keepInViewport ? (s >= e.minX && s + n < l.width && (e.lastPageX = t.pageX, e.container.style.left = s - d + "px"), c >= e.minY && c + r < l.height && (e.lastPageY = t.pageY, e.container.style.top = c - f + "px")) : (e.lastPageX = t.pageX, e.container.style.left = s - d + "px", e.lastPageY = t.pageY, e.container.style.top = c - f + "px"); } }, window.document.addEventListener("mousemove", this.documentDragListener); @@ -10754,26 +10676,26 @@ var Vh = X.extend({ } }, directives: { - ripple: lf, - focustrap: Rh + ripple: rf, + focustrap: Nh }, components: { - Button: xf, - Portal: pm, - WindowMinimizeIcon: Sh, - WindowMaximizeIcon: mh, - TimesIcon: em + Button: gf, + Portal: cm, + WindowMinimizeIcon: _h, + WindowMaximizeIcon: lh, + TimesIcon: Yp } }; -function Uh(e) { +function Rh(e) { "@babel/helpers - typeof"; - return Uh = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return Rh = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, Uh(e); + }, Rh(e); } -function Wh(e, t) { +function zh(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); @@ -10783,49 +10705,49 @@ function Wh(e, t) { } return n; } -function Gh(e) { +function Bh(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] == null ? {} : arguments[t]; - t % 2 ? Wh(Object(n), !0).forEach(function(t) { - Kh(e, t, n[t]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Wh(Object(n)).forEach(function(t) { + t % 2 ? zh(Object(n), !0).forEach(function(t) { + Vh(e, t, n[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : zh(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); }); } return e; } -function Kh(e, t, n) { - return (t = qh(t)) in e ? Object.defineProperty(e, t, { +function Vh(e, t, n) { + return (t = Hh(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function qh(e) { - var t = Jh(e, "string"); - return Uh(t) == "symbol" ? t : t + ""; +function Hh(e) { + var t = Uh(e, "string"); + return Rh(t) == "symbol" ? t : t + ""; } -function Jh(e, t) { - if (Uh(e) != "object" || !e) return e; +function Uh(e, t) { + if (Rh(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (Uh(r) != "object") return r; + if (Rh(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var Yh = ["data-p"], Xh = [ +var Wh = ["data-p"], Gh = [ "aria-labelledby", "aria-modal", "data-p" -], Zh = ["id"], Qh = ["data-p"]; -function $h(e, t, n, r, i, a) { - var o = F("Button"), s = F("Portal"), c = mi("focustrap"); - return z(), V(s, { appendTo: e.appendTo }, { +], Kh = ["id"], qh = ["data-p"]; +function Jh(e, t, n, r, i, a) { + var o = F("Button"), s = F("Portal"), c = di("focustrap"); + return R(), B(s, { appendTo: e.appendTo }, { default: P(function() { - return [i.containerVisible ? (z(), B("div", G({ + return [i.containerVisible ? (R(), z("div", W({ key: 0, ref: a.maskRef, class: e.cx("mask"), @@ -10840,7 +10762,7 @@ function $h(e, t, n, r, i, a) { return a.onMaskMouseUp && a.onMaskMouseUp.apply(a, arguments); }, "data-p": a.dataP - }, e.ptm("mask")), [U(Vo, G({ + }, e.ptm("mask")), [H(Io, W({ name: "p-dialog", onEnter: a.onEnter, onAfterEnter: a.onAfterEnter, @@ -10850,7 +10772,7 @@ function $h(e, t, n, r, i, a) { appear: "" }, e.ptm("transition")), { default: P(function() { - return [e.visible ? qn((z(), B("div", G({ + return [e.visible ? Wn((R(), z("div", W({ key: 0, ref: a.containerRef, class: e.cx("root"), @@ -10866,8 +10788,8 @@ function $h(e, t, n, r, i, a) { return a.maximize(e); }, initDragCallback: a.initDrag - }) : (z(), B(L, { key: 1 }, [ - e.showHeader ? (z(), B("div", G({ + }) : (R(), z(L, { key: 1 }, [ + e.showHeader ? (R(), z("div", W({ key: 0, ref: a.headerContainerRef, class: e.cx("header"), @@ -10875,19 +10797,19 @@ function $h(e, t, n, r, i, a) { return a.initDrag && a.initDrag.apply(a, arguments); } }, e.ptm("header")), [I(e.$slots, "header", { class: O(e.cx("title")) }, function() { - return [e.header ? (z(), B("span", G({ + return [e.header ? (R(), z("span", W({ key: 0, id: a.ariaLabelledById, class: e.cx("title") - }, e.ptm("title")), k(e.header), 17, Zh)) : W("", !0)]; - }), H("div", G({ class: e.cx("headerActions") }, e.ptm("headerActions")), [e.maximizable ? I(e.$slots, "maximizebutton", { + }, e.ptm("title")), k(e.header), 17, Kh)) : U("", !0)]; + }), V("div", W({ class: e.cx("headerActions") }, e.ptm("headerActions")), [e.maximizable ? I(e.$slots, "maximizebutton", { key: 0, maximized: i.maximized, maximizeCallback: function(e) { return a.maximize(e); } }, function() { - return [U(o, G({ + return [H(o, W({ ref: a.maximizableRef, autofocus: i.focusableMax, class: e.cx("pcMaximizeButton"), @@ -10900,7 +10822,7 @@ function $h(e, t, n, r, i, a) { }), { icon: P(function(t) { return [I(e.$slots, "maximizeicon", { maximized: i.maximized }, function() { - return [(z(), V(pi(a.maximizeIconComponent), G({ class: [t.class, i.maximized ? e.minimizeIcon : e.maximizeIcon] }, e.ptm("pcMaximizeButton").icon), null, 16, ["class"]))]; + return [(R(), B(ui(a.maximizeIconComponent), W({ class: [t.class, i.maximized ? e.minimizeIcon : e.maximizeIcon] }, e.ptm("pcMaximizeButton").icon), null, 16, ["class"]))]; })]; }), _: 3 @@ -10912,11 +10834,11 @@ function $h(e, t, n, r, i, a) { "unstyled", "pt" ])]; - }) : W("", !0), e.closable ? I(e.$slots, "closebutton", { + }) : U("", !0), e.closable ? I(e.$slots, "closebutton", { key: 1, closeCallback: a.close }, function() { - return [U(o, G({ + return [H(o, W({ ref: a.closeButtonRef, autofocus: i.focusableClose, class: e.cx("pcCloseButton"), @@ -10929,7 +10851,7 @@ function $h(e, t, n, r, i, a) { }), { icon: P(function(t) { return [I(e.$slots, "closeicon", {}, function() { - return [(z(), V(pi(e.closeIcon ? "span" : "TimesIcon"), G({ class: [e.closeIcon, t.class] }, e.ptm("pcCloseButton").icon), null, 16, ["class"]))]; + return [(R(), B(ui(e.closeIcon ? "span" : "TimesIcon"), W({ class: [e.closeIcon, t.class] }, e.ptm("pcCloseButton").icon), null, 16, ["class"]))]; })]; }), _: 3 @@ -10941,21 +10863,21 @@ function $h(e, t, n, r, i, a) { "unstyled", "pt" ])]; - }) : W("", !0)], 16)], 16)) : W("", !0), - H("div", G({ + }) : U("", !0)], 16)], 16)) : U("", !0), + V("div", W({ ref: a.contentRef, class: [e.cx("content"), e.contentClass], style: e.contentStyle, "data-p": a.dataP - }, Gh(Gh({}, e.contentProps), e.ptm("content"))), [I(e.$slots, "default")], 16, Qh), - e.footer || e.$slots.footer ? (z(), B("div", G({ + }, Bh(Bh({}, e.contentProps), e.ptm("content"))), [I(e.$slots, "default")], 16, qh), + e.footer || e.$slots.footer ? (R(), z("div", W({ key: 1, ref: a.footerContainerRef, class: e.cx("footer") }, e.ptm("footer")), [I(e.$slots, "footer", {}, function() { - return [Za(k(e.footer), 1)]; - })], 16)) : W("", !0) - ], 64))], 16, Xh)), [[c, { disabled: !e.modal }]]) : W("", !0)]; + return [Ja(k(e.footer), 1)]; + })], 16)) : U("", !0) + ], 64))], 16, Gh)), [[c, { disabled: !e.modal }]]) : U("", !0)]; }), _: 3 }, 16, [ @@ -10964,14 +10886,14 @@ function $h(e, t, n, r, i, a) { "onBeforeLeave", "onLeave", "onAfterLeave" - ])], 16, Yh)) : W("", !0)]; + ])], 16, Wh)) : U("", !0)]; }), _: 3 }, 8, ["appendTo"]); } -Hh.render = $h; +Lh.render = Jh; // node_modules/primevue/menu/style/index.mjs -var eg = X.extend({ +var Yh = X.extend({ name: "menu", style: "\n .p-menu {\n background: dt('menu.background');\n color: dt('menu.color');\n border: 1px solid dt('menu.border.color');\n border-radius: dt('menu.border.radius');\n min-width: 12.5rem;\n }\n\n .p-menu-list {\n margin: 0;\n padding: dt('menu.list.padding');\n outline: 0 none;\n list-style: none;\n display: flex;\n flex-direction: column;\n gap: dt('menu.list.gap');\n }\n\n .p-menu-item-content {\n transition:\n background dt('menu.transition.duration'),\n color dt('menu.transition.duration');\n border-radius: dt('menu.item.border.radius');\n color: dt('menu.item.color');\n overflow: hidden;\n }\n\n .p-menu-item-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n color: inherit;\n padding: dt('menu.item.padding');\n gap: dt('menu.item.gap');\n user-select: none;\n outline: 0 none;\n }\n\n .p-menu-item-label {\n line-height: 1;\n }\n\n .p-menu-item-icon {\n color: dt('menu.item.icon.color');\n }\n\n .p-menu-item.p-focus .p-menu-item-content {\n color: dt('menu.item.focus.color');\n background: dt('menu.item.focus.background');\n }\n\n .p-menu-item.p-focus .p-menu-item-icon {\n color: dt('menu.item.icon.focus.color');\n }\n\n .p-menu-item:not(.p-disabled) .p-menu-item-content:hover {\n color: dt('menu.item.focus.color');\n background: dt('menu.item.focus.background');\n }\n\n .p-menu-item:not(.p-disabled) .p-menu-item-content:hover .p-menu-item-icon {\n color: dt('menu.item.icon.focus.color');\n }\n\n .p-menu-overlay {\n box-shadow: dt('menu.shadow');\n }\n\n .p-menu-submenu-label {\n background: dt('menu.submenu.label.background');\n padding: dt('menu.submenu.label.padding');\n color: dt('menu.submenu.label.color');\n font-weight: dt('menu.submenu.label.font.weight');\n }\n\n .p-menu-separator {\n border-block-start: 1px solid dt('menu.separator.border.color');\n }\n", classes: { @@ -10995,9 +10917,9 @@ var eg = X.extend({ itemIcon: "p-menu-item-icon", itemLabel: "p-menu-item-label" } -}), tg = { +}), Xh = { name: "BaseMenu", - extends: pd, + extends: cd, props: { popup: { type: Boolean, @@ -11032,17 +10954,17 @@ var eg = X.extend({ default: null } }, - style: eg, + style: Yh, provide: function() { return { $pcMenu: this, $parentInstance: this }; } -}, ng = { +}, Zh = { name: "Menuitem", hostName: "Menu", - extends: pd, + extends: cd, inheritAttrs: !1, emits: ["item-click", "item-mousemove"], props: { @@ -11054,7 +10976,7 @@ var eg = X.extend({ }, methods: { getItemProp: function(e, t) { - return e && e.item ? yc(e.item[t]) : void 0; + return e && e.item ? mc(e.item[t]) : void 0; }, getPTOptions: function(e) { return this.ptm(e, { context: { @@ -11096,12 +11018,12 @@ var eg = X.extend({ }, getMenuItemProps: function(e) { return { - action: G({ + action: W({ class: this.cx("itemLink"), tabindex: "-1" }, this.getPTOptions("itemLink")), - icon: G({ class: [this.cx("itemIcon"), e.icon] }, this.getPTOptions("itemIcon")), - label: G({ class: this.cx("itemLabel") }, this.getPTOptions("itemLabel")) + icon: W({ class: [this.cx("itemIcon"), e.icon] }, this.getPTOptions("itemIcon")), + label: W({ class: this.cx("itemLabel") }, this.getPTOptions("itemLabel")) }; } }, @@ -11111,18 +11033,18 @@ var eg = X.extend({ disabled: this.disabled() }); } }, - directives: { ripple: lf } -}, rg = [ + directives: { ripple: rf } +}, Qh = [ "id", "aria-label", "aria-disabled", "data-p-focused", "data-p-disabled", "data-p" -], ig = ["data-p"], ag = ["href", "target"], og = ["data-p"], sg = ["data-p"]; -function cg(e, t, n, r, i, a) { - var o = mi("ripple"); - return a.visible() ? (z(), B("li", G({ +], $h = ["data-p"], eg = ["href", "target"], tg = ["data-p"], ng = ["data-p"]; +function rg(e, t, n, r, i, a) { + var o = di("ripple"); + return a.visible() ? (R(), z("li", W({ key: 0, id: n.id, class: [e.cx("item"), n.item.class], @@ -11133,7 +11055,7 @@ function cg(e, t, n, r, i, a) { "data-p-focused": a.isItemFocused(), "data-p-disabled": a.disabled() || !1, "data-p": a.dataP - }, a.getPTOptions("item")), [H("div", G({ + }, a.getPTOptions("item")), [V("div", W({ class: e.cx("itemContent"), onClick: t[0] ||= function(e) { return a.onItemClick(e); @@ -11142,7 +11064,7 @@ function cg(e, t, n, r, i, a) { return a.onItemMouseMove(e); }, "data-p": a.dataP - }, a.getPTOptions("itemContent")), [n.templates.item ? n.templates.item ? (z(), V(pi(n.templates.item), { + }, a.getPTOptions("itemContent")), [n.templates.item ? n.templates.item ? (R(), B(ui(n.templates.item), { key: 1, item: n.item, label: a.label(), @@ -11151,53 +11073,53 @@ function cg(e, t, n, r, i, a) { "item", "label", "props" - ])) : W("", !0) : qn((z(), B("a", G({ + ])) : U("", !0) : Wn((R(), z("a", W({ key: 0, href: n.item.url, class: e.cx("itemLink"), target: n.item.target, tabindex: "-1" - }, a.getPTOptions("itemLink")), [n.templates.itemicon ? (z(), V(pi(n.templates.itemicon), { + }, a.getPTOptions("itemLink")), [n.templates.itemicon ? (R(), B(ui(n.templates.itemicon), { key: 0, item: n.item, class: O(e.cx("itemIcon")) - }, null, 8, ["item", "class"])) : n.item.icon ? (z(), B("span", G({ + }, null, 8, ["item", "class"])) : n.item.icon ? (R(), z("span", W({ key: 1, class: [e.cx("itemIcon"), n.item.icon], "data-p": a.dataP - }, a.getPTOptions("itemIcon")), null, 16, og)) : W("", !0), H("span", G({ + }, a.getPTOptions("itemIcon")), null, 16, tg)) : U("", !0), V("span", W({ class: e.cx("itemLabel"), "data-p": a.dataP - }, a.getPTOptions("itemLabel")), k(a.label()), 17, sg)], 16, ag)), [[o]])], 16, ig)], 16, rg)) : W("", !0); + }, a.getPTOptions("itemLabel")), k(a.label()), 17, ng)], 16, eg)), [[o]])], 16, $h)], 16, Qh)) : U("", !0); } -ng.render = cg; -function lg(e) { - return pg(e) || fg(e) || dg(e) || ug(); +Zh.render = rg; +function ig(e) { + return cg(e) || sg(e) || og(e) || ag(); } -function ug() { +function ag() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function dg(e, t) { +function og(e, t) { if (e) { - if (typeof e == "string") return mg(e, t); + if (typeof e == "string") return lg(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? mg(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? lg(e, t) : void 0; } } -function fg(e) { +function sg(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function pg(e) { - if (Array.isArray(e)) return mg(e); +function cg(e) { + if (Array.isArray(e)) return lg(e); } -function mg(e, t) { +function lg(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -var hg = { +var ug = { name: "Menu", - extends: tg, + extends: Xh, inheritAttrs: !1, emits: [ "show", @@ -11223,7 +11145,7 @@ var hg = { this.popup || (this.bindResizeListener(), this.bindOutsideClickListener()); }, beforeUnmount: function() { - this.unbindResizeListener(), this.unbindOutsideClickListener(), this.scrollHandler &&= (this.scrollHandler.destroy(), null), this.target = null, this.container && this.autoZIndex && Sl.clear(this.container), this.container = null; + this.unbindResizeListener(), this.unbindOutsideClickListener(), this.scrollHandler &&= (this.scrollHandler.destroy(), null), this.target = null, this.container && this.autoZIndex && _l.clear(this.container), this.container = null; }, methods: { itemClick: function(e) { @@ -11279,29 +11201,29 @@ var hg = { this.changeFocusedOptionIndex(0), e.preventDefault(); }, onEndKey: function(e) { - this.changeFocusedOptionIndex(tl(this.container, "li[data-pc-section=\"item\"][data-p-disabled=\"false\"]").length - 1), e.preventDefault(); + this.changeFocusedOptionIndex(Xc(this.container, "li[data-pc-section=\"item\"][data-p-disabled=\"false\"]").length - 1), e.preventDefault(); }, onEnterKey: function(e) { - var t = nl(this.list, `li[id="${`${this.focusedOptionIndex}`}"]`), n = t && nl(t, "a[data-pc-section=\"itemlink\"]"); + var t = Zc(this.list, `li[id="${`${this.focusedOptionIndex}`}"]`), n = t && Zc(t, "a[data-pc-section=\"itemlink\"]"); this.popup && J(this.target), n ? n.click() : t && t.click(), e.preventDefault(); }, onSpaceKey: function(e) { this.onEnterKey(e); }, findNextOptionIndex: function(e) { - var t = lg(tl(this.container, "li[data-pc-section=\"item\"][data-p-disabled=\"false\"]")).findIndex(function(t) { + var t = ig(Xc(this.container, "li[data-pc-section=\"item\"][data-p-disabled=\"false\"]")).findIndex(function(t) { return t.id === e; }); return t > -1 ? t + 1 : 0; }, findPrevOptionIndex: function(e) { - var t = lg(tl(this.container, "li[data-pc-section=\"item\"][data-p-disabled=\"false\"]")).findIndex(function(t) { + var t = ig(Xc(this.container, "li[data-pc-section=\"item\"][data-p-disabled=\"false\"]")).findIndex(function(t) { return t.id === e; }); return t > -1 ? t - 1 : 0; }, changeFocusedOptionIndex: function(e) { - var t = tl(this.container, "li[data-pc-section=\"item\"][data-p-disabled=\"false\"]"), n = e >= t.length ? t.length - 1 : e < 0 ? 0 : e; + var t = Xc(this.container, "li[data-pc-section=\"item\"][data-p-disabled=\"false\"]"), n = e >= t.length ? t.length - 1 : e < 0 ? 0 : e; n > -1 && (this.focusedOptionIndex = t[n].getAttribute("id")); }, toggle: function(e, t) { @@ -11314,19 +11236,19 @@ var hg = { this.overlayVisible = !1, this.target = null; }, onEnter: function(e) { - qc(e, { + Hc(e, { position: "absolute", top: "0" - }), this.alignOverlay(), this.bindOutsideClickListener(), this.bindResizeListener(), this.bindScrollListener(), this.autoZIndex && Sl.set("menu", e, this.baseZIndex || this.$primevue.config.zIndex.menu), this.popup && J(this.list), this.$emit("show"); + }), this.alignOverlay(), this.bindOutsideClickListener(), this.bindResizeListener(), this.bindScrollListener(), this.autoZIndex && _l.set("menu", e, this.baseZIndex || this.$primevue.config.zIndex.menu), this.popup && J(this.list), this.$emit("show"); }, onLeave: function() { this.unbindOutsideClickListener(), this.unbindResizeListener(), this.unbindScrollListener(), this.$emit("hide"); }, onAfterLeave: function(e) { - this.autoZIndex && Sl.clear(e); + this.autoZIndex && _l.clear(e); }, alignOverlay: function() { - Kc(this.container, this.target), Jc(this.target) > Jc(this.container) && (this.container.style.minWidth = Jc(this.target) + "px"); + Vc(this.container, this.target), Uc(this.target) > Uc(this.container) && (this.container.style.minWidth = Uc(this.target) + "px"); }, bindOutsideClickListener: function() { var e = this; @@ -11340,7 +11262,7 @@ var hg = { }, bindScrollListener: function() { var e = this; - this.scrollHandler ||= new kp(this.target, function() { + this.scrollHandler ||= new wp(this.target, function() { e.overlayVisible && e.hide(); }), this.scrollHandler.bindScrollListener(); }, @@ -11350,7 +11272,7 @@ var hg = { bindResizeListener: function() { var e = this; this.resizeListener || (this.resizeListener = function() { - e.overlayVisible && !_l() && e.hide(); + e.overlayVisible && !fl() && e.hide(); }, window.addEventListener("resize", this.resizeListener)); }, unbindResizeListener: function() { @@ -11366,7 +11288,7 @@ var hg = { return typeof e.label == "function" ? e.label() : e.label; }, onOverlayClick: function(e) { - fm.emit("overlay-click", { + sm.emit("overlay-click", { originalEvent: e, target: this.target }); @@ -11387,31 +11309,31 @@ var hg = { } }, components: { - PVMenuitem: ng, - Portal: pm + PVMenuitem: Zh, + Portal: cm } -}, gg = ["id", "data-p"], _g = [ +}, dg = ["id", "data-p"], fg = [ "id", "tabindex", "aria-activedescendant", "aria-label", "aria-labelledby" -], vg = ["id"]; -function yg(e, t, n, r, i, a) { +], pg = ["id"]; +function mg(e, t, n, r, i, a) { var o = F("PVMenuitem"), s = F("Portal"); - return z(), V(s, { + return R(), B(s, { appendTo: e.appendTo, disabled: !e.popup }, { default: P(function() { - return [U(Vo, G({ + return [H(Io, W({ name: "p-anchored-overlay", onEnter: a.onEnter, onLeave: a.onLeave, onAfterLeave: a.onAfterLeave }, e.ptm("transition")), { default: P(function() { - return [!e.popup || i.overlayVisible ? (z(), B("div", G({ + return [!e.popup || i.overlayVisible ? (R(), z("div", W({ key: 0, ref: a.containerRef, id: e.$id, @@ -11421,11 +11343,11 @@ function yg(e, t, n, r, i, a) { }, "data-p": a.dataP }, e.ptmi("root")), [ - e.$slots.start ? (z(), B("div", G({ + e.$slots.start ? (R(), z("div", W({ key: 0, class: e.cx("start") - }, e.ptm("start")), [I(e.$slots, "start")], 16)) : W("", !0), - H("ul", G({ + }, e.ptm("start")), [I(e.$slots, "start")], 16)) : U("", !0), + V("ul", W({ ref: a.listRef, id: e.$id + "_list", class: e.cx("list"), @@ -11443,16 +11365,16 @@ function yg(e, t, n, r, i, a) { onKeydown: t[2] ||= function() { return a.onListKeyDown && a.onListKeyDown.apply(a, arguments); } - }, e.ptm("list")), [(z(!0), B(L, null, _i(e.model, function(t, n) { - return z(), B(L, { key: a.label(t) + n.toString() }, [t.items && a.visible(t) && !t.separator ? (z(), B(L, { key: 0 }, [t.items ? (z(), B("li", G({ + }, e.ptm("list")), [(R(!0), z(L, null, mi(e.model, function(t, n) { + return R(), z(L, { key: a.label(t) + n.toString() }, [t.items && a.visible(t) && !t.separator ? (R(), z(L, { key: 0 }, [t.items ? (R(), z("li", W({ key: 0, id: e.$id + "_" + n, class: [e.cx("submenuLabel"), t.class], role: "none" }, { ref_for: !0 }, e.ptm("submenuLabel")), [I(e.$slots, e.$slots.submenulabel ? "submenulabel" : "submenuheader", { item: t }, function() { - return [Za(k(a.label(t)), 1)]; - })], 16, vg)) : W("", !0), (z(!0), B(L, null, _i(t.items, function(r, i) { - return z(), B(L, { key: r.label + n + "_" + i }, [a.visible(r) && !r.separator ? (z(), V(o, { + return [Ja(k(a.label(t)), 1)]; + })], 16, pg)) : U("", !0), (R(!0), z(L, null, mi(t.items, function(r, i) { + return R(), z(L, { key: r.label + n + "_" + i }, [a.visible(r) && !r.separator ? (R(), B(o, { key: 0, id: e.$id + "_" + n + "_" + i, item: r, @@ -11471,18 +11393,18 @@ function yg(e, t, n, r, i, a) { "onItemClick", "onItemMousemove", "pt" - ])) : a.visible(r) && r.separator ? (z(), B("li", G({ + ])) : a.visible(r) && r.separator ? (R(), z("li", W({ key: "separator" + n + i, class: [e.cx("separator"), t.class], style: r.style, role: "separator" - }, { ref_for: !0 }, e.ptm("separator")), null, 16)) : W("", !0)], 64); - }), 128))], 64)) : a.visible(t) && t.separator ? (z(), B("li", G({ + }, { ref_for: !0 }, e.ptm("separator")), null, 16)) : U("", !0)], 64); + }), 128))], 64)) : a.visible(t) && t.separator ? (R(), z("li", W({ key: "separator" + n.toString(), class: [e.cx("separator"), t.class], style: t.style, role: "separator" - }, { ref_for: !0 }, e.ptm("separator")), null, 16)) : (z(), V(o, { + }, { ref_for: !0 }, e.ptm("separator")), null, 16)) : (R(), B(o, { key: a.label(t) + n.toString(), id: e.$id + "_" + n, item: t, @@ -11504,12 +11426,12 @@ function yg(e, t, n, r, i, a) { "onItemMousemove", "pt" ]))], 64); - }), 128))], 16, _g), - e.$slots.end ? (z(), B("div", G({ + }), 128))], 16, fg), + e.$slots.end ? (R(), z("div", W({ key: 1, class: e.cx("end") - }, e.ptm("end")), [I(e.$slots, "end")], 16)) : W("", !0) - ], 16, gg)) : W("", !0)]; + }, e.ptm("end")), [I(e.$slots, "end")], 16)) : U("", !0) + ], 16, dg)) : U("", !0)]; }), _: 3 }, 16, [ @@ -11521,9 +11443,9 @@ function yg(e, t, n, r, i, a) { _: 3 }, 8, ["appendTo", "disabled"]); } -hg.render = yg; +ug.render = mg; // node_modules/primevue/listbox/style/index.mjs -var bg = X.extend({ +var hg = X.extend({ name: "listbox", style: "\n .p-listbox {\n display: block;\n background: dt('listbox.background');\n color: dt('listbox.color');\n border: 1px solid dt('listbox.border.color');\n border-radius: dt('listbox.border.radius');\n transition:\n background dt('listbox.transition.duration'),\n color dt('listbox.transition.duration'),\n border-color dt('listbox.transition.duration'),\n box-shadow dt('listbox.transition.duration'),\n outline-color dt('listbox.transition.duration');\n outline-color: transparent;\n box-shadow: dt('listbox.shadow');\n }\n\n .p-listbox.p-disabled {\n opacity: 1;\n background: dt('listbox.disabled.background');\n color: dt('listbox.disabled.color');\n }\n\n .p-listbox.p-disabled .p-listbox-option {\n color: dt('listbox.disabled.color');\n }\n\n .p-listbox.p-invalid {\n border-color: dt('listbox.invalid.border.color');\n }\n\n .p-listbox-header {\n padding: dt('listbox.list.header.padding');\n }\n\n .p-listbox-filter {\n width: 100%;\n }\n\n .p-listbox-list-container {\n overflow: auto;\n }\n\n .p-listbox-list {\n list-style-type: none;\n margin: 0;\n padding: dt('listbox.list.padding');\n outline: 0 none;\n display: flex;\n flex-direction: column;\n gap: dt('listbox.list.gap');\n }\n\n .p-listbox-option {\n display: flex;\n align-items: center;\n cursor: pointer;\n position: relative;\n overflow: hidden;\n padding: dt('listbox.option.padding');\n border: 0 none;\n border-radius: dt('listbox.option.border.radius');\n color: dt('listbox.option.color');\n transition:\n background dt('listbox.transition.duration'),\n color dt('listbox.transition.duration'),\n border-color dt('listbox.transition.duration'),\n box-shadow dt('listbox.transition.duration'),\n outline-color dt('listbox.transition.duration');\n }\n\n .p-listbox-striped li:nth-child(even of .p-listbox-option) {\n background: dt('listbox.option.striped.background');\n }\n\n .p-listbox .p-listbox-list .p-listbox-option.p-listbox-option-selected {\n background: dt('listbox.option.selected.background');\n color: dt('listbox.option.selected.color');\n }\n\n .p-listbox:not(.p-disabled) .p-listbox-option.p-listbox-option-selected.p-focus {\n background: dt('listbox.option.selected.focus.background');\n color: dt('listbox.option.selected.focus.color');\n }\n\n .p-listbox:not(.p-disabled) .p-listbox-option:not(.p-listbox-option-selected):not(.p-disabled).p-focus {\n background: dt('listbox.option.focus.background');\n color: dt('listbox.option.focus.color');\n }\n\n .p-listbox:not(.p-disabled) .p-listbox-option:not(.p-listbox-option-selected):not(.p-disabled):hover {\n background: dt('listbox.option.focus.background');\n color: dt('listbox.option.focus.color');\n }\n\n .p-listbox-option-blank-icon {\n flex-shrink: 0;\n }\n\n .p-listbox-option-check-icon {\n position: relative;\n flex-shrink: 0;\n margin-inline-start: dt('listbox.checkmark.gutter.start');\n margin-inline-end: dt('listbox.checkmark.gutter.end');\n color: dt('listbox.checkmark.color');\n }\n\n .p-listbox-option-group {\n margin: 0;\n padding: dt('listbox.option.group.padding');\n color: dt('listbox.option.group.color');\n background: dt('listbox.option.group.background');\n font-weight: dt('listbox.option.group.font.weight');\n }\n\n .p-listbox-empty-message {\n padding: dt('listbox.empty.message.padding');\n }\n\n .p-listbox-fluid {\n width: 100%;\n }\n", classes: { @@ -11553,9 +11475,9 @@ var bg = X.extend({ optionBlankIcon: "p-listbox-option-blank-icon", emptyMessage: "p-listbox-empty-message" } -}), xg = { +}), gg = { name: "BaseListbox", - extends: Vf, + extends: If, props: { options: Array, optionLabel: null, @@ -11657,7 +11579,7 @@ var bg = X.extend({ default: null } }, - style: bg, + style: hg, provide: function() { return { $pcListbox: this, @@ -11665,33 +11587,33 @@ var bg = X.extend({ }; } }; -function Sg(e) { - return Eg(e) || Tg(e) || wg(e) || Cg(); +function _g(e) { + return xg(e) || bg(e) || yg(e) || vg(); } -function Cg() { +function vg() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function wg(e, t) { +function yg(e, t) { if (e) { - if (typeof e == "string") return Dg(e, t); + if (typeof e == "string") return Sg(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Dg(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Sg(e, t) : void 0; } } -function Tg(e) { +function bg(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function Eg(e) { - if (Array.isArray(e)) return Dg(e); +function xg(e) { + if (Array.isArray(e)) return Sg(e); } -function Dg(e, t) { +function Sg(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -var Og = { +var Cg = { name: "Listbox", - extends: xg, + extends: gg, inheritAttrs: !1, emits: [ "change", @@ -11725,13 +11647,13 @@ var Og = { return this.virtualScrollerDisabled ? e : t && t(e).index; }, getOptionLabel: function(e) { - return this.optionLabel ? fc(e, this.optionLabel) : typeof e == "string" || typeof e == "number" || typeof e == "boolean" ? e : null; + return this.optionLabel ? sc(e, this.optionLabel) : typeof e == "string" || typeof e == "number" || typeof e == "boolean" ? e : null; }, getOptionValue: function(e) { - return this.optionValue ? fc(e, this.optionValue) : e; + return this.optionValue ? sc(e, this.optionValue) : e; }, getOptionRenderKey: function(e, t) { - return (this.dataKey ? fc(e, this.dataKey) : this.getOptionLabel(e)) + "_" + t; + return (this.dataKey ? sc(e, this.dataKey) : this.getOptionLabel(e)) + "_" + t; }, getPTOptions: function(e, t, n, r) { return this.ptm(r, { context: { @@ -11741,16 +11663,16 @@ var Og = { } }); }, isOptionDisabled: function(e) { - return this.optionDisabled ? fc(e, this.optionDisabled) : !1; + return this.optionDisabled ? sc(e, this.optionDisabled) : !1; }, isOptionGroup: function(e) { return this.optionGroupLabel && e.optionGroup && e.group; }, getOptionGroupLabel: function(e) { - return fc(e, this.optionGroupLabel); + return sc(e, this.optionGroupLabel); }, getOptionGroupChildren: function(e) { - return fc(e, this.optionGroupChildren); + return sc(e, this.optionGroupChildren); }, getAriaPosInset: function(e) { var t = this; @@ -11760,11 +11682,11 @@ var Og = { }, onFirstHiddenFocus: function() { J(this.list); - var e = al(this.$el, ":not([data-p-hidden-focusable=\"true\"])"); - this.$refs.lastHiddenFocusableElement.tabIndex = Qc(e) ? void 0 : -1, this.$refs.firstHiddenFocusableElement.tabIndex = -1; + var e = el(this.$el, ":not([data-p-hidden-focusable=\"true\"])"); + this.$refs.lastHiddenFocusableElement.tabIndex = qc(e) ? void 0 : -1, this.$refs.firstHiddenFocusableElement.tabIndex = -1; }, onLastHiddenFocus: function(e) { - e.relatedTarget === this.list ? (J(al(this.$el, ":not([data-p-hidden-focusable=\"true\"])")), this.$refs.firstHiddenFocusableElement.tabIndex = void 0) : J(this.$refs.firstHiddenFocusableElement), this.$refs.lastHiddenFocusableElement.tabIndex = -1; + e.relatedTarget === this.list ? (J(el(this.$el, ":not([data-p-hidden-focusable=\"true\"])")), this.$refs.firstHiddenFocusableElement.tabIndex = void 0) : J(this.$refs.firstHiddenFocusableElement), this.$refs.lastHiddenFocusableElement.tabIndex = -1; }, onFocusout: function(e) { !this.$el.contains(e.relatedTarget) && this.$refs.lastHiddenFocusableElement && this.$refs.firstHiddenFocusableElement && (this.$refs.lastHiddenFocusableElement.tabIndex = this.$refs.firstHiddenFocusableElement.tabIndex = void 0); @@ -11816,7 +11738,7 @@ var Og = { this.updateModel(e, r), e.preventDefault(); break; } - !n && Tc(e.key) && (this.searchOptions(e, e.key), e.preventDefault()); + !n && bc(e.key) && (this.searchOptions(e, e.key), e.preventDefault()); } }, onOptionSelect: function(e, t) { @@ -11853,8 +11775,8 @@ var Og = { var n = this.isSelected(t), r = null; if (!this.optionTouched && this.metaKeySelection) { var i = e.metaKey || e.ctrlKey; - n ? r = i ? this.removeOption(t) : [this.getOptionValue(t)] : (r = i && this.d_value || [], r = [].concat(Sg(r), [this.getOptionValue(t)])); - } else r = n ? this.removeOption(t) : [].concat(Sg(this.d_value || []), [this.getOptionValue(t)]); + n ? r = i ? this.removeOption(t) : [this.getOptionValue(t)] : (r = i && this.d_value || [], r = [].concat(_g(r), [this.getOptionValue(t)])); + } else r = n ? this.removeOption(t) : [].concat(_g(this.d_value || []), [this.getOptionValue(t)]); this.updateModel(e, r); }, onOptionSelectRange: function(e) { @@ -11961,7 +11883,7 @@ var Og = { return this.isValidOption(e) && this.isSelected(e); }, isEquals: function(e, t) { - return pc(e, t, this.equalityKey); + return cc(e, t, this.equalityKey); }, isSelected: function(e) { var t = this, n = this.getOptionValue(e); @@ -11977,7 +11899,7 @@ var Og = { }, findLastOptionIndex: function() { var e = this; - return vc(this.visibleOptions, function(t) { + return pc(this.visibleOptions, function(t) { return e.isValidOption(t); }); }, @@ -11988,7 +11910,7 @@ var Og = { return n > -1 ? n + e + 1 : e; }, findPrevOptionIndex: function(e) { - var t = this, n = e > 0 ? vc(this.visibleOptions.slice(0, e), function(e) { + var t = this, n = e > 0 ? pc(this.visibleOptions.slice(0, e), function(e) { return t.isValidOption(e); }) : -1; return n > -1 ? n : e; @@ -12017,7 +11939,7 @@ var Og = { }, findLastSelectedOptionIndex: function() { var e = this; - return this.$filled ? vc(this.visibleOptions, function(t) { + return this.$filled ? pc(this.visibleOptions, function(t) { return e.isValidSelectedOption(t); }) : -1; }, @@ -12028,7 +11950,7 @@ var Og = { return n > -1 ? n + e + 1 : -1; }, findPrevSelectedOptionIndex: function(e) { - var t = this, n = this.$filled && e > 0 ? vc(this.visibleOptions.slice(0, e), function(e) { + var t = this, n = this.$filled && e > 0 ? pc(this.visibleOptions.slice(0, e), function(e) { return t.isValidSelectedOption(e); }) : -1; return n > -1 ? n : -1; @@ -12062,7 +11984,7 @@ var Og = { removeOption: function(e) { var t = this; return this.d_value.filter(function(n) { - return !pc(n, t.getOptionValue(e), t.equalityKey); + return !cc(n, t.getOptionValue(e), t.equalityKey); }); }, changeFocusedOptionIndex: function(e, t) { @@ -12071,7 +11993,7 @@ var Og = { scrollInView: function() { var e = this, t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : -1; this.$nextTick(function() { - var n = t === -1 ? e.focusedOptionId : `${e.$id}_${t}`, r = nl(e.list, `li[id="${n}"]`); + var n = t === -1 ? e.focusedOptionId : `${e.$id}_${t}`, r = Zc(e.list, `li[id="${n}"]`); r ? r.scrollIntoView && r.scrollIntoView({ block: "nearest", inline: "nearest", @@ -12097,16 +12019,16 @@ var Og = { }, computed: { optionsListFlat: function() { - return this.filterValue ? ru.filter(this.options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale) : this.options; + return this.filterValue ? Ql.filter(this.options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale) : this.options; }, optionsListGroup: function() { var e = this, t = []; return (this.options || []).forEach(function(n) { - var r = e.getOptionGroupChildren(n) || [], i = e.filterValue ? ru.filter(r, e.searchFields, e.filterValue, e.filterMatchMode, e.filterLocale) : r; + var r = e.getOptionGroupChildren(n) || [], i = e.filterValue ? Ql.filter(r, e.searchFields, e.filterValue, e.filterMatchMode, e.filterLocale) : r; i != null && i.length && t.push.apply(t, [{ optionGroup: n, group: !0 - }].concat(Sg(i))); + }].concat(_g(i))); }), t; }, visibleOptions: function() { @@ -12161,24 +12083,24 @@ var Og = { }); } }, - directives: { ripple: lf }, + directives: { ripple: rf }, components: { - InputText: dp, - VirtualScroller: Cm, - InputIcon: um, - IconField: cm, - SearchIcon: Kp, - CheckIcon: Tf, - BlankIcon: Ap + InputText: op, + VirtualScroller: vm, + InputIcon: am, + IconField: rm, + SearchIcon: Vp, + CheckIcon: bf, + BlankIcon: Tp } -}, kg = ["id", "data-p"], Ag = ["tabindex"], jg = [ +}, wg = ["id", "data-p"], Tg = ["tabindex"], Eg = [ "id", "aria-multiselectable", "aria-label", "aria-labelledby", "aria-activedescendant", "aria-disabled" -], Mg = ["id"], Ng = [ +], Dg = ["id"], Og = [ "id", "aria-label", "aria-selected", @@ -12192,10 +12114,10 @@ var Og = { "data-p-selected", "data-p-focused", "data-p-disabled" -], Pg = ["tabindex"]; -function Fg(e, t, n, r, i, a) { - var o = F("InputText"), s = F("SearchIcon"), c = F("InputIcon"), l = F("IconField"), u = F("CheckIcon"), d = F("BlankIcon"), f = F("VirtualScroller"), p = mi("ripple"); - return z(), B("div", G({ +], kg = ["tabindex"]; +function Ag(e, t, n, r, i, a) { + var o = F("InputText"), s = F("SearchIcon"), c = F("InputIcon"), l = F("IconField"), u = F("CheckIcon"), d = F("BlankIcon"), f = F("VirtualScroller"), p = di("ripple"); + return R(), z("div", W({ id: e.$id, class: e.cx("root"), onFocusout: t[7] ||= function() { @@ -12203,7 +12125,7 @@ function Fg(e, t, n, r, i, a) { }, "data-p": a.containerDataP }, e.ptmi("root")), [ - H("span", G({ + V("span", W({ ref: "firstHiddenFocusableElement", role: "presentation", "aria-hidden": "true", @@ -12215,23 +12137,23 @@ function Fg(e, t, n, r, i, a) { }, e.ptm("hiddenFirstFocusableEl"), { "data-p-hidden-accessible": !0, "data-p-hidden-focusable": !0 - }), null, 16, Ag), - e.$slots.header ? (z(), B("div", G({ + }), null, 16, Tg), + e.$slots.header ? (R(), z("div", W({ key: 0, class: e.cx("header") }, e.ptm("header")), [I(e.$slots, "header", { value: e.d_value, options: a.visibleOptions - })], 16)) : W("", !0), - e.filter ? (z(), B("div", G({ + })], 16)) : U("", !0), + e.filter ? (R(), z("div", W({ key: 1, class: e.cx("header") - }, e.ptm("header")), [U(l, { + }, e.ptm("header")), [H(l, { unstyled: e.unstyled, pt: e.ptm("pcFilterContainer") }, { default: P(function() { - return [U(o, { + return [H(o, { modelValue: i.filterValue, "onUpdate:modelValue": t[1] ||= function(e) { return i.filterValue = e; @@ -12261,40 +12183,40 @@ function Fg(e, t, n, r, i, a) { "onInput", "onKeydown", "pt" - ]), U(c, { + ]), H(c, { unstyled: e.unstyled, pt: e.ptm("pcFilterIconContainer") }, { default: P(function() { return [I(e.$slots, "filtericon", {}, function() { - return [e.filterIcon ? (z(), B("span", G({ + return [e.filterIcon ? (R(), z("span", W({ key: 0, class: e.filterIcon - }, e.ptm("filterIcon")), null, 16)) : (z(), V(s, _e(G({ key: 1 }, e.ptm("filterIcon"))), null, 16))]; + }, e.ptm("filterIcon")), null, 16)) : (R(), B(s, _e(W({ key: 1 }, e.ptm("filterIcon"))), null, 16))]; })]; }), _: 3 }, 8, ["unstyled", "pt"])]; }), _: 3 - }, 8, ["unstyled", "pt"]), H("span", G({ + }, 8, ["unstyled", "pt"]), V("span", W({ role: "status", "aria-live": "polite", class: "p-hidden-accessible" - }, e.ptm("hiddenFilterResult"), { "data-p-hidden-accessible": !0 }), k(a.filterResultMessageText), 17)], 16)) : W("", !0), - H("div", G({ + }, e.ptm("hiddenFilterResult"), { "data-p-hidden-accessible": !0 }), k(a.filterResultMessageText), 17)], 16)) : U("", !0), + V("div", W({ class: e.cx("listContainer"), style: [{ "max-height": a.virtualScrollerDisabled ? e.scrollHeight : "" }, e.listStyle] - }, e.ptm("listContainer")), [U(f, G({ ref: a.virtualScrollerRef }, e.virtualScrollerOptions, { + }, e.ptm("listContainer")), [H(f, W({ ref: a.virtualScrollerRef }, e.virtualScrollerOptions, { items: a.visibleOptions, style: [{ height: e.scrollHeight }, e.listStyle], tabindex: -1, disabled: a.virtualScrollerDisabled, pt: e.ptm("virtualScroller") - }), vi({ + }), hi({ content: P(function(n) { var r = n.styleClass, o = n.contentRef, s = n.items, c = n.getItemOptions, l = n.contentStyle, f = n.itemSize; - return [H("ul", G({ + return [V("ul", W({ ref: function(e) { return a.listRef(e, o); }, @@ -12317,8 +12239,8 @@ function Fg(e, t, n, r, i, a) { onKeydown: t[5] ||= function() { return a.onListKeyDown && a.onListKeyDown.apply(a, arguments); } - }, e.ptm("list")), [(z(!0), B(L, null, _i(s, function(n, r) { - return z(), B(L, { key: a.getOptionRenderKey(n, a.getOptionIndex(r, c)) }, [a.isOptionGroup(n) ? (z(), B("li", G({ + }, e.ptm("list")), [(R(!0), z(L, null, mi(s, function(n, r) { + return R(), z(L, { key: a.getOptionRenderKey(n, a.getOptionIndex(r, c)) }, [a.isOptionGroup(n) ? (R(), z("li", W({ key: 0, id: e.$id + "_" + a.getOptionIndex(r, c), style: { height: f ? f + "px" : void 0 }, @@ -12328,8 +12250,8 @@ function Fg(e, t, n, r, i, a) { option: n.optionGroup, index: a.getOptionIndex(r, c) }, function() { - return [Za(k(a.getOptionGroupLabel(n.optionGroup)), 1)]; - })], 16, Mg)) : qn((z(), B("li", G({ + return [Ja(k(a.getOptionGroupLabel(n.optionGroup)), 1)]; + })], 16, Dg)) : Wn((R(), z("li", W({ key: 1, id: e.$id + "_" + a.getOptionIndex(r, c), style: { height: f ? f + "px" : void 0 }, @@ -12363,32 +12285,32 @@ function Fg(e, t, n, r, i, a) { "data-p-selected": !e.checkmark && a.isSelected(n), "data-p-focused": i.focusedOptionIndex === a.getOptionIndex(r, c), "data-p-disabled": a.isOptionDisabled(n) - }), [e.checkmark ? (z(), B(L, { key: 0 }, [a.isSelected(n) ? (z(), V(u, G({ + }), [e.checkmark ? (R(), z(L, { key: 0 }, [a.isSelected(n) ? (R(), B(u, W({ key: 0, class: e.cx("optionCheckIcon") - }, { ref_for: !0 }, e.ptm("optionCheckIcon")), null, 16, ["class"])) : (z(), V(d, G({ + }, { ref_for: !0 }, e.ptm("optionCheckIcon")), null, 16, ["class"])) : (R(), B(d, W({ key: 1, class: e.cx("optionBlankIcon") - }, { ref_for: !0 }, e.ptm("optionBlankIcon")), null, 16, ["class"]))], 64)) : W("", !0), I(e.$slots, "option", { + }, { ref_for: !0 }, e.ptm("optionBlankIcon")), null, 16, ["class"]))], 64)) : U("", !0), I(e.$slots, "option", { option: n, selected: a.isSelected(n), index: a.getOptionIndex(r, c) }, function() { - return [Za(k(a.getOptionLabel(n)), 1)]; - })], 16, Ng)), [[p]])], 64); - }), 128)), i.filterValue && (!s || s && s.length === 0) ? (z(), B("li", G({ + return [Ja(k(a.getOptionLabel(n)), 1)]; + })], 16, Og)), [[p]])], 64); + }), 128)), i.filterValue && (!s || s && s.length === 0) ? (R(), z("li", W({ key: 0, class: e.cx("emptyMessage"), role: "option" }, e.ptm("emptyMessage")), [I(e.$slots, "emptyfilter", {}, function() { - return [Za(k(a.emptyFilterMessageText), 1)]; - })], 16)) : !e.options || e.options && e.options.length === 0 ? (z(), B("li", G({ + return [Ja(k(a.emptyFilterMessageText), 1)]; + })], 16)) : !e.options || e.options && e.options.length === 0 ? (R(), z("li", W({ key: 1, class: e.cx("emptyMessage"), role: "option" }, e.ptm("emptyMessage")), [I(e.$slots, "empty", {}, function() { - return [Za(k(a.emptyMessageText), 1)]; - })], 16)) : W("", !0)], 16, jg)]; + return [Ja(k(a.emptyMessageText), 1)]; + })], 16)) : U("", !0)], 16, Eg)]; }), _: 2 }, [e.$slots.loader ? { @@ -12408,18 +12330,18 @@ function Fg(e, t, n, r, i, a) { value: e.d_value, options: a.visibleOptions }), - !e.options || e.options && e.options.length === 0 ? (z(), B("span", G({ + !e.options || e.options && e.options.length === 0 ? (R(), z("span", W({ key: 2, role: "status", "aria-live": "polite", class: "p-hidden-accessible" - }, e.ptm("hiddenEmptyMessage"), { "data-p-hidden-accessible": !0 }), k(a.emptyMessageText), 17)) : W("", !0), - H("span", G({ + }, e.ptm("hiddenEmptyMessage"), { "data-p-hidden-accessible": !0 }), k(a.emptyMessageText), 17)) : U("", !0), + V("span", W({ role: "status", "aria-live": "polite", class: "p-hidden-accessible" }, e.ptm("hiddenSelectedMessage"), { "data-p-hidden-accessible": !0 }), k(a.selectedMessageText), 17), - H("span", G({ + V("span", W({ ref: "lastHiddenFocusableElement", role: "presentation", "aria-hidden": "true", @@ -12431,12 +12353,12 @@ function Fg(e, t, n, r, i, a) { }, e.ptm("hiddenLastFocusableEl"), { "data-p-hidden-accessible": !0, "data-p-hidden-focusable": !0 - }), null, 16, Pg) - ], 16, kg); + }), null, 16, kg) + ], 16, wg); } -Og.render = Fg; +Cg.render = Ag; // node_modules/primevue/tree/style/index.mjs -var Ig = X.extend({ +var jg = X.extend({ name: "tree", style: "\n .p-tree {\n display: block;\n background: dt('tree.background');\n color: dt('tree.color');\n padding: dt('tree.padding');\n position: relative;\n }\n\n .p-tree-root-children,\n .p-tree-node-children {\n display: flex;\n list-style-type: none;\n flex-direction: column;\n margin: 0;\n gap: dt('tree.gap');\n }\n\n .p-tree-root-children {\n padding: 0;\n padding-block-start: dt('tree.gap');\n }\n\n .p-tree-node-children {\n padding: 0;\n padding-block-start: dt('tree.gap');\n padding-inline-start: dt('tree.indent');\n }\n\n .p-tree-node {\n padding: 0;\n outline: 0 none;\n }\n\n .p-tree-node-content {\n border-radius: dt('tree.node.border.radius');\n padding: dt('tree.node.padding');\n display: flex;\n align-items: center;\n outline-color: transparent;\n color: dt('tree.node.color');\n gap: dt('tree.node.gap');\n transition:\n background dt('tree.transition.duration'),\n color dt('tree.transition.duration'),\n outline-color dt('tree.transition.duration'),\n box-shadow dt('tree.transition.duration');\n }\n\n .p-tree-node-content[data-p-dragging] {\n outline: 1px dashed dt('primary.color');\n outline-offset: -1px;\n }\n\n .p-tree-node-content[data-pc-section=\"drag-image\"] {\n background: dt('tree.background');\n }\n\n .p-tree-node:focus-visible > .p-tree-node-content {\n box-shadow: dt('tree.node.focus.ring.shadow');\n outline: dt('tree.node.focus.ring.width') dt('tree.node.focus.ring.style') dt('tree.node.focus.ring.color');\n outline-offset: dt('tree.node.focus.ring.offset');\n }\n\n .p-tree-node-content.p-tree-node-selectable:not(.p-tree-node-selected):hover {\n background: dt('tree.node.hover.background');\n color: dt('tree.node.hover.color');\n }\n\n .p-tree-node-content.p-tree-node-selectable:not(.p-tree-node-selected):hover .p-tree-node-icon {\n color: dt('tree.node.icon.hover.color');\n }\n\n .p-tree-node-content.p-tree-node-selected {\n background: dt('tree.node.selected.background');\n color: dt('tree.node.selected.color');\n }\n\n .p-tree-node-content.p-tree-node-selected .p-tree-node-toggle-button {\n color: inherit;\n }\n\n .p-tree-node-content.p-tree-node-dragover {\n background: dt('tree.node.hover.background');\n color: dt('tree.node.hover.color');\n }\n\n .p-tree-node-content:focus-visible,\n .p-tree-node-content.p-tree-node-contextmenu-selected {\n box-shadow: dt('tree.node.focus.ring.shadow');\n outline: dt('tree.node.focus.ring.width') dt('tree.node.focus.ring.style') dt('tree.node.focus.ring.color');\n outline-offset: dt('tree.node.focus.ring.offset');\n }\n\n .p-tree-node-drop-point {\n outline: 1px solid dt('primary.color');\n }\n\n .p-tree-node-toggle-button {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n flex-shrink: 0;\n width: dt('tree.node.toggle.button.size');\n height: dt('tree.node.toggle.button.size');\n color: dt('tree.node.toggle.button.color');\n border: 0 none;\n background: transparent;\n border-radius: dt('tree.node.toggle.button.border.radius');\n transition:\n background dt('tree.transition.duration'),\n color dt('tree.transition.duration'),\n border-color dt('tree.transition.duration'),\n outline-color dt('tree.transition.duration'),\n box-shadow dt('tree.transition.duration');\n outline-color: transparent;\n padding: 0;\n }\n\n .p-tree-node-toggle-button:enabled:hover {\n background: dt('tree.node.toggle.button.hover.background');\n color: dt('tree.node.toggle.button.hover.color');\n }\n\n .p-tree-node-content.p-tree-node-selected .p-tree-node-toggle-button:hover {\n background: dt('tree.node.toggle.button.selected.hover.background');\n color: dt('tree.node.toggle.button.selected.hover.color');\n }\n\n .p-tree-root {\n overflow: auto;\n }\n\n .p-tree-node-selectable {\n cursor: pointer;\n user-select: none;\n }\n\n .p-tree-node-leaf > .p-tree-node-content .p-tree-node-toggle-button {\n visibility: hidden;\n }\n\n .p-tree-node-icon {\n color: dt('tree.node.icon.color');\n transition: color dt('tree.transition.duration');\n }\n\n .p-tree-node-content.p-tree-node-selected .p-tree-node-icon {\n color: dt('tree.node.icon.selected.color');\n }\n\n .p-tree-filter {\n margin: dt('tree.filter.margin');\n }\n\n .p-tree-filter-input {\n width: 100%;\n }\n\n .p-tree-loading-icon {\n font-size: dt('tree.loading.icon.size');\n width: dt('tree.loading.icon.size');\n height: dt('tree.loading.icon.size');\n }\n\n .p-tree .p-tree-mask {\n position: absolute;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .p-tree-flex-scrollable {\n display: flex;\n flex: 1;\n height: 100%;\n flex-direction: column;\n }\n\n .p-tree-flex-scrollable .p-tree-root {\n flex: 1;\n }\n", classes: { @@ -12479,51 +12401,51 @@ var Ig = X.extend({ emptyMessage: "p-tree-empty-message", dropPoint: "p-tree-node-drop-point" } -}), Lg = { +}), Mg = { name: "ChevronRightIcon", - extends: xd + extends: gd }; -function Rg(e) { - return Hg(e) || Vg(e) || Bg(e) || zg(); +function Ng(e) { + return Lg(e) || Ig(e) || Fg(e) || Pg(); } -function zg() { +function Pg() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function Bg(e, t) { +function Fg(e, t) { if (e) { - if (typeof e == "string") return Ug(e, t); + if (typeof e == "string") return Rg(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Ug(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Rg(e, t) : void 0; } } -function Vg(e) { +function Ig(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function Hg(e) { - if (Array.isArray(e)) return Ug(e); +function Lg(e) { + if (Array.isArray(e)) return Rg(e); } -function Ug(e, t) { +function Rg(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function Wg(e, t, n, r, i, a) { - return z(), B("svg", G({ +function zg(e, t, n, r, i, a) { + return R(), z("svg", W({ width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" - }, e.pti()), Rg(t[0] ||= [H("path", { + }, e.pti()), Ng(t[0] ||= [V("path", { d: "M4.38708 13C4.28408 13.0005 4.18203 12.9804 4.08691 12.9409C3.99178 12.9014 3.9055 12.8433 3.83313 12.7701C3.68634 12.6231 3.60388 12.4238 3.60388 12.2161C3.60388 12.0084 3.68634 11.8091 3.83313 11.6622L8.50507 6.99022L3.83313 2.31827C3.69467 2.16968 3.61928 1.97313 3.62287 1.77005C3.62645 1.56698 3.70872 1.37322 3.85234 1.22959C3.99596 1.08597 4.18972 1.00371 4.3928 1.00012C4.59588 0.996539 4.79242 1.07192 4.94102 1.21039L10.1669 6.43628C10.3137 6.58325 10.3962 6.78249 10.3962 6.99022C10.3962 7.19795 10.3137 7.39718 10.1669 7.54416L4.94102 12.7701C4.86865 12.8433 4.78237 12.9014 4.68724 12.9409C4.59212 12.9804 4.49007 13.0005 4.38708 13Z", fill: "currentColor" }, null, -1)]), 16); } -Lg.render = Wg; +Mg.render = zg; // node_modules/primevue/tree/index.mjs -var Gg = { +var Bg = { name: "BaseTree", - extends: pd, + extends: cd, props: { value: { type: null, @@ -12618,55 +12540,55 @@ var Gg = { default: null } }, - style: Ig, + style: jg, provide: function() { return { $pcTree: this, $parentInstance: this }; } -}, Kg = /* @__PURE__ */ Ut({ +}, Vg = /* @__PURE__ */ Ht({ isDragging: !1, dragNode: null, dragScope: null -}), qg = /* @__PURE__ */ new Set(), Jg = /* @__PURE__ */ new Set(); -function Yg() { +}), Hg = /* @__PURE__ */ new Set(), Ug = /* @__PURE__ */ new Set(); +function Wg() { return { - dragState: Kg, + dragState: Vg, startDrag: function(e) { - Kg.isDragging = !0, Kg.dragNode = e.node, Kg.dragScope = e.scope, qg.forEach(function(t) { + Vg.isDragging = !0, Vg.dragNode = e.node, Vg.dragScope = e.scope, Hg.forEach(function(t) { return t(e); }); }, stopDrag: function(e) { - Kg.isDragging = !1, Kg.dragNode = null, Kg.dragScope = null, Jg.forEach(function(t) { + Vg.isDragging = !1, Vg.dragNode = null, Vg.dragScope = null, Ug.forEach(function(t) { return t(e); }); }, onDragStart: function(e) { - return qg.add(e), function() { - return qg.delete(e); + return Hg.add(e), function() { + return Hg.delete(e); }; }, onDragStop: function(e) { - return Jg.add(e), function() { - return Jg.delete(e); + return Ug.add(e), function() { + return Ug.delete(e); }; } }; } -function Xg(e) { +function Gg(e) { "@babel/helpers - typeof"; - return Xg = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return Gg = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, Xg(e); + }, Gg(e); } -function Zg(e, t) { +function Kg(e, t) { var n = typeof Symbol < "u" && e[Symbol.iterator] || e["@@iterator"]; if (!n) { - if (Array.isArray(e) || (n = e_(e)) || t) { + if (Array.isArray(e) || (n = Yg(e)) || t) { n && (e = n); var r = 0, i = function() {}; return { @@ -12706,31 +12628,31 @@ function Zg(e, t) { } }; } -function Qg(e) { - return n_(e) || t_(e) || e_(e) || $g(); +function qg(e) { + return Zg(e) || Xg(e) || Yg(e) || Jg(); } -function $g() { +function Jg() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function e_(e, t) { +function Yg(e, t) { if (e) { - if (typeof e == "string") return r_(e, t); + if (typeof e == "string") return Qg(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? r_(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Qg(e, t) : void 0; } } -function t_(e) { +function Xg(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function n_(e) { - if (Array.isArray(e)) return r_(e); +function Zg(e) { + if (Array.isArray(e)) return Qg(e); } -function r_(e, t) { +function Qg(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function i_(e, t) { +function $g(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); @@ -12740,43 +12662,43 @@ function i_(e, t) { } return n; } -function a_(e) { +function e_(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] == null ? {} : arguments[t]; - t % 2 ? i_(Object(n), !0).forEach(function(t) { - o_(e, t, n[t]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : i_(Object(n)).forEach(function(t) { + t % 2 ? $g(Object(n), !0).forEach(function(t) { + t_(e, t, n[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : $g(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); }); } return e; } -function o_(e, t, n) { - return (t = s_(t)) in e ? Object.defineProperty(e, t, { +function t_(e, t, n) { + return (t = n_(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function s_(e) { - var t = c_(e, "string"); - return Xg(t) == "symbol" ? t : t + ""; +function n_(e) { + var t = r_(e, "string"); + return Gg(t) == "symbol" ? t : t + ""; } -function c_(e, t) { - if (Xg(e) != "object" || !e) return e; +function r_(e, t) { + if (Gg(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (Xg(r) != "object") return r; + if (Gg(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var l_ = { +var i_ = { name: "TreeNode", hostName: "Tree", - extends: pd, + extends: cd, emits: [ "node-toggle", "node-click", @@ -12876,7 +12798,7 @@ var l_ = { } }); }, onClick: function(e) { - this.toggleClicked || rl(e.target, "[data-pc-section=\"nodetogglebutton\"]") || rl(e.target.parentElement, "[data-pc-section=\"nodetogglebutton\"]") ? this.toggleClicked = !1 : (this.isCheckboxSelectionMode() ? this.node.selectable != 0 && this.toggleCheckbox() : this.$emit("node-click", { + this.toggleClicked || Qc(e.target, "[data-pc-section=\"nodetogglebutton\"]") || Qc(e.target.parentElement, "[data-pc-section=\"nodetogglebutton\"]") ? this.toggleClicked = !1 : (this.isCheckboxSelectionMode() ? this.node.selectable != 0 && this.toggleCheckbox() : this.$emit("node-click", { originalEvent: e, nodeTouched: this.nodeTouched, node: this.node @@ -12936,7 +12858,7 @@ var l_ = { })); }, onArrowLeft: function(e) { - var t = nl(e.currentTarget, "[data-pc-section=\"nodetogglebutton\"]"); + var t = Zc(e.currentTarget, "[data-pc-section=\"nodetogglebutton\"]"); if (this.level === 0 && !this.expanded) return !1; if (this.expanded && !this.leaf) return t.click(), !1; var n = this.findBeforeClickableNode(e.currentTarget); @@ -12954,7 +12876,7 @@ var l_ = { if (r.key === t.key) return e; if (r.children && r.children.length > 0) { var i = n.removeNodeFromTree(r.children, t); - e.push(a_(a_({}, r), {}, { children: i })); + e.push(e_(e_({}, r), {}, { children: i })); } else e.push(r); return e; }, []); @@ -12964,13 +12886,13 @@ var l_ = { return e.key === t; }); return a === -1 ? e.map(function(e) { - return e.children && e.children.length > 0 ? a_(a_({}, e), {}, { children: i.insertNodeInSiblings(e.children, t, n, r) }) : e; + return e.children && e.children.length > 0 ? e_(e_({}, e), {}, { children: i.insertNodeInSiblings(e.children, t, n, r) }) : e; }) : e.toSpliced(a + r, 0, n); }, addNodeAsChild: function(e, t, n) { var r = this; return e.map(function(e) { - return e.key === t ? a_(a_({}, e), {}, { children: [].concat(Qg(e.children || []), [n]) }) : e.children && e.children.length > 0 ? a_(a_({}, e), {}, { children: r.addNodeAsChild(e.children, t, n) }) : e; + return e.key === t ? e_(e_({}, e), {}, { children: [].concat(qg(e.children || []), [n]) }) : e.children && e.children.length > 0 ? e_(e_({}, e), {}, { children: r.addNodeAsChild(e.children, t, n) }) : e; }); }, insertNodeOnDrop: function() { @@ -13027,7 +12949,7 @@ var l_ = { if (this.isNodeDraggable) { e.dataTransfer.effectAllowed = "all", e.dataTransfer.setData("text", "data"); var t = e.currentTarget, n = t.cloneNode(!0), r = n.querySelector("[data-pc-section=\"nodetogglebutton\"]"), i = n.querySelector("[data-pc-name=\"pcnodecheckbox\"]"); - t.setAttribute("data-p-dragging", "true"), n.style.width = Jc(t) + "px", n.style.height = ll(t) + "px", n.setAttribute("data-pc-section", "drag-image"), r.style.visibility = "hidden", i?.remove(), document.body.appendChild(n), e.dataTransfer.setDragImage(n, 0, 0), setTimeout(function() { + t.setAttribute("data-p-dragging", "true"), n.style.width = Uc(t) + "px", n.style.height = il(t) + "px", n.setAttribute("data-pc-section", "drag-image"), r.style.visibility = "hidden", i?.remove(), document.body.appendChild(n), e.dataTransfer.setDragImage(n, 0, 0), setTimeout(function() { return document.body.removeChild(n); }, 0), this.$pcTree.dragDropService.startDrag({ node: this.node, @@ -13060,21 +12982,21 @@ var l_ = { }); }, setAllNodesTabIndexes: function() { - var e = tl(this.$refs.currentNode.closest("[data-pc-section=\"rootchildren\"]"), "[role=\"treeitem\"]"), t = Qg(e).some(function(e) { + var e = Xc(this.$refs.currentNode.closest("[data-pc-section=\"rootchildren\"]"), "[role=\"treeitem\"]"), t = qg(e).some(function(e) { return e.getAttribute("aria-selected") === "true" || e.getAttribute("aria-checked") === "true"; }); - if (Qg(e).forEach(function(e) { + if (qg(e).forEach(function(e) { e.tabIndex = -1; }), t) { - var n = Qg(e).filter(function(e) { + var n = qg(e).filter(function(e) { return e.getAttribute("aria-selected") === "true" || e.getAttribute("aria-checked") === "true"; }); n[0].tabIndex = 0; - } else Qg(e)[0].tabIndex = 0; + } else qg(e)[0].tabIndex = 0; }, setTabIndexForSelectionMode: function(e, t) { if (this.selectionMode !== null) { - var n = Qg(tl(this.$refs.currentNode.parentElement, "[role=\"treeitem\"]")); + var n = qg(Xc(this.$refs.currentNode.parentElement, "[role=\"treeitem\"]")); e.currentTarget.tabIndex = t === !1 ? -1 : 0, n.every(function(e) { return e.tabIndex === -1; }) && (n[0].tabIndex = 0); @@ -13086,13 +13008,13 @@ var l_ = { findBeforeClickableNode: function(e) { var t = e.closest("ul").closest("li"); if (t) { - var n = nl(t, "button"); + var n = Zc(t, "button"); return n && n.style.visibility !== "hidden" ? t : this.findBeforeClickableNode(e.previousElementSibling); } return null; }, toggleCheckbox: function() { - var e = this.selectionKeys ? a_({}, this.selectionKeys) : {}, t = !this.checked; + var e = this.selectionKeys ? e_({}, this.selectionKeys) : {}, t = !this.checked; this.propagateDown(this.node, t, e), this.$emit("checkbox-change", { node: this.node, check: t, @@ -13104,7 +13026,7 @@ var l_ = { checked: !0, partialChecked: !1 } : delete n[e.key], e.children && e.children.length) { - var r = Zg(e.children), i; + var r = Kg(e.children), i; try { for (r.s(); !(i = r.n()).done;) { var a = i.value; @@ -13118,7 +13040,7 @@ var l_ = { } }, propagateUp: function(e) { - var t = e.check, n = a_({}, e.selectionKeys), r = 0, i = !1, a = Zg(this.node.children), o; + var t = e.check, n = e_({}, e.selectionKeys), r = 0, i = !1, a = Kg(this.node.children), o; try { for (a.s(); !(o = a.n()).done;) { var s = o.value; @@ -13158,7 +13080,7 @@ var l_ = { }, getParentNodeElement: function(e) { var t = e.parentElement.parentElement; - return rl(t, "role") === "treeitem" ? t : null; + return Qc(t, "role") === "treeitem" ? t : null; }, focusNode: function(e) { e.focus(); @@ -13230,15 +13152,15 @@ var l_ = { } }, components: { - Checkbox: tp, - ChevronDownIcon: Rp, - ChevronRightIcon: Lg, - CheckIcon: Tf, - MinusIcon: Nf, - SpinnerIcon: Sd + Checkbox: Xf, + ChevronDownIcon: Np, + ChevronRightIcon: Mg, + CheckIcon: bf, + MinusIcon: Of, + SpinnerIcon: _d }, - directives: { ripple: lf } -}, u_ = [ + directives: { ripple: rf } +}, a_ = [ "aria-label", "aria-selected", "aria-expanded", @@ -13247,14 +13169,14 @@ var l_ = { "aria-level", "aria-checked", "tabindex" -], d_ = [ +], o_ = [ "draggable", "data-p-selected", "data-p-selectable" -], f_ = ["data-p-leaf"]; -function p_(e, t, n, r, i, a) { - var o = F("SpinnerIcon"), s = F("Checkbox"), c = F("TreeNode", !0), l = mi("ripple"); - return z(), B("li", G({ +], s_ = ["data-p-leaf"]; +function c_(e, t, n, r, i, a) { + var o = F("SpinnerIcon"), s = F("Checkbox"), c = F("TreeNode", !0), l = di("ripple"); + return R(), z("li", W({ ref: "currentNode", class: e.cx("node"), role: "treeitem", @@ -13270,12 +13192,12 @@ function p_(e, t, n, r, i, a) { return a.onKeyDown && a.onKeyDown.apply(a, arguments); } }, a.getPTOptions("node")), [ - a.isPrevDropPointActive ? (z(), B("div", { + a.isPrevDropPointActive ? (R(), z("div", { key: 0, class: O(e.cx("dropPoint")), "aria-hidden": "true" - }, null, 2)) : W("", !0), - H("div", G({ + }, null, 2)) : U("", !0), + V("div", W({ class: e.cx("nodeContent"), style: n.node.style, draggable: a.isDraggable, @@ -13307,7 +13229,7 @@ function p_(e, t, n, r, i, a) { "data-p-selected": a.checkboxMode ? a.checked : a.selected, "data-p-selectable": a.selectable }), [ - qn((z(), B("button", G({ + Wn((R(), z("button", W({ type: "button", class: e.cx("nodeToggleButton"), onClick: t[0] ||= function() { @@ -13315,7 +13237,7 @@ function p_(e, t, n, r, i, a) { }, tabindex: "-1", "data-p-leaf": a.leaf - }, a.getPTOptions("nodeToggleButton")), [n.node.loading && n.loadingMode === "icon" ? (z(), B(L, { key: 0 }, [n.templates.nodetoggleicon || n.templates.nodetogglericon ? (z(), V(pi(n.templates.nodetoggleicon || n.templates.nodetogglericon), { + }, a.getPTOptions("nodeToggleButton")), [n.node.loading && n.loadingMode === "icon" ? (R(), z(L, { key: 0 }, [n.templates.nodetoggleicon || n.templates.nodetogglericon ? (R(), B(ui(n.templates.nodetoggleicon || n.templates.nodetogglericon), { key: 0, node: n.node, expanded: a.expanded, @@ -13324,11 +13246,11 @@ function p_(e, t, n, r, i, a) { "node", "expanded", "class" - ])) : (z(), V(o, G({ + ])) : (R(), B(o, W({ key: 1, spin: "", class: e.cx("nodeToggleIcon") - }, a.getPTOptions("nodeToggleIcon")), null, 16, ["class"]))], 64)) : (z(), B(L, { key: 1 }, [n.templates.nodetoggleicon || n.templates.togglericon ? (z(), V(pi(n.templates.nodetoggleicon || n.templates.togglericon), { + }, a.getPTOptions("nodeToggleIcon")), null, 16, ["class"]))], 64)) : (R(), z(L, { key: 1 }, [n.templates.nodetoggleicon || n.templates.togglericon ? (R(), B(ui(n.templates.nodetoggleicon || n.templates.togglericon), { key: 0, node: n.node, expanded: a.expanded, @@ -13337,14 +13259,14 @@ function p_(e, t, n, r, i, a) { "node", "expanded", "class" - ])) : a.expanded ? (z(), V(pi(n.node.expandedIcon ? "span" : "ChevronDownIcon"), G({ + ])) : a.expanded ? (R(), B(ui(n.node.expandedIcon ? "span" : "ChevronDownIcon"), W({ key: 1, class: e.cx("nodeToggleIcon") - }, a.getPTOptions("nodeToggleIcon")), null, 16, ["class"])) : (z(), V(pi(n.node.collapsedIcon ? "span" : "ChevronRightIcon"), G({ + }, a.getPTOptions("nodeToggleIcon")), null, 16, ["class"])) : (R(), B(ui(n.node.collapsedIcon ? "span" : "ChevronRightIcon"), W({ key: 2, class: e.cx("nodeToggleIcon") - }, a.getPTOptions("nodeToggleIcon")), null, 16, ["class"]))], 64))], 16, f_)), [[l]]), - a.checkboxMode ? (z(), V(s, { + }, a.getPTOptions("nodeToggleIcon")), null, 16, ["class"]))], 64))], 16, s_)), [[l]]), + a.checkboxMode ? (R(), B(s, { key: 0, defaultValue: a.checked, binary: !0, @@ -13356,7 +13278,7 @@ function p_(e, t, n, r, i, a) { "data-p-partialchecked": a.partialChecked }, { icon: P(function(e) { - return [n.templates.checkboxicon ? (z(), V(pi(n.templates.checkboxicon), { + return [n.templates.checkboxicon ? (R(), B(ui(n.templates.checkboxicon), { key: 0, checked: e.checked, partialChecked: a.partialChecked, @@ -13365,7 +13287,7 @@ function p_(e, t, n, r, i, a) { "checked", "partialChecked", "class" - ])) : W("", !0)]; + ])) : U("", !0)]; }), _: 1 }, 8, [ @@ -13375,16 +13297,16 @@ function p_(e, t, n, r, i, a) { "unstyled", "pt", "data-p-partialchecked" - ])) : W("", !0), - n.templates.nodeicon ? (z(), V(pi(n.templates.nodeicon), G({ + ])) : U("", !0), + n.templates.nodeicon ? (R(), B(ui(n.templates.nodeicon), W({ key: 1, node: n.node, class: [e.cx("nodeIcon")] - }, a.getPTOptions("nodeIcon")), null, 16, ["node", "class"])) : (z(), B("span", G({ + }, a.getPTOptions("nodeIcon")), null, 16, ["node", "class"])) : (R(), z("span", W({ key: 2, class: [e.cx("nodeIcon"), n.node.icon] }, a.getPTOptions("nodeIcon")), null, 16)), - H("span", G({ class: e.cx("nodeLabel") }, a.getPTOptions("nodeLabel"), { onKeydown: t[1] ||= qs(function() {}, ["stop"]) }), [n.templates[n.node.type] || n.templates.default ? (z(), V(pi(n.templates[n.node.type] || n.templates.default), { + V("span", W({ class: e.cx("nodeLabel") }, a.getPTOptions("nodeLabel"), { onKeydown: t[1] ||= Hs(function() {}, ["stop"]) }), [n.templates[n.node.type] || n.templates.default ? (R(), B(ui(n.templates[n.node.type] || n.templates.default), { key: 0, node: n.node, expanded: a.expanded, @@ -13393,19 +13315,19 @@ function p_(e, t, n, r, i, a) { "node", "expanded", "selected" - ])) : (z(), B(L, { key: 1 }, [Za(k(a.label(n.node)), 1)], 64))], 16) - ], 16, d_), - a.isNextDropPointActive ? (z(), B("div", { + ])) : (R(), z(L, { key: 1 }, [Ja(k(a.label(n.node)), 1)], 64))], 16) + ], 16, o_), + a.isNextDropPointActive ? (R(), z("div", { key: 1, class: O(e.cx("dropPoint")), "aria-hidden": "true" - }, null, 2)) : W("", !0), - a.hasChildren && a.expanded ? (z(), B("ul", G({ + }, null, 2)) : U("", !0), + a.hasChildren && a.expanded ? (R(), z("ul", W({ key: 2, class: e.cx("nodeChildren"), role: "group" - }, e.ptm("nodeChildren")), [(z(!0), B(L, null, _i(n.node.children, function(r, i) { - return z(), V(c, { + }, e.ptm("nodeChildren")), [(R(!0), z(L, null, mi(n.node.children, function(r, i) { + return R(), B(c, { key: r.key, node: r, parentNode: n.node, @@ -13459,22 +13381,22 @@ function p_(e, t, n, r, i, a) { "unstyled", "pt" ]); - }), 128))], 16)) : W("", !0) - ], 16, u_); + }), 128))], 16)) : U("", !0) + ], 16, a_); } -l_.render = p_; -function m_(e) { +i_.render = c_; +function l_(e) { "@babel/helpers - typeof"; - return m_ = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return l_ = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, m_(e); + }, l_(e); } -function h_(e, t) { +function u_(e, t) { var n = typeof Symbol < "u" && e[Symbol.iterator] || e["@@iterator"]; if (!n) { - if (Array.isArray(e) || (n = v_(e)) || t) { + if (Array.isArray(e) || (n = p_(e)) || t) { n && (e = n); var r = 0, i = function() {}; return { @@ -13514,31 +13436,31 @@ function h_(e, t) { } }; } -function g_(e) { - return b_(e) || y_(e) || v_(e) || __(); +function d_(e) { + return h_(e) || m_(e) || p_(e) || f_(); } -function __() { +function f_() { throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function v_(e, t) { +function p_(e, t) { if (e) { - if (typeof e == "string") return x_(e, t); + if (typeof e == "string") return g_(e, t); var n = {}.toString.call(e).slice(8, -1); - return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? x_(e, t) : void 0; + return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? g_(e, t) : void 0; } } -function y_(e) { +function m_(e) { if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e); } -function b_(e) { - if (Array.isArray(e)) return x_(e); +function h_(e) { + if (Array.isArray(e)) return g_(e); } -function x_(e, t) { +function g_(e, t) { (t == null || t > e.length) && (t = e.length); for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n]; return r; } -function S_(e, t) { +function __(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); @@ -13548,42 +13470,42 @@ function S_(e, t) { } return n; } -function C_(e) { +function v_(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] == null ? {} : arguments[t]; - t % 2 ? S_(Object(n), !0).forEach(function(t) { - w_(e, t, n[t]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : S_(Object(n)).forEach(function(t) { + t % 2 ? __(Object(n), !0).forEach(function(t) { + y_(e, t, n[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : __(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); }); } return e; } -function w_(e, t, n) { - return (t = T_(t)) in e ? Object.defineProperty(e, t, { +function y_(e, t, n) { + return (t = b_(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function T_(e) { - var t = E_(e, "string"); - return m_(t) == "symbol" ? t : t + ""; +function b_(e) { + var t = x_(e, "string"); + return l_(t) == "symbol" ? t : t + ""; } -function E_(e, t) { - if (m_(e) != "object" || !e) return e; +function x_(e, t) { + if (l_(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (m_(r) != "object") return r; + if (l_(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var D_ = { +var S_ = { name: "Tree", - extends: Gg, + extends: Bg, inheritAttrs: !1, emits: [ "node-expand", @@ -13632,7 +13554,7 @@ var D_ = { methods: { initDragDropService: function() { var e = this; - this.dragDropService || (this.dragDropService = Yg(), this.dragStartCleanup = this.dragDropService.onDragStart(function(t) { + this.dragDropService || (this.dragDropService = Wg(), this.dragStartCleanup = this.dragDropService.onDragStart(function(t) { e.dragNode = t.node, e.dragNodeSubNodes = t.subNodes, e.dragNodeIndex = t.index, e.dragNodeScope = t.scope; }), this.dragStopCleanup = this.dragDropService.onDragStop(function() { e.dragNode = null, e.dragNodeSubNodes = null, e.dragNodeIndex = null, e.dragNodeScope = null, e.dragHover = !1; @@ -13643,7 +13565,7 @@ var D_ = { }, onNodeToggle: function(e) { var t = e.key; - this.d_expandedKeys[t] ? (delete this.d_expandedKeys[t], this.$emit("node-collapse", e)) : (this.d_expandedKeys[t] = !0, this.$emit("node-expand", e)), this.d_expandedKeys = C_({}, this.d_expandedKeys), this.$emit("update:expandedKeys", this.d_expandedKeys); + this.d_expandedKeys[t] ? (delete this.d_expandedKeys[t], this.$emit("node-collapse", e)) : (this.d_expandedKeys[t] = !0, this.$emit("node-expand", e)), this.d_expandedKeys = v_({}, this.d_expandedKeys), this.$emit("update:expandedKeys", this.d_expandedKeys); }, onNodeClick: function(e) { if (this.selectionMode != null && e.node.selectable !== !1) { @@ -13656,11 +13578,11 @@ var D_ = { }, handleSelectionWithMetaKey: function(e) { var t = e.originalEvent, n = e.node, r = t.metaKey || t.ctrlKey, i = this.isNodeSelected(n), a; - return i && r ? (this.isSingleSelectionMode() ? a = {} : (a = C_({}, this.selectionKeys), delete a[n.key]), this.$emit("node-unselect", n)) : (this.isSingleSelectionMode() ? a = {} : this.isMultipleSelectionMode() && (a = r && this.selectionKeys ? C_({}, this.selectionKeys) : {}), a[n.key] = !0, this.$emit("node-select", n)), a; + return i && r ? (this.isSingleSelectionMode() ? a = {} : (a = v_({}, this.selectionKeys), delete a[n.key]), this.$emit("node-unselect", n)) : (this.isSingleSelectionMode() ? a = {} : this.isMultipleSelectionMode() && (a = r && this.selectionKeys ? v_({}, this.selectionKeys) : {}), a[n.key] = !0, this.$emit("node-select", n)), a; }, handleSelectionWithoutMetaKey: function(e) { var t = e.node, n = this.isNodeSelected(t), r; - return this.isSingleSelectionMode() ? n ? (r = {}, this.$emit("node-unselect", t)) : (r = {}, r[t.key] = !0, this.$emit("node-select", t)) : n ? (r = C_({}, this.selectionKeys), delete r[t.key], this.$emit("node-unselect", t)) : (r = this.selectionKeys ? C_({}, this.selectionKeys) : {}, r[t.key] = !0, this.$emit("node-select", t)), r; + return this.isSingleSelectionMode() ? n ? (r = {}, this.$emit("node-unselect", t)) : (r = {}, r[t.key] = !0, this.$emit("node-select", t)) : n ? (r = v_({}, this.selectionKeys), delete r[t.key], this.$emit("node-unselect", t)) : (r = this.selectionKeys ? v_({}, this.selectionKeys) : {}, r[t.key] = !0, this.$emit("node-select", t)), r; }, isSingleSelectionMode: function() { return this.selectionMode === "single"; @@ -13688,12 +13610,12 @@ var D_ = { if (e) { var n = !1; if (e.children) { - var r = g_(e.children); + var r = d_(e.children); e.children = []; - var i = h_(r), a; + var i = u_(r), a; try { for (i.s(); !(a = i.n()).done;) { - var o = a.value, s = C_({}, o); + var o = a.value, s = v_({}, o); this.isFilterMatched(s, t) && (n = !0, e.children.push(s)); } } catch (e) { @@ -13706,11 +13628,11 @@ var D_ = { } }, isFilterMatched: function(e, t) { - var n = t.searchFields, r = t.filterText, i = t.strict, a = !1, o = h_(n), s; + var n = t.searchFields, r = t.filterText, i = t.strict, a = !1, o = u_(n), s; try { for (o.s(); !(s = o.n()).done;) { var c = s.value; - String(fc(e, c)).toLocaleLowerCase(this.filterLocale).indexOf(r) > -1 && (a = !0); + String(sc(e, c)).toLocaleLowerCase(this.filterLocale).indexOf(r) > -1 && (a = !0); } } catch (e) { o.e(e); @@ -13737,7 +13659,7 @@ var D_ = { }, isDescendantOf: function(e, t) { if (!e || !e.children) return !1; - var n = h_(e.children), r; + var n = u_(e.children), r; try { for (n.s(); !(r = n.n()).done;) { var i = r.value; @@ -13765,7 +13687,7 @@ var D_ = { } else if (Array.isArray(t)) { if (typeof e == "string") return t.indexOf(e) !== -1; if (Array.isArray(e)) { - var n = h_(e), r; + var n = u_(e), r; try { for (n.s(); !(r = n.n()).done;) { var i = r.value; @@ -13811,7 +13733,7 @@ var D_ = { }, processTreeDrop: function(e, t) { this.dragNodeSubNodes.splice(t, 1); - var n = [].concat(g_(this.value || []), [e]); + var n = [].concat(d_(this.value || []), [e]); this.$emit("update:value", n), this.dragDropService.stopDrag({ node: e }); }, onDrop: function(e) { @@ -13847,10 +13769,10 @@ var D_ = { }, computed: { filteredValue: function() { - var e = [], t = dc(this.filterBy) ? [this.filterBy] : this.filterBy.split(","), n = this.filterValue.trim().toLocaleLowerCase(this.filterLocale), r = this.filterMode === "strict", i = h_(this.value), a; + var e = [], t = oc(this.filterBy) ? [this.filterBy] : this.filterBy.split(","), n = this.filterValue.trim().toLocaleLowerCase(this.filterLocale), r = this.filterMode === "strict", i = u_(this.value), a; try { for (i.s(); !(a = i.n()).done;) { - var o = a.value, s = C_({}, o), c = { + var o = a.value, s = v_({}, o), c = { searchFields: t, filterText: n, strict: r @@ -13885,23 +13807,23 @@ var D_ = { } }, components: { - TreeNode: l_, - InputText: dp, - InputIcon: um, - IconField: cm, - SearchIcon: Kp, - SpinnerIcon: Sd + TreeNode: i_, + InputText: op, + InputIcon: am, + IconField: rm, + SearchIcon: Vp, + SpinnerIcon: _d } }; -function O_(e) { +function C_(e) { "@babel/helpers - typeof"; - return O_ = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return C_ = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; - }, O_(e); + }, C_(e); } -function k_(e, t) { +function w_(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); @@ -13911,43 +13833,43 @@ function k_(e, t) { } return n; } -function A_(e) { +function T_(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] == null ? {} : arguments[t]; - t % 2 ? k_(Object(n), !0).forEach(function(t) { - j_(e, t, n[t]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : k_(Object(n)).forEach(function(t) { + t % 2 ? w_(Object(n), !0).forEach(function(t) { + E_(e, t, n[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : w_(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); }); } return e; } -function j_(e, t, n) { - return (t = M_(t)) in e ? Object.defineProperty(e, t, { +function E_(e, t, n) { + return (t = D_(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } -function M_(e) { - var t = N_(e, "string"); - return O_(t) == "symbol" ? t : t + ""; +function D_(e) { + var t = O_(e, "string"); + return C_(t) == "symbol" ? t : t + ""; } -function N_(e, t) { - if (O_(e) != "object" || !e) return e; +function O_(e, t) { + if (C_(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t); - if (O_(r) != "object") return r; + if (C_(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } -var P_ = ["data-p"], F_ = ["data-p"], I_ = ["aria-labelledby", "aria-label"]; -function L_(e, t, n, r, i, a) { +var k_ = ["data-p"], A_ = ["data-p"], j_ = ["aria-labelledby", "aria-label"]; +function M_(e, t, n, r, i, a) { var o = F("SpinnerIcon"), s = F("InputText"), c = F("SearchIcon"), l = F("InputIcon"), u = F("IconField"), d = F("TreeNode"); - return z(), B("div", G({ + return R(), z("div", W({ class: e.cx("root"), onDragover: t[1] ||= function() { return a.onDragOver && a.onDragOver.apply(a, arguments); @@ -13963,36 +13885,36 @@ function L_(e, t, n, r, i, a) { }, "data-p": a.containerDataP }, e.ptmi("root")), [ - U(Vo, { name: "p-overlay-mask" }, { + H(Io, { name: "p-overlay-mask" }, { default: P(function() { - return [e.loading && e.loadingMode === "mask" ? (z(), B("div", G({ + return [e.loading && e.loadingMode === "mask" ? (R(), z("div", W({ key: 0, class: e.cx("mask") }, e.ptm("mask")), [I(e.$slots, "loadingicon", { class: O(e.cx("loadingIcon")) }, function() { - return [e.loadingIcon ? (z(), B("i", G({ + return [e.loadingIcon ? (R(), z("i", W({ key: 0, class: [ e.cx("loadingIcon"), "pi-spin", e.loadingIcon ] - }, e.ptm("loadingIcon")), null, 16)) : (z(), V(o, G({ + }, e.ptm("loadingIcon")), null, 16)) : (R(), B(o, W({ key: 1, spin: "", class: e.cx("loadingIcon") }, e.ptm("loadingIcon")), null, 16, ["class"]))]; - })], 16)) : W("", !0)]; + })], 16)) : U("", !0)]; }), _: 3 }), - e.filter ? (z(), V(u, { + e.filter ? (R(), B(u, { key: 0, unstyled: e.unstyled, - pt: A_(A_({}, e.ptm("pcFilter")), e.ptm("pcFilterContainer")), + pt: T_(T_({}, e.ptm("pcFilter")), e.ptm("pcFilterContainer")), class: O(e.cx("pcFilterContainer")) }, { default: P(function() { - return [U(s, { + return [H(s, { modelValue: i.filterValue, "onUpdate:modelValue": t[0] ||= function(e) { return i.filterValue = e; @@ -14010,13 +13932,13 @@ function L_(e, t, n, r, i, a) { "unstyled", "onKeyup", "pt" - ]), U(l, { + ]), H(l, { unstyled: e.unstyled, pt: e.ptm("pcFilterIconContainer") }, { default: P(function() { return [I(e.$slots, e.$slots.filtericon ? "filtericon" : "searchicon", { class: O(e.cx("filterIcon")) }, function() { - return [U(c, G({ class: e.cx("filterIcon") }, e.ptm("filterIcon")), null, 16, ["class"])]; + return [H(c, W({ class: e.cx("filterIcon") }, e.ptm("filterIcon")), null, 16, ["class"])]; })]; }), _: 3 @@ -14027,8 +13949,8 @@ function L_(e, t, n, r, i, a) { "unstyled", "pt", "class" - ])) : W("", !0), - H("div", G({ + ])) : U("", !0), + V("div", W({ class: e.cx("wrapper"), style: { maxHeight: e.scrollHeight }, "data-p": a.wrapperDataP @@ -14038,19 +13960,19 @@ function L_(e, t, n, r, i, a) { expandedKeys: e.expandedKeys, selectionKeys: e.selectionKeys }), - a.empty ? a.empty && !a.$pcTreeSelect ? (z(), B("div", G({ + a.empty ? a.empty && !a.$pcTreeSelect ? (R(), z("div", W({ key: 1, class: e.cx("emptyMessage") }, e.ptm("emptyMessage")), [I(e.$slots, "empty", {}, function() { - return [Za(k(a.emptyMessageText), 1)]; - })], 16)) : W("", !0) : (z(), B("ul", G({ + return [Ja(k(a.emptyMessageText), 1)]; + })], 16)) : U("", !0) : (R(), z("ul", W({ key: 0, class: e.cx("rootChildren"), role: "tree", "aria-labelledby": e.ariaLabelledby, "aria-label": e.ariaLabel - }, e.ptm("rootChildren")), [(z(!0), B(L, null, _i(a.valueToRender, function(t, n) { - return z(), V(d, { + }, e.ptm("rootChildren")), [(R(!0), z(L, null, mi(a.valueToRender, function(t, n) { + return R(), B(d, { key: t.key, node: t, rootNodes: a.valueToRender, @@ -14098,14 +14020,14 @@ function L_(e, t, n, r, i, a) { "unstyled", "pt" ]); - }), 128))], 16, I_)), + }), 128))], 16, j_)), I(e.$slots, "footer", { value: e.value, expandedKeys: e.expandedKeys, selectionKeys: e.selectionKeys }) - ], 16, F_) - ], 16, P_); + ], 16, A_) + ], 16, k_); } -D_.render = L_; -export { qn as $, Qa as A, Nn as B, L as C, V as D, H as E, co as F, Yn as G, ti as H, Eo as I, F as J, _i as K, Zn as L, U as M, Gr as N, W as O, Fr as P, P as Q, Xn as R, qs as S, To as T, ai as U, ii as V, z as W, nr as X, Gi as Y, er as Z, $s as _, dh as a, Me as at, as as b, Cm as c, Wt as ct, tp as d, dn as dt, Ae as et, xf as f, an as ft, Wu as g, k as gt, qu as h, fe as ht, Hh as i, Zt as it, Za as j, B as k, bp as l, tn as lt, Xu as m, O as mt, Og as n, qt as nt, th as o, Ut as ot, Id as p, on as pt, I as q, hg as r, N as rt, Bm as s, en as st, D_ as t, je as tt, dp as u, M as ut, Vs as v, _r as w, Ys as x, Bs as y, Ti as z }; +S_.render = M_; +export { Wn as $, Ya as A, Mn as B, L as C, B as D, V as E, ro as F, Kn as G, Qr as H, xo as I, F as J, mi as K, Jn as L, H as M, Hr as N, U as O, Mr as P, P as Q, qn as R, Hs as S, bo as T, ni as U, ti as V, R as W, $n as X, Hi as Y, Zn as Z, Js as _, oh as a, Me as at, es as b, vm as c, Ut as ct, Xf as d, un as dt, Ae as et, gf as f, rn as ft, zu as g, k as gt, Hu as h, fe as ht, Lh as i, Xt as it, Ja as j, z as k, hp as l, en as lt, Gu as m, O as mt, Cg as n, Kt as nt, Xm as o, Ht as ot, jd as p, an as pt, I as q, ug as r, N as rt, Fm as s, $t as st, S_ as t, je as tt, op as u, M as ut, Is as v, mr as w, Ws as x, Fs as y, Si as z }; diff --git a/dist/chunks/mjr-vue-vendor-CEDOnn2t.js b/dist/chunks/mjr-vue-vendor-Dn5oe7QV.js similarity index 99% rename from dist/chunks/mjr-vue-vendor-CEDOnn2t.js rename to dist/chunks/mjr-vue-vendor-Dn5oe7QV.js index 4cbe46f1..713427af 100644 --- a/dist/chunks/mjr-vue-vendor-CEDOnn2t.js +++ b/dist/chunks/mjr-vue-vendor-Dn5oe7QV.js @@ -1,4 +1,4 @@ -import { B as e, L as t, R as n, T as r, X as i, at as a, dt as o, et as s, it as c, nt as l, ot as u, rt as d, st as f, tt as p, ut as m } from "./mjr-primevue-C07IsEdU.js"; +import { B as e, L as t, R as n, T as r, X as i, at as a, dt as o, et as s, it as c, nt as l, ot as u, rt as d, st as f, tt as p, ut as m } from "./mjr-primevue-QrNPJaqR.js"; // node_modules/pinia/dist/pinia.js var h = typeof window < "u", g, _ = (e) => g = e, v = () => t() && n(y) || g, y = Symbol(); function b(e) { diff --git a/dist/chunks/tooltipShortcuts-Ury2eTek.js b/dist/chunks/tooltipShortcuts-BoJmznCQ.js similarity index 95% rename from dist/chunks/tooltipShortcuts-Ury2eTek.js rename to dist/chunks/tooltipShortcuts-BoJmznCQ.js index a6cce0d2..6d54d2d7 100644 --- a/dist/chunks/tooltipShortcuts-Ury2eTek.js +++ b/dist/chunks/tooltipShortcuts-BoJmznCQ.js @@ -1,8 +1,8 @@ -import { Vn as e, bn as t, fn as n, gn as r, in as i, kn as a, un as o, xn as s } from "./config-C9a-wT5M.js"; +import { Cn as e, Sn as t, Un as n, fn as r, jn as i, mn as a, on as o, vn as s } from "./config-D56TZeFo.js"; import { a as c, n as l } from "./graphTraversal-DTdQWkn5.js"; -import { C as u, S as d, b as f, x as p, y as m } from "./generationSectionState-DuXxSw-j.js"; -import { _ as ee, a as te, c as ne, d as re, f as ie, g as ae, h as oe, i as se, l as ce, m as le, n as ue, o as de, p as fe, r as pe, s as me, t as he, u as ge } from "./mjr-primevue-C07IsEdU.js"; -import { t as _e } from "./mjr-vue-vendor-CEDOnn2t.js"; +import { C as u, S as d, b as f, x as p, y as m } from "./generationSectionState-BR-TS47u.js"; +import { _ as ee, a as te, c as ne, d as re, f as ie, g as ae, h as oe, i as se, l as ce, m as le, n as ue, o as de, p as fe, r as pe, s as me, t as he, u as ge } from "./mjr-primevue-QrNPJaqR.js"; +import { t as _e } from "./mjr-vue-vendor-Dn5oe7QV.js"; // ui/features/viewer/floatingViewerProgress.ts var h = "progress-update", g = "__MJR_MFV_PROGRESS_SERVICE__"; function ve() { @@ -14,8 +14,8 @@ function ye(e, t) { return n.detail = t, n; } var be = class { - constructor(e, t = () => s()) { - this.id = String(e || ""), this.promptApi = null, this.executedNodeIds = [], this.totalNodes = 0, this.currentlyExecuting = null, this.errorDetails = null, this._getApp = typeof t == "function" ? t : () => null; + constructor(t, n = () => e()) { + this.id = String(t || ""), this.promptApi = null, this.executedNodeIds = [], this.totalNodes = 0, this.currentlyExecuting = null, this.errorDetails = null, this._getApp = typeof n == "function" ? n : () => null; } setPrompt(e) { let t = e && typeof e == "object" ? e.output : null; @@ -63,8 +63,8 @@ var be = class { this.errorDetails = e || null; } }, xe = class extends EventTarget { - constructor({ getApi: n = (e) => t(e), getApp: r = () => s(), waitForApi: i = (t) => e(t) } = {}) { - super(), this._getApi = n, this._getApp = r, this._waitForApi = i, this.promptsMap = /* @__PURE__ */ new Map(), this.currentExecution = null, this.lastQueueRemaining = 0, this._api = null, this._listenerEntries = [], this._initPromise = null, this._hydrations = /* @__PURE__ */ new Map(); + constructor({ getApi: r = (e) => t(e), getApp: i = () => e(), waitForApi: a = (e) => n(e) } = {}) { + super(), this._getApi = r, this._getApp = i, this._waitForApi = a, this.promptsMap = /* @__PURE__ */ new Map(), this.currentExecution = null, this.lastQueueRemaining = 0, this._api = null, this._listenerEntries = [], this._initPromise = null, this._hydrations = /* @__PURE__ */ new Map(); } getSnapshot() { return { @@ -246,11 +246,11 @@ function b(e, t) { e._mediaProgressTextEl.textContent = n, e._mediaProgressEl.title = n || "", e._mediaProgressEl.classList.toggle("is-error", o), e._mediaProgressEl.classList.toggle("is-visible", !!n); } } -function we(e, t) { - let n = String(t || "").trim(); - if (!n) return !1; +function we(t, n) { + let i = String(n || "").trim(); + if (!i) return !1; try { - return o(n, s()); + return r(i, e()); } catch (e) { return console.debug?.(e), !1; } @@ -321,7 +321,7 @@ var x = /* @__PURE__ */ new Map(), S = null; async function C(e) { let t = Array.from(new Set(w(e).map((e) => D(e)).filter(Boolean))); if (t.length && t.filter((e) => !x.has(e)).length) try { - S ||= n("/object_info").then((e) => e?.ok ? e.json() : null).then((e) => { + S ||= a("/object_info").then((e) => e?.ok ? e.json() : null).then((e) => { if (e && typeof e == "object") for (let [t, n] of Object.entries(e)) x.set(String(t), n); return e; }).catch(() => null), await S; @@ -873,16 +873,16 @@ function dt(e, t, n = null) { } function G(e, t, n = null) { if (!e) return !1; - let i = String(e.type || "").toLowerCase(); - if (i === "number" || i === "int" || i === "float") { + let r = String(e.type || "").toLowerCase(); + if (r === "number" || r === "int" || r === "float") { let n = Number(t); if (Number.isNaN(n)) return !1; - let r = e.options ?? {}, a = r.min ?? -Infinity, o = r.max ?? Infinity, s = Math.min(o, Math.max(a, n)); - (i === "int" || r.precision === 0 || r.round === 1) && (s = Math.round(s)), e.value = s; - } else e.value = i === "toggle" || i === "boolean" ? !!t : t; + let i = e.options ?? {}, a = i.min ?? -Infinity, o = i.max ?? Infinity, s = Math.min(o, Math.max(a, n)); + (r === "int" || i.precision === 0 || i.round === 1) && (s = Math.round(s)), e.value = s; + } else e.value = r === "toggle" || r === "boolean" ? !!t : t; try { - let t = r(), o = n ?? e?.parent ?? null, s = e.value; - e.callback?.(e.value, t, o, null, e), (i === "number" || i === "int" || i === "float") && (e.value = s), ft(e), a(o); + let t = s(), a = n ?? e?.parent ?? null, o = e.value; + e.callback?.(e.value, t, a, null, e), (r === "number" || r === "int" || r === "float") && (e.value = o), ft(e), i(a); } catch (e) { console.debug?.("[MFV] writeWidgetValue", e); } @@ -1301,15 +1301,15 @@ function Dt() { let n = document.createElement("div"); n.className = "mjr-settings-head"; let r = document.createElement("div"); - r.className = "mjr-settings-title", r.textContent = i("settings.majoor.title", "Majoor Assets Manager Settings"); - let a = document.createElement("button"); - a.type = "button", a.className = "mjr-settings-close", a.textContent = "X", a.setAttribute("aria-label", i("btn.close", "Close")), a.addEventListener("click", Z), n.append(r, a); - let o = document.createElement("div"); - o.className = "mjr-settings-tools"; + r.className = "mjr-settings-title", r.textContent = o("settings.majoor.title", "Majoor Assets Manager Settings"); + let i = document.createElement("button"); + i.type = "button", i.className = "mjr-settings-close", i.textContent = "X", i.setAttribute("aria-label", o("btn.close", "Close")), i.addEventListener("click", Z), n.append(r, i); + let a = document.createElement("div"); + a.className = "mjr-settings-tools"; let s = document.createElement("input"); - s.type = "search", s.className = "mjr-settings-search", s.placeholder = i("placeholder.searchSettings", "Search settings"), o.appendChild(s); + s.type = "search", s.className = "mjr-settings-search", s.placeholder = o("placeholder.searchSettings", "Search settings"), a.appendChild(s); let c = document.createElement("div"); - return c.className = "mjr-settings-body", t.append(n, o, c), e.appendChild(t), document.body.appendChild(e), { + return c.className = "mjr-settings-body", t.append(n, a, c), e.appendChild(t), document.body.appendChild(e), { body: c, root: e, search: s @@ -1325,11 +1325,11 @@ function Z() { } } } -function Ot(e = s()) { +function Ot(t = e()) { if (typeof document > "u") return !1; Y?.root?.isConnected || (Y = Dt()); - let t = u(e), n = () => Et(Y.body, t, String(Y.search.value || "").trim().toLowerCase()); - Y.search.oninput = n, Y.search.value = "", n(), Y.root.hidden = !1; + let n = u(t), r = () => Et(Y.body, n, String(Y.search.value || "").trim().toLowerCase()); + Y.search.oninput = r, Y.search.value = "", r(), Y.root.hidden = !1; try { window.dispatchEvent(new CustomEvent(J, { detail: { open: !0 } })); } catch (e) { @@ -1338,8 +1338,8 @@ function Ot(e = s()) { return setTimeout(() => Y?.search?.focus?.(), 0), !0; } // ui/app/openMajoorSettings.ts -function Q(e = s()) { - return Ot(e); +function Q(t = e()) { + return Ot(t); } try { typeof window < "u" && (window.MajoorAssetsManager = window.MajoorAssetsManager || {}, window.MajoorAssetsManager.openSettings = Q); diff --git a/dist/entry.js b/dist/entry.js index 8add150f..a242f1e9 100644 --- a/dist/entry.js +++ b/dist/entry.js @@ -1,24 +1,24 @@ -import { $n as e, A as t, At as n, Bt as r, C as i, Dn as a, F as o, Ft as s, Gn as c, Gt as l, Hn as u, I as d, In as f, Jn as p, Jt as m, Kn as h, Kt as g, Ln as _, M as v, Mt as y, N as b, Nn as x, O as S, Ot as C, P as w, Pn as T, Pt as E, Q as D, Qn as O, R as k, Rn as A, Rt as ee, S as j, St as M, T as N, Tn as te, Un as ne, Vt as P, Wn as re, Wt as F, Xn as I, Xt as ie, Yn as ae, Yt as oe, Zn as se, Zt as ce, _ as le, _t as ue, a as de, ar as fe, at as pe, b as me, bn as he, c as ge, cr as _e, ct as ve, d as ye, dr as be, dt as xe, er as Se, ft as Ce, h as we, in as L, ir as Te, it as Ee, j as De, jt as Oe, kt as ke, lr as Ae, lt as je, m as Me, nr as Ne, o as Pe, on as Fe, ot as Ie, p as Le, qn as Re, qt as ze, r as Be, rr as Ve, rt as He, s as Ue, sn as We, sr as Ge, st as Ke, t as R, tr as qe, tt as Je, u as Ye, ut as Xe, v as Ze, w as Qe, x as z, xn as $e, y as et, z as tt, zn as nt, zt as rt } from "./chunks/config-C9a-wT5M.js"; -import { a as it, i as at, n as ot, t as st } from "./chunks/graphTraversal-DTdQWkn5.js"; -import { _ as ct, c as lt, d as ut, f as dt, g as ft, h as pt, l as mt, m as ht, o as gt, p as _t, s as vt, u as yt } from "./chunks/floatingViewerManager-B_I-SRbd.js"; -import { A as bt, C as xt, D as St, E as Ct, M as wt, N as Tt, O as Et, T as Dt, _ as Ot, g as kt, h as At, j as jt, k as Mt, w as Nt } from "./chunks/generationSectionState-DuXxSw-j.js"; -import { n as Pt, r as B, t as Ft } from "./chunks/events-1iwo5blr.js"; -import { E as It, S as Lt, c as Rt, i as zt, l as Bt, n as Vt, o as Ht, r as Ut, s as Wt, t as Gt, u as Kt, x as qt, y as Jt } from "./chunks/tooltipShortcuts-Ury2eTek.js"; -import { A as Yt, B as Xt, C as Zt, D as Qt, E as $t, F as en, G as tn, H as nn, I as rn, J as an, K as on, L as sn, M as cn, N as ln, O as un, P as dn, R as fn, S as pn, T as mn, U as hn, V as gn, W as _n, X as vn, Y as yn, _ as bn, a as xn, b as Sn, c as Cn, d as wn, f as Tn, g as En, h as Dn, i as On, j as kn, k as An, l as jn, m as Mn, n as Nn, o as Pn, p as Fn, q as In, r as Ln, s as Rn, t as zn, u as Bn, v as Vn, w as Hn, x as Un, y as Wn, z as Gn } from "./chunks/TagsEditor-MUk741GH.js"; -import { $ as Kn, B as qn, C as V, D as Jn, E as H, F as Yn, G as Xn, H as Zn, J as Qn, K as $n, M as U, N as er, O as W, P as tr, Q as G, R as nr, S as rr, T as K, U as ir, V as ar, W as q, X as or, Z as sr, at as cr, b as lr, ct as ur, ft as dr, gt as J, ht as fr, j as pr, k as Y, lt as mr, mt as X, ot as hr, pt as Z, q as gr, st as Q, ut as _r, v as vr, w as yr, x as br, y as xr } from "./chunks/mjr-primevue-C07IsEdU.js"; -import { n as Sr, r as Cr } from "./chunks/mjr-vue-vendor-CEDOnn2t.js"; -import { app as wr } from "../../scripts/app.js"; -function Tr(e = null) { +import { $ as e, $n as t, $t as n, A as r, At as i, B as a, Bn as o, Bt as s, C as c, Cn as l, Dn as u, F as d, Fn as f, Gn as p, Ht as m, I as h, In as g, It as _, Jn as v, Jt as y, Kn as b, Kt as x, L as S, Lt as C, M as w, Mt as T, N as E, Nt as D, O, P as k, Pt as A, Qn as j, Qt as M, Rn as N, S as ee, Sn as te, T as P, Ut as ne, Vn as re, Vt as ie, Wn as F, Xn as I, Xt as ae, Yn as oe, Yt as se, Z as ce, Zn as le, Zt as ue, _ as de, a as fe, ar as pe, at as me, b as he, c as ge, cn as _e, ct as ve, d as ye, dr as be, dt as xe, er as Se, et as Ce, ft as we, h as Te, ir as Ee, j as De, jt as Oe, kn as ke, ln as Ae, lr as je, lt as Me, m as Ne, mt as Pe, nr as Fe, o as Ie, on as L, or as Le, ot as Re, p as ze, pr as Be, pt as Ve, qn as He, qt as Ue, r as We, rr as Ge, rt as Ke, s as qe, sr as Je, st as Ye, t as R, tr as Xe, u as Ze, ur as Qe, ut as z, v as $e, w as et, wt as tt, x as nt, y as rt, yt as it, z as at, zn as ot } from "./chunks/config-D56TZeFo.js"; +import { a as st, i as ct, n as lt, t as ut } from "./chunks/graphTraversal-DTdQWkn5.js"; +import { _ as dt, c as ft, d as pt, f as mt, g as ht, h as gt, l as _t, m as vt, o as yt, p as bt, s as xt, u as St } from "./chunks/floatingViewerManager-D_aLLeau.js"; +import { A as Ct, C as wt, D as Tt, E as Et, M as Dt, N as Ot, O as kt, T as At, _ as jt, g as Mt, h as Nt, j as Pt, k as Ft, w as It } from "./chunks/generationSectionState-BR-TS47u.js"; +import { n as Lt, r as B, t as Rt } from "./chunks/events-1iwo5blr.js"; +import { E as zt, S as Bt, c as Vt, i as Ht, l as Ut, n as Wt, o as Gt, r as Kt, s as qt, t as Jt, u as Yt, x as Xt, y as Zt } from "./chunks/tooltipShortcuts-BoJmznCQ.js"; +import { A as Qt, B as $t, C as en, D as tn, E as nn, F as rn, G as an, H as on, I as sn, J as cn, K as ln, L as un, M as dn, N as fn, O as pn, P as mn, R as hn, S as gn, T as _n, U as vn, V as yn, W as bn, X as xn, Y as Sn, _ as Cn, a as wn, b as Tn, c as En, d as Dn, f as On, g as kn, h as An, i as jn, j as Mn, k as Nn, l as Pn, m as Fn, n as In, o as Ln, p as Rn, q as zn, r as Bn, s as Vn, t as Hn, u as Un, v as Wn, w as Gn, x as Kn, y as qn, z as Jn } from "./chunks/TagsEditor-NiAR71Jm.js"; +import { $ as Yn, B as Xn, C as V, D as Zn, E as H, F as Qn, G as $n, H as er, J as tr, K as nr, M as U, N as rr, O as W, P as ir, Q as G, R as ar, S as or, T as K, U as sr, V as cr, W as q, X as lr, Z as ur, at as dr, b as fr, ct as pr, ft as mr, gt as J, ht as hr, j as gr, k as Y, lt as _r, mt as X, ot as vr, pt as Z, q as yr, st as Q, ut as br, v as xr, w as Sr, x as Cr, y as wr } from "./chunks/mjr-primevue-QrNPJaqR.js"; +import { n as Tr, r as Er } from "./chunks/mjr-vue-vendor-Dn5oe7QV.js"; +import { app as Dr } from "../../scripts/app.js"; +function Or(e = null) { return null; } -function Er() { +function kr() { return null; } try { - typeof window < "u" && p && p.LIST; + typeof window < "u" && I && I.LIST; } catch {} // ui/integration/comfy_send_to_am.ts -var Dr = "MajoorAssetsManager.SendTo", Or = "Send to Asset Manager", kr = /* @__PURE__ */ new Set([ +var Ar = "MajoorAssetsManager.SendTo", jr = "Send to Asset Manager", Mr = /* @__PURE__ */ new Set([ "SaveImage", "PreviewImage", "VHS_VideoCombine", @@ -28,11 +28,11 @@ var Dr = "MajoorAssetsManager.SendTo", Or = "Send to Asset Manager", kr = /* @__ "SaveAnimatedPNG", "SaveAudio" ]); -function Ar(e) { +function Nr(e) { let t = String(e?.comfyClass || e?.type || "").trim(); - return kr.has(t); + return Mr.has(t); } -function jr(e) { +function Pr(e) { let t = []; try { let n = e?.imgs && Array.isArray(e.imgs) ? e.imgs : null, r = []; @@ -60,15 +60,15 @@ function jr(e) { } catch {} return t; } -async function Mr(e) { - let t = $e(), n = he(t); - if (!e.length) nt({ +async function Fr(e) { + let t = l(), n = te(t); + if (!e.length) re({ severity: "warn", summary: "Majoor Assets Manager", detail: "No output to send (run the node first).", life: 3500 }); - else if (!n || typeof n.fetchApi != "function") nt({ + else if (!n || typeof n.fetchApi != "function") re({ severity: "error", summary: "Majoor Assets Manager", detail: "ComfyUI API unavailable.", @@ -81,14 +81,14 @@ async function Mr(e) { body: JSON.stringify({ items: e }) }); if (!r.ok && r.status !== 404) throw Error(`HTTP ${r.status}`); - We(t, "majoor-assets"), nt({ + Ae(t, "majoor-assets"), re({ severity: "success", summary: "Majoor Assets Manager", detail: `Sent ${e.length} item(s) to the asset grid.`, life: 2500 }); } catch (e) { - nt({ + re({ severity: "error", summary: "Majoor Assets Manager", detail: `Failed to send: ${e?.message || e}`, @@ -96,16 +96,16 @@ async function Mr(e) { }); } } -function Nr() { - let e = $e(); - !e || typeof e.registerExtension != "function" ? setTimeout(Nr, 100) : e.registerExtension({ - name: Dr, +function Ir() { + let e = l(); + !e || typeof e.registerExtension != "function" ? setTimeout(Ir, 100) : e.registerExtension({ + name: Ar, getNodeMenuItems(e) { try { - return Ar(e) ? [{ - content: Or, + return Nr(e) ? [{ + content: jr, callback: () => { - Mr(jr(e)); + Fr(Pr(e)); } }] : []; } catch { @@ -114,11 +114,11 @@ function Nr() { } }); } -Nr(); +Ir(); // ui/integration/majoor_save_placeholders.ts -var Pr = "MajoorAssetsManager.SavePlaceholders", Fr = /* @__PURE__ */ new Set(["MajoorSaveImage", "MajoorSaveVideo"]), Ir = /dd?|MM?|hh?|mm?|ss?|yyy?y?/g; -function Lr(e, t) { - return e.replace(Ir, (e) => { +var Lr = "MajoorAssetsManager.SavePlaceholders", Rr = /* @__PURE__ */ new Set(["MajoorSaveImage", "MajoorSaveVideo"]), zr = /dd?|MM?|hh?|mm?|ss?|yyy?y?/g; +function Br(e, t) { + return e.replace(zr, (e) => { if (e === "yyyy") return String(t.getFullYear()); if (e === "yy") return String(t.getFullYear()).substring(2, 4); let n; @@ -143,51 +143,51 @@ function Lr(e, t) { return String(n).padStart(e.length, "0"); }); } -var Rr = /[/?<>\\:*|"\x00-\x1F\x7F]/g; -function zr(e) { +var Vr = /[/?<>\\:*|"\x00-\x1F\x7F]/g; +function Hr(e) { let t = e?.nodes ?? e?._nodes; return Array.isArray(t) ? t : []; } -function Br(e, t) { +function Ur(e, t) { return String(t ?? "").replace(/%([^%]+)%/g, (t, n) => { let r = String(n).split("."); - if (r.length !== 2) return r[0].startsWith("date:") ? Lr(r[0].substring(5), /* @__PURE__ */ new Date()) : t; - let i = zr(e), a = i.filter((e) => e?.properties?.["Node name for S&R"] === r[0]); + if (r.length !== 2) return r[0].startsWith("date:") ? Br(r[0].substring(5), /* @__PURE__ */ new Date()) : t; + let i = Hr(e), a = i.filter((e) => e?.properties?.["Node name for S&R"] === r[0]); a.length || (a = i.filter((e) => e?.title === r[0])); let o = a[0]; if (!o) return t; let s = Array.isArray(o.widgets) ? o.widgets.find((e) => e?.name === r[1]) : null; - return s ? String(s.value ?? "").replace(Rr, "_") : t; + return s ? String(s.value ?? "").replace(Vr, "_") : t; }); } -function Vr(e, t) { +function Wr(e, t) { try { let n = Array.isArray(e?.widgets) ? e.widgets.find((e) => e?.name === "filename_prefix") : null; if (!n) return; let r = n.serializeValue; n.serializeValue = () => { let i = typeof r == "function" ? r.call(n) : n.value; - return Br(e?.graph || t?.graph, i); + return Ur(e?.graph || t?.graph, i); }; } catch {} } -function Hr() { - let e = $e(); - !e || typeof e.registerExtension != "function" ? setTimeout(Hr, 100) : e.registerExtension({ - name: Pr, +function Gr() { + let e = l(); + !e || typeof e.registerExtension != "function" ? setTimeout(Gr, 100) : e.registerExtension({ + name: Lr, nodeCreated(t) { try { let n = String(t?.comfyClass || t?.type || ""); - if (!Fr.has(n)) return; - Vr(t, e); + if (!Rr.has(n)) return; + Wr(t, e); } catch {} } }); } -Hr(); +Gr(); // ui/app/bootstrap.ts -var Ur = !1, Wr = null, Gr = !1, Kr = null; -function qr() { +var Kr = !1, qr = null, Jr = !1, Yr = null; +function Xr() { try { let e = window?.__MJR_EXECUTION_RUNTIME__; return !String(e?.active_prompt_id || "").trim(); @@ -195,26 +195,26 @@ function qr() { return console.debug?.(e), !0; } } -async function Jr(e = {}) { - if (!R || typeof R != "object" || !R.AUTO_SCAN_ON_STARTUP || Ur) return; +async function Zr(e = {}) { + if (!R || typeof R != "object" || !R.AUTO_SCAN_ON_STARTUP || Kr) return; let t = Math.max(0, Number(e?.delayMs) || 0), n = e?.idleOnly !== !1; - if (t > 0) Wr && clearTimeout(Wr), Wr = setTimeout(() => { - Wr = null, Jr({ + if (t > 0) qr && clearTimeout(qr), qr = setTimeout(() => { + qr = null, Zr({ ...e, delayMs: 0 }); }, t); - else if (n && !qr()) Wr && clearTimeout(Wr), Wr = setTimeout(() => { - Wr = null, Jr({ + else if (n && !Xr()) qr && clearTimeout(qr), qr = setTimeout(() => { + qr = null, Zr({ ...e, delayMs: 0 }); }, 5e3); else { - Ur = !0; + Kr = !0; try { - ft("[Majoor] Starting startup scan of output directory..."); - let e = await me(p.SCAN, { + ht("[Majoor] Starting startup scan of output directory..."); + let e = await he(I.SCAN, { recursive: !0, incremental: !0, fast: !0, @@ -222,30 +222,30 @@ async function Jr(e = {}) { }); if (e.ok) { let t = e.data; - ft(`[Majoor] Startup scan complete - added: ${t.added}, updated: ${t.updated}, skipped: ${t.skipped}`); + ht(`[Majoor] Startup scan complete - added: ${t.added}, updated: ${t.updated}, skipped: ${t.skipped}`); } else console.warn("[Majoor] Majoor [WARN]: Startup scan failed:", e.error); } catch (e) { console.error("[Majoor] ERROR: Startup scan error:", e); } } } -async function Yr() { +async function Qr() { try { await Promise.allSettled([ - Pe(p.HEALTH), - Pe(`${p.HEALTH_COUNTERS}?scope=output`), - Pe(p.HEALTH_DB) + Ie(I.HEALTH), + Ie(`${I.HEALTH_COUNTERS}?scope=output`), + Ie(I.HEALTH_DB) ]); } catch (e) { console.debug?.(e); } } -async function Xr(e = {}) { - return Gr ? Kr || Promise.resolve() : (Gr = !0, Kr = (async () => { - await Zr(), await Yr(), await Jr(e); - })(), Kr); +async function $r(e = {}) { + return Jr ? Yr || Promise.resolve() : (Jr = !0, Yr = (async () => { + await ei(), await Qr(), await Zr(e); + })(), Yr); } -function Zr() { +function ei() { return new Promise((e) => { try { if (typeof window > "u") { @@ -264,26 +264,26 @@ function Zr() { } }); } -async function Qr() { +async function ti() { try { - ft("[Majoor] Testing API connection..."); - let e = await Pe(p.HEALTH); - e?.ok ? ft("[Majoor] API connection successful, health:", e.data.overall) : console.error("[Majoor] ERROR: API health check failed:", e?.error); + ht("[Majoor] Testing API connection..."); + let e = await Ie(I.HEALTH); + e?.ok ? ht("[Majoor] API connection successful, health:", e.data.overall) : console.error("[Majoor] ERROR: API health check failed:", e?.error); } catch (e) { console.error("[Majoor] ERROR: Failed to connect to API:", e); } } // ui/app/style.ts -function $r() { +function ni() { let e = "mjr-feed-selection-override"; if (typeof document > "u" || document.getElementById(e)) return; let t = document.createElement("style"); t.id = e, t.textContent = "\n .mjr-bottom-feed .mjr-asset-card.is-selected,\n .mjr-bottom-feed .mjr-card.is-selected {\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mjr-accent, #5fb3ff) 78%, #ffffff 22%), 0 0 0 6px color-mix(in srgb, var(--mjr-accent, #5fb3ff) 34%, transparent), 0 0 24px color-mix(in srgb, var(--mjr-accent, #5fb3ff) 52%, transparent), 0 10px 28px rgba(0, 0, 0, 0.32) !important;\n outline: 2px solid color-mix(in srgb, var(--mjr-accent, #5fb3ff) 85%, #ffffff 15%) !important;\n outline-offset: 0 !important;\n border-color: color-mix(in srgb, var(--mjr-accent, #5fb3ff) 62%, var(--mjr-border, rgba(255, 255, 255, 0.12))) !important;\n overflow: visible !important;\n z-index: 12 !important;\n }\n ", document.head.appendChild(t); } -function ei({ enabled: e = !0 } = {}) { +function ri({ enabled: e = !0 } = {}) { if (!e) return; let t = "mjr-theme-comfy-css"; - if (document.getElementById(t)) $r(); + if (document.getElementById(t)) ni(); else try { let e = new URL("data:text/css;base64,LyoqCiAqIE1ham9vciBBc3NldHMgTWFuYWdlciAtIENvbWZ5LWxpa2UgdGhlbWUgbGF5ZXIKICoKICogUlVMRVM6CiAqIC0gRG8gTk9UIGhhcmRjb2RlIGEgY3VzdG9tIHBhbGV0dGU7IHVzZSBleGlzdGluZyBDb21meVVJIENTUyB2YXJpYWJsZXMgdmlhIHZhciguLi4pLgogKiAtIEtlZXAgZXZlcnl0aGluZyBzY29wZWQgdW5kZXIgYC5tanItYXNzZXRzLW1hbmFnZXJgIHRvIGF2b2lkIGxlYWtpbmcgc3R5bGVzIHRvIENvbWZ5VUkgKGV4Y2VwdCBgLm1qci1wb3BvdmVyKmAgd2hpY2ggY2FuIGJlIHBvcnRhbGVkIHRvIGBkb2N1bWVudC5ib2R5YCkuCiAqLwoKLm1qci1hc3NldHMtbWFuYWdlciB7CiAgICAvKiBUeXBvZ3JhcGh5ICovCiAgICBmb250LWZhbWlseTogdmFyKAogICAgICAgIC0tY29tZnktZm9udCwKICAgICAgICB2YXIoCiAgICAgICAgICAgIC0tZm9udC1pbnRlciwKICAgICAgICAgICAgdWktc2Fucy1zZXJpZiwKICAgICAgICAgICAgc3lzdGVtLXVpLAogICAgICAgICAgICAtYXBwbGUtc3lzdGVtLAogICAgICAgICAgICAiU2Vnb2UgVUkiLAogICAgICAgICAgICBSb2JvdG8sCiAgICAgICAgICAgIEFyaWFsLAogICAgICAgICAgICBzYW5zLXNlcmlmCiAgICAgICAgKQogICAgKTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjM1OwogICAgY29sb3I6IHZhcigtLWZnLWNvbG9yLCB2YXIoLS1jb250ZW50LWZnLCB2YXIoLS1pbnB1dC10ZXh0LCAjZGRkKSkpOwoKICAgIC8qCiAgICAgKiBTdXJmYWNlcyAtIHByaW9yaXR5OiBDb21meVVJIHYxLjQyIGRlc2lnbi1zeXN0ZW0gdG9rZW4gLT4gbGVnYWN5IHRva2VuIC0+IGhhcmQgZmFsbGJhY2sKICAgICAqIE5ldyB0b2tlbnM6IC0taW50ZXJmYWNlLXBhbmVsLXN1cmZhY2UsIC0taW50ZXJmYWNlLW1lbnUtc3VyZmFjZSwgLS1pbnRlcmZhY2UtcGFuZWwtaG92ZXItc3VyZmFjZSwKICAgICAqICAgICAgICAgICAgIC0tbW9kYWwtY2FyZC1iYWNrZ3JvdW5kLCAtLWJ1dHRvbi1zdXJmYWNlLCAtLWJ1dHRvbi1ob3Zlci1zdXJmYWNlLAogICAgICogICAgICAgICAgICAgLS1pbnRlcmZhY2UtcGFuZWwtc2VsZWN0ZWQtc3VyZmFjZSwgLS1wcmltYXJ5LWJhY2tncm91bmQsIC0tbXV0ZWQtZm9yZWdyb3VuZCwKICAgICAqICAgICAgICAgICAgIC0tYm9yZGVyLWRlZmF1bHQsIC0tc3VjY2Vzcy1iYWNrZ3JvdW5kLCAtLXdhcm5pbmctYmFja2dyb3VuZCwgLS1kZXN0cnVjdGl2ZS1iYWNrZ3JvdW5kCiAgICAgKi8KICAgIC0tbWpyLXN1cmZhY2UtMDogdmFyKC0taW50ZXJmYWNlLXBhbmVsLXN1cmZhY2UsIHZhcigtLWNvbnRlbnQtYmcsICMxZTFlMWUpKTsKICAgIC0tbWpyLXN1cmZhY2UtMTogdmFyKC0taW50ZXJmYWNlLW1lbnUtc3VyZmFjZSwgdmFyKC0tY29tZnktbWVudS1iZywgIzJhMmEyYSkpOwogICAgLS1tanItc3VyZmFjZS0yOiB2YXIoLS1pbnRlcmZhY2UtcGFuZWwtaG92ZXItc3VyZmFjZSwgdmFyKC0tY29tZnktbWVudS1zZWNvbmRhcnktYmcsICMzMzMpKTsKICAgIC0tbWpyLXN1cmZhY2UtMzogdmFyKC0tbW9kYWwtY2FyZC1iYWNrZ3JvdW5kLCB2YXIoLS1jb21meS1tZW51LWJnLCAjMjIyKSk7CiAgICAtLW1qci1ib3JkZXI6IHZhcigtLWJvcmRlci1kZWZhdWx0LCB2YXIoLS1ib3JkZXItY29sb3IsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikpKTsKICAgIC0tbWpyLW11dGVkOiB2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kLCB2YXIoLS1kZXNjcmlwLXRleHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NSkpKTsKICAgIC0tbWpyLWFjY2VudDogdmFyKC0tcHJpbWFyeS1iYWNrZ3JvdW5kLCB2YXIoLS1jb21meS1hY2NlbnQsICM1ZmIzZmYpKTsKICAgIC0tbWpyLWFjY2VudC1ob3ZlcjogdmFyKC0tcHJpbWFyeS1iYWNrZ3JvdW5kLWhvdmVyLCB2YXIoLS1jb21meS1hY2NlbnQsICM3ZWM4ZmYpKTsKICAgIC0tbWpyLWJ0bi1zdXJmYWNlOiB2YXIoLS1idXR0b24tc3VyZmFjZSwgdmFyKC0tbWpyLXN1cmZhY2UtMikpOwogICAgLS1tanItYnRuLWhvdmVyOiB2YXIoLS1idXR0b24taG92ZXItc3VyZmFjZSwgdmFyKC0tbWpyLXN1cmZhY2UtMikpOwogICAgLS1tanItc2VsZWN0ZWQtc3VyZmFjZTogdmFyKC0taW50ZXJmYWNlLXBhbmVsLXNlbGVjdGVkLXN1cmZhY2UsIHJnYmEoOTUsIDE3OSwgMjU1LCAwLjE1KSk7CgogICAgLyogUmFkaWkgLSB1c2UgQ29tZnlVSSBkZXNpZ24tc3lzdGVtIHJhZGl1cyB0b2tlbnMgd2hlbiBhdmFpbGFibGUgKi8KICAgIC0tbWpyLXItc206IHZhcigtLXJhZGl1cy1zbSwgOHB4KTsKICAgIC0tbWpyLXItbWQ6IHZhcigtLXJhZGl1cy1tZCwgMTBweCk7CiAgICAtLW1qci1yLWxnOiB2YXIoLS1yYWRpdXMtbGcsIDEycHgpOwoKICAgIC8qIFNwYWNpbmcgKi8KICAgIC0tbWpyLXBhZC1zbTogOHB4OwogICAgLS1tanItcGFkLW1kOiAxMnB4OwogICAgLS1tanItcGFkLWxnOiAxNnB4OwoKICAgIC8qIFNlbWFudGljIFN0YXR1cyBDb2xvcnMgLSBwcmVmZXIgQ29tZnlVSSB2MS40MiBzZW1hbnRpYyB0b2tlbnMgKi8KICAgIC0tbWpyLXN0YXR1cy1zdWNjZXNzOiB2YXIoLS1zdWNjZXNzLWJhY2tncm91bmQsIHZhcigtLWNvbWZ5LXN0YXR1cy1zdWNjZXNzLCAjNGNhZjUwKSk7CiAgICAtLW1qci1zdGF0dXMtd2FybmluZzogdmFyKC0td2FybmluZy1iYWNrZ3JvdW5kLCB2YXIoLS1jb21meS1zdGF0dXMtd2FybmluZywgI2ZmYTcyNikpOwogICAgLS1tanItc3RhdHVzLWVycm9yOiB2YXIoLS1kZXN0cnVjdGl2ZS1iYWNrZ3JvdW5kLCB2YXIoLS1jb21meS1zdGF0dXMtZXJyb3IsICNmNDQzMzYpKTsKICAgIC0tbWpyLXN0YXR1cy1pbmZvOiB2YXIoLS1jb21meS1zdGF0dXMtaW5mbywgIzIxOTZmMyk7CiAgICAtLW1qci1zdGF0dXMtbmV1dHJhbDogdmFyKC0tY29tZnktc3RhdHVzLW5ldXRyYWwsICM5ZTllOWUpOwogICAgLS1tanItc3Rhci1hY3RpdmU6ICNmZmQ0NWE7CgogICAgLyogQmFkZ2UgY29sb3JzIChvdmVycmlkZGVuIGJ5IHNldHRpbmdzKSAqLwogICAgLS1tanItYmFkZ2UtaW1hZ2U6ICMyMTk2ZjM7CiAgICAtLW1qci1iYWRnZS12aWRlbzogIzljMjdiMDsKICAgIC0tbWpyLWJhZGdlLWF1ZGlvOiAjZmY5ODAwOwogICAgLS1tanItYmFkZ2UtbW9kZWwzZDogIzRjYWY1MDsKICAgIC0tbWpyLWNhcmQtaG92ZXItY29sb3I6IHZhcigtLWludGVyZmFjZS1wYW5lbC1ob3Zlci1zdXJmYWNlLCAjM2QzZDNkKTsKICAgIC0tbWpyLWNhcmQtc2VsZWN0aW9uLWNvbG9yOiB2YXIoLS1pbnRlcmZhY2UtcGFuZWwtc2VsZWN0ZWQtc3VyZmFjZSwgIzRhOTBlMik7CiAgICAtLW1qci1yYXRpbmctY29sb3I6ICNmZjk1MDA7CiAgICAtLW1qci10YWctY29sb3I6ICM0YTkwZTI7Cn0KCi8qIE1ha2UgdGhlIHRoZW1lIHZpc2libHkgYXBwbHkgZXZlbiB3aXRoIGlubGluZSBzdHlsZXMgKi8KLm1qci1hc3NldHMtbWFuYWdlciAqIHsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIubWpyLWFtLWNvbnRhaW5lciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGhlaWdodDogMTAwJTsKICAgIG92ZXJmbG93OiBoaWRkZW47Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hbS1oZWFkZXIgewogICAgcGFkZGluZzogMTRweCAxNnB4OwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIpOwogICAgYmFja2dyb3VuZDogdmFyKC0tbWpyLXN1cmZhY2UtMSk7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHotaW5kZXg6IDI7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hbS1oZWFkZXItcm93IHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMHB4OwogICAgbWluLWhlaWdodDogMjhweDsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIHJvdy1nYXA6IDEwcHg7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hbS1oZWFkZXItbGVmdCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEwcHg7CiAgICBtaW4td2lkdGg6IDA7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hbS1oZWFkZXItYWN0aW9ucyB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEwcHg7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGZsZXgtd3JhcDogd3JhcDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFtLWhlYWRlci10b29scyB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGdhcDogOHB4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLXRhYnMgewogICAgLyogUXVldWUtbGlrZSB0YWJzIChhY3RpdmUgcGlsbCwgb3RoZXJzIGFzIHRleHQpICovCiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGJvcmRlcjogbm9uZTsKICAgIHBhZGRpbmc6IDA7CiAgICBnYXA6IDEwcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBmbGV4OiAxIDEgYXV0bzsKICAgIG1pbi13aWR0aDogMDsKICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICBvdmVyZmxvdy15OiBoaWRkZW47CiAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci10YWJzOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICB3aWR0aDogMDsKICAgIGhlaWdodDogMDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLXRhYiB7CiAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29udGVudC1mZywgI2RkZCkgNjUlLCB0cmFuc3BhcmVudCk7CiAgICB0cmFuc2l0aW9uOgogICAgICAgIHRyYW5zZm9ybSAxMjBtcyBlYXNlLAogICAgICAgIGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZSwKICAgICAgICBjb2xvciAxMjBtcyBlYXNlLAogICAgICAgIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItdGFiOmhvdmVyIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsKICAgIGNvbG9yOiB2YXIoLS1jb250ZW50LWZnLCAjZGRkKTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA1NSUsIHRyYW5zcGFyZW50KTsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1ib3JkZXIpIDcwJSwgdHJhbnNwYXJlbnQpOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItdGFiLmlzLWFjdGl2ZSB7CiAgICBjb2xvcjogdmFyKC0tY29udGVudC1mZywgI2ZmZik7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMikgODAlLCB0cmFuc3BhcmVudCk7CiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYm9yZGVyKSA4NSUsIHRyYW5zcGFyZW50KTsKICAgIGJveC1zaGFkb3c6IDAgNnB4IDE4cHggcmdiYSgwLCAwLCAwLCAwLjE4KTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWljb24tYnRuIHsKICAgIHdpZHRoOiAyOHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcsIDAuNXJlbSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tanItYm9yZGVyKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLW1qci1zdXJmYWNlLTIpOwogICAgY29sb3I6IHZhcigtLWNvbnRlbnQtZmcsICNkZGQpOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgcGFkZGluZzogMDsKICAgIHRyYW5zaXRpb246CiAgICAgICAgdHJhbnNmb3JtIDEyMG1zIGVhc2UsCiAgICAgICAgYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLAogICAgICAgIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItaWNvbi1idG46aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgNDUlLCB2YXIoLS1tanItYm9yZGVyKSk7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMikgODAlLCB2YXIoLS1tanItYWNjZW50KSA4JSk7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1pY29uLWJ0bi5tanItY29udGV4dC1hY3RpdmUsCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1pY29uLWJ0bi5tanItcG9wb3Zlci1vcGVuIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDg1JSwgdmFyKC0tbWpyLWJvcmRlcikpOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTIpIDU1JSwgdmFyKC0tbWpyLWFjY2VudCkgMTIlKTsKICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgMzUlLCB0cmFuc3BhcmVudCk7Cn0KCi8qIEZsb2F0aW5nIFZpZXdlciBidXR0b24gLSB0ZWFsIGdsb3cgd2hlbiB2aWV3ZXIgaXMgb3BlbiAqLwoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItaWNvbi1idG4ubWpyLW1mdi1idG4tYWN0aXZlIHsKICAgIGNvbG9yOiAjNGRkOWMwOwogICAgYm9yZGVyLWNvbG9yOiByZ2JhKDc3LCAyMTcsIDE5MiwgMC41NSk7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDc3LCAyMTcsIDE5MiwgMC4xKTsKICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDc3LCAyMTcsIDE5MiwgMC4yNSk7Cn0KLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWljb24tYnRuLm1qci1tZnYtYnRuLWFjdGl2ZSAucGkgewogICAgb3BhY2l0eTogMTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWljb24tYnRuLm1qci1tZXNzYWdlLWJ0biB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBvdmVyZmxvdzogdmlzaWJsZTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWljb24tYnRuLm1qci1tZXNzYWdlLWhhcy11bnJlYWQgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgNzUlLCB2YXIoLS1tanItYm9yZGVyKSk7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMikgNzIlLCB2YXIoLS1tanItYWNjZW50KSAxMSUpOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItbWVzc2FnZS1iYWRnZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IC01cHg7CiAgICByaWdodDogLTZweDsKICAgIG1pbi13aWR0aDogMTZweDsKICAgIGhlaWdodDogMTZweDsKICAgIHBhZGRpbmc6IDAgNHB4OwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMSkgNTUlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMykpOwogICAgYmFja2dyb3VuZDogI2VmNTM1MDsKICAgIGNvbG9yOiAjZmZmOwogICAgZm9udC1zaXplOiAxMHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMzUpOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItaWNvbi1idG4gLnBpIHsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgb3BhY2l0eTogMC45Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItaWNvbi1idG46ZGlzYWJsZWQsCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1haS1jb250cm9sOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNTsKICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICB0cmFuc2Zvcm06IG5vbmU7CiAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwLjQ1KTsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1ib3JkZXIpIDg4JSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMikgOTIlLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDsKICAgIGNvbG9yOiB2YXIoLS1tanItbXV0ZWQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KSkgIWltcG9ydGFudDsKICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFpLWRpc2FibGVkIC5tanItYWktY29udHJvbDpob3ZlciB7CiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFpLWRpc2FibGVkLWJsb2NrIHsKICAgIG9wYWNpdHk6IDAuNTg7CiAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwLjQ1KTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFpLWRpc2FibGVkLWJsb2NrIC5tanItYWktY29udHJvbCwKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFpLWRpc2FibGVkLWJsb2NrIGJ1dHRvbiB7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQoKLyogUG9wb3ZlcnMgY2FuIGJlIG1vdmVkIHRvIGBkb2N1bWVudC5ib2R5YCAocG9ydGFsKSB0byBhdm9pZCBiZWluZyBjbGlwcGVkLiAqLwoubWpyLXBvcG92ZXIgewogICAgZm9udC1mYW1pbHk6IHZhcigKICAgICAgICAtLWNvbWZ5LWZvbnQsCiAgICAgICAgdmFyKAogICAgICAgICAgICAtLWZvbnQtaW50ZXIsCiAgICAgICAgICAgIHVpLXNhbnMtc2VyaWYsCiAgICAgICAgICAgIHN5c3RlbS11aSwKICAgICAgICAgICAgLWFwcGxlLXN5c3RlbSwKICAgICAgICAgICAgIlNlZ29lIFVJIiwKICAgICAgICAgICAgUm9ib3RvLAogICAgICAgICAgICBBcmlhbCwKICAgICAgICAgICAgc2Fucy1zZXJpZgogICAgICAgICkKICAgICk7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBsaW5lLWhlaWdodDogMS4zNTsKICAgIGNvbG9yOiB2YXIoLS1mZy1jb2xvciwgdmFyKC0tY29udGVudC1mZywgdmFyKC0taW5wdXQtdGV4dCwgI2RkZCkpKTsKCiAgICAvKiBQcm92aWRlIGZhbGxiYWNrcyB3aGVuIG91dHNpZGUgYC5tanItYXNzZXRzLW1hbmFnZXJgIHNjb3BlICovCiAgICAtLW1qci1zdXJmYWNlLTE6IHZhcigtLWludGVyZmFjZS1tZW51LXN1cmZhY2UsIHZhcigtLWNvbWZ5LW1lbnUtYmcsICMyYTJhMmEpKTsKICAgIC0tbWpyLWJvcmRlcjogdmFyKC0tYm9yZGVyLWRlZmF1bHQsIHZhcigtLWJvcmRlci1jb2xvciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSkpOwogICAgLS1tanItbXV0ZWQ6IHZhcigtLW11dGVkLWZvcmVncm91bmQsIHZhcigtLWRlc2NyaXAtdGV4dCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KSkpOwogICAgLS1tanItYWNjZW50OiB2YXIoLS1wcmltYXJ5LWJhY2tncm91bmQsIHZhcigtLWNvbWZ5LWFjY2VudCwgIzVmYjNmZikpOwogICAgLS1tanItcG9wb3Zlci16LWluZGV4OiAyMTQ3NDgzNjQ3OwoKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDogMDsKICAgIGxlZnQ6IDA7CiAgICBtaW4td2lkdGg6IDA7CiAgICB3aWR0aDogbWluKDI4MHB4LCBjYWxjKDEwMHZ3IC0gMjRweCkpOwogICAgbWF4LXdpZHRoOiBtaW4oMzYwcHgsIGNhbGMoMTAwdncgLSAyNHB4KSk7CiAgICBwYWRkaW5nOiAxMHB4OwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnLCAwLjVyZW0pOwogICAgYmFja2dyb3VuZDogdmFyKC0tbWpyLXN1cmZhY2UtMSwgdmFyKC0tY29tZnktbWVudS1iZywgIzJhMmEyYSkpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlciwgdmFyKC0tYm9yZGVyLWNvbG9yLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpKSk7CiAgICBib3gtc2hhZG93OiAwIDEycHggMjhweCByZ2JhKDAsIDAsIDAsIDAuMzUpOwogICAgei1pbmRleDogdmFyKC0tbWpyLXBvcG92ZXItei1pbmRleCk7CiAgICBtaW4taGVpZ2h0OiAwOwogICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgb3ZlcmZsb3cteTogYXV0bzsKICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7CiAgICB0b3VjaC1hY3Rpb246IHBhbi15OwogICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwp9CgoubWpyLXBvcG92ZXItLWhpZGRlbiB7CiAgICBkaXNwbGF5OiBub25lOwp9CgoubWpyLWZpbHRlci1wb3BvdmVyIHsKICAgIG1pbi13aWR0aDogMzQwcHg7CiAgICB3aWR0aDogbWluKDM2MHB4LCBjYWxjKDEwMHZ3IC0gMjRweCkpOwogICAgcGFkZGluZzogMTJweDsKfQoKLm1qci1zb3J0LXBvcG92ZXIgewogICAgbWluLXdpZHRoOiAyMjBweDsKICAgIHdpZHRoOiBtaW4oMjYwcHgsIGNhbGMoMTAwdncgLSAyNHB4KSk7CiAgICBwYWRkaW5nOiAxMHB4Owp9CgoubWpyLWNvbGxlY3Rpb25zLXBvcG92ZXIgewogICAgbWluLXdpZHRoOiAyODBweDsKICAgIHdpZHRoOiBtaW4oMzIwcHgsIGNhbGMoMTAwdncgLSAyNHB4KSk7CiAgICBwYWRkaW5nOiAxMHB4Owp9CgoubWpyLXBpbm5lZC1mb2xkZXJzLXBvcG92ZXIgewogICAgbWluLXdpZHRoOiAyODBweDsKICAgIHdpZHRoOiBtaW4oMzQwcHgsIGNhbGMoMTAwdncgLSAyNHB4KSk7CiAgICBwYWRkaW5nOiAxMHB4Owp9CgoubWpyLXBpbm5lZC1mb2xkZXJzLXBvcG92ZXIgLm1qci1waW5uZWQtZm9sZGVycy1tZW51IHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBnYXA6IDZweDsKfQoKLm1qci1waW5uZWQtZm9sZGVycy1wb3BvdmVyIC5tanItcGlubmVkLWZvbGRlcnMtZW1wdHkgewogICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgb3BhY2l0eTogMC43NTsKfQoKLm1qci1waW5uZWQtZm9sZGVycy1wb3BvdmVyIC5tanItcGlubmVkLWZvbGRlci1yb3cgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgd2lkdGg6IDEwMCU7Cn0KCi5tanItcGlubmVkLWZvbGRlcnMtcG9wb3ZlciAubWpyLXBpbm5lZC1mb2xkZXItb3BlbiB7CiAgICBmbGV4OiAxOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICB3aWR0aDogMTAwJTsKICAgIGdhcDogMTBweDsKICAgIHBhZGRpbmc6IDlweCAxMHB4OwogICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjAsIDE5MCwgMjU1LCAwLjE4KTsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMSkpOwogICAgdHJhbnNpdGlvbjoKICAgICAgICBib3JkZXItY29sb3IgMTIwbXMgZWFzZSwKICAgICAgICBiYWNrZ3JvdW5kIDEyMG1zIGVhc2U7Cn0KCi5tanItcGlubmVkLWZvbGRlcnMtcG9wb3ZlciAubWpyLXBpbm5lZC1mb2xkZXItb3Blbjpob3ZlciwKLm1qci1waW5uZWQtZm9sZGVycy1wb3BvdmVyIC5tanItcGlubmVkLWZvbGRlci1vcGVuOmZvY3VzLXZpc2libGUgewogICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0NSwgMjA1LCAyNTUsIDAuNCk7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDgwLCAxNDAsIDI1NSwgMC4xOCksIHJnYmEoMzIsIDEwMCwgMjAwLCAwLjE0KSk7Cn0KCi5tanItcGlubmVkLWZvbGRlcnMtcG9wb3ZlciAubWpyLXBpbm5lZC1mb2xkZXItbGFiZWwgewogICAgbWluLXdpZHRoOiAwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBjb2xvcjogdmFyKC0tZmctY29sb3IsICNlNmVkZjcpOwp9CgoubWpyLXBpbm5lZC1mb2xkZXJzLXBvcG92ZXIgLm1qci1waW5uZWQtZm9sZGVyLXBhdGggewogICAgZmxleDogMCAxIGF1dG87CiAgICBtaW4td2lkdGg6IDA7CiAgICBtYXgtd2lkdGg6IDIyMHB4OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIG9wYWNpdHk6IDAuNjg7CiAgICBmb250LXNpemU6IDExcHg7Cn0KCi5tanItcGlubmVkLWZvbGRlcnMtcG9wb3ZlciAubWpyLXBpbm5lZC1mb2xkZXItdW5waW4gewogICAgd2lkdGg6IDQycHg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIHBhZGRpbmc6IDA7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgOTUsIDk1LCAwLjM1KTsKICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDI1NSwgNzAsIDcwLCAwLjE2KSwgcmdiYSgxNjAsIDIwLCAyMCwgMC4xMikpOwp9CgoubWpyLXBpbm5lZC1mb2xkZXJzLXBvcG92ZXIgLm1qci1waW5uZWQtZm9sZGVyLXVucGluIC5waSB7CiAgICBvcGFjaXR5OiAwLjg4OwogICAgY29sb3I6IHJnYmEoMjU1LCAxMzAsIDEzMCwgMC45Nik7Cn0KCi5tanItbWVzc2FnZXMtcG9wb3ZlciB7CiAgICBtaW4td2lkdGg6IDMyMHB4OwogICAgd2lkdGg6IG1pbig0NjBweCwgY2FsYygxMDB2dyAtIDI0cHgpKTsKICAgIHBhZGRpbmc6IDEwcHg7Cn0KCi5tanItaW5saW5lLWRpYWxvZy1tYXNrIHsKICAgIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDsKICAgIGluc2V0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwogICAgcG9pbnRlci1ldmVudHM6IGF1dG8gIWltcG9ydGFudDsKfQoKLm1qci1pbmxpbmUtZGlhbG9nLXJvb3QgewogICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKICAgIHdpZHRoOiAxMDAlOwogICAgcG9pbnRlci1ldmVudHM6IGF1dG87Cn0KCi5tanItaW5saW5lLWRpYWxvZy1jb250ZW50IHsKICAgIHBhZGRpbmc6IDA7Cn0KCi5tanItbWVzc2FnZXMtaGVhZCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGdhcDogOHB4OwogICAgZmxleC13cmFwOiB3cmFwOwogICAgbWFyZ2luLWJvdHRvbTogOHB4Owp9CgoubWpyLW1lc3NhZ2VzLXRhYnMgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA2cHg7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICBwYWRkaW5nOiAzcHg7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYm9yZGVyKSA4OCUsIHRyYW5zcGFyZW50KTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA3NCUsIHRyYW5zcGFyZW50KTsKfQoKLm1qci1tZXNzYWdlcy10YWIgewogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIGJvcmRlcjogMDsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb250ZW50LWZnLCAjZjFmMWYxKSA3NiUsIHRyYW5zcGFyZW50KTsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogNnB4OwogICAgZm9udC1zaXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjoKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuMTRzIGVhc2UsCiAgICAgICAgY29sb3IgMC4xNHMgZWFzZSwKICAgICAgICB0cmFuc2Zvcm0gMC4xNHMgZWFzZTsKfQoKLm1qci1tZXNzYWdlcy10YWI6aG92ZXIsCi5tanItbWVzc2FnZXMtdGFiOmZvY3VzLXZpc2libGUgewogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDE0JSwgdHJhbnNwYXJlbnQpOwogICAgY29sb3I6IHZhcigtLWNvbnRlbnQtZmcsICNmMWYxZjEpOwogICAgb3V0bGluZTogbm9uZTsKfQoKLm1qci1tZXNzYWdlcy10YWIuaXMtYWN0aXZlIHsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYWNjZW50KSAyMiUsIHZhcigtLW1qci1zdXJmYWNlLTIpKTsKICAgIGNvbG9yOiB2YXIoLS1jb250ZW50LWZnLCAjZmZmKTsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgMzQlLCB0cmFuc3BhcmVudCk7Cn0KCi5tanItbWVzc2FnZXMtcGFuZWxzIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBnYXA6IDhweDsKICAgIG1heC1oZWlnaHQ6IG1pbig1MnZoLCA0MjBweCk7Cn0KCi5tanItbWVzc2FnZXMtbGlzdCwKLm1qci1tZXNzYWdlcy1zaG9ydGN1dHMtcGFuZWwgewogICAgb3ZlcmZsb3cteTogYXV0bzsKICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47Cn0KCi5tanItdGFiLWNvdW50LWJhZGdlIHsKICAgIG1pbi13aWR0aDogMTZweDsKICAgIGhlaWdodDogMTZweDsKICAgIHBhZGRpbmc6IDAgNXB4OwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07CiAgICBsaW5lLWhlaWdodDogMTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYWNjZW50KSAyOCUsIHZhcigtLW1qci1zdXJmYWNlLTIpKTsKICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29udGVudC1mZywgI2ZmZikgOTIlLCB0cmFuc3BhcmVudCk7CiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDQ4JSwgdHJhbnNwYXJlbnQpOwp9CgoubWpyLW1lc3NhZ2VzLXRpdGxlIHsKICAgIGZsZXg6IDEgMSBhdXRvOwogICAgbWluLXdpZHRoOiAwOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjAzZW07CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb250ZW50LWZnLCAjZGRkKSA4MiUsIHZhcigtLW1qci1tdXRlZCkpOwp9CgoubWpyLW1lc3NhZ2VzLWFjdGlvbnMgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgIGdhcDogNnB4OwogICAgZmxleC13cmFwOiB3cmFwOwp9CgoubWpyLW1lc3NhZ2VzLW1hcmstcmVhZC1idG4gewogICAgcGFkZGluZzogNHB4IDhweDsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7Cn0KCi5tanItbWVzc2FnZXMtc3Rhci1saW5rIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogNnB4OwogICAgcGFkZGluZzogNHB4IDhweDsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBjb2xvcjogdmFyKC0tY29udGVudC1mZywgI2YxZjFmMSk7CiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCAjZjNjODRiIDQyJSwgdmFyKC0tbWpyLWJvcmRlcikpOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsICNmM2M4NGIgMTIlLCB2YXIoLS1tanItc3VyZmFjZS0yKSk7Cn0KCi5tanItbWVzc2FnZXMtc3Rhci1saW5rOmhvdmVyLAoubWpyLW1lc3NhZ2VzLXN0YXItbGluazpmb2N1cy12aXNpYmxlIHsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQoKLm1qci1tZXNzYWdlcy1zdGFyLWljb24gewogICAgY29sb3I6ICNmM2M4NGI7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBsaW5lLWhlaWdodDogMTsKfQoKLm1qci1tZXNzYWdlcy1zdGFyLWxhYmVsIHsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCi5tanItbWVzc2FnZXMtbGlzdCB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ2FwOiA4cHg7Cn0KCi5tanItbWVzc2FnZXMtZW1wdHkgewogICAgcGFkZGluZzogOHB4IDZweDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIG9wYWNpdHk6IDAuNzI7Cn0KCi5tanItbWVzc2FnZS1pdGVtIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBnYXA6IDVweDsKICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJvcmRlcikgODYlLCB0cmFuc3BhcmVudCk7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMikgNTglLCB0cmFuc3BhcmVudCk7CiAgICBwYWRkaW5nOiA4cHg7Cn0KCi5tanItbWVzc2FnZS1pdGVtLS11bnJlYWQgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgNTglLCB2YXIoLS1tanItYm9yZGVyKSk7CiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDI2JSwgdHJhbnNwYXJlbnQpOwp9CgoubWpyLW1lc3NhZ2UtaXRlbS0td2FybmluZyB7CiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCAjZjBiODVhIDYyJSwgdmFyKC0tbWpyLWJvcmRlcikpOwp9CgoubWpyLW1lc3NhZ2UtaXRlbS0tZXJyb3IgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgI2YzNmI2YiA2MiUsIHZhcigtLW1qci1ib3JkZXIpKTsKfQoKLm1qci1tZXNzYWdlLWl0ZW0tLXN1Y2Nlc3MgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgIzU4YzA3ZCA2MiUsIHZhcigtLW1qci1ib3JkZXIpKTsKfQoKLm1qci1tZXNzYWdlLWl0ZW0taGVhZCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGdhcDogOHB4Owp9CgoubWpyLW1lc3NhZ2UtaXRlbS10aXRsZS13cmFwIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogOHB4OwogICAgbWluLXdpZHRoOiAwOwogICAgZmxleDogMSAxIGF1dG87Cn0KCi5tanItbWVzc2FnZS1pdGVtLWVtb2ppIHsKICAgIGZsZXg6IDAgMCBhdXRvOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDE7Cn0KCi5tanItbWVzc2FnZS1pdGVtLXRpdGxlIHsKICAgIG1pbi13aWR0aDogMDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBjb2xvcjogdmFyKC0tY29udGVudC1mZywgI2YxZjFmMSk7Cn0KCi5tanItbWVzc2FnZS1pdGVtLWNhdGVnb3J5IHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4wM2VtOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDIwJSwgdmFyKC0tbWpyLXN1cmZhY2UtMikpOwogICAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb250ZW50LWZnLCAjZmZmKSA4NiUsIHRyYW5zcGFyZW50KTsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCi5tanItbWVzc2FnZS1pdGVtLW1ldGEgewogICAgZm9udC1zaXplOiAxMXB4OwogICAgb3BhY2l0eTogMC43MjsKfQoKLm1qci1tZXNzYWdlLWl0ZW0tYm9keSB7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBvcGFjaXR5OiAwLjkyOwogICAgbGluZS1oZWlnaHQ6IDEuNDU7CiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwp9CgoubWpyLW1lc3NhZ2UtaXRlbS1hY3Rpb24gewogICAgZm9udC1zaXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGNvbG9yOiB2YXIoLS1tanItYWNjZW50LCB2YXIoLS1jb21meS1hY2NlbnQsICM1ZmIzZmYpKTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIHdpZHRoOiBmaXQtY29udGVudDsKfQoKLm1qci1tZXNzYWdlLWl0ZW0tYWN0aW9uOmhvdmVyIHsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwp9CgovKiBUb2FzdCBIaXN0b3J5IHRhYiAtIHVucmVhZCBpbmRpY2F0b3IgZG90ICovCi5tanItdGFiLXVucmVhZC1kb3QgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgd2lkdGg6IDZweDsKICAgIGhlaWdodDogNnB4OwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgYmFja2dyb3VuZDogdmFyKC0tbWpyLWFjY2VudCwgIzVmYjNmZik7CiAgICBtYXJnaW4tbGVmdDogNXB4OwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgIGZsZXgtc2hyaW5rOiAwOwp9CgovKiBIaXN0b3J5IHBhbmVsICovCi5tanItbWVzc2FnZXMtaGlzdG9yeS1wYW5lbCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIG1pbi1oZWlnaHQ6IDA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwp9CgoubWpyLWhpc3RvcnktaGVhZCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIHBhZGRpbmc6IDRweCAwIDZweDsKICAgIGZsZXgtc2hyaW5rOiAwOwp9CgoubWpyLWhpc3RvcnktaGVhZC1sYWJlbCB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgb3BhY2l0eTogMC42MjsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwp9CgoubWpyLWhpc3RvcnktY2xlYXItYnRuIHsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikpOwogICAgY29sb3I6IGluaGVyaXQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBvcGFjaXR5OiAwLjcyOwp9CgoubWpyLWhpc3RvcnktY2xlYXItYnRuOmhvdmVyIHsKICAgIG9wYWNpdHk6IDE7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgMTIlLCB0cmFuc3BhcmVudCk7Cn0KCi5tanItaGlzdG9yeS1saXN0IHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBnYXA6IDRweDsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwp9CgoubWpyLWhpc3RvcnktaXRlbSB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICBnYXA6IDhweDsKICAgIHBhZGRpbmc6IDZweCA4cHg7CiAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tanItYm9yZGVyLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLW1qci1zdXJmYWNlLTIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCkpOwogICAgZm9udC1zaXplOiAxMnB4Owp9CgoubWpyLWhpc3RvcnktaXRlbS0tZXJyb3IgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgI2YzNmI2YiA1MCUsIHZhcigtLW1qci1ib3JkZXIpKTsKfQoKLm1qci1oaXN0b3J5LWl0ZW0tLXdhcm5pbmcgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgI2YwYjg1YSA1MCUsIHZhcigtLW1qci1ib3JkZXIpKTsKfQoKLm1qci1oaXN0b3J5LWl0ZW0tLXN1Y2Nlc3MgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgIzU4YzA3ZCA1MCUsIHZhcigtLW1qci1ib3JkZXIpKTsKfQoKLm1qci1oaXN0b3J5LWl0ZW0taWNvbiB7CiAgICBmbGV4LXNocmluazogMDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjQ7Cn0KCi5tanItaGlzdG9yeS1pdGVtLWNvbnRlbnQgewogICAgbWluLXdpZHRoOiAwOwogICAgZGlzcGxheTogZ3JpZDsKICAgIGdhcDogNHB4Owp9CgoubWpyLWhpc3RvcnktaXRlbS1tc2cgewogICAgb3BhY2l0eTogMC45MjsKICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlOwogICAgd29yZC1icmVhazogYnJlYWstd29yZDsKfQoKLm1qci1oaXN0b3J5LWl0ZW0tdGl0bGUgewogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICBvcGFjaXR5OiAwLjk2OwogICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7Cn0KCi5tanItaGlzdG9yeS1pdGVtLWRldGFpbCB7CiAgICBvcGFjaXR5OiAwLjg0OwogICAgbGluZS1oZWlnaHQ6IDEuNDU7CiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTsKICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7Cn0KCi5tanItaGlzdG9yeS1pdGVtLW1ldGEgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDZweDsKICAgIGZsZXgtd3JhcDogd3JhcDsKfQoKLm1qci1oaXN0b3J5LWl0ZW0tdGltZSB7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBvcGFjaXR5OiAwLjUyOwp9CgoubWpyLWhpc3RvcnktaXRlbS1jaGlwIHsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgcGFkZGluZzogMnB4IDZweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1ib3JkZXIpIDgyJSwgdHJhbnNwYXJlbnQpOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTMsIHZhcigtLW1qci1zdXJmYWNlLTIpKSA3OCUsIHRyYW5zcGFyZW50KTsKICAgIG9wYWNpdHk6IDAuNzY7Cn0KCi5tanItaGlzdG9yeS1pdGVtLWFjdGlvbiB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICB3aWR0aDogZml0LWNvbnRlbnQ7CiAgICBjb2xvcjogdmFyKC0tbWpyLWFjY2VudCwgIzVmYjNmZik7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KCi5tanItaGlzdG9yeS1pdGVtLWFjdGlvbjpob3ZlciB7CiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKfQoKLm1qci1oaXN0b3J5LWl0ZW0tcHJvZ3Jlc3MgewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdhcDogNHB4Owp9CgoubWpyLWhpc3RvcnktaXRlbS1wcm9ncmVzcy1zdW1tYXJ5IHsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIG9wYWNpdHk6IDAuNzQ7CiAgICBsaW5lLWhlaWdodDogMS4zNTsKICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlOwp9CgoubWpyLWhpc3RvcnktaXRlbS1wcm9ncmVzcy1iYXIgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDZweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYm9yZGVyKSA3NSUsIHRyYW5zcGFyZW50KTsKfQoKLm1qci1oaXN0b3J5LWl0ZW0tcHJvZ3Jlc3MtZmlsbCB7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0OwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgIDkwZGVnLAogICAgICAgIHZhcigtLW1qci1hY2NlbnQsICM1ZmIzZmYpLAogICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCAjNThjMDdkIDcyJSwgdmFyKC0tbWpyLWFjY2VudCwgIzVmYjNmZikpCiAgICApOwp9CgoubWpyLXNob3J0Y3V0LWd1aWRlIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBnYXA6IDhweDsKfQoKLm1qci1zaG9ydGN1dC1ndWlkZS1pbnRybyB7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBsaW5lLWhlaWdodDogMS40NTsKICAgIG9wYWNpdHk6IDAuODQ7Cn0KCi5tanItc2hvcnRjdXQtc2VjdGlvbiB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ2FwOiA2cHg7CiAgICBwYWRkaW5nOiA4cHg7CiAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1ib3JkZXIpIDg0JSwgdHJhbnNwYXJlbnQpOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTMsIHZhcigtLW1qci1zdXJmYWNlLTIpKSA3MiUsIHRyYW5zcGFyZW50KTsKfQoKLm1qci1zaG9ydGN1dC1zZWN0aW9uLXRpdGxlIHsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29udGVudC1mZywgI2YxZjFmMSkgODglLCB0cmFuc3BhcmVudCk7Cn0KCi5tanItc2hvcnRjdXQtbGlzdCB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ2FwOiA2cHg7Cn0KCi5tanItc2hvcnRjdXQtcm93IHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgxMzJweCwgMTYwcHgpIG1pbm1heCgwLCAxZnIpOwogICAgZ2FwOiA4cHg7CiAgICBhbGlnbi1pdGVtczogc3RhcnQ7Cn0KCi5tanItc2hvcnRjdXQta2V5IHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgbWluLWhlaWdodDogMjRweDsKICAgIHBhZGRpbmc6IDNweCA4cHg7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYWNjZW50KSAzOCUsIHZhcigtLW1qci1ib3JkZXIpKTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYWNjZW50KSAxMiUsIHZhcigtLW1qci1zdXJmYWNlLTIpKTsKICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29udGVudC1mZywgI2ZmZikgOTAlLCB0cmFuc3BhcmVudCk7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDEuMjU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOwp9CgoubWpyLXNob3J0Y3V0LWRlc2MgewogICAgbWluLXdpZHRoOiAwOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgIG9wYWNpdHk6IDAuOTI7Cn0KCkBtZWRpYSAobWF4LXdpZHRoOiA1NjBweCkgewogICAgLm1qci1zaG9ydGN1dC1yb3cgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgfQoKICAgIC5tanItc2hvcnRjdXQta2V5IHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICB9Cn0KCi5tanItZmlsdGVyLXBvcG92ZXIgLm1qci1maWx0ZXItaGVhZCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBnYXA6IDEwcHg7CiAgICBtYXJnaW46IDAgMCAxMHB4OwogICAgcGFkZGluZzogNHB4IDJweCAxMHB4OwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYm9yZGVyKSA4NSUsIHRyYW5zcGFyZW50KTsKfQoKLm1qci1maWx0ZXItcG9wb3ZlciAubWpyLWZpbHRlci1oZWFkLWxlZnQgewogICAgbWluLXdpZHRoOiAwOwp9CgoubWpyLWZpbHRlci1wb3BvdmVyIC5tanItZmlsdGVyLWtpY2tlciB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogODAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDllbTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQsICM1ZmIzZmYpIDY1JSwgdmFyKC0tY29udGVudC1mZywgI2RkZCkpOwp9CgoubWpyLWZpbHRlci1wb3BvdmVyIC5tanItZmlsdGVyLXN1YnRpdGxlIHsKICAgIG1hcmdpbi10b3A6IDJweDsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29udGVudC1mZywgI2RkZCkgNjIlLCB2YXIoLS1tanItbXV0ZWQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NSkpKTsKfQoKLm1qci1maWx0ZXItcG9wb3ZlciAubWpyLWZpbHRlci1oZWFkLWFjdGlvbnMgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA4cHg7CiAgICBmbGV4OiAwIDAgYXV0bzsKfQoKLm1qci1maWx0ZXItcG9wb3ZlciAubWpyLWZpbHRlci1zdGFjayB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogOHB4Owp9CgoubWpyLWZpbHRlci1wb3BvdmVyIC5tanItZmlsdGVyLWFjdGl2ZS1jb3VudCB7CiAgICBtaW4td2lkdGg6IDIycHg7CiAgICBoZWlnaHQ6IDIycHg7CiAgICBwYWRkaW5nOiAwIDZweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQsICM1ZmIzZmYpIDU1JSwgdmFyKC0tbWpyLWJvcmRlcikpOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQsICM1ZmIzZmYpIDE4JSwgdmFyKC0tbWpyLXN1cmZhY2UtMikpOwogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDE7CiAgICBjb2xvcjogdmFyKC0tY29udGVudC1mZywgI2ZmZik7Cn0KCi5tanItZmlsdGVyLXBvcG92ZXIgLm1qci1maWx0ZXItY2xlYXItYWxsIHsKICAgIGhlaWdodDogMjRweDsKICAgIHBhZGRpbmc6IDAgOHB4OwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJvcmRlcikgNzUlLCB0cmFuc3BhcmVudCk7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNzAwOwp9CgoubWpyLWZpbHRlci1wb3BvdmVyIC5tanItcG9wb3Zlci1yb3cgewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgZ2FwOiA4cHg7CiAgICBhbGlnbi1pdGVtczogc3RhcnQ7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4Owp9CgoubWpyLWZpbHRlci1wb3BvdmVyIC5tanItcG9wb3Zlci1yb3ctLTNjb2wgewogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoMCwgMWZyKTsKfQoKLm1qci1maWx0ZXItcG9wb3ZlciAubWpyLXBvcG92ZXItcm93LS0zY29sIC5tanItcG9wb3Zlci1sYWJlbCB7CiAgICBncmlkLWNvbHVtbjogMSAvIC0xOwp9CgoubWpyLWZpbHRlci1wb3BvdmVyIC5tanItcG9wb3Zlci1sYWJlbCB7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb250ZW50LWZnLCAjZGRkKSA3MCUsIHZhcigtLW1qci1tdXRlZCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KSkpOwogICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKfQoKLm1qci1maWx0ZXItcG9wb3ZlciAubWpyLXBvcG92ZXItdG9nZ2xlIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA2cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBjb2xvcjogdmFyKC0tZmctY29sb3IsICNlNmVkZjcpOwogICAgcGFkZGluZzogNnB4IDhweDsKICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYm9yZGVyKSA4MCUsIHRyYW5zcGFyZW50KTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA2NiUsIHRyYW5zcGFyZW50KTsKfQoKLm1qci1maWx0ZXItcG9wb3ZlciAubWpyLXBvcG92ZXItdG9nZ2xlIGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewogICAgYWNjZW50LWNvbG9yOiB2YXIoLS1tanItYWNjZW50LCB2YXIoLS1jb21meS1hY2NlbnQsICM1ZmIzZmYpKTsKfQoKLm1qci1maWx0ZXItcG9wb3ZlciAubWpyLWZpbHRlci1ncm91cCB7CiAgICAtLW1qci1maWx0ZXItZ3JvdXAtYWNjZW50OiB2YXIoLS1tanItYWNjZW50LCAjN2FhMmZmKTsKICAgIHBhZGRpbmc6IDEwcHggMCA4cHg7CiAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSk7Cn0KCi5tanItZmlsdGVyLXBvcG92ZXIgLm1qci1maWx0ZXItZ3JvdXA6bGFzdC1jaGlsZCB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgIHBhZGRpbmctYm90dG9tOiAycHg7Cn0KCi5tanItZmlsdGVyLXBvcG92ZXIgLm1qci1maWx0ZXItZ3JvdXAtLWNvcmUgewogICAgLS1tanItZmlsdGVyLWdyb3VwLWFjY2VudDogIzU2YThmZjsKfQoKLm1qci1maWx0ZXItcG9wb3ZlciAubWpyLWZpbHRlci1ncm91cC0tbWVkaWEgewogICAgLS1tanItZmlsdGVyLWdyb3VwLWFjY2VudDogIzM1ZDA4YjsKfQoKLm1qci1maWx0ZXItcG9wb3ZlciAubWpyLWZpbHRlci1ncm91cC0tdGltZSB7CiAgICAtLW1qci1maWx0ZXItZ3JvdXAtYWNjZW50OiAjZjBiODRmOwp9CgoubWpyLWZpbHRlci1wb3BvdmVyIC5tanItZmlsdGVyLWdyb3VwLXRvZ2dsZSB7CiAgICB3aWR0aDogMTAwJTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgZ2FwOiAxMHB4OwogICAgbWFyZ2luOiAwIDAgMTBweDsKICAgIGJvcmRlcjogMDsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY29sb3I6IGluaGVyaXQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgcGFkZGluZzogMnB4IDRweDsKfQoKLm1qci1maWx0ZXItcG9wb3ZlciAubWpyLWZpbHRlci1ncm91cC10aXRsZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDZweDsKICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWZpbHRlci1ncm91cC1hY2NlbnQpIDYyJSwgdmFyKC0tY29udGVudC1mZywgI2RkZCkpOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9CgoubWpyLWZpbHRlci1wb3BvdmVyIC5tanItZmlsdGVyLWdyb3VwLXRpdGxlOjpiZWZvcmUgewogICAgY29udGVudDogIiI7CiAgICB3aWR0aDogNnB4OwogICAgaGVpZ2h0OiA2cHg7CiAgICBmbGV4OiAwIDAgNnB4OwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tanItZmlsdGVyLWdyb3VwLWFjY2VudCk7Cn0KCi5tanItZmlsdGVyLXBvcG92ZXIgLm1qci1maWx0ZXItZ3JvdXAtY2hldnJvbiB7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBsaW5lLWhlaWdodDogMTsKICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWZpbHRlci1ncm91cC1hY2NlbnQpIDc4JSwgdmFyKC0tbWpyLW11dGVkLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjUpKSk7Cn0KCi5tanItZmlsdGVyLXBvcG92ZXIgLm1qci1maWx0ZXItZ3JvdXAtYm9keSB7CiAgICBwYWRkaW5nLXRvcDogNHB4Owp9CgoubWpyLWZpbHRlci1wb3BvdmVyIC5tanItZmlsdGVyLWNhcmQgewogICAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1ib3JkZXIpIDg4JSwgdHJhbnNwYXJlbnQpOwogICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgIHBhZGRpbmc6IDEwcHg7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgMTgwZGVnLAogICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA4NiUsIHRyYW5zcGFyZW50KSwKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMSkgODglLCB0cmFuc3BhcmVudCkKICAgICk7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7Cn0KCi5tanItZmlsdGVyLXBvcG92ZXIgLm1qci1maWx0ZXItY2FyZDpsYXN0LWNoaWxkIHsKICAgIG1hcmdpbi1ib3R0b206IDA7Cn0KCi5tanItZmlsdGVyLXBvcG92ZXIgLm1qci1maWx0ZXItY2FyZC0tYWdlbmRhIHsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICAxODBkZWcsCiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsICNmMGI4NGYgOSUsIHZhcigtLW1qci1zdXJmYWNlLTIpKSwKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMSkgOTIlLCB0cmFuc3BhcmVudCkKICAgICk7Cn0KCi5tanItZmlsdGVyLXBvcG92ZXIgLm1qci1maWx0ZXItZ3JvdXA6bm90KC5pcy1vcGVuKSB7CiAgICBwYWRkaW5nLWJvdHRvbTogOHB4Owp9CgoubWpyLWZpbHRlci1wb3BvdmVyIC5tanItZmlsdGVyLWdyb3VwOm5vdCguaXMtb3BlbikgLm1qci1maWx0ZXItZ3JvdXAtdG9nZ2xlIHsKICAgIG1hcmdpbi1ib3R0b206IDA7Cn0KCkBtZWRpYSAobWF4LXdpZHRoOiA0NDBweCkgewogICAgLm1qci1maWx0ZXItcG9wb3ZlciAubWpyLWZpbHRlci1oZWFkIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgfQoKICAgIC5tanItZmlsdGVyLXBvcG92ZXIgLm1qci1maWx0ZXItaGVhZC1hY3Rpb25zIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICB9Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hbS1oZWFkZXItaWNvbiB7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMTsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgb3BhY2l0eTogMC45Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYW0taGVhZGVyLXRpdGxlIHsKICAgIG1hcmdpbjogMDsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYW0tY29udGVudCB7CiAgICBmbGV4OiAxOwogICAgcGFkZGluZzogMTZweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIG1pbi1oZWlnaHQ6IDA7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1mb2xkZXItYnJlYWRjcnVtYiB7CiAgICAtLW1qci1icmVhZGNydW1iLWFjY2VudDogIzU2YThmZjsKICAgIC0tbWpyLWJyZWFkY3J1bWItY3VycmVudDogIzM1ZDA4YjsKICAgIGRpc3BsYXk6IG5vbmU7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA0cHg7CiAgICBwYWRkaW5nOiAzcHggNnB4OwogICAgbWFyZ2luOiAxcHggMCAzcHg7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBvcGFjaXR5OiAwLjc4OwogICAgb3ZlcmZsb3c6IGF1dG87CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1icmVhZGNydW1iLWFjY2VudCkgMjIlLCB0cmFuc3BhcmVudCk7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJyZWFkY3J1bWItYWNjZW50KSA5JSwgdHJhbnNwYXJlbnQpOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItZm9sZGVyLWJyZWFkY3J1bWIuaXMtdmlzaWJsZSB7CiAgICBkaXNwbGF5OiBmbGV4Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItZm9sZGVyLWJyZWFkY3J1bWItYWN0aW9uIHsKICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJyZWFkY3J1bWItYWNjZW50KSA0MiUsIHRyYW5zcGFyZW50KTsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYnJlYWRjcnVtYi1hY2NlbnQpIDE2JSwgdHJhbnNwYXJlbnQpOwogICAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYnJlYWRjcnVtYi1hY2NlbnQpIDc4JSwgI2ZmZmZmZik7CiAgICBmb250OiBpbmhlcml0OwogICAgY3Vyc29yOiBwb2ludGVyOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItZm9sZGVyLWJyZWFkY3J1bWItYWN0aW9uOmRpc2FibGVkIHsKICAgIGN1cnNvcjogZGVmYXVsdDsKICAgIG9wYWNpdHk6IDAuNTg7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1mb2xkZXItYnJlYWRjcnVtYi1hY3Rpb246bm90KDpkaXNhYmxlZCk6aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJyZWFkY3J1bWItYWNjZW50KSA2MiUsIHRyYW5zcGFyZW50KTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYnJlYWRjcnVtYi1hY2NlbnQpIDI0JSwgdHJhbnNwYXJlbnQpOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItZm9sZGVyLWJyZWFkY3J1bWItc2VnbWVudCB7CiAgICBtYXgtd2lkdGg6IDIyMHB4OwogICAgbWluLXdpZHRoOiAwOwogICAgcGFkZGluZzogMXB4IDVweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1icmVhZGNydW1iLWFjY2VudCkgOCUsIHRyYW5zcGFyZW50KTsKICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJyZWFkY3J1bWItYWNjZW50KSA3NiUsICNmZmZmZmYpOwogICAgZm9udDogaW5oZXJpdDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWZvbGRlci1icmVhZGNydW1iLXNlZ21lbnQ6bm90KDpkaXNhYmxlZCk6aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJyZWFkY3J1bWItYWNjZW50KSAzOCUsIHRyYW5zcGFyZW50KTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYnJlYWRjcnVtYi1hY2NlbnQpIDE2JSwgdHJhbnNwYXJlbnQpOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItZm9sZGVyLWJyZWFkY3J1bWItc2VnbWVudC5pcy1jdXJyZW50LAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItZm9sZGVyLWJyZWFkY3J1bWItc2VnbWVudDpkaXNhYmxlZCB7CiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYnJlYWRjcnVtYi1jdXJyZW50KSAzOCUsIHRyYW5zcGFyZW50KTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYnJlYWRjcnVtYi1jdXJyZW50KSAxNCUsIHRyYW5zcGFyZW50KTsKICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJyZWFkY3J1bWItY3VycmVudCkgNzQlLCAjZmZmZmZmKTsKICAgIGN1cnNvcjogZGVmYXVsdDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWZvbGRlci1icmVhZGNydW1iLXNlcGFyYXRvciB7CiAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1icmVhZGNydW1iLWFjY2VudCkgNTglLCB2YXIoLS1tanItbXV0ZWQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42MikpKTsKICAgIG9wYWNpdHk6IDAuOTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLW1lZGlhLXNob3J0Y3V0cyB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDRweDsKICAgIGZsZXgtd3JhcDogd3JhcDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLW1lZGlhLXNob3J0Y3V0LWJ0biB7CiAgICB3aWR0aDogMjRweDsKICAgIGhlaWdodDogMjRweDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLW1lZGlhLXNob3J0Y3V0LWJ0biAucGkgewogICAgZm9udC1zaXplOiAxMXB4Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYW0tZHVwLWFsZXJ0IHsKICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IsICM1NTUpOwogICAgYmFja2dyb3VuZDogdmFyKC0tY29tZnktbWVudS1iZywgIzIyMik7CiAgICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dCwgI2VlZSk7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFtLWJyb3dzZSB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICBmbGV4OiAxOwogICAgbWluLWhlaWdodDogMDsKICAgIG1pbi13aWR0aDogMDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1ib3JkZXIpIDc1JSwgdHJhbnNwYXJlbnQpOwogICAgcGFkZGluZy10b3A6IDRweDsKfQoKLyogU2Nyb2xsYmFycyAobWF0Y2ggQ29tZnlVSSBmZWVsKSAqLwoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYW0tZ3JpZC1zY3JvbGwgewogICAgZmxleDogMSAxIGF1dG87CiAgICBtaW4td2lkdGg6IDA7CiAgICBtaW4taGVpZ2h0OiAwOwogICAgaGVpZ2h0OiAxMDAlOwogICAgb3ZlcmZsb3c6IGF1dG87CiAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOwogICAgdG91Y2gtYWN0aW9uOiBwYW4teTsKICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgIHNjcm9sbGJhci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1ib3JkZXIpIDg1JSwgdmFyKC0tY29udGVudC1mZywgI2RkZCkpIHRyYW5zcGFyZW50Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYW0tZ3JpZC1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgIHdpZHRoOiAxMHB4OwogICAgaGVpZ2h0OiAxMHB4Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYW0tZ3JpZC1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYW0tZ3JpZC1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA1NSUsIHZhcigtLWNvbnRlbnQtZmcsICNkZGQpKTsKICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYW0tZ3JpZC1zY3JvbGw6aG92ZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA3MCUsIHZhcigtLWNvbnRlbnQtZmcsICNkZGQpKTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFtLWdyaWQtc2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIgewogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hbS1jdXN0b20tY29udHJvbHMgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBmbGV4OiAxOwogICAgbWluLXdpZHRoOiAwOwogICAgZ2FwOiA4cHg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFtLXNlYXJjaCB7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTBweDsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFtLXNlYXJjaCB7CiAgICBwYWRkaW5nLWJvdHRvbTogNnB4OwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIpOwogICAgbWFyZ2luLWJvdHRvbTogNnB4Owp9CgovKiBDYXJkIE1ldGFkYXRhIENvbG9ycyAqLwoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItbWV0YS1kdXJhdGlvbiB7CiAgICBjb2xvcjogI2ZmYTcyNjsgLyogT3JhbmdlIGZvciBkdXJhdGlvbiAqLwogICAgZm9udC13ZWlnaHQ6IDUwMDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLW1ldGEtcmVzIHsKICAgIGNvbG9yOiAjNGZjM2Y3OyAvKiBMaWdodCBCbHVlIGZvciByZXNvbHV0aW9uICovCiAgICBmb250LXdlaWdodDogNTAwOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItbWV0YS1kYXRlIHsKICAgIGNvbG9yOiAjYjlmNmNhOyAvKiBQYWxlIEdyZWVuIGZvciBkYXRlICovCiAgICBmb250LXNpemU6IDAuOWVtOwogICAgZm9udC13ZWlnaHQ6IDUwMDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLW1ldGEtdGltZSB7CiAgICBjb2xvcjogdmFyKC0tbWpyLW11dGVkLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjUpKTsKICAgIGZvbnQtc2l6ZTogMC45ZW07Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hbS1zdW1tYXJ5IHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgZ2FwOiAxMHB4OwogICAgbWFyZ2luOiAwIDAgNnB4IDA7CiAgICBwYWRkaW5nOiAwIDAgNHB4IDA7CiAgICBtaW4taGVpZ2h0OiAxNnB4OwogICAgZm9udC1zaXplOiAxMXB4OwogICAgY29sb3I6IHZhcigtLW1qci1tdXRlZCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KSk7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1ib3JkZXIpIDY1JSwgdHJhbnNwYXJlbnQpOwogICAgZmxleDogMCAwIGF1dG87Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hbS1zdW1tYXJ5LXRleHQgewogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFtLXN1bW1hcnktcmlnaHQgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA2cHg7CiAgICBtaW4td2lkdGg6IDA7CiAgICBmbGV4LXdyYXA6IHdyYXA7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hbS1jb250ZXh0LXBpbGxzIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogNXB4OwogICAgcm93LWdhcDogNHB4OwogICAgZmxleC13cmFwOiB3cmFwOwogICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWNvbnRleHQtcGlsbCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDZweDsKICAgIHBhZGRpbmc6IDNweCA3cHg7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYWNjZW50KSA1NSUsIHZhcigtLW1qci1ib3JkZXIpKTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA1NSUsIHZhcigtLW1qci1hY2NlbnQpIDEwJSk7CiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDE4JSwgdHJhbnNwYXJlbnQpOwogICAgY29sb3I6IHZhcigtLWNvbnRlbnQtZmcsICNkZGQpOwogICAgZm9udC1zaXplOiAxMC41cHg7CiAgICBsaW5lLWhlaWdodDogMTsKICAgIG1pbi1oZWlnaHQ6IDIycHg7CiAgICBtYXgtd2lkdGg6IDIyMHB4Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItY29udGV4dC1waWxsOmhvdmVyIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDc1JSwgdmFyKC0tbWpyLWJvcmRlcikpOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTIpIDUwJSwgdmFyKC0tbWpyLWFjY2VudCkgMTQlKTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWNvbnRleHQtcGlsbC10ZXh0IHsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBvcGFjaXR5OiAwLjkyOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItY29udGV4dC1waWxsLXggewogICAgd2lkdGg6IDIwcHg7CiAgICBoZWlnaHQ6IDIwcHg7CiAgICBwYWRkaW5nOiAwOwogICAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1ib3JkZXIpIDc1JSwgdHJhbnNwYXJlbnQpOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIGNvbG9yOiB2YXIoLS1tanItbXV0ZWQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NSkpOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgbGluZS1oZWlnaHQ6IDE7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgdHJhbnNpdGlvbjoKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2UsCiAgICAgICAgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2U7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1jb250ZXh0LXBpbGwteDpob3ZlciB7CiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYWNjZW50KSA1NSUsIHZhcigtLW1qci1ib3JkZXIpKTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA3MCUsIHZhcigtLW1qci1hY2NlbnQpIDEwJSk7CiAgICBjb2xvcjogdmFyKC0tY29udGVudC1mZywgI2ZmZik7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hbS1zZWFyY2gtcGlsbCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTBweDsKICAgIGhlaWdodDogMS43NXJlbTsKICAgIHBhZGRpbmc6IDAgMTBweDsKICAgIHdpZHRoOiAxMDAlOwogICAgbWF4LXdpZHRoOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnLCAwLjVyZW0pOwogICAgYmFja2dyb3VuZDogdmFyKC0tY29tZnktaW5wdXQtYmcsIHJnYmEoMCwgMCwgMCwgMC4yNSkpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlcik7CiAgICBmbGV4OiAxIDEgYXV0bzsKICAgIG1pbi13aWR0aDogMDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFtLXNlYXJjaC10b29scyB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDhweDsKICAgIGZsZXg6IDAgMCBhdXRvOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItcG9wb3Zlci1hbmNob3IgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgoubWpyLWFnZW5kYS1pbnB1dCB7CiAgICBkaXNwbGF5OiBub25lOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlcik7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb21meS1pbnB1dC1iZywgcmdiYSgwLCAwLCAwLCAwLjI1KSk7CiAgICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dCwgI2RkZCk7CiAgICB0cmFuc2l0aW9uOgogICAgICAgIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLAogICAgICAgIGNvbG9yIDAuMnMgZWFzZSwKICAgICAgICBib3JkZXItY29sb3IgMC4ycyBlYXNlOwp9Ci5tanItYWdlbmRhLWlucHV0Lm1qci1hZ2VuZGEtZmlsbGVkIHsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peCgKICAgICAgICBpbiBzcmdiLAogICAgICAgIHZhcigtLW1qci1hY2NlbnQsIHZhcigtLWNvbWZ5LWFjY2VudCwgIzVmYjNmZikpIDQwJSwKICAgICAgICB2YXIoLS1tanItc3VyZmFjZS0yKSA2MCUKICAgICk7CiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peCgKICAgICAgICBpbiBzcmdiLAogICAgICAgIHZhcigtLW1qci1hY2NlbnQsIHZhcigtLWNvbWZ5LWFjY2VudCwgIzVmYjNmZikpIDgwJSwKICAgICAgICB2YXIoLS1tanItYm9yZGVyKQogICAgKTsKICAgIGNvbG9yOiB2YXIoLS1jb250ZW50LWZnLCAjZmZmKTsKfQoubWpyLWFnZW5kYS1pbnB1dC5tanItYWdlbmRhLWVtcHR5IHsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA4NSUsIHRyYW5zcGFyZW50IDE1JSk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLW1qci1ib3JkZXIpOwogICAgY29sb3I6IHZhcigtLW1qci1tdXRlZCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KSk7Cn0KCi5tanItYWdlbmRhLWNvbnRhaW5lciB7CiAgICB3aWR0aDogMTAwJTsKfQoKLm1qci1hZ2VuZGEtY2FsZW5kYXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBnYXA6IDhweDsKICAgIHdpZHRoOiAxMDAlOwogICAgbWluLXdpZHRoOiAwOwp9CgoubWpyLWFnZW5kYS1oZWFkZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDhweDsKfQoKLm1qci1hZ2VuZGEtbW9udGggewogICAgZmxleDogMTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBjb2xvcjogdmFyKC0tY29udGVudC1mZywgI2RkZCk7CiAgICB1c2VyLXNlbGVjdDogbm9uZTsKfQoKLm1qci1hZ2VuZGEtbmF2IHsKICAgIHdpZHRoOiAzMnB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgcGFkZGluZzogMDsKICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7Cn0KCi5tanItYWdlbmRhLWdyaWQgewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIG1pbm1heCgwLCAxZnIpKTsKICAgIGdhcDogNnB4OwogICAgd2lkdGg6IDEwMCU7Cn0KCi5tanItYWdlbmRhLXdlZWtkYXkgewogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgY29sb3I6IHZhcigtLW1qci1tdXRlZCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KSk7CiAgICB1c2VyLXNlbGVjdDogbm9uZTsKfQoKLm1qci1hZ2VuZGEtZGF5IHsKICAgIGhlaWdodDogMzBweDsKICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tanItYm9yZGVyKTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA1NSUsIHRyYW5zcGFyZW50KTsKICAgIGNvbG9yOiB2YXIoLS1jb250ZW50LWZnLCAjZGRkKTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgcGFkZGluZzogMDsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgdHJhbnNpdGlvbjoKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2UsCiAgICAgICAgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2UsCiAgICAgICAgdHJhbnNmb3JtIDgwbXMgZWFzZTsKfQoKLm1qci1hZ2VuZGEtZGF5LWJhZGdlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTVweDsKICAgIHJpZ2h0OiAtNXB4OwogICAgbWluLXdpZHRoOiAxNnB4OwogICAgaGVpZ2h0OiAxNnB4OwogICAgcGFkZGluZzogMCA0cHg7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIGJhY2tncm91bmQ6ICNlNTM5MzU7CiAgICBjb2xvcjogI2ZmZjsKICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCAjZTUzOTM1IDY1JSwgI2ZmZmZmZiAzNSUpOwogICAgZm9udC1zaXplOiAxMHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxNHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Owp9CgoubWpyLWFnZW5kYS1kYXk6aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoCiAgICAgICAgaW4gc3JnYiwKICAgICAgICB2YXIoLS1tanItYm9yZGVyKSA1NSUsCiAgICAgICAgdmFyKC0tbWpyLWFjY2VudCwgdmFyKC0tY29tZnktYWNjZW50LCAjNWZiM2ZmKSkgNDUlCiAgICApOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KAogICAgICAgIGluIHNyZ2IsCiAgICAgICAgdmFyKC0tbWpyLXN1cmZhY2UtMikgNDUlLAogICAgICAgIHZhcigtLW1qci1hY2NlbnQsIHZhcigtLWNvbWZ5LWFjY2VudCwgIzVmYjNmZikpIDEwJQogICAgKTsKfQoKLm1qci1hZ2VuZGEtZGF5OmFjdGl2ZSB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsKfQoKLm1qci1hZ2VuZGEtZGF5LS1ibGFuayB7CiAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQoKLm1qci1hZ2VuZGEtZGF5LS1oYXMtYXNzZXRzIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KAogICAgICAgIGluIHNyZ2IsCiAgICAgICAgdmFyKC0tbWpyLWFjY2VudCwgdmFyKC0tY29tZnktYWNjZW50LCAjNWZiM2ZmKSkgODAlLAogICAgICAgIHZhcigtLW1qci1ib3JkZXIpCiAgICApOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KAogICAgICAgIGluIHNyZ2IsCiAgICAgICAgdmFyKC0tbWpyLWFjY2VudCwgdmFyKC0tY29tZnktYWNjZW50LCAjNWZiM2ZmKSkgMTglLAogICAgICAgIHZhcigtLW1qci1zdXJmYWNlLTIpIDgyJQogICAgKTsKfQoKLm1qci1hZ2VuZGEtZGF5LS1zZWxlY3RlZCB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLW1qci1hY2NlbnQsIHZhcigtLWNvbWZ5LWFjY2VudCwgIzVmYjNmZikpOwogICAgYm94LXNoYWRvdzogMCAwIDAgMXB4CiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQsIHZhcigtLWNvbWZ5LWFjY2VudCwgIzVmYjNmZikpIDU1JSwgdHJhbnNwYXJlbnQpOwp9CgoubWpyLWFnZW5kYS1mb290ZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGdhcDogOHB4OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwp9CgoubWpyLWFnZW5kYS1jbGVhciwKLm1qci1hZ2VuZGEtcmVmcmVzaCB7CiAgICBmbGV4OiAxOwp9CgoubWpyLW1lbnUsCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1tZW51IHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiA0cHg7Cn0KCi5tanItcHJpbWUtbWVudS1saXN0LAoubWpyLXNvcnQtbWVudSBbZGF0YS1wYy1zZWN0aW9uPSJsaXN0Il0gewogICAgbGlzdC1zdHlsZTogbm9uZTsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDA7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ2FwOiA2cHg7Cn0KCi5tanItcHJpbWUtbWVudSBbZGF0YS1wYy1zZWN0aW9uPSJpdGVtIl0sCi5tanItcHJpbWUtbWVudS1saXN0IFtkYXRhLXBjLXNlY3Rpb249Iml0ZW0iXSB7CiAgICBsaXN0LXN0eWxlOiBub25lOwp9CgoubWpyLXByaW1lLW1lbnUgW2RhdGEtcGMtc2VjdGlvbj0iaXRlbWNvbnRlbnQiXSB7CiAgICB3aWR0aDogMTAwJTsKfQoKLm1qci1tZW51LWl0ZW0sCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1tZW51LWl0ZW0gewogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgZ2FwOiAxMHB4OwogICAgd2lkdGg6IDEwMCU7CiAgICBwYWRkaW5nOiA4cHggMTBweDsKICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY29sb3I6IHZhcigtLWNvbnRlbnQtZmcsICNkZGQpOwogICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjoKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2UsCiAgICAgICAgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2UsCiAgICAgICAgdHJhbnNmb3JtIDgwbXMgZWFzZTsKfQoKLm1qci1tZW51LWl0ZW06aG92ZXIsCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1tZW51LWl0ZW06aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJvcmRlcikgODAlLCB0cmFuc3BhcmVudCk7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMikgNTUlLCB0cmFuc3BhcmVudCk7Cn0KCi5tanItbWVudS1pdGVtOmFjdGl2ZSwKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLW1lbnUtaXRlbTphY3RpdmUgewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7Cn0KCi5tanItbWVudS1pdGVtLWxhYmVsLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItbWVudS1pdGVtLWxhYmVsIHsKICAgIGZsZXg6IDEgMSBhdXRvOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIG1pbi13aWR0aDogMDsKfQoKLm1qci1tZW51LWl0ZW0tY2hlY2ssCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1tZW51LWl0ZW0tY2hlY2sgewogICAgZm9udC1zaXplOiAxMnB4OwogICAgd2lkdGg6IDE2cHg7CiAgICBmbGV4OiAwIDAgMTZweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIG9wYWNpdHk6IDA7CiAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDcyJSwgdmFyKC0tY29udGVudC1mZykpOwogICAgdHJhbnNpdGlvbjoKICAgICAgICBvcGFjaXR5IDEyMG1zIGVhc2UsCiAgICAgICAgY29sb3IgMTIwbXMgZWFzZTsKfQoKLm1qci1tZW51LWl0ZW0gLnBpLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItbWVudS1pdGVtIC5waSB7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvcGFjaXR5OiAwLjk7Cn0KCi5tanItY29sbGVjdGlvbnMtbWVudSB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ2FwOiA2cHg7Cn0KCi5tanItbWVudS1pdGVtLWxhYmVsLS1pY29uIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogOHB4OwogICAgZmxleDogMSAxIGF1dG87CiAgICBtaW4td2lkdGg6IDA7Cn0KCi5tanItbWVudS1pdGVtLWxhYmVsLS1pY29uIC5waSB7CiAgICB3aWR0aDogMTZweDsKICAgIGZsZXg6IDAgMCAxNnB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgoubWpyLW1lbnUtaXRlbS1yaWdodCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEwcHg7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIG1pbi13aWR0aDogMTZweDsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKfQoKLm1qci1tZW51LWl0ZW0taGludCB7CiAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbnRlbnQtZmcpIDYyJSwgdmFyKC0tbWpyLW11dGVkKSk7CiAgICBvcGFjaXR5OiAwLjcyOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLm1qci1tZW51LWl0ZW0tY2hlY2stLXZpc2libGUsCi5tanItbWVudS1pdGVtLmlzLWFjdGl2ZSAubWpyLW1lbnUtaXRlbS1jaGVjayB7CiAgICBvcGFjaXR5OiAxOwp9CgoubWpyLW1lbnUtZGl2aWRlciB7CiAgICBoZWlnaHQ6IDFweDsKICAgIG1hcmdpbjogNHB4IDA7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJvcmRlcikgODAlLCB0cmFuc3BhcmVudCk7Cn0KCi5tanItbXV0ZWQgewogICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgb3BhY2l0eTogMC43NTsKfQoKLm1qci1zdGF0ZS1ibG9jayB7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBsaW5lLWhlaWdodDogMS4zNTsKICAgIGNvbG9yOiB2YXIoLS1tanItbXV0ZWQpOwogICAgYm9yZGVyOiAxcHggZGFzaGVkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYm9yZGVyKSA4NSUsIHRyYW5zcGFyZW50KTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW1qci1yLXNtKTsKICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgbWFyZ2luOiA0cHggMDsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0xKSA3MCUsIHRyYW5zcGFyZW50KTsKfQoKLm1qci1zdGF0ZS1ibG9jay5pcy1lcnJvciwKLm1qci1jb250ZXh0LW1lbnUtbm90ZS5pcy1lcnJvciB7CiAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdGF0dXMtZXJyb3IpIDgyJSwgdmFyKC0tY29udGVudC1mZykpOwogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN0YXR1cy1lcnJvcikgNDUlLCB2YXIoLS1tanItYm9yZGVyKSk7Cn0KCi5tanItY29sbGVjdGlvbi1yb3cgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgd2lkdGg6IDEwMCU7CiAgICBtaW4taGVpZ2h0OiA0OHB4Owp9CgoubWpyLWNvbGxlY3Rpb25zLXZpcnR1YWwtbGlzdCB7CiAgICB3aWR0aDogMTAwJTsKICAgIG92ZXJmbG93OiBhdXRvOwogICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwp9CgoubWpyLWRlbGV0ZS1idG4gewogICAgd2lkdGg6IDQycHg7CiAgICBmbGV4OiAwIDAgNDJweDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgcGFkZGluZzogMDsKICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYm9yZGVyKSA2NSUsIHZhcigtLW1qci1zdGF0dXMtZXJyb3IpIDQ1JSk7Cn0KCi5tanItZGVsZXRlLWJ0bjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYm9yZGVyKSA0MCUsIHZhcigtLW1qci1zdGF0dXMtZXJyb3IpIDY1JSk7Cn0KCi5tanItZGVsZXRlLWJ0biAucGkgewogICAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3RhdHVzLWVycm9yKSA3OCUsIHZhcigtLWNvbnRlbnQtZmcpKTsKfQoKLm1qci1zZWN0aW9uLXRpdGxlIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA2cHg7CiAgICBwYWRkaW5nOiA2cHggMTBweCAycHg7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuNnB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIG9wYWNpdHk6IDAuODg7CiAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbnRlbnQtZmcpIDcyJSwgdmFyKC0tbWpyLW11dGVkKSk7Cn0KCi5tanItc2VjdGlvbi10aXRsZS0tY3lhbiB7CiAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsICM2ZmQ0ZmYgNzglLCB2YXIoLS1jb250ZW50LWZnKSk7Cn0KCi5tanItc2VjdGlvbi10aXRsZS0tdmlvbGV0IHsKICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgI2M0OGRmZiA3OCUsIHZhcigtLWNvbnRlbnQtZmcpKTsKfQoKLm1qci1zZWN0aW9uLWhpbnQgewogICAgcGFkZGluZzogMCAxMHB4IDRweDsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbnRlbnQtZmcpIDU1JSwgdmFyKC0tbWpyLW11dGVkKSk7Cn0KCi5tanItbWVudS1pdGVtLS1zbWFydCwKLm1qci1tZW51LWl0ZW0tLWNsdXN0ZXIgewogICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Owp9CgoubWpyLW1lbnUtaXRlbS0tY2x1c3RlciB7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGNvbG9yOiB2YXIoLS1jb250ZW50LWZnKTsKfQoKLm1qci1tZW51LWl0ZW0tLXNtYXJ0IC5waSB7CiAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsICM2ZmQ0ZmYgNzQlLCB2YXIoLS1jb250ZW50LWZnKSk7Cn0KCi5tanItbWVudS1pdGVtLS1jbHVzdGVyIC5waSB7CiAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsICNjNDhkZmYgNzQlLCB2YXIoLS1jb250ZW50LWZnKSk7Cn0KCi5tanItbWVudS1pdGVtLS1zbWFydDpob3Zlcjpub3QoOmRpc2FibGVkKSwKLm1qci1tZW51LWl0ZW0tLWNsdXN0ZXI6aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJvcmRlcikgODAlLCB0cmFuc3BhcmVudCk7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMikgNTUlLCB0cmFuc3BhcmVudCk7Cn0KCi5tanItY2x1c3Rlci1yb3cgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDhweDsKICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgIHBhZGRpbmc6IDZweCA4cHg7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1tanItci1zbSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tanItYm9yZGVyKTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0xKSA3MCUsIHRyYW5zcGFyZW50KTsKfQoKLm1qci1jbHVzdGVyLXRodW1icyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAzcHg7CiAgICBmbGV4LXNocmluazogMDsKfQoKLm1qci1jbHVzdGVyLXRodW1iIHsKICAgIHdpZHRoOiAyOHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICBvcGFjaXR5OiAwLjg1OwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTIpIDYwJSwgdHJhbnNwYXJlbnQpOwp9CgoubWpyLWNsdXN0ZXItaW5mbyB7CiAgICBmbGV4OiAxOwogICAgbWluLXdpZHRoOiAwOwp9CgoubWpyLWNsdXN0ZXItbmFtZSB7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGNvbG9yOiB2YXIoLS1jb250ZW50LWZnKTsKfQoKLm1qci1jbHVzdGVyLWNvdW50IHsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29udGVudC1mZykgNTglLCB2YXIoLS1tanItbXV0ZWQpKTsKfQoKLm1qci1jbHVzdGVyLWNyZWF0ZS1idG4gewogICAgZmxleC1zaHJpbms6IDA7CiAgICBwYWRkaW5nOiAzcHggOHB4OwogICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlcik7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMikgNTUlLCB0cmFuc3BhcmVudCk7CiAgICBjb2xvcjogdmFyKC0tY29udGVudC1mZyk7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjoKICAgICAgICBib3JkZXItY29sb3IgMTIwbXMgZWFzZSwKICAgICAgICBiYWNrZ3JvdW5kIDEyMG1zIGVhc2UsCiAgICAgICAgb3BhY2l0eSAxMjBtcyBlYXNlOwp9CgoubWpyLWNsdXN0ZXItY3JlYXRlLWJ0bjpkaXNhYmxlZCB7CiAgICBvcGFjaXR5OiAwLjYyOwogICAgY3Vyc29yOiBkZWZhdWx0Owp9CgoubWpyLWNsdXN0ZXItY3JlYXRlLWJ0bjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYm9yZGVyKSA4MCUsIHRyYW5zcGFyZW50KTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA2MiUsIHRyYW5zcGFyZW50KTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFtLXNlYXJjaC1pY29uIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgY29sb3I6IHZhcigtLW1qci1tdXRlZCk7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hbS1zZWFyY2gtaWNvbiAucGkgewogICAgZm9udC1zaXplOiAxMnB4OwogICAgbGluZS1oZWlnaHQ6IDE7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hbS1zZWFyY2gtcGlsbCAubWpyLWlucHV0IHsKICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsKICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50OwogICAgbGluZS1oZWlnaHQ6IDEuMiAhaW1wb3J0YW50Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYW0tc2VhcmNoLXBpbGw6Zm9jdXMtd2l0aGluIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDY1JSwgdmFyKC0tbWpyLWJvcmRlcikpOwogICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYWNjZW50KSAxOCUsIHRyYW5zcGFyZW50KTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFtLWJyb3dzZSB7CiAgICBtYXJnaW4tdG9wOiAwOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYW0tZ3JpZC1zY3JvbGwgewogICAgcGFkZGluZy1yaWdodDogNHB4OwogICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlOwp9CgovKiBHcmlkIGxheW91dCAqLwoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItZ3JpZCB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgLyogQXZvaWQgb3ZlcmZsb3cgd2hlbiB0aGUgcGFuZWwgYmVjb21lcyBuYXJyb3dlciB0aGFuIHRoZSBtaW4gY2FyZCBzaXplICovCiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgKICAgICAgICBhdXRvLWZpbGwsCiAgICAgICAgbWlubWF4KG1pbigxMDAlLCB2YXIoLS1tanItZ3JpZC1taW4tc2l6ZSwgMTgwcHgpKSwgMWZyKQogICAgKTsKICAgIGdhcDogdmFyKC0tbWpyLWdyaWQtZ2FwLCAxMHB4KTsKICAgIG1hcmdpbi10b3A6IDZweDsKICAgIG1pbi1oZWlnaHQ6IDA7Cn0KCi8qIENhcmQgc2VsZWN0aW9uICsgZm9jdXMgKGtlZXBzIGEgdmlzaWJsZSBpbmRpY2F0b3Igd2hlbiBzaWRlYmFyIGlzIG9wZW4pICovCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hc3NldC1jYXJkIHsKICAgIG91dGxpbmU6IG5vbmU7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hc3NldC1jYXJkLmlzLXNlbGVjdGVkIHsKICAgIGJveC1zaGFkb3c6CiAgICAgICAgMCAwIDAgM3B4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItY2FyZC1zZWxlY3Rpb24tY29sb3IpIDgwJSwgdmFyKC0tY29udGVudC1mZykpLAogICAgICAgIDAgMCAwIDZweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWNhcmQtc2VsZWN0aW9uLWNvbG9yKSAzMCUsIHRyYW5zcGFyZW50KSwKICAgICAgICAwIDAgMjBweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWNhcmQtc2VsZWN0aW9uLWNvbG9yKSA0MCUsIHRyYW5zcGFyZW50KSwKICAgICAgICAwIDEwcHggMjhweCByZ2JhKDAsIDAsIDAsIDAuMjgpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbWpyLXItbGcpOwogICAgLyogc2NhbGUoMC45NykgaW5zdGVhZCBvZiAwLjkyOiBzdWJ0bGUgaW5zZXQgZmVlbCB3aXRob3V0IHRoZSBhZ2dyZXNzaXZlCiAgICAgICBzaHJpbmsgdGhhdCBjYXVzZWQgYSB2aXNpYmxlIGJsaW5rIG9uIHJhcGlkIHNlbGVjdGlvbiBjaGFuZ2VzLiAqLwogICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk3KSAhaW1wb3J0YW50OwogICAgei1pbmRleDogMTA7CiAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tbWpyLWNhcmQtc2VsZWN0aW9uLWNvbG9yKTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmQ6Zm9jdXMtdmlzaWJsZSB7CiAgICBib3gtc2hhZG93OgogICAgICAgIDAgMCAwIDNweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgODAlLCB2YXIoLS1jb250ZW50LWZnKSksCiAgICAgICAgMCAwIDAgNnB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYWNjZW50KSAzMCUsIHRyYW5zcGFyZW50KSwKICAgICAgICAwIDAgMjBweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgNDAlLCB0cmFuc3BhcmVudCksCiAgICAgICAgMCAxMHB4IDI4cHggcmdiYSgwLCAwLCAwLCAwLjI4KTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW1qci1yLWxnKTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NykgIWltcG9ydGFudDsKICAgIHotaW5kZXg6IDEwOwp9CgpAa2V5ZnJhbWVzIG1qci1saXZlLXBsYWNlaG9sZGVyLXNoZWVuIHsKICAgIDAlIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTU4JSk7CiAgICAgICAgb3BhY2l0eTogMC4xODsKICAgIH0KICAgIDUwJSB7CiAgICAgICAgb3BhY2l0eTogMC4zNDsKICAgIH0KICAgIDEwMCUgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1OCUpOwogICAgICAgIG9wYWNpdHk6IDAuMTg7CiAgICB9Cn0KCkBrZXlmcmFtZXMgbWpyLWxpdmUtcGxhY2Vob2xkZXItcHVsc2UgewogICAgMCUsCiAgICAxMDAlIHsKICAgICAgICBib3gtc2hhZG93OgogICAgICAgICAgICAwIDAgMCAxcHggcmdiYSgxMTgsIDIxNCwgMjU1LCAwLjM0KSwKICAgICAgICAgICAgMCAxMHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjI0KTsKICAgIH0KICAgIDUwJSB7CiAgICAgICAgYm94LXNoYWRvdzoKICAgICAgICAgICAgMCAwIDAgMXB4IHJnYmEoMTE4LCAyMTQsIDI1NSwgMC41MiksCiAgICAgICAgICAgIDAgMCAwIDRweCByZ2JhKDExOCwgMjE0LCAyNTUsIDAuMTIpLAogICAgICAgICAgICAwIDEycHggMzBweCByZ2JhKDAsIDAsIDAsIDAuMjgpOwogICAgfQp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZFtkYXRhLW1qci1saXZlLXBsYWNlaG9sZGVyPSJ0cnVlIl0gewogICAgYW5pbWF0aW9uOiBtanItbGl2ZS1wbGFjZWhvbGRlci1wdWxzZSAxLjlzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZFtkYXRhLW1qci1saXZlLXBsYWNlaG9sZGVyPSJ0cnVlIl0gLm1qci10aHVtYiB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBvdmVyZmxvdzogaGlkZGVuOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItbGl2ZS1wbGFjZWhvbGRlci13YXNoIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAtOCU7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIHotaW5kZXg6IDE7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgMTE1ZGVnLAogICAgICAgIHJnYmEoOTgsIDE5OSwgMjU1LCAwKSAwJSwKICAgICAgICByZ2JhKDk4LCAxOTksIDI1NSwgMC4wOCkgMzAlLAogICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNCkgNTAlLAogICAgICAgIHJnYmEoOTgsIDE5OSwgMjU1LCAwLjEyKSA3MCUsCiAgICAgICAgcmdiYSg5OCwgMTk5LCAyNTUsIDApIDEwMCUKICAgICk7CiAgICBhbmltYXRpb246IG1qci1saXZlLXBsYWNlaG9sZGVyLXNoZWVuIDIuMnMgbGluZWFyIGluZmluaXRlOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItbGl2ZS1waWxsIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogNnB4OwogICAgcmlnaHQ6IDZweDsKICAgIHotaW5kZXg6IDEyOwogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA2cHg7CiAgICBtaW4taGVpZ2h0OiAyNHB4OwogICAgcGFkZGluZzogMCA4cHg7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMTAsIDE0LCAyMCwgMC43OCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDExOCwgMjE0LCAyNTUsIDAuMzQpOwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Nik7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTsKICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMjQpOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDZweCk7CiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWxpdmUtcGlsbC1kb3QgewogICAgd2lkdGg6IDdweDsKICAgIGhlaWdodDogN3B4OwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBiYWNrZ3JvdW5kOiAjNzZkNmZmOwogICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMTE4LCAyMTQsIDI1NSwgMC4xNik7CiAgICBmbGV4OiAwIDAgYXV0bzsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmRbZGF0YS1tanItbGl2ZS1wbGFjZWhvbGRlcj0idHJ1ZSJdIC5tanItYXNzZXQtc3RhdHVzLWRvdCB7CiAgICBhbmltYXRpb246IG1qci1saXZlLXBsYWNlaG9sZGVyLXB1bHNlIDEuOXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KCi8qIEdyaWQgbG9hZGluZyBvdmVybGF5ICovCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1ncmlkLWxvYWRpbmctb3ZlcmxheSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogMDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgIzAwMCAzNSUsIHRyYW5zcGFyZW50KTsKICAgIGNvbG9yOiB2YXIoLS1jb250ZW50LWZnLCAjZmZmKTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjNweDsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW1qci1yLWxnKTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1ncmlkLXNrZWxldG9uLWxheW91dCB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTMycHgsIDFmcikpOwogICAgZ2FwOiAxMnB4Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItZ3JpZC1za2VsZXRvbi1jYXJkIHsKICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjIpOwogICAgYmFja2dyb3VuZDogcmdiYSgxOTIsIDE5OCwgMjA2LCAwLjIpOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIC8qIG1pbi1oZWlnaHQgcmVtb3ZlZDogVnVlIHNrZWxldG9uQ2FyZFN0eWxlIHNldHMgYW4gZXhwbGljaXQgaGVpZ2h0IGRlcml2ZWQKICAgICAgIGZyb20gZXN0aW1hdGVSb3dIZWlnaHQuIEEgY29uZmxpY3RpbmcgbWluLWhlaWdodCBjYXVzZWQgc2tlbGV0b24gY2FyZHMgdG8KICAgICAgIGJlIHRhbGxlciB0aGFuIHRoZSBhY3R1YWwgY2FyZHMgdGhleSByZXBsYWNlLCBjYXVzaW5nIGEgbGF5b3V0IGp1bXAgd2hlbgogICAgICAgYXNzZXRzIGZpcnN0IGxvYWQuICovCiAgICBib3gtc2hhZG93OiAwIDZweCAxOHB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1ncmlkLXNrZWxldG9uLXRodW1iIHsKICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7CiAgICB3aWR0aDogMTAwJTsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICA5MGRlZywKICAgICAgICByZ2JhKDE1NiwgMTYyLCAxNzEsIDAuNTIpIDAlLAogICAgICAgIHJnYmEoMjIwLCAyMjUsIDIzMiwgMC43MikgNDUlLAogICAgICAgIHJnYmEoMTU2LCAxNjIsIDE3MSwgMC41MikgMTAwJQogICAgKTsKICAgIGJhY2tncm91bmQtc2l6ZTogMjQwJSAxMDAlOwogICAgYW5pbWF0aW9uOiBtanItZ3JpZC1za2VsZXRvbi1zaGltbWVyIDEuMnMgbGluZWFyIGluZmluaXRlOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItZ3JpZC1za2VsZXRvbi1saW5lIHsKICAgIGhlaWdodDogMTBweDsKICAgIG1hcmdpbjogOHB4IDEwcHg7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgOTBkZWcsCiAgICAgICAgcmdiYSgxNjQsIDE3MCwgMTc5LCAwLjQ4KSAwJSwKICAgICAgICByZ2JhKDIxNCwgMjE5LCAyMjYsIDAuNykgNDUlLAogICAgICAgIHJnYmEoMTY0LCAxNzAsIDE3OSwgMC40OCkgMTAwJQogICAgKTsKICAgIGJhY2tncm91bmQtc2l6ZTogMjQwJSAxMDAlOwogICAgYW5pbWF0aW9uOiBtanItZ3JpZC1za2VsZXRvbi1zaGltbWVyIDEuMnMgbGluZWFyIGluZmluaXRlOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItZ3JpZC1za2VsZXRvbi1saW5lLS10aXRsZSB7CiAgICB3aWR0aDogNzIlOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItZ3JpZC1za2VsZXRvbi1saW5lLS1tZXRhIHsKICAgIHdpZHRoOiA0OCU7CiAgICBtYXJnaW4tdG9wOiAycHg7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4Owp9CgpAa2V5ZnJhbWVzIG1qci1za2VsZXRvbi1zaGltbWVyIHsKICAgIDAlIHsKICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMjAlIDA7CiAgICB9CiAgICAxMDAlIHsKICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTIwJSAwOwogICAgfQp9CgpAa2V5ZnJhbWVzIG1qci1ncmlkLXNrZWxldG9uLXNoaW1tZXIgewogICAgMCUgewogICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMDsKICAgIH0KICAgIDEwMCUgewogICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDAlIDA7CiAgICB9Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1ncmlkLXNrZWxldG9uLXNoaW1tZXIgewogICAgd2lsbC1jaGFuZ2U6IGJhY2tncm91bmQtcG9zaXRpb247Cn0KCi8qIEdlbmVyaWMgaGVhZGluZ3MgaW5zaWRlIHBhbmVsICovCi5tanItYXNzZXRzLW1hbmFnZXIgaDMsCi5tanItYXNzZXRzLW1hbmFnZXIgaDQgewogICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtOwp9CgovKiBQYW5lbHMgKi8KLm1qci1hc3NldHMtbWFuYWdlciAubWpyLXBhbmVsIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLW1qci1zdXJmYWNlLTEpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlcik7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1tanItci1sZyk7CiAgICBib3gtc2hhZG93OiB2YXIoLS1pbnRlcmZhY2UtcGFuZWwtYm94LXNoYWRvdywgMCA4cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMjUpKTsKfQoKLyogVG9vbGJhciAqLwoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItdG9vbGJhciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTBweDsKICAgIHBhZGRpbmc6IHZhcigtLW1qci1wYWQtbWQpOwp9CgovKiBCdXR0b25zICovCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1idG4gewogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIpOwogICAgYmFja2dyb3VuZDogdmFyKC0tbWpyLXN1cmZhY2UtMik7CiAgICBjb2xvcjogdmFyKC0tY29udGVudC1mZywgI2RkZCk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1tanItci1tZCk7CiAgICBwYWRkaW5nOiA3cHggMTBweDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICB0cmFuc2l0aW9uOgogICAgICAgIGJhY2tncm91bmQgMTIwbXMgZWFzZSwKICAgICAgICBib3JkZXItY29sb3IgMTIwbXMgZWFzZSwKICAgICAgICB0cmFuc2Zvcm0gODBtcyBlYXNlOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYnRuOmhvdmVyIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDU1JSwgdmFyKC0tbWpyLWJvcmRlcikpOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTIpIDcwJSwgdmFyKC0tbWpyLWFjY2VudCkgMTAlKTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWJ0bjphY3RpdmUgewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1idG46ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC41NTsKICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1idG4ubWpyLXByaW1hcnkgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgNjAlLCB2YXIoLS1tanItYm9yZGVyKSk7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgMTQlLCB2YXIoLS1tanItc3VyZmFjZS0yKSk7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1idG4gewogICAgLyogT3ZlcnJpZGUgaW5saW5lIHN0eWxlcyBpZiBwcmVzZW50ICovCiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tanItYm9yZGVyKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLW1qci1zdXJmYWNlLTIpOwogICAgY29sb3I6IHZhcigtLWNvbnRlbnQtZmcsICNkZGQpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbWpyLXItbWQpOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYnRuOmhvdmVyIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDU1JSwgdmFyKC0tbWpyLWJvcmRlcikpOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTIpIDcwJSwgdmFyKC0tbWpyLWFjY2VudCkgMTAlKTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWJ0bi5tanItc3RhdHVzLXNjYW4gewogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgIGNvbG9yOiB2YXIoLS1tanItc3RhdHVzLWNvbG9yLCB2YXIoLS1jb250ZW50LWZnLCAjZGRkKSk7CiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3RhdHVzLWNvbG9yKSA2MCUsIHZhcigtLW1qci1ib3JkZXIpKTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3RhdHVzLWNvbG9yKSAxNCUsIHZhcigtLW1qci1zdXJmYWNlLTIpKTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWJ0bi5tanItc3RhdHVzLXNjYW46aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tanItc3RhdHVzLWNvbG9yKTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3RhdHVzLWNvbG9yKSAyNCUsIHZhcigtLW1qci1zdXJmYWNlLTIpKTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWJ0bi5tanItc3RhdHVzLXNjYW46Zm9jdXMtdmlzaWJsZSB7CiAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tbWpyLXN0YXR1cy1jb2xvcik7CiAgICBvdXRsaW5lLW9mZnNldDogMnB4Owp9CgovKiBJbnB1dHMgLyBzZWxlY3RzICh1c2VkIGluc2lkZSBwb3J0YWxlZCBwb3BvdmVycyB0b28pICovCi5tanItaW5wdXQsCi5tanItc2VsZWN0LAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItaW5wdXQsCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1zZWxlY3QgewogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIpOwogICAgYmFja2dyb3VuZDogdmFyKC0tY29tZnktaW5wdXQtYmcsIHJnYmEoMCwgMCwgMCwgMC4yNSkpOwogICAgY29sb3I6IHZhcigtLWlucHV0LXRleHQsICNkZGQpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbWpyLXItbWQpOwogICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdXRsaW5lOiBub25lOwogICAgd2lkdGg6IDEwMCU7CiAgICBtaW4td2lkdGg6IDA7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItbXV0ZWQpIDgwJSwgdHJhbnNwYXJlbnQpOwp9CgoubWpyLWlucHV0OmZvY3VzLAoubWpyLXNlbGVjdDpmb2N1cywKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWlucHV0OmZvY3VzLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItc2VsZWN0OmZvY3VzIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDY1JSwgdmFyKC0tbWpyLWJvcmRlcikpOwogICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYWNjZW50KSAyMCUsIHRyYW5zcGFyZW50KTsKfQoKLm1qci1pbnB1dCwKLm1qci1zZWxlY3QsCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1pbnB1dCwKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLXNlbGVjdCB7CiAgICAvKiBPdmVycmlkZSBpbmxpbmUgc3R5bGVzIGlmIHByZXNlbnQgKi8KICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIpOwogICAgYmFja2dyb3VuZDogdmFyKC0tY29tZnktaW5wdXQtYmcsIHJnYmEoMCwgMCwgMCwgMC4yNSkpOwogICAgY29sb3I6IHZhcigtLWlucHV0LXRleHQsICNkZGQpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbWpyLXItbWQpOwogICAgcGFkZGluZzogOHB4IDEwcHg7Cn0KCi5tanItZmlsdGVyLXBvcG92ZXIgLm1qci1maWx0ZXItc2VsZWN0IHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGdhcDogOHB4OwogICAgbWluLWhlaWdodDogMzRweDsKICAgIHBhZGRpbmc6IDAgOXB4OwogICAgbGluZS1oZWlnaHQ6IDEuMjsKfQoKLm1qci1maWx0ZXItcG9wb3ZlciAubWpyLWZpbHRlci1zZWxlY3RbZGF0YS1wLWRpc2FibGVkPSJ0cnVlIl0gewogICAgb3BhY2l0eTogMC41NTsKICAgIGN1cnNvcjogZGVmYXVsdDsKfQoKLm1qci1maWx0ZXItcG9wb3ZlciAubWpyLWZpbHRlci1zZWxlY3QgW2RhdGEtcGMtc2VjdGlvbj0ibGFiZWwiXSB7CiAgICBmbGV4OiAxIDEgYXV0bzsKICAgIG1pbi13aWR0aDogMDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCi5tanItZmlsdGVyLXBvcG92ZXIgLm1qci1maWx0ZXItc2VsZWN0IFtkYXRhLXBjLXNlY3Rpb249ImRyb3Bkb3duIl0gewogICAgZmxleDogMCAwIGF1dG87CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIHdpZHRoOiAxOHB4OwogICAgY29sb3I6IHZhcigtLW1qci1tdXRlZCwgdmFyKC0tZGVzY3JpcC10ZXh0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjUpKSk7Cn0KCi5tanItZmlsdGVyLXNlbGVjdC1wYW5lbCB7CiAgICBtaW4td2lkdGg6IHZhcigtLXAtc2VsZWN0LW92ZXJsYXktd2lkdGgsIDEycmVtKTsKICAgIG1heC13aWR0aDogbWluKDMyMHB4LCBjYWxjKDEwMHZ3IC0gMzJweCkpOwogICAgbWF4LWhlaWdodDogbWluKDMyMHB4LCBjYWxjKDEwMHZoIC0gMzJweCkpOwogICAgb3ZlcmZsb3c6IGF1dG87CiAgICBwYWRkaW5nOiA0cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tanItYm9yZGVyKTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW1qci1yLW1kKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLW1qci1zdXJmYWNlLTEsIHZhcigtLWNvbWZ5LW1lbnUtYmcsICMyYTJhMmEpKTsKICAgIGNvbG9yOiB2YXIoLS1jb250ZW50LWZnLCB2YXIoLS1pbnB1dC10ZXh0LCAjZGRkKSk7CiAgICBib3gtc2hhZG93OiAwIDEycHggMjhweCByZ2JhKDAsIDAsIDAsIDAuMzgpOwogICAgei1pbmRleDogY2FsYyh2YXIoLS1tanItcG9wb3Zlci16LWluZGV4LCAyMTQ3NDgzNjQ3KSArIDEpOwp9CgoubWpyLWZpbHRlci1zZWxlY3QtcGFuZWwgW2RhdGEtcGMtc2VjdGlvbj0ibGlzdCJdIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiAycHg7CiAgICBwYWRkaW5nOiAwOwogICAgbWFyZ2luOiAwOwogICAgbGlzdC1zdHlsZTogbm9uZTsKfQoKLm1qci1maWx0ZXItc2VsZWN0LXBhbmVsIFtkYXRhLXBjLXNlY3Rpb249Im9wdGlvbiJdIHsKICAgIG1pbi1oZWlnaHQ6IDI4cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHBhZGRpbmc6IDZweCA4cHg7CiAgICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLW1qci1yLW1kKSAtIDJweCk7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBsaW5lLWhlaWdodDogMS4yNTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGNvbG9yOiB2YXIoLS1jb250ZW50LWZnLCB2YXIoLS1pbnB1dC10ZXh0LCAjZGRkKSk7Cn0KCi5tanItZmlsdGVyLXNlbGVjdC1wYW5lbCBbZGF0YS1wYy1zZWN0aW9uPSJvcHRpb24iXTpob3ZlciwKLm1qci1maWx0ZXItc2VsZWN0LXBhbmVsIFtkYXRhLXAtaGlnaGxpZ2h0PSJ0cnVlIl0gewogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDE4JSwgdHJhbnNwYXJlbnQpOwogICAgY29sb3I6IHZhcigtLWNvbnRlbnQtZmcsICNmZmYpOwp9CgovKiBUYWJzOiBvdmVycmlkZGVuIGFib3ZlIHdpdGggcXVldWUtbGlrZSBzdHlsZSAqLwoKLyogUmVtb3ZlZCByZWR1bmRhbnQgdGFiIGRlY2xhcmF0aW9ucyB0aGF0IHdlcmUgdXNpbmcgIWltcG9ydGFudCAqLwoKLyogTXV0ZWQgdGV4dCBoZWxwZXIgKi8KLm1qci1hc3NldHMtbWFuYWdlciAubWpyLW11dGVkIHsKICAgIGNvbG9yOiB2YXIoLS1tanItbXV0ZWQpOwp9CgovKiBHcmlkICsgY2FyZHMgKG92ZXJyaWRlIGlubGluZSBzdHlsZXMgZnJvbSBDYXJkLmpzKSAqLwoubWpyLWFzc2V0cy1tYW5hZ2VyICNtanItYXNzZXRzLWdyaWQgewogICAgZ2FwOiAxMHB4ICFpbXBvcnRhbnQ7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hc3NldC1jYXJkLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItY2FyZCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tanItc3VyZmFjZS0xKSAhaW1wb3J0YW50OwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlcikgIWltcG9ydGFudDsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW1qci1yLWxnKSAhaW1wb3J0YW50OwogICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OwogICAgbWluLXdpZHRoOiAwOwogICAgdHJhbnNpdGlvbjoKICAgICAgICB0cmFuc2Zvcm0gMTIwbXMgZWFzZSwKICAgICAgICBib3JkZXItY29sb3IgMTIwbXMgZWFzZSwKICAgICAgICBib3gtc2hhZG93IDEyMG1zIGVhc2UgIWltcG9ydGFudDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmQ6aG92ZXIsCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1jYXJkOmhvdmVyIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KSAhaW1wb3J0YW50OwogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoCiAgICAgICAgaW4gc3JnYiwKICAgICAgICB2YXIoLS1tanItY2FyZC1zZWxlY3Rpb24tY29sb3IpIDU1JSwKICAgICAgICB2YXIoLS1tanItYm9yZGVyKQogICAgKSAhaW1wb3J0YW50OwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWpyLWNhcmQtaG92ZXItY29sb3IpICFpbXBvcnRhbnQ7CiAgICBib3gtc2hhZG93OiAwIDhweCAyMnB4IHJnYmEoMCwgMCwgMCwgMC4yNSkgIWltcG9ydGFudDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmQgaW1nLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZCB2aWRlbywKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLXRodW1iLW1lZGlhIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OwogICAgb2JqZWN0LWZpdDogY292ZXIgIWltcG9ydGFudDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLXRodW1iIHsKICAgIGZsZXg6IDAgMCBhdXRvOwogICAgd2lkdGg6IDEwMCU7CiAgICBhc3BlY3QtcmF0aW86IDEgLyAxOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTApIDgwJSwgdHJhbnNwYXJlbnQpOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWF1ZGlvLXRodW1iLAoubWpyLWJvdHRvbS1mZWVkIC5tanItYXVkaW8tdGh1bWIgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgaW5zZXQ6IDA7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGdhcDogMTBweDsKICAgIHBhZGRpbmc6IDE0cHggMTJweCAxMnB4OwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NCk7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGJhY2tncm91bmQ6CiAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAxOCUgMjAlLCByZ2JhKDc4LCAxODQsIDI1NSwgMC4zMiksIHRyYW5zcGFyZW50IDM4JSksCiAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4OCUgNzIlLCByZ2JhKDgyLCAyMjAsIDE1NiwgMC4yNCksIHRyYW5zcGFyZW50IDQyJSksCiAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxOCwgMjYsIDM2LCAwLjk4KSwgcmdiYSg4LCAxMiwgMTgsIDAuOTgpKTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWF1ZGlvLXRodW1iLmhhcy1wb3N0ZXIsCi5tanItYm90dG9tLWZlZWQgLm1qci1hdWRpby10aHVtYi5oYXMtcG9zdGVyIHsKICAgIGJhY2tncm91bmQ6CiAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSg0LCA2LCAxMCwgMC4yOCksIHJnYmEoNCwgNiwgMTAsIDAuODYpKSwKICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSA0MiUsIHJnYmEoNzgsIDE4NCwgMjU1LCAwLjIpLCB0cmFuc3BhcmVudCA1NCUpOwogICAgYmFja2Ryb3AtZmlsdGVyOiBzYXR1cmF0ZSgxLjEpOwogICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDEuMSk7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hdWRpby10aHVtYi1oZWFkLAoubWpyLWJvdHRvbS1mZWVkIC5tanItYXVkaW8tdGh1bWItaGVhZCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGdhcDogOHB4OwogICAgbWluLXdpZHRoOiAwOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXVkaW8tdGh1bWItaWNvbiwKLm1qci1ib3R0b20tZmVlZCAubWpyLWF1ZGlvLXRodW1iLWljb24gewogICAgd2lkdGg6IDI4cHg7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7CiAgICBib3gtc2hhZG93OiAwIDhweCAxOHB4IHJnYmEoMCwgMCwgMCwgMC4yMik7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hdWRpby10aHVtYi1raW5kLAoubWpyLWJvdHRvbS1mZWVkIC5tanItYXVkaW8tdGh1bWIta2luZCB7CiAgICBtYXgtd2lkdGg6IDYycHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgcGFkZGluZzogM3B4IDdweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjI4KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMyk7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBmb250LXdlaWdodDogODAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDA7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hdWRpby10aHVtYi13YXZlZm9ybSwKLm1qci1ib3R0b20tZmVlZCAubWpyLWF1ZGlvLXRodW1iLXdhdmVmb3JtIHsKICAgIGZsZXg6IDE7CiAgICBtaW4taGVpZ2h0OiA0MnB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGdhcDogY2xhbXAoMnB4LCAyLjIlLCA1cHgpOwogICAgcGFkZGluZzogNHB4IDA7CiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgNHB4IDE0cHggcmdiYSgwLCAwLCAwLCAwLjM0KSk7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hdWRpby10aHVtYi13YXZlZm9ybSBzcGFuLAoubWpyLWJvdHRvbS1mZWVkIC5tanItYXVkaW8tdGh1bWItd2F2ZWZvcm0gc3BhbiB7CiAgICB3aWR0aDogM3B4OwogICAgbWluLXdpZHRoOiAycHg7CiAgICBtYXgtd2lkdGg6IDVweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk4KSwgcmdiYSgxNjAsIDIyNCwgMjU1LCAwLjcyKSk7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hdWRpby10aHVtYi1tZXRhLAoubWpyLWJvdHRvbS1mZWVkIC5tanItYXVkaW8tdGh1bWItbWV0YSB7CiAgICBtaW4td2lkdGg6IDA7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogMnB4OwogICAgdGV4dC1zaGFkb3c6IDAgMnB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjYyKTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWF1ZGlvLXRodW1iLXRpdGxlLAoubWpyLWJvdHRvbS1mZWVkIC5tanItYXVkaW8tdGh1bWItdGl0bGUgewogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICBsaW5lLWhlaWdodDogMS4yOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXVkaW8tdGh1bWItc3VidGl0bGUsCi5tanItYm90dG9tLWZlZWQgLm1qci1hdWRpby10aHVtYi1zdWJ0aXRsZSB7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGZvbnQtd2VpZ2h0OiA2NTA7CiAgICBsaW5lLWhlaWdodDogMS4yOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZCAubWpyLXdvcmtmbG93LXRodW1iLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItY2FyZCAubWpyLXdvcmtmbG93LXRodW1iIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAwOwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBnYXA6IDdweDsKICAgIHBhZGRpbmc6IDE0cHggMTJweDsKICAgIGJhY2tncm91bmQ6CiAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg0NywgNTgsIDc2LCAwLjk0KSwgcmdiYSgxOCwgMjMsIDMyLCAwLjk4KSksCiAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzMCUgMjUlLCByZ2JhKDc4LCAxODQsIDI1NSwgMC4yMiksIHRyYW5zcGFyZW50IDQyJSk7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgdGV4dC1zaGFkb3c6IDAgMXB4IDhweCByZ2JhKDAsIDAsIDAsIDAuNzIpOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZCAubWpyLXRodW1iLm1qci10aHVtYi13b3JrZmxvdywKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWNhcmQgLm1qci10aHVtYi5tanItdGh1bWItd29ya2Zsb3cgewogICAgYXNwZWN0LXJhdGlvOiAxLjA4IC8gMTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmQgLm1qci13b3JrZmxvdy1jYXJkLWFjdGlvbnMsCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1jYXJkIC5tanItd29ya2Zsb3ctY2FyZC1hY3Rpb25zIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogN3B4OwogICAgcmlnaHQ6IDdweDsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgZ2FwOiA0cHg7CiAgICB6LWluZGV4OiAxMjsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmQgLm1qci13b3JrZmxvdy1hY3Rpb24tYnRuLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItY2FyZCAubWpyLXdvcmtmbG93LWFjdGlvbi1idG4gewogICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIHdpZHRoOiAyNHB4OwogICAgaGVpZ2h0OiAyNHB4OwogICAgbWluLXdpZHRoOiAyNHB4OwogICAgbWluLWhlaWdodDogMjRweDsKICAgIHBhZGRpbmc6IDA7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzQpOwogICAgYm9yZGVyLXJhZGl1czogN3B4OwogICAgYmFja2dyb3VuZDogcmdiYSg4LCAxMiwgMTgsIDAuNTgpOwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDNweCk7CiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigzcHgpOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZCAubWpyLXdvcmtmbG93LWFjdGlvbi1idG46aG92ZXIsCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1jYXJkIC5tanItd29ya2Zsb3ctYWN0aW9uLWJ0bjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI5LCA0MCwgNTgsIDAuNzgpOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZCAubWpyLXdvcmtmbG93LWFjdGlvbi1idG4uaXMtYWN0aXZlLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItY2FyZCAubWpyLXdvcmtmbG93LWFjdGlvbi1idG4uaXMtYWN0aXZlIHsKICAgIGNvbG9yOiAjZmZkNDVhOwogICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjEyLCA5MCwgMC43KTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmQgLm1qci13b3JrZmxvdy10aHVtYiAucGksCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1jYXJkIC5tanItd29ya2Zsb3ctdGh1bWIgLnBpIHsKICAgIGZvbnQtc2l6ZTogMS43NXJlbTsKICAgIG9wYWNpdHk6IDAuNzI7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hc3NldC1jYXJkIC5tanItd29ya2Zsb3ctdGh1bWIuaGFzLXRodW1ibmFpbCwKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWNhcmQgLm1qci13b3JrZmxvdy10aHVtYi5oYXMtdGh1bWJuYWlsIHsKICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICBiYWNrZ3JvdW5kOgogICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHRyYW5zcGFyZW50IDI0JSwgcmdiYSgwLCAwLCAwLCAwLjI4KSA1OCUsIHJnYmEoMCwgMCwgMCwgMC43OCkpLAogICAgICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgwLCAwLCAwLCAwLjM0KSwgdHJhbnNwYXJlbnQgMzQlLCB0cmFuc3BhcmVudCA2NiUsIHJnYmEoMCwgMCwgMCwgMC4zNCkpOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZCAubWpyLXRodW1iLW1lZGlhLm1qci13b3JrZmxvdy1ncmFwaC1tYXAtcHJldmlldywKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWNhcmQgLm1qci10aHVtYi1tZWRpYS5tanItd29ya2Zsb3ctZ3JhcGgtbWFwLXByZXZpZXcgewogICAgb2JqZWN0LWZpdDogY292ZXIgIWltcG9ydGFudDsKICAgIG9wYWNpdHk6IDAuNDY7CiAgICBmaWx0ZXI6IHNhdHVyYXRlKDAuNzUpIGNvbnRyYXN0KDAuODIpIGJyaWdodG5lc3MoMC43KTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNik7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hc3NldC1jYXJkIC5tanItd29ya2Zsb3ctdGh1bWIuaGFzLWdyYXBoLW1hcCwKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWNhcmQgLm1qci13b3JrZmxvdy10aHVtYi5oYXMtZ3JhcGgtbWFwIHsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYmFja2dyb3VuZDoKICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDgsIDEwLCAxNCwgMC4zKSwgcmdiYSg4LCAxMCwgMTQsIDAuODIpKSwKICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSA0MiUsIHJnYmEoMCwgMCwgMCwgMC4xOCksIHJnYmEoMCwgMCwgMCwgMC42OCkgNzIlKTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmQgLm1qci13b3JrZmxvdy10aHVtYi5oYXMtZ3JhcGgtbWFwIC5tanItd29ya2Zsb3ctdGh1bWItdGl0bGUsCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1jYXJkIC5tanItd29ya2Zsb3ctdGh1bWIuaGFzLWdyYXBoLW1hcCAubWpyLXdvcmtmbG93LXRodW1iLXRpdGxlIHsKICAgIHBhZGRpbmc6IDJweCA3cHg7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzYpOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZCAubWpyLXdvcmtmbG93LXRodW1iLmhhcy10aHVtYm5haWwgLnBpLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItY2FyZCAubWpyLXdvcmtmbG93LXRodW1iLmhhcy10aHVtYm5haWwgLnBpIHsKICAgIGRpc3BsYXk6IG5vbmU7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hc3NldC1jYXJkIC5tanItd29ya2Zsb3ctdGh1bWIuaGFzLWdyYXBoLW1hcCAucGksCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1jYXJkIC5tanItd29ya2Zsb3ctdGh1bWIuaGFzLWdyYXBoLW1hcCAucGkgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICBmb250LXNpemU6IDEuMTVyZW07CiAgICBvcGFjaXR5OiAwLjU1Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZCAubWpyLXdvcmtmbG93LXRodW1iLXRpdGxlLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItY2FyZCAubWpyLXdvcmtmbG93LXRodW1iLXRpdGxlIHsKICAgIG1heC13aWR0aDogMTAwJTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBmb250LXNpemU6IDAuODRyZW07CiAgICBmb250LXdlaWdodDogODAwOwogICAgbGluZS1oZWlnaHQ6IDEuMTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmQgLm1qci13b3JrZmxvdy10aHVtYi1tZXRhLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItY2FyZCAubWpyLXdvcmtmbG93LXRodW1iLW1ldGEgewogICAgZGlzcGxheTogZmxleDsKICAgIG1heC13aWR0aDogMTAwJTsKICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZ2FwOiA0cHg7CiAgICBmb250LXNpemU6IDAuNjhyZW07Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hc3NldC1jYXJkIC5tanItd29ya2Zsb3ctdGh1bWItbWV0YSBzcGFuLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItY2FyZCAubWpyLXdvcmtmbG93LXRodW1iLW1ldGEgc3BhbiwKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmQgLm1qci1tZXRhLXdvcmtmbG93LXRhc2ssCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1jYXJkIC5tanItbWV0YS13b3JrZmxvdy10YXNrLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZCAubWpyLW1ldGEtd29ya2Zsb3ctc3ViZ3JhcGhzLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItY2FyZCAubWpyLW1ldGEtd29ya2Zsb3ctc3ViZ3JhcGhzIHsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7CiAgICBwYWRkaW5nOiAycHggNXB4OwogICAgbWF4LXdpZHRoOiAxMDAlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmQgLm1qci13b3JrZmxvdy10aHVtYi1tZXRhIHNwYW46bnRoLWNoaWxkKG4gKyA0KSwKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWNhcmQgLm1qci13b3JrZmxvdy10aHVtYi1tZXRhIHNwYW46bnRoLWNoaWxkKG4gKyA0KSB7CiAgICBkaXNwbGF5OiBub25lOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZCAubWpyLWNhcmQtbWV0YVtkYXRhLW1qci1raW5kPSJ3b3JrZmxvdyJdLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItY2FyZCAubWpyLWNhcmQtbWV0YVtkYXRhLW1qci1raW5kPSJ3b3JrZmxvdyJdIHsKICAgIHBhZGRpbmc6IDdweCA5cHggIWltcG9ydGFudDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmQgLm1qci1jYXJkLW1ldGFbZGF0YS1tanIta2luZD0id29ya2Zsb3ciXSAubWpyLWNhcmQtZmlsZW5hbWUsCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1jYXJkIC5tanItY2FyZC1tZXRhW2RhdGEtbWpyLWtpbmQ9IndvcmtmbG93Il0gLm1qci1jYXJkLWZpbGVuYW1lIHsKICAgIG1hcmdpbi1ib3R0b206IDNweCAhaW1wb3J0YW50OwogICAgZm9udC1zaXplOiAwLjc4cmVtICFpbXBvcnRhbnQ7CiAgICBsaW5lLWhlaWdodDogMS4xNSAhaW1wb3J0YW50Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZCAubWpyLWNhcmQtbWV0YVtkYXRhLW1qci1raW5kPSJ3b3JrZmxvdyJdIC5tanItY2FyZC1tZXRhLXJvdywKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWNhcmQgLm1qci1jYXJkLW1ldGFbZGF0YS1tanIta2luZD0id29ya2Zsb3ciXSAubWpyLWNhcmQtbWV0YS1yb3cgewogICAgZm9udC1zaXplOiAwLjcycmVtICFpbXBvcnRhbnQ7CiAgICBvcGFjaXR5OiAwLjc0ICFpbXBvcnRhbnQ7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hc3NldC1jYXJkIC5tanItY2FyZC1tZXRhW2RhdGEtbWpyLWtpbmQ9IndvcmtmbG93Il0gLm1qci1jYXJkLW1ldGEtcm93IC5tanItbWV0YS13b3JrZmxvdy10YXNrLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItY2FyZCAubWpyLWNhcmQtbWV0YVtkYXRhLW1qci1raW5kPSJ3b3JrZmxvdyJdIC5tanItY2FyZC1tZXRhLXJvdyAubWpyLW1ldGEtd29ya2Zsb3ctdGFzayB7CiAgICBkaXNwbGF5OiBub25lOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZCAubWpyLXdvcmtmbG93LW1pc3NpbmctY2hpcCwKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWNhcmQgLm1qci13b3JrZmxvdy1taXNzaW5nLWNoaXAsCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hc3NldC1jYXJkIC5tanItbWV0YS13b3JrZmxvdy1taXNzaW5nLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItY2FyZCAubWpyLW1ldGEtd29ya2Zsb3ctbWlzc2luZyB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMTkwLCA2NiwgMC4yOCk7CiAgICBjb2xvcjogcmdiYSgyNTUsIDIzNiwgMTgwLCAwLjk4KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyMDYsIDEwMSwgMC40NSk7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1ncmlkIC5tanItZ3JpZC1ncm91cC1zZXBhcmF0b3IgewogICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogOHB4OwogICAgd2lkdGg6IDEwMCU7CiAgICBtaW4taGVpZ2h0OiAzMHB4OwogICAgbWFyZ2luOiAwIDAgOHB4OwogICAgcGFkZGluZzogNXB4IDlweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEodmFyKC0tbWpyLXdvcmtmbG93LWdyb3VwLWFjY2VudC1yZ2IsIDk1LCAxNzksIDI1NSksIDAuNDIpOwogICAgYm9yZGVyLXJhZGl1czogN3B4OwogICAgYmFja2dyb3VuZDoKICAgICAgICBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgICAgIDEzNWRlZywKICAgICAgICAgICAgcmdiYSh2YXIoLS1tanItd29ya2Zsb3ctZ3JvdXAtYWNjZW50LXJnYiwgOTUsIDE3OSwgMjU1KSwgMC4yMiksCiAgICAgICAgICAgIHJnYmEodmFyKC0tbWpyLXdvcmtmbG93LWdyb3VwLWFjY2VudC1yZ2IsIDk1LCAxNzksIDI1NSksIDAuMDgpCiAgICAgICAgKSwKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMikgNzglLCB0cmFuc3BhcmVudCk7CiAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbnRlbnQtZmcsICNmZmYpIDkyJSwgdHJhbnNwYXJlbnQpOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgZm9udDogaW5oZXJpdDsKICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWdyaWQgLm1qci1ncmlkLWdyb3VwLXNlcGFyYXRvcjpob3ZlciB7CiAgICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tbWpyLXdvcmtmbG93LWdyb3VwLWFjY2VudC1yZ2IsIDk1LCAxNzksIDI1NSksIDAuNjYpOwogICAgYmFja2dyb3VuZDoKICAgICAgICBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgICAgIDEzNWRlZywKICAgICAgICAgICAgcmdiYSh2YXIoLS1tanItd29ya2Zsb3ctZ3JvdXAtYWNjZW50LXJnYiwgOTUsIDE3OSwgMjU1KSwgMC4zKSwKICAgICAgICAgICAgcmdiYSh2YXIoLS1tanItd29ya2Zsb3ctZ3JvdXAtYWNjZW50LXJnYiwgOTUsIDE3OSwgMjU1KSwgMC4xMikKICAgICAgICApLAogICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA4NCUsIHRyYW5zcGFyZW50KTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWdyaWQgLm1qci1ncmlkLWdyb3VwLXNlcGFyYXRvcjpmb2N1cy12aXNpYmxlIHsKICAgIG91dGxpbmU6IDJweCBzb2xpZCByZ2JhKHZhcigtLW1qci13b3JrZmxvdy1ncm91cC1hY2NlbnQtcmdiLCA5NSwgMTc5LCAyNTUpLCAwLjU1KTsKICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1ncmlkIC5tanItZ3JpZC1ncm91cC1zZXBhcmF0b3ItLWFjY2VudC0wIHsKICAgIC0tbWpyLXdvcmtmbG93LWdyb3VwLWFjY2VudC1yZ2I6IDk1LCAxNzksIDI1NTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWdyaWQgLm1qci1ncmlkLWdyb3VwLXNlcGFyYXRvci0tYWNjZW50LTEgewogICAgLS1tanItd29ya2Zsb3ctZ3JvdXAtYWNjZW50LXJnYjogNTUsIDIxMSwgMTU2Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItZ3JpZCAubWpyLWdyaWQtZ3JvdXAtc2VwYXJhdG9yLS1hY2NlbnQtMiB7CiAgICAtLW1qci13b3JrZmxvdy1ncm91cC1hY2NlbnQtcmdiOiAyNDYsIDE3NywgNzU7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1ncmlkIC5tanItZ3JpZC1ncm91cC1zZXBhcmF0b3ItLWFjY2VudC0zIHsKICAgIC0tbWpyLXdvcmtmbG93LWdyb3VwLWFjY2VudC1yZ2I6IDIzOCwgMTA0LCAxMzY7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1ncmlkIC5tanItZ3JpZC1ncm91cC1zZXBhcmF0b3ItLWFjY2VudC00IHsKICAgIC0tbWpyLXdvcmtmbG93LWdyb3VwLWFjY2VudC1yZ2I6IDE1NywgMTMyLCAyMzg7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1ncmlkIC5tanItZ3JpZC1ncm91cC1zZXBhcmF0b3ItLWFjY2VudC01IHsKICAgIC0tbWpyLXdvcmtmbG93LWdyb3VwLWFjY2VudC1yZ2I6IDcxLCAxOTcsIDIyMjsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWdyaWQgLm1qci1ncmlkLWdyb3VwLXNlcGFyYXRvci0tYWNjZW50LTYgewogICAgLS1tanItd29ya2Zsb3ctZ3JvdXAtYWNjZW50LXJnYjogMTQ5LCAyMDcsIDgxOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItZ3JpZCAubWpyLWdyaWQtZ3JvdXAtc2VwYXJhdG9yLS1hY2NlbnQtNyB7CiAgICAtLW1qci13b3JrZmxvdy1ncm91cC1hY2NlbnQtcmdiOiAyNDIsIDEzMCwgNzg7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1ncmlkIC5tanItZ3JpZC1ncm91cC1zZXBhcmF0b3ItY2hldnJvbiB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGZsZXg6IDAgMCBhdXRvOwogICAgd2lkdGg6IDE4cHg7CiAgICBoZWlnaHQ6IDE4cHg7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIGNvbG9yOiByZ2IodmFyKC0tbWpyLXdvcmtmbG93LWdyb3VwLWFjY2VudC1yZ2IsIDk1LCAxNzksIDI1NSkpOwogICAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1tanItd29ya2Zsb3ctZ3JvdXAtYWNjZW50LXJnYiwgOTUsIDE3OSwgMjU1KSwgMC4xNCk7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1ncmlkIC5tanItZ3JpZC1ncm91cC1zZXBhcmF0b3ItY2hldnJvbiA+IC5waSB7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBsaW5lLWhlaWdodDogMTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWdyaWQgLm1qci1ncmlkLWdyb3VwLXNlcGFyYXRvci10aXRsZSB7CiAgICBtaW4td2lkdGg6IDA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgZm9udC13ZWlnaHQ6IDgwMDsKfQoKLm1qci13b3JrZmxvdy1waWNrZXItYmFja2Ryb3AgewogICAgcG9zaXRpb246IGZpeGVkOwogICAgaW5zZXQ6IDA7CiAgICB6LWluZGV4OiA5OTk5OTk7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgcGFkZGluZzogMjRweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41OCk7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Owp9CgoubWpyLXdvcmtmbG93LXBpY2tlci1kaWFsb2cgewogICAgd2lkdGg6IG1pbig5MjBweCwgOTZ2dyk7CiAgICBtYXgtaGVpZ2h0OiBtaW4oNzYwcHgsIDkydmgpOwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTsKICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMCwgIzExMTQxOCkgOTYlLCAjMDAwKTsKICAgIGNvbG9yOiB2YXIoLS1jb250ZW50LWZnLCAjZjVmNWY1KTsKICAgIGJveC1zaGFkb3c6IDAgMThweCA2MHB4IHJnYmEoMCwgMCwgMCwgMC40OCk7Cn0KCi5tanItd29ya2Zsb3ctaW5mby1kaWFsb2cgewogICAgd2lkdGg6IG1pbig1NjBweCwgOTZ2dyk7Cn0KCi5tanItd29ya2Zsb3ctaW5mby1mb3JtIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7CiAgICBnYXA6IDEycHg7CiAgICBwYWRkaW5nOiAxNHB4IDE4cHggNHB4Owp9CgoubWpyLXdvcmtmbG93LWluZm8tZm9ybSBsYWJlbCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogNnB4OwogICAgbWluLXdpZHRoOiAwOwp9CgoubWpyLXdvcmtmbG93LWluZm8tZm9ybSBsYWJlbC5pcy13aWRlIHsKICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7Cn0KCi5tanItd29ya2Zsb3ctaW5mby1mb3JtIHNwYW4gewogICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42NCk7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNzUwOwogICAgbGV0dGVyLXNwYWNpbmc6IC4wNGVtOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQoKLm1qci13b3JrZmxvdy1pbmZvLWZvcm0gaW5wdXQsCi5tanItd29ya2Zsb3ctaW5mby1mb3JtIHNlbGVjdCwKLm1qci13b3JrZmxvdy1pbmZvLWZvcm0gdGV4dGFyZWEgewogICAgd2lkdGg6IDEwMCU7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpOwogICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjI2KTsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuOTIpOwogICAgZm9udDogaW5oZXJpdDsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDlweCAxMHB4OwogICAgb3V0bGluZTogbm9uZTsKfQoKLm1qci13b3JrZmxvdy1pbmZvLWZvcm0gdGV4dGFyZWEgewogICAgcmVzaXplOiB2ZXJ0aWNhbDsKICAgIG1pbi1oZWlnaHQ6IDk2cHg7Cn0KCi5tanItd29ya2Zsb3ctcGlja2VyLWhlYWRlciwKLm1qci13b3JrZmxvdy1waWNrZXItZm9vdGVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgZ2FwOiAxMnB4OwogICAgcGFkZGluZzogMTJweCAxNHB4OwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsKfQoKLm1qci13b3JrZmxvdy1waWNrZXItZm9vdGVyIHsKICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOwogICAgYm9yZGVyLWJvdHRvbTogMDsKfQoKLm1qci13b3JrZmxvdy1waWNrZXItdGl0bGUgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA5cHg7CiAgICBtaW4td2lkdGg6IDA7CiAgICBmb250LXNpemU6IDE1cHg7CiAgICBmb250LXdlaWdodDogODAwOwp9CgoubWpyLXdvcmtmbG93LXBpY2tlci1pY29uLWJ0biwKLm1qci13b3JrZmxvdy1waWNrZXItYnRuIHsKICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpOwogICAgYm9yZGVyLXJhZGl1czogN3B4OwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTIsICMyNTI4MmQpIDg4JSwgdHJhbnNwYXJlbnQpOwogICAgY29sb3I6IHZhcigtLWNvbnRlbnQtZmcsICNmNWY1ZjUpOwogICAgY3Vyc29yOiBwb2ludGVyOwp9CgoubWpyLXdvcmtmbG93LXBpY2tlci1pY29uLWJ0biB7CiAgICB3aWR0aDogMzJweDsKICAgIGhlaWdodDogMzJweDsKfQoKLm1qci13b3JrZmxvdy1waWNrZXItYnRuIHsKICAgIG1pbi1oZWlnaHQ6IDMycHg7CiAgICBwYWRkaW5nOiAwIDEycHg7CiAgICBmb250LXdlaWdodDogNzAwOwp9CgoubWpyLXdvcmtmbG93LXBpY2tlci1idG4uaXMtcHJpbWFyeSB7CiAgICBib3JkZXItY29sb3I6IHJnYmEoNzcsIDE3MSwgMjQ3LCAwLjcpOwogICAgYmFja2dyb3VuZDogcmdiYSg3NywgMTcxLCAyNDcsIDAuMjIpOwp9CgoubWpyLXdvcmtmbG93LXBpY2tlci1idG46ZGlzYWJsZWQgewogICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgIG9wYWNpdHk6IDAuNDU7Cn0KCi5tanItd29ya2Zsb3ctcGlja2VyLXNvdXJjZSB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiA4cHg7CiAgICBwYWRkaW5nOiA4cHggMTRweDsKICAgIGNvbG9yOiB2YXIoLS1tanItbXV0ZWQsICNhZWIzYmQpOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7Cn0KCi5tanItd29ya2Zsb3ctcGlja2VyLXNvdXJjZSBzdHJvbmcgewogICAgbWluLXdpZHRoOiAwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIGNvbG9yOiB2YXIoLS1jb250ZW50LWZnLCAjZjVmNWY1KTsKfQoKLm1qci13b3JrZmxvdy1waWNrZXItdG9vbGJhciB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMTgwcHgsIDFmcikgcmVwZWF0KDMsIG1pbm1heCgxMTBweCwgMTUwcHgpKTsKICAgIGdhcDogOHB4OwogICAgcGFkZGluZzogMTJweCAxNHB4Owp9CgoubWpyLXdvcmtmbG93LXBpY2tlci1kaWFsb2cuaXMtYXNzZXQtbW9kZSAubWpyLXdvcmtmbG93LXBpY2tlci10b29sYmFyIHsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDE4MHB4LCAxZnIpOwp9CgoubWpyLXdvcmtmbG93LXBpY2tlci1zZWFyY2gsCi5tanItd29ya2Zsb3ctcGlja2VyLXRvb2xiYXIgc2VsZWN0IHsKICAgIG1pbi1oZWlnaHQ6IDM0cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpOwogICAgYm9yZGVyLXJhZGl1czogN3B4OwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTEsICMxNzFhMWYpIDkyJSwgIzAwMCk7CiAgICBjb2xvcjogdmFyKC0tY29udGVudC1mZywgI2Y1ZjVmNSk7Cn0KCi5tanItd29ya2Zsb3ctcGlja2VyLXNlYXJjaCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogOHB4OwogICAgcGFkZGluZzogMCAxMHB4Owp9CgoubWpyLXdvcmtmbG93LXBpY2tlci1zZWFyY2ggaW5wdXQgewogICAgd2lkdGg6IDEwMCU7CiAgICBtaW4td2lkdGg6IDA7CiAgICBib3JkZXI6IDA7CiAgICBvdXRsaW5lOiAwOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogaW5oZXJpdDsKfQoKLm1qci13b3JrZmxvdy1waWNrZXItdG9vbGJhciBzZWxlY3QgewogICAgcGFkZGluZzogMCA4cHg7Cn0KCi5tanItd29ya2Zsb3ctcGlja2VyLWJvZHkgewogICAgZmxleDogMSAxIGF1dG87CiAgICBtaW4taGVpZ2h0OiAyNjBweDsKICAgIG92ZXJmbG93OiBhdXRvOwogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE4MHB4LCAxZnIpKTsKICAgIGFsaWduLWNvbnRlbnQ6IHN0YXJ0OwogICAgZ2FwOiAxMHB4OwogICAgcGFkZGluZzogMCAxNHB4IDE0cHg7Cn0KCi5tanItd29ya2Zsb3ctcGlja2VyLWNhcmQgewogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDY4cHggbWlubWF4KDAsIDFmcik7CiAgICBnYXA6IDEwcHg7CiAgICBtaW4taGVpZ2h0OiA4NHB4OwogICAgcGFkZGluZzogOHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTsKICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0xLCAjMTcxYTFmKSA5MiUsIHRyYW5zcGFyZW50KTsKICAgIGNvbG9yOiBpbmhlcml0OwogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIGN1cnNvcjogcG9pbnRlcjsKfQoKLm1qci13b3JrZmxvdy1waWNrZXItZGlhbG9nLmlzLWFzc2V0LW1vZGUgLm1qci13b3JrZmxvdy1waWNrZXItY2FyZCB7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDc2cHggbWlubWF4KDAsIDFmcik7Cn0KCi5tanItd29ya2Zsb3ctcGlja2VyLWNhcmQ6aG92ZXIsCi5tanItd29ya2Zsb3ctcGlja2VyLWNhcmQuaXMtc2VsZWN0ZWQgewogICAgYm9yZGVyLWNvbG9yOiByZ2JhKDc3LCAxNzEsIDI0NywgMC43Mik7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDc3LCAxNzEsIDI0NywgMC4xMik7Cn0KCi5tanItd29ya2Zsb3ctcGlja2VyLXRodW1iIHsKICAgIHdpZHRoOiA2OHB4OwogICAgYXNwZWN0LXJhdGlvOiAxIC8gMTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTsKfQoKLm1qci13b3JrZmxvdy1waWNrZXItdGh1bWIgaW1nIHsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgb2JqZWN0LWZpdDogY292ZXI7Cn0KCi5tanItd29ya2Zsb3ctcGlja2VyLWNhcmQtaW5mbyB7CiAgICBtaW4td2lkdGg6IDA7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZ2FwOiA0cHg7Cn0KCi5tanItd29ya2Zsb3ctcGlja2VyLWNhcmQtaW5mbyBzdHJvbmcsCi5tanItd29ya2Zsb3ctcGlja2VyLWNhcmQtaW5mbyBzcGFuLAoubWpyLXdvcmtmbG93LXBpY2tlci1jYXJkLWluZm8gc21hbGwgewogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLm1qci13b3JrZmxvdy1waWNrZXItY2FyZC1pbmZvIHN0cm9uZyB7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCi5tanItd29ya2Zsb3ctcGlja2VyLWNhcmQtaW5mbyBzcGFuLAoubWpyLXdvcmtmbG93LXBpY2tlci1jYXJkLWluZm8gc21hbGwgewogICAgY29sb3I6IHZhcigtLW1qci1tdXRlZCwgI2FlYjNiZCk7CiAgICBmb250LXNpemU6IDExcHg7Cn0KCi5tanItd29ya2Zsb3ctcGlja2VyLWVtcHR5IHsKICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7CiAgICBwYWRkaW5nOiAzMnB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgY29sb3I6IHZhcigtLW1qci1tdXRlZCwgI2FlYjNiZCk7Cn0KCi5tanItd29ya2Zsb3ctcGlja2VyLWVtcHR5LmlzLWVycm9yIHsKICAgIGNvbG9yOiAjZmZiNGI0Owp9CgpAbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHsKICAgIC5tanItd29ya2Zsb3ctcGlja2VyLWJhY2tkcm9wIHsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgfQoKICAgIC5tanItd29ya2Zsb3ctcGlja2VyLXRvb2xiYXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgIH0KCiAgICAubWpyLXdvcmtmbG93LXBpY2tlci1zZWFyY2ggewogICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7CiAgICB9Cn0KCi8qIEtlZXAgZ2VuZXJhdGlvbi10aW1lIGJhZGdlIHBpbm5lZCB0byB0aGUgdGh1bWJuYWlsIGNvcm5lciBhY3Jvc3MgZ3JpZC9mZWVkIHZhcmlhbnRzLiAqLwoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItdGh1bWIgPiAubWpyLWdlbnRpbWUtYmFkZ2UsCi5tanItYm90dG9tLWZlZWQgLm1qci10aHVtYiA+IC5tanItZ2VudGltZS1iYWRnZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsKICAgIHJpZ2h0OiA2cHggIWltcG9ydGFudDsKICAgIGJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7CiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICB0b3A6IGF1dG8gIWltcG9ydGFudDsKICAgIHotaW5kZXg6IDEwICFpbXBvcnRhbnQ7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBwYWRkaW5nOiAycHggNnB4ICFpbXBvcnRhbnQ7CiAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41NSkgIWltcG9ydGFudDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikgIWltcG9ydGFudDsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGZvbnQtd2VpZ2h0OiA4MDAgIWltcG9ydGFudDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjAxNWVtOwogICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICAgIHRleHQtc2hhZG93OgogICAgICAgIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuOSksCiAgICAgICAgMCAwIDEwcHggY29sb3ItbWl4KGluIHNyZ2IsIGN1cnJlbnRDb2xvciAzNSUsIHRyYW5zcGFyZW50KTsKICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpOwogICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KTsKfQoKLyogS2VlcCByYXRpbmcvdGFncyBiYWRnZXMgYW5jaG9yZWQuIERvIG5vdCBmb3JjZSBkaXNwbGF5IGhlcmUgc28gZ3JpZCB2aXNpYmlsaXR5IHRvZ2dsZXMgc3RpbGwgY29udHJvbCBzaG93L2hpZGUuICovCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci10aHVtYiA+IC5tanItcmF0aW5nLWJhZGdlLAoubWpyLWJvdHRvbS1mZWVkIC5tanItdGh1bWIgPiAubWpyLXJhdGluZy1iYWRnZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsKICAgIHRvcDogNnB4ICFpbXBvcnRhbnQ7CiAgICByaWdodDogNnB4ICFpbXBvcnRhbnQ7CiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICBib3R0b206IGF1dG8gIWltcG9ydGFudDsKICAgIHotaW5kZXg6IDEwICFpbXBvcnRhbnQ7CiAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNTUpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTsKICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGJveC1zaGFkb3c6IDAgNnB4IDE4cHggcmdiYSgwLCAwLCAwLCAwLjI1KTsKICAgIHRleHQtc2hhZG93OiAwIDJweCA2cHggcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgYW5pbWF0aW9uOiBtanItZmFkZS1pbiAwLjJzIGVhc2Utb3V0Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItdGh1bWIgPiAubWpyLXRhZ3MtYmFkZ2UsCi5tanItYm90dG9tLWZlZWQgLm1qci10aHVtYiA+IC5tanItdGFncy1iYWRnZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsKICAgIGxlZnQ6IDZweCAhaW1wb3J0YW50OwogICAgYm90dG9tOiA2cHggIWltcG9ydGFudDsKICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICB0b3A6IGF1dG8gIWltcG9ydGFudDsKICAgIHotaW5kZXg6IDEwICFpbXBvcnRhbnQ7CiAgICBwYWRkaW5nOiAzcHggNnB4OwogICAgZm9udC1zaXplOiA5cHg7CiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDU2cHgpOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpOwogICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICAgIGFuaW1hdGlvbjogbWpyLWZhZGUtaW4gMC4ycyBlYXNlLW91dDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLXRodW1iLXBsYXkgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgaW5zZXQ6IDA7CiAgICBkaXNwbGF5OiBncmlkOwogICAgcGxhY2UtaXRlbXM6IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogMjhweDsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7CiAgICB0ZXh0LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjcpOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEyMG1zIGVhc2U7Cn0KCi8qIC0tLSBIb3ZlciBpbmZvIG92ZXJsYXkgKHBvc2l0aXZlIHByb21wdCArIGdlbiB0aW1lKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTbGlkZXMgdXAgZnJvbSB0aGUgYm90dG9tIG9mIC5tanItdGh1bWIgb24gY2FyZCBob3Zlci4KICAgcG9pbnRlci1ldmVudHM6IG5vbmUgIC0+IG5ldmVyIGJsb2NrcyB2aWRlbyBtb3VzZWVudGVyIC8gcGxheS1vbi1ob3Zlci4KICAgei1pbmRleDogMiAgICAgICAgICAgLT4gc2l0cyBhYm92ZSB0aGUgdGh1bWJuYWlsIGltYWdlLCBiZWxvdyB0aGUgcGxheSBpY29uLgogICBDb250cm9sbGVkIGJ5IHRoZSAubWpyLXNob3ctaG92ZXItaW5mbyBjbGFzcyBvbiB0aGUgZ3JpZCBjb250YWluZXIsIHdoaWNoCiAgIGlzIHRvZ2dsZWQgdmlhIHRoZSAiU2hvdyBwcm9tcHQgb24gaG92ZXIiIHNldHRpbmcuCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItY2FyZC1ob3Zlci1pbmZvIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJvdHRvbTogMDsKICAgIGxlZnQ6IDA7CiAgICByaWdodDogMDsKICAgIHBhZGRpbmc6IDIycHggOHB4IDdweDsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50IDAlLCByZ2JhKDAsIDAsIDAsIDAuNzgpIDEwMCUpOwogICAgY29sb3I6ICNmZmY7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBsaW5lLWhlaWdodDogMS40OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDVweCk7CiAgICB0cmFuc2l0aW9uOgogICAgICAgIG9wYWNpdHkgMTUwbXMgZWFzZSwKICAgICAgICB0cmFuc2Zvcm0gMTUwbXMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiAzcHg7CiAgICB6LWluZGV4OiAyOwp9Ci8qIE9ubHkgcmV2ZWFsIG9uIGhvdmVyIHdoZW4gdGhlIHNldHRpbmcgaXMgZW5hYmxlZCAoY2xhc3Mgb24gZ3JpZCBjb250YWluZXIpICovCi5tanItZ3JpZC5tanItc2hvdy1ob3Zlci1pbmZvIC5tanItY2FyZDpob3ZlciAubWpyLWNhcmQtaG92ZXItaW5mbyB7CiAgICBvcGFjaXR5OiAxOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwp9Ci5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1jYXJkLWhvdmVyLWluZm8gLm1qci1ob3Zlci1wcm9tcHQgewogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyOwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICBvcGFjaXR5OiAwLjk7CiAgICBmb250LXNpemU6IDkuNXB4Owp9Ci5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1jYXJkLWhvdmVyLWluZm8gLm1qci1ob3Zlci1nZW50aW1lIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjEwLCAxMjAsIDAuOTUpOwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTsKfQpAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgewogICAgLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWNhcmQtaG92ZXItaW5mbyB7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwbXM7CiAgICAgICAgdHJhbnNmb3JtOiBub25lOwogICAgfQp9CgovKiAtLS0gQ2FyZCBkZXRhaWxzIHBhbmVsIHNob3cvaGlkZSB2aWEgZ3JpZCBjb250YWluZXIgY2xhc3MgLS0tLS0tLS0tLS0tLS0tLQogICAubWpyLXNob3ctZGV0YWlscyBpcyB0b2dnbGVkIGJ5IGFwcGx5R3JpZFNldHRpbmdzQ2xhc3NlcygpIHdoZW4gdGhlCiAgICJTaG93IG1ldGFkYXRhIHBhbmVsIiBzZXR0aW5nIGNoYW5nZXMuICBEZWZhdWx0ID0gT0ZGIOKGkiBwYW5lbCBoaWRkZW4uCiAgIEhpZGluZyBoZXJlIGtlZXBzIGFjdHVhbCByb3cgaGVpZ2h0ID0gZXN0aW1hdGVSb3dIZWlnaHQobWV0YUhlaWdodD0wKSwKICAgcHJldmVudGluZyB0aGUgdmlydHVhbGl6ZXIgZnJvbSByZXBvc2l0aW9uaW5nIGFsbCByb3dzIG9uIG1lYXN1cmUKICAgKHdoaWNoIHdhcyB0aGUgcm9vdCBjYXVzZSBvZiB0aGUgInJlbG9hZCBpbXByZXNzaW9uIiBibGluaykuCiAgIE1hdGNoIHRoZSBib3R0b20tZmVlZCBwYXR0ZXJuIGF0IC5tanItYm90dG9tLWZlZWQgLm1qci1jYXJkLWluZm8uCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItZ3JpZCAubWpyLWNhcmQtaW5mbyB7CiAgICBkaXNwbGF5OiBub25lOwp9Ci5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1ncmlkLm1qci1zaG93LWRldGFpbHMgLm1qci1jYXJkLWluZm8gewogICAgZGlzcGxheTogYmxvY2s7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1jYXJkLW1ldGEgewogICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICBmb250LXNpemU6IDExcHg7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1jYXJkLWZpbGVuYW1lIHsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDhweDsKICAgIG1pbi13aWR0aDogMDsKICAgIG1hcmdpbi1ib3R0b206IDJweDsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWNhcmQtZGV0YWlscyB7CiAgICBjb2xvcjogdmFyKC0tbWpyLW11dGVkKTsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICBvcGFjaXR5OiAwLjg7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1jYXJkLWZpbGVuYW1lLXRleHQgewogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIG1pbi13aWR0aDogMDsKfQoKLyogUmF0aW5nICYgVGFncyBFZGl0b3JzICovCkBrZXlmcmFtZXMgZmFkZUluIHsKICAgIGZyb20gewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpOwogICAgfQogICAgdG8gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgfQp9Ci8qKgogKiBBcmNoaXZlZCBDU1MgU3R5bGVzIC0gUmF0aW5nIGFuZCBUYWdzCiAqIFRoZXNlIHN0eWxlcyB3ZXJlIHJlbW92ZWQgZnJvbSB0aGVtZS1jb21meS5jc3MKICovCgovKiBBbmltYXRpb25zICovCkBrZXlmcmFtZXMgc2xpZGVJblJpZ2h0IHsKICAgIGZyb20gewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgfQogICAgdG8gewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgfQp9CgovKiBQb3BvdmVycyAqLwoubWpyLXJhdGluZy1wb3BvdmVyLAoubWpyLXRhZ3MtcG9wb3ZlciB7CiAgICBhbmltYXRpb246IGZhZGVJbiAwLjJzIGVhc2U7Cn0KCi5tanItcmF0aW5nLXBvcG92ZXIsCi5tanItdGFncy1wb3BvdmVyIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbWZ5LW1lbnUtYmcsICMyYTJhMmEpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpKTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZywgMC41cmVtKTsKICAgIGJveC1zaGFkb3c6IDAgMTJweCAyOHB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7CiAgICBwYWRkaW5nOiA4cHg7Cn0KCi8qIFJhdGluZyBFZGl0b3IgKi8KLm1qci1yYXRpbmctZWRpdG9yIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogNHB4OwogICAgcGFkZGluZzogMnB4Owp9CgoubWpyLXJhdGluZy1zdGFyIHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBwYWRkaW5nOiA0cHggNnB4OwogICAgbGluZS1oZWlnaHQ6IDE7CiAgICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dCwgI2RkZCk7CiAgICB0cmFuc2l0aW9uOgogICAgICAgIHRyYW5zZm9ybSAxMjBtcyBlYXNlLAogICAgICAgIGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZSwKICAgICAgICBib3JkZXItY29sb3IgMTIwbXMgZWFzZSwKICAgICAgICBjb2xvciAxMjBtcyBlYXNlOwogICAgb3V0bGluZTogbm9uZTsKfQoKLm1qci1yYXRpbmctc3Rhcjpob3ZlciB7CiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb21meS1hY2NlbnQsICM1ZmIzZmYpIDM1JSwgdHJhbnNwYXJlbnQpOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbWZ5LW1lbnUtc2Vjb25kYXJ5LWJnLCAjMzMzKSA2NSUsIHRyYW5zcGFyZW50KTsKfQoKLm1qci1yYXRpbmctZWRpdG9yIC5tanItcmF0aW5nLXN0YXI6aG92ZXIgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpICFpbXBvcnRhbnQ7Cn0KCi5tanItcmF0aW5nLWVkaXRvciAubWpyLXJhdGluZy1zdGFyOmZvY3VzLXZpc2libGUgewogICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzLW91dGxpbmUtY29sb3IsICM0ZGFiZjcpOwogICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKfQoKLm1qci1yYXRpbmctZWRpdG9yIC5tanItcmF0aW5nLXN0YXI6YWN0aXZlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSkgIWltcG9ydGFudDsKfQoKLyogVGFncyBFZGl0b3IgKi8KLm1qci10YWdzLWVkaXRvciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogOHB4OwogICAgcGFkZGluZzogMTJweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLW1qci1zdXJmYWNlLTEsIHZhcigtLWNvbWZ5LW1lbnUtYmcsICMyYTJhMmEpKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbWpyLXItc20pOwogICAgYm94LXNoYWRvdzogMCAxMnB4IDI4cHggcmdiYSgwLCAwLCAwLCAwLjQ1KTsKICAgIG1pbi13aWR0aDogMjUwcHg7CiAgICBtYXgtd2lkdGg6IG1pbigzNTBweCwgY2FsYygxMDB2dyAtIDIwcHgpKTsKICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0Owp9CgoubWpyLXRhZ3MtZWRpdG9yLmlzLWRpc2FibGVkIHsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgb3BhY2l0eTogMC43Owp9CgoubWpyLXRhZ3MtZGlzcGxheSB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC13cmFwOiB3cmFwOwogICAgZ2FwOiA2cHg7CiAgICBtaW4taGVpZ2h0OiAzMnB4Owp9CgoubWpyLXRhZ3MtZW1wdHkgewogICAgY29sb3I6IHZhcigtLW1qci1tdXRlZCk7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7Cn0KCi5tanItdGFnLWNoaXAgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA0cHg7CiAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci10YWctY29sb3IpIDI0JSwgdHJhbnNwYXJlbnQpOwogICAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci10YWctY29sb3IpIDQwJSwgdmFyKC0tbWpyLWJvcmRlcikpOwogICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGNvbG9yOiB2YXIoLS1tanItdGFnLWNvbG9yKTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7Cn0KCi5tanItdGFnLWNoaXAtcmVtb3ZlIHsKICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgYm9yZGVyOiAwOwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICBjb2xvcjogaW5oZXJpdDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDA7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMTsKICAgIG9wYWNpdHk6IDAuNzsKfQoKLm1qci10YWctY2hpcC1yZW1vdmU6ZGlzYWJsZWQgewogICAgY3Vyc29yOiBkZWZhdWx0Owp9CgoubWpyLXRhZ3MtaW5wdXQtd3JhcCB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi5tanItdGFnLWlucHV0IHsKICAgIHdpZHRoOiAxMDAlOwogICAgcGFkZGluZzogNnB4IDhweDsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA3NSUsIHRyYW5zcGFyZW50KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIpOwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgY29sb3I6IHZhcigtLWNvbnRlbnQtZmcpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgb3V0bGluZTogbm9uZTsKfQoKLm1qci10YWctaW5wdXQ6Zm9jdXMgewogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTIpIDg4JSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7CiAgICBib3JkZXItY29sb3I6IHZhcigtLW1qci1hY2NlbnQpICFpbXBvcnRhbnQ7Cn0KCi5tanItdGFnLWNoaXA6aG92ZXIgewogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci10YWctY29sb3IpIDM0JSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7CiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItdGFnLWNvbG9yKSA2MCUsIHZhcigtLW1qci1ib3JkZXIpKSAhaW1wb3J0YW50Owp9CgoubWpyLXRhZ3MtZHJvcGRvd24gewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAxMDAlOwogICAgbGVmdDogMDsKICAgIHJpZ2h0OiAwOwogICAgbWFyZ2luLXRvcDogNHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tbWpyLXN1cmZhY2UtMSwgdmFyKC0tY29tZnktbWVudS1iZywgIzJhMmEyYSkpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlcik7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBtYXgtaGVpZ2h0OiAxNTBweDsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICB6LWluZGV4OiAxMDAwOwp9CgoubWpyLXRhZ3MtZHJvcGRvd24gW2RhdGEtcGMtc2VjdGlvbj0ibGlzdCJdIHsKICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiAwOwp9CgoubWpyLXRhZ3MtZHJvcGRvd24gW2RhdGEtcGMtc2VjdGlvbj0ib3B0aW9uIl0gewogICAgbGlzdC1zdHlsZTogbm9uZTsKfQoKLm1qci10YWctc3VnZ2VzdGlvbiB7CiAgICBwYWRkaW5nOiA2cHggOHB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogdmFyKC0tbWpyLXRhZy1jb2xvcik7CiAgICBmb250LXNpemU6IDEycHg7Cn0KCi5tanItdGFnLXN1Z2dlc3Rpb24uaXMtYWN0aXZlLAoubWpyLXRhZy1zdWdnZXN0aW9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItdGFnLWNvbG9yKSAyOCUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50Owp9CgovKiBCYWRnZXMgSW50ZXJhY3RpdmUgKi8KLm1qci1yYXRpbmctYmFkZ2UsCi5tanItdGFncy1iYWRnZSB7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwp9CgoubWpyLXJhdGluZy1iYWRnZSB7CiAgICBjb2xvcjogdmFyKC0tbWpyLXJhdGluZy1jb2xvcikgIWltcG9ydGFudDsKfQoKLm1qci10YWdzLWJhZGdlIHsKICAgIGNvbG9yOiB2YXIoLS1tanItdGFnLWNvbG9yKSAhaW1wb3J0YW50Owp9CgoubWpyLXJhdGluZy1iYWRnZTpob3ZlciwKLm1qci10YWdzLWJhZGdlOmhvdmVyIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjUpOwp9CgovKiBTY3JvbGxiYXIgZm9yIHRhZ3MgZHJvcGRvd24gKi8KLm1qci10YWdzLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICB3aWR0aDogNnB4Owp9CgoubWpyLXRhZ3MtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA2NSUsIHRyYW5zcGFyZW50KTsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKfQoKLm1qci10YWdzLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXRhZy1jb2xvcikgNDglLCB2YXIoLS1tanItYm9yZGVyKSk7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7Cn0KCi5tanItdGFncy1kcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci10YWctY29sb3IpIDY1JSwgdmFyKC0tbWpyLWJvcmRlcikpOwp9CgovKiBTaWRlYmFyIChjYW4gYmUgbGVmdCBvciByaWdodCkgKi8KLm1qci1zaWRlYmFyIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHotaW5kZXg6IDM7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7Cn0KCi5tanItd29ya2Zsb3ctdHJlZS13cmFwIHsKICAgIG1hcmdpbjogMCAwIDEycHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJvcmRlcikgODIlLCB0cmFuc3BhcmVudCk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1tanItci1tZCwgOHB4KTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0xKSA3MiUsIHRyYW5zcGFyZW50KTsKfQoKLm1qci13b3JrZmxvdy10cmVlIHsKICAgIGNvbG9yOiB2YXIoLS1jb250ZW50LWZnLCAjZWFlYWVhKTsKICAgIGZvbnQtc2l6ZTogMTJweDsKfQoKLm1qci13b3JrZmxvdy10cmVlLXNjcm9sbCB7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIHBhZGRpbmc6IDJweCA0cHggNnB4Owp9CgoubWpyLXdvcmtmbG93LXRyZWUtbGlzdCB7CiAgICBsaXN0LXN0eWxlOiBub25lOwogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogMDsKfQoKLm1qci13b3JrZmxvdy10cmVlLW5vZGUtY29udGVudCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogNnB4OwogICAgbWluLWhlaWdodDogMjhweDsKICAgIHBhZGRpbmc6IDRweCA2cHg7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1tanItci1zbSwgNnB4KTsKfQoKLm1qci13b3JrZmxvdy10cmVlLW5vZGUtY29udGVudDpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMikgNTglLCB0cmFuc3BhcmVudCk7Cn0KCi5tanItd29ya2Zsb3ctdHJlZS10b2dnbGUgewogICAgd2lkdGg6IDE0cHg7CiAgICBoZWlnaHQ6IDIwcHg7CiAgICBwYWRkaW5nOiAwOwogICAgYm9yZGVyOiAwOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogdmFyKC0tbWpyLW11dGVkLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjQpKTsKfQoKLm1qci13b3JrZmxvdy10cmVlLXRvZ2dsZVtkYXRhLXAtbGVhZj0idHJ1ZSJdIHsKICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKfQoKLm1qci13b3JrZmxvdy10cmVlLWljb24gewogICAgd2lkdGg6IDhweDsKICAgIGZsZXg6IDAgMCA4cHg7CiAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDcwJSwgdmFyKC0tY29udGVudC1mZykpOwogICAgZm9udC1zaXplOiA3cHg7Cn0KCi5tanItd29ya2Zsb3ctdHJlZS1sYWJlbCB7CiAgICBtaW4td2lkdGg6IDA7CiAgICBmbGV4OiAxIDEgYXV0bzsKfQoKLm1qci13b3JrZmxvdy10cmVlLW5vZGUgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDhweDsKICAgIG1pbi13aWR0aDogMDsKfQoKLm1qci13b3JrZmxvdy10cmVlLW5vZGUtbmFtZSB7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9CgoubWpyLXdvcmtmbG93LXRyZWUtbm9kZS10eXBlIHsKICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLW11dGVkKSA3NSUsIHZhcigtLWNvbnRlbnQtZmcpKTsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCi5tanItc2lkZWJhci5pcy1vcGVuIHsKICAgIC8qIEJvcmRlciBpcyBzZXQgZHluYW1pY2FsbHkgYmFzZWQgb24gcG9zaXRpb24gKi8KfQoKLm1qci1zaWRlYmFyIC5tanItc2lkZWJhci1oZWFkZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tbWpyLXN1cmZhY2UtMiwgIzMzMyk7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSk7Cn0KCi5tanItc2lkZWJhciAubWpyLXNpZGViYXItY29udGVudCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tanItc3VyZmFjZS0xLCAjMmEyYTJhKTsKfQoKLm1qci1zaWRlYmFyIC5tanItc2lkZWJhci1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhciB7CiAgICB3aWR0aDogOHB4Owp9CgoubWpyLXNpZGViYXIgLm1qci1zaWRlYmFyLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zKTsKfQoKLm1qci1zaWRlYmFyIC5tanItc2lkZWJhci1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7Cn0KCi5tanItc2lkZWJhciAubWpyLXNpZGViYXItY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwp9CgovKiBDdXN0b20gUm9vdHMgUG9wb3ZlciBTdHlsaW5nICovCi5tanItY3VzdG9tLXBvcG92ZXIgewogICAgbWluLXdpZHRoOiAzMDBweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLW1qci1zdXJmYWNlLTEsIHZhcigtLWNvbWZ5LW1lbnUtYmcsICMyYTJhMmEpKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIsIHZhcigtLWJvcmRlci1jb2xvciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSkpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnLCAwLjVyZW0pOwogICAgYm94LXNoYWRvdzogMCAxMnB4IDI4cHggcmdiYSgwLCAwLCAwLCAwLjM1KTsKICAgIHotaW5kZXg6IHZhcigtLW1qci1wb3BvdmVyLXotaW5kZXgpOwogICAgcGFkZGluZzogMTJweDsKfQoKLm1qci1jdXN0b20tcG9wb3ZlciAubWpyLXBvcG92ZXItcm93IHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMHB4OwogICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgIGZsZXgtd3JhcDogd3JhcDsKfQoKLm1qci1jdXN0b20tcG9wb3ZlciAubWpyLXBvcG92ZXItcm93Omxhc3QtY2hpbGQgewogICAgbWFyZ2luLWJvdHRvbTogMDsKfQoKLm1qci1jdXN0b20tcG9wb3ZlciAubWpyLXBvcG92ZXItbGFiZWwgewogICAgd2lkdGg6IDYwcHg7CiAgICBjb2xvcjogdmFyKC0tbWpyLW11dGVkLCB2YXIoLS1kZXNjcmlwLXRleHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NSkpKTsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7Cn0KCi5tanItY3VzdG9tLXBvcG92ZXIgLm1qci1zZWxlY3QgewogICAgZmxleDogMTsKICAgIG1pbi13aWR0aDogMDsKfQoKLm1qci1jdXN0b20tcG9wb3ZlciAubWpyLWJ0biB7CiAgICBmbGV4OiAxOwogICAgbWluLXdpZHRoOiAwOwogICAgbWFyZ2luLXJpZ2h0OiA1cHg7Cn0KCi5tanItY3VzdG9tLXBvcG92ZXIgLm1qci1idG46bGFzdC1jaGlsZCB7CiAgICBtYXJnaW4tcmlnaHQ6IDA7Cn0KCi5tanItY3VzdG9tLXBvcG92ZXIgLm1qci1idG4ubWpyLXByaW1hcnkgewogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDE4JSwgdmFyKC0tbWpyLXN1cmZhY2UtMikpOwogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgNjAlLCB2YXIoLS1tanItYm9yZGVyKSk7Cn0KCi5tanItY3VzdG9tLXBvcG92ZXIgLm1qci1idG4ubWpyLXByaW1hcnk6aG92ZXIgewogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDI1JSwgdmFyKC0tbWpyLXN1cmZhY2UtMikpOwogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgODAlLCB2YXIoLS1tanItYm9yZGVyKSk7Cn0KCi5tanItc2lkZWJhciAubWpyLXNpZGViYXItc2VjdGlvbiB7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwp9CgoubWpyLXNpZGViYXIgLm1qci1zaWRlYmFyLXNlY3Rpb246aG92ZXIgewogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpICFpbXBvcnRhbnQ7Cn0KCi8qIElubGluZSBTaWRlYmFyICh3aWR0aC1iYXNlZCB0cmFuc2l0aW9ucyBsaWtlIGFyY2hpdmVkIHZlcnNpb24pICovCi5tanItaW5saW5lLXNpZGViYXIgewogICAgd2lkdGg6IDA7CiAgICBtaW4td2lkdGg6IDA7CiAgICBtYXgtd2lkdGg6IDQ4MHB4OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGJhY2tncm91bmQ6IHZhcigtLW1qci1zdXJmYWNlLTEsICMyYTJhMmEpOwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICB0cmFuc2l0aW9uOgogICAgICAgIHdpZHRoIDAuM3MgZWFzZSwKICAgICAgICBtaW4td2lkdGggMC4zcyBlYXNlOwp9CgoubWpyLWlubGluZS1zaWRlYmFyLmlzLW9wZW4gewogICAgd2lkdGg6IDQwMHB4OwogICAgbWluLXdpZHRoOiAyNjBweDsKfQoKLyogU3BhY2UgYmV0d2VlbiBzaWRlYmFyIGFuZCBncmlkICovCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hbS1icm93c2UgewogICAgZ2FwOiAwOwp9CgovKiBCb3JkZXIgYmFzZWQgb24gcG9zaXRpb24gKi8KLm1qci1pbmxpbmUtc2lkZWJhcltkYXRhLXBvc2l0aW9uPSJsZWZ0Il0gewogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSk7Cn0KCi5tanItaW5saW5lLXNpZGViYXJbZGF0YS1wb3NpdGlvbj0icmlnaHQiXSB7CiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikpOwp9CgovKiBTaWRlYmFyIHBsYWNlaG9sZGVyICovCi5tanItc2lkZWJhci1wbGFjZWhvbGRlciB7CiAgICBwYWRkaW5nOiAyMHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgY29sb3I6IHZhcigtLW1qci1tdXRlZCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KSk7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9CgpAa2V5ZnJhbWVzIG1qci1mYWRlLWluIHsKICAgIGZyb20gewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk5NSk7CiAgICB9CiAgICB0byB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgfQp9CgoKLyogTmF0aXZlIGRyb3Bkb3duczogaGludCBkYXJrIFVJIGFuZCBzdHlsZSBvcHRpb25zIHdoZW4gdGhlIGJyb3dzZXIgYWxsb3dzIGl0LiAqLwoKLyogPT09PT09PT09PSBDdXN0b20gVmlkZW8gQ29udHJvbHMgKG5vIG5hdGl2ZSBiYXIpID09PT09PT09PT0gKi8KCi5tanItdmlkZW8tY29udHJvbHMgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogMTJweDsKICAgIHJpZ2h0OiAxMnB4OwogICAgYm90dG9tOiAxMnB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBnYXA6IDhweDsKICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTsKICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7CiAgICBvcGFjaXR5OiAwOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICB6LWluZGV4OiA1Owp9CgovKiBTaG93IGNvbnRyb2xzIG9uIGhvdmVyL2ZvY3VzICh2aWV3ZXIpLiAqLwoubWpyLXZpZGVvLWNvbnRyb2xzOmZvY3VzLXdpdGhpbiB7CiAgICBvcGFjaXR5OiAxOwogICAgcG9pbnRlci1ldmVudHM6IGF1dG87Cn0KCi8qIFByZXZpZXc6IGtlZXAgY29udHJvbHMgdmlzaWJsZSBiZWNhdXNlIHRoZSBhcmVhIGlzIHNtYWxsLiAqLwoubWpyLXZpZGVvLWNvbnRyb2xzLS1wcmV2aWV3IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IGF1dG87CiAgICByaWdodDogMTBweDsKICAgIHRvcDogYXV0bzsKICAgIGJvdHRvbTogMTBweDsKICAgIG9wYWNpdHk6IDE7CiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgYm9yZGVyOiBub25lOwogICAgcGFkZGluZzogMDsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgd2lkdGg6IGF1dG87CiAgICBoZWlnaHQ6IGF1dG87CiAgICBiYWNrZHJvcC1maWx0ZXI6IG5vbmU7CiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogbm9uZTsKfQoKLm1qci12aWRlby1wcmV2aWV3LWJ0biB7CiAgICB3aWR0aDogMzhweDsKICAgIGhlaWdodDogMzhweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKTsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40Mik7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyKTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwp9CgoubWpyLXZpZGVvLXByZXZpZXctYnRuOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTsKICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI4KTsKfQoKLm1qci12aWRlby1wcmV2aWV3LWJ0biAucGkgewogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDE7Cn0KCi8qIDAuLkluOiB0cmltbWVkLW91dCByYW5nZS4gKi8KCi8qIEluLi5PdXQ6IHNlbGVjdGVkIHBsYXliYWNrIHJhbmdlIGhpZ2hsaWdodC4gKi8KCi8qIE91dC4uRW5kOiBzaG93IG91dC1vZi1yYW5nZSBmcmFtZXMgYXMgYSBkaWZmZXJlbnQgY29sb3IuICovCgovKiA9PT09PT09PT09IENvbnRleHQgTWVudSBDb21wb25lbnQgPT09PT09PT09PSAqLwoubWpyLWNvbnRleHQtbWVudSB7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb21meS1tZW51LWJnKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAvKiBBYm92ZSB2aWV3ZXIgb3ZlcmxheSAoMTAwMDEpIGFuZCBNRlYgZGlhbG9nICgxMDAwMCkgKi8KICAgIHotaW5kZXg6IDEwMDAyOwogICAgZGlzcGxheTogbm9uZTsKICAgIHBhZGRpbmc6IDRweCAwOwogICAgYW5pbWF0aW9uOiBtanItY29udGV4dC1tZW51LWluIDAuMTVzIGVhc2Utb3V0Owp9CgoubWpyLWNvbnRleHQtbWVudSwKLm1qci1jb250ZXh0LW1lbnUgKiB7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Owp9CgpAa2V5ZnJhbWVzIG1qci1jb250ZXh0LW1lbnUtaW4gewogICAgZnJvbSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7CiAgICB9CiAgICB0byB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICB9Cn0KCi5tanItY29udGV4dC1tZW51LWl0ZW0gewogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgIHBhZGRpbmc6IDhweCAxNHB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICB3aWR0aDogMTAwJTsKICAgIGJvcmRlcjogMDsKICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICBtYXJnaW46IDA7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBjb2xvcjogdmFyKC0tZmctY29sb3IpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsKICAgIGxpbmUtaGVpZ2h0OiAxLjM1OwogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIHRleHQtdHJhbnNmb3JtOiBub25lOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1czsKICAgIHVzZXItc2VsZWN0OiBub25lOwp9CgoubWpyLWNvbnRleHQtbWVudS1pdGVtOjotbW96LWZvY3VzLWlubmVyIHsKICAgIGJvcmRlcjogMDsKICAgIHBhZGRpbmc6IDA7Cn0KCi5tanItY29udGV4dC1tZW51LWl0ZW06aG92ZXIsCi5tanItY29udGV4dC1tZW51LWl0ZW06Zm9jdXMtdmlzaWJsZSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb21meS1pbnB1dC1iZyk7CiAgICBvdXRsaW5lOiBub25lOwp9CgoubWpyLWNvbnRleHQtbWVudS1pdGVtLmlzLXRvbmUtZ3JhcGgtbWFwIHsKICAgIGNvbG9yOiAjZjVjNTQyOwp9CgoubWpyLWNvbnRleHQtbWVudS1pdGVtLmlzLXRvbmUtcmVuYW1lIHsKICAgIGNvbG9yOiAjNWRhOWZmOwp9CgoubWpyLWNvbnRleHQtbWVudS1pdGVtLmlzLXRvbmUtZGVsZXRlIHsKICAgIGNvbG9yOiAjZmY1ZjVmOwp9CgoubWpyLWNvbnRleHQtbWVudS1pdGVtLmlzLXRvbmUtZmxvYXRpbmctdmlld2VyIHsKICAgIGNvbG9yOiAjNWZkMzhkOwp9CgoubWpyLWNvbnRleHQtbWVudS1pdGVtLmlzLXRvbmUtZ3JhcGgtbWFwOmhvdmVyLAoubWpyLWNvbnRleHQtbWVudS1pdGVtLmlzLXRvbmUtZ3JhcGgtbWFwOmZvY3VzLXZpc2libGUgewogICAgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE5NywgNjYsIDAuMTQpOwp9CgoubWpyLWNvbnRleHQtbWVudS1pdGVtLmlzLXRvbmUtcmVuYW1lOmhvdmVyLAoubWpyLWNvbnRleHQtbWVudS1pdGVtLmlzLXRvbmUtcmVuYW1lOmZvY3VzLXZpc2libGUgewogICAgYmFja2dyb3VuZDogcmdiYSg5MywgMTY5LCAyNTUsIDAuMTQpOwp9CgoubWpyLWNvbnRleHQtbWVudS1pdGVtLmlzLXRvbmUtZGVsZXRlOmhvdmVyLAoubWpyLWNvbnRleHQtbWVudS1pdGVtLmlzLXRvbmUtZGVsZXRlOmZvY3VzLXZpc2libGUgewogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDk1LCA5NSwgMC4xNCk7Cn0KCi5tanItY29udGV4dC1tZW51LWl0ZW0uaXMtdG9uZS1mbG9hdGluZy12aWV3ZXI6aG92ZXIsCi5tanItY29udGV4dC1tZW51LWl0ZW0uaXMtdG9uZS1mbG9hdGluZy12aWV3ZXI6Zm9jdXMtdmlzaWJsZSB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDk1LCAyMTEsIDE0MSwgMC4xNCk7Cn0KCi5tanItY29udGV4dC1tZW51LWl0ZW0uaXMtZGlzYWJsZWQgewogICAgY3Vyc29yOiBkZWZhdWx0OwogICAgb3BhY2l0eTogMC40NTsKfQoKLm1qci1jb250ZXh0LW1lbnUtaXRlbS5pcy1kaXNhYmxlZDpob3ZlciwKLm1qci1jb250ZXh0LW1lbnUtaXRlbS5pcy1kaXNhYmxlZDpmb2N1cy12aXNpYmxlIHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Owp9CgoubWpyLWNvbnRleHQtbWVudS1zZXBhcmF0b3IgewogICAgaGVpZ2h0OiAxcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgbWFyZ2luOiA0cHggMDsKfQoKLm1qci1jb250ZXh0LW1lbnUtaXRlbS1sZWZ0LAoubWpyLWNvbnRleHQtbWVudS1pdGVtLXJpZ2h0IHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTBweDsKfQoKLm1qci1jb250ZXh0LW1lbnUtaXRlbS1sZWZ0IHsKICAgIGZsZXg6IDEgMSBhdXRvOwogICAgbWluLXdpZHRoOiAwOwp9CgoubWpyLWNvbnRleHQtbWVudS1pdGVtLXJpZ2h0IHsKICAgIGZsZXg6IDAgMCBhdXRvOwogICAgbWFyZ2luLWxlZnQ6IDE2cHg7Cn0KCi5tanItY29udGV4dC1tZW51LWl0ZW0tbGVmdCBpIHsKICAgIHdpZHRoOiAxNnB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgb3BhY2l0eTogMC44MjsKfQoKLm1qci1jb250ZXh0LW1lbnUtaGludCB7CiAgICBvcGFjaXR5OiAwLjU4OwogICAgZm9udC1zaXplOiAxMXB4OwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLm1qci1jb250ZXh0LW1lbnUtc3VibWVudS1hcnJvdyB7CiAgICBvcGFjaXR5OiAwLjcyOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDE7Cn0KCi5tanItYWRkLXRvLWNvbGxlY3Rpb24tbWVudSB7CiAgICBtaW4td2lkdGg6IDI2MHB4OwogICAgbWF4LXdpZHRoOiBtaW4oMzYwcHgsIGNhbGMoMTAwdncgLSAxNnB4KSk7CiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7Cn0KCi5tanItY29udGV4dC1tZW51LXRpdGxlIHsKICAgIHBhZGRpbmc6IDhweCAxNHB4IDEwcHg7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6IHZhcigtLWZnLWNvbG9yKTsKICAgIG9wYWNpdHk6IDAuOTI7Cn0KCi5tanItY29udGV4dC1tZW51LW5vdGUgewogICAgcGFkZGluZzogMTBweCAxNHB4OwogICAgZm9udC1zaXplOiAxMnB4OwogICAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb250ZW50LWZnKSA3MiUsIHZhcigtLW1qci1tdXRlZCkpOwogICAgbGluZS1oZWlnaHQ6IDEuNDU7Cn0KCi5tanItZ3JpZC1wb3BvdmVyIHsKICAgIG1pbi13aWR0aDogMjUwcHg7CiAgICBtYXgtd2lkdGg6IG1pbigzNjBweCwgY2FsYygxMDB2dyAtIDE2cHgpKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLW1qci1zdXJmYWNlLTEpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlcik7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1tanItci1zbSk7CiAgICBib3gtc2hhZG93OiAwIDEycHggMjhweCByZ2JhKDAsIDAsIDAsIDAuMzUpOwp9CgpAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgewogICAgLm1qci12aWRlby1jb250cm9scywKICAgIC5tanItY29udGV4dC1tZW51IHsKICAgICAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvICFpbXBvcnRhbnQ7CiAgICB9Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIE1ham9vciBGbG9hdGluZyBWaWV3ZXIgKE1GVikgLSBwb3J0YWxlZCB0byBkb2N1bWVudC5ib2R5CiAgIFJlZGVjbGFyZXMgQ1NTIHZhcmlhYmxlcyBzbyB0aGUgcGFuZWwgd29ya3Mgb3V0c2lkZSAubWpyLWFzc2V0cy1tYW5hZ2VyCiAgIChzYW1lIHBhdHRlcm4gYXMgLm1qci1wb3BvdmVyKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKLm1qci1tZnYgewogICAgLS1tanItc3VyZmFjZS0wOiB2YXIoLS1jb250ZW50LWJnLCAjMWUxZTFlKTsKICAgIC0tbWpyLXN1cmZhY2UtMTogdmFyKC0tY29tZnktbWVudS1iZywgIzJhMmEyYSk7CiAgICAtLW1qci1zdXJmYWNlLTI6IHZhcigtLWNvbWZ5LW1lbnUtc2Vjb25kYXJ5LWJnLCAjMzMzKTsKICAgIC0tbWpyLWJvcmRlcjogdmFyKC0tYm9yZGVyLWNvbG9yLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpKTsKICAgIC0tbWpyLW11dGVkOiB2YXIoLS1kZXNjcmlwLXRleHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NSkpOwogICAgLS1tanItYWNjZW50OiB2YXIoLS1jb21meS1hY2NlbnQsICM1ZmIzZmYpOwogICAgLS1tanItc3RhdHVzLXN1Y2Nlc3M6IHZhcigtLWNvbWZ5LXN0YXR1cy1zdWNjZXNzLCAjNGNhZjUwKTsKCiAgICBmb250LWZhbWlseTogdmFyKAogICAgICAgIC0tY29tZnktZm9udCwKICAgICAgICB1aS1zYW5zLXNlcmlmLAogICAgICAgIHN5c3RlbS11aSwKICAgICAgICAtYXBwbGUtc3lzdGVtLAogICAgICAgICJTZWdvZSBVSSIsCiAgICAgICAgUm9ib3RvLAogICAgICAgIEFyaWFsLAogICAgICAgIHNhbnMtc2VyaWYKICAgICk7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBsaW5lLWhlaWdodDogMS4zNTsKICAgIGNvbG9yOiB2YXIoLS1jb250ZW50LWZnLCB2YXIoLS1pbnB1dC10ZXh0LCAjZGRkKSk7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwoKICAgIC8qIFZpc3VhbCBjaHJvbWUgKi8KICAgIGJhY2tncm91bmQ6IHZhcigtLW1qci1zdXJmYWNlLTEpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlcik7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICBib3gtc2hhZG93OgogICAgICAgIDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjU1KSwKICAgICAgICAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjMpOwp9CgoubWpyLW1mdiAqIHsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KCmh0bWwubWpyLW1mdi1wb3BvdXQtZG9jdW1lbnQgewogICAgYmFja2dyb3VuZDoKICAgICAgICByYWRpYWwtZ3JhZGllbnQoCiAgICAgICAgICAgIDEyMDBweCA0MjBweCBhdCA1MCUgMCUsCiAgICAgICAgICAgIGNvbG9yLW1peCgKICAgICAgICAgICAgICAgIGluIHNyZ2IsCiAgICAgICAgICAgICAgICB2YXIoLS1wcmltYXJ5LWJhY2tncm91bmQsIHZhcigtLWNvbWZ5LWFjY2VudCwgIzVmYjNmZikpIDEwJSwKICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50CiAgICAgICAgICAgICksCiAgICAgICAgICAgIHRyYW5zcGFyZW50IDYyJQogICAgICAgICksCiAgICAgICAgbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgICAxODBkZWcsCiAgICAgICAgICAgIGNvbG9yLW1peCgKICAgICAgICAgICAgICAgIGluIHNyZ2IsCiAgICAgICAgICAgICAgICB2YXIoLS1pbnRlcmZhY2UtcGFuZWwtc3VyZmFjZSwgdmFyKC0tY29udGVudC1iZywgIzE2MTkxZikpIDgyJSwKICAgICAgICAgICAgICAgICMwMDAgMTglCiAgICAgICAgICAgICksCiAgICAgICAgICAgIGNvbG9yLW1peCgKICAgICAgICAgICAgICAgIGluIHNyZ2IsCiAgICAgICAgICAgICAgICB2YXIoLS1pbnRlcmZhY2UtbWVudS1zdXJmYWNlLCB2YXIoLS1jb21meS1tZW51LWJnLCAjMWYyMjI3KSkgODQlLAogICAgICAgICAgICAgICAgIzAwMCAxNiUKICAgICAgICAgICAgKQogICAgICAgICk7Cn0KCmJvZHkubWpyLW1mdi1wb3BvdXQtYm9keSB7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKfQoKI21qci1tZnYtcG9wb3V0LXJvb3QsCi5tanItbWZ2LXBvcG91dC1yb290IHsKICAgIGlzb2xhdGlvbjogaXNvbGF0ZTsKfQoKLyogLS0gSGVhZGVyIChkcmFnIGhhbmRsZSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLm1qci1tZnYtaGVhZGVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tanItc3VyZmFjZS0xKTsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1tanItYm9yZGVyKTsKICAgIGN1cnNvcjogbW92ZTsKICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgZmxleC1zaHJpbms6IDA7CiAgICBnYXA6IDZweDsKICAgIG1pbi1oZWlnaHQ6IDM0cHg7Cn0KCi5tanItbWZ2LWhlYWRlci10aXRsZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEwcHg7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgb3BhY2l0eTogMC43ODsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIGZsZXg6IDE7CiAgICBsZXR0ZXItc3BhY2luZzogMC4yOHB4Owp9CgovKiAtLSBUb29sYmFyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi5tanItbWZ2LXRvb2xiYXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDRweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMCkgNTAlLCB2YXIoLS1tanItc3VyZmFjZS0xKSA1MCUpOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIpOwogICAgZmxleC1zaHJpbms6IDA7CiAgICBtaW4taGVpZ2h0OiAzNnB4OwogICAgZmxleC13cmFwOiBub3dyYXA7CiAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgb3ZlcmZsb3cteTogaGlkZGVuOwogICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOwp9Ci5tanItbWZ2LXRvb2xiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgIGRpc3BsYXk6IG5vbmU7Cn0KCi5tanItbWZ2LXRvb2xiYXItc2VwIHsKICAgIHdpZHRoOiAxcHg7CiAgICBoZWlnaHQ6IDE4cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tanItYm9yZGVyKTsKICAgIG1hcmdpbjogMCAzcHg7CiAgICBmbGV4LXNocmluazogMDsKfQoKLm1qci1tZnYtcHJvZ3Jlc3MgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGhlaWdodDogMjJweDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1tanItYm9yZGVyKTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0wKSA3MiUsICMwMDAgMjglKTsKICAgIGZsZXgtc2hyaW5rOiAwOwogICAgY3Vyc29yOiBkZWZhdWx0Owp9CgoubWpyLW1mdi1wcm9ncmVzcy5pcy1jbGlja2FibGUgewogICAgY3Vyc29yOiBwb2ludGVyOwp9CgoubWpyLW1mdi1wcm9ncmVzcy5pcy1jbGlja2FibGU6aG92ZXIgewogICAgZmlsdGVyOiBicmlnaHRuZXNzKDEuMDMpOwp9CgoubWpyLW1mdi1wcm9ncmVzcy1iYXIgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogMDsKICAgIHdpZHRoOiAwJTsKICAgIHRyYW5zaXRpb246IHdpZHRoIDcwbXMgZWFzZS1pbi1vdXQ7Cn0KCi5tanItbWZ2LXByb2dyZXNzLWJhci0tbm9kZXMgewogICAgdG9wOiAwOwogICAgaGVpZ2h0OiA1MCU7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN0YXR1cy1zdWNjZXNzKSA2OCUsICMwYjM1MTMgMzIlKTsKfQoKLm1qci1tZnYtcHJvZ3Jlc3MtYmFyLS1zdGVwcyB7CiAgICB0b3A6IDUwJTsKICAgIGhlaWdodDogNTAlOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDY0JSwgIzBiMjM0MCAzNiUpOwp9CgoubWpyLW1mdi1wcm9ncmVzcy5pcy1lcnJvciAubWpyLW1mdi1wcm9ncmVzcy1iYXItLW5vZGVzLAoubWpyLW1mdi1wcm9ncmVzcy5pcy1lcnJvciAubWpyLW1mdi1wcm9ncmVzcy1iYXItLXN0ZXBzIHsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCAjZDk1MzRmIDc4JSwgIzRhMTQxNCAyMiUpOwp9CgoubWpyLW1mdi1wcm9ncmVzcy1vdmVybGF5IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAwOwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KSwgcmdiYSgwLCAwLCAwLCAwLjE4KSk7CiAgICBtaXgtYmxlbmQtbW9kZTogc2NyZWVuOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCi5tanItbWZ2LXByb2dyZXNzLXRleHQgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgei1pbmRleDogMjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgaGVpZ2h0OiAxMDAlOwogICAgcGFkZGluZzogMCA4cHg7CiAgICBjb2xvcjogdmFyKC0tY29udGVudC1mZywgI2RkZCk7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgdGV4dC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjkpOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKfQoKLm1qci1tZnYtcGluLWdyb3VwIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBnYXA6IDJweDsKICAgIGZsZXgtc2hyaW5rOiAwOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKfQoubWpyLW1mdi1waW4tYnRuIHsKICAgIHdpZHRoOiAyNnB4OwogICAgaGVpZ2h0OiAyNnB4OwogICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlcik7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tanItc3VyZmFjZS0yKTsKICAgIGNvbG9yOiB2YXIoLS1jb250ZW50LWZnLCAjZGRkKTsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBwYWRkaW5nOiAwOwogICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB0cmFuc2l0aW9uOgogICAgICAgIGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZSwKICAgICAgICBib3JkZXItY29sb3IgMTIwbXMgZWFzZSwKICAgICAgICBjb2xvciAxMjBtcyBlYXNlLAogICAgICAgIGJveC1zaGFkb3cgMTIwbXMgZWFzZTsKfQoubWpyLW1mdi1waW4tYnRuOmhvdmVyIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDQ1JSwgdmFyKC0tbWpyLWJvcmRlcikpOwogICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTIpIDgwJSwgdmFyKC0tbWpyLWFjY2VudCkgOCUpOwp9Ci5tanItbWZ2LXBpbi1idG4uaXMtcGlubmVkIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDU4JSwgI2ZmZmZmZiAxMiUpOwogICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTIpIDQyJSwgdmFyKC0tbWpyLWFjY2VudCkgNTglKTsKICAgIGNvbG9yOiAjZWVmN2ZmOwogICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYWNjZW50KSAyNCUsIHRyYW5zcGFyZW50KTsKfQoKLyogLS0gUGluIGdyb3VwOiBub3cgYSBkcm9wZG93biBtZW51IChkaXNwbGF5Om5vbmUgYnkgZGVmYXVsdCwgZmxleCB3aGVuIC5pcy1vcGVuKSAtLSAqLwoubWpyLW1mdi1waW4tZ3JvdXAgewogICAgZGlzcGxheTogbm9uZTsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBnYXA6IDJweDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogY2FsYygxMDAlICsgNHB4KTsKICAgIGxlZnQ6IDA7CiAgICB6LWluZGV4OiAxMDAxMDsKICAgIG1pbi13aWR0aDogNzBweDsKICAgIHBhZGRpbmc6IDRweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbWZ5LW1lbnUtYmcsICMyYTJhMmEpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSk7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC41NSk7Cn0KLm1qci1tZnYtcGluLWdyb3VwLmlzLW9wZW4gewogICAgZGlzcGxheTogZmxleDsKfQoubWpyLW1mdi1waW4tYnRuIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMzBweDsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgYmFja2dyb3VuZDogbm9uZTsKICAgIGNvbG9yOiB2YXIoLS1jb250ZW50LWZnLCAjZGRkKTsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBwYWRkaW5nOiAwIDEwcHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB0cmFuc2l0aW9uOgogICAgICAgIGJhY2tncm91bmQgMTIwbXMgZWFzZSwKICAgICAgICBib3JkZXItY29sb3IgMTIwbXMgZWFzZSwKICAgICAgICBjb2xvciAxMjBtcyBlYXNlOwp9Ci5tanItbWZ2LXBpbi1idG46aG92ZXIgewogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDM1JSwgdHJhbnNwYXJlbnQpOwp9Ci5tanItbWZ2LXBpbi1idG4uaXMtcGlubmVkIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDU4JSwgI2ZmZmZmZiAxMiUpOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTIsICMzMzMpIDQyJSwgdmFyKC0tbWpyLWFjY2VudCwgIzVmYjNmZikgNTglKTsKICAgIGNvbG9yOiAjZWVmN2ZmOwp9CgovKiAtLSBJY29uIERyb3Bkb3duIGNvbXBvbmVudCAoLm1qci1tZnYtaWRyb3ApIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoubWpyLW1mdi1pZHJvcCB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBmbGV4LXNocmluazogMDsKfQoKLm1qci1tZnYtaWRyb3AtbWVudSB7CiAgICBkaXNwbGF5OiBub25lOwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogMnB4OwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgei1pbmRleDogMTAwMTA7CiAgICBtaW4td2lkdGg6IDExMHB4OwogICAgcGFkZGluZzogNHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tY29tZnktbWVudS1iZywgIzJhMmEyYSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tanItYm9yZGVyLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpKTsKICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjU1KTsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLm1qci1tZnYtaWRyb3AtbWVudS5pcy1vcGVuIHsKICAgIGRpc3BsYXk6IGZsZXg7Cn0KCi5tanItbWZ2LWlkcm9wLWl0ZW0gewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDhweDsKICAgIHdpZHRoOiAxMDAlOwogICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgY29sb3I6IHZhcigtLWlucHV0LXRleHQsICNkZGQpOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlOwp9Ci5tanItbWZ2LWlkcm9wLWl0ZW06aG92ZXIgewogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTsKfQoubWpyLW1mdi1pZHJvcC1pdGVtLmlzLXNlbGVjdGVkIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoOTUsIDE3OSwgMjU1LCAwLjE2KTsKICAgIGNvbG9yOiAjYThkOGZmOwp9Ci5tanItbWZ2LWlkcm9wLXRyaWdnZXJbYXJpYS1leHBhbmRlZD0idHJ1ZSJdIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhaW1wb3J0YW50OwogICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgIWltcG9ydGFudDsKfQovKiBDaGFubmVsIHRyaWdnZXI6IHNsaWdodGx5IHdpZGVyIHRvIGZpdCAiUkdCIiAqLwoubWpyLW1mdi1jaC1sYWJlbCB7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtOwogICAgbGluZS1oZWlnaHQ6IDE7Cn0KCi8qIFRvb2xiYXIgaWNvbi1idXR0b24gcG9wb3ZlcnMgKGNoYW5uZWwsIGd1aWRlcywgcGluLCBmb3JtYXQgLSBzb3J0LXN0eWxlIGNvbnRleHQgbWVudXMpICovCi5tanItbWZ2LWNoLXBvcG92ZXIsCi5tanItbWZ2LWd1aWRlcy1wb3BvdmVyLAoubWpyLW1mdi1waW4tcG9wb3ZlciwKLm1qci1tZnYtZm9ybWF0LXBvcG92ZXIgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbWluLXdpZHRoOiAxMjBweDsKICAgIHBhZGRpbmc6IDZweDsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZywgMC41cmVtKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLW1qci1zdXJmYWNlLTEsIHZhcigtLWNvbWZ5LW1lbnUtYmcsICMyYTJhMmEpKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikpOwogICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuNTUpOwogICAgei1pbmRleDogMTAwMTA7CiAgICBkaXNwbGF5OiBub25lOwp9Ci5tanItbWZ2LWNoLXBvcG92ZXIuaXMtb3BlbiwKLm1qci1tZnYtZ3VpZGVzLXBvcG92ZXIuaXMtb3BlbiwKLm1qci1tZnYtcGluLXBvcG92ZXIuaXMtb3BlbiwKLm1qci1tZnYtZm9ybWF0LXBvcG92ZXIuaXMtb3BlbiB7CiAgICBkaXNwbGF5OiBibG9jazsKfQovKiBUb29sYmFyIGljb24gaW1hZ2VzIC0gY2ggaWNvbiBpcyBibGFjayAoaW52ZXJ0ZWQpLCBndWlkZXMgaWNvbiBpcyBuYXRpdmUgd2hpdGUgKi8KLm1qci1tZnYtY2gtaWNvbiB7CiAgICB3aWR0aDogMThweDsKICAgIGhlaWdodDogMThweDsKICAgIGZpbHRlcjogaW52ZXJ0KDEpOwogICAgb3BhY2l0eTogMC44NTsKICAgIGRpc3BsYXk6IGJsb2NrOwp9Ci5tanItbWZ2LWd1aWRlcy1pY29uIHsKICAgIHdpZHRoOiAxOHB4OwogICAgaGVpZ2h0OiAxOHB4OwogICAgb3BhY2l0eTogMC44NTsKICAgIGRpc3BsYXk6IGJsb2NrOwp9Ci5tanItbWZ2LWNoLXRyaWdnZXJbYXJpYS1leHBhbmRlZD0idHJ1ZSJdLAoubWpyLW1mdi1ndWlkZXMtdHJpZ2dlclthcmlhLWV4cGFuZGVkPSJ0cnVlIl0sCi5tanItbWZ2LXBpbi10cmlnZ2VyW2FyaWEtZXhwYW5kZWQ9InRydWUiXSwKLm1qci1tZnYtZm9ybWF0LXRyaWdnZXJbYXJpYS1leHBhbmRlZD0idHJ1ZSJdIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhaW1wb3J0YW50OwogICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgIWltcG9ydGFudDsKfQovKiBQaW4gc2xvdCBhY3RpdmUgc3RhdGUgKi8KLm1qci1tZnYtcGluLXBvcG92ZXIgLm1qci1tZW51LWl0ZW0uaXMtcGlubmVkIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoOTUsIDE3OSwgMjU1LCAwLjE2KTsKICAgIGNvbG9yOiAjYThkOGZmOwp9Ci5tanItbWZ2LXBpbi1wb3BvdmVyIC5tanItbWVudS1pdGVtLmlzLXBpbm5lZCAubWpyLW1lbnUtaXRlbS1jaGVjayB7CiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7Cn0KLyogRm9ybWF0IHBvcG92ZXI6IHNlcGFyYXRvciArIG9wYWNpdHkgc2xpZGVyIHJvdyAqLwoubWpyLW1mdi1mb3JtYXQtc2VwIHsKICAgIGhlaWdodDogMXB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tbWpyLWJvcmRlciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpKTsKICAgIG1hcmdpbjogNHB4IDJweDsKfQoubWpyLW1mdi1mb3JtYXQtc2xpZGVyLXJvdyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogNnB4OwogICAgcGFkZGluZzogNHB4IDhweCAycHg7Cn0KLm1qci1tZnYtZm9ybWF0LXNsaWRlci1sYWJlbCB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dCwgI2RkZCk7CiAgICBvcGFjaXR5OiAwLjY1OwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIGZsZXgtc2hyaW5rOiAwOwp9Ci5tanItbWZ2LWZvcm1hdC1wb3BvdmVyIGlucHV0W3R5cGU9InJhbmdlIl0gewogICAgZmxleDogMTsKICAgIG1pbi13aWR0aDogNzBweDsKICAgIGFjY2VudC1jb2xvcjogdmFyKC0tbWpyLWFjY2VudCwgIzVmYjNmZik7Cn0KLm1qci1tZnYtZm9ybWF0LXBvcG92ZXIgLm1qci1tZnYtdG9vbGJhci1yYW5nZS1vdXQgewogICAgZm9udC1zaXplOiAxMXB4OwogICAgY29sb3I6IHZhcigtLWlucHV0LXRleHQsICNkZGQpOwogICAgb3BhY2l0eTogMC42NTsKICAgIG1pbi13aWR0aDogMzBweDsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgZmxleC1zaHJpbms6IDA7Cn0KCi5tanItbWZ2IC5tanItaWNvbi1idG4gewogICAgd2lkdGg6IDMwcHg7CiAgICBoZWlnaHQ6IDMwcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGJvcmRlci1yYWRpdXM6IDdweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIpOwogICAgYmFja2dyb3VuZDogdmFyKC0tbWpyLXN1cmZhY2UtMik7CiAgICBjb2xvcjogdmFyKC0tY29udGVudC1mZywgI2RkZCk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBwYWRkaW5nOiAwOwogICAgZmxleC1zaHJpbms6IDA7CiAgICB0cmFuc2l0aW9uOgogICAgICAgIHRyYW5zZm9ybSAxMjBtcyBlYXNlLAogICAgICAgIGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZSwKICAgICAgICBib3JkZXItY29sb3IgMTIwbXMgZWFzZSwKICAgICAgICBjb2xvciAxMjBtcyBlYXNlLAogICAgICAgIGJveC1zaGFkb3cgMTIwbXMgZWFzZTsKfQoKLm1qci1tZnYgLm1qci1pY29uLWJ0bjpob3ZlciB7CiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYWNjZW50KSA0NSUsIHZhcigtLW1qci1ib3JkZXIpKTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA4MCUsIHZhcigtLW1qci1hY2NlbnQpIDglKTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsKfQoKLm1qci1tZnYgLm1qci1pY29uLWJ0bjpmb2N1cy12aXNpYmxlIHsKICAgIG91dGxpbmU6IG5vbmU7CiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYWNjZW50KSA1OCUsIHZhcigtLW1qci1ib3JkZXIpKTsKICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgMjQlLCB0cmFuc3BhcmVudCk7Cn0KCi5tanItbWZ2IC5tanItaWNvbi1idG4gLnBpIHsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgb3BhY2l0eTogMC45Owp9CgovKiBVbml2ZXJzYWwgYWN0aXZlIGhpZ2hsaWdodCAtIGFueSBhcmlhLXByZXNzZWQ9InRydWUiIGJ1dHRvbiBnZXRzIGFjY2VudCBnbG93LgogICBQbGFjZWQgYmVmb3JlIHRoZSBjb2xvcmVkIGFjdGl2ZSBjbGFzc2VzIHNvIHRoZXkgY2FuIG92ZXJyaWRlIHdpdGggdGhlaXIgb3duIGNvbG9yLiAqLwoubWpyLW1mdiAubWpyLWljb24tYnRuW2FyaWEtcHJlc3NlZD0idHJ1ZSJdIHsKICAgIGJvcmRlci1jb2xvcjogcmdiYSg5NSwgMTc5LCAyNTUsIDAuNTUpOwogICAgY29sb3I6IHZhcigtLW1qci1hY2NlbnQsICM1ZmIzZmYpOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTIsICMzMzMpIDgwJSwgdmFyKC0tbWpyLWFjY2VudCwgIzVmYjNmZikgMTUlKTsKICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCwgIzVmYjNmZikgMjUlLCB0cmFuc3BhcmVudCk7Cn0KLm1qci1tZnYgLm1qci1pY29uLWJ0blthcmlhLXByZXNzZWQ9InRydWUiXSAucGkgewogICAgb3BhY2l0eTogMTsKfQoKLm1qci1tZnYgLm1qci1pY29uLWJ0bi5tanItbGl2ZS1hY3RpdmUgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN0YXR1cy1zdWNjZXNzKSA2MCUsIHZhcigtLW1qci1ib3JkZXIpKTsKICAgIGNvbG9yOiB2YXIoLS1tanItc3RhdHVzLXN1Y2Nlc3MpOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTIpIDgwJSwgdmFyKC0tbWpyLXN0YXR1cy1zdWNjZXNzKSAxMiUpOwogICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3RhdHVzLXN1Y2Nlc3MpIDI1JSwgdHJhbnNwYXJlbnQpOwp9CgoubWpyLW1mdiAubWpyLWljb24tYnRuLm1qci1saXZlLWFjdGl2ZSAucGkgewogICAgb3BhY2l0eTogMTsKfQoKLm1qci1tZnYgLm1qci1pY29uLWJ0bi5tanItcHJldmlldy1hY3RpdmUgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgNjAlLCB2YXIoLS1tanItYm9yZGVyKSk7CiAgICBjb2xvcjogdmFyKC0tbWpyLWFjY2VudCk7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMikgODAlLCB2YXIoLS1tanItYWNjZW50KSAxMiUpOwogICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYWNjZW50KSAyNSUsIHRyYW5zcGFyZW50KTsKfQoKLm1qci1tZnYgLm1qci1pY29uLWJ0bi5tanItcHJldmlldy1hY3RpdmUgLnBpIHsKICAgIG9wYWNpdHk6IDE7Cn0KCi5tanItbWZ2IC5tanItaWNvbi1idG4ubWpyLW5vZGVzdHJlYW0tYWN0aXZlIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdGF0dXMtd2FybmluZywgI2ZmOTgwMCkgNjAlLCB2YXIoLS1tanItYm9yZGVyKSk7CiAgICBjb2xvcjogdmFyKC0tbWpyLXN0YXR1cy13YXJuaW5nLCAjZmY5ODAwKTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peCgKICAgICAgICBpbiBzcmdiLAogICAgICAgIHZhcigtLW1qci1zdXJmYWNlLTIpIDgwJSwKICAgICAgICB2YXIoLS1tanItc3RhdHVzLXdhcm5pbmcsICNmZjk4MDApIDEyJQogICAgKTsKICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN0YXR1cy13YXJuaW5nLCAjZmY5ODAwKSAyNSUsIHRyYW5zcGFyZW50KTsKfQoKLm1qci1tZnYgLm1qci1pY29uLWJ0bi5tanItbm9kZXN0cmVhbS1hY3RpdmUgLnBpIHsKICAgIG9wYWNpdHk6IDE7Cn0KCi8qIFBvcC1pbiBtb2RlICh2aWV3ZXIgcG9wcGVkIG91dCk6IHJhaXNlIGJ1dHRvbiBjb250cmFzdC9icmlnaHRuZXNzICovCi5tanItbWZ2Lm1qci1tZnYtLXBvcHBlZCB7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgMTgwZGVnLAogICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0xKSA5MiUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCkpLAogICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0wKSA5MiUsIHJnYmEoMCwgMCwgMCwgMC4xOCkpCiAgICApOwogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJvcmRlcikgNzQlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpKTsKICAgIGJveC1zaGFkb3c6CiAgICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpLAogICAgICAgIDAgMjRweCA1NnB4IHJnYmEoMCwgMCwgMCwgMC40Mik7Cn0KCi5tanItbWZ2Lm1qci1tZnYtLXBvcHBlZCAubWpyLW1mdi1oZWFkZXIgewogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgIDE4MGRlZywKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMikgODglLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpKSwKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMSkgOTAlLCByZ2JhKDAsIDAsIDAsIDAuMjQpKQogICAgKTsKICAgIGJvcmRlci1ib3R0b20tY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYm9yZGVyKSA3OCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCkpOwogICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpOwp9CgoubWpyLW1mdi5tanItbWZ2LS1wb3BwZWQgLm1qci1tZnYtaGVhZGVyLXRpdGxlIHsKICAgIG9wYWNpdHk6IDAuOTg7CiAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbnRlbnQtZmcsICNlZWY0ZmYpIDk0JSwgI2ZmZmZmZiA2JSk7Cn0KCi5tanItbWZ2Lm1qci1tZnYtLXBvcHBlZCAubWpyLW1mdi10b29sYmFyIHsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICAxODBkZWcsCiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTEpIDg4JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KSksCiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTApIDkwJSwgcmdiYSgwLCAwLCAwLCAwLjI0KSkKICAgICk7CiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJvcmRlcikgNzglLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpKTsKfQoKLm1qci1tZnYubWpyLW1mdi0tcG9wcGVkIC5tanItbWZ2LXRvb2xiYXItc2VwIHsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYm9yZGVyKSA3OCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCkpOwp9CgoubWpyLW1mdi5tanItbWZ2LS1wb3BwZWQgLm1qci1tZnYtcHJvZ3Jlc3MgewogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgIDE4MGRlZywKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMCkgODIlLCAjMGExMTE4IDE4JSksCiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTApIDkyJSwgIzAwMCA4JSkKICAgICk7CiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJvcmRlcikgNzglLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpKTsKfQoKLm1qci1tZnYubWpyLW1mdi0tcG9wcGVkIC5tanItbWZ2LXByb2dyZXNzLXRleHQgewogICAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb250ZW50LWZnLCAjZWVmNGZmKSA5NCUsICNmZmZmZmYgNiUpOwp9CgoubWpyLW1mdi5tanItbWZ2LS1wb3BwZWQgLm1qci1tZnYtY29udGVudCB7CiAgICBiYWNrZ3JvdW5kOgogICAgICAgIHJhZGlhbC1ncmFkaWVudCgKICAgICAgICAgICAgY2lyY2xlIGF0IHRvcCwKICAgICAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDEwJSwgdHJhbnNwYXJlbnQpIDAlLAogICAgICAgICAgICB0cmFuc3BhcmVudCA0MiUKICAgICAgICApLAogICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0wKSA4MiUsICMwMDAgMTglKTsKfQoKLm1qci1tZnYubWpyLW1mdi0tcG9wcGVkIC5tanItaWNvbi1idG4gewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJvcmRlcikgNzYlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpKTsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICAxODBkZWcsCiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTIpIDg2JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSksCiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTEpIDkyJSwgcmdiYSgwLCAwLCAwLCAwLjE4KSkKICAgICk7CiAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbnRlbnQtZmcsICNkZGQpIDkyJSwgI2ZmZmZmZiA4JSkgIWltcG9ydGFudDsKICAgIGJveC1zaGFkb3c6CiAgICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpLAogICAgICAgIDAgOHB4IDE4cHggcmdiYSgwLCAwLCAwLCAwLjE4KTsKfQoKLm1qci1tZnYubWpyLW1mdi0tcG9wcGVkIC5tanItaWNvbi1idG46aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgNTIlLCB2YXIoLS1tanItYm9yZGVyKSk7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgMTgwZGVnLAogICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA1OCUsIHZhcigtLW1qci1hY2NlbnQpIDQyJSksCiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTEpIDYyJSwgdmFyKC0tbWpyLWFjY2VudCkgMzglKQogICAgKTsKICAgIGNvbG9yOiAjZjRmOGZmICFpbXBvcnRhbnQ7Cn0KCi5tanItbWZ2Lm1qci1tZnYtLXBvcHBlZCAubWpyLWljb24tYnRuIC5waSB7CiAgICBvcGFjaXR5OiAxOwogICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDsKfQoKLm1qci1tZnYubWpyLW1mdi0tcG9wcGVkIC5tanItaWNvbi1idG4ubWpyLWxpdmUtYWN0aXZlIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdGF0dXMtc3VjY2VzcykgNjAlLCAjZmZmZmZmIDQwJSk7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgMTgwZGVnLAogICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3RhdHVzLXN1Y2Nlc3MpIDYyJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSksCiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdGF0dXMtc3VjY2VzcykgMzYlLCB2YXIoLS1tanItc3VyZmFjZS0xKSA2NCUpCiAgICApOwogICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDsKICAgIGJveC1zaGFkb3c6CiAgICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpLAogICAgICAgIDAgMCAwIDFweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN0YXR1cy1zdWNjZXNzKSAyNCUsIHRyYW5zcGFyZW50KSwKICAgICAgICAwIDAgMThweCByZ2JhKDc2LCAxNzUsIDgwLCAwLjE4KTsKfQoKLm1qci1tZnYubWpyLW1mdi0tcG9wcGVkIC5tanItaWNvbi1idG4ubWpyLXByZXZpZXctYWN0aXZlIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDU4JSwgI2ZmZmZmZiA0MiUpOwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgIDE4MGRlZywKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgNjIlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpKSwKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgMzYlLCB2YXIoLS1tanItc3VyZmFjZS0xKSA2NCUpCiAgICApOwogICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDsKICAgIGJveC1zaGFkb3c6CiAgICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpLAogICAgICAgIDAgMCAwIDFweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgMjQlLCB0cmFuc3BhcmVudCksCiAgICAgICAgMCAwIDE4cHggcmdiYSg5NSwgMTc5LCAyNTUsIDAuMTgpOwp9CgoubWpyLW1mdi5tanItbWZ2LS1wb3BwZWQgLm1qci1pY29uLWJ0bi5tanItbm9kZXN0cmVhbS1hY3RpdmUgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN0YXR1cy13YXJuaW5nLCAjZmY5ODAwKSA1OCUsICNmZmZmZmYgNDIlKTsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICAxODBkZWcsCiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdGF0dXMtd2FybmluZywgI2ZmOTgwMCkgNjIlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpKSwKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN0YXR1cy13YXJuaW5nLCAjZmY5ODAwKSAzNiUsIHZhcigtLW1qci1zdXJmYWNlLTEpIDY0JSkKICAgICk7CiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50OwogICAgYm94LXNoYWRvdzoKICAgICAgICBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMiksCiAgICAgICAgMCAwIDAgMXB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3RhdHVzLXdhcm5pbmcsICNmZjk4MDApIDI0JSwgdHJhbnNwYXJlbnQpLAogICAgICAgIDAgMCAxOHB4IHJnYmEoMjU1LCAxNTIsIDAsIDAuMTgpOwp9CgoubWpyLW1mdi5tanItbWZ2LS1wb3BwZWQgLm1qci1tZnYtcGluLWJ0biB7CiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYm9yZGVyKSA3NiUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNikpOwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgIDE4MGRlZywKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMikgODQlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpKSwKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMSkgOTIlLCByZ2JhKDAsIDAsIDAsIDAuMTgpKQogICAgKTsKICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29udGVudC1mZywgI2RkZCkgOTIlLCAjZmZmZmZmIDglKTsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTsKfQoKLm1qci1tZnYubWpyLW1mdi0tcG9wcGVkIC5tanItbWZ2LXBpbi1idG46aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgNTIlLCB2YXIoLS1tanItYm9yZGVyKSk7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgMTgwZGVnLAogICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yKSA1NiUsIHZhcigtLW1qci1hY2NlbnQpIDQ0JSksCiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTEpIDY0JSwgdmFyKC0tbWpyLWFjY2VudCkgMzYlKQogICAgKTsKfQoKLm1qci1tZnYubWpyLW1mdi0tcG9wcGVkIC5tanItbWZ2LXBpbi1idG4uaXMtcGlubmVkIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDU4JSwgI2ZmZmZmZiA0MiUpOwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgIDE4MGRlZywKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgNjIlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpKSwKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgMzYlLCB2YXIoLS1tanItc3VyZmFjZS0xKSA2NCUpCiAgICApOwogICAgY29sb3I6ICNmZmZmZmY7Cn0KCi5tanItbWZ2Lm1qci1tZnYtLXBvcHBlZCAubWpyLXdzLXNpZGViYXIgewogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgIDE4MGRlZywKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMSkgOTQlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpKSwKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMCkgOTQlLCByZ2JhKDAsIDAsIDAsIDAuMTgpKQogICAgKTsKICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJvcmRlcikgNzglLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpKTsKICAgIGJveC1zaGFkb3c6IGluc2V0IDFweCAwIDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAzKTsKfQoKLm1qci1tZnYubWpyLW1mdi0tcG9wcGVkIC5tanItbWZ2LWNvbnRlbnQtd3JhcHBlcltkYXRhLXNpZGViYXItcG9zPSJsZWZ0Il0gLm1qci13cy1zaWRlYmFyIHsKICAgIGJvcmRlci1yaWdodC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1ib3JkZXIpIDc4JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KSk7Cn0KCi5tanItbWZ2Lm1qci1tZnYtLXBvcHBlZCAubWpyLXdzLXNpZGViYXItaGVhZGVyIHsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICAxODBkZWcsCiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTIpIDg0JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSksCiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTEpIDkyJSwgcmdiYSgwLCAwLCAwLCAwLjE4KSkKICAgICk7CiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJvcmRlcikgNzYlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpKTsKfQoKLm1qci1tZnYubWpyLW1mdi0tcG9wcGVkIC5tanItd3Mtc2lkZWJhci10aXRsZSB7CiAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbnRlbnQtZmcsICNlZWY0ZmYpIDgyJSwgdmFyKC0tbWpyLW11dGVkKSAxOCUpOwogICAgb3BhY2l0eTogMC44ODsKfQoKLm1qci1tZnYubWpyLW1mdi0tcG9wcGVkIC5tanItd3Mtbm9kZSB7CiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJvcmRlcikgNzIlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpKTsKfQoKLm1qci1tZnYubWpyLW1mdi0tcG9wcGVkIC5tanItd3Mtbm9kZS1oZWFkZXIgewogICAgYmFja2dyb3VuZDoKICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApKSwKICAgICAgICBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgICAgIDE4MGRlZywKICAgICAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTEpIDg2JSwgdmFyKC0tbWpyLWFjY2VudCkgMTQlKSwKICAgICAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTApIDg2JSwgcmdiYSgwLCAwLCAwLCAwLjE0KSkKICAgICAgICApOwogICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpOwp9CgoubWpyLW1mdi5tanItbWZ2LS1wb3BwZWQgLm1qci13cy1ub2RlLXRpdGxlIHsKICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29udGVudC1mZywgI2VlZjRmZikgOTQlLCAjZmZmZmZmIDYlKTsKfQoKLm1qci1tZnYubWpyLW1mdi0tcG9wcGVkIC5tanItd3Mtd2lkZ2V0LWxhYmVsLAoubWpyLW1mdi5tanItbWZ2LS1wb3BwZWQgLm1qci13cy1zaWRlYmFyLWVtcHR5LAoubWpyLW1mdi5tanItbWZ2LS1wb3BwZWQgLm1qci13cy1ub2RlLWVtcHR5IHsKICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLW11dGVkKSA4NCUsICNmZmZmZmYgMTYlKTsKfQoKLm1qci1tZnYubWpyLW1mdi0tcG9wcGVkIC5tanItd3MtaW5wdXQgewogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTApIDc0JSwgIzA1MDcwYSAyNiUpOwogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJvcmRlcikgNzQlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpKTsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTsKfQoKLm1qci1tZnYubWpyLW1mdi0tcG9wcGVkIC5tanItd3MtaW5wdXQ6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgNTglLCAjZmZmZmZmIDEwJSk7CiAgICBib3gtc2hhZG93OgogICAgICAgIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KSwKICAgICAgICAwIDAgMCAycHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDE4JSwgdHJhbnNwYXJlbnQpOwp9CgoubWpyLW1mdiAubWpyLWljb24tYnRuLm1qci1wb3Bpbi1hY3RpdmUgewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgNTglLCAjZmZmZmZmIDQyJSk7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMikgNDUlLCB2YXIoLS1tanItYWNjZW50KSA1NSUpOwogICAgY29sb3I6ICNlZWY3ZmY7Cn0KCi8qIC0tIENvbnRlbnQgd3JhcHBlciAoaG9yaXpvbnRhbCBmbGV4OiBjb250ZW50ICsgc2lkZWJhcikgLS0tLS0tLS0tLS0tLS0gKi8KLm1qci1tZnYtY29udGVudC13cmFwcGVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4OiAxOwogICAgbWluLWhlaWdodDogMDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7Cn0KCi8qIC0tIFNpZGViYXIgcG9zaXRpb24gdmFyaWFudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoubWpyLW1mdi1jb250ZW50LXdyYXBwZXJbZGF0YS1zaWRlYmFyLXBvcz0ibGVmdCJdIHsKICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7Cn0KLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImxlZnQiXSAubWpyLXdzLXNpZGViYXIgewogICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1tanItYm9yZGVyLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpKTsKfQoubWpyLW1mdi1jb250ZW50LXdyYXBwZXJbZGF0YS1zaWRlYmFyLXBvcz0iYm90dG9tIl0gewogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQoubWpyLW1mdi1jb250ZW50LXdyYXBwZXJbZGF0YS1zaWRlYmFyLXBvcz0iYm90dG9tIl0gLm1qci13cy1zaWRlYmFyIHsKICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikpOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDA7CiAgICB0cmFuc2l0aW9uOgogICAgICAgIGhlaWdodCAwLjJzIGVhc2UsCiAgICAgICAgd2lkdGggMHM7Cn0KLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImJvdHRvbSJdIC5tanItd3Mtc2lkZWJhci5vcGVuIHsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAyMjBweDsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgIG1heC1oZWlnaHQ6IDY1JTsKfQoKLyogLS0gQ29udGVudCBhcmVhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoubWpyLW1mdi1jb250ZW50IHsKICAgIGZsZXg6IDE7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgYmFja2dyb3VuZDogIzBkMGQwZDsKICAgIG1pbi1oZWlnaHQ6IDA7Cn0KCi5tanItbWZ2LWdlbi1zaWRlYmFyIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgICBmbGV4OiAwIDAgMzIwcHg7CiAgICB3aWR0aDogMzIwcHg7CiAgICBtaW4td2lkdGg6IDIxMHB4OwogICAgbWF4LXdpZHRoOiBtaW4oNDIlLCA0MjBweCk7CiAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgcGFkZGluZzogMTBweDsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSk7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE4LCAxOCwgMjAsIDAuOTYpOwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44OCk7Cn0KCi5tanItbWZ2LWdlbi1zaWRlYmFyLm9wZW4gewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBnYXA6IDEwcHg7Cn0KCi5tanItbWZ2LWNvbnRlbnQtd3JhcHBlcltkYXRhLXNpZGViYXItcG9zPSJsZWZ0Il0gLm1qci1tZnYtZ2VuLXNpZGViYXIgewogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1tanItYm9yZGVyLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpKTsKICAgIGJvcmRlci1yaWdodDogbm9uZTsKfQoKLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImJvdHRvbSJdIC5tanItbWZ2LWdlbi1zaWRlYmFyIHsKICAgIGZsZXg6IDAgMCBjbGFtcCgxOTBweCwgMzIlLCAyODBweCk7CiAgICB3aWR0aDogMTAwJTsKICAgIG1heC13aWR0aDogbm9uZTsKICAgIG1pbi13aWR0aDogMDsKICAgIG1heC1oZWlnaHQ6IDQ2JTsKICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikpOwp9CgoubWpyLW1mdi1nZW4tc2lkZWJhci10aXRsZSB7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDA7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk0KTsKfQoKLm1qci1tZnYtZ2VuLXNpZGViYXItc2VjdGlvbiB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogNnB4OwogICAgcGFkZGluZy10b3A6IDhweDsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7Cn0KCi5tanItbWZ2LWdlbi1zaWRlYmFyLXNlY3Rpb246Zmlyc3Qtb2YtdHlwZSB7CiAgICBwYWRkaW5nLXRvcDogMDsKICAgIGJvcmRlci10b3A6IG5vbmU7Cn0KCi5tanItbWZ2LWdlbi1zaWRlYmFyLWhlYWRpbmcgewogICAgZm9udC1zaXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzIpOwp9CgoubWpyLW1mdi1nZW4tc2lkZWJhci1ib2R5IHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiAxMHB4OwogICAgZm9udC1zaXplOiAxMnB4OwogICAgbGluZS1oZWlnaHQ6IDEuNDU7CiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwp9CgoubWpyLW1mdi1jb250ZW50LXdyYXBwZXJbZGF0YS1zaWRlYmFyLXBvcz0iYm90dG9tIl0gLm1qci1tZnYtZ2VuLXNpZGViYXIub3BlbiB7CiAgICBnYXA6IDZweDsKfQoKLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImJvdHRvbSJdIC5tanItbWZ2LWdlbi1zaWRlYmFyLXRpdGxlIHsKICAgIGZsZXg6IDAgMCBhdXRvOwp9CgoubWpyLW1mdi1jb250ZW50LXdyYXBwZXJbZGF0YS1zaWRlYmFyLXBvcz0iYm90dG9tIl0gLm1qci1tZnYtZ2VuLXNpZGViYXItc2VjdGlvbiB7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIG1pbi1oZWlnaHQ6IGF1dG87CiAgICBwYWRkaW5nLXRvcDogNHB4Owp9CgoubWpyLW1mdi1jb250ZW50LXdyYXBwZXJbZGF0YS1zaWRlYmFyLXBvcz0iYm90dG9tIl0gLm1qci1tZnYtZ2VuLXNpZGViYXItaGVhZGluZyB7CiAgICBkaXNwbGF5OiBub25lOwp9CgoubWpyLW1mdi1jb250ZW50LXdyYXBwZXJbZGF0YS1zaWRlYmFyLXBvcz0iYm90dG9tIl0gLm1qci1tZnYtZ2VuLXNpZGViYXItYm9keSB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGNvbHVtbnM6IDMgMTcwcHg7CiAgICBjb2x1bW4tZ2FwOiAxMHB4OwogICAgY29sdW1uLWZpbGw6IGJhbGFuY2U7CiAgICBtaW4taGVpZ2h0OiBhdXRvOwogICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgb3ZlcmZsb3cteTogdmlzaWJsZTsKICAgIHBhZGRpbmctcmlnaHQ6IDJweDsKICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKfQoKLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImJvdHRvbSJdIC5tanItbWZ2LWdlbi1zaWRlYmFyLWJvZHkgPiAqIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBicmVhay1pbnNpZGU6IGF2b2lkOwogICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOwogICAgbWluLXdpZHRoOiAwOwogICAgbWluLWhlaWdodDogMDsKICAgIG1hcmdpbi1ibG9jazogMCAxMHB4Owp9CgoubWpyLW1mdi1nZW4tdGltZS1iYWRnZSB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGdhcDogMTJweDsKICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMjQsIDI1NSwgMTIyLCAwLjQyKTsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyMjQsIDI1NSwgMTIyLCAwLjE2KSwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7CiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgyMjQsIDI1NSwgMTIyLCAwLjEyKSBpbnNldDsKICAgIGN1cnNvcjogY29weTsKICAgIHRyYW5zaXRpb246CiAgICAgICAgYmFja2dyb3VuZCAwLjE2cyBlYXNlLAogICAgICAgIGJvcmRlci1jb2xvciAwLjE2cyBlYXNlLAogICAgICAgIGJveC1zaGFkb3cgMC4xNnMgZWFzZTsKfQoKLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImJvdHRvbSJdIC5tanItbWZ2LWdlbi10aW1lLWJhZGdlIHsKICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKfQoKLm1qci1tZnYtZ2VuLXRpbWUtbGFiZWwgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43Mik7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKfQoKLm1qci1tZnYtZ2VuLXRpbWUtdmFsdWUgewogICAgY29sb3I6ICNlMGZmN2E7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBmb250LXdlaWdodDogODAwOwogICAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBNb25hY28sIG1vbm9zcGFjZTsKfQoKLm1qci1tZnYtZ2VuLWNhcmQgewogICAgLS1tanItbWZ2LWdlbi1hY2NlbnQ6ICMyMTk2ZjM7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogOHB4OwogICAgcGFkZGluZzogMTJweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItbWZ2LWdlbi1hY2NlbnQpIDQ1JSwgdHJhbnNwYXJlbnQpOwogICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgIDEzNWRlZywKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLW1mdi1nZW4tYWNjZW50KSAxNiUsIHRyYW5zcGFyZW50KSAwJSwKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLW1mdi1nZW4tYWNjZW50KSA4JSwgdHJhbnNwYXJlbnQpIDEwMCUKICAgICk7CiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1tZnYtZ2VuLWFjY2VudCkgMTQlLCB0cmFuc3BhcmVudCkgaW5zZXQ7CiAgICBjdXJzb3I6IGNvcHk7CiAgICB0cmFuc2l0aW9uOgogICAgICAgIGJhY2tncm91bmQgMC4xNnMgZWFzZSwKICAgICAgICBib3JkZXItY29sb3IgMC4xNnMgZWFzZSwKICAgICAgICBib3gtc2hhZG93IDAuMTZzIGVhc2U7Cn0KCi5tanItbWZ2LWNvbnRlbnQtd3JhcHBlcltkYXRhLXNpZGViYXItcG9zPSJib3R0b20iXSAubWpyLW1mdi1nZW4tY2FyZCB7CiAgICBtaW4taGVpZ2h0OiAwOwogICAgcGFkZGluZzogMTBweDsKfQoKLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImJvdHRvbSJdIC5tanItbWZ2LWdlbi1jYXJkLS1wb3NpdGl2ZS1wcm9tcHQsCi5tanItbWZ2LWNvbnRlbnQtd3JhcHBlcltkYXRhLXNpZGViYXItcG9zPSJib3R0b20iXSAubWpyLW1mdi1nZW4tY2FyZC0tbmVnYXRpdmUtcHJvbXB0LAoubWpyLW1mdi1jb250ZW50LXdyYXBwZXJbZGF0YS1zaWRlYmFyLXBvcz0iYm90dG9tIl0gLm1qci1tZnYtZ2VuLWNhcmQtLXByb21wdCB7CiAgICBtaW4taGVpZ2h0OiAxMTBweDsKfQoKLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImJvdHRvbSJdIC5tanItbWZ2LWdlbi1jYXJkLS13b3JrZmxvdyB7CiAgICBtaW4taGVpZ2h0OiA1OHB4Owp9CgoubWpyLW1mdi1jb250ZW50LXdyYXBwZXJbZGF0YS1zaWRlYmFyLXBvcz0iYm90dG9tIl0gLm1qci1tZnYtZ2VuLWNhcmQtLW1vZGVsLWFuZC1sb3JhLAoubWpyLW1mdi1jb250ZW50LXdyYXBwZXJbZGF0YS1zaWRlYmFyLXBvcz0iYm90dG9tIl0gLm1qci1tZnYtZ2VuLWNhcmQtLW1vZGVscywKLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImJvdHRvbSJdIC5tanItbWZ2LWdlbi1jYXJkLS1zYW1wbGluZywKLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImJvdHRvbSJdIC5tanItbWZ2LWdlbi1jYXJkLS1nZW5lcmF0aW9uLXBpcGVsaW5lLAoubWpyLW1mdi1jb250ZW50LXdyYXBwZXJbZGF0YS1zaWRlYmFyLXBvcz0iYm90dG9tIl0gLm1qci1tZnYtZ2VuLWNhcmQtLXRleHQtdG8taW1hZ2UsCi5tanItbWZ2LWNvbnRlbnQtd3JhcHBlcltkYXRhLXNpZGViYXItcG9zPSJib3R0b20iXSAubWpyLW1mdi1nZW4tY2FyZC0taW1hZ2UtdG8taW1hZ2UsCi5tanItbWZ2LWNvbnRlbnQtd3JhcHBlcltkYXRhLXNpZGViYXItcG9zPSJib3R0b20iXSAubWpyLW1mdi1nZW4tY2FyZC0taW5wYWludCwKLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImJvdHRvbSJdIC5tanItbWZ2LWdlbi1jYXJkLS11cHNjYWxlLAoubWpyLW1mdi1jb250ZW50LXdyYXBwZXJbZGF0YS1zaWRlYmFyLXBvcz0iYm90dG9tIl0gLm1qci1tZnYtZ2VuLWNhcmQtLXJlZmluZSB7CiAgICBtaW4taGVpZ2h0OiA4NnB4Owp9CgoubWpyLW1mdi1nZW4tY2FyZC0tc2VlZCB7CiAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGJvcmRlci13aWR0aDogMnB4Owp9CgoubWpyLW1mdi1nZW4tY2FyZC0tY29tcGFjdCB7CiAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGdhcDogMTJweDsKfQoKLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImJvdHRvbSJdIC5tanItbWZ2LWdlbi1jYXJkLS1jb21wYWN0IHsKICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKfQoKLm1qci1tZnYtZ2VuLWNhcmQtLWNvbXBhY3QgLm1qci1tZnYtZ2VuLWNhcmQtdGl0bGUsCi5tanItbWZ2LWdlbi1jYXJkLS1jb21wYWN0IC5tanItbWZ2LWdlbi1jYXJkLXZhbHVlIHsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCi5tanItbWZ2LWdlbi1jYXJkOmhvdmVyLAoubWpyLW1mdi1nZW4tdGltZS1iYWRnZTpob3ZlciB7CiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItbWZ2LWdlbi1hY2NlbnQsICNlMGZmN2EpIDcwJSwgdHJhbnNwYXJlbnQpOwogICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItbWZ2LWdlbi1hY2NlbnQsICNlMGZmN2EpIDI0JSwgdHJhbnNwYXJlbnQpCiAgICAgICAgaW5zZXQ7Cn0KCi5tanItbWZ2LWdlbi1jb3B5LWZsYXNoIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoNzYsIDE3NSwgODAsIDAuMjgpICFpbXBvcnRhbnQ7Cn0KCi5tanItbWZ2LWdlbi1jYXJkLXRpdGxlIHsKICAgIGNvbG9yOiB2YXIoLS1tanItbWZ2LWdlbi1hY2NlbnQpOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7Cn0KCi5tanItbWZ2LWdlbi1jYXJkLXZhbHVlIHsKICAgIGNvbG9yOiB2YXIoLS1mZy1jb2xvciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyKSk7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBtaW4td2lkdGg6IDA7CiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwp9CgoubWpyLW1mdi1jb250ZW50LXdyYXBwZXJbZGF0YS1zaWRlYmFyLXBvcz0iYm90dG9tIl0gLm1qci1tZnYtZ2VuLWNhcmQtdmFsdWUgewogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgLXdlYmtpdC1saW5lLWNsYW1wOiA1OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKfQoKLm1qci1tZnYtZ2VuLWNhcmQtdmFsdWUuaXMtY29tcGFjdCB7CiAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7Cn0KCi5tanItbWZ2LWNvbnRlbnQtd3JhcHBlcltkYXRhLXNpZGViYXItcG9zPSJib3R0b20iXSAubWpyLW1mdi1nZW4tY2FyZC12YWx1ZS5pcy1jb21wYWN0IHsKICAgIHRleHQtYWxpZ246IGxlZnQ7Cn0KCi5tanItbWZ2LWdlbi1jYXJkLXZhbHVlLmlzLW11bHRpbGluZSB7CiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Cn0KCi5tanItbWZ2LWdlbi1jYXJkLS1zZWVkIC5tanItbWZ2LWdlbi1jYXJkLXZhbHVlIHsKICAgIGZvbnQtc2l6ZTogMThweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBmb250LWZhbWlseTogQ29uc29sYXMsIE1vbmFjbywgbW9ub3NwYWNlOwogICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgIGNvbG9yOiAjZmZmOwp9CgoubWpyLW1mdi1nZW4tY2FyZC12YWx1ZS5pcy1maWVsZHMgewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgZ2FwOiA4cHg7Cn0KCi5tanItbWZ2LWNvbnRlbnQtd3JhcHBlcltkYXRhLXNpZGViYXItcG9zPSJib3R0b20iXSAubWpyLW1mdi1nZW4tY2FyZC12YWx1ZS5pcy1maWVsZHMgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBnYXA6IDdweDsKICAgIC13ZWJraXQtbGluZS1jbGFtcDogdW5zZXQ7Cn0KCi5tanItbWZ2LWdlbi1jYXJkLXZhbHVlLmlzLWJyYW5jaC1ncm91cHMgewogICAgZ2FwOiAxMHB4Owp9CgoubWpyLW1mdi1nZW4tYnJhbmNoLWdyb3VwIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiA3cHg7CiAgICBtaW4td2lkdGg6IDA7CiAgICBwYWRkaW5nOiA4cHg7CiAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQ1KTsKfQoKLm1qci1tZnYtZ2VuLWJyYW5jaC10aXRsZSB7CiAgICBjb2xvcjogdmFyKC0tbWpyLW1mdi1nZW4tYWNjZW50KTsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC42cHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9CgoubWpyLW1mdi1nZW4tZmllbGQgewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDc4cHgsIGF1dG8pIDFmcjsKICAgIGdhcDogMTBweDsKICAgIGFsaWduLWl0ZW1zOiBzdGFydDsKICAgIG1pbi13aWR0aDogMDsKfQoKLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImJvdHRvbSJdIC5tanItbWZ2LWdlbi1maWVsZCB7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCg1NHB4LCBhdXRvKSBtaW5tYXgoMCwgMWZyKTsKfQoKLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImJvdHRvbSJdIC5tanItbWZ2LWdlbi1maWVsZC12YWx1ZSB7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9CgoubWpyLW1mdi1nZW4tZmllbGQtbGFiZWwgewogICAgY29sb3I6IHZhcigtLW1qci1tdXRlZCwgcmdiYSgxODAsIDE4MCwgMTgwLCAwLjcyKSk7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNjAwOwp9CgoubWpyLW1mdi1nZW4tZmllbGQtdmFsdWUgewogICAgY29sb3I6IHZhcigtLWZnLWNvbG9yLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpKTsKICAgIG1pbi13aWR0aDogMDsKICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7Cn0KCi5tanItbWZ2LWdlbi1zaWRlYmFyLWJvZHkgc3Ryb25nIHsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBtYXJnaW4tcmlnaHQ6IDRweDsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOwp9CgoubWpyLW1mdi1nZW4tc2lkZWJhci1ib2R5IFtkYXRhLWZpZWxkPSJwcm9tcHQiXSBzdHJvbmcgewogICAgY29sb3I6ICM3ZWM4ZmY7Cn0KLm1qci1tZnYtZ2VuLXNpZGViYXItYm9keSBbZGF0YS1maWVsZD0ic2VlZCJdIHN0cm9uZyB7CiAgICBjb2xvcjogI2ZmZDQ3YTsKfQoubWpyLW1mdi1nZW4tc2lkZWJhci1ib2R5IFtkYXRhLWZpZWxkPSJtb2RlbCJdIHN0cm9uZyB7CiAgICBjb2xvcjogIzdkZGE4YTsKfQoubWpyLW1mdi1nZW4tc2lkZWJhci1ib2R5IFtkYXRhLWZpZWxkPSJsb3JhIl0gc3Ryb25nIHsKICAgIGNvbG9yOiAjZDQ4Y2ZmOwp9Ci5tanItbWZ2LWdlbi1zaWRlYmFyLWJvZHkgW2RhdGEtZmllbGQ9InNhbXBsZXIiXSBzdHJvbmcgewogICAgY29sb3I6ICNmZjlmN2E7Cn0KLm1qci1tZnYtZ2VuLXNpZGViYXItYm9keSBbZGF0YS1maWVsZD0ic2NoZWR1bGVyIl0gc3Ryb25nIHsKICAgIGNvbG9yOiAjZmY3YTlmOwp9Ci5tanItbWZ2LWdlbi1zaWRlYmFyLWJvZHkgW2RhdGEtZmllbGQ9ImNmZyJdIHN0cm9uZyB7CiAgICBjb2xvcjogIzdhOWZmZjsKfQoubWpyLW1mdi1nZW4tc2lkZWJhci1ib2R5IFtkYXRhLWZpZWxkPSJzdGVwIl0gc3Ryb25nIHsKICAgIGNvbG9yOiAjN2FmZmQ0Owp9Ci5tanItbWZ2LWdlbi1zaWRlYmFyLWJvZHkgW2RhdGEtZmllbGQ9ImdlblRpbWUiXSBzdHJvbmcgewogICAgY29sb3I6ICNlMGZmN2E7Cn0KCi5tanItbWZ2LWdlbi1zaWRlYmFyLWJvZHkgZGl2IHsKICAgIG1hcmdpbi1ib3R0b206IDVweDsKfQoKLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImJvdHRvbSJdIC5tanItbWZ2LWdlbi1zaWRlYmFyLWJvZHkgZGl2IHsKICAgIG1hcmdpbi1ib3R0b206IDA7Cn0KCi5tanItbWZ2LWNvbnRlbnQtd3JhcHBlcltkYXRhLXNpZGViYXItcG9zPSJib3R0b20iXSAubWpyLW1mdi1nZW4tc2lkZWJhci1ib2R5ID4gZGl2LAoubWpyLW1mdi1jb250ZW50LXdyYXBwZXJbZGF0YS1zaWRlYmFyLXBvcz0iYm90dG9tIl0gLm1qci1tZnYtZ2VuLXNpZGViYXItYm9keSA+IHNlY3Rpb24gewogICAgbWFyZ2luLWJsb2NrOiAwIDEwcHg7Cn0KCi5tanItbWZ2LWdlbi1zaWRlYmFyLWJvZHkgZGl2Omxhc3QtY2hpbGQgewogICAgbWFyZ2luLWJvdHRvbTogMDsKfQoKQGNvbnRhaW5lciAobWF4LXdpZHRoOiA3NjBweCkgewogICAgLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImJvdHRvbSJdIC5tanItbWZ2LWdlbi1zaWRlYmFyLWJvZHkgewogICAgICAgIGNvbHVtbnM6IGF1dG87CiAgICAgICAgY29sdW1uLWNvdW50OiAxOwogICAgICAgIGNvbHVtbi13aWR0aDogYXV0bzsKICAgIH0KCiAgICAubWpyLW1mdi1jb250ZW50LXdyYXBwZXJbZGF0YS1zaWRlYmFyLXBvcz0iYm90dG9tIl0gLm1qci1tZnYtZ2VuLXNpZGViYXItYm9keSA+ICogewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgfQp9CgoubWpyLW1mdi1vdmVybGF5LWNhbnZhcyB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogMDsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB6LWluZGV4OiAxMjsKfQoKLm1qci1tZnYtdG9vbGJhci1zZWxlY3QgewogICAgaGVpZ2h0OiAyNHB4OwogICAgcGFkZGluZzogMCA2cHg7CiAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICBib3JkZXI6IDAuOHB4IHNvbGlkIHJnYmEoMTk2LCAyMDIsIDIxMCwgMC4yNCk7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDIxMCwgMjE0LCAyMjAsIDAuMDYpLCByZ2JhKDIxMCwgMjE0LCAyMjAsIDAuMDIpKTsKICAgIGNvbG9yOiByZ2JhKDIzMCwgMjMzLCAyMzgsIDAuOTIpOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgb3V0bGluZTogbm9uZTsKfQoKLm1qci1tZnYtdG9vbGJhci1yYW5nZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDZweDsKfQoKLm1qci1tZnYtdG9vbGJhci1yYW5nZSBpbnB1dFt0eXBlPSJyYW5nZSJdIHsKICAgIHdpZHRoOiA3MnB4OwogICAgYWNjZW50LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpOwp9CgoubWpyLW1mdi10b29sYmFyLXJhbmdlLW91dCB7CiAgICBtaW4td2lkdGg6IDMwcHg7CiAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7Cn0KCi8qIEVWIHNsaWRlciBhY3RpdmUgc3RhdGUgKHZhbHVlICE9IDApICovCi5tanItbWZ2LXRvb2xiYXItcmFuZ2UuaXMtYWN0aXZlIGlucHV0W3R5cGU9InJhbmdlIl0gewogICAgYWNjZW50LWNvbG9yOiAjZjVjODQyOwp9Ci5tanItbWZ2LXRvb2xiYXItcmFuZ2UuaXMtYWN0aXZlIC5tanItbWZ2LXRvb2xiYXItcmFuZ2Utb3V0IHsKICAgIGNvbG9yOiAjZjVjODQyOwogICAgZm9udC13ZWlnaHQ6IDYwMDsKfQoKLm1qci1tZnYtbWVkaWEtcHJvZ3Jlc3MgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAxMHB4OwogICAgbGVmdDogMTBweDsKICAgIHotaW5kZXg6IDY7CiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOwogICAgcGFkZGluZzogNXB4IDlweDsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkCiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1ib3JkZXIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCkpIDg4JSwgdHJhbnNwYXJlbnQpOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHJnYmEoNSwgOCwgMTQsIDAuODYpIDg2JSwgdmFyKC0tbWpyLXN1cmZhY2UtMCwgIzExMSkgMTQlKTsKICAgIGNvbG9yOiB2YXIoLS1jb250ZW50LWZnLCAjZjVmN2ZhKTsKICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjI4KTsKICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpOwogICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgb3BhY2l0eTogMDsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTsKICAgIHRyYW5zaXRpb246CiAgICAgICAgb3BhY2l0eSAwLjE2cyBlYXNlLAogICAgICAgIHRyYW5zZm9ybSAwLjE2cyBlYXNlOwp9CgoubWpyLW1mdi1tZWRpYS1wcm9ncmVzcy5pcy12aXNpYmxlIHsKICAgIG9wYWNpdHk6IDE7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7Cn0KCi5tanItbWZ2LW1lZGlhLXByb2dyZXNzLmlzLWVycm9yIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdGF0dXMtZXJyb3IsICNmZjVjN2EpIDcyJSwgdHJhbnNwYXJlbnQpOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHJnYmEoNjAsIDEwLCAxOCwgMC45KSA4MiUsIHZhcigtLW1qci1zdXJmYWNlLTAsICMxMTEpIDE4JSk7Cn0KCi5tanItbWZ2LW1lZGlhLXByb2dyZXNzLXRleHQgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7Cn0KCi8qIC0tIFdvcmtmbG93IFNpZGViYXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLm1qci13cy1zaWRlYmFyIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgd2lkdGg6IDA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgYmFja2dyb3VuZDogdmFyKC0tbWpyLXN1cmZhY2UtMSwgIzJhMmEyYSk7CiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikpOwogICAgdHJhbnNpdGlvbjogd2lkdGggMC4ycyBlYXNlOwogICAgZmxleC1zaHJpbms6IDA7Cn0KCi5tanItd3Mtc2lkZWJhci5vcGVuIHsKICAgIHdpZHRoOiAyNjBweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBtaW4td2lkdGg6IDE4MHB4OwogICAgbWF4LXdpZHRoOiA2NSU7CiAgICB0cmFuc2l0aW9uOiBub25lOwp9CgoubWpyLXdzLXNpZGViYXItaGVhZGVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSk7CiAgICBmbGV4LXNocmluazogMDsKICAgIG1pbi1oZWlnaHQ6IDM0cHg7Cn0KLm1qci13cy1zaWRlYmFyLXRpdGxlIHsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgb3BhY2l0eTogMC42NTsKfQoubWpyLXdzLXNpZGViYXItYm9keSB7CiAgICBmbGV4OiAxOwogICAgbWluLWhlaWdodDogMDsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICBwYWRkaW5nOiAwOwp9Ci5tanItd3Mtc2lkZWJhci1lbXB0eSB7CiAgICBwYWRkaW5nOiAyNHB4IDE2cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjU7Cn0KCi8qIC0tIFRhYiBiYXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi5tanItd3MtdGFiLWJhciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1zaHJpbms6IDA7CiAgICBnYXA6IDJweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSk7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTgpOwp9CgoubWpyLXdzLXRhYiB7CiAgICBmbGV4OiAxOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGdhcDogNXB4OwogICAgcGFkZGluZzogNHB4IDhweDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSk7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjoKICAgICAgICBiYWNrZ3JvdW5kIDAuMTVzLAogICAgICAgIGNvbG9yIDAuMTVzOwp9CgoubWpyLXdzLXRhYjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDcpOwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7Cn0KCi5tanItd3MtdGFiLmlzLWFjdGl2ZSB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDk5LCAxNTUsIDI1NSwgMC4xNSk7CiAgICBjb2xvcjogIzYzOWJmZjsKfQoKLyogLS0gTm9kZXMgdGFiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLm1qci13cy1ub2Rlcy10YWIgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBmbGV4OiAxOwogICAgbWluLWhlaWdodDogMDsKICAgIG92ZXJmbG93OiBoaWRkZW47Cn0KCi8qIEdyYXBoIE1hcCB0YWIgKi8KLm1qci13Z20gewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBtaW4taGVpZ2h0OiAxMDAlOwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Mik7Cn0KCi5tanItd2dtLW1hcC13cmFwIHsKICAgIGhlaWdodDogMTkwcHg7CiAgICBtaW4taGVpZ2h0OiAxNTBweDsKICAgIG1hcmdpbjogOHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMjIpOwp9CgoubWpyLXdnbS1wcmV2aWV3IHsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zMik7Cn0KCi5tanItd2dtLXByZXZpZXcgLm1qci1tZnYtbWVkaWEsCi5tanItd2dtLXByZXZpZXcgLm1qci1tZnYtcGxheWVyLWhvc3QsCi5tanItd2dtLXByZXZpZXcgLm1qci1tb2RlbDNkLWhvc3QsCi5tanItd2dtLXByZXZpZXctbWVkaWEgewogICAgbWF4LXdpZHRoOiAxMDAlOwogICAgbWF4LWhlaWdodDogMTAwJTsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgb2JqZWN0LWZpdDogY29udGFpbjsKfQoKLm1qci13Z20tcHJldmlldy1lbXB0eSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM0KTsKICAgIGZvbnQtc2l6ZTogMTFweDsKfQoKLm1qci13Z20tY2FudmFzIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBjdXJzb3I6IGdyYWI7CiAgICB0b3VjaC1hY3Rpb246IG5vbmU7Cn0KCi5tanItd2dtLWNhbnZhczphY3RpdmUgewogICAgY3Vyc29yOiBncmFiYmluZzsKfQoKLm1qci13Z20tLWxhcmdlIHsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgbWluLWhlaWdodDogMDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xOCk7Cn0KCi5tanItd2dtLS1sYXJnZSAubWpyLXdnbS1tYXAtd3JhcCB7CiAgICBmbGV4OiAxOwogICAgaGVpZ2h0OiBhdXRvOwogICAgbWluLWhlaWdodDogMDsKICAgIG1hcmdpbjogMDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci1yYWRpdXM6IDA7Cn0KCi5tanItd2dtLS1sYXJnZSAubWpyLXdnbS1zdGF0dXMgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogMTBweDsKICAgIHRvcDogMTBweDsKICAgIHotaW5kZXg6IDI7CiAgICBtYXgtd2lkdGg6IG1pbig0MjBweCwgY2FsYygxMDAlIC0gMjBweCkpOwogICAgcGFkZGluZzogNXB4IDhweDsKICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNTIpOwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NCk7CiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTsKfQoKLm1qci13Z20tdG9vbGJhciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAxMHB4OwogICAgdG9wOiA0NnB4OwogICAgei1pbmRleDogMjsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgZ2FwOiA2cHg7CiAgICBtYXgtd2lkdGg6IG1pbig0MjBweCwgY2FsYygxMDAlIC0gMjBweCkpOwp9CgoubWpyLXdnbS1tb2RlIHsKICAgIG1pbi1oZWlnaHQ6IDI2cHg7CiAgICBwYWRkaW5nOiAzcHggOHB4OwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpOwogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpOwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43Mik7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi5tanItd2dtLW1vZGU6aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OSwgMTgzLCAyNTUsIDAuNDUpOwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTsKfQoKLm1qci13Z20tbW9kZS5pcy1hY3RpdmUgewogICAgYm9yZGVyLWNvbG9yOiByZ2JhKDEyNCwgMTg2LCAyNTUsIDAuNjIpOwogICAgYmFja2dyb3VuZDogcmdiYSg3OSwgMTIzLCAyMTQsIDAuMjYpOwogICAgY29sb3I6IHJnYmEoMjM1LCAyNDUsIDI1NSwgMC45Nik7Cn0KCi5tanItd2dtLS1sYXJnZSAubWpyLXdnbS1kZXRhaWxzIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHJpZ2h0OiAxMHB4OwogICAgdG9wOiAxMHB4OwogICAgYm90dG9tOiAxMHB4OwogICAgei1pbmRleDogMjsKICAgIHdpZHRoOiBtaW4oMzIwcHgsIDM4JSk7CiAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgcGFkZGluZzogMTBweDsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE4LCAyMCwgMjYsIDAuODQpOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpOwp9CgoubWpyLXdnbS0tbGFyZ2UgLm1qci13Z20tYWN0aW9uIHsKICAgIG1pbi1oZWlnaHQ6IDMwcHg7Cn0KCi5tanItd2dtLS1sYXJnZSAubWpyLXdnbS1wYXJhbSB7CiAgICBmb250LXNpemU6IDExcHg7Cn0KCi5tanItd2dtLXN0YXR1cyB7CiAgICBwYWRkaW5nOiAwIDEwcHggOHB4OwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40Mik7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBsaW5lLWhlaWdodDogMS4zNTsKfQoKLm1qci13Z20tZGV0YWlscyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogNnB4OwogICAgcGFkZGluZzogMCA4cHggMTBweDsKfQoKLm1qci13Z20tbm9kZS10aXRsZSB7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7Cn0KCi5tanItd2dtLW5vZGUtbWV0YSB7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbWFyZ2luLXRvcDogLTRweDsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDIpOwogICAgZm9udC1zaXplOiAxMHB4Owp9CgoubWpyLXdnbS1icmVhZGNydW1iIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA1cHg7CiAgICBtaW4td2lkdGg6IDA7CiAgICBtYXJnaW46IC0ycHggMCAycHg7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU4KTsKICAgIGZvbnQtc2l6ZTogMTFweDsKfQoKLm1qci13Z20tYnJlYWRjcnVtYi1pdGVtIHsKICAgIG1pbi13aWR0aDogMDsKICAgIG1heC13aWR0aDogMTQwcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9CgoubWpyLXdnbS1icmVhZGNydW1iLXNlcCB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMyKTsKfQoKLm1qci13Z20tYWN0aW9ucyB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICBnYXA6IDRweDsKfQoKLm1qci13Z20tYWN0aW9uIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA3cHg7CiAgICBtaW4taGVpZ2h0OiAyOHB4OwogICAgcGFkZGluZzogNXB4IDhweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpOwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43Nik7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi5tanItd2dtLWFjdGlvbjpob3ZlciB7CiAgICBib3JkZXItY29sb3I6IHJnYmEoOTksIDE1NSwgMjU1LCAwLjQ1KTsKICAgIGJhY2tncm91bmQ6IHJnYmEoOTksIDE1NSwgMjU1LCAwLjEyKTsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTIpOwp9CgoubWpyLXdnbS1hY3Rpb24uaXMtb2sgewogICAgYm9yZGVyLWNvbG9yOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjU1KTsKICAgIGNvbG9yOiByZ2JhKDE5MCwgMjU1LCAxOTYsIDAuOTYpOwp9CgoubWpyLXdnbS1wYXJhbXMgewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdhcDogNHB4OwogICAgbWFyZ2luLXRvcDogMnB4Owp9CgoubWpyLXdnbS1wYXJhbSB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoNjRweCwgMC40MmZyKSBtaW5tYXgoMCwgMWZyKTsKICAgIGdhcDogOHB4OwogICAgcGFkZGluZzogNXB4IDdweDsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xOCk7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBsaW5lLWhlaWdodDogMS4zNTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgdHJhbnNpdGlvbjoKICAgICAgICBiYWNrZ3JvdW5kIDEyMG1zIGVhc2UsCiAgICAgICAgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2U7Cn0KCi5tanItd2dtLXBhcmFtOmhvdmVyLAoubWpyLXdnbS1wYXJhbTpmb2N1cy12aXNpYmxlIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7CiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7CiAgICBvdXRsaW5lOiBub25lOwp9CgoubWpyLXdnbS1wYXJhbS5pcy1vayB7CiAgICBib3JkZXItY29sb3I6IHJnYmEoNzksIDIxMCwgMTI1LCAwLjcpOwogICAgYmFja2dyb3VuZDogcmdiYSg3OSwgMjEwLCAxMjUsIDAuMTYpOwp9CgoubWpyLXdnbS1wYXJhbS5pcy1lcnJvciB7CiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCA5MCwgOTAsIDAuNyk7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgOTAsIDkwLCAwLjE2KTsKfQoKLm1qci13Z20tcGFyYW0ta2V5IHsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ4KTsKfQoKLm1qci13Z20tcGFyYW0tdmFsdWUgewogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODIpOwp9CgoubWpyLXdnbS1ub2RlLXZpc3VhbCB7CiAgICAtLW1qci13Z20tbm9kZS1hY2NlbnQ6IHJnYmEoMTE1LCAxNTUsIDI1NSwgMC44OCk7CiAgICAtLW1qci13Z20tbm9kZS1hY2NlbnQtc29mdDogcmdiYSgxMTUsIDE1NSwgMjU1LCAwLjIyKTsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBnYXA6IDhweDsKICAgIG1hcmdpbi10b3A6IDJweDsKICAgIHBhZGRpbmc6IDhweDsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItd2dtLW5vZGUtYWNjZW50KSAzNCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSk7CiAgICBib3gtc2hhZG93OgogICAgICAgIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSwKICAgICAgICAwIDEwcHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMjQpOwogICAgYmFja2dyb3VuZDoKICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXdnbS1ub2RlLWFjY2VudC1zb2Z0KSAxMDAlLCB0cmFuc3BhcmVudCksIHJnYmEoNDQsIDU2LCA4OCwgMC4yKSksCiAgICAgICAgcmdiYSgxMywgMTYsIDI0LCAwLjg1KTsKfQoKLm1qci13Z20tbm9kZS12aXN1YWw6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiIjsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgaGVpZ2h0OiAycHg7CiAgICBtYXJnaW46IC04cHggLThweCA2cHg7CiAgICBib3JkZXItcmFkaXVzOiA2cHggNnB4IDAgMDsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tbWpyLXdnbS1ub2RlLWFjY2VudCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikpOwp9CgoubWpyLXdnbS1ub2RlLXZpc3VhbC5pcy1tb2RlbCB7CiAgICAtLW1qci13Z20tbm9kZS1hY2NlbnQ6IHJnYmEoMTI0LCAxODYsIDI1NSwgMC45KTsKICAgIC0tbWpyLXdnbS1ub2RlLWFjY2VudC1zb2Z0OiByZ2JhKDcwLCAxMjMsIDE4MSwgMC4zNCk7Cn0KCi5tanItd2dtLW5vZGUtdmlzdWFsLmlzLXNhbXBsZXIgewogICAgLS1tanItd2dtLW5vZGUtYWNjZW50OiByZ2JhKDE0MywgMjI4LCAxNjcsIDAuOSk7CiAgICAtLW1qci13Z20tbm9kZS1hY2NlbnQtc29mdDogcmdiYSg2NCwgMTMzLCA4OCwgMC4zNCk7Cn0KCi5tanItd2dtLW5vZGUtdmlzdWFsLmlzLXRleHQgewogICAgLS1tanItd2dtLW5vZGUtYWNjZW50OiByZ2JhKDI1NSwgMTkyLCAxMTQsIDAuOSk7CiAgICAtLW1qci13Z20tbm9kZS1hY2NlbnQtc29mdDogcmdiYSgxNTQsIDEwMiwgNDksIDAuMzQpOwp9CgoubWpyLXdnbS1ub2RlLXZpc3VhbC5pcy1tZWRpYSB7CiAgICAtLW1qci13Z20tbm9kZS1hY2NlbnQ6IHJnYmEoMTU0LCAxNzAsIDI1NSwgMC45KTsKICAgIC0tbWpyLXdnbS1ub2RlLWFjY2VudC1zb2Z0OiByZ2JhKDgzLCA5MywgMTY1LCAwLjM0KTsKfQoKLm1qci13Z20tbm9kZS12aXN1YWwuaXMtY29udHJvbCB7CiAgICAtLW1qci13Z20tbm9kZS1hY2NlbnQ6IHJnYmEoMjU1LCAxMzksIDE2OSwgMC45KTsKICAgIC0tbWpyLXdnbS1ub2RlLWFjY2VudC1zb2Z0OiByZ2JhKDE0NSwgNzAsIDk1LCAwLjM0KTsKfQoKLm1qci13Z20tbm9kZS12aXN1YWwuaXMtbG9naWMgewogICAgLS1tanItd2dtLW5vZGUtYWNjZW50OiByZ2JhKDE4OCwgMTY4LCAyNTUsIDAuOSk7CiAgICAtLW1qci13Z20tbm9kZS1hY2NlbnQtc29mdDogcmdiYSgxMDUsIDg2LCAxNTMsIDAuMzQpOwp9CgoubWpyLXdnbS1ub2RlLXZpc3VhbC1oZWFkZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBnYXA6IDhweDsKICAgIHBhZGRpbmctYm90dG9tOiA2cHg7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci13Z20tbm9kZS1hY2NlbnQpIDI1JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KSk7Cn0KCi5tanItd2dtLW5vZGUtdmlzdWFsLXR5cGUgewogICAgZm9udC1zaXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiByZ2JhKDIzNiwgMjQ0LCAyNTUsIDAuOTQpOwogICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjM1KTsKfQoKLm1qci13Z20tbm9kZS12aXN1YWwtaWQgewogICAgZm9udC1zaXplOiAxMHB4OwogICAgY29sb3I6IHJnYmEoMTk0LCAyMTMsIDI1NSwgMC43OCk7Cn0KCi5tanItd2dtLW5vZGUtcG9ydHMgewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgIGdhcDogOHB4Owp9CgoubWpyLXdnbS1ub2RlLXBvcnRzLWNvbCB7CiAgICBtaW4td2lkdGg6IDA7Cn0KCi5tanItd2dtLW5vZGUtcG9ydHMtdGl0bGUgewogICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgZm9udC1zaXplOiAxMHB4OwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ1KTsKfQoKLm1qci13Z20tbm9kZS1wb3J0cy1saXN0IHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBnYXA6IDNweDsKfQoKLm1qci13Z20tbm9kZS1wb3J0LAoubWpyLXdnbS1ub2RlLXBvcnQtZW1wdHkgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDZweDsKICAgIG1pbi1oZWlnaHQ6IDE4cHg7CiAgICBwYWRkaW5nOiAycHggNnB4OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yNCk7Cn0KCi5tanItd2dtLW5vZGUtcG9ydC1lbXB0eSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI2KTsKfQoKLm1qci13Z20tbm9kZS1wb3J0LWRvdCB7CiAgICB3aWR0aDogOHB4OwogICAgaGVpZ2h0OiA4cHg7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIGZsZXg6IDAgMCBhdXRvOwogICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCkgaW5zZXQ7Cn0KCi5tanItd2dtLW5vZGUtcG9ydC1kb3QuaXMtaW4gewogICAgYmFja2dyb3VuZDogcmdiYSgxMzUsIDE5NiwgMjU1LCAwLjkpOwp9CgoubWpyLXdnbS1ub2RlLXBvcnQtZG90LmlzLW91dCB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0NCwgMjM4LCAxNzQsIDAuOSk7Cn0KCi5tanItd2dtLW5vZGUtcG9ydC1uYW1lIHsKICAgIGZsZXg6IDE7CiAgICBtaW4td2lkdGg6IDA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgZm9udC1zaXplOiAxMHB4OwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43OCk7Cn0KCi5tanItd2dtLW5vZGUtcG9ydC10eXBlIHsKICAgIGZsZXg6IDAgMCBhdXRvOwogICAgbWF4LXdpZHRoOiA0NSU7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgZm9udC1zaXplOiA5cHg7CiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIHBhZGRpbmc6IDFweCA1cHg7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpOwogICAgY29sb3I6IHJnYmEoMjI0LCAyMzYsIDI1NSwgMC45KTsKfQoKLm1qci13Z20tbm9kZS13aWRnZXRzIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBnYXA6IDRweDsKfQoKLm1qci13Z20tbm9kZS13aWRnZXRzLXRpdGxlIHsKICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSk7Cn0KCi5tanItd2dtLW5vZGUtd2lkZ2V0LAoubWpyLXdnbS1ub2RlLXdpZGdldC1lbXB0eSB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoNzBweCwgMC40MmZyKSBtaW5tYXgoMCwgMWZyKTsKICAgIGdhcDogOHB4OwogICAgcGFkZGluZzogNHB4IDZweDsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMik7Cn0KCi5tanItd2dtLW5vZGUtd2lkZ2V0IHsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246CiAgICAgICAgYmFja2dyb3VuZCAxMjBtcyBlYXNlLAogICAgICAgIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlOwp9CgoubWpyLXdnbS1ub2RlLXdpZGdldDpob3ZlciwKLm1qci13Z20tbm9kZS13aWRnZXQ6Zm9jdXMtdmlzaWJsZSB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDkpOwogICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7CiAgICBvdXRsaW5lOiBub25lOwp9CgoubWpyLXdnbS1ub2RlLXdpZGdldC5pcy1vayB7CiAgICBib3JkZXItY29sb3I6IHJnYmEoNzksIDIxMCwgMTI1LCAwLjcpOwogICAgYmFja2dyb3VuZDogcmdiYSg3OSwgMjEwLCAxMjUsIDAuMTYpOwp9CgoubWpyLXdnbS1ub2RlLXdpZGdldC5pcy1lcnJvciB7CiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCA5MCwgOTAsIDAuNyk7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgOTAsIDkwLCAwLjE2KTsKfQoKLm1qci13Z20tbm9kZS13aWRnZXQtZW1wdHkgewogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM0KTsKfQoKLm1qci13Z20tbm9kZS13aWRnZXQta2V5IHsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUyKTsKfQoKLm1qci13Z20tbm9kZS13aWRnZXQtdmFsdWUgewogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODgpOwp9CgoubWpyLXdnbS1ub2RlLXdpZGdldC5pcy1tdWx0aWxpbmUgewogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICBhbGlnbi1pdGVtczogc3RhcnQ7CiAgICBnYXA6IDRweDsKfQoKLm1qci13Z20tbm9kZS13aWRnZXQuaXMtbXVsdGlsaW5lIC5tanItd2dtLW5vZGUtd2lkZ2V0LWtleSB7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9CgoubWpyLXdnbS1ub2RlLXdpZGdldC5pcy1tdWx0aWxpbmUgLm1qci13Z20tbm9kZS13aWRnZXQtdmFsdWUgewogICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlOwogICAgbGluZS1oZWlnaHQ6IDEuMzU7CiAgICBtYXgtaGVpZ2h0OiA5LjJlbTsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICBwYWRkaW5nLXJpZ2h0OiAycHg7Cn0KCi5tanItd2dtLW5vZGUtd2lkZ2V0LmlzLW11bHRpbGluZS5pcy10ZXh0LWZpZWxkIC5tanItd2dtLW5vZGUtd2lkZ2V0LXZhbHVlIHsKICAgIG1heC1oZWlnaHQ6IDE2ZW07CiAgICBsaW5lLWhlaWdodDogMS40Owp9CgoubWpyLXdnbS1ub2RlLXdpZGdldC1tb3JlIHsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDYpOwogICAgdGV4dC1hbGlnbjogcmlnaHQ7Cn0KCkBtZWRpYSAobWF4LXdpZHRoOiA4MjBweCkgewogICAgLm1qci13Z20tLWxhcmdlIC5tanItd2dtLWRldGFpbHMgewogICAgICAgIHdpZHRoOiBtaW4oMzgwcHgsIGNhbGMoMTAwJSAtIDIwcHgpKTsKICAgIH0KCiAgICAubWpyLXdnbS1ub2RlLXBvcnRzIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgIH0KfQoKLm1qci13cy1zZWFyY2gtd3JhcCB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGZsZXgtc2hyaW5rOiAwOwogICAgcGFkZGluZzogNnB4IDhweDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1tanItYm9yZGVyLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpKTsKfQoKLm1qci13cy1zZWFyY2gtaWNvbiB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAxNnB4OwogICAgZm9udC1zaXplOiAxMXB4OwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwp9CgoubWpyLXdzLXNlYXJjaCB7CiAgICBmbGV4OiAxOwogICAgcGFkZGluZzogNHB4IDI4cHggNHB4IDI2cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzUpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgb3V0bGluZTogbm9uZTsKfQoKLm1qci13cy1zZWFyY2g6OnBsYWNlaG9sZGVyIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjgpOwp9CgoubWpyLXdzLXNlYXJjaDpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6IHJnYmEoOTksIDE1NSwgMjU1LCAwLjUpOwp9CgoubWpyLXdzLXNlYXJjaC1jbGVhciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICByaWdodDogMTRweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICB3aWR0aDogMThweDsKICAgIGhlaWdodDogMThweDsKICAgIHBhZGRpbmc6IDA7CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7Cn0KCi5tanItd3Mtc2VhcmNoLWNsZWFyOmhvdmVyIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpOwp9CgoubWpyLXdzLW5vZGVzLWxpc3QgewogICAgZmxleDogMTsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICBwYWRkaW5nOiA0cHggMDsKfQoKLm1qci13cy1ub2RlLXJvdyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogNnB4OwogICAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEycHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTsKICAgIG1pbi1oZWlnaHQ6IDMycHg7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXM7Cn0KCi5tanItd3Mtbm9kZS1yb3c6aG92ZXIgewogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTsKfQoKLm1qci13cy1ub2RlLXJvdy10eXBlIHsKICAgIGZsZXg6IDE7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc4KTsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cn0KCi5tanItd3Mtbm9kZS1yb3ctdGl0bGUgewogICAgZm9udC1zaXplOiAxMHB4OwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICBtYXgtd2lkdGg6IDgwcHg7CiAgICBmbGV4LXNocmluazogMDsKfQoKLm1qci13cy1ub2RlLWxvY2F0ZSB7CiAgICBmbGV4LXNocmluazogMDsKICAgIHdpZHRoOiAyMnB4OwogICAgaGVpZ2h0OiAyMnB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIHBhZGRpbmc6IDA7CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNpdGlvbjoKICAgICAgICBvcGFjaXR5IDAuMXMsCiAgICAgICAgY29sb3IgMC4xcywKICAgICAgICBiYWNrZ3JvdW5kIDAuMXM7Cn0KCi5tanItd3Mtbm9kZS1yb3c6aG92ZXIgLm1qci13cy1ub2RlLWxvY2F0ZSB7CiAgICBvcGFjaXR5OiAxOwp9CgoubWpyLXdzLW5vZGUtbG9jYXRlOmhvdmVyIHsKICAgIGNvbG9yOiAjNjM5YmZmOwogICAgYmFja2dyb3VuZDogcmdiYSg5OSwgMTU1LCAyNTUsIDAuMTUpOwp9CgovKiAtLSBOb2RlIHNlY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoubWpyLXdzLXRyZWUtaXRlbSB7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSk7Cn0KLm1qci13cy10cmVlLWl0ZW0gPiAubWpyLXdzLW5vZGUgewogICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKfQoubWpyLXdzLXRyZWUtaXRlbS0tc3ViZ3JhcGggewogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQsICM1YjhhZjApIDQlLCB0cmFuc3BhcmVudCA5NiUpOwp9Ci5tanItd3Mtbm9kZSB7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSk7Cn0KLyogU3VidGxlIGhpZ2hsaWdodCB3aGVuIHRoaXMgbm9kZSBtYXRjaGVzIHRoZSBjdXJyZW50IGdyYXBoIHNlbGVjdGlvbi4gKi8KLm1qci13cy1ub2RlLmlzLXNlbGVjdGVkLWZyb20tZ3JhcGggewogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDIxMCwgOTAsIDAuMDgpOwogICAgYm94LXNoYWRvdzogaW5zZXQgMnB4IDAgMCAwIHJnYmEoMjU1LCAyMTAsIDkwLCAwLjc1KTsKfQoubWpyLXdzLW5vZGUuaXMtc2VsZWN0ZWQtZnJvbS1ncmFwaCAubWpyLXdzLW5vZGUtaGVhZGVyIHsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCAjZmZkNDVhIDE4JSwgdmFyKC0tbWpyLXN1cmZhY2UtMSwgIzJhMmEyYSkgODIlKTsKfQoubWpyLXdzLW5vZGUuaXMtc2VsZWN0ZWQtZnJvbS1ncmFwaCAubWpyLXdzLW5vZGUtdHlwZSB7CiAgICBjb2xvcjogI2ZmZDQ1YTsKfQoubWpyLXdzLW5vZGUuaXMtc2VsZWN0ZWQtZnJvbS1ncmFwaCAubWpyLXdzLW5vZGUtdGl0bGUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyMjQsIDEzMCwgMC44OCk7Cn0KLm1qci13cy1ub2RlLmlzLXNlbGVjdGVkLWZyb20tZ3JhcGggLm1qci13cy1ub2RlLXRvZ2dsZSwKLm1qci13cy1ub2RlLmlzLXNlbGVjdGVkLWZyb20tZ3JhcGggLm1qci13cy1sb2NhdGUsCi5tanItd3Mtbm9kZS5pcy1zZWxlY3RlZC1mcm9tLWdyYXBoIC5tanItd3Mtbm9kZS1raW5kIHsKICAgIGNvbG9yOiAjZmZkNDVhOwp9Ci5tanItd3Mtc2lkZWJhci1yZXNpemVyIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMDsKICAgIGJvdHRvbTogMDsKICAgIHdpZHRoOiAxNHB4OwogICAgei1pbmRleDogMjsKICAgIGN1cnNvcjogZXctcmVzaXplOwogICAgcG9pbnRlci1ldmVudHM6IGF1dG87Cn0KCi5tanItd3Mtc2lkZWJhci1yZXNpemVyOjpiZWZvcmUgewogICAgY29udGVudDogIiI7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDUwJTsKICAgIGxlZnQ6IDUwJTsKICAgIHdpZHRoOiA0cHg7CiAgICBoZWlnaHQ6IDU2cHg7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTsKICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpOwogICAgb3BhY2l0eTogMDsKICAgIHRyYW5zaXRpb246CiAgICAgICAgb3BhY2l0eSAwLjE1cyBlYXNlLAogICAgICAgIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKfQoKLm1qci13cy1zaWRlYmFyLm9wZW46aG92ZXIgLm1qci13cy1zaWRlYmFyLXJlc2l6ZXI6OmJlZm9yZSwKLm1qci13cy1zaWRlYmFyLmlzLXJlc2l6aW5nIC5tanItd3Mtc2lkZWJhci1yZXNpemVyOjpiZWZvcmUsCi5tanItd3Mtc2lkZWJhci1yZXNpemVyLmlzLWRyYWdnaW5nOjpiZWZvcmUgewogICAgb3BhY2l0eTogMTsKfQoKLm1qci13cy1zaWRlYmFyLmlzLXJlc2l6aW5nIC5tanItd3Mtc2lkZWJhci1yZXNpemVyOjpiZWZvcmUsCi5tanItd3Mtc2lkZWJhci1yZXNpemVyOmhvdmVyOjpiZWZvcmUsCi5tanItd3Mtc2lkZWJhci1yZXNpemVyLmlzLWRyYWdnaW5nOjpiZWZvcmUgewogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM0KTsKfQoKLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9InJpZ2h0Il0gLm1qci13cy1zaWRlYmFyLXJlc2l6ZXIgewogICAgcmlnaHQ6IDA7Cn0KCi5tanItbWZ2LWNvbnRlbnQtd3JhcHBlcltkYXRhLXNpZGViYXItcG9zPSJsZWZ0Il0gLm1qci13cy1zaWRlYmFyLXJlc2l6ZXIgewogICAgbGVmdDogMDsKfQoKLm1qci1tZnYtY29udGVudC13cmFwcGVyW2RhdGEtc2lkZWJhci1wb3M9ImJvdHRvbSJdIC5tanItd3Mtc2lkZWJhci1yZXNpemVyIHsKICAgIGRpc3BsYXk6IG5vbmU7Cn0KLm1qci13cy1ub2RlLWhlYWRlciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogOHB4OwogICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoCiAgICAgICAgaW4gc3JnYiwKICAgICAgICB2YXIoLS1tanItc3VyZmFjZS0wLCAjMWUxZTFlKSA0MCUsCiAgICAgICAgdmFyKC0tbWpyLXN1cmZhY2UtMSwgIzJhMmEyYSkgNjAlCiAgICApOwogICAgY3Vyc29yOiBkZWZhdWx0OwogICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJzIGVhc2U7Cn0KLm1qci13cy1ub2RlLmlzLWNvbGxhcHNpYmxlIC5tanItd3Mtbm9kZS1oZWFkZXIgewogICAgY3Vyc29yOiBwb2ludGVyOwp9Ci5tanItd3Mtbm9kZS5pcy1jb2xsYXBzaWJsZSAubWpyLXdzLW5vZGUtaGVhZGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peCgKICAgICAgICBpbiBzcmdiLAogICAgICAgIHZhcigtLW1qci1zdXJmYWNlLTAsICMxZTFlMWUpIDI4JSwKICAgICAgICB2YXIoLS1tanItc3VyZmFjZS0xLCAjMmEyYTJhKSA3MiUKICAgICk7Cn0KLm1qci13cy1ub2RlLmlzLWNvbGxhcHNpYmxlLmlzLWNvbGxhcHNlZCAubWpyLXdzLW5vZGUtaGVhZGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peCgKICAgICAgICBpbiBzcmdiLAogICAgICAgIHZhcigtLW1qci1hY2NlbnQsICM1YjhhZjApIDglLAogICAgICAgIHZhcigtLW1qci1zdXJmYWNlLTEsICMyYTJhMmEpIDkyJQogICAgKTsKfQoubWpyLXdzLW5vZGUtdG9nZ2xlIHsKICAgIGZsZXg6IDAgMCBhdXRvOwp9Ci5tanItd3Mtbm9kZS10aXRsZS13cmFwIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4OiAxOwogICAgbWluLXdpZHRoOiAwOwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogMXB4Owp9Ci5tanItd3Mtbm9kZS10eXBlIHsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBjb2xvcjogdmFyKC0tY29udGVudC1mZywgI2RkZCk7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwp9Ci5tanItd3Mtbm9kZS10aXRsZSB7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ4KTsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cn0KLm1qci13cy1ub2RlLWtpbmQgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA0cHg7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIG1heC13aWR0aDogMTEwcHg7CiAgICBwYWRkaW5nOiAycHggNnB4OwogICAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQsICM1YjhhZjApIDM4JSwgdHJhbnNwYXJlbnQgNjIlKTsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQsICM1YjhhZjApIDEyJSwgdHJhbnNwYXJlbnQgODglKTsKICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCwgIzViOGFmMCkgNzglLCAjZmZmZmZmIDIyJSk7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLm1qci13cy1ub2RlLWtpbmQgLnBpIHsKICAgIGZvbnQtc2l6ZTogMTBweDsKfQoubWpyLXdzLW5vZGUta2luZC1jb3VudCB7CiAgICBtaW4td2lkdGg6IDE0cHg7CiAgICBwYWRkaW5nOiAwIDNweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODIpOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwp9Ci5tanItd3Mtbm9kZS5pcy1jb2xsYXBzZWQgLm1qci13cy1ub2RlLWJvZHkgewogICAgZGlzcGxheTogbm9uZTsKfQoubWpyLXdzLW5vZGUtYm9keSB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogNHB4OwogICAgcGFkZGluZzogNnB4IDEwcHg7Cn0KLm1qci13cy1ub2RlLWVtcHR5IHsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7CiAgICBwYWRkaW5nOiA0cHggMDsKfQoKLyogLS0gTmVzdGVkIG5vZGVzIChpbnNpZGUgc3ViZ3JhcGhzKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoubWpyLXdzLW5vZGUtLW5lc3RlZCB7CiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHJnYmEoOTEsIDEzOCwgMjQwLCAwLjM1KTsKfQoubWpyLXdzLW5vZGUtLW5lc3RlZCAubWpyLXdzLW5vZGUtaGVhZGVyIHsKICAgIHBhZGRpbmctbGVmdDogMTZweDsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peCgKICAgICAgICBpbiBzcmdiLAogICAgICAgIHZhcigtLW1qci1hY2NlbnQsICM1YjhhZjApIDUlLAogICAgICAgIHZhcigtLW1qci1zdXJmYWNlLTEsICMyYTJhMmEpIDk1JQogICAgKTsKfQoubWpyLXdzLW5vZGUtLW5lc3RlZC5pcy1jb2xsYXBzaWJsZSAubWpyLXdzLW5vZGUtaGVhZGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peCgKICAgICAgICBpbiBzcmdiLAogICAgICAgIHZhcigtLW1qci1hY2NlbnQsICM1YjhhZjApIDEwJSwKICAgICAgICB2YXIoLS1tanItc3VyZmFjZS0xLCAjMmEyYTJhKSA5MCUKICAgICk7Cn0KCi8qIC0tIFN1YmdyYXBoIGNoaWxkcmVuIGdyb3VwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi5tanItd3MtY2hpbGRyZW4tdG9nZ2xlIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA2cHg7CiAgICB3aWR0aDogMTAwJTsKICAgIHBhZGRpbmc6IDVweCAxMHB4IDVweCAyMHB4OwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KAogICAgICAgIGluIHNyZ2IsCiAgICAgICAgdmFyKC0tbWpyLWFjY2VudCwgIzViOGFmMCkgNiUsCiAgICAgICAgdmFyKC0tbWpyLXN1cmZhY2UtMCwgIzFlMWUxZSkgOTQlCiAgICApOwogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikpOwogICAgY29sb3I6IHZhcigtLW1qci1hY2NlbnQsICM1YjhhZjApOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIG9wYWNpdHk6IDAuODsKICAgIHRyYW5zaXRpb246CiAgICAgICAgb3BhY2l0eSAwLjFzIGVhc2UsCiAgICAgICAgYmFja2dyb3VuZCAwLjFzIGVhc2U7Cn0KLm1qci13cy1jaGlsZHJlbi10b2dnbGUtLW5lc3RlZCB7CiAgICBwYWRkaW5nLWxlZnQ6IDI4cHg7Cn0KLm1qci13cy1jaGlsZHJlbi10b2dnbGU6aG92ZXIgewogICAgb3BhY2l0eTogMTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peCgKICAgICAgICBpbiBzcmdiLAogICAgICAgIHZhcigtLW1qci1hY2NlbnQsICM1YjhhZjApIDEyJSwKICAgICAgICB2YXIoLS1tanItc3VyZmFjZS0wLCAjMWUxZTFlKSA4OCUKICAgICk7Cn0KLm1qci13cy1jaGlsZHJlbi10b2dnbGVbYXJpYS1leHBhbmRlZD0idHJ1ZSJdIHsKICAgIG9wYWNpdHk6IDE7Cn0KLm1qci13cy1jaGlsZHJlbiB7CiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHJnYmEoOTEsIDEzOCwgMjQwLCAwLjI1KTsKICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICBwYWRkaW5nLWxlZnQ6IDZweDsKfQoKLm1qci13cy13aWRnZXQtcm93IHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIGdhcDogOHB4Owp9Ci5tanItd3Mtd2lkZ2V0LXJvdy0tYmxvY2sgewogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogMnB4Owp9Ci5tanItd3Mtd2lkZ2V0LXJvdy0tYmxvY2sgLm1qci13cy13aWRnZXQtbGFiZWwgewogICAgZmxleDogbm9uZTsKICAgIHBhZGRpbmctdG9wOiAwOwp9Ci5tanItd3Mtd2lkZ2V0LXJvdy0tYmxvY2sgLm1qci13cy13aWRnZXQtaW5wdXQgewogICAgd2lkdGg6IDEwMCU7Cn0KLm1qci13cy13aWRnZXQtbGFiZWwgewogICAgZmxleDogMCAwIDgwcHg7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBjb2xvcjogdmFyKC0tZGVzY3JpcC10ZXh0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTUpKTsKICAgIHBhZGRpbmctdG9wOiA1cHg7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwp9Ci5tanItd3Mtd2lkZ2V0LWlucHV0IHsKICAgIGZsZXg6IDE7CiAgICBtaW4td2lkdGg6IDA7Cn0KLm1qci13cy1pbnB1dCB7CiAgICB3aWR0aDogMTAwJTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbWZ5LWlucHV0LWJnLCAjMjIyKTsKICAgIGNvbG9yOiB2YXIoLS1pbnB1dC10ZXh0LCAjZGRkKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1qci1ib3JkZXIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikpOwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgcGFkZGluZzogNHB4IDZweDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgb3V0bGluZTogbm9uZTsKICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxMjBtcyBlYXNlOwp9Ci5tanItd3MtaW5wdXQ6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tanItYWNjZW50LCAjNWZiM2ZmKTsKfQoubWpyLXdzLXRleHRhcmVhIHsKICAgIHJlc2l6ZTogbm9uZTsKICAgIG1pbi1oZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMS40OwogICAgb3ZlcmZsb3cteTogaGlkZGVuOwp9Ci5tanItd3MtdGV4dC13cmFwcGVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiAycHg7CiAgICBmbGV4OiAxOwogICAgbWluLXdpZHRoOiAwOwp9Ci5tanItd3MtdGV4dC13cmFwcGVyIC5tanItd3MtdGV4dGFyZWEgewogICAgd2lkdGg6IDEwMCU7Cn0KLm1qci13cy1leHBhbmQtYnRuIHsKICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kOwogICAgYmFja2dyb3VuZDogbm9uZTsKICAgIGJvcmRlcjogbm9uZTsKICAgIGNvbG9yOiB2YXIoLS1tanItYWNjZW50LCAjNWZiM2ZmKTsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHBhZGRpbmc6IDAgNHB4OwogICAgb3BhY2l0eTogMC44Owp9Ci5tanItd3MtZXhwYW5kLWJ0bjpob3ZlciB7CiAgICBvcGFjaXR5OiAxOwogICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Cn0KLm1qci13cy1yZWFkb25seSB7CiAgICBvcGFjaXR5OiAwLjU7CiAgICBjdXJzb3I6IGRlZmF1bHQ7Cn0KLm1qci13cy1jaGVja2JveCB7CiAgICBhY2NlbnQtY29sb3I6IHZhcigtLW1qci1hY2NlbnQsICM1ZmIzZmYpOwogICAgd2lkdGg6IDE2cHg7CiAgICBoZWlnaHQ6IDE2cHg7CiAgICBtYXJnaW4tdG9wOiA0cHg7Cn0KLm1qci13cy10b2dnbGUtbGFiZWwgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KCi8qIC0tIExvY2F0ZSBidXR0b24gaW5zaWRlIG5vZGUgaGVhZGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi5tanItd3MtbG9jYXRlIHsKICAgIHdpZHRoOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICBoZWlnaHQ6IDI0cHggIWltcG9ydGFudDsKICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgIG9wYWNpdHk6IDAuNTsKfQoubWpyLXdzLWxvY2F0ZTpob3ZlciB7CiAgICBvcGFjaXR5OiAxOwp9CgovKiAtLSBSdW4gYnV0dG9uIHN0YXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoubWpyLW1mdi1ydW4tY29udHJvbHMgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA0cHg7Cn0KLm1qci1tZnYtcnVuLWJ0biAucGkgewogICAgY29sb3I6IHZhcigtLW1qci1zdGF0dXMtc3VjY2VzcywgIzRjYWY1MCk7Cn0KLm1qci1tZnYtcnVuLWJ0bi5ydW5uaW5nIC5waSB7CiAgICBjb2xvcjogdmFyKC0tbWpyLW11dGVkLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjUpKTsKfQoubWpyLW1mdi1ydW4tYnRuLnN0b3BwaW5nIC5waSB7CiAgICBjb2xvcjogdmFyKC0tbWpyLXN0YXR1cy13YXJuaW5nLCAjZmZhNzI2KTsKfQoubWpyLW1mdi1ydW4tYnRuLmVycm9yIC5waSB7CiAgICBjb2xvcjogI2Y0NDMzNjsKfQoKLm1qci1tZnYtc3RvcC1idG4gLnBpIHsKICAgIGNvbG9yOiAjZWY1MzUwOwp9Ci5tanItbWZ2LXN0b3AtYnRuLmFjdGl2ZSAucGkgewogICAgY29sb3I6ICNmZjhhNjU7Cn0KLm1qci1tZnYtc3RvcC1idG4uc3RvcHBpbmcgLnBpIHsKICAgIGNvbG9yOiB2YXIoLS1tanItc3RhdHVzLXdhcm5pbmcsICNmZmE3MjYpOwp9CgovKiAtLSBGbG9hdGluZyBWaWV3ZXIgc2ltcGxlIHZpZGVvIHBsYXllciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi5tanItbWZ2LXNpbXBsZS1wbGF5ZXIgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLm1qci1tZnYtc2ltcGxlLXBsYXllci5pcy1hdWRpbyB7CiAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDIwJSAyMCUsIHJnYmEoOTUsIDE3OSwgMjU1LCAwLjIpLCByZ2JhKDE4LCAyMCwgMjgsIDAuOTUpKTsKfQoKLm1qci1tZnYtc2ltcGxlLXBsYXllci1hdWRpby1iYWNrZHJvcCB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogMDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjJweDsKICAgIHRleHQtc2hhZG93OiAwIDJweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC40NSk7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIHBhZGRpbmc6IDE4cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5tanItbWZ2LXNpbXBsZS1wbGF5ZXItY29udHJvbHMgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogMTJweDsKICAgIHJpZ2h0OiAxMnB4OwogICAgYm90dG9tOiAxMnB4OwogICAgei1pbmRleDogMzA7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogOHB4OwogICAgcGFkZGluZzogOXB4IDEwcHg7CiAgICBib3JkZXItcmFkaXVzOiAxNHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMTAsIDEwLCAxNCwgMC43NiksIHJnYmEoMTYsIDE2LCAyNCwgMC41NSkpOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpOwogICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7CiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKfQoKLm1qci1tZnYtc2ltcGxlLXBsYXllci1yb3cgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA4cHg7Cn0KCi5tanItbWZ2LXNpbXBsZS1wbGF5ZXItc2VlayB7CiAgICAtLW1qci1zZWVrLXBjdDogMCU7CiAgICBhcHBlYXJhbmNlOiBub25lOwogICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDZweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgb3V0bGluZTogbm9uZTsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICB0byByaWdodCwKICAgICAgICAjZmYyZjUyIDAlLAogICAgICAgICNmZjJmNTIgdmFyKC0tbWpyLXNlZWstcGN0KSwKICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjQpIHZhcigtLW1qci1zZWVrLXBjdCksCiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KSAxMDAlCiAgICApOwogICAgY3Vyc29yOiBwb2ludGVyOwp9CgoubWpyLW1mdi1zaW1wbGUtcGxheWVyLXNlZWs6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgIHdpZHRoOiAxMnB4OwogICAgaGVpZ2h0OiAxMnB4OwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpOwogICAgYmFja2dyb3VuZDogI2ZmMmY1MjsKfQoKLm1qci1tZnYtc2ltcGxlLXBsYXllci1zZWVrOjotbW96LXJhbmdlLXRodW1iIHsKICAgIHdpZHRoOiAxMnB4OwogICAgaGVpZ2h0OiAxMnB4OwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpOwogICAgYmFja2dyb3VuZDogI2ZmMmY1MjsKfQoKLm1qci1tZnYtc2ltcGxlLXBsYXllci1idG4gewogICAgd2lkdGg6IDMwcHg7CiAgICBoZWlnaHQ6IDMwcHg7CiAgICBtaW4td2lkdGg6IDMwcHg7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMik7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpOwp9CgoubWpyLW1mdi1zaW1wbGUtcGxheWVyLWJ0biAucGkgewogICAgZm9udC1zaXplOiAxM3B4OwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7Cn0KCi5tanItbWZ2LXNpbXBsZS1wbGF5ZXItYnRuLmlzLWRpc2FibGVkLAoubWpyLW1mdi1zaW1wbGUtcGxheWVyLXNlZWsuaXMtZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC40NTsKICAgIGN1cnNvcjogZGVmYXVsdDsKfQoKLm1qci1tZnYtc2ltcGxlLXBsYXllci10aW1lIHsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBsaW5lLWhlaWdodDogMTsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwp9CgoubWpyLW1mdi1zaW1wbGUtcGxheWVyLWZyYW1lIHsKICAgIG1hcmdpbi1yaWdodDogMnB4OwogICAgcGFkZGluZzogM3B4IDhweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgbGluZS1oZWlnaHQ6IDE7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKfQoKLm1qci1tZnYtcGxheWVyLWhvc3QgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTsKfQoKLyogVGhlIE1GViB1c2VzIHRoZSAiLS12aWV3ZXIiIGNvbnRyb2wgdmFyaWFudCwgd2hpY2ggKHVubGlrZSAiLS12aWV3ZXJiYXIiKQogICBkb2VzIG5vdCBzaXplIHRoZSBuYXRpdmUgc2VlayBpbnB1dCBhbmQgcGFja3MgZnJhbWUvaW4vc2Vlay9vdXQvdGltZSBpbnRvIGEKICAgc2luZ2xlIHJvdy4gSW4gdGhlIG5hcnJvdyBNRlYgdGhlIHNlZWsgd3JhcCB0aGVuIGNvbGxhcHNlcyB0byB+MHB4IHdpZGUgYW5kCiAgIHRoZSBuYXRpdmUgaW5wdXQgdG8gMHB4IHRhbGwsIGxlYXZpbmcgYWxtb3N0IG5vIGNsaWNrIC8gZHJhZyB0YXJnZXQgZm9yCiAgIHNjcnViYmluZy4gR2l2ZSB0aGUgc2VlayBpdHMgb3duIGZ1bGwtd2lkdGggcm93IHdpdGggYSB1c2FibGUgaGl0IGFyZWEuICovCgovKiAtLSBTZXR0aW5ncyBidXR0b24gYWN0aXZlIHN0YXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoubWpyLW1mdi1zZXR0aW5ncy1idG4uYWN0aXZlIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KAogICAgICAgIGluIHNyZ2IsCiAgICAgICAgdmFyKC0tbWpyLWFjY2VudCwgIzVmYjNmZikgNTUlLAogICAgICAgIHZhcigtLW1qci1ib3JkZXIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikpCiAgICApOwogICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KAogICAgICAgIGluIHNyZ2IsCiAgICAgICAgdmFyKC0tbWpyLXN1cmZhY2UtMiwgIzMzMykgNzAlLAogICAgICAgIHZhcigtLW1qci1hY2NlbnQsICM1ZmIzZmYpIDE4JQogICAgKTsKfQoubWpyLW1mdi1zZXR0aW5ncy1idG4uYWN0aXZlIC5waSB7CiAgICBjb2xvcjogdmFyKC0tbWpyLWFjY2VudCwgIzVmYjNmZik7Cn0KCi8qIC0tIENsb3NlIGJ1dHRvbiAocmVkKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLm1qci1tZnYgLm1qci1tZnYtY2xvc2UtYnRuIHsKICAgIGNvbG9yOiAjZTg1MDUwOwp9Ci5tanItbWZ2IC5tanItbWZ2LWNsb3NlLWJ0bjpob3ZlciB7CiAgICBjb2xvcjogI2ZmNmI2YjsKICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjMyLCA4MCwgODAsIDAuMTUpOwp9CgovKiAtLSBFbXB0eSBzdGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi5tanItbWZ2LWVtcHR5IHsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRkaW5nOiAxMnB4Owp9CgovKiAtLSBDb21wYXJlIGxhYmVscyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi5tanItbWZ2LWxhYmVsIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogOHB4OwogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjU4KTsKICAgIGNvbG9yOiAjZmZmOwogICAgZm9udC1zaXplOiAxMHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIHBhZGRpbmc6IDJweCA3cHg7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIHotaW5kZXg6IDIwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4Owp9CgoubWpyLW1mdi1sYWJlbC5sYWJlbC1sZWZ0IHsKICAgIGxlZnQ6IDhweDsKfQoubWpyLW1mdi1sYWJlbC5sYWJlbC1yaWdodCB7CiAgICByaWdodDogOHB4Owp9CgovKiAtLSBBQiBkaXZpZGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi5tanItbWZ2LWFiLWRpdmlkZXIgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAwOwogICAgYm90dG9tOiAwOwogICAgd2lkdGg6IDAuNXB4OwogICAgY3Vyc29yOiBjb2wtcmVzaXplOwogICAgei1pbmRleDogMTA7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODgpOwogICAgYm94LXNoYWRvdzoKICAgICAgICAwIDAgMCAwLjVweCByZ2JhKDAsIDAsIDAsIDAuNCksCiAgICAgICAgMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTAwbXMgZWFzZTsKfQoKLm1qci1tZnYtYWItZGl2aWRlcjo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICIiOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAwOwogICAgYm90dG9tOiAwOwogICAgbGVmdDogNTAlOwogICAgd2lkdGg6IDEycHg7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7Cn0KCi5tanItbWZ2LWFiLWRpdmlkZXI6aG92ZXIsCi5tanItbWZ2LWFiLWRpdmlkZXI6YWN0aXZlIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLW1qci1hY2NlbnQsICM1ZmIzZmYpOwp9CgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBNRlYgR2VvbWV0cnkgJiBMYXlvdXQgQ2xhc3NlcyAocmVwbGFjZXMgaW5saW5lIHN0eWxlcyBpbiBGbG9hdGluZ1ZpZXdlci5qcykKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCi8qIE1haW4gTUZWIGNvbnRhaW5lciBnZW9tZXRyeSAqLwoubWpyLW1mdiB7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB0b3A6IHZhcigtLW1qci1tZnYtdG9wLW9mZnNldCwgNjBweCk7CiAgICByaWdodDogMjBweDsKICAgIHdpZHRoOiA2NDBweDsKICAgIGhlaWdodDogMzYwcHg7CiAgICBtaW4td2lkdGg6IDIyMHB4OwogICAgbWluLWhlaWdodDogMTYwcHg7CiAgICAvKiBBbHdheXMgZmxleDsgdmlzaWJpbGl0eSArIG9wYWNpdHkgY29udHJvbCBzaG93L2hpZGUgc28gQ1NTIHRyYW5zaXRpb25zIHdvcmsuCiAgICAgICBwb2ludGVyLWV2ZW50czpub25lIHdoaWxlIGhpZGRlbiBwcmV2ZW50cyBhY2NpZGVudGFsIGludGVyYWN0aW9uLiAqLwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICByZXNpemU6IGJvdGg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgei1pbmRleDogMTAwMDA7CiAgICAvKiBIaWRkZW4gc3RhdGUgKi8KICAgIG9wYWNpdHk6IDA7CiAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KSBzY2FsZSgwLjk4KTsKICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDsKICAgIHRyYW5zaXRpb246CiAgICAgICAgb3BhY2l0eSAwLjE4cyBlYXNlLW91dCwKICAgICAgICB0cmFuc2Zvcm0gMC4xOHMgZWFzZS1vdXQsCiAgICAgICAgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMC4xOHM7Cn0KCi5tanItbWZ2Lm1qci1tZnYtLXJlc2l6aW5nIHsKICAgIHVzZXItc2VsZWN0OiBub25lOwp9CgoubWpyLW1mdi5pcy12aXNpYmxlIHsKICAgIG9wYWNpdHk6IDE7CiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOwogICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7CiAgICB0cmFuc2l0aW9uOgogICAgICAgIG9wYWNpdHkgMC4xOHMgZWFzZS1vdXQsCiAgICAgICAgdHJhbnNmb3JtIDAuMThzIGVhc2Utb3V0LAogICAgICAgIHZpc2liaWxpdHkgMHMgbGluZWFyIDBzOwp9CgovKiBNZWRpYSBlbGVtZW50cyAoaW1nL3ZpZGVvKSBzaXppbmcgdmFyaWFudHMgKi8KLm1qci1tZnYtbWVkaWEgewogICAgZGlzcGxheTogYmxvY2s7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIG1heC13aWR0aDogMTAwJTsKICAgIG1heC1oZWlnaHQ6IDEwMCU7CiAgICBvYmplY3QtZml0OiBjb250YWluOwogICAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXI7Cn0KCi5tanItbWZ2LW1lZGlhLS1maXQtaGVpZ2h0IHsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgbWF4LXdpZHRoOiAxMDAlOwogICAgbWF4LWhlaWdodDogMTAwJTsKICAgIG9iamVjdC1maXQ6IGNvbnRhaW47CiAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlcjsKfQoKLm1qci1tZnYtbWVkaWEtLWZpbGwgewogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICBtYXgtaGVpZ2h0OiAxMDAlOwogICAgb2JqZWN0LWZpdDogY29udGFpbjsKICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyOwogICAgZGlzcGxheTogYmxvY2s7Cn0KCi8qIEF1ZGlvIGNhcmQgaW5zaWRlIE1GViAqLwoubWpyLW1mdi1hdWRpby1jYXJkIHsKICAgIHdpZHRoOiBtaW4oOTIlLCA1NjBweCk7CiAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogMTBweDsKICAgIHBhZGRpbmc6IDEycHg7CiAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNjBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNiksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMikpOwogICAgYm94LXNoYWRvdzogMCA2cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMzUpOwp9CgoubWpyLW1mdi1hdWRpby1oZWFkIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA4cHg7CiAgICBtaW4td2lkdGg6IDA7Cn0KCi5tanItbWZ2LWF1ZGlvLWljb24gewogICAgY29sb3I6IHZhcigtLW1qci1iYWRnZS1hdWRpbywgI2ZmOTgwMCk7CiAgICBvcGFjaXR5OiAwLjk1Owp9CgoubWpyLW1mdi1hdWRpby10aXRsZSB7CiAgICBtaW4td2lkdGg6IDA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTsKfQoKLm1qci1tZnYtYXVkaW8tcGxheWVyIHsKICAgIHdpZHRoOiAxMDAlOwp9CgoubWpyLW1mdi1zaWRlLXBhbmVsIC5tanItbWZ2LWF1ZGlvLWNhcmQsCi5tanItbWZ2LWFiLWxheWVyIC5tanItbWZ2LWF1ZGlvLWNhcmQsCi5tanItbWZ2LWdyaWQtY2VsbCAubWpyLW1mdi1hdWRpby1jYXJkIHsKICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTsKfQoKLyogVmlkZW8gZWxlbWVudCBzcGVjaWZpYyBzdHlsZXMgKi8KLm1qci1tZnYtbWVkaWEtdmlkZW8gewogICAgLyogSW5oZXJpdHMgZnJvbSAubWpyLW1mdi1tZWRpYSBvciAubWpyLW1mdi1tZWRpYS0tZmlsbCAqLwp9CgovKiBOb2RlIFN0cmVhbSAtIGN1cnJlbnRseS1zdHJlYW1lZCBub2RlIGJhZGdlICh0b3AtbGVmdCBvZiBjb250ZW50IGFyZWEsCiAgIGZvbGxvd2luZyB0aGUgc2FtZSBvdmVybGF5IHBhdHRlcm4gYXMgLm1qci1tZnYtZ2VuaW5mbykuICovCi5tanItbWZ2LW5vZGUtb3ZlcmxheSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDhweDsKICAgIGxlZnQ6IDhweDsKICAgIHotaW5kZXg6IDEyOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgZm9udC1zaXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICBjb2xvcjogI2U2ZjNmZjsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42NSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyMCwgMTcwLCAyNDAsIDAuNDUpOwogICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpOwogICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTsKICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMTZweCk7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwp9Ci8qIEdlbiBpbmZvIG92ZXJsYXkgLSBhbGwgbW9kZXMgc2hhcmUgYmFzZSBsYXlvdXQgKi8KLm1qci1tZnYtZ2VuaW5mbywKLm1qci1tZnYtZ2VuaW5mby1hLAoubWpyLW1mdi1nZW5pbmZvLWIgewogICAgZGlzcGxheTogbm9uZTsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDhweDsKICAgIHJpZ2h0OiA4cHg7CiAgICBib3R0b206IDhweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42NSk7CiAgICBjb2xvcjogI2ZmZjsKICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgZm9udC1zaXplOiAxMXB4OwogICAgbWF4LWhlaWdodDogNDAlOwogICAgb3ZlcmZsb3cteTogYXV0bzsKICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgIG92ZXJzY3JvbGwtYmVoYXZpb3IteTogY29udGFpbjsKICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7CiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDZweCk7CiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTsKICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuNCk7Cn0KCi8qIEtlZXAgR2VuIEluZm8gYWJvdmUgY3VzdG9tIHNpbXBsZS1wbGF5ZXIgY29udHJvbHMgd2hlbiBwcmVzZW50LiAqLwoubWpyLW1mdi1nZW5pbmZvLm1qci1tZnYtZ2VuaW5mby0tYWJvdmUtcGxheWVyLAoubWpyLW1mdi1nZW5pbmZvLWEubWpyLW1mdi1nZW5pbmZvLS1hYm92ZS1wbGF5ZXIsCi5tanItbWZ2LWdlbmluZm8tYi5tanItbWZ2LWdlbmluZm8tLWFib3ZlLXBsYXllciB7CiAgICB0b3A6IDhweDsKICAgIGJvdHRvbTogYXV0bzsKICAgIG1heC1oZWlnaHQ6IG1pbig0NSUsIGNhbGMoMTAwJSAtIDEyNHB4KSk7Cn0KCi8qIEZhbGxiYWNrOiB3aGVuIHNpbXBsZS1wbGF5ZXIgaXMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYSBnZW5pbmZvIG92ZXJsYXksCiAgIG1vdmUgaXQgdXAgZXZlbiBpZiB0aGUgbW9kaWZpZXIgY2xhc3Mgd2FzIG5vdCBhdHRhY2hlZC4gKi8KLm1qci1tZnYtc2ltcGxlLXBsYXllciArIC5tanItbWZ2LWdlbmluZm8sCi5tanItbWZ2LXNpbXBsZS1wbGF5ZXIgKyAubWpyLW1mdi1nZW5pbmZvLWEsCi5tanItbWZ2LXNpbXBsZS1wbGF5ZXIgKyAubWpyLW1mdi1nZW5pbmZvLWIgewogICAgdG9wOiA4cHg7CiAgICBib3R0b206IGF1dG87CiAgICBtYXgtaGVpZ2h0OiBtaW4oNDUlLCBjYWxjKDEwMCUgLSAxMjRweCkpOwp9CgovKiBBQiBtb2RlIG92ZXJsYXlzIGFyZSBhdHRhY2hlZCBhdCBjb250YWluZXIgbGV2ZWw7IHNoaWZ0IHRoZW0gd2hlbiBBQiBsYXllcnMgdXNlIHNpbXBsZS1wbGF5ZXIuICovCi5tanItbWZ2LWFiLWNvbnRhaW5lcjpoYXMoLm1qci1tZnYtYWItbGF5ZXIgLm1qci1tZnYtc2ltcGxlLXBsYXllcikgLm1qci1tZnYtZ2VuaW5mby1hLAoubWpyLW1mdi1hYi1jb250YWluZXI6aGFzKC5tanItbWZ2LWFiLWxheWVyIC5tanItbWZ2LXNpbXBsZS1wbGF5ZXIpIC5tanItbWZ2LWdlbmluZm8tYiB7CiAgICB0b3A6IDhweDsKICAgIGJvdHRvbTogYXV0bzsKICAgIG1heC1oZWlnaHQ6IG1pbig0NSUsIGNhbGMoMTAwJSAtIDEyNHB4KSk7Cn0KCi8qIFNoYXJlZCBzdHlsZSBmb3IgYWxsIGdlbiBpbmZvIG92ZXJsYXkgdmFyaWFudHMgKi8KLm1qci1tZnYtZ2VuaW5mbyBzdHJvbmcsCi5tanItbWZ2LWdlbmluZm8tYSBzdHJvbmcsCi5tanItbWZ2LWdlbmluZm8tYiBzdHJvbmcgewogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IC8qIGRlZmF1bHQgLSBvdmVycmlkZGVuIHBlciBmaWVsZCBiZWxvdyAqLwp9CgovKiBQZXItZmllbGQgbGFiZWwgY29sb3JzICovCi5tanItbWZ2LWdlbmluZm8gW2RhdGEtZmllbGQ9InByb21wdCJdIHN0cm9uZywKLm1qci1tZnYtZ2VuaW5mby1hIFtkYXRhLWZpZWxkPSJwcm9tcHQiXSBzdHJvbmcsCi5tanItbWZ2LWdlbmluZm8tYiBbZGF0YS1maWVsZD0icHJvbXB0Il0gc3Ryb25nIHsKICAgIGNvbG9yOiAjN2VjOGZmOwp9IC8qIGJsdWUgICAtIFByb21wdCAqLwoKLm1qci1tZnYtZ2VuaW5mbyBbZGF0YS1maWVsZD0ic2VlZCJdIHN0cm9uZywKLm1qci1tZnYtZ2VuaW5mby1hIFtkYXRhLWZpZWxkPSJzZWVkIl0gc3Ryb25nLAoubWpyLW1mdi1nZW5pbmZvLWIgW2RhdGEtZmllbGQ9InNlZWQiXSBzdHJvbmcgewogICAgY29sb3I6ICNmZmQ0N2E7Cn0gLyogYW1iZXIgIC0gU2VlZCAgICovCgoubWpyLW1mdi1nZW5pbmZvIFtkYXRhLWZpZWxkPSJtb2RlbCJdIHN0cm9uZywKLm1qci1tZnYtZ2VuaW5mby1hIFtkYXRhLWZpZWxkPSJtb2RlbCJdIHN0cm9uZywKLm1qci1tZnYtZ2VuaW5mby1iIFtkYXRhLWZpZWxkPSJtb2RlbCJdIHN0cm9uZyB7CiAgICBjb2xvcjogIzdkZGE4YTsKfSAvKiBncmVlbiAgLSBNb2RlbCAgKi8KCi5tanItbWZ2LWdlbmluZm8gW2RhdGEtZmllbGQ9ImxvcmEiXSBzdHJvbmcsCi5tanItbWZ2LWdlbmluZm8tYSBbZGF0YS1maWVsZD0ibG9yYSJdIHN0cm9uZywKLm1qci1tZnYtZ2VuaW5mby1iIFtkYXRhLWZpZWxkPSJsb3JhIl0gc3Ryb25nIHsKICAgIGNvbG9yOiAjZDQ4Y2ZmOwp9IC8qIHZpb2xldCAtIExvUkEgICAqLwoKLm1qci1tZnYtZ2VuaW5mbyBbZGF0YS1maWVsZD0ic2FtcGxlciJdIHN0cm9uZywKLm1qci1tZnYtZ2VuaW5mby1hIFtkYXRhLWZpZWxkPSJzYW1wbGVyIl0gc3Ryb25nLAoubWpyLW1mdi1nZW5pbmZvLWIgW2RhdGEtZmllbGQ9InNhbXBsZXIiXSBzdHJvbmcgewogICAgY29sb3I6ICNmZjlmN2E7Cn0gLyogb3JhbmdlIC0gU2FtcGxlciAqLwoKLm1qci1tZnYtZ2VuaW5mbyBbZGF0YS1maWVsZD0ic2NoZWR1bGVyIl0gc3Ryb25nLAoubWpyLW1mdi1nZW5pbmZvLWEgW2RhdGEtZmllbGQ9InNjaGVkdWxlciJdIHN0cm9uZywKLm1qci1tZnYtZ2VuaW5mby1iIFtkYXRhLWZpZWxkPSJzY2hlZHVsZXIiXSBzdHJvbmcgewogICAgY29sb3I6ICNmZjdhOWY7Cn0gLyogcGluayAgIC0gU2NoZWR1bGVyICovCgoubWpyLW1mdi1nZW5pbmZvIFtkYXRhLWZpZWxkPSJjZmciXSBzdHJvbmcsCi5tanItbWZ2LWdlbmluZm8tYSBbZGF0YS1maWVsZD0iY2ZnIl0gc3Ryb25nLAoubWpyLW1mdi1nZW5pbmZvLWIgW2RhdGEtZmllbGQ9ImNmZyJdIHN0cm9uZyB7CiAgICBjb2xvcjogIzdhOWZmZjsKfSAvKiBpbmRpZ28gLSBDRkcgKi8KCi5tanItbWZ2LWdlbmluZm8gW2RhdGEtZmllbGQ9InN0ZXAiXSBzdHJvbmcsCi5tanItbWZ2LWdlbmluZm8tYSBbZGF0YS1maWVsZD0ic3RlcCJdIHN0cm9uZywKLm1qci1tZnYtZ2VuaW5mby1iIFtkYXRhLWZpZWxkPSJzdGVwIl0gc3Ryb25nIHsKICAgIGNvbG9yOiAjN2FmZmQ0Owp9IC8qIHRlYWwgICAtIFN0ZXAgKi8KCi5tanItbWZ2LWdlbmluZm8gW2RhdGEtZmllbGQ9ImdlblRpbWUiXSBzdHJvbmcsCi5tanItbWZ2LWdlbmluZm8tYSBbZGF0YS1maWVsZD0iZ2VuVGltZSJdIHN0cm9uZywKLm1qci1tZnYtZ2VuaW5mby1iIFtkYXRhLWZpZWxkPSJnZW5UaW1lIl0gc3Ryb25nIHsKICAgIGNvbG9yOiAjZTBmZjdhOwp9IC8qIGxpbWUgICAtIEdlbiBUaW1lICovCgoubWpyLW1mdi1nZW5pbmZvIGRpdiwKLm1qci1tZnYtZ2VuaW5mby1hIGRpdiwKLm1qci1tZnYtZ2VuaW5mby1iIGRpdiB7CiAgICBsaW5lLWhlaWdodDogMS4zNTsKICAgIG1hcmdpbi1ib3R0b206IDNweDsKfQoKLm1qci1tZnYtZ2VuaW5mbyBkaXY6bGFzdC1jaGlsZCwKLm1qci1tZnYtZ2VuaW5mby1hIGRpdjpsYXN0LWNoaWxkLAoubWpyLW1mdi1nZW5pbmZvLWIgZGl2Omxhc3QtY2hpbGQgewogICAgbWFyZ2luLWJvdHRvbTogMDsKfQoKLyogU2ltcGxlIG1vZGUgY29udGFpbmVyICovCi5tanItbWZ2LXNpbXBsZS1jb250YWluZXIgewogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLyogQUIgbW9kZSBjb250YWluZXIgKi8KLm1qci1tZnYtYWItY29udGFpbmVyIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGJhY2tncm91bmQ6ICMwMDA7Cn0KCi8qIEFCIG1vZGUgbGF5ZXJzICovCi5tanItbWZ2LWFiLWxheWVyIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAwOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKfQoKLm1qci1tZnYtYWItbGF5ZXItLWIgewogICAgLyogY2xpcC1wYXRoIGFwcGxpZWQgaW5saW5lIGZvciBkeW5hbWljIGRpdmlkZXIgcG9zaXRpb24gKi8KfQoKLyogU2lkZS1ieS1zaWRlIG1vZGUgY29udGFpbmVyICovCi5tanItbWZ2LXNpZGUtY29udGFpbmVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIGdhcDogMnB4OwogICAgYmFja2dyb3VuZDogIzExMTsKICAgIG92ZXJmbG93OiBoaWRkZW47Cn0KCi8qIFNpZGUtYnktc2lkZSBoYWxmIHBhbmVscyAqLwoubWpyLW1mdi1zaWRlLXBhbmVsIHsKICAgIGZsZXg6IDE7CiAgICBtaW4td2lkdGg6IDA7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJhY2tncm91bmQ6ICMwZDBkMGQ7Cn0KCi8qIEdyaWQgY29tcGFyZSAoMi0yKSBjb250YWluZXIgKi8KLm1qci1tZnYtZ3JpZC1jb250YWluZXIgewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDFmcjsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgZ2FwOiAycHg7CiAgICBiYWNrZ3JvdW5kOiAjMTExOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLyogR3JpZCBjZWxscyAqLwoubWpyLW1mdi1ncmlkLWNlbGwgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBiYWNrZ3JvdW5kOiAjMGQwZDBkOwogICAgbWluLXdpZHRoOiAwOwogICAgbWluLWhlaWdodDogMDsKfQoKLyogR2VuIGluZm8gb3ZlcmxheXMgZm9yIGdyaWQgY2VsbHMgQyBhbmQgRCAqLwoubWpyLW1mdi1nZW5pbmZvLWMsCi5tanItbWZ2LWdlbmluZm8tZCB7CiAgICBkaXNwbGF5OiBub25lOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogOHB4OwogICAgcmlnaHQ6IDhweDsKICAgIGJvdHRvbTogOHB4OwogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjY1KTsKICAgIGNvbG9yOiAjZmZmOwogICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBtYXgtaGVpZ2h0OiA0MCU7CiAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgb3ZlcnNjcm9sbC1iZWhhdmlvci15OiBjb250YWluOwogICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOwogICAgdG91Y2gtYWN0aW9uOiBwYW4teTsKICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTsKICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDZweCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpOwogICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC40KTsKfQoKLm1qci1tZnYtZ2VuaW5mby1jIHN0cm9uZywKLm1qci1tZnYtZ2VuaW5mby1kIHN0cm9uZyB7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsKfQoKLyogUGVyLWZpZWxkIGxhYmVsIGNvbG9ycyBmb3IgQy9EIGdlbiBpbmZvIG92ZXJsYXlzICovCi5tanItbWZ2LWdlbmluZm8tYyBbZGF0YS1maWVsZD0icHJvbXB0Il0gc3Ryb25nLAoubWpyLW1mdi1nZW5pbmZvLWQgW2RhdGEtZmllbGQ9InByb21wdCJdIHN0cm9uZyB7CiAgICBjb2xvcjogIzdlYzhmZjsKfQoubWpyLW1mdi1nZW5pbmZvLWMgW2RhdGEtZmllbGQ9InNlZWQiXSBzdHJvbmcsCi5tanItbWZ2LWdlbmluZm8tZCBbZGF0YS1maWVsZD0ic2VlZCJdIHN0cm9uZyB7CiAgICBjb2xvcjogI2ZmZDQ3YTsKfQoubWpyLW1mdi1nZW5pbmZvLWMgW2RhdGEtZmllbGQ9Im1vZGVsIl0gc3Ryb25nLAoubWpyLW1mdi1nZW5pbmZvLWQgW2RhdGEtZmllbGQ9Im1vZGVsIl0gc3Ryb25nIHsKICAgIGNvbG9yOiAjN2RkYThhOwp9Ci5tanItbWZ2LWdlbmluZm8tYyBbZGF0YS1maWVsZD0ibG9yYSJdIHN0cm9uZywKLm1qci1tZnYtZ2VuaW5mby1kIFtkYXRhLWZpZWxkPSJsb3JhIl0gc3Ryb25nIHsKICAgIGNvbG9yOiAjZDQ4Y2ZmOwp9Ci5tanItbWZ2LWdlbmluZm8tYyBbZGF0YS1maWVsZD0ic2FtcGxlciJdIHN0cm9uZywKLm1qci1tZnYtZ2VuaW5mby1kIFtkYXRhLWZpZWxkPSJzYW1wbGVyIl0gc3Ryb25nIHsKICAgIGNvbG9yOiAjZmY5ZjdhOwp9Ci5tanItbWZ2LWdlbmluZm8tYyBbZGF0YS1maWVsZD0ic2NoZWR1bGVyIl0gc3Ryb25nLAoubWpyLW1mdi1nZW5pbmZvLWQgW2RhdGEtZmllbGQ9InNjaGVkdWxlciJdIHN0cm9uZyB7CiAgICBjb2xvcjogI2ZmN2E5ZjsKfQoubWpyLW1mdi1nZW5pbmZvLWMgW2RhdGEtZmllbGQ9ImNmZyJdIHN0cm9uZywKLm1qci1tZnYtZ2VuaW5mby1kIFtkYXRhLWZpZWxkPSJjZmciXSBzdHJvbmcgewogICAgY29sb3I6ICM3YTlmZmY7Cn0KLm1qci1tZnYtZ2VuaW5mby1jIFtkYXRhLWZpZWxkPSJzdGVwIl0gc3Ryb25nLAoubWpyLW1mdi1nZW5pbmZvLWQgW2RhdGEtZmllbGQ9InN0ZXAiXSBzdHJvbmcgewogICAgY29sb3I6ICM3YWZmZDQ7Cn0KCi8qIEdlbiBpbmZvIGFjdGl2ZSBzdGF0ZSAtIGJ1dHRvbiBnbG93cyB3aGVuIGF0IGxlYXN0IG9uZSBmaWVsZCBpcyBzZWxlY3RlZCAqLwoubWpyLW1mdiAubWpyLWljb24tYnRuLmlzLW9uIHsKICAgIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS1tanItZ3JvdXAtYWNjZW50LCA5NSwgMTc5LCAyNTUpLCAwLjU1KTsKICAgIGNvbG9yOiB2YXIoLS1tanItYWNjZW50LCAjNWZiM2ZmKTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yLCAjMzMzKSA4MCUsIHZhcigtLW1qci1hY2NlbnQsICM1ZmIzZmYpIDE1JSk7CiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQsICM1ZmIzZmYpIDI1JSwgdHJhbnNwYXJlbnQpOwp9CgoubWpyLW1mdiAubWpyLWljb24tYnRuLmlzLW9wZW4gewogICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCwgIzVmYjNmZikgNjIlLCAjZmZmZmZmIDEyJSk7CiAgICBjb2xvcjogI2VlZjdmZjsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoOTUsIDE3OSwgMjU1LCAwLjI4KSwgcmdiYSg5NSwgMTc5LCAyNTUsIDAuMTQpKTsKICAgIGJveC1zaGFkb3c6CiAgICAgICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCksCiAgICAgICAgMCAwIDAgMXB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYWNjZW50LCAjNWZiM2ZmKSAyNiUsIHRyYW5zcGFyZW50KTsKfQoKLm1qci1tZnYubWpyLW1mdi0tcG9wcGVkIC5tanItaWNvbi1idG4uaXMtb3BlbiB7CiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50Owp9CgovKiBHZW4gaW5mbyBkcm9wZG93biBwYW5lbCAqLwoubWpyLW1mdi1nZW4tZHJvcGRvd24gewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgei1pbmRleDogMTAwMDE7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMSwgIzJhMmEyYSkgOTYlLCB0cmFuc3BhcmVudCk7CiAgICBjb2xvcjogdmFyKC0tY29udGVudC1mZywgI2RkZCk7CiAgICBwYWRkaW5nOiA2cHggNHB4OwogICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxOTYsIDIwMiwgMjEwLCAwLjE4KTsKICAgIGJveC1zaGFkb3c6CiAgICAgICAgMCA4cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuNTUpLAogICAgICAgIDAgMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMyk7CiAgICBkaXNwbGF5OiBub25lOwogICAgbWluLXdpZHRoOiAxNTBweDsKICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOwogICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTsKfQoKLm1qci1tZnYtZ2VuLWRyb3Bkb3duOjpiZWZvcmUgewogICAgY29udGVudDogIkdFTiBJTkZPIjsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgZm9udC1zaXplOiA5cHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuOHB4OwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSk7CiAgICBwYWRkaW5nOiAycHggMTBweCA2cHg7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgxOTYsIDIwMiwgMjEwLCAwLjEpOwogICAgbWFyZ2luLWJvdHRvbTogNHB4Owp9CgoubWpyLW1mdi1nZW4tZHJvcGRvd24uaXMtdmlzaWJsZSB7CiAgICBkaXNwbGF5OiBibG9jazsKfQoKLm1qci1tZnYtZ2VuLWRyb3Bkb3duLXJvdyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogOHB4OwogICAgZm9udC1zaXplOiAxMnB4OwogICAgcGFkZGluZzogNXB4IDEwcHg7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEwMG1zIGVhc2U7CiAgICB1c2VyLXNlbGVjdDogbm9uZTsKfQoKLm1qci1tZnYtZ2VuLWRyb3Bkb3duLXJvdzpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDcpOwp9CgoubWpyLW1mdi1nZW4tZHJvcGRvd24tcm93IGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewogICAgd2lkdGg6IDEzcHg7CiAgICBoZWlnaHQ6IDEzcHg7CiAgICBhY2NlbnQtY29sb3I6IHZhcigtLW1qci1hY2NlbnQsICM1ZmIzZmYpOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgZmxleC1zaHJpbms6IDA7Cn0KCi8qIFRyYW5zZm9ybSBmb3IgcGFuL3pvb20gLSBhcHBsaWVkIGlubGluZSBmb3IgZHluYW1pYyB2YWx1ZXMgKi8KLm1qci1tZnYtbWVkaWEtLXRyYW5zZm9ybSB7CiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7Cn0KCi8qIEN1cnNvciBmZWVkYmFjayBmb3IgcGFuL3pvb20gaW50ZXJhY3Rpb25zICovCi5tanItbWZ2LWNvbnRlbnQtLWdyYWIgewogICAgY3Vyc29yOiBncmFiOwp9CgoubWpyLW1mdi1jb250ZW50LS1ncmFiYmluZyB7CiAgICBjdXJzb3I6IGdyYWJiaW5nOwp9CgovKiBTaWRlYmFyIHRhYiBidXR0b246IGFsbG93IDItbGluZSBsYWJlbCB2aWEgXG4gaW4gbGFiZWwgc3RyaW5nICovCi5tYWpvb3ItYXNzZXRzLXRhYi1idXR0b24gLnNpZGUtYmFyLWJ1dHRvbi1sYWJlbCB7CiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7Cn0KCi8qIEJvdHRvbS1wYW5lbCBnZW5lcmF0ZWQgZmVlZDogY29tcGFjdCBjYXJkcyB3aXRoIG9ubHkgdGhlIGdlbmVyYXRpb24tdGltZSBwaWxsICovCi5tanItYm90dG9tLWZlZWQgewogICAgbWluLWhlaWdodDogMDsKICAgIG92ZXJmbG93OiBoaWRkZW47Cn0KCi5tanItYm90dG9tLWZlZWQgLm1qci1hbS1ncmlkLXNjcm9sbCB7CiAgICBmbGV4OiAxIDEgYXV0bzsKICAgIG1pbi1oZWlnaHQ6IDA7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTsKICAgIG92ZXJzY3JvbGwtYmVoYXZpb3IteTogY29udGFpbjsKICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7CiAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgIHNjcm9sbGJhci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTIsICMyZjM1NDApIDcwJSwgIzdmOGVhMyAzMCUpCiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTAsICMxNjE5MWYpIDg4JSwgIzAwMCAxMiUpOwp9CgoubWpyLWJvdHRvbS1mZWVkIC5tanItYW0tZ3JpZC1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLAoubWpyLWZlZWQtZ3JvdXAtcG9wb3Zlci1ncmlkOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICB3aWR0aDogMTBweDsKICAgIGhlaWdodDogMTBweDsKfQoKLm1qci1ib3R0b20tZmVlZCAubWpyLWFtLWdyaWQtc2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiwKLm1qci1mZWVkLWdyb3VwLXBvcG92ZXItZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTIsICMyZjM1NDApIDcwJSwgIzdmOGVhMyAzMCUpOwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7Cn0KCi5tanItYm90dG9tLWZlZWQgLm1qci1hbS1ncmlkLXNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssCi5tanItZmVlZC1ncm91cC1wb3BvdmVyLWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0wLCAjMTYxOTFmKSA4OCUsICMwMDAgMTIlKTsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4Owp9CgoubWpyLWJvdHRvbS1mZWVkIC5tanItZ3JpZCB7CiAgICBnYXA6IDZweCAhaW1wb3J0YW50OwogICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgobWluKDEwMCUsIDEzMnB4KSwgMWZyKSkgIWltcG9ydGFudDsKICAgIG1pbi1oZWlnaHQ6IDA7CiAgICBoZWlnaHQ6IGF1dG87CiAgICBhbGlnbi1jb250ZW50OiBzdGFydDsKfQoKLm1qci1ib3R0b20tZmVlZCAubWpyLWNhcmQsCi5tanItYm90dG9tLWZlZWQgLm1qci1hc3NldC1jYXJkIHsKICAgIGJvcmRlci1yYWRpdXM6IDEycHggIWltcG9ydGFudDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMSkgOTIlLCAjMDAwIDglKSAhaW1wb3J0YW50OwogICAgYm94LXNoYWRvdzogMCA2cHggMThweCByZ2JhKDAsIDAsIDAsIDAuMjIpICFpbXBvcnRhbnQ7CiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKfQoKLm1qci1ib3R0b20tZmVlZCAubWpyLWNhcmQ6aG92ZXIsCi5tanItYm90dG9tLWZlZWQgLm1qci1hc3NldC1jYXJkOmhvdmVyIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KSAhaW1wb3J0YW50OwogICAgYm94LXNoYWRvdzogMCAxMHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjI4KSAhaW1wb3J0YW50OwoKICAgIC5tanItYm90dG9tLWZlZWQgLm1qci1hc3NldC1jYXJkLmlzLXNlbGVjdGVkIHsKICAgICAgICBib3gtc2hhZG93OgogICAgICAgICAgICAwIDAgMCAzcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1jYXJkLXNlbGVjdGlvbi1jb2xvcikgODAlLCB2YXIoLS1jb250ZW50LWZnKSksCiAgICAgICAgICAgIDAgMCAwIDZweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWNhcmQtc2VsZWN0aW9uLWNvbG9yKSAzMCUsIHRyYW5zcGFyZW50KSwKICAgICAgICAgICAgMCAwIDIwcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1jYXJkLXNlbGVjdGlvbi1jb2xvcikgNDAlLCB0cmFuc3BhcmVudCksCiAgICAgICAgICAgIDAgMTBweCAyOHB4IHJnYmEoMCwgMCwgMCwgMC4yOCkgIWltcG9ydGFudDsKICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tbWpyLWNhcmQtc2VsZWN0aW9uLWNvbG9yKSAhaW1wb3J0YW50OwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7CiAgICB9Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hc3NldC1jYXJkW2RhdGEtbWpyLXN0YWNrZWQ9InRydWUiXSwKLm1qci1ib3R0b20tZmVlZCAubWpyLWFzc2V0LWNhcmRbZGF0YS1tanItc3RhY2tlZD0idHJ1ZSJdIHsKICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hc3NldC1jYXJkW2RhdGEtbWpyLXN0YWNrZWQ9InRydWUiXSAubWpyLXRodW1iLAoubWpyLWJvdHRvbS1mZWVkIC5tanItYXNzZXQtY2FyZFtkYXRhLW1qci1zdGFja2VkPSJ0cnVlIl0gLm1qci10aHVtYiB7CiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OwogICAgaXNvbGF0aW9uOiBpc29sYXRlOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZFtkYXRhLW1qci1zdGFja2VkPSJ0cnVlIl0gLm1qci10aHVtYjo6YmVmb3JlLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZFtkYXRhLW1qci1zdGFja2VkPSJ0cnVlIl0gLm1qci10aHVtYjo6YWZ0ZXIsCi5tanItYm90dG9tLWZlZWQgLm1qci1hc3NldC1jYXJkW2RhdGEtbWpyLXN0YWNrZWQ9InRydWUiXSAubWpyLXRodW1iOjpiZWZvcmUsCi5tanItYm90dG9tLWZlZWQgLm1qci1hc3NldC1jYXJkW2RhdGEtbWpyLXN0YWNrZWQ9InRydWUiXSAubWpyLXRodW1iOjphZnRlciB7CiAgICBjb250ZW50OiAiIjsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAwOwogICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgei1pbmRleDogLTE7CiAgICB0cmFuc2l0aW9uOgogICAgICAgIHRyYW5zZm9ybSAxNDBtcyBlYXNlLAogICAgICAgIG9wYWNpdHkgMTQwbXMgZWFzZTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmRbZGF0YS1tanItc3RhY2tlZD0idHJ1ZSJdIC5tanItdGh1bWI6OmJlZm9yZSwKLm1qci1ib3R0b20tZmVlZCAubWpyLWFzc2V0LWNhcmRbZGF0YS1tanItc3RhY2tlZD0idHJ1ZSJdIC5tanItdGh1bWI6OmJlZm9yZSB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDVweCkgc2NhbGUoMC45ODUpOwogICAgYmFja2dyb3VuZDoKICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMykpLAogICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0xLCAjMjAyNDJiKSA4NCUsICMwMDAgMTYlKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7CiAgICBib3gtc2hhZG93OiAwIDhweCAxOHB4IHJnYmEoMCwgMCwgMCwgMC4xNik7CiAgICBvcGFjaXR5OiAwLjk7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hc3NldC1jYXJkW2RhdGEtbWpyLXN0YWNrZWQ9InRydWUiXSAubWpyLXRodW1iOjphZnRlciwKLm1qci1ib3R0b20tZmVlZCAubWpyLWFzc2V0LWNhcmRbZGF0YS1tanItc3RhY2tlZD0idHJ1ZSJdIC5tanItdGh1bWI6OmFmdGVyIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwcHgsIDEwcHgpIHNjYWxlKDAuOTcpOwogICAgYmFja2dyb3VuZDoKICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpKSwKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMCwgIzE2MTkxZikgODIlLCAjMDAwIDE4JSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpOwogICAgYm94LXNoYWRvdzogMCAxMnB4IDIycHggcmdiYSgwLCAwLCAwLCAwLjE0KTsKICAgIG9wYWNpdHk6IDAuNzU7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hc3NldC1jYXJkW2RhdGEtbWpyLXN0YWNrZWQ9InRydWUiXTpob3ZlciAubWpyLXRodW1iOjpiZWZvcmUsCi5tanItYm90dG9tLWZlZWQgLm1qci1hc3NldC1jYXJkW2RhdGEtbWpyLXN0YWNrZWQ9InRydWUiXTpob3ZlciAubWpyLXRodW1iOjpiZWZvcmUgewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNnB4LCA2cHgpIHNjYWxlKDAuOTg1KTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmRbZGF0YS1tanItc3RhY2tlZD0idHJ1ZSJdOmhvdmVyIC5tanItdGh1bWI6OmFmdGVyLAoubWpyLWJvdHRvbS1mZWVkIC5tanItYXNzZXQtY2FyZFtkYXRhLW1qci1zdGFja2VkPSJ0cnVlIl06aG92ZXIgLm1qci10aHVtYjo6YWZ0ZXIgewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTJweCwgMTJweCkgc2NhbGUoMC45Nyk7Cn0KCi5tanItYm90dG9tLWZlZWQgLm1qci10aHVtYiB7CiAgICBhc3BlY3QtcmF0aW86IDAuOTUgLyAxICFpbXBvcnRhbnQ7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMCkgNzIlLCAjMDAwIDI4JSkgIWltcG9ydGFudDsKfQoKLm1qci1ib3R0b20tZmVlZCAubWpyLXRodW1iLXBsYXkgewogICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KAogICAgICAgIGNpcmNsZSBhdCBjZW50ZXIsCiAgICAgICAgcmdiYSgwLCAwLCAwLCAwLjE4KSwKICAgICAgICByZ2JhKDAsIDAsIDAsIDAuMDQpIDM4JSwKICAgICAgICB0cmFuc3BhcmVudCA3MCUKICAgICk7Cn0KCi5tanItYm90dG9tLWZlZWQgLm1qci1iYWRnZS1leHQsCi5tanItYm90dG9tLWZlZWQgLm1qci1iYWRnZS1yYXRpbmcsCi5tanItYm90dG9tLWZlZWQgLm1qci1iYWRnZS10YWdzIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Mik7CiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDsKfQoKLyogLS0gRmVlZCBjYXJkIGluZm86IGRlZmF1bHQgaGlkZGVuLCB0b2dnbGVkIHZpYSBtanItZmVlZC1zaG93LSogY2xhc3NlcyBvbiAubWpyLWdyaWQgLS0gKi8KLm1qci1ib3R0b20tZmVlZCAubWpyLWNhcmQtaW5mbyB7CiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICBwYWRkaW5nOiA0cHggNnB4ICFpbXBvcnRhbnQ7CiAgICBtaW4td2lkdGg6IDA7Cn0KLm1qci1ib3R0b20tZmVlZCAubWpyLWdyaWQubWpyLWZlZWQtc2hvdy1pbmZvIC5tanItY2FyZC1pbmZvIHsKICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7Cn0KCi8qIEZlZWQgZmlsZW5hbWUgKi8KLm1qci1ib3R0b20tZmVlZCAubWpyLWNhcmQtZmlsZW5hbWUgewogICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5tanItYm90dG9tLWZlZWQgLm1qci1ncmlkLm1qci1mZWVkLXNob3ctZmlsZW5hbWUgLm1qci1jYXJkLWZpbGVuYW1lIHsKICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7Cn0KCi8qIEZlZWQgZGltZW5zaW9ucyAvIGR1cmF0aW9uICovCi5tanItYm90dG9tLWZlZWQgLm1qci1tZXRhLXJlcywKLm1qci1ib3R0b20tZmVlZCAubWpyLW1ldGEtZHVyYXRpb24gewogICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5tanItYm90dG9tLWZlZWQgLm1qci1ncmlkLm1qci1mZWVkLXNob3ctZGltZW5zaW9ucyAubWpyLW1ldGEtcmVzLAoubWpyLWJvdHRvbS1mZWVkIC5tanItZ3JpZC5tanItZmVlZC1zaG93LWRpbWVuc2lvbnMgLm1qci1tZXRhLWR1cmF0aW9uIHsKICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50Owp9CgovKiBGZWVkIGRhdGUvdGltZSAqLwoubWpyLWJvdHRvbS1mZWVkIC5tanItbWV0YS1kYXRlLAoubWpyLWJvdHRvbS1mZWVkIC5tanItbWV0YS10aW1lLXZhbCB7CiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KLm1qci1ib3R0b20tZmVlZCAubWpyLWdyaWQubWpyLWZlZWQtc2hvdy1kYXRlIC5tanItbWV0YS1kYXRlLAoubWpyLWJvdHRvbS1mZWVkIC5tanItZ3JpZC5tanItZmVlZC1zaG93LWRhdGUgLm1qci1tZXRhLXRpbWUtdmFsIHsKICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50Owp9CgovKiBGZWVkIGdlbmVyYXRpb24gdGltZSBiYWRnZSAqLwoubWpyLWJvdHRvbS1mZWVkIC5tanItbWV0YS1nZW50aW1lIHsKICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoubWpyLWJvdHRvbS1mZWVkIC5tanItZ3JpZC5tanItZmVlZC1zaG93LWdlbnRpbWUgLm1qci1tZXRhLWdlbnRpbWUgewogICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsKfQoKLyogRmVlZCB3b3JrZmxvdyBkb3QgKi8KLm1qci1ib3R0b20tZmVlZCAubWpyLWNhcmQtZG90LXdyYXBwZXIgewogICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9Ci5tanItYm90dG9tLWZlZWQgLm1qci1ncmlkLm1qci1mZWVkLXNob3ctZG90IC5tanItY2FyZC1kb3Qtd3JhcHBlciB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50Owp9CgovKiBGZWVkIGJhZGdlcyAqLwoubWpyLWJvdHRvbS1mZWVkIC5tanItYmFkZ2UtZXh0IHsKICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoubWpyLWJvdHRvbS1mZWVkIC5tanItZ3JpZC5tanItZmVlZC1zaG93LWJhZGdlcy1leHQgLm1qci1iYWRnZS1leHQgewogICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50Owp9CgoubWpyLWJvdHRvbS1mZWVkIC5tanItYmFkZ2UtcmF0aW5nIHsKICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoubWpyLWJvdHRvbS1mZWVkIC5tanItZ3JpZC5tanItZmVlZC1zaG93LWJhZGdlcy1yYXRpbmcgLm1qci1iYWRnZS1yYXRpbmcgewogICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50Owp9CgoubWpyLWJvdHRvbS1mZWVkIC5tanItYmFkZ2UtdGFncyB7CiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KLm1qci1ib3R0b20tZmVlZCAubWpyLWdyaWQubWpyLWZlZWQtc2hvdy1iYWRnZXMtdGFncyAubWpyLWJhZGdlLXRhZ3MgewogICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50Owp9CgovKiBGZWVkIG1ldGEgcm93IHN0eWxpbmcgLSBmbGV4IGxheW91dCBzbyB2aXNpYmxlIGl0ZW1zIHN0YXkgc2VwYXJhdGVkICovCi5tanItYm90dG9tLWZlZWQgLm1qci1jYXJkLW1ldGEtcm93IHsKICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7CiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7CiAgICBnYXA6IDVweCAhaW1wb3J0YW50OwogICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OwogICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7CiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICBsaW5lLWhlaWdodDogMS4zICFpbXBvcnRhbnQ7CiAgICBvcGFjaXR5OiAwLjc4ICFpbXBvcnRhbnQ7CiAgICBmb250LXNpemU6IDAuOGVtICFpbXBvcnRhbnQ7CiAgICAvKiB0ZXh0LW92ZXJmbG93IGVsbGlwc2lzIGRvZXNuJ3QgYXBwbHkgb24gYSBmbGV4IGNvbnRhaW5lciBpdHNlbGYgKi8KfQovKiBFYWNoIG1ldGEgc3BhbiB0cnVuY2F0ZXMgaW5kaXZpZHVhbGx5IGlmIHRvbyBsb25nICovCi5tanItYm90dG9tLWZlZWQgLm1qci1jYXJkLW1ldGEtcm93ID4gc3BhbiB7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgbWluLXdpZHRoOiAwOwogICAgZmxleC1zaHJpbms6IDE7Cn0KLyogR2VudGltZSBiYWRnZSBhbmQgdGltZSB2YWx1ZSBzaG91bGQgc3RheSB2aXNpYmxlIChkb24ndCBzaHJpbmsgYXdheSkgKi8KLm1qci1ib3R0b20tZmVlZCAubWpyLWNhcmQtbWV0YS1yb3cgPiAubWpyLW1ldGEtZ2VudGltZSwKLm1qci1ib3R0b20tZmVlZCAubWpyLWNhcmQtbWV0YS1yb3cgPiAubWpyLW1ldGEtdGltZS12YWwgewogICAgZmxleC1zaHJpbms6IDA7Cn0KCi5tanItYm90dG9tLWZlZWQgLm1qci1ncmlkLm1qci1mZWVkLXNob3ctZ2VudGltZSAubWpyLW1ldGEtZ2VudGltZSB7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAzcHg7CiAgICBwYWRkaW5nOiAzcHggN3B4OwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwLCAxNCwgMjAsIDAuNzQpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTsKICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMjIpOwogICAgZm9udC1zaXplOiAxMHB4OwogICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDE1ZW07CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk4KTsKICAgIHRleHQtc2hhZG93OgogICAgICAgIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuOSksCiAgICAgICAgMCAwIDEwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTsKICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpOwogICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTsKfQoKLyogLS0gQXVkaW8gLyAzRCBwbGFjZWhvbGRlciB0aHVtYm5haWxzIGluIHRoZSBmZWVkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCi8qIEF1ZGlvIGNhcmRzIHNob3cgdGhlIHdhdmVmb3JtIHNwcml0ZTsgZ2l2ZSBpdCBhIGRpc3RpbmN0IGJhY2tncm91bmQgc28gaXQKICAgZG9lc24ndCBsb29rIGxpa2UgYSBicm9rZW4gaW1hZ2UgcGxhY2Vob2xkZXIgaW4gdGhlIGZlZWQuICovCi5tanItYm90dG9tLWZlZWQgLm1qci1hc3NldC1jYXJkW2RhdGEtbWpyLWtpbmQ9ImF1ZGlvIl0gLm1qci10aHVtYiwKLm1qci1ib3R0b20tZmVlZCAubWpyLWFzc2V0LWNhcmRbZGF0YS1tanItZXh0PSJtcDMiXSAubWpyLXRodW1iLAoubWpyLWJvdHRvbS1mZWVkIC5tanItYXNzZXQtY2FyZFtkYXRhLW1qci1leHQ9IndhdiJdIC5tanItdGh1bWIsCi5tanItYm90dG9tLWZlZWQgLm1qci1hc3NldC1jYXJkW2RhdGEtbWpyLWV4dD0ib2dnIl0gLm1qci10aHVtYiwKLm1qci1ib3R0b20tZmVlZCAubWpyLWFzc2V0LWNhcmRbZGF0YS1tanItZXh0PSJmbGFjIl0gLm1qci10aHVtYiB7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMCkgNjAlLCAjMWExZjJiIDQwJSkgIWltcG9ydGFudDsKfQoKLyogM0QgbW9kZWwgY2FyZHMgdXNlIGFuIGljb24gcGxhY2Vob2xkZXIgLSBhZGQgYSBzdWJ0bGUgZ3JhZGllbnQgc28gdGhleSByZWFkCiAgIGFzIGludGVudGlvbmFsIHJhdGhlciB0aGFuIG1pc3NpbmcuICovCi5tanItYm90dG9tLWZlZWQgLm1qci1hc3NldC1jYXJkW2RhdGEtbWpyLWtpbmQ9Im1vZGVsM2QiXSAubWpyLXRodW1iLAoubWpyLWJvdHRvbS1mZWVkIC5tanItYXNzZXQtY2FyZFtkYXRhLW1qci1leHQ9ImdsYiJdIC5tanItdGh1bWIsCi5tanItYm90dG9tLWZlZWQgLm1qci1hc3NldC1jYXJkW2RhdGEtbWpyLWV4dD0iZ2x0ZiJdIC5tanItdGh1bWIsCi5tanItYm90dG9tLWZlZWQgLm1qci1hc3NldC1jYXJkW2RhdGEtbWpyLWV4dD0ib2JqIl0gLm1qci10aHVtYiwKLm1qci1ib3R0b20tZmVlZCAubWpyLWFzc2V0LWNhcmRbZGF0YS1tanItZXh0PSJmYngiXSAubWpyLXRodW1iIHsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0wKSA1MCUsICMwZDExMTcgNTAlKSAhaW1wb3J0YW50Owp9CgovKiAtLSBGZWVkIGdyb3VwIGJ1dHRvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCi5tanItYm90dG9tLWZlZWQgLm1qci1mZWVkLWdyb3VwLWJ1dHRvbiB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDM0cHg7CiAgICByaWdodDogNnB4OwogICAgei1pbmRleDogMTE7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGdhcDogNHB4OwogICAgbWluLXdpZHRoOiAyOHB4OwogICAgbWluLWhlaWdodDogMjhweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpOwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwLCAxNCwgMjAsIDAuNzQpOwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Nik7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDE7CiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjI0KTsKICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpOwogICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOwogICAgdHJhbnNpdGlvbjoKICAgICAgICBiYWNrZ3JvdW5kIDEyMG1zIGVhc2UsCiAgICAgICAgdHJhbnNmb3JtIDgwbXMgZWFzZTsKfQoKLm1qci1ib3R0b20tZmVlZCAubWpyLWZlZWQtZ3JvdXAtYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMTgsIDI0LCAzNCwgMC45KTsKfQoKLm1qci1mZWVkLWdyb3VwLWJ1dHRvbi1pY29uIHsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIG9wYWNpdHk6IDAuOTsKfQoKLm1qci1mZWVkLWdyb3VwLWJ1dHRvbi1jb3VudCB7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDE7Cn0KCi8qIC0tIEZlZWQgZ3JvdXAgcG9wb3ZlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKLm1qci1mZWVkLWdyb3VwLXBvcG92ZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tY29tZnktbWVudS1iZywgIzIyMik7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IsICMzYTNhM2EpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbWpyLXItbGcsIDhweCk7CiAgICBib3gtc2hhZG93OiAwIDhweCAyOHB4IHJnYmEoMCwgMCwgMCwgMC40NSk7CiAgICBvdmVyZmxvdzogaGlkZGVuOwp9CgoubWpyLWZlZWQtZ3JvdXAtcG9wb3Zlci10aXRsZSB7CiAgICBwYWRkaW5nOiA4cHggMTBweCA0cHg7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKfQoKLm1qci1mZWVkLWdyb3VwLXBvcG92ZXItZ3JpZCB7CiAgICBwYWRkaW5nOiA0cHggOHB4IDEwcHg7CiAgICBtYXgtaGVpZ2h0OiAzNjBweDsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlOwogICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgc2Nyb2xsYmFyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMiwgIzJmMzU0MCkgNzAlLCAjN2Y4ZWEzIDMwJSkKICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMCwgIzE2MTkxZikgODglLCAjMDAwIDEyJSk7Cn0KCi5tanItZmVlZC1ncm91cC1idXR0b24taWNvbiwKLm1qci1mZWVkLWdyb3VwLWJ1dHRvbi1jb3VudCB7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQoKLm1qci1mZWVkLWdyb3VwLW1lbWJlci1jYXJkIHsKICAgIG1pbi13aWR0aDogMDsKfQoKLm1qci1mZWVkLWdyb3VwLW1lbWJlci1jYXJkIC5tanItdGh1bWIgewogICAgYXNwZWN0LXJhdGlvOiAxIC8gMSAhaW1wb3J0YW50Owp9CgoubWpyLWZlZWQtZ3JvdXAtbWVtYmVyLWNhcmQgLm1qci1jYXJkLWluZm8gewogICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItc3RhY2stZ3JvdXAtYnV0dG9uIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMzRweDsKICAgIHJpZ2h0OiA2cHg7CiAgICB6LWluZGV4OiAxMTsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZ2FwOiA0cHg7CiAgICBtaW4td2lkdGg6IDI4cHg7CiAgICBtaW4taGVpZ2h0OiAyOHB4OwogICAgcGFkZGluZzogNHB4IDhweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMTAsIDE0LCAyMCwgMC43NCk7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk2KTsKICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7CiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTsKICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDZweCk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsKICAgIHRyYW5zaXRpb246CiAgICAgICAgYmFja2dyb3VuZCAxMjBtcyBlYXNlLAogICAgICAgIHRyYW5zZm9ybSA4MG1zIGVhc2U7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1zdGFjay1ncm91cC1idXR0b246aG92ZXIgewogICAgYmFja2dyb3VuZDogcmdiYSgxOCwgMjQsIDM0LCAwLjkpOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItc3RhY2stZ3JvdXAtYnV0dG9uID4gKiB7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQoKLm1qci1maWxtc3RyaXA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgIHdpZHRoOiA0cHg7CiAgICBoZWlnaHQ6IDRweDsKfQoKLm1qci1maWxtc3RyaXA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Owp9CgoubWpyLWZpbG1zdHJpcDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpOwp9CgoubWpyLWZpbG1zdHJpcDpob3Zlcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKTsKfQoKLm1qci1maWxtc3RyaXAtYXVkaW8tdGh1bWIgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgaW5zZXQ6IDA7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGdhcDogNXB4OwogICAgcGFkZGluZzogN3B4OwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Mik7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGJhY2tncm91bmQ6CiAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAyNCUgMjQlLCByZ2JhKDc4LCAxODQsIDI1NSwgMC4yOCksIHRyYW5zcGFyZW50IDQyJSksCiAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4NCUgNzAlLCByZ2JhKDgyLCAyMjAsIDE1NiwgMC4xOCksIHRyYW5zcGFyZW50IDQwJSksCiAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxOCwgMjUsIDM1LCAwLjk2KSwgcmdiYSg3LCAxMCwgMTUsIDAuOTgpKTsKfQoKLm1qci1maWxtc3RyaXAtYXVkaW8td2F2ZWZvcm0gewogICAgd2lkdGg6IDc2JTsKICAgIGhlaWdodDogMjRweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBnYXA6IDJweDsKfQoKLm1qci1maWxtc3RyaXAtYXVkaW8td2F2ZWZvcm0gc3BhbiB7CiAgICB3aWR0aDogMnB4OwogICAgbWluLWhlaWdodDogNHB4OwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTQpLCByZ2JhKDE0OCwgMjE4LCAyNTUsIDAuNjgpKTsKfQoKLm1qci1maWxtc3RyaXAtYXVkaW8tbGFiZWwgewogICAgbWF4LXdpZHRoOiAxMDAlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIHBhZGRpbmc6IDJweCA1cHg7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yOCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7CiAgICBmb250LXNpemU6IDdweDsKICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICBsaW5lLWhlaWdodDogMTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLXN0YWNrLWdyb3VwLWJ1dHRvbi1jb3VudCB7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDE7Cn0KCi8qIC0tIER1cGxpY2F0ZSBzdGFjayBidXR0b24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi8qIFNob3dzIG9uIHRoZSBwcmltYXJ5IGNhcmQgd2hlbiBzYW1lLWZpbGVuYW1lIGR1cGxpY2F0ZXMgZXhpc3QuICAgICAgICAgICAgICovCi8qIFBvc2l0aW9uZWQgYXQgYm90dG9tLXJpZ2h0IHRvIG5vdCBvdmVybGFwIHRoZSBzdGFjay1ncm91cCBidXR0b24gKHRvcC1yaWdodCkuICovCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1kdXAtc3RhY2stYnV0dG9uIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJvdHRvbTogMzBweDsKICAgIHJpZ2h0OiA2cHg7CiAgICB6LWluZGV4OiAxMTsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZ2FwOiA0cHg7CiAgICBtaW4td2lkdGg6IDI4cHg7CiAgICBtaW4taGVpZ2h0OiAyOHB4OwogICAgcGFkZGluZzogNHB4IDhweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAxODAsIDAsIDAuMzgpOwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDMwLCAxOCwgMCwgMC44Mik7CiAgICBjb2xvcjogcmdiYSgyNTUsIDIwMCwgNjAsIDAuOTYpOwogICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4zMik7CiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTsKICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDZweCk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBsaW5lLWhlaWdodDogMTsKICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOwogICAgdHJhbnNpdGlvbjoKICAgICAgICBiYWNrZ3JvdW5kIDAuMTVzLAogICAgICAgIHRyYW5zZm9ybSA4MG1zIGVhc2U7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1kdXAtc3RhY2stYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoNTAsIDMwLCAwLCAwLjk0KTsKICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDE4MCwgMCwgMC42KTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWR1cC1zdGFjay1idXR0b24gPiAqIHsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItZHVwLXN0YWNrLWNvdW50IHsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBsaW5lLWhlaWdodDogMTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmRbZGF0YS1tanItZHVwLXN0YWNrZWQ9InRydWUiXSAubWpyLWR1cC1zdGFjay1idXR0b24gewogICAgYm94LXNoYWRvdzoKICAgICAgICAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjMyKSwKICAgICAgICAwIDAgMCAxcHggcmdiYSgyNTUsIDE4MCwgMCwgMC4yKTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmRbZGF0YS1tanItc3RhY2tlZD0idHJ1ZSJdIC5tanItc3RhY2stZ3JvdXAtYnV0dG9uLAoubWpyLWJvdHRvbS1mZWVkIC5tanItYXNzZXQtY2FyZFtkYXRhLW1qci1zdGFja2VkPSJ0cnVlIl0gLm1qci1mZWVkLWdyb3VwLWJ1dHRvbiB7CiAgICBib3gtc2hhZG93OgogICAgICAgIDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMjQpLAogICAgICAgIDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZFtkYXRhLW1qci1zdGFja2VkPSJ0cnVlIl06aG92ZXIsCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hc3NldC1jYXJkW2RhdGEtbWpyLWR1cC1zdGFja2VkPSJ0cnVlIl06aG92ZXIgewogICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7Cn0KCi8qIC0tIFZpc3VhbCBzdGFja2luZyBlZmZlY3QgLSBsYXllcmVkIGNhcmRzIGJlaGluZCB0aGUgbWFpbiBjYXJkIC0tLS0tLS0tLS0tLSAqLwovKiBDcmVhdGVzIHBzZXVkby1lbGVtZW50ICJjYXJkcyIgb2Zmc2V0IGJlaGluZCB0aGUgcHJpbWFyeSBjYXJkIHRvIHZpc3VhbGx5ICAgICovCi8qIGNvbW11bmljYXRlIHRoYXQgdGhpcyBjYXJkIHJlcHJlc2VudHMgYSBncm91cCBvZiBtdWx0aXBsZSBpbWFnZXMuICAgICAgICAgICAgKi8KLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmRbZGF0YS1tanItc3RhY2tlZD0idHJ1ZSJdIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHotaW5kZXg6IDE7Cn0KCi5tanItYXNzZXRzLW1hbmFnZXIgLm1qci1hc3NldC1jYXJkW2RhdGEtbWpyLXN0YWNrZWQ9InRydWUiXTo6YmVmb3JlLAoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZFtkYXRhLW1qci1zdGFja2VkPSJ0cnVlIl06OmFmdGVyIHsKICAgIGNvbnRlbnQ6ICIiOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgaW5zZXQ6IDA7CiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0OwogICAgYmFja2dyb3VuZDogdmFyKC0tY29tZnktbWVudS1iZywgIzFhMWEyZSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB6LWluZGV4OiAtMTsKICAgIHRyYW5zaXRpb246CiAgICAgICAgdHJhbnNmb3JtIDE4MG1zIGVhc2UsCiAgICAgICAgb3BhY2l0eSAxODBtcyBlYXNlOwp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZFtkYXRhLW1qci1zdGFja2VkPSJ0cnVlIl06OmJlZm9yZSB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzcHgsIDNweCkgcm90YXRlKDFkZWcpOwogICAgb3BhY2l0eTogMC40NTsKfQoKLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFzc2V0LWNhcmRbZGF0YS1tanItc3RhY2tlZD0idHJ1ZSJdOjphZnRlciB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg2cHgsIDZweCkgcm90YXRlKDIuMmRlZyk7CiAgICBvcGFjaXR5OiAwLjI1Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZFtkYXRhLW1qci1zdGFja2VkPSJ0cnVlIl06aG92ZXI6OmJlZm9yZSB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg0cHgsIDRweCkgcm90YXRlKDEuNWRlZyk7CiAgICBvcGFjaXR5OiAwLjU1Owp9CgoubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYXNzZXQtY2FyZFtkYXRhLW1qci1zdGFja2VkPSJ0cnVlIl06aG92ZXI6OmFmdGVyIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDhweCwgOHB4KSByb3RhdGUoM2RlZyk7CiAgICBvcGFjaXR5OiAwLjM1Owp9CgoubWpyLXN0YWNrLWdyb3VwLXBvcG92ZXIgewogICAgd2lkdGg6IG1pbig0NDBweCwgOTJ2dyk7Cn0KCi5tanItc3RhY2stZ3JvdXAtbWVtYmVyLWNhcmQgewogICAgbWluLXdpZHRoOiAwOwp9CgoubWpyLXN0YWNrLWdyb3VwLW1lbWJlci1jYXJkIC5tanItdGh1bWIgewogICAgYXNwZWN0LXJhdGlvOiAxIC8gMSAhaW1wb3J0YW50Owp9CgoubWpyLXN0YWNrLWdyb3VwLW1lbWJlci1jYXJkIC5tanItY2FyZC1pbmZvIHsKICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIExpZ2h0IG1vZGUgb3ZlcnJpZGVzIChDb21meVVJIHYxLjQyKyBpbXByb3ZlZCBsaWdodCB0aGVtZSkKICogVXNlcyBDb21meVVJIGRhdGEtdGhlbWUgYXR0cmlidXRlIHdoZW4gc2V0LCB3aXRoCiAqIHByZWZlcnMtY29sb3Itc2NoZW1lIGFzIGEgZmFsbGJhY2sgZm9yIG9sZGVyIHZlcnNpb25zLgogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCi8qIENvbWZ5VUkgc2V0cyBkYXRhLXRoZW1lPSJsaWdodCIgb24gPGh0bWw+IG9yIDxib2R5PiAqLwo6aXMoW2RhdGEtdGhlbWU9ImxpZ2h0Il0sIFtkYXRhLWNvbG9yLXNjaGVtZT0ibGlnaHQiXSkgLm1qci1hc3NldHMtbWFuYWdlciwKOmlzKFtkYXRhLXRoZW1lPSJsaWdodCJdLCBbZGF0YS1jb2xvci1zY2hlbWU9ImxpZ2h0Il0pIC5tanItcG9wb3ZlciB7CiAgICAtLW1qci1zdXJmYWNlLTA6IHZhcigtLWludGVyZmFjZS1wYW5lbC1zdXJmYWNlLCAjZjBmMGYwKTsKICAgIC0tbWpyLXN1cmZhY2UtMTogdmFyKC0taW50ZXJmYWNlLW1lbnUtc3VyZmFjZSwgI2ZhZmFmYSk7CiAgICAtLW1qci1zdXJmYWNlLTI6IHZhcigtLWludGVyZmFjZS1wYW5lbC1ob3Zlci1zdXJmYWNlLCAjZThlOGU4KTsKICAgIC0tbWpyLXN1cmZhY2UtMzogdmFyKC0tbW9kYWwtY2FyZC1iYWNrZ3JvdW5kLCAjZmZmZmZmKTsKICAgIC0tbWpyLWJvcmRlcjogdmFyKC0tYm9yZGVyLWRlZmF1bHQsIHJnYmEoMCwgMCwgMCwgMC4xNCkpOwogICAgLS1tanItbXV0ZWQ6IHZhcigtLW11dGVkLWZvcmVncm91bmQsIHJnYmEoMCwgMCwgMCwgMC41NSkpOwogICAgLS1tanItY2FyZC1ob3Zlci1jb2xvcjogdmFyKC0taW50ZXJmYWNlLXBhbmVsLWhvdmVyLXN1cmZhY2UsICNlMGUwZTApOwp9CgpAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBsaWdodCkgewogICAgLyogRmFsbGJhY2s6IG9ubHkgYXBwbHkgaWYgQ29tZnlVSSBoYXNuJ3Qgc2V0IGFuIGV4cGxpY2l0IGRhdGEtdGhlbWUgKi8KICAgIC5tanItYXNzZXRzLW1hbmFnZXI6bm90KFtkYXRhLXRoZW1lLWFwcGxpZWRdKSwKICAgIC5tanItcG9wb3Zlcjpub3QoW2RhdGEtdGhlbWUtYXBwbGllZF0pIHsKICAgICAgICAtLW1qci1zdXJmYWNlLTA6IHZhcigtLWludGVyZmFjZS1wYW5lbC1zdXJmYWNlLCAjZjBmMGYwKTsKICAgICAgICAtLW1qci1zdXJmYWNlLTE6IHZhcigtLWludGVyZmFjZS1tZW51LXN1cmZhY2UsICNmYWZhZmEpOwogICAgICAgIC0tbWpyLXN1cmZhY2UtMjogdmFyKC0taW50ZXJmYWNlLXBhbmVsLWhvdmVyLXN1cmZhY2UsICNlOGU4ZTgpOwogICAgICAgIC0tbWpyLXN1cmZhY2UtMzogdmFyKC0tbW9kYWwtY2FyZC1iYWNrZ3JvdW5kLCAjZmZmZmZmKTsKICAgICAgICAtLW1qci1ib3JkZXI6IHZhcigtLWJvcmRlci1kZWZhdWx0LCByZ2JhKDAsIDAsIDAsIDAuMTQpKTsKICAgICAgICAtLW1qci1tdXRlZDogdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjU1KSk7CiAgICAgICAgLS1tanItY2FyZC1ob3Zlci1jb2xvcjogdmFyKC0taW50ZXJmYWNlLXBhbmVsLWhvdmVyLXN1cmZhY2UsICNlMGUwZTApOwogICAgfQp9CgovKiAtLS0gU2tlbGV0b24gbG9hZGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKLm1qci1jYXJkLXNrZWxldG9uIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLW1qci1zdXJmYWNlLTEsICMyYTJhMmEpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWpyLWJvcmRlciwgIzNhM2EzYSk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1tanItci1sZywgOHB4KTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAvKiBNYXRjaCAubWpyLXRodW1iIGFzcGVjdCByYXRpbyBzbyBza2VsZXRvbnMgaGF2ZSB0aGUgc2FtZSBmb290cHJpbnQgYXMgcmVhbCBjYXJkcy4gKi8KICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7Cn0KCi8qIFNoaW1tZXIgc3dlZXAgKi8KLm1qci1jYXJkLXNrZWxldG9uOjphZnRlciB7CiAgICBjb250ZW50OiAiIjsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAwOwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgIDkwZGVnLAogICAgICAgIHRyYW5zcGFyZW50IDAlLAogICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0yLCAjM2EzYTNhKSA4MCUsIHRyYW5zcGFyZW50KSA1MCUsCiAgICAgICAgdHJhbnNwYXJlbnQgMTAwJQogICAgKTsKICAgIGFuaW1hdGlvbjogbWpyLXNoaW1tZXIgMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7Cn0KCkBrZXlmcmFtZXMgbWpyLXNoaW1tZXIgewogICAgZnJvbSB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsKICAgIH0KICAgIHRvIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7CiAgICB9Cn0KCkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgICAubWpyLWNhcmQtc2tlbGV0b246OmFmdGVyIHsKICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICB9Cn0KCi8qIC0tLSBSZXNwb25zaXZlIHN1bW1hcnkgYmFyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgovKgogKiBFbmFibGUgY29udGFpbmVyIHF1ZXJpZXMgb24gdGhlIHN1bW1hcnkgYmFyIHNvIGNoaWxkcmVuIGNhbiByZXNwb25kIHRvIGl0cwogKiBhY3R1YWwgcmVuZGVyZWQgd2lkdGggKGUuZy4gd2hlbiB0aGUgcGFuZWwgaXMgZG9ja2VkIGluIGEgbmFycm93IHNpZGViYXIpLgogKi8KLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFtLXN1bW1hcnkgewogICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplOwogICAgY29udGFpbmVyLW5hbWU6IG1qci1zdW1tYXJ5LWJhcjsKfQoKLyogQmVsb3cgfjM4MCBweDogaGlkZSB0aGUgcGlsbHMvcmlnaHQgc2VjdGlvbiB0byBwcmV2ZW50IG92ZXJmbG93LiAqLwpAY29udGFpbmVyIG1qci1zdW1tYXJ5LWJhciAobWF4LXdpZHRoOiAzODBweCkgewogICAgLm1qci1hc3NldHMtbWFuYWdlciAubWpyLWFtLXN1bW1hcnktcmlnaHQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CiAgICAubWpyLWFzc2V0cy1tYW5hZ2VyIC5tanItYW0tc3VtbWFyeS10ZXh0IHsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICB9Cn0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIFN0dWRpbyB2aWV3ZXIgKG1haW4gdmlld2VyKSAtIC5tanItc3R1ZGlvCiAqIE5ldXRyYWwgZGFyayBzdGFnZSBzbyBnZW5lcmF0ZWQgY29sb3VycyBhcmUganVkZ2VkIGFjY3VyYXRlbHk7IGNocm9tZSB1c2VzCiAqIENvbWZ5VUkgdG9rZW5zIHRocm91Z2ggdGhlIC0tbWpyLSogYWxpYXNlcy4KICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi5tanItc3R1ZGlvIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIGluc2V0OiAwOwogICAgLyogQWJvdmUgdGhlIGZsb2F0aW5nIHZpZXdlciAoMTAwMDApICovCiAgICB6LWluZGV4OiAxMDAwMTsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDAsIDFmcikgYXV0bzsKICAgIGJhY2tncm91bmQ6ICMwZDBkMGY7CiAgICBjb2xvcjogdmFyKC0tZmctY29sb3IsICNlNmU2ZTYpOwogICAgb3V0bGluZTogbm9uZTsKICAgIC0tbWpyLXN0dWRpby1jaHJvbWU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItc3VyZmFjZS0xLCAjMjMyMzI3KSA4OCUsIHRyYW5zcGFyZW50KTsKICAgIC0tbWpyLXN0dWRpby1saW5lOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJvcmRlciwgI2ZmZjIpIDcwJSwgdHJhbnNwYXJlbnQpOwp9Ci5tanItc3R1ZGlvX19oZWFkZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEycHg7CiAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLW1qci1zdHVkaW8tY2hyb21lKTsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1tanItc3R1ZGlvLWxpbmUpOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpOwogICAgbWluLXdpZHRoOiAwOwp9Ci5tanItc3R1ZGlvX19uYXYsCi5tanItc3R1ZGlvX19hY3Rpb25zIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA0cHg7CiAgICBmbGV4OiAwIDAgYXV0bzsKfQoubWpyLXN0dWRpb19fY291bnRlciB7CiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgY29sb3I6IHZhcigtLW1qci1tdXRlZCk7CiAgICBtaW4td2lkdGg6IDU0cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KLm1qci1zdHVkaW9fX3RpdGxlIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgbWluLXdpZHRoOiAwOwogICAgZmxleDogMSAxIGF1dG87Cn0KLm1qci1zdHVkaW9fX2ZpbGVuYW1lIHsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBmb250LXNpemU6IDEzLjVweDsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cn0KLm1qci1zdHVkaW9fX3N1bW1hcnkgewogICAgZm9udC1zaXplOiAxMS41cHg7CiAgICBjb2xvcjogdmFyKC0tbWpyLW11dGVkKTsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cn0KLm1qci1zdHVkaW8tYnRuIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZ2FwOiA0cHg7CiAgICBtaW4td2lkdGg6IDMwcHg7CiAgICBoZWlnaHQ6IDMwcHg7CiAgICBwYWRkaW5nOiAwIDdweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogaW5oZXJpdDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGZvbnQ6IGluaGVyaXQ7CiAgICBmb250LXNpemU6IDEycHg7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJzLCBib3JkZXItY29sb3IgMC4xMnMsIGNvbG9yIDAuMTJzOwp9Ci5tanItc3R1ZGlvLWJ0bjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZmctY29sb3IsICNmZmYpIDEwJSwgdHJhbnNwYXJlbnQpOwp9Ci5tanItc3R1ZGlvLWJ0bjpmb2N1cy12aXNpYmxlIHsKICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1tanItYWNjZW50KTsKICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7Cn0KLm1qci1zdHVkaW8tYnRuOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuMzU7CiAgICBjdXJzb3I6IGRlZmF1bHQ7Cn0KLm1qci1zdHVkaW8tYnRuLmlzLW9uIHsKICAgIGNvbG9yOiB2YXIoLS1tanItYWNjZW50KTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYWNjZW50KSAxNiUsIHRyYW5zcGFyZW50KTsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDQwJSwgdHJhbnNwYXJlbnQpOwp9Ci5tanItc3R1ZGlvLWJ0bi5pcy10ZXh0IHsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtOwp9Ci5tanItc3R1ZGlvLWJ0bi5pcy1jbG9zZTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN0YXR1cy1lcnJvciwgI2U1NDg0ZCkgMjglLCB0cmFuc3BhcmVudCk7Cn0KLm1qci1zdHVkaW8tY2hpcCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBoZWlnaHQ6IDIycHg7CiAgICBwYWRkaW5nOiAwIDhweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgZm9udC1zaXplOiAxMXB4OwogICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1mZy1jb2xvciwgI2ZmZikgOCUsIHRyYW5zcGFyZW50KTsKICAgIGNvbG9yOiB2YXIoLS1tanItbXV0ZWQpOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoubWpyLXN0dWRpby1zZWxlY3QgewogICAgaGVpZ2h0OiAyNnB4OwogICAgYm9yZGVyLXJhZGl1czogN3B4OwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWpyLXN0dWRpby1saW5lKTsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY29sb3I6IGluaGVyaXQ7CiAgICBmb250OiBpbmhlcml0OwogICAgZm9udC1zaXplOiAxMnB4OwogICAgcGFkZGluZzogMCA0cHg7Cn0KLm1qci1zdHVkaW9fX2JvZHkgewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWlubWF4KDMwMHB4LCAzODBweCk7CiAgICBtaW4taGVpZ2h0OiAwOwp9Ci5tanItc3R1ZGlvLmlzLWluc3BlY3Rvci1jbG9zZWQgLm1qci1zdHVkaW9fX2JvZHkgewogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTsKfQoubWpyLXN0dWRpb19fc3RhZ2UgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgbWluLXdpZHRoOiAwOwogICAgbWluLWhlaWdodDogMDsKICAgIG92ZXJmbG93OiBoaWRkZW47Cn0KLm1qci1zdHVkaW9fX3Vuc3VwcG9ydGVkIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAwOwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBnYXA6IDEwcHg7CiAgICBjb2xvcjogdmFyKC0tbWpyLW11dGVkKTsKfQoubWpyLXN0dWRpb19fdW5zdXBwb3J0ZWQgLnBpIHsKICAgIGZvbnQtc2l6ZTogNDBweDsKfQoubWpyLXN0dWRpb19faW5zcGVjdG9yIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgbWluLWhlaWdodDogMDsKICAgIGJhY2tncm91bmQ6IHZhcigtLW1qci1zdXJmYWNlLTAsICMxYjFiMWUpOwogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1tanItc3R1ZGlvLWxpbmUpOwp9Ci5tanItc3R1ZGlvX19yZXZpZXcgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBnYXA6IDhweDsKICAgIHBhZGRpbmc6IDEycHggMTRweDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1tanItc3R1ZGlvLWxpbmUpOwp9Ci5tanItc3R1ZGlvX19yZXZpZXctcm93IHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMHB4Owp9Ci5tanItc3R1ZGlvX19sYWJlbCB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTsKICAgIGNvbG9yOiB2YXIoLS1tanItbXV0ZWQpOwp9Ci5tanItc3R1ZGlvX190YWJzIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBnYXA6IDJweDsKICAgIHBhZGRpbmc6IDZweCAxMHB4IDA7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbWpyLXN0dWRpby1saW5lKTsKfQoubWpyLXN0dWRpb19fdGFicyBidXR0b24gewogICAgYm9yZGVyOiBub25lOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogdmFyKC0tbWpyLW11dGVkKTsKICAgIGZvbnQ6IGluaGVyaXQ7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBwYWRkaW5nOiA3cHggMTBweDsKICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGN1cnNvcjogcG9pbnRlcjsKfQoubWpyLXN0dWRpb19fdGFicyBidXR0b24uaXMtYWN0aXZlIHsKICAgIGNvbG9yOiB2YXIoLS1mZy1jb2xvciwgI2ZmZik7CiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1tanItYWNjZW50KTsKfQoubWpyLXN0dWRpb19fdGFiLWJvZHkgewogICAgZmxleDogMSAxIGF1dG87CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIHBhZGRpbmc6IDEycHggMTRweCAxOHB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBnYXA6IDE0cHg7Cn0KLm1qci1zdHVkaW9fX2ZpbG1zdHJpcCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiA2cHg7CiAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tanItc3R1ZGlvLWNocm9tZSk7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tbWpyLXN0dWRpby1saW5lKTsKICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKfQoubWpyLXN0dWRpb19fdGh1bWIgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgZmxleDogMCAwIGF1dG87CiAgICB3aWR0aDogNjRweDsKICAgIGhlaWdodDogNjRweDsKICAgIHBhZGRpbmc6IDA7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGJhY2tncm91bmQ6ICMwMDA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgb3BhY2l0eTogMC42OwogICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjEycywgYm9yZGVyLWNvbG9yIDAuMTJzLCB0cmFuc2Zvcm0gMC4xMnM7Cn0KLm1qci1zdHVkaW9fX3RodW1iOmhvdmVyIHsKICAgIG9wYWNpdHk6IDAuOTsKfQoubWpyLXN0dWRpb19fdGh1bWIuaXMtY3VycmVudCB7CiAgICBvcGFjaXR5OiAxOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tanItYWNjZW50KTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsKfQoubWpyLXN0dWRpb19fdGh1bWIgaW1nIHsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICBkaXNwbGF5OiBibG9jazsKfQoubWpyLXN0dWRpb19fdGh1bWItYmFkZ2UgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgcmlnaHQ6IDRweDsKICAgIGJvdHRvbTogNHB4OwogICAgZm9udC1zaXplOiA5cHg7CiAgICBwYWRkaW5nOiAzcHg7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNjUpOwogICAgY29sb3I6ICNmZmY7Cn0KCi8qIEltYWdlIHN0YWdlICovCi5tanItc3R1ZGlvLXN0YWdlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGN1cnNvcjogZ3JhYjsKICAgIHRvdWNoLWFjdGlvbjogbm9uZTsKfQoubWpyLXN0dWRpby1zdGFnZS5pcy1kcmFnZ2luZyB7CiAgICBjdXJzb3I6IGdyYWJiaW5nOwp9Ci5tanItc3R1ZGlvLXN0YWdlLmlzLWNoZWNrZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJhMmEyYTsKICAgIGJhY2tncm91bmQtaW1hZ2U6CiAgICAgICAgbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjM2EzYTNhIDI1JSwgdHJhbnNwYXJlbnQgMjUlKSwKICAgICAgICBsaW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCAjM2EzYTNhIDI1JSwgdHJhbnNwYXJlbnQgMjUlKSwKICAgICAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHRyYW5zcGFyZW50IDc1JSwgIzNhM2EzYSA3NSUpLAogICAgICAgIGxpbmVhci1ncmFkaWVudCgtNDVkZWcsIHRyYW5zcGFyZW50IDc1JSwgIzNhM2EzYSA3NSUpOwogICAgYmFja2dyb3VuZC1zaXplOiAyMHB4IDIwcHg7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDAsIDAgMTBweCwgMTBweCAtMTBweCwgLTEwcHggMDsKfQoubWpyLXN0dWRpby1zdGFnZV9fYm94IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDUwJTsKICAgIHRvcDogNTAlOwogICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsKICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07Cn0KLm1qci1zdHVkaW8tc3RhZ2VfX2xheWVycyB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogMDsKICAgIGlzb2xhdGlvbjogaXNvbGF0ZTsKfQoubWpyLXN0dWRpby1zdGFnZV9faW1nIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDA7CiAgICB0b3A6IDA7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIG1heC13aWR0aDogbm9uZTsKICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7Cn0KLm1qci1zdHVkaW8tc3RhZ2VfX2Vycm9yIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAwOwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBnYXA6IDhweDsKICAgIGNvbG9yOiB2YXIoLS1tanItbXV0ZWQpOwp9CgovKiBQbGF5ZXIgKi8KLm1qci1zdHVkaW8tcGxheWVyIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAwOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGJhY2tncm91bmQ6ICMwMDA7Cn0KLm1qci1zdHVkaW8tcGxheWVyLmNvbnRyb2xzLWhpZGRlbiB7CiAgICBjdXJzb3I6IG5vbmU7Cn0KLm1qci1zdHVkaW8tcGxheWVyX19tZWRpYSB7CiAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICBtYXgtaGVpZ2h0OiAxMDAlOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBvYmplY3QtZml0OiBjb250YWluOwogICAgZGlzcGxheTogYmxvY2s7Cn0KLm1qci1zdHVkaW8tcGxheWVyX19hdWRpby1hcnQgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMnB4OwogICAgY29sb3I6IHZhcigtLW1qci1tdXRlZCk7CiAgICBjdXJzb3I6IHBvaW50ZXI7Cn0KLm1qci1zdHVkaW8tcGxheWVyX19hdWRpby1hcnQgLnBpIHsKICAgIGZvbnQtc2l6ZTogNjRweDsKICAgIGNvbG9yOiB2YXIoLS1tanItYWNjZW50KTsKfQoubWpyLXN0dWRpby1wbGF5ZXJfX2JpZy1wbGF5IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDUwJTsKICAgIHRvcDogNTAlOwogICAgd2lkdGg6IDcycHg7CiAgICBoZWlnaHQ6IDcycHg7CiAgICBtYXJnaW46IC0zNnB4IDAgMCAtMzZweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNDUpOwogICAgY29sb3I6ICNmZmY7CiAgICBmb250LXNpemU6IDI2cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjEycywgYmFja2dyb3VuZCAwLjEyczsKfQoubWpyLXN0dWRpby1wbGF5ZXJfX2JpZy1wbGF5OmhvdmVyIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNik7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCkgNTUlLCByZ2JhKDAsIDAsIDAsIDAuNCkpOwp9Ci5tanItc3R1ZGlvLXBsYXllci5pcy1hdWRpbyAubWpyLXN0dWRpby1wbGF5ZXJfX2JpZy1wbGF5IHsKICAgIGRpc3BsYXk6IG5vbmU7Cn0KLm1qci1zdHVkaW8tcGxheWVyX19lcnJvciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBjb2xvcjogdmFyKC0tbWpyLXN0YXR1cy1lcnJvciwgI2ZmOGE4YSk7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICBwYWRkaW5nOiAxMHB4IDE0cHg7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7Cn0KLm1qci1zdHVkaW8tcGxheWVyX19jb250cm9scyB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAxMnB4OwogICAgcmlnaHQ6IDEycHg7CiAgICBib3R0b206IDEycHg7CiAgICBwYWRkaW5nOiA2cHggMTBweCA4cHg7CiAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgYmFja2dyb3VuZDogcmdiYSgxMiwgMTIsIDE0LCAwLjcyKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7CiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7CiAgICBjb2xvcjogI2VlZTsKICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycywgdHJhbnNmb3JtIDAuMnM7Cn0KLm1qci1zdHVkaW8tcGxheWVyLmNvbnRyb2xzLWhpZGRlbiAubWpyLXN0dWRpby1wbGF5ZXJfX2NvbnRyb2xzIHsKICAgIG9wYWNpdHk6IDA7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwp9Ci5tanItc3R1ZGlvLXBsYXllcl9fdHJhY2sgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgaGVpZ2h0OiAxOHB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdG91Y2gtYWN0aW9uOiBub25lOwp9Ci5tanItc3R1ZGlvLXBsYXllcl9fdHJhY2s6OmJlZm9yZSwKLm1qci1zdHVkaW8tcGxheWVyX19idWZmZXJlZCwKLm1qci1zdHVkaW8tcGxheWVyX19wcm9ncmVzcywKLm1qci1zdHVkaW8tcGxheWVyX19sb29wIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDA7CiAgICB0b3A6IDdweDsKICAgIGhlaWdodDogNHB4OwogICAgYm9yZGVyLXJhZGl1czogMnB4Owp9Ci5tanItc3R1ZGlvLXBsYXllcl9fdHJhY2s6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiIjsKICAgIHJpZ2h0OiAwOwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTsKfQoubWpyLXN0dWRpby1wbGF5ZXJfX3RyYWNrOmhvdmVyOjpiZWZvcmUsCi5tanItc3R1ZGlvLXBsYXllcl9fdHJhY2s6aG92ZXIgLm1qci1zdHVkaW8tcGxheWVyX19idWZmZXJlZCwKLm1qci1zdHVkaW8tcGxheWVyX190cmFjazpob3ZlciAubWpyLXN0dWRpby1wbGF5ZXJfX3Byb2dyZXNzLAoubWpyLXN0dWRpby1wbGF5ZXJfX3RyYWNrOmhvdmVyIC5tanItc3R1ZGlvLXBsYXllcl9fbG9vcCB7CiAgICB0b3A6IDZweDsKICAgIGhlaWdodDogNnB4Owp9Ci5tanItc3R1ZGlvLXBsYXllcl9fYnVmZmVyZWQgewogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KTsKfQoubWpyLXN0dWRpby1wbGF5ZXJfX2xvb3AgewogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdGF0dXMtd2FybmluZywgI2Y1YTUyNCkgNTUlLCB0cmFuc3BhcmVudCk7Cn0KLm1qci1zdHVkaW8tcGxheWVyX19wcm9ncmVzcyB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tanItYWNjZW50KTsKfQoubWpyLXN0dWRpby1wbGF5ZXJfX3RodW1iIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogM3B4OwogICAgd2lkdGg6IDEycHg7CiAgICBoZWlnaHQ6IDEycHg7CiAgICBtYXJnaW4tbGVmdDogLTZweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDQ1JSwgdHJhbnNwYXJlbnQpOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KLm1qci1zdHVkaW8tcGxheWVyX19ob3ZlciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBib3R0b206IDIycHg7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICBwYWRkaW5nOiAzcHggN3B4OwogICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjg1KTsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KLm1qci1zdHVkaW8tcGxheWVyX19yb3cgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDRweDsKICAgIGZsZXgtd3JhcDogd3JhcDsKfQoubWpyLXN0dWRpby1wbGF5ZXJfX3RpbWUgewogICAgZm9udC1zaXplOiAxMnB4OwogICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgIG1hcmdpbjogMCA2cHg7Cn0KLm1qci1zdHVkaW8tcGxheWVyX190aW1lIC5pcy1kaW0gewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7Cn0KLm1qci1zdHVkaW8tcGxheWVyX19zcGFjZXIgewogICAgZmxleDogMSAxIGF1dG87Cn0KLm1qci1zdHVkaW8tcGxheWVyX19ncm91cCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDJweDsKfQoubWpyLXN0dWRpby1wbGF5ZXJfX3ZvbHVtZSB7CiAgICB3aWR0aDogODBweDsKICAgIGFjY2VudC1jb2xvcjogdmFyKC0tbWpyLWFjY2VudCk7Cn0KQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7CiAgICAubWpyLXN0dWRpb19fYm9keSB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCgwLCAxZnIpIG1pbm1heCgwLCA0MCUpOwogICAgfQogICAgLm1qci1zdHVkaW9fX2luc3BlY3RvciB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLW1qci1zdHVkaW8tbGluZSk7CiAgICB9Cn0KLm1qci1zdHVkaW8tcGxheWVyX192b2x1bWUgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgd2lkdGg6IDgwcHg7CiAgICBoZWlnaHQ6IDE2cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0b3VjaC1hY3Rpb246IG5vbmU7Cn0KLm1qci1zdHVkaW8tcGxheWVyX192b2x1bWU6OmJlZm9yZSwKLm1qci1zdHVkaW8tcGxheWVyX192b2x1bWUtZmlsbCB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAwOwogICAgdG9wOiA2cHg7CiAgICBoZWlnaHQ6IDRweDsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKfQoubWpyLXN0dWRpby1wbGF5ZXJfX3ZvbHVtZTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICIiOwogICAgcmlnaHQ6IDA7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpOwp9Ci5tanItc3R1ZGlvLXBsYXllcl9fdm9sdW1lLWZpbGwgewogICAgYmFja2dyb3VuZDogI2ZmZjsKfQoKLyogU3R1ZGlvIHBsYXllciBpbnNpZGUgdGhlIGZsb2F0aW5nIHZpZXdlciAoY29tcGFjdCwgd2lkdGgtYXdhcmUpLiAqLwoubWpyLW1mdi1wbGF5ZXItaG9zdC0tc3R1ZGlvIHsKICAgIGJhY2tncm91bmQ6ICMwMDA7Cn0KLm1qci1zdHVkaW8tcGxheWVyLmlzLWNvbXBhY3QgLm1qci1zdHVkaW8tcGxheWVyX19jb250cm9scyB7CiAgICBsZWZ0OiA2cHg7CiAgICByaWdodDogNnB4OwogICAgYm90dG9tOiA2cHg7CiAgICBwYWRkaW5nOiA0cHggNnB4IDZweDsKICAgIGJvcmRlci1yYWRpdXM6IDlweDsKfQoubWpyLXN0dWRpby1wbGF5ZXIuaXMtY29tcGFjdCAubWpyLXN0dWRpby1idG4gewogICAgbWluLXdpZHRoOiAyNnB4OwogICAgaGVpZ2h0OiAyNnB4OwogICAgcGFkZGluZzogMCA1cHg7CiAgICBib3JkZXItcmFkaXVzOiA3cHg7Cn0KLm1qci1zdHVkaW8tcGxheWVyLmlzLWNvbXBhY3QgLm1qci1zdHVkaW8tcGxheWVyX190aW1lIHsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIG1hcmdpbjogMCA0cHg7Cn0KLm1qci1zdHVkaW8tcGxheWVyLmlzLWNvbXBhY3QgLm1qci1zdHVkaW8tcGxheWVyX19iaWctcGxheSB7CiAgICB3aWR0aDogNTJweDsKICAgIGhlaWdodDogNTJweDsKICAgIG1hcmdpbjogLTI2cHggMCAwIC0yNnB4OwogICAgZm9udC1zaXplOiAxOHB4Owp9Ci5tanItc3R1ZGlvLXBsYXllci5pcy1jb21wYWN0IC5tanItc3R1ZGlvLXBsYXllcl9fdm9sdW1lIHsKICAgIHdpZHRoOiA1NnB4Owp9Ci5tanItc3R1ZGlvLXBsYXllci5pcy1jb21wYWN0IC5tanItc3R1ZGlvLXBsYXllcl9fYXVkaW8tYXJ0IC5waSB7CiAgICBmb250LXNpemU6IDQwcHg7Cn0KQGNvbnRhaW5lciAobWF4LXdpZHRoOiA1MjBweCkgewogICAgLm1qci1zdHVkaW8tcGxheWVyLmlzLWNvbXBhY3QgLm1qci1zdHVkaW8tcGxheWVyX192b2x1bWUsCiAgICAubWpyLXN0dWRpby1wbGF5ZXIuaXMtY29tcGFjdCAubWpyLXN0dWRpby1jaGlwIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgfQp9CkBjb250YWluZXIgKG1heC13aWR0aDogMzgwcHgpIHsKICAgIC5tanItc3R1ZGlvLXBsYXllci5pcy1jb21wYWN0IC5tanItc3R1ZGlvLXBsYXllcl9fZ3JvdXAsCiAgICAubWpyLXN0dWRpby1wbGF5ZXIuaXMtY29tcGFjdCAubWpyLXN0dWRpby1wbGF5ZXJfX3RpbWUgLmlzLWRpbSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogRmxvYXRpbmcgdmlld2VyIHJlZnJlc2ggLSBhbGlnbmVkIHdpdGggdGhlIFN0dWRpbyB2aWV3ZXIuCiAqIFB1cmUgdmlzdWFsIGxheWVyIChhcHBlbmRlZCBsYXN0KTogZmxhdCBidXR0b25zIHRoYXQgbGlnaHQgdXAgb24gaG92ZXIgLwogKiB3aGVuIGFjdGl2ZSwgc29mdGVyIHdpbmRvdyBjaHJvbWUsIG5ldXRyYWwgc3RhZ2UuIFN0YXRlIGNvbG91cnMgKGxpdmUsCiAqIHByZXZpZXcsIG5vZGUgc3RyZWFtKSBrZWVwIHRoZWlyIGRlZGljYXRlZCBydWxlcyBhYm92ZS4KICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi5tanItbWZ2IHsKICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWJvcmRlcikgODAlLCB0cmFuc3BhcmVudCk7CiAgICBib3gtc2hhZG93OgogICAgICAgIDAgMThweCA0OHB4IHJnYmEoMCwgMCwgMCwgMC40NSksCiAgICAgICAgMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKfQoubWpyLW1mdi1oZWFkZXIgewogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTEpIDkyJSwgdHJhbnNwYXJlbnQpOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpOwp9Ci5tanItbWZ2LXRvb2xiYXIgewogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTEpIDcwJSwgdmFyKC0tbWpyLXN1cmZhY2UtMCkgMzAlKTsKICAgIGdhcDogMnB4Owp9Ci5tanItbWZ2IC5tanItaWNvbi1idG4gewogICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgYm9yZGVyLXJhZGl1czogOHB4Owp9Ci5tanItbWZ2IC5tanItaWNvbi1idG46aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb250ZW50LWZnLCAjZmZmKSAxMCUsIHRyYW5zcGFyZW50KTsKICAgIHRyYW5zZm9ybTogbm9uZTsKfQoubWpyLW1mdiAubWpyLWljb24tYnRuW2FyaWEtcHJlc3NlZD0idHJ1ZSJdIHsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDQwJSwgdHJhbnNwYXJlbnQpOwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDE2JSwgdHJhbnNwYXJlbnQpOwogICAgYm94LXNoYWRvdzogbm9uZTsKfQoubWpyLW1mdiAubWpyLWljb24tYnRuLm1qci1saXZlLWFjdGl2ZSB7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN0YXR1cy1zdWNjZXNzKSAxNiUsIHRyYW5zcGFyZW50KTsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdGF0dXMtc3VjY2VzcykgNDUlLCB0cmFuc3BhcmVudCk7CiAgICBib3gtc2hhZG93OiBub25lOwp9Ci5tanItbWZ2IC5tanItaWNvbi1idG4ubWpyLXByZXZpZXctYWN0aXZlIHsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tanItYWNjZW50KSAxNiUsIHRyYW5zcGFyZW50KTsKICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1hY2NlbnQpIDQ1JSwgdHJhbnNwYXJlbnQpOwogICAgYm94LXNoYWRvdzogbm9uZTsKfQoubWpyLW1mdiAubWpyLW1mdi1zaW1wbGUtY29udGFpbmVyLAoubWpyLW1mdiAubWpyLW1mdi1wbGF5ZXItaG9zdCB7CiAgICBiYWNrZ3JvdW5kOiAjMGQwZDBmOwp9Ci5tanItbWZ2Lm1qci1tZnYtLXBvcHBlZCwKLm1qci1tZnYubWpyLW1mdi0tZGVza3RvcC1leHBhbmRlZCB7CiAgICBib3JkZXItcmFkaXVzOiAwOwogICAgYm9yZGVyOiBub25lOwogICAgYm94LXNoYWRvdzogbm9uZTsKfQoKCi8qIOKUgOKUgOKUgCBTdHVkaW8gcmV2aWV3IHRvb2xzIChIVUQgcmFpbCwgY29tcGFyZSwgb3ZlcmxheXMpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqLwoubWpyLXN0dWRpby1meC1kZWZzIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHdpZHRoOiAwOwogICAgaGVpZ2h0OiAwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwp9Ci5tanItc3R1ZGlvLXN0YWdlLmlzLXByb2JpbmcsCi5tanItc3R1ZGlvLXBsYXllci5pcy1wcm9iaW5nIC5tanItc3R1ZGlvLXBsYXllcl9fc2NyZWVuIHsKICAgIGN1cnNvcjogY3Jvc3NoYWlyOwp9Ci5tanItc3R1ZGlvLXN0YWdlX19zaWRlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMDsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwp9Ci5tanItc3R1ZGlvLXN0YWdlX19kaXZpZGVyIHsKICAgIC0tbWpyLWs6IHZhcigtLW1qci1pbnYtc2NhbGUsIDEpOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAwOwogICAgYm90dG9tOiAwOwogICAgd2lkdGg6IGNhbGMoMjRweCAqIHZhcigtLW1qci1rKSk7CiAgICBtYXJnaW4tbGVmdDogY2FsYygtMTJweCAqIHZhcigtLW1qci1rKSk7CiAgICBjdXJzb3I6IGV3LXJlc2l6ZTsKICAgIHotaW5kZXg6IDM7CiAgICB0b3VjaC1hY3Rpb246IG5vbmU7Cn0KLm1qci1zdHVkaW8tc3RhZ2VfX2RpdmlkZXI6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiIjsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDUwJTsKICAgIHRvcDogMDsKICAgIGJvdHRvbTogMDsKICAgIHdpZHRoOiBjYWxjKDJweCAqIHZhcigtLW1qci1rKSk7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgYm94LXNoYWRvdzogMCAwIDAgY2FsYygxcHggKiB2YXIoLS1tanItaykpIHJnYmEoMCwgMCwgMCwgMC40NSk7Cn0KLm1qci1zdHVkaW8tc3RhZ2VfX2RpdmlkZXIuaXMtdmVydGljYWwgewogICAgdG9wOiBhdXRvOwogICAgYm90dG9tOiBhdXRvOwogICAgbGVmdDogMDsKICAgIHJpZ2h0OiAwOwogICAgd2lkdGg6IGF1dG87CiAgICBoZWlnaHQ6IGNhbGMoMjRweCAqIHZhcigtLW1qci1rKSk7CiAgICBtYXJnaW4tbGVmdDogMDsKICAgIG1hcmdpbi10b3A6IGNhbGMoLTEycHggKiB2YXIoLS1tanItaykpOwogICAgY3Vyc29yOiBucy1yZXNpemU7Cn0KLm1qci1zdHVkaW8tc3RhZ2VfX2RpdmlkZXIuaXMtdmVydGljYWw6OmJlZm9yZSB7CiAgICBsZWZ0OiAwOwogICAgcmlnaHQ6IDA7CiAgICB0b3A6IDUwJTsKICAgIGJvdHRvbTogYXV0bzsKICAgIHdpZHRoOiBhdXRvOwogICAgaGVpZ2h0OiBjYWxjKDJweCAqIHZhcigtLW1qci1rKSk7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7Cn0KLm1qci1zdHVkaW8tc3RhZ2VfX2RpdmlkZXItZ3JpcCB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiA1MCU7CiAgICB0b3A6IDUwJTsKICAgIHdpZHRoOiAxOHB4OwogICAgaGVpZ2h0OiAzNHB4OwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUodmFyKC0tbWpyLWspKTsKICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjUpOwp9Ci5tanItc3R1ZGlvLXN0YWdlX19kaXZpZGVyLmlzLXZlcnRpY2FsIC5tanItc3R1ZGlvLXN0YWdlX19kaXZpZGVyLWdyaXAgewogICAgd2lkdGg6IDM0cHg7CiAgICBoZWlnaHQ6IDE4cHg7Cn0KLm1qci1zdHVkaW8tc3RhZ2VfX2RpdmlkZXIuaXMtYWN0aXZlIC5tanItc3R1ZGlvLXN0YWdlX19kaXZpZGVyLWdyaXAsCi5tanItc3R1ZGlvLXN0YWdlX19kaXZpZGVyOmhvdmVyIC5tanItc3R1ZGlvLXN0YWdlX19kaXZpZGVyLWdyaXAgewogICAgYmFja2dyb3VuZDogdmFyKC0tbWpyLWFjY2VudCwgIzRmYTNmZik7Cn0KLm1qci1zdHVkaW8tc3RhZ2VfX2FiIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDUwJTsKICAgIHRvcDogMTJweDsKICAgIHotaW5kZXg6IDQ7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiA2cHg7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICBwYWRkaW5nOiAycHggMTBweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgZm9udDogNjAwIDExcHgvMjBweCB2YXIoLS1tanItZm9udCwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmKTsKICAgIGNvbG9yOiAjZmZmOwogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KLm1qci1zdHVkaW8tc3RhZ2VfX2FiIC5pcy1zZXAgewogICAgb3BhY2l0eTogMC41Owp9CgoubWpyLXN0dWRpby1wbGF5ZXJfX3NjcmVlbiB7CiAgICBjdXJzb3I6IGNyb3NzaGFpcjsKfQoubWpyLXN0dWRpby1zdGFnZV9fc2lkZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDA7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKfQoubWpyLXN0dWRpby1zdGFnZV9fZGl2aWRlciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDA7CiAgICBib3R0b206IDA7CiAgICB3aWR0aDogMjRweDsKICAgIG1hcmdpbi1sZWZ0OiAtMTJweDsKICAgIGN1cnNvcjogZXctcmVzaXplOwogICAgei1pbmRleDogMzsKICAgIHRvdWNoLWFjdGlvbjogbm9uZTsKfQoubWpyLXN0dWRpby1zdGFnZV9fZGl2aWRlcjo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICIiOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogNTAlOwogICAgdG9wOiAwOwogICAgYm90dG9tOiAwOwogICAgd2lkdGg6IDJweDsKICAgIG1hcmdpbi1sZWZ0OiAtMXB4OwogICAgYmFja2dyb3VuZDogI2ZmZjsKICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuNDUpOwp9Ci5tanItc3R1ZGlvLXN0YWdlX19kaXZpZGVyLmlzLXZlcnRpY2FsIHsKICAgIHRvcDogYXV0bzsKICAgIGJvdHRvbTogYXV0bzsKICAgIGxlZnQ6IDA7CiAgICByaWdodDogMDsKICAgIHdpZHRoOiBhdXRvOwogICAgaGVpZ2h0OiAyNHB4OwogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tdG9wOiAtMTJweDsKICAgIGN1cnNvcjogbnMtcmVzaXplOwp9Ci5tanItc3R1ZGlvLXN0YWdlX19kaXZpZGVyLmlzLXZlcnRpY2FsOjpiZWZvcmUgewogICAgbGVmdDogMDsKICAgIHJpZ2h0OiAwOwogICAgdG9wOiA1MCU7CiAgICBib3R0b206IGF1dG87CiAgICB3aWR0aDogYXV0bzsKICAgIGhlaWdodDogMnB4OwogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tdG9wOiAtMXB4Owp9Ci5tanItc3R1ZGlvLXN0YWdlX19kaXZpZGVyLWdyaXAgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogNTAlOwogICAgdG9wOiA1MCU7CiAgICB3aWR0aDogMThweDsKICAgIGhlaWdodDogMzRweDsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgYmFja2dyb3VuZDogI2ZmZjsKICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuNSk7Cn0KLm1qci1zdHVkaW8tc3RhZ2VfX2RpdmlkZXIuaXMtdmVydGljYWwgLm1qci1zdHVkaW8tc3RhZ2VfX2RpdmlkZXItZ3JpcCB7CiAgICB3aWR0aDogMzRweDsKICAgIGhlaWdodDogMThweDsKfQoubWpyLXN0dWRpby1zdGFnZV9fZGl2aWRlci5pcy1hY3RpdmUgLm1qci1zdHVkaW8tc3RhZ2VfX2RpdmlkZXItZ3JpcCwKLm1qci1zdHVkaW8tc3RhZ2VfX2RpdmlkZXI6aG92ZXIgLm1qci1zdHVkaW8tc3RhZ2VfX2RpdmlkZXItZ3JpcCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tanItYWNjZW50LCAjNGZhM2ZmKTsKfQoubWpyLXN0dWRpby1zdGFnZV9fYWIgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiA4cHg7CiAgICB6LWluZGV4OiAyOwogICAgcGFkZGluZzogMXB4IDdweDsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIGZvbnQ6IDYwMCAxMXB4LzE4cHggdmFyKC0tbWpyLWZvbnQsIHN5c3RlbS11aSwgc2Fucy1zZXJpZik7CiAgICBjb2xvcjogI2ZmZjsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwp9Ci5tanItc3R1ZGlvLXN0YWdlX19hYi5pcy1hIHsKICAgIGxlZnQ6IDhweDsKfQoubWpyLXN0dWRpby1zdGFnZV9fYWIuaXMtYiB7CiAgICByaWdodDogOHB4Owp9Ci5tanItc3R1ZGlvLXN0YWdlX19ib3ggLm1qci1zdHVkaW8tc3RhZ2VfX2FiIHsKICAgIC8qIEluc2lkZSB0aGUgem9vbWVkIGJveDoga2VlcCBsYWJlbHMgcmVhZGFibGUgYXQgYW55IHpvb20uICovCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDsKfQoKLm1qci1zdHVkaW8tcGxheWVyX19zY3JlZW4gewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgaW5zZXQ6IDA7Cn0KLm1qci1zdHVkaW8tcGxheWVyX19sYXllcnMgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgaW5zZXQ6IDA7CiAgICBpc29sYXRpb246IGlzb2xhdGU7Cn0KLm1qci1zdHVkaW8tcGxheWVyX19tZWRpYS5pcy1iIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAwOwp9Ci5tanItc3R1ZGlvLXBsYXllcl9fc2NyZWVuLmlzLXNpZGUgLm1qci1zdHVkaW8tcGxheWVyX19sYXllcnMgewogICAgZGlzcGxheTogZmxleDsKICAgIGdhcDogOHB4Owp9Ci5tanItc3R1ZGlvLXBsYXllcl9fc2NyZWVuLmlzLXNpZGUgLm1qci1zdHVkaW8tcGxheWVyX19tZWRpYSB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBpbnNldDogYXV0bzsKICAgIGZsZXg6IDEgMSAwOwogICAgbWluLXdpZHRoOiAwOwogICAgd2lkdGg6IGF1dG87Cn0KLm1qci1zdHVkaW8tcGxheWVyX19ib3ggewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KLm1qci1zdHVkaW8tcGxheWVyX19ib3ggLm1qci1zdHVkaW8tc3RhZ2VfX2RpdmlkZXIgewogICAgcG9pbnRlci1ldmVudHM6IGF1dG87Cn0KCi5tanItc3R1ZGlvLWd1aWRlcywKLm1qci1zdHVkaW8temVicmEgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgaW5zZXQ6IDA7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwp9Ci5tanItc3R1ZGlvLXplYnJhIHsKICAgIGltYWdlLXJlbmRlcmluZzogcGl4ZWxhdGVkOwp9Ci5tanItc3R1ZGlvLWd1aWRlc19fbGluZSB7CiAgICBzdHJva2U6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTsKICAgIHN0cm9rZS13aWR0aDogMTsKfQoubWpyLXN0dWRpby1ndWlkZXNfX3NhZmUgewogICAgc3Ryb2tlOiByZ2JhKDI1NSwgMjEwLCA4MCwgMC44KTsKICAgIHN0cm9rZS13aWR0aDogMTsKICAgIHN0cm9rZS1kYXNoYXJyYXk6IDYgNDsKfQoubWpyLXN0dWRpby1ndWlkZXNfX21hc2stZWRnZSB7CiAgICBzdHJva2U6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsKICAgIHN0cm9rZS13aWR0aDogMTsKfQoKLm1qci1zdHVkaW8tbW9kZWwzZCB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogMDsKICAgIHBhZGRpbmc6IDEycHg7Cn0KLm1qci1zdHVkaW8tbW9kZWwzZF9faG9zdCB7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKfQoKLyogSFVEIHJhaWwgKi8KLm1qci1zdHVkaW8tcmFpbCB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAxMnB4OwogICAgdG9wOiAxMnB4OwogICAgei1pbmRleDogNTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIGdhcDogOHB4OwogICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMjRweCk7Cn0KLm1qci1zdHVkaW8tcmFpbF9fYmFyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiAycHg7CiAgICBwYWRkaW5nOiA1cHg7CiAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1qci1zdXJmYWNlLTEsICMxYzFjMjApIDgyJSwgdHJhbnNwYXJlbnQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWpyLXN0dWRpby1saW5lLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkpOwogICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMzUpOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpOwogICAgb3ZlcmZsb3cteTogYXV0bzsKICAgIG1heC1oZWlnaHQ6IDEwMCU7CiAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7Cn0KLm1qci1zdHVkaW8tcmFpbF9fYnRuIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgd2lkdGg6IDM0cHg7CiAgICBoZWlnaHQ6IDM0cHg7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIGJvcmRlcjogMDsKICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY29sb3I6IHZhcigtLW1qci10ZXh0LW11dGVkLCAjYjViNWJkKTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246CiAgICAgICAgYmFja2dyb3VuZCAwLjEycyBlYXNlLAogICAgICAgIGNvbG9yIDAuMTJzIGVhc2U7Cn0KLm1qci1zdHVkaW8tcmFpbF9fYnRuOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7CiAgICBjb2xvcjogdmFyKC0tbWpyLXRleHQsICNmZmYpOwp9Ci5tanItc3R1ZGlvLXJhaWxfX2J0bjpmb2N1cy12aXNpYmxlIHsKICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1tanItYWNjZW50LCAjNGZhM2ZmKTsKICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4Owp9Ci5tanItc3R1ZGlvLXJhaWxfX2J0bi5pcy1vbiB7CiAgICBjb2xvcjogdmFyKC0tbWpyLWFjY2VudCwgIzRmYTNmZik7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLWFjY2VudCwgIzRmYTNmZikgMTYlLCB0cmFuc3BhcmVudCk7Cn0KLm1qci1zdHVkaW8tcmFpbF9fYnRuLmlzLW9wZW4gewogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTsKICAgIGNvbG9yOiB2YXIoLS1tanItdGV4dCwgI2ZmZik7Cn0KLm1qci1zdHVkaW8tcmFpbF9fdGFnIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHJpZ2h0OiAxcHg7CiAgICBib3R0b206IDFweDsKICAgIG1pbi13aWR0aDogMTJweDsKICAgIHBhZGRpbmc6IDAgMnB4OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgZm9udDogNzAwIDhweC8xMXB4IHZhcigtLW1qci1mb250LCBzeXN0ZW0tdWksIHNhbnMtc2VyaWYpOwogICAgYmFja2dyb3VuZDogdmFyKC0tbWpyLWFjY2VudCwgIzRmYTNmZik7CiAgICBjb2xvcjogI2ZmZjsKfQoubWpyLXN0dWRpby1yYWlsX19zZXAgewogICAgaGVpZ2h0OiAxcHg7CiAgICBtYXJnaW46IDNweCA2cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tanItc3R1ZGlvLWxpbmUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSk7Cn0KLm1qci1zdHVkaW8tcmFpbF9fcGFuZWwgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogNTRweDsKICAgIHdpZHRoOiAyMzZweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiAxMHB4OwogICAgcGFkZGluZzogMTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWpyLXN1cmZhY2UtMSwgIzFjMWMyMCkgOTIlLCB0cmFuc3BhcmVudCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tanItc3R1ZGlvLWxpbmUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSk7CiAgICBib3gtc2hhZG93OiAwIDEycHggMzJweCByZ2JhKDAsIDAsIDAsIDAuNDUpOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpOwogICAgY29sb3I6IHZhcigtLW1qci10ZXh0LCAjZWVlKTsKICAgIGZvbnQtc2l6ZTogMTJweDsKfQoubWpyLXN0dWRpby1yYWlsX190aXRsZSB7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgY29sb3I6IHZhcigtLW1qci10ZXh0LCAjZmZmKTsKfQoubWpyLXN0dWRpby1yYWlsX19iIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA0cHg7Cn0KLm1qci1zdHVkaW8tcmFpbF9fYi1sYWJlbCB7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6IHZhcigtLW1qci1hY2NlbnQsICM0ZmEzZmYpOwp9Ci5tanItc3R1ZGlvLXJhaWxfX2ItbmFtZSB7CiAgICBmbGV4OiAxIDEgYXV0bzsKICAgIG1pbi13aWR0aDogMDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjb2xvcjogdmFyKC0tbWpyLXRleHQtbXV0ZWQsICNiNWI1YmQpOwp9Ci5tanItc3R1ZGlvLXNlZyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAycHg7CiAgICBwYWRkaW5nOiAycHg7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMjUpOwp9Ci5tanItc3R1ZGlvLXNlZy5pcy13cmFwIHsKICAgIGZsZXgtd3JhcDogd3JhcDsKfQoubWpyLXN0dWRpby1zZWcgYnV0dG9uIHsKICAgIGZsZXg6IDEgMSBhdXRvOwogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBnYXA6IDRweDsKICAgIG1pbi1oZWlnaHQ6IDI2cHg7CiAgICBwYWRkaW5nOiAwIDhweDsKICAgIGJvcmRlcjogMDsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY29sb3I6IHZhcigtLW1qci10ZXh0LW11dGVkLCAjYjViNWJkKTsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLm1qci1zdHVkaW8tc2VnIGJ1dHRvbjpob3ZlciB7CiAgICBjb2xvcjogdmFyKC0tbWpyLXRleHQsICNmZmYpOwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTsKfQoubWpyLXN0dWRpby1zZWcgYnV0dG9uLmlzLW9uIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLW1qci1hY2NlbnQsICM0ZmEzZmYpOwogICAgY29sb3I6ICNmZmY7Cn0KCi8qIFNsaWRlciAqLwoubWpyLXN0dWRpby1zbGlkZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBnYXA6IDZweDsKfQoubWpyLXN0dWRpby1zbGlkZXJfX2hlYWQgewogICAgZGlzcGxheTogZmxleDsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGNvbG9yOiB2YXIoLS1tanItdGV4dC1tdXRlZCwgI2I1YjViZCk7CiAgICBmb250LXNpemU6IDExcHg7Cn0KLm1qci1zdHVkaW8tc2xpZGVyX192YWx1ZSB7CiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgY29sb3I6IHZhcigtLW1qci10ZXh0LCAjZmZmKTsKfQoubWpyLXN0dWRpby1zbGlkZXJfX3RyYWNrIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGhlaWdodDogMTZweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRvdWNoLWFjdGlvbjogbm9uZTsKICAgIG91dGxpbmU6IG5vbmU7Cn0KLm1qci1zdHVkaW8tc2xpZGVyX190cmFjazo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICIiOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogMDsKICAgIHJpZ2h0OiAwOwogICAgdG9wOiA3cHg7CiAgICBoZWlnaHQ6IDNweDsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7Cn0KLm1qci1zdHVkaW8tc2xpZGVyX19maWxsIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDA7CiAgICB0b3A6IDdweDsKICAgIGhlaWdodDogM3B4OwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tbWpyLWFjY2VudCwgIzRmYTNmZik7Cn0KLm1qci1zdHVkaW8tc2xpZGVyX19rbm9iIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMnB4OwogICAgd2lkdGg6IDEycHg7CiAgICBoZWlnaHQ6IDEycHg7CiAgICBtYXJnaW4tbGVmdDogLTZweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjUpOwp9Ci5tanItc3R1ZGlvLXNsaWRlcl9fdHJhY2s6Zm9jdXMtdmlzaWJsZSAubWpyLXN0dWRpby1zbGlkZXJfX2tub2IgewogICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLW1qci1hY2NlbnQsICM0ZmEzZmYpOwogICAgb3V0bGluZS1vZmZzZXQ6IDFweDsKfQoKLyogU2NvcGVzIEhVRCAqLwoubWpyLXN0dWRpby1zY29wZXMgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgcmlnaHQ6IDEycHg7CiAgICB0b3A6IDEycHg7CiAgICB6LWluZGV4OiA0OwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBnYXA6IDhweDsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwp9Ci5tanItc3R1ZGlvLXNjb3Blc19fcGFuZWwgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgcGFkZGluZzogNnB4OwogICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMTAsIDEwLCAxMiwgMC43Mik7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7Cn0KLm1qci1zdHVkaW8tc2NvcGVzX19wYW5lbCBjYW52YXMgewogICAgZGlzcGxheTogYmxvY2s7CiAgICB3aWR0aDogMjU2cHg7CiAgICBoZWlnaHQ6IDExMHB4Owp9Ci5tanItc3R1ZGlvLXNjb3Blc19fcGFuZWwgY2FudmFzLmlzLXdhdmUgewogICAgaGVpZ2h0OiAxMjhweDsKfQoubWpyLXN0dWRpby1zY29wZXNfX2xhYmVsIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDEwcHg7CiAgICB0b3A6IDZweDsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7Cn0KCi8qIFByb2JlIC8gbG91cGUgKi8KLm1qci1zdHVkaW8tcHJvYmUgewogICAgcG9zaXRpb246IGZpeGVkOwogICAgaW5zZXQ6IDA7CiAgICB6LWluZGV4OiAxMDAwMTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwp9Ci5tanItc3R1ZGlvLXByb2JlX19sb3VwZSB7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KTsKICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjU1KTsKICAgIGJhY2tncm91bmQ6ICMxMTE7Cn0KLm1qci1zdHVkaW8tcHJvYmVfX2xvdXBlIGNhbnZhcyB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgaW1hZ2UtcmVuZGVyaW5nOiBwaXhlbGF0ZWQ7Cn0KLm1qci1zdHVkaW8tcHJvYmVfX2Nyb3NzIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDUwJTsKICAgIHRvcDogNTAlOwogICAgd2lkdGg6IDEwcHg7CiAgICBoZWlnaHQ6IDEwcHg7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7CiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjYpOwp9Ci5tanItc3R1ZGlvLXByb2JlX19jaGlwIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA4cHg7CiAgICBwYWRkaW5nOiA1cHggOXB4OwogICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgYmFja2dyb3VuZDogcmdiYSgxMCwgMTAsIDEyLCAwLjg1KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsKICAgIGNvbG9yOiAjZmZmOwogICAgZm9udDogNTAwIDExcHgvMS4zIHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBtb25vc3BhY2U7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9Ci5tanItc3R1ZGlvLXByb2JlX19jaGlwIC5pcy1kaW0gewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTsKfQoubWpyLXN0dWRpby1wcm9iZV9fc3dhdGNoIHsKICAgIHdpZHRoOiAxNHB4OwogICAgaGVpZ2h0OiAxNHB4OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpOwp9CgovKiBBdWRpbyBzcGVjdHJ1bSAqLwoubWpyLXN0dWRpby1wbGF5ZXJfX2F1ZGlvLWFydC5oYXMtc3BlY3RydW0gewogICAgd2lkdGg6IG1pbig3MjBweCwgODYlKTsKfQoubWpyLXN0dWRpby1wbGF5ZXJfX3NwZWN0cnVtIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDE2MHB4Owp9Ci5tanItc3R1ZGlvLXBsYXllci5pcy1jb21wYWN0IC5tanItc3R1ZGlvLXBsYXllcl9fc3BlY3RydW0gewogICAgaGVpZ2h0OiA5MHB4Owp9CgovKiBGbG9hdGluZyB2aWV3ZXIgQS9CIHdpdGggdGhlIFN0dWRpbyBwbGF5ZXIgb24gQTogQSBpcyBvbiB0b3AgKHBvaW50ZXItdGhyb3VnaCksCiAgIG9ubHkgaXRzIHBpY3R1cmUgaXMgY2xpcHBlZCBhdCB0aGUgZGl2aWRlcjsgQiBzaG93cyB1bmRlcm5lYXRoLiAqLwoubWpyLW1mdi1hYi1jb250YWluZXIuaGFzLXN0dWRpby1hIHsKICAgIGJhY2tncm91bmQ6ICMwMDA7Cn0KLm1qci1tZnYtYWItY29udGFpbmVyLmhhcy1zdHVkaW8tYSAubWpyLW1mdi1hYi1sYXllcjpub3QoLm1qci1tZnYtYWItbGF5ZXItLWIpIHsKICAgIHotaW5kZXg6IDI7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQoubWpyLW1mdi1hYi1jb250YWluZXIuaGFzLXN0dWRpby1hIC5tanItbWZ2LWFiLWxheWVyOm5vdCgubWpyLW1mdi1hYi1sYXllci0tYikgLm1qci1tZnYtcGxheWVyLWhvc3QsCi5tanItbWZ2LWFiLWNvbnRhaW5lci5oYXMtc3R1ZGlvLWEgLm1qci1tZnYtYWItbGF5ZXI6bm90KC5tanItbWZ2LWFiLWxheWVyLS1iKSAubWpyLXN0dWRpby1wbGF5ZXIgewogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KLm1qci1tZnYtYWItY29udGFpbmVyLmhhcy1zdHVkaW8tYSAubWpyLXN0dWRpby1wbGF5ZXJfX3NjcmVlbiB7CiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgIGNsaXAtcGF0aDogaW5zZXQoMCBjYWxjKDEwMCUgLSB2YXIoLS1tanItYWIteCwgNTAlKSkgMCAwKTsKfQoubWpyLW1mdi1hYi1jb250YWluZXIuaGFzLXN0dWRpby1hIC5tanItc3R1ZGlvLXBsYXllcl9fY29udHJvbHMsCi5tanItbWZ2LWFiLWNvbnRhaW5lci5oYXMtc3R1ZGlvLWEgLm1qci1zdHVkaW8tcGxheWVyX19iaWctcGxheSB7CiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKfQoubWpyLW1mdi1hYi1jb250YWluZXIuaGFzLXN0dWRpby1hIC5tanItbWZ2LWFiLWRpdmlkZXIgewogICAgei1pbmRleDogMTA7Cn0KLyogVGhlIGRpdmlkZXIgc3RvcHMgYWJvdmUgdGhlIHBsYXllciBjb250cm9scyBpbnN0ZWFkIG9mIGRyYXdpbmcgb3ZlciB0aGVtCiAgIChjbGlwLXBhdGggYWxzbyByZW1vdmVzIGl0cyBoaXQgYXJlYSB0aGVyZSkuICovCi5tanItbWZ2LWFiLWNvbnRhaW5lci5oYXMtc3R1ZGlvLWEgLm1qci1tZnYtYWItZGl2aWRlciB7CiAgICBjbGlwLXBhdGg6IGluc2V0KDAgLTIwcHggNzJweCAtMjBweCk7Cn0KLm1qci1tZnYtYWItY29udGFpbmVyLmhhcy1zdHVkaW8tYTpoYXMoLm1qci1zdHVkaW8tcGxheWVyLmNvbnRyb2xzLWhpZGRlbikgLm1qci1tZnYtYWItZGl2aWRlciB7CiAgICBjbGlwLXBhdGg6IG5vbmU7Cn0KCi8qIEIga2VlcHMgaXRzIG93biBhc3BlY3QgcmF0aW8gaW5zaWRlIEEncyBmcmFtZSAoQS9CIG9mIGRpZmZlcmVudCBzaXplcykuICovCi5tanItc3R1ZGlvLXN0YWdlX19pbWcuaXMtYiwKLm1qci1zdHVkaW8tc3RhZ2VfX3NpZGUgLm1qci1zdHVkaW8tc3RhZ2VfX2ltZyB7CiAgICBvYmplY3QtZml0OiBjb250YWluOwp9Cg==", "" + import.meta.url).toString(), n = document.createElement("link"); n.id = t, n.rel = "stylesheet", n.type = "text/css", n.href = e, n.onerror = () => { @@ -294,7 +294,7 @@ function ei({ enabled: e = !0 } = {}) { } }, document.head.appendChild(n), n.onload = () => { try { - document.documentElement.dataset.mjrThemeComfy = "1", $r(); + document.documentElement.dataset.mjrThemeComfy = "1", ni(); } catch (e) { console.debug?.(e); } @@ -303,29 +303,29 @@ function ei({ enabled: e = !0 } = {}) { console.warn("Majoor: failed to load Comfy theme CSS", e); } } -$r(); +ni(); // ui/features/grid/gridApi.ts -function ti() { +function ii() { let e = "mjr-grid-settings-styles"; if (document.getElementById(e)) return; let t = document.createElement("style"); t.id = e, t.textContent = "\n .mjr-grid .mjr-asset-card,\n .mjr-grid .mjr-card {\n display: flex;\n flex-direction: column;\n }\n .mjr-grid .mjr-thumb {\n flex: 0 0 auto;\n width: 100%;\n aspect-ratio: 1 / 1;\n min-height: 0;\n position: relative;\n overflow: hidden;\n }\n .mjr-grid .mjr-thumb-media {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n .mjr-grid .mjr-asset-card:hover {\n background-color: var(--mjr-card-hover-color) !important;\n }\n\n .mjr-grid .mjr-asset-card.is-selected {\n outline: 2px solid var(--mjr-card-selection-color) !important;\n box-shadow: 0 0 0 2px var(--mjr-card-selection-color) !important;\n }\n\n .mjr-grid .mjr-card-filename { display: none; }\n .mjr-grid.mjr-show-filename .mjr-card-filename { display: block; }\n\n .mjr-grid .mjr-card-dot-wrapper { display: none; }\n .mjr-grid.mjr-show-dot .mjr-card-dot-wrapper { display: inline-flex; }\n .mjr-grid .mjr-asset-status-dot {\n transition: color 0.3s ease, opacity 0.3s ease;\n }\n .mjr-grid .mjr-asset-status-dot.mjr-pulse-animation {\n animation: mjr-pulse 1.5s infinite;\n }\n @keyframes mjr-pulse {\n 0% { opacity: 1; }\n 50% { opacity: 0.4; }\n 100% { opacity: 1; }\n }\n\n .mjr-grid .mjr-meta-res { display: none; }\n .mjr-grid.mjr-show-dimensions .mjr-meta-res { display: inline; }\n\n .mjr-grid .mjr-meta-duration { display: none; }\n .mjr-grid.mjr-show-dimensions .mjr-meta-duration { display: inline; }\n\n .mjr-grid .mjr-meta-date { display: none; }\n .mjr-grid.mjr-show-date .mjr-meta-date { display: inline; }\n\n .mjr-grid .mjr-meta-gentime { display: none; }\n .mjr-grid.mjr-show-gentime .mjr-meta-gentime { display: inline; }\n\n .mjr-grid .mjr-badge-ext { display: none !important; }\n .mjr-grid.mjr-show-badges-ext .mjr-badge-ext { display: flex !important; }\n\n .mjr-grid .mjr-badge-rating { display: none !important; }\n .mjr-grid.mjr-show-badges-rating .mjr-badge-rating { display: flex !important; }\n\n .mjr-grid .mjr-badge-tags { display: none !important; }\n .mjr-grid.mjr-show-badges-tags .mjr-badge-tags { display: flex !important; }\n\n .mjr-grid .mjr-card-info { display: none !important; }\n .mjr-grid.mjr-show-details .mjr-card-info { display: block !important; }\n\n .mjr-card-meta-row > span + span::before {\n content: \" \"¢ \";\n opacity: 0.5;\n margin: 0 4px;\n }\n .mjr-card-meta-row > span[style*=\"display: none\"] + span::before {\n display: none;\n }\n ", document.head.appendChild(t); } -function ni(e) { +function ai(e) { if (!e) return; - ti(); + ii(); let t = (t, n) => { n ? e.classList.add(t) : e.classList.remove(t); }; t("mjr-show-filename", R.GRID_SHOW_DETAILS_FILENAME), t("mjr-show-dimensions", R.GRID_SHOW_DETAILS_DIMENSIONS), t("mjr-show-date", R.GRID_SHOW_DETAILS_DATE), t("mjr-show-gentime", R.GRID_SHOW_DETAILS_GENTIME), t("mjr-show-hover-info", R.GRID_SHOW_HOVER_INFO), t("mjr-show-dot", R.GRID_SHOW_WORKFLOW_DOT), t("mjr-show-badges-ext", R.GRID_SHOW_BADGES_EXTENSION), t("mjr-show-badges-rating", R.GRID_SHOW_BADGES_RATING), t("mjr-show-badges-tags", R.GRID_SHOW_BADGES_TAGS), t("mjr-show-details", R.GRID_SHOW_DETAILS), e.style.setProperty("--mjr-grid-min-size", `${R.GRID_MIN_SIZE}px`), e.style.setProperty("--mjr-grid-gap", `${R.GRID_GAP}px`), e.style.setProperty("--mjr-star-active", R.BADGE_STAR_COLOR), e.style.setProperty("--mjr-badge-image", R.BADGE_IMAGE_COLOR), e.style.setProperty("--mjr-badge-video", R.BADGE_VIDEO_COLOR), e.style.setProperty("--mjr-badge-audio", R.BADGE_AUDIO_COLOR), e.style.setProperty("--mjr-badge-model3d", R.BADGE_MODEL3D_COLOR), e.style.setProperty("--mjr-badge-duplicate-alert", R.BADGE_DUPLICATE_ALERT_COLOR), e.style.setProperty("--mjr-card-hover-color", R.UI_CARD_HOVER_COLOR), e.style.setProperty("--mjr-card-selection-color", R.UI_CARD_SELECTION_COLOR), e.style.setProperty("--mjr-rating-color", R.UI_RATING_COLOR), e.style.setProperty("--mjr-tag-color", R.UI_TAG_COLOR); } -function ri(e, { applySettingsClasses: t = !0 } = {}) { +function oi(e, { applySettingsClasses: t = !0 } = {}) { if (!e) return null; if (e.id = "mjr-assets-grid", e.classList.add("mjr-grid"), e.tabIndex = 0, e.setAttribute("role", "grid"), t) { - ni(e); + ai(e); let t = () => { requestAnimationFrame(() => { - ni(e); + ai(e); }); }; try { @@ -343,7 +343,7 @@ function ri(e, { applySettingsClasses: t = !0 } = {}) { } return e; } -function ii(e, t, ...n) { +function si(e, t, ...n) { let r = { _mjrCaptureAnchor: "captureAnchor", _mjrDispose: "dispose", @@ -366,70 +366,70 @@ function ii(e, t, ...n) { console.debug?.(e); } } -function ai(e, t = {}, n = {}) { - return ii(e, "_mjrHydrateFromSnapshot", t, n) ?? !1; +function ci(e, t = {}, n = {}) { + return si(e, "_mjrHydrateFromSnapshot", t, n) ?? !1; } -function oi(e, t = "*", n = {}) { - return ii(e, "_mjrLoadAssets", t, n) ?? Promise.resolve({ +function li(e, t = "*", n = {}) { + return si(e, "_mjrLoadAssets", t, n) ?? Promise.resolve({ ok: !1, error: "Grid API unavailable" }); } -function si(e, t, n = {}) { - return ii(e, "_mjrLoadAssetsFromList", t, n) ?? Promise.resolve({ +function ui(e, t, n = {}) { + return si(e, "_mjrLoadAssetsFromList", t, n) ?? Promise.resolve({ ok: !1, error: "Grid API unavailable" }); } -function ci(e) { - return ii(e, "_mjrPrepareForScopeSwitch"); +function di(e) { + return si(e, "_mjrPrepareForScopeSwitch"); } -function li(e) { +function fi(e) { try { e?._mjrSettingsChangedCleanup?.(); } catch (e) { console.debug?.(e); } - return ii(e, "_mjrDispose"); + return si(e, "_mjrDispose"); } -function ui(e) { - return ii(e, "_mjrRefreshGrid"); +function pi(e) { + return si(e, "_mjrRefreshGrid"); } -function di(e) { - return ii(e, "_mjrCaptureAnchor") ?? null; +function mi(e) { + return si(e, "_mjrCaptureAnchor") ?? null; } -function fi(e, t) { - return ii(e, "_mjrRestoreAnchor", t); +function hi(e, t) { + return si(e, "_mjrRestoreAnchor", t); } -function pi(e, t, n = {}) { - return ii(e, "_mjrRemoveAssets", t, n) ?? { +function gi(e, t, n = {}) { + return si(e, "_mjrRemoveAssets", t, n) ?? { ok: !1, removed: 0, selectedIds: [] }; } -function mi(e, t) { - return !!ii(e, "_mjrUpsertAsset", t); +function _i(e, t) { + return !!si(e, "_mjrUpsertAsset", t); } -function hi(e, t) { - return !!ii(e, "_mjrUpsertAssetNow", t); +function vi(e, t) { + return !!si(e, "_mjrUpsertAssetNow", t); } // ui/features/grid/AssetCardRenderer.ts -function gi(e) { +function yi(e) { try { return String(e || "").trim().toLowerCase(); } catch { return ""; } } -function _i(e) { +function bi(e) { try { return (String(e || "").split(".").pop() || "").toUpperCase(); } catch { return ""; } } -function vi(e) { +function xi(e) { try { let t = String(e || ""), n = t.lastIndexOf("."), r = n > 0 ? t.slice(0, n) : t; return String(r || "").trim().toLowerCase(); @@ -437,14 +437,14 @@ function vi(e) { return ""; } } -function yi(e, t) { +function Si(e, t) { if (!e || !Array.isArray(t) || t.length === 0 || (Number(e?.generation_time_ms ?? e?.metadata?.generation_time_ms ?? 0) || 0) > 0) return e; let n = t.find((e) => (Number(e?.generation_time_ms ?? e?.metadata?.generation_time_ms ?? 0) || 0) > 0); if (!n) return e; let r = Number(n?.generation_time_ms ?? n?.metadata?.generation_time_ms ?? 0) || 0; return r <= 0 || (e.generation_time_ms = r, !e.has_generation_data && n?.has_generation_data && (e.has_generation_data = n.has_generation_data)), e; } -function bi(e, t) { +function Ci(e, t) { let n = String(e?.kind || "").toLowerCase(); if (n) return n; let r = /* @__PURE__ */ new Set([ @@ -480,29 +480,29 @@ function bi(e, t) { ]); return r.has(t) ? "image" : i.has(t) ? "video" : a.has(t) ? "audio" : o.has(t) ? "model3d" : "unknown"; } -function xi(e) { +function wi(e) { try { return !!e()?.siblings?.hidePngSiblings; } catch { return !1; } } -function Si(e) { +function Ti(e) { return `${String(e?.source || e?.type || "").trim().toLowerCase()}|${String(e?.root_id || e?.custom_root_id || "").trim().toLowerCase()}|${String(e?.subfolder || "").trim().toLowerCase()}`; } -function Ci(e) { - let t = gi(e?.filename); - return t ? `${Si(e)}|${t}` : ""; +function Ei(e) { + let t = yi(e?.filename); + return t ? `${Ti(e)}|${t}` : ""; } -function wi(e, t = _i(e?.filename || "")) { - let n = bi(e, t), r = String(e?.filename || "").trim(); +function Di(e, t = bi(e?.filename || "")) { + let n = Ci(e, t), r = String(e?.filename || "").trim(); if (!r) return ""; - let i = Si(e); + let i = Ti(e); if (n === "model3d") return `${i}|model3d|${r.toLowerCase()}`; - let a = vi(r); + let a = xi(r); return a ? `${i}|media|${a}` : ""; } -function Ti(e) { +function Oi(e) { let t = e.nonImageSiblingKeys || /* @__PURE__ */ new Set(); e.nonImageSiblingKeys = t; let n = e.stemMap || /* @__PURE__ */ new Map(); @@ -517,10 +517,10 @@ function Ti(e) { seenKeys: i }; } -function Ei(e, t = [], { assetKey: n = null, preserveHiddenCount: r = !1 } = {}) { +function ki(e, t = [], { assetKey: n = null, preserveHiddenCount: r = !1 } = {}) { let i = Number(e?.hiddenPngSiblings || 0) || 0; e.seenKeys = /* @__PURE__ */ new Set(), e.assetIdSet = /* @__PURE__ */ new Set(), e.filenameCounts = /* @__PURE__ */ new Map(), e.nonImageSiblingKeys = /* @__PURE__ */ new Set(), e.stemMap = /* @__PURE__ */ new Map(), e.renderedFilenameMap = /* @__PURE__ */ new Map(), e.hiddenPngSiblings = r ? i : 0, typeof n == "function" && (e.assetKeyFn = n); - let a = Ti(e); + let a = Oi(e); for (let r of Array.isArray(t) ? t : []) if (r && typeof r == "object") { try { let e = r?.id == null ? "" : String(r.id); @@ -535,24 +535,24 @@ function Ei(e, t = [], { assetKey: n = null, preserveHiddenCount: r = !1 } = {}) console.debug?.(e); } try { - let t = Ci(r); + let t = Ei(r); t && e.filenameCounts.set(t, (Number(e.filenameCounts.get(t) || 0) || 0) + 1); } catch (e) { console.debug?.(e); } try { - let e = _i(r?.filename || ""), t = wi(r, e); + let e = bi(r?.filename || ""), t = Di(r, e); if (!t) continue; let n = a.stemMap.get(t); n || (n = [], a.stemMap.set(t, n)), n.push(r); - let i = bi(r, e); + let i = Ci(r, e); (i === "video" || i === "audio" || i === "model3d" || e === "WEBP") && a.nonImageSiblingKeys.add(t); } catch (e) { console.debug?.(e); } } } -function Di(e, t, n) { +function Ai(e, t, n) { try { t?.id != null && n.assetIdSet.delete(String(t.id)); } catch (e) { @@ -565,20 +565,20 @@ function Di(e, t, n) { console.debug?.(e); } } -function Oi(e, t, n, r) { +function ji(e, t, n, r) { let i = n.stemMap.get(t); if (!i?.length) return []; let a = []; for (let e = i.length - 1; e >= 0; e--) r(i[e]) && (a.push(i[e]), i.splice(e, 1)); return i.length || n.stemMap.delete(t), a; } -function ki(e, t, n) { - if (!xi(n)) return { +function Mi(e, t, n) { + if (!wi(n)) return { hidden: !1, hideEnabled: !1, removed: [] }; - let r = Ti(t), i = String(e?.filename || ""), a = _i(i), o = bi(e, a), s = wi(e, a); + let r = Oi(t), i = String(e?.filename || ""), a = bi(i), o = Ci(e, a), s = Di(e, a); if (!s) return { hidden: !1, hideEnabled: !0, @@ -587,10 +587,10 @@ function ki(e, t, n) { if (o === "video" || o === "audio" || o === "model3d" || a === "WEBP") return r.nonImageSiblingKeys.add(s), { hidden: !1, hideEnabled: !0, - removed: Oi(t, s, r, (e) => _i(e?.filename || "") === "PNG") + removed: ji(t, s, r, (e) => bi(e?.filename || "") === "PNG") }; if (a === "PNG") { - let t = `${Si(e)}|model3d|${vi(i)}`; + let t = `${Ti(e)}|model3d|${xi(i)}`; if (r.nonImageSiblingKeys.has(s) || r.nonImageSiblingKeys.has(t)) return { hidden: !0, hideEnabled: !0, @@ -603,15 +603,15 @@ function ki(e, t, n) { removed: [] }; } -function Ai(e, t, n, r) { - let i = xi(r.loadMajoorSettings), a = n.filenameCounts || /* @__PURE__ */ new Map(); +function Ni(e, t, n, r) { + let i = wi(r.loadMajoorSettings), a = n.filenameCounts || /* @__PURE__ */ new Map(); n.filenameCounts = a, r.clearGridMessage(e); let o = r.ensureVirtualGrid(e, n); if (!o) return 0; i || (n.hiddenPngSiblings = 0), n.assetKeyFn = r.assetKey; - let s = Ti(n), c = /* @__PURE__ */ new Map(); + let s = Oi(n), c = /* @__PURE__ */ new Map(); for (let e of n.assets || []) { - let t = Ci(e); + let t = Ei(e); if (!t) continue; let n = c.get(t); n || (n = [], c.set(t, n)), n.push(e); @@ -639,13 +639,13 @@ function Ai(e, t, n, r) { } catch (e) { console.debug?.(e); } - let t = _i(String(e?.filename || "")), i = ki(e, n, r.loadMajoorSettings); + let t = bi(String(e?.filename || "")), i = Mi(e, n, r.loadMajoorSettings); for (let e of i.removed || []) f.add(e); if (i.hidden) { n.hiddenPngSiblings += 1; continue; } - let a = Ci(e); + let a = Ei(e); if (a) { let t = c.get(a); t || (t = [], c.set(a, t)), t.push(e); @@ -653,7 +653,7 @@ function Ai(e, t, n, r) { let o = r.assetKey(e); if (!o || s.seenKeys.has(o) || e.id != null && s.assetIdSet.has(String(e.id))) continue; s.seenKeys.add(o), e.id != null && s.assetIdSet.add(String(e.id)), d.push(e); - let u = wi(e, t); + let u = Di(e, t); if (u) { let t = s.stemMap.get(u); t || (t = [], s.stemMap.set(u, t)), t.push(e); @@ -663,10 +663,10 @@ function Ai(e, t, n, r) { if (f.size > 0) { n.hiddenPngSiblings += f.size, n.assets = n.assets.filter((e) => !f.has(e)); for (let e = d.length - 1; e >= 0; e--) f.has(d[e]) && (d.splice(e, 1), l = Math.max(0, l - 1)); - for (let e of f) Di(n, e, s); + for (let e of f) Ai(n, e, s); try { for (let e of f) { - let t = Ci(e); + let t = Ei(e); if (!t) continue; let n = c.get(t); if (!n) continue; @@ -687,7 +687,7 @@ function Ai(e, t, n, r) { return l; } // ui/features/panel/views/popoverManager.ts -function ji(e, t) { +function Pi(e, t) { if (!e || !t?.size) return !1; for (let n of t.values()) { let t = n?.popover || null; @@ -702,7 +702,7 @@ function ji(e, t) { } return !1; } -function Mi(e) { +function Fi(e) { if (!e || e === document?.body) return !1; try { if (typeof e.matches == "function" && e.matches("[data-pc-name],[role='listbox'],[role='dialog'],[role='menu'],[role='tree'],[role='grid']")) return !0; @@ -716,7 +716,7 @@ function Mi(e) { ].join(" ").toLowerCase(); return /\b(p-|p_)?(select|listbox|multiselect|datepicker|calendar|overlay|panel|menu|dialog|tooltip|popover)\b/.test(t); } -function Ni(e) { +function Ii(e) { let t = /* @__PURE__ */ new Map(), n = null, r = 0, i = [], a = !1, o = !1, s = !1, c = new AbortController(), l = new AbortController(), u = !1, d = null, f = (e, t = "y") => { if (!e) return !1; let n = globalThis.getComputedStyle?.(e), r = String(t === "x" ? n?.overflowX || n?.overflow || "" : n?.overflowY || n?.overflow || ""); @@ -802,7 +802,7 @@ function Ni(e) { for (let e of t.values()) _(e.popover, e.anchor); })); }, y = (e) => { - ji(e?.target, t) || v(); + Pi(e?.target, t) || v(); }, b = () => { if (t.size) { try { @@ -960,7 +960,7 @@ function Ni(e) { try { let e = n; for (; e && e !== document.body && e.parentNode && e.parentNode !== document.body;) e = e.parentNode; - if (e && e !== document.body && e.parentNode === document.body && Mi(e)) for (let e of t.values()) try { + if (e && e !== document.body && e.parentNode === document.body && Fi(e)) for (let e of t.values()) try { if (!e?.popover) continue; if (e.popover.querySelector("[data-pc-name][aria-expanded='true']") || e.popover.querySelector("[aria-expanded='true'][role='combobox']")) return; } catch (e) { @@ -1022,7 +1022,7 @@ function Ni(e) { }; } // ui/utils/filenames.ts -var Pi = /* @__PURE__ */ new Set([ +var Li = /* @__PURE__ */ new Set([ "CON", "PRN", "AUX", @@ -1045,17 +1045,17 @@ var Pi = /* @__PURE__ */ new Set([ "LPT7", "LPT8", "LPT9" -]), Fi = 255; -function Ii(e) { +]), Ri = 255; +function zi(e) { try { let t = String(e ?? "").trim(); if (!t) return { valid: !1, reason: "Filename cannot be empty" }; - if (t.length > Fi) return { + if (t.length > Ri) return { valid: !1, - reason: `Filename is too long (max ${Fi} characters)` + reason: `Filename is too long (max ${Ri} characters)` }; if (t.includes("/") || t.includes("\\")) return { valid: !1, @@ -1078,7 +1078,7 @@ function Ii(e) { reason: "Filename cannot end with a dot or space" }; let n = t.split(".")[0].toUpperCase(); - return Pi.has(n) ? { + return Li.has(n) ? { valid: !1, reason: "Filename uses a reserved Windows name" } : { @@ -1092,15 +1092,15 @@ function Ii(e) { }; } } -function Li(e) { +function Bi(e) { try { return String(e ?? "").trim(); } catch { return ""; } } -function Ri(e) { - let t = Li(e); +function Vi(e) { + let t = Bi(e); if (!t) return { stem: "", ext: "" @@ -1114,40 +1114,40 @@ function Ri(e) { ext: t.slice(n) }; } -function zi(e, t) { - let n = Li(e); +function Hi(e, t) { + let n = Bi(e); if (!n) return ""; - let r = Ri(t); - return !Ri(n).ext && r.ext ? `${n}${r.ext}` : n; + let r = Vi(t); + return !Vi(n).ext && r.ext ? `${n}${r.ext}` : n; } // ui/utils/deleteGuard.ts -async function Bi(e, t) { +async function Ui(e, t) { if (!R.DELETE_CONFIRMATION) return !0; let n = e > 1 ? L("dialog.deleteSelectedFiles", "Delete {count} selected files?", { count: e }) : L("dialog.deleteSingleFile", "Delete \"{label}\"?", { label: String(t || L("label.thisFile", "this file")) }); - return !!await jt(n, L("dialog.confirmDeleteTitle", "Majoor: Confirm delete")); + return !!await Pt(n, L("dialog.confirmDeleteTitle", "Majoor: Confirm delete")); } // ui/features/collections/contextmenu/addToCollectionMenuState.ts -var Vi = hr({ +var Wi = vr({ open: !1, x: 0, y: 0, assets: [] }); -function Hi() { +function Gi() { try { window.dispatchEvent(new CustomEvent("mjr-close-all-menus")); } catch (e) { console.debug?.(e); } } -function Ui({ x: e = 0, y: t = 0, assets: n = [] } = {}) { - Hi(), Vi.open = Array.isArray(n) && n.length > 0, Vi.x = Number(e) || 0, Vi.y = Number(t) || 0, Vi.assets = Array.isArray(n) ? [...n] : []; +function Ki({ x: e = 0, y: t = 0, assets: n = [] } = {}) { + Gi(), Wi.open = Array.isArray(n) && n.length > 0, Wi.x = Number(e) || 0, Wi.y = Number(t) || 0, Wi.assets = Array.isArray(n) ? [...n] : []; } -function Wi() { - Vi.open = !1, Vi.x = 0, Vi.y = 0, Vi.assets = []; +function qi() { + Wi.open = !1, Wi.x = 0, Wi.y = 0, Wi.assets = []; } // ui/features/collections/contextmenu/addToCollectionMenu.ts -function Gi(e) { +function Ji(e) { if (!e || typeof e != "object") return null; let t = e.filepath || e.path || e?.file_info?.filepath || ""; return t ? { @@ -1155,20 +1155,20 @@ function Gi(e) { filename: e.filename || "", subfolder: e.subfolder || "", type: (e.type || "output").toLowerCase(), - root_id: be(e), + root_id: Be(e), kind: e.kind || "" } : null; } -async function Ki({ x: e, y: t, assets: n }) { - let r = Array.isArray(n) ? n.map(Gi).filter(Boolean) : []; - r.length ? Ui({ +async function Yi({ x: e, y: t, assets: n }) { + let r = Array.isArray(n) ? n.map(Ji).filter(Boolean) : []; + r.length ? Ki({ x: Number(e) || 0, y: Number(t) || 0, assets: r - }) : F(L("toast.noValidAssetsSelected", "No valid assets selected."), "warning"); + }) : x(L("toast.noValidAssetsSelected", "No valid assets selected."), "warning"); } // ui/features/grid/GridKeyboard.ts -var qi = { +var Xi = { OPEN_VIEWER: { key: "Enter", description: "Open selected in viewer" @@ -1284,29 +1284,29 @@ var qi = { key: "ArrowRight", description: "Navigate right" } -}, Ji = null; -function Yi() { - return Ji ||= import("./chunks/viewerOpenRequest-WOJE90Gn.js").then((e) => e.n), Ji; +}, Zi = null; +function Qi() { + return Zi ||= import("./chunks/viewerOpenRequest-WOJE90Gn.js").then((e) => e.n), Zi; } -function Xi(e) { +function $i(e) { if (!e) return ""; let t = []; e.ctrl && t.push("Ctrl"), e.shift && t.push("Shift"), e.alt && t.push("Alt"); let n = e.key; return n === " " && (n = "Space"), n === "Delete" && (n = "Del"), n === "ArrowUp" && (n = "<-‘"), n === "ArrowDown" && (n = "<-“"), n === "ArrowLeft" && (n = "<-"), n === "ArrowRight" && (n = "->"), t.push(n.length === 1 ? n.toUpperCase() : n), t.join("+"); } -function Zi(e, t) { +function ea(e, t) { if (!t || !e) return !1; let n = e.key.toLowerCase() === t.key.toLowerCase() || e.key === t.key, r = !!t.ctrl === (e.ctrlKey || e.metaKey), i = !!t.shift === e.shiftKey, a = !!t.alt === e.altKey; return n && r && i && a; } -var Qi = /* @__PURE__ */ new Map(); -function $i(e, t, n) { +var ta = /* @__PURE__ */ new Map(); +function na(e, t, n) { let r = e?.id; if (!r) return; let i = String(r); try { - let e = Qi.get(i); + let e = ta.get(i); e && clearTimeout(e); } catch (e) { console.debug?.(e); @@ -1318,37 +1318,37 @@ function $i(e, t, n) { } let a = setTimeout(async () => { try { - Qi.delete(i); - let e = await N(r, t); + ta.delete(i); + let e = await P(r, t); if (!e?.ok) { - F(e?.error || L("toast.ratingUpdateFailed"), "error"); + x(e?.error || L("toast.ratingUpdateFailed"), "error"); return; } - F(L("toast.ratingSetN", { n: t }), "success", 1500), Tt(Ft, { + x(L("toast.ratingSetN", { n: t }), "success", 1500), Ot(Rt, { assetId: String(r), rating: t }, { warnPrefix: "[GridKeyboard]" }); } catch (e) { - console.error("[GridKeyboard] Rating update failed:", e), F(L("toast.ratingUpdateError"), "error"); + console.error("[GridKeyboard] Rating update failed:", e), x(L("toast.ratingUpdateError"), "error"); } }, 350); - Qi.set(i, a); + ta.set(i, a); } -function ea({ gridContainer: e, getState: t = () => ({}), getSelectedAssets: n = () => [], getActiveAsset: r = () => null, onOpenDetails: i = () => {}, onOpenTagsEditor: a = () => {}, onSelectionChanged: o = () => {}, onAssetChanged: s = () => {} } = {}) { +function ra({ gridContainer: e, getState: t = () => ({}), getSelectedAssets: n = () => [], getActiveAsset: r = () => null, onOpenDetails: i = () => {}, onOpenTagsEditor: a = () => {}, onSelectionChanged: o = () => {}, onAssetChanged: s = () => {} } = {}) { if (!e) return { bind: () => {}, unbind: () => {}, dispose: () => {} }; let c = null, l = null, u = null, d = null, f = !1, p = !1, m = ({ assets: e = [], index: t = 0, mode: n = "" } = {}) => { - Yi().then((r) => r.requestViewerOpen({ + Qi().then((r) => r.requestViewerOpen({ assets: e, index: t, mode: n })).catch((e) => console.debug?.(e)); }, h = () => { try { - pt(e); + gt(e); } catch (e) { console.debug?.(e); } @@ -1385,9 +1385,9 @@ function ea({ gridContainer: e, getState: t = () => ({}), getSelectedAssets: n = } }, y = (e) => { if (!e?.filepath) return !1; - let t = Se(e.filepath), n = document.createElement("a"); - return n.href = t, n.download = e.filename || "download", document.body.appendChild(n), n.click(), document.body.removeChild(n), F(L("toast.downloadingFile", "Downloading {filename}...", { filename: e.filename }), "info", 3e3), !0; - }, x = () => { + let t = Fe(e.filepath), n = document.createElement("a"); + return n.href = t, n.download = e.filename || "download", document.body.appendChild(n), n.click(), document.body.removeChild(n), x(L("toast.downloadingFile", "Downloading {filename}...", { filename: e.filename }), "info", 3e3), !0; + }, b = () => { try { if (Array.isArray(t?.()?.assets) && t().assets.length) return t().assets; } catch (e) { @@ -1458,7 +1458,7 @@ function ea({ gridContainer: e, getState: t = () => ({}), getSelectedAssets: n = }, T = (t) => { let n = String(t.key || ""); if (n !== "ArrowLeft" && n !== "ArrowRight" && n !== "ArrowUp" && n !== "ArrowDown" && n !== "Home" && n !== "End" || t.ctrlKey || t.altKey || t.metaKey) return !1; - let r = x(); + let r = b(); if (!Array.isArray(r) || r.length === 0) return !1; let i = v(), a = String(i?.id || e?.dataset?.mjrSelectedAssetId || ""), s = r.findIndex((e) => String(e?.id || "") === a), c = s >= 0; s < 0 && (s = 0); @@ -1479,14 +1479,14 @@ function ea({ gridContainer: e, getState: t = () => ({}), getSelectedAssets: n = console.debug?.(e); } return !0; - }, E = async (n) => { + }, D = async (n) => { let r = n.target; - if (r && (r.tagName === "INPUT" || r.tagName === "TEXTAREA" || r.isContentEditable) || vt() || gt().scope === "viewer") return; + if (r && (r.tagName === "INPUT" || r.tagName === "TEXTAREA" || r.isContentEditable) || xt() || yt().scope === "viewer") return; if (document.activeElement !== document.body) { let t = document.activeElement, n = e.contains(t), r = t && t.contains && t.contains(e), i = t?.closest?.(".mjr-asset-card"); if (!n && !r && !i) return; } else { - let t = ht(); + let t = vt(); if (t && t !== e) return; } let c = () => { @@ -1501,38 +1501,38 @@ function ea({ gridContainer: e, getState: t = () => ({}), getSelectedAssets: n = console.debug?.(e); } let l = g(), u = v(), d = t(); - if (Zi(n, qi.DOWNLOAD) && u?.filepath) { + if (ea(n, Xi.DOWNLOAD) && u?.filepath) { c(), p = !0; return; } - let f = !!gt().ratingHotkeysActive; + let f = !!yt().ratingHotkeysActive; if (!n.ctrlKey && !n.altKey && !n.metaKey && !n.shiftKey) { - if (!f && Zi(n, qi.RATING_1) && u?.id) { - c(), $i(u, 1, s); + if (!f && ea(n, Xi.RATING_1) && u?.id) { + c(), na(u, 1, s); return; } - if (!f && Zi(n, qi.RATING_2) && u?.id) { - c(), $i(u, 2, s); + if (!f && ea(n, Xi.RATING_2) && u?.id) { + c(), na(u, 2, s); return; } - if (!f && Zi(n, qi.RATING_3) && u?.id) { - c(), $i(u, 3, s); + if (!f && ea(n, Xi.RATING_3) && u?.id) { + c(), na(u, 3, s); return; } - if (!f && Zi(n, qi.RATING_4) && u?.id) { - c(), $i(u, 4, s); + if (!f && ea(n, Xi.RATING_4) && u?.id) { + c(), na(u, 4, s); return; } - if (!f && Zi(n, qi.RATING_5) && u?.id) { - c(), $i(u, 5, s); + if (!f && ea(n, Xi.RATING_5) && u?.id) { + c(), na(u, 5, s); return; } - if (!f && Zi(n, qi.RATING_RESET) && u?.id) { - c(), $i(u, 0, s); + if (!f && ea(n, Xi.RATING_RESET) && u?.id) { + c(), na(u, 0, s); return; } } - if ((Zi(n, qi.OPEN_VIEWER) || Zi(n, qi.OPEN_VIEWER_ALT)) && l.length > 0) { + if ((ea(n, Xi.OPEN_VIEWER) || ea(n, Xi.OPEN_VIEWER_ALT)) && l.length > 0) { c(); try { if (l.length >= 2 && l.length <= 4) m({ @@ -1555,8 +1555,8 @@ function ea({ gridContainer: e, getState: t = () => ({}), getSelectedAssets: n = } catch (e) { console.error("[GridKeyboard] Open viewer failed:", e); } - } else if (Zi(n, qi.METADATA_PANEL) && u) c(), i(u); - else if (Zi(n, qi.COMPARE_AB) && l.length === 2) { + } else if (ea(n, Xi.METADATA_PANEL) && u) c(), i(u); + else if (ea(n, Xi.COMPARE_AB) && l.length === 2) { c(); try { m({ @@ -1567,7 +1567,7 @@ function ea({ gridContainer: e, getState: t = () => ({}), getSelectedAssets: n = } catch (e) { console.debug?.(e); } - } else if (Zi(n, qi.SIDE_BY_SIDE) && l.length >= 2 && l.length <= 4) { + } else if (ea(n, Xi.SIDE_BY_SIDE) && l.length >= 2 && l.length <= 4) { c(); try { m({ @@ -1578,29 +1578,29 @@ function ea({ gridContainer: e, getState: t = () => ({}), getSelectedAssets: n = } catch (e) { console.debug?.(e); } - } else if (Zi(n, qi.EDIT_TAGS) && u?.id) c(), a(u); - else if (Zi(n, qi.ADD_TO_COLLECTION) && (l.length > 0 || u)) { + } else if (ea(n, Xi.EDIT_TAGS) && u?.id) c(), a(u); + else if (ea(n, Xi.ADD_TO_COLLECTION) && (l.length > 0 || u)) { c(); let t = l.length > 0 ? l : [u], n = e.getBoundingClientRect(); - await Ki({ + await Yi({ x: n.left + n.width / 2, y: n.top + n.height / 2, assets: t }); } else { - if (Zi(n, qi.REMOVE_FROM_COLLECTION)) { + if (ea(n, Xi.REMOVE_FROM_COLLECTION)) { let e = d?.collectionId; if (e && (l.length > 0 || u)) { c(); try { let t = (l.length > 0 ? l : [u]).map((e) => String(e?.filepath || e?.path || e?.file_info?.filepath || "").trim()).filter(Boolean); if (!t.length) { - F(L("toast.removeFromCollectionFailed", "No valid files to remove from collection"), "warning"); + x(L("toast.removeFromCollectionFailed", "No valid files to remove from collection"), "warning"); return; } - let n = await ve(e, t); + let n = await z(e, t); if (!n?.ok) { - F(n?.error || L("toast.removeFromCollectionFailed", "Failed to remove from collection"), "error"); + x(n?.error || L("toast.removeFromCollectionFailed", "Failed to remove from collection"), "error"); return; } try { @@ -1608,54 +1608,54 @@ function ea({ gridContainer: e, getState: t = () => ({}), getSelectedAssets: n = } catch (e) { console.debug?.(e); } - F(L("toast.removedFromCollection", "Removed from collection"), "success", 1400); + x(L("toast.removedFromCollection", "Removed from collection"), "success", 1400); } catch (e) { - F(L("toast.removeFromCollectionError", "Error removing from collection: {error}", { error: e?.message || String(e || "") }), "error"); + x(L("toast.removeFromCollectionError", "Error removing from collection: {error}", { error: e?.message || String(e || "") }), "error"); } return; } } - if (Zi(n, qi.COPY_PATH) && u?.filepath) { + if (ea(n, Xi.COPY_PATH) && u?.filepath) { c(); try { - await navigator.clipboard.writeText(u.filepath), F(L("toast.pathCopied"), "success", 2e3); + await navigator.clipboard.writeText(u.filepath), x(L("toast.pathCopied"), "success", 2e3); } catch { - F(L("toast.pathCopyFailed"), "error"); + x(L("toast.pathCopyFailed"), "error"); } - } else if (Zi(n, qi.OPEN_IN_FOLDER) && u?.id) { + } else if (ea(n, Xi.OPEN_IN_FOLDER) && u?.id) { c(); - let e = await Ke(u.id); - e?.ok ? F(L("toast.openedInFolder"), "info", 2e3) : F(e?.error || L("toast.openFolderFailed"), "error"); - } else if (Zi(n, qi.RENAME) && u?.id) { + let e = await Me(u.id); + e?.ok ? x(L("toast.openedInFolder"), "info", 2e3) : x(e?.error || L("toast.openFolderFailed"), "error"); + } else if (ea(n, Xi.RENAME) && u?.id) { c(); - let e = u.filename || "", t = zi(await wt(L("dialog.rename.title", "Rename file"), e), e); + let e = u.filename || "", t = Hi(await Dt(L("dialog.rename.title", "Rename file"), e), e); if (t && t !== e) { - let e = Ii(t); + let e = zi(t); if (!e.valid) { - F(e.reason, "error"); + x(e.reason, "error"); return; } try { - let e = await je(u, t); + let e = await xe(u, t); if (e?.ok) { let n = e?.data?.asset; - n && typeof n == "object" ? Object.assign(u, n) : (u.filename = t, u.filepath = u.filepath?.replace(/[^\\/]+$/, t), u.path &&= String(u.path).replace(/[^\\/]+$/, t), u.file_info && typeof u.file_info == "object" && (u.file_info.filename = t, u.file_info.filepath && (u.file_info.filepath = String(u.file_info.filepath).replace(/[^\\/]+$/, t)), u.file_info.path && (u.file_info.path = String(u.file_info.path).replace(/[^\\/]+$/, t)))), F(L("toast.fileRenamedSuccess"), "success"); + n && typeof n == "object" ? Object.assign(u, n) : (u.filename = t, u.filepath = u.filepath?.replace(/[^\\/]+$/, t), u.path &&= String(u.path).replace(/[^\\/]+$/, t), u.file_info && typeof u.file_info == "object" && (u.file_info.filename = t, u.file_info.filepath && (u.file_info.filepath = String(u.file_info.filepath).replace(/[^\\/]+$/, t)), u.file_info.path && (u.file_info.path = String(u.file_info.path).replace(/[^\\/]+$/, t)))), x(L("toast.fileRenamedSuccess"), "success"); try { window.dispatchEvent(new CustomEvent("mjr:reload-grid", { detail: { reason: "rename-keyboard" } })); } catch (e) { console.debug?.(e); } s(); - } else F(e?.error || L("toast.fileRenameFailed"), "error"); + } else x(e?.error || L("toast.fileRenameFailed"), "error"); } catch (e) { - F(L("toast.errorRenaming", "Error renaming file: {error}", { error: e?.message || String(e || "") }), "error"); + x(L("toast.errorRenaming", "Error renaming file: {error}", { error: e?.message || String(e || "") }), "error"); } } - } else if ((Zi(n, qi.DELETE) || Zi(n, qi.DELETE_ALT)) && (u?.id || l.length > 0)) { + } else if ((ea(n, Xi.DELETE) || ea(n, Xi.DELETE_ALT)) && (u?.id || l.length > 0)) { c(); let t = l.length > 0 ? l : [u], n = 0, r = 0, i = []; for (let e of t) if (e?.id) try { - (await b(e.id))?.ok ? (n++, i.push(String(e.id))) : r++; + (await E(e.id))?.ok ? (n++, i.push(String(e.id))) : r++; } catch { r++; } @@ -1666,7 +1666,7 @@ function ea({ gridContainer: e, getState: t = () => ({}), getSelectedAssets: n = } catch (e) { console.debug?.(e); } - r === 0 ? F(L("toast.filesDeletedShort", "{n} files deleted", { n }), "success") : F(L("toast.filesDeletedShortPartial", "{success} deleted, {failed} failed", { + r === 0 ? x(L("toast.filesDeletedShort", "{n} files deleted", { n }), "success") : x(L("toast.filesDeletedShortPartial", "{success} deleted, {failed} failed", { success: n, failed: r }), "warning"); @@ -1679,7 +1679,7 @@ function ea({ gridContainer: e, getState: t = () => ({}), getSelectedAssets: n = console.debug?.(e); } o(); - } else if (Zi(n, qi.SELECT_ALL)) { + } else if (ea(n, Xi.SELECT_ALL)) { c(); let t = []; try { @@ -1704,7 +1704,7 @@ function ea({ gridContainer: e, getState: t = () => ({}), getSelectedAssets: n = console.debug?.(e); } o(); - } else if (Zi(n, qi.DESELECT_ALL)) { + } else if (ea(n, Xi.DESELECT_ALL)) { c(); try { typeof e?._mjrSetSelection == "function" ? e._mjrSetSelection([], "") : (_().filter((e) => e?.classList?.contains?.("is-selected")).forEach((e) => { @@ -1716,19 +1716,19 @@ function ea({ gridContainer: e, getState: t = () => ({}), getSelectedAssets: n = o(); } } - }, D = (e) => { - if (String(e?.key || "").toLowerCase() !== "s" || !p || (p = !1, vt()) || gt().scope === "viewer") return; + }, O = (e) => { + if (String(e?.key || "").toLowerCase() !== "s" || !p || (p = !1, xt()) || yt().scope === "viewer") return; let t = v(); t?.filepath && (e.preventDefault?.(), e.stopPropagation?.(), e.stopImmediatePropagation?.(), y(t)); - }, O = () => { - p = !1; }, k = () => { - f ||= (c = E, l = D, u = O, d = () => h(), document.addEventListener("keydown", c, !0), document.addEventListener("keyup", l, !0), document.addEventListener("dragstart", u, !0), e.addEventListener("pointerdown", d, !0), e.addEventListener("focusin", d, !0), !0); + p = !1; }, A = () => { + f ||= (c = D, l = O, u = k, d = () => h(), document.addEventListener("keydown", c, !0), document.addEventListener("keyup", l, !0), document.addEventListener("dragstart", u, !0), e.addEventListener("pointerdown", d, !0), e.addEventListener("focusin", d, !0), !0); + }, j = () => { if (f && c) { document.removeEventListener("keydown", c, !0), l && document.removeEventListener("keyup", l, !0), u && document.removeEventListener("dragstart", u, !0), d && (e.removeEventListener("pointerdown", d, !0), e.removeEventListener("focusin", d, !0)), c = null, l = null, u = null, d = null, p = !1; try { - _t(e); + bt(e); } catch (e) { console.debug?.(e); } @@ -1738,36 +1738,36 @@ function ea({ gridContainer: e, getState: t = () => ({}), getSelectedAssets: n = console.debug?.(e); } f = !1; - for (let e of Qi.values()) try { + for (let e of ta.values()) try { clearTimeout(e); } catch (e) { console.debug?.(e); } - Qi.clear(); + ta.clear(); } }; return { - bind: k, - unbind: A, + bind: A, + unbind: j, dispose: () => { - A(); - for (let e of Qi.values()) try { + j(); + for (let e of ta.values()) try { clearTimeout(e); } catch (e) { console.debug?.(e); } - Qi.clear(); + ta.clear(); } }; } -function ta(e) { - let t = qi[e]; - return t ? Xi(t) : ""; +function ia(e) { + let t = Xi[e]; + return t ? $i(t) : ""; } // ui/features/contextmenu/ratingUpdater.ts -var na = 350, ra = /* @__PURE__ */ new Map(); -function ia(e) { - let t = ra.get(e); +var aa = 350, oa = /* @__PURE__ */ new Map(); +function sa(e) { + let t = oa.get(e); if (t) { try { clearTimeout(t.timer); @@ -1779,80 +1779,80 @@ function ia(e) { } catch (e) { console.debug?.(e); } - ra.delete(e); + oa.delete(e); } } -function aa(e) { - e && ia(String(e)); +function ca(e) { + e && sa(String(e)); } -function oa() { - for (let e of Array.from(ra.keys())) aa(e); +function la() { + for (let e of Array.from(oa.keys())) ca(e); } -function sa(e, t, { onSuccess: n, onFailure: r, successMessage: i = null, errorMessage: a = null, warnPrefix: o = "[RatingUpdater]" } = {}) { +function ua(e, t, { onSuccess: n, onFailure: r, successMessage: i = null, errorMessage: a = null, warnPrefix: o = "[RatingUpdater]" } = {}) { if (!e) return; - aa(e); + ca(e); let s = new AbortController(), c = setTimeout(async () => { - ra.delete(String(e)); + oa.delete(String(e)); try { - let o = await N(e, t, { signal: s.signal }); + let o = await P(e, t, { signal: s.signal }); if (!o?.ok) { - F(o?.error || a || "Failed to update rating", "error"), r?.(o); + x(o?.error || a || "Failed to update rating", "error"), r?.(o); return; } - i && F(i, "success", 1500), n?.(o); + i && x(i, "success", 1500), n?.(o); } catch (e) { - ct(e, o, { showToast: !0 }), r?.(e); + dt(e, o, { showToast: !0 }), r?.(e); } - }, na); - ra.set(String(e), { + }, aa); + oa.set(String(e), { timer: c, controller: s }); } // ui/features/workflows/workflowInfoState.ts -var ca = hr({ +var da = vr({ open: !1, workflow: null }); -function la(e) { - ca.workflow = e || null, ca.open = !0; +function fa(e) { + da.workflow = e || null, da.open = !0; } -function ua() { - ca.open = !1, ca.workflow = null; +function pa() { + da.open = !1, da.workflow = null; } // ui/features/contextmenu/GridContextMenu.ts -var da = 1, fa = null, pa = null; -function ma() { - return fa ||= import("./chunks/viewerOpenRequest-WOJE90Gn.js").then((e) => e.n), fa; +var ma = 1, ha = null, ga = null; +function _a() { + return ha ||= import("./chunks/viewerOpenRequest-WOJE90Gn.js").then((e) => e.n), ha; } -function ha() { - return pa ||= import("./chunks/floatingViewerManager-B_I-SRbd.js").then((e) => e.n), pa; +function va() { + return ga ||= import("./chunks/floatingViewerManager-D_aLLeau.js").then((e) => e.n), ga; } -function ga(e) { +function ya(e) { let t = String(e || "").trim().toLowerCase(); return t ? t.includes("open graph map") ? "graph-map" : t.includes("open in floating viewer") || t.includes("open floating viewer") ? "floating-viewer" : t.includes("rename") ? "rename" : t.includes("delete") ? "delete" : "" : ""; } function $(e, t, n, r, { disabled: i = !1, closeOnSelect: a = !0, submenu: o = null } = {}) { return { - id: `mjr-grid-menu-item-${da++}`, + id: `mjr-grid-menu-item-${ma++}`, type: "item", label: String(e || ""), iconClass: t ? String(t) : "", rightHint: n ? String(n) : "", - tone: ga(e), + tone: ya(e), disabled: !!i, closeOnSelect: a, submenu: Array.isArray(o) && o.length ? o : null, action: typeof r == "function" ? r : null }; } -function _a() { +function ba() { return { - id: `mjr-grid-menu-separator-${da++}`, + id: `mjr-grid-menu-separator-${ma++}`, type: "separator" }; } -var va = (e) => { +var xa = (e) => { let t = /* @__PURE__ */ new Set(); if (!e) return t; try { @@ -1874,7 +1874,7 @@ var va = (e) => { console.debug?.(e); } return t; -}, ya = (e) => { +}, Sa = (e) => { let t = []; if (!e) return t; try { @@ -1910,11 +1910,11 @@ var va = (e) => { } return t; }; -async function ba(e) { +async function Ca(e) { let t = String(e?.filepath || e?.path || e?.full_path || "").trim(); if (!t) return e; try { - let n = await Le(t, { timeoutMs: 25e3 }), r = n?.data?.workflow || n?.workflow || null, i = n?.data?.prompt || n?.prompt || null; + let n = await ze(t, { timeoutMs: 25e3 }), r = n?.data?.workflow || n?.workflow || null, i = n?.data?.prompt || n?.prompt || null; return !r && !i ? e : { ...e, workflow: r || e?.workflow, @@ -1929,71 +1929,71 @@ async function ba(e) { return console.debug?.(t), e; } } -var xa = (e) => { +var wa = (e) => { try { let t = e?.filepath || e?.path || e?.file_info?.filepath || ""; return t ? String(t) : ""; } catch { return ""; } -}, Sa = (e) => { +}, Ta = (e) => { if (!e || typeof e != "object") return null; let t = String(e.filename || "").trim(); return t ? { filename: t, subfolder: e.subfolder || "", type: String(e.type || e.source || "output").toLowerCase(), - root_id: be(e) || void 0, + root_id: Be(e) || void 0, kind: String(e.kind || "").toLowerCase() } : null; -}, Ca = (e) => { +}, Ea = (e) => { if (!e || typeof e != "object") return null; let t = String(e.filename || e.name || "").trim(); return t ? { filename: t, subfolder: e.subfolder || "", type: String(e.type || e.source || "output").toLowerCase(), - root_id: be(e) || void 0 + root_id: Be(e) || void 0 } : null; }; -function wa(e, t = "") { +function Da(e, t = "") { if (!e) return; let n = document.createElement("a"); n.href = e, t && (n.download = t), document.body.appendChild(n), n.click(), document.body.removeChild(n); } -async function Ta(e) { - let t = (Array.isArray(e) ? e.filter((e) => !za(e)) : []).map(Ca).filter(Boolean); +async function Oa(e) { + let t = (Array.isArray(e) ? e.filter((e) => !Ha(e)) : []).map(Ea).filter(Boolean); if (t.length < 2) { - F("Select at least two files to download a ZIP.", "warning", 2600); + x("Select at least two files to download a ZIP.", "warning", 2600); return; } let n = ""; try { - n = _e("mjr_", 24); + n = Qe("mjr_", 24); } catch (e) { - ct(e, "[GridContextMenu] Batch ZIP token", { showToast: R.DEBUG_VERBOSE_ERRORS }), F("Could not create a secure ZIP token.", "error"); + dt(e, "[GridContextMenu] Batch ZIP token", { showToast: R.DEBUG_VERBOSE_ERRORS }), x("Could not create a secure ZIP token.", "error"); return; } - F(`Preparing ZIP for ${t.length} files...`, "info", 1800); - let r = await me(p.BATCH_ZIP_CREATE, { + x(`Preparing ZIP for ${t.length} files...`, "info", 1800); + let r = await he(I.BATCH_ZIP_CREATE, { token: n, items: t, strip_metadata: !1 }); if (!r?.ok) { - F(r?.error || "Failed to create ZIP.", "error"); + x(r?.error || "Failed to create ZIP.", "error"); return; } let i = r?.data?.filename || `Majoor_Batch_${t.length}.zip`; - wa(I(n), i), F(`Downloading ${i}...`, "info", 3e3); + Da(j(n), i), x(`Downloading ${i}...`, "info", 3e3); } -async function Ea(e) { +async function ka(e) { let t = Array.isArray(e) ? e.filter(Boolean) : [], n = await Promise.all(t.map(async (e) => { - let t = Sa(e); + let t = Ta(e); if (!t) return null; - let n = (await En({ - post: me, - endpoint: p.STAGE_TO_INPUT, + let n = (await kn({ + post: he, + endpoint: I.STAGE_TO_INPUT, payload: t, index: !1 }))?.relativePath; @@ -2003,13 +2003,13 @@ async function Ea(e) { droppedExt: String(t.filename || "").split(".").pop() || "" } : null; })); - return bn({ - app: $e(), + return Cn({ + app: l(), items: n.filter(Boolean), event: null }); } -var Da = (e) => { +var Aa = (e) => { if (e) { try { if (typeof e?._mjrSetSelection == "function") e._mjrSetSelection([], ""); @@ -2021,15 +2021,15 @@ var Da = (e) => { } catch (e) { console.debug?.(e); } - Tt("mjr:selection-changed", { selectedIds: [] }, { + Ot("mjr:selection-changed", { selectedIds: [] }, { target: e, warnPrefix: "[GridContextMenu]" }); } -}, Oa = (e, t, n, r) => { +}, ja = (e, t, n, r) => { if (!e) return; try { - Da(e); + Aa(e); } catch (e) { console.debug?.(e); } @@ -2049,7 +2049,7 @@ var Da = (e) => { } catch (e) { console.debug?.(e); } -}, ka = (e) => { +}, Ma = (e) => { let t = []; if (!e) return t; try { @@ -2071,7 +2071,7 @@ var Da = (e) => { console.debug?.(e); } return t; -}, Aa = (e, t) => { +}, Na = (e, t) => { try { let n = String(t ?? ""); return (e || []).findIndex((e) => String(e?.id ?? "") === n); @@ -2079,16 +2079,16 @@ var Da = (e) => { return -1; } }; -function ja(e) { +function Pa(e) { if (e == null) return null; try { - return document.querySelector(`[data-mjr-asset-id="${Lt(e)}"]`); + return document.querySelector(`[data-mjr-asset-id="${Bt(e)}"]`); } catch (e) { return console.debug?.(e), null; } } -function Ma(e, t = null) { - let n = ja(e?.id); +function Fa(e, t = null) { + let n = Pa(e?.id); if (!n || !n._mjrAsset || typeof n._mjrAsset != "object") return n; try { t && typeof t == "object" ? Object.assign(n._mjrAsset, t) : e && typeof e == "object" && Object.assign(n._mjrAsset, e); @@ -2097,7 +2097,7 @@ function Ma(e, t = null) { } return n; } -var Na = (e) => { +var Ia = (e) => { try { let t = e ? "grid-contextmenu" : "grid-contextmenu-global"; window?.dispatchEvent?.(new CustomEvent("mjr:reload-grid", { detail: { reason: t } })); @@ -2105,7 +2105,7 @@ var Na = (e) => { console.debug?.(e); } }; -async function Pa(e, t) { +async function La(e, t) { if (!e) return { ok: !1, error: "Missing asset" @@ -2120,7 +2120,7 @@ async function Pa(e, t) { ok: !1, error: "Missing filename" }; - let r = await me(p.INDEX_FILES, { + let r = await he(I.INDEX_FILES, { files: [n], incremental: !1 }); @@ -2129,24 +2129,24 @@ async function Pa(e, t) { error: "Index refresh failed" }; if (e?.id != null) try { - let t = await Ue(e.id); + let t = await qe(e.id); if (t?.ok && t?.data && typeof t.data == "object") { Object.assign(e, t.data); - let n = Ma(e, t.data), r = n?.querySelector?.(".mjr-workflow-dot"); + let n = Fa(e, t.data), r = n?.querySelector?.(".mjr-workflow-dot"); if (r) { - let e = _n(n._mjrAsset); + let e = bn(n._mjrAsset); e && r.replaceWith(e); } } } catch (e) { console.debug?.(e); } - return Na(t), { + return Ia(t), { ok: !0, data: { refreshed: !0 } }; } -function Fa(e, t, n) { +function Ra(e, t, n) { let r = e?.id; try { e.rating = t; @@ -2158,46 +2158,46 @@ function Fa(e, t, n) { } catch (e) { console.debug?.(e); } - r ? sa(String(r), t, { + r ? ua(String(r), t, { successMessage: t > 0 ? `Rating set to ${t} stars` : "Rating cleared", errorMessage: "Failed to update rating", warnPrefix: "[GridContextMenu]", onSuccess: () => { - Tt(Ft, { + Ot(Rt, { assetId: String(r), rating: t }, { warnPrefix: "[GridContextMenu]" }); }, onFailure: (e) => { - ct(e, "[GridContextMenu] Rating update", { showToast: R.DEBUG_VERBOSE_ERRORS }); + dt(e, "[GridContextMenu] Rating update", { showToast: R.DEBUG_VERBOSE_ERRORS }); } - }) : N(e, t).catch((e) => { - ct(e, "[GridContextMenu] Rating update", { showToast: R.DEBUG_VERBOSE_ERRORS }); + }) : P(e, t).catch((e) => { + dt(e, "[GridContextMenu] Rating update", { showToast: R.DEBUG_VERBOSE_ERRORS }); }); } -function Ia(e) { +function za(e) { let t = String(e?.scope || "").toLowerCase(); return t === "custom" || t === "input" || t === "output"; } -function La() { +function Ba() { try { - return !!(Mt()?.browser?.showFolders ?? !1); + return !!(Ft()?.browser?.showFolders ?? !1); } catch { return !1; } } -function Ra(e) { +function Va(e) { return String(e?.scope || "").toLowerCase() === "workflow"; } -function za(e) { +function Ha(e) { return String(e?.kind || "").toLowerCase() === "folder"; } -function Ba(e) { +function Ua(e) { return String(e?.kind || "").toLowerCase() === "workflow"; } -function Va(e) { - if (!e || za(e) || Ba(e)) return !1; - let t = xa(e); +function Wa(e) { + if (!e || Ha(e) || Ua(e)) return !1; + let t = wa(e); if (!t) return !1; let n = String(e?.kind || "").toLowerCase(); if (n === "image" || n === "video") return !0; @@ -2216,185 +2216,185 @@ function Va(e) { "m4v" ].includes(r); } -async function Ha(e) { - if (!e || za(e)) return null; - let t = Jt(e); +async function Ga(e) { + if (!e || Ha(e)) return null; + let t = Zt(e); if (t) return t; let n = e?.id; if (n == null || n === "") return null; try { - let t = await Ue(n, { timeoutMs: 3e4 }), r = t?.data; - if (t?.ok && r && typeof r == "object") return Object.assign(e, r), Jt(e); + let t = await qe(n, { timeoutMs: 3e4 }), r = t?.data; + if (t?.ok && r && typeof r == "object") return Object.assign(e, r), Zt(e); } catch (e) { console.debug?.(e); } return null; } -async function Ua(e) { - let t = await Ha(e); +async function Ka(e) { + let t = await Ga(e); if (!t || typeof t != "object") { - F(L("toast.assetWorkflowMissing", "No embedded ComfyUI workflow was found for this asset."), "warn", 2600); + x(L("toast.assetWorkflowMissing", "No embedded ComfyUI workflow was found for this asset."), "warn", 2600); return; } - let n = $e(), r = te(t, n); + let n = l(), r = u(t, n); if (!r.ok) { - F(L("toast.workflowImportUnavailable", "ComfyUI workflow import is unavailable in this frontend."), "error"); + x(L("toast.workflowImportUnavailable", "ComfyUI workflow import is unavailable in this frontend."), "error"); return; } let i = r.mode === "new-tab" ? L("toast.workflowLoadedNewTab", "Workflow loaded in a new ComfyUI tab.") : L("toast.workflowLoaded", "Workflow loaded"); - F(i, "success", 1800); + x(i, "success", 1800); } -async function Wa(e) { +async function qa(e) { let t = String(e?.filepath || e?.path || e?.full_path || "").trim(); if (!t) { - F(L("toast.workflowMissingPath", "Workflow file path is missing."), "error"); + x(L("toast.workflowMissingPath", "Workflow file path is missing."), "error"); return; } - let n = $e(); - if (a(n) === !0 && !await jt(L("dialog.workflowLoadReplaceDirty", "Current canvas has unsaved changes. Replace it with this workflow?"), L("tab.workflow", "Workflow"))) return; - let r = await Le(t, { timeoutMs: 3e4 }), i = r?.data?.workflow || r?.workflow || null; + let n = l(); + if (ke(n) === !0 && !await Pt(L("dialog.workflowLoadReplaceDirty", "Current canvas has unsaved changes. Replace it with this workflow?"), L("tab.workflow", "Workflow"))) return; + let r = await ze(t, { timeoutMs: 3e4 }), i = r?.data?.workflow || r?.workflow || null; if (!r?.ok || !i || typeof i != "object") { - F(r?.error || L("toast.workflowLoadFailed", "Failed to load workflow."), "error"); + x(r?.error || L("toast.workflowLoadFailed", "Failed to load workflow."), "error"); return; } - let o = te(i, n); - if (o.ok) { + let a = u(i, n); + if (a.ok) { try { - await Ze({ filepath: t }, { timeoutMs: 1e4 }); + await $e({ filepath: t }, { timeoutMs: 1e4 }); } catch (e) { console.debug?.(e); } - F(L("toast.workflowLoaded", "Workflow loaded"), "success", 1800); + x(L("toast.workflowLoaded", "Workflow loaded"), "success", 1800); } else { - let e = Se(t, { inline: !0 }); + let e = Fe(t, { inline: !0 }); try { e && typeof window < "u" && window.open(e, "_blank", "noopener,noreferrer"); } catch (e) { console.debug?.(e); } - F(L("toast.workflowImportFallback", "ComfyUI workflow import is unavailable in this frontend. Opened workflow JSON for manual import."), "warn"), o.mode === "new-tab" && F(L("toast.workflowLoadedNewTab", "Workflow loaded in a new ComfyUI tab."), "success"); + x(L("toast.workflowImportFallback", "ComfyUI workflow import is unavailable in this frontend. Opened workflow JSON for manual import."), "warn"), a.mode === "new-tab" && x(L("toast.workflowLoadedNewTab", "Workflow loaded in a new ComfyUI tab."), "success"); } } -function Ga(e) { +function Ja(e) { try { window.dispatchEvent(new CustomEvent("mjr:reload-grid", { detail: { reason: e } })); } catch (e) { console.debug?.(e); } } -async function Ka(e) { - let t = String(e?.filepath || "").trim(), n = await de({ filepath: t }, { timeoutMs: 3e4 }); - n?.ok ? (F(L("toast.workflowSaved", "Workflow saved"), "success", 1800), Ga("workflow-duplicate")) : F(n?.error || L("toast.workflowSaveFailed", "Failed to save workflow."), "error"); +async function Ya(e) { + let t = String(e?.filepath || "").trim(), n = await fe({ filepath: t }, { timeoutMs: 3e4 }); + n?.ok ? (x(L("toast.workflowSaved", "Workflow saved"), "success", 1800), Ja("workflow-duplicate")) : x(n?.error || L("toast.workflowSaveFailed", "Failed to save workflow."), "error"); } -async function qa(e) { - let t = String(e?.filepath || "").trim(), n = String(e?.display_name || e?.filename || "").replace(/\.json$/i, ""), r = await wt(L("ctx.renameWorkflow", "Rename workflow"), n, L("tab.workflow", "Workflow")), i = String(r || "").trim(); +async function Xa(e) { + let t = String(e?.filepath || "").trim(), n = String(e?.display_name || e?.filename || "").replace(/\.json$/i, ""), r = await Dt(L("ctx.renameWorkflow", "Rename workflow"), n, L("tab.workflow", "Workflow")), i = String(r || "").trim(); if (!i) return; - let a = await et({ + let a = await rt({ filepath: t, name: i }, { timeoutMs: 3e4 }); - a?.ok ? (F(L("toast.workflowUpdated", "Workflow updated"), "success", 1800), Ga("workflow-rename")) : F(a?.error || L("toast.workflowSaveFailed", "Failed to save workflow."), "error"); + a?.ok ? (x(L("toast.workflowUpdated", "Workflow updated"), "success", 1800), Ja("workflow-rename")) : x(a?.error || L("toast.workflowSaveFailed", "Failed to save workflow."), "error"); } -async function Ja(e) { - let t = String(e?.filepath || "").trim(), n = String(e?.subfolder || "").trim(), r = await wt(L("dialog.workflowCategory", "Workflow category"), n, L("tab.workflow", "Workflow")); +async function Za(e) { + let t = String(e?.filepath || "").trim(), n = String(e?.subfolder || "").trim(), r = await Dt(L("dialog.workflowCategory", "Workflow category"), n, L("tab.workflow", "Workflow")); if (r == null) return; - let i = await et({ + let i = await rt({ filepath: t, category: String(r || "") }, { timeoutMs: 3e4 }); - i?.ok ? (F(L("toast.workflowUpdated", "Workflow updated"), "success", 1800), Ga("workflow-categorize")) : F(i?.error || L("toast.workflowSaveFailed", "Failed to save workflow."), "error"); + i?.ok ? (x(L("toast.workflowUpdated", "Workflow updated"), "success", 1800), Ja("workflow-categorize")) : x(i?.error || L("toast.workflowSaveFailed", "Failed to save workflow."), "error"); } -async function Ya(e) { +async function Qa(e) { let t = String(e?.filepath || "").trim(); if (!t) { - F(L("toast.noFilePath"), "error"); + x(L("toast.noFilePath"), "error"); return; } - let n = await we({ + let n = await Te({ filepath: t, limit: 12 }, { timeoutMs: 15e3 }); if (!n?.ok) { - F(n?.error || L("toast.workflowLoadFailed", "Failed to load workflow."), "error"); + x(n?.error || L("toast.workflowLoadFailed", "Failed to load workflow."), "error"); return; } let r = Array.isArray(n.data) ? n.data : []; if (!r.length) { - F(L("toast.workflowThumbnailNoCandidates", "No linked outputs are available for this workflow yet."), "warning", 2600); + x(L("toast.workflowThumbnailNoCandidates", "No linked outputs are available for this workflow yet."), "warning", 2600); return; } - let i = await Tn({ + let i = await On({ title: L("ctx.setWorkflowThumbnail", "Set workflow thumbnail"), workflow: e, items: r }); if (!i?.filepath) return; - let a = await Qe({ + let a = await et({ filepath: t, source_filepath: i.filepath }, { timeoutMs: 3e4 }); - a?.ok ? (F(L("toast.workflowUpdated", "Workflow updated"), "success", 1800), Ga("workflow-thumbnail")) : F(a?.error || L("toast.workflowSaveFailed", "Failed to save workflow."), "error"); + a?.ok ? (x(L("toast.workflowUpdated", "Workflow updated"), "success", 1800), Ja("workflow-thumbnail")) : x(a?.error || L("toast.workflowSaveFailed", "Failed to save workflow."), "error"); } -async function Xa(e) { +async function $a(e) { let t = String(e?.filepath || "").trim(); if (!t) { - F(L("toast.workflowMissingPath", "Workflow file path is missing."), "error"); + x(L("toast.workflowMissingPath", "Workflow file path is missing."), "error"); return; } - let n = await Le(t, { timeoutMs: 3e4 }); + let n = await ze(t, { timeoutMs: 3e4 }); if (!n?.ok) { - F(n?.error || L("toast.workflowLoadFailed", "Failed to load workflow."), "error"); + x(n?.error || L("toast.workflowLoadFailed", "Failed to load workflow."), "error"); return; } let r = n?.data?.workflow || n?.workflow || null; if (!r || typeof r != "object") { - F(L("toast.workflowLoadFailed", "Failed to load workflow."), "error"); + x(L("toast.workflowLoadFailed", "Failed to load workflow."), "error"); return; } let i = String(e?.filename || e?.display_name || "workflow.json").replace(/[\\/:*?"<>|]+/g, "_").replace(/\.json$/i, "") || "workflow", a = new Blob([`${JSON.stringify(r, null, 2)}\n`], { type: "application/json" }), o = URL.createObjectURL(a); try { let e = document.createElement("a"); - e.href = o, e.download = `${i}.json`, e.rel = "noopener", document.body.appendChild(e), e.click(), e.remove(), F(L("toast.workflowExported", "Workflow exported"), "success", 1800); + e.href = o, e.download = `${i}.json`, e.rel = "noopener", document.body.appendChild(e), e.click(), e.remove(), x(L("toast.workflowExported", "Workflow exported"), "success", 1800); } finally { setTimeout(() => URL.revokeObjectURL(o), 5e3); } } -async function Za(e) { +async function eo(e) { let t = String(e?.filepath || "").trim(); if (!t) { - F(L("toast.workflowMissingPath", "Workflow file path is missing."), "error"); + x(L("toast.workflowMissingPath", "Workflow file path is missing."), "error"); return; } - let n = await Ke({ filepath: t }); - n?.ok ? F(L("toast.openedInFolder", "Opened in folder"), "success", 1600) : F(n?.error || L("toast.openFolderFailed", "Failed to open folder."), "error"); + let n = await Me({ filepath: t }); + n?.ok ? x(L("toast.openedInFolder", "Opened in folder"), "success", 1600) : x(n?.error || L("toast.openFolderFailed", "Failed to open folder."), "error"); } -async function Qa(e) { - let t = xa(e); +async function to(e) { + let t = wa(e); if (!t) { - F(L("toast.noFilePath"), "error"); + x(L("toast.noFilePath"), "error"); return; } - let n = await Fn({ + let n = await Rn({ title: L("ctx.assignAsWorkflowThumbnail", "Use as workflow thumbnail"), sourceAsset: e }), r = String(n?.filepath || "").trim(); if (!r) return; let i = String(e?.kind || "").toLowerCase() === "video" || /\.(mp4|webm|mov|mkv|avi|m4v)$/i.test(t); - F(i ? L("toast.workflowThumbnailConverting", "Preparing a 5 second animated workflow thumbnail...") : L("toast.workflowThumbnailApplying", "Applying workflow thumbnail..."), "info", 2200); - let a = await Qe({ + x(i ? L("toast.workflowThumbnailConverting", "Preparing a 5 second animated workflow thumbnail...") : L("toast.workflowThumbnailApplying", "Applying workflow thumbnail..."), "info", 2200); + let a = await et({ filepath: r, source_filepath: t }, { timeoutMs: i ? 75e3 : 3e4 }); - a?.ok ? (F(L("toast.workflowUpdated", "Workflow updated"), "success", 1800), Ga("workflow-thumbnail-assign")) : F(a?.error || L("toast.workflowSaveFailed", "Failed to save workflow."), "error"); + a?.ok ? (x(L("toast.workflowUpdated", "Workflow updated"), "success", 1800), Ja("workflow-thumbnail-assign")) : x(a?.error || L("toast.workflowSaveFailed", "Failed to save workflow."), "error"); } -async function $a(e) { +async function no(e) { let t = String(e?.filepath || "").trim(); - if (!await jt(L("dialog.deleteWorkflowConfirm", "Delete this workflow JSON and its adjacent thumbnail files?"), L("ctx.deleteWorkflow", "Delete workflow"))) return; - let n = await Be({ filepath: t }, { timeoutMs: 3e4 }); - n?.ok ? (F(L("toast.workflowDeleted", "Workflow deleted"), "success", 1800), Ga("workflow-delete")) : F(n?.error || L("toast.fileDeleteFailed", "Failed to delete file."), "error"); + if (!await Pt(L("dialog.deleteWorkflowConfirm", "Delete this workflow JSON and its adjacent thumbnail files?"), L("ctx.deleteWorkflow", "Delete workflow"))) return; + let n = await We({ filepath: t }, { timeoutMs: 3e4 }); + n?.ok ? (x(L("toast.workflowDeleted", "Workflow deleted"), "success", 1800), Ja("workflow-delete")) : x(n?.error || L("toast.fileDeleteFailed", "Failed to delete file."), "error"); } -function eo(e) { - let t = va(e), n = ya(e), r = n.length || t.size; +function ro(e) { + let t = xa(e), n = Sa(e), r = n.length || t.size; return { selectedIds: t, selectedAssetsNow: n, @@ -2403,62 +2403,62 @@ function eo(e) { hasSelection: r > 0 }; } -function to(e, t) { +function io(e, t) { let n = (e) => "*".repeat(e) + "o".repeat(Math.max(0, 5 - e)), r = (t) => { - Ma(e, { rating: t }); + Fa(e, { rating: t }); }; return [ $(n(5), "pi pi-star", null, async () => { - Fa(e, 5, () => r(5)); + Ra(e, 5, () => r(5)); }, { disabled: !t }), $(n(4), "pi pi-star", null, async () => { - Fa(e, 4, () => r(4)); + Ra(e, 4, () => r(4)); }, { disabled: !t }), $(n(3), "pi pi-star", null, async () => { - Fa(e, 3, () => r(3)); + Ra(e, 3, () => r(3)); }, { disabled: !t }), $(n(2), "pi pi-star", null, async () => { - Fa(e, 2, () => r(2)); + Ra(e, 2, () => r(2)); }, { disabled: !t }), $(n(1), "pi pi-star", null, async () => { - Fa(e, 1, () => r(1)); + Ra(e, 1, () => r(1)); }, { disabled: !t }), - _a(), + ba(), $(L("ctx.resetRating", "Reset rating"), "pi pi-star", "0", async () => { - Fa(e, 0, () => r(0)); + Ra(e, 0, () => r(0)); }, { disabled: !t }) ]; } -function no(e, t) { +function ao(e, t) { let n = String(t?.dataset?.mjrScope || "").toLowerCase(); if (n !== "input" && n !== "output") return e; let r = String(e || "").trim().replaceAll("\\", "/"); return r ? `mjr://${n}/${r}` : `mjr://${n}`; } -function ro({ currentPath: e, gridContainer: n } = {}) { +function oo({ currentPath: e, gridContainer: t } = {}) { return [$(L("ctx.createFolderHere", "Create folder here..."), "pi pi-plus", null, async () => { try { - let r = await wt(L("dialog.newFolderName", "New folder name"), ""), i = String(r || "").trim(); + let n = await Dt(L("dialog.newFolderName", "New folder name"), ""), i = String(n || "").trim(); if (!i) return; - let a = await t({ + let a = await r({ op: "create", - path: no(e, n), + path: ao(e, t), name: i }); if (!a?.ok) { - F(a?.error || "Failed to create folder", "error"); + x(a?.error || "Failed to create folder", "error"); return; } - Na(n), F(L("toast.folderCreated", "Folder created: {name}", { name: i }), "success"); + Ia(t), x(L("toast.folderCreated", "Folder created: {name}", { name: i }), "success"); } catch (e) { - F(L("toast.createFolderFailedDetail", "Create folder failed: {error}", { error: e?.message || String(e || "") }), "error"); + x(L("toast.createFolderFailedDetail", "Create folder failed: {error}", { error: e?.message || String(e || "") }), "error"); } })]; } -function io({ asset: e, gridContainer: n, panelState: r } = {}) { +function so({ asset: e, gridContainer: t, panelState: n } = {}) { let i = String(e?.filepath || "").trim(), a = [$(L("ctx.openFolder", "Open folder"), "pi pi-folder-open", null, () => { try { - n.dispatchEvent(new CustomEvent("mjr:open-folder-asset", { + t.dispatchEvent(new CustomEvent("mjr:open-folder-asset", { bubbles: !0, detail: { asset: e } })); @@ -2467,16 +2467,16 @@ function io({ asset: e, gridContainer: n, panelState: r } = {}) { } }), $(L("ctx.pinAsBrowserRoot"), "pi pi-bookmark", null, async () => { if (!i) { - F(L("toast.unableResolveFolderPath"), "error"); + x(L("toast.unableResolveFolderPath"), "error"); return; } - let t = await wt(L("dialog.browserRootLabelOptional"), String(e?.filename || "")), n = await me(p.CUSTOM_ROOTS, { + let t = await Dt(L("dialog.browserRootLabelOptional"), String(e?.filename || "")), n = await he(I.CUSTOM_ROOTS, { path: i, label: String(t || "").trim() || void 0 }); - if (!n?.ok) F(n?.error || L("toast.pinFolderFailed"), "error"); + if (!n?.ok) x(n?.error || L("toast.pinFolderFailed"), "error"); else { - F(L("toast.folderPinnedAsBrowserRoot"), "success"); + x(L("toast.folderPinnedAsBrowserRoot"), "success"); try { window.dispatchEvent(new CustomEvent("mjr:custom-roots-changed", { detail: { preferredId: String(n?.data?.id || "") } })); } catch (e) { @@ -2484,86 +2484,86 @@ function io({ asset: e, gridContainer: n, panelState: r } = {}) { } } })]; - return Ia(r) && i && a.push(_a(), $(L("ctx.createFolderHere"), "pi pi-plus", null, async () => { + return za(n) && i && a.push(ba(), $(L("ctx.createFolderHere"), "pi pi-plus", null, async () => { try { - let e = await wt(L("dialog.newFolderName"), ""), r = String(e || "").trim(); - if (!r) return; - let a = await t({ + let e = await Dt(L("dialog.newFolderName"), ""), n = String(e || "").trim(); + if (!n) return; + let a = await r({ op: "create", path: i, - name: r + name: n }); if (!a?.ok) { - F(a?.error || L("toast.createFolderFailed"), "error"); + x(a?.error || L("toast.createFolderFailed"), "error"); return; } - Na(n), F(L("toast.folderCreated", { name: r }), "success"); + Ia(t), x(L("toast.folderCreated", { name: n }), "success"); } catch (e) { - F(L("toast.createFolderFailedDetail", { error: e?.message || String(e || "") }), "error"); + x(L("toast.createFolderFailedDetail", { error: e?.message || String(e || "") }), "error"); } }), $(L("ctx.renameFolder"), "pi pi-pencil", null, async () => { try { - let r = String(e?.filename || "").trim(), a = await wt(L("dialog.renameFolder"), r), o = String(a || "").trim(); - if (!o || o === r) return; - let s = await t({ + let n = String(e?.filename || "").trim(), a = await Dt(L("dialog.renameFolder"), n), o = String(a || "").trim(); + if (!o || o === n) return; + let s = await r({ op: "rename", path: i, name: o }); if (!s?.ok) { - F(s?.error || L("toast.renameFolderFailed"), "error"); + x(s?.error || L("toast.renameFolderFailed"), "error"); return; } - Na(n), F(L("toast.folderRenamed"), "success"); + Ia(t), x(L("toast.folderRenamed"), "success"); } catch (e) { - F(L("toast.renameFolderFailedDetail", { error: e?.message || String(e || "") }), "error"); + x(L("toast.renameFolderFailedDetail", { error: e?.message || String(e || "") }), "error"); } }), $(L("ctx.moveFolder"), "pi pi-arrow-right", null, async () => { try { - let e = await wt(L("dialog.destinationDirectoryPath"), ""), r = String(e || "").trim(); - if (!r) return; - let a = await t({ + let e = await Dt(L("dialog.destinationDirectoryPath"), ""), n = String(e || "").trim(); + if (!n) return; + let a = await r({ op: "move", path: i, - destination: r + destination: n }); if (!a?.ok) { - F(a?.error || L("toast.moveFolderFailed"), "error"); + x(a?.error || L("toast.moveFolderFailed"), "error"); return; } - Na(n), F(L("toast.folderMoved"), "success"); + Ia(t), x(L("toast.folderMoved"), "success"); } catch (e) { - F(L("toast.moveFolderFailedDetail", { error: e?.message || String(e || "") }), "error"); + x(L("toast.moveFolderFailedDetail", { error: e?.message || String(e || "") }), "error"); } }), $(L("ctx.deleteFolder"), "pi pi-trash", null, async () => { try { - let r = String(e?.filename || L("label.thisFolder", "this folder")); - if (!await jt(L("dialog.deleteFolderRecursive", { name: r }))) return; - let a = await t({ + let n = String(e?.filename || L("label.thisFolder", "this folder")); + if (!await Pt(L("dialog.deleteFolderRecursive", { name: n }))) return; + let a = await r({ op: "delete", path: i, recursive: !0 }); if (!a?.ok) { - F(a?.error || L("toast.deleteFolderFailed"), "error"); + x(a?.error || L("toast.deleteFolderFailed"), "error"); return; } - Na(n), F(L("toast.folderDeleted"), "success"); + Ia(t), x(L("toast.folderDeleted"), "success"); } catch (e) { - F(L("toast.deleteFolderFailedDetail", { error: e?.message || String(e || "") }), "error"); + x(L("toast.deleteFolderFailedDetail", { error: e?.message || String(e || "") }), "error"); } })), a; } -function ao({ asset: e, card: t, gridContainer: n, panelState: r, pointerX: i, pointerY: a, selection: o } = {}) { - let { selectedAssetsNow: s, effectiveSelectionCount: c, isMultiSelected: l, hasSelection: u } = o, d = [], f = Ra(r), p = ({ assets: e = [], index: t = 0, mode: n = "" } = {}) => ma().then((r) => r.requestViewerOpen({ +function co({ asset: e, card: t, gridContainer: n, panelState: r, pointerX: i, pointerY: a, selection: o } = {}) { + let { selectedAssetsNow: s, effectiveSelectionCount: c, isMultiSelected: l, hasSelection: u } = o, d = [], f = Va(r), p = ({ assets: e = [], index: t = 0, mode: n = "" } = {}) => _a().then((r) => r.requestViewerOpen({ assets: e, index: t, mode: n })).catch((e) => console.debug?.(e)); - if (Ba(e)) { - if (d.push($(L("ctx.loadWorkflow", "Load workflow"), "pi pi-sitemap", null, () => Wa(e)), $(L("ctx.duplicateWorkflow", "Duplicate workflow"), "pi pi-copy", null, () => Ka(e)), $(L("ctx.renameWorkflow", "Rename workflow"), "pi pi-pencil", null, () => qa(e)), $(L("ctx.categorizeWorkflow", "Set workflow category"), "pi pi-folder", null, () => Ja(e)), $(L("ctx.setWorkflowThumbnail", "Set workflow thumbnail"), "pi pi-image", null, () => Ya(e)), $(L("ctx.editWorkflowInfo", "Edit infos"), "pi pi-info-circle", null, () => la(e)), $(L("ctx.exportWorkflow", "Export workflow"), "pi pi-download", null, () => Xa(e)), $(L("ctx.showInExplorer", "Show in Explorer"), "pi pi-folder-open", null, () => Za(e)), $(L("ctx.deleteWorkflow", "Delete workflow"), "pi pi-trash", null, () => $a(e)), _a()), f) return d.push($("Open Graph Map", "pi pi-sitemap", null, async () => { + if (Ua(e)) { + if (d.push($(L("ctx.loadWorkflow", "Load workflow"), "pi pi-sitemap", null, () => qa(e)), $(L("ctx.duplicateWorkflow", "Duplicate workflow"), "pi pi-copy", null, () => Ya(e)), $(L("ctx.renameWorkflow", "Rename workflow"), "pi pi-pencil", null, () => Xa(e)), $(L("ctx.categorizeWorkflow", "Set workflow category"), "pi pi-folder", null, () => Za(e)), $(L("ctx.setWorkflowThumbnail", "Set workflow thumbnail"), "pi pi-image", null, () => Qa(e)), $(L("ctx.editWorkflowInfo", "Edit infos"), "pi pi-info-circle", null, () => fa(e)), $(L("ctx.exportWorkflow", "Export workflow"), "pi pi-download", null, () => $a(e)), $(L("ctx.showInExplorer", "Show in Explorer"), "pi pi-folder-open", null, () => eo(e)), $(L("ctx.deleteWorkflow", "Delete workflow"), "pi pi-trash", null, () => no(e)), ba()), f) return d.push($("Open Graph Map", "pi pi-sitemap", null, async () => { try { - let t = await ba(e), { floatingViewerManager: n } = await ha(); + let t = await Ca(e), { floatingViewerManager: n } = await va(); await n.openAssets({ assets: [t], index: 0, @@ -2574,9 +2574,9 @@ function ao({ asset: e, card: t, gridContainer: n, panelState: r, pointerX: i, p } })), d; } else if (f) return d; - d.push($("Open As New Tab", "pi pi-external-link", null, () => Ua(e)), $("Open Viewer", "pi pi-image", ta("OPEN_VIEWER"), () => { + d.push($("Open As New Tab", "pi pi-external-link", null, () => Ka(e)), $("Open Viewer", "pi pi-image", ia("OPEN_VIEWER"), () => { try { - let t = (u ? ya(n) : []).filter((e) => !za(e)), r = t.length; + let t = (u ? Sa(n) : []).filter((e) => !Ha(e)), r = t.length; if (r >= 2 && r <= 4) { p({ assets: t, @@ -2584,7 +2584,7 @@ function ao({ asset: e, card: t, gridContainer: n, panelState: r, pointerX: i, p }); return; } - let i = ka(n).filter((e) => !za(e)), a = Aa(i, e?.id); + let i = Ma(n).filter((e) => !Ha(e)), a = Na(i, e?.id); if (!i.length || a < 0) return; p({ assets: i, @@ -2593,9 +2593,9 @@ function ao({ asset: e, card: t, gridContainer: n, panelState: r, pointerX: i, p } catch (e) { console.debug?.(e); } - }), $("Open in Floating Viewer", "pi pi-window-maximize", ta("OPEN_FLOATING_VIEWER"), async () => { + }), $("Open in Floating Viewer", "pi pi-window-maximize", ia("OPEN_FLOATING_VIEWER"), async () => { try { - let { floatingViewerManager: t } = await ha(), r = (u ? ya(n) : []).filter((e) => !za(e)); + let { floatingViewerManager: t } = await va(), r = (u ? Sa(n) : []).filter((e) => !Ha(e)); if (r.length) { await t.openAssets({ assets: r, @@ -2611,11 +2611,11 @@ function ao({ asset: e, card: t, gridContainer: n, panelState: r, pointerX: i, p console.debug?.(e); } }), $("Load Asset", "pi pi-upload", "L / L+Drop", async () => { - let t = (u ? ya(n) : []).filter((e) => !za(e)); - await Ea(t.length ? t : [e]) || F("Failed to create a loader node for this asset.", "error"); + let t = (u ? Sa(n) : []).filter((e) => !Ha(e)); + await ka(t.length ? t : [e]) || x("Failed to create a loader node for this asset.", "error"); }), $("Open Graph Map", "pi pi-sitemap", null, async () => { try { - let t = await ba(e), { floatingViewerManager: n } = await ha(); + let t = await Ca(e), { floatingViewerManager: n } = await va(); await n.openAssets({ assets: [t], index: 0, @@ -2624,17 +2624,17 @@ function ao({ asset: e, card: t, gridContainer: n, panelState: r, pointerX: i, p } catch (e) { console.debug?.(e); } - }), $(L("ctx.showMetadataPanel", "Show metadata panel"), "pi pi-info-circle", ta("METADATA_PANEL"), () => { + }), $(L("ctx.showMetadataPanel", "Show metadata panel"), "pi pi-info-circle", ia("METADATA_PANEL"), () => { try { - Oa(n, t, e, r); + ja(n, t, e, r); let i = n?._mjrOpenDetails; typeof i == "function" && i(); } catch (e) { console.debug?.(e); } - })), Va(e) && d.push($(L("ctx.assignAsWorkflowThumbnail", "Use as workflow thumbnail"), "pi pi-image", null, () => Qa(e))); - let m = (u ? s : []).filter((e) => !za(e)), h = m.length; - h === 2 && d.push($("Compare A/B (2 selected)", "pi pi-clone", ta("COMPARE_AB"), () => { + })), Wa(e) && d.push($(L("ctx.assignAsWorkflowThumbnail", "Use as workflow thumbnail"), "pi pi-image", null, () => to(e))); + let m = (u ? s : []).filter((e) => !Ha(e)), h = m.length; + h === 2 && d.push($("Compare A/B (2 selected)", "pi pi-clone", ia("COMPARE_AB"), () => { try { p({ assets: m, @@ -2644,7 +2644,7 @@ function ao({ asset: e, card: t, gridContainer: n, panelState: r, pointerX: i, p } catch (e) { console.debug?.(e); } - })), h >= 2 && h <= 4 && d.push($(`Side-by-side (2x2) (${h} selected)`, "pi pi-table", ta("SIDE_BY_SIDE"), () => { + })), h >= 2 && h <= 4 && d.push($(`Side-by-side (2x2) (${h} selected)`, "pi pi-table", ia("SIDE_BY_SIDE"), () => { try { p({ assets: m, @@ -2654,38 +2654,38 @@ function ao({ asset: e, card: t, gridContainer: n, panelState: r, pointerX: i, p } catch (e) { console.debug?.(e); } - })), d.push($(L("ctx.openInFolder", "Open in folder"), "pi pi-folder-open", ta("OPEN_IN_FOLDER"), async () => { - let t = await Ke(e); - t?.ok ? F(L("toast.openedInFolder"), "info", 2e3) : F(t?.error || L("toast.openFolderFailed"), "error"); - }, { disabled: !(e?.id || xa(e)) }), $(L("ctx.collectFiles", "Collect files"), "pi pi-box", null, async () => { - F(L("toast.collectingFiles", "Collecting files..."), "info", 2500); + })), d.push($(L("ctx.openInFolder", "Open in folder"), "pi pi-folder-open", ia("OPEN_IN_FOLDER"), async () => { + let t = await Me(e); + t?.ok ? x(L("toast.openedInFolder"), "info", 2e3) : x(t?.error || L("toast.openFolderFailed"), "error"); + }, { disabled: !(e?.id || wa(e)) }), $(L("ctx.collectFiles", "Collect files"), "pi pi-box", null, async () => { + x(L("toast.collectingFiles", "Collecting files..."), "info", 2500); let t = await De(e); if (!t?.ok) { - F(t?.error || L("toast.collectFilesFailed", "Collect files failed"), "error"); + x(t?.error || L("toast.collectFilesFailed", "Collect files failed"), "error"); return; } let n = t?.data || {}, r = Array.isArray(n.missing) ? n.missing.length : 0, i = n.fallback_used ? L("toast.collectFallbackDir", "output folder (source folder not writable)") : L("toast.collectSameDir", "asset folder"), a = L("toast.collectedFiles", "Collected {name} in {where}", { name: String(n.zip_name || "zip"), where: i }); - r > 0 && (a += ` — ${r} ${L("toast.collectMissingInputs", "input(s) missing")}`), F(a, r > 0 ? "warning" : "success", 6e3); - }, { disabled: !xa(e) }), $(L("ctx.copyPath", "Copy path"), "pi pi-copy", ta("COPY_PATH"), async () => { + r > 0 && (a += ` — ${r} ${L("toast.collectMissingInputs", "input(s) missing")}`), x(a, r > 0 ? "warning" : "success", 6e3); + }, { disabled: !wa(e) }), $(L("ctx.copyPath", "Copy path"), "pi pi-copy", ia("COPY_PATH"), async () => { let t = e?.filepath ? String(e.filepath) : ""; - if (!t) F(L("toast.noFilePath"), "error"); + if (!t) x(L("toast.noFilePath"), "error"); else try { - await navigator.clipboard.writeText(t), F(L("toast.pathCopied"), "success", 2e3); + await navigator.clipboard.writeText(t), x(L("toast.pathCopied"), "success", 2e3); } catch (e) { - console.warn(L("log.clipboardCopyFailed", "Clipboard copy failed"), e), F(L("toast.pathCopyFailed"), "error"); + console.warn(L("log.clipboardCopyFailed", "Clipboard copy failed"), e), x(L("toast.pathCopyFailed"), "error"); } - }), $(L("ctx.download", "Download"), "pi pi-download", ta("DOWNLOAD"), () => { + }), $(L("ctx.download", "Download"), "pi pi-download", ia("DOWNLOAD"), () => { if (!e?.filepath) return; - let t = Se(e.filepath), n = e.filename || "download"; - wa(t, n), F(L("toast.downloadingFile", "Downloading {filename}...", { filename: n }), "info", 3e3); + let t = Fe(e.filepath), n = e.filename || "download"; + Da(t, n), x(L("toast.downloadingFile", "Downloading {filename}...", { filename: n }), "info", 3e3); }, { disabled: !e?.filepath }), $(`Download selected as ZIP (${h})`, "pi pi-file-zip", null, async () => { - await Ta(m); - }, { disabled: h < 2 }), $("Add to collection...", "pi pi-bookmark", ta("ADD_TO_COLLECTION"), async () => { - let t = ya(n); - await Ki({ + await Oa(m); + }, { disabled: h < 2 }), $("Add to collection...", "pi pi-bookmark", ia("ADD_TO_COLLECTION"), async () => { + let t = Sa(n); + await Yi({ x: i, y: a, assets: t.length ? t : [e] @@ -2693,100 +2693,100 @@ function ao({ asset: e, card: t, gridContainer: n, panelState: r, pointerX: i, p })); let g = String(r?.collectionId || "").trim(); if (g) { - let t = ya(n), r = (t.length ? t : [e]).map(xa).filter(Boolean), i = r.length > 1 ? `Remove from collection (${r.length})` : "Remove from collection"; + let t = Sa(n), r = (t.length ? t : [e]).map(wa).filter(Boolean), i = r.length > 1 ? `Remove from collection (${r.length})` : "Remove from collection"; d.push($(i, "pi pi-bookmark", null, async () => { if (!r.length) { - F(L("toast.noFilePath"), "error"); + x(L("toast.noFilePath"), "error"); return; } - let e = await ve(g, r); - e?.ok ? Na(n) : F(e?.error || L("toast.removeFromCollectionFailed"), "error"); + let e = await z(g, r); + e?.ok ? Ia(n) : x(e?.error || L("toast.removeFromCollectionFailed"), "error"); })); } - let _ = !!(e?.id || xa(e)); - return d.push(_a(), $(L("ctx.editTags", "Edit tags"), "pi pi-tags", ta("EDIT_TAGS"), () => { - oo(i + 6, a + 6, e, () => { - Ma(e, { tags: Array.isArray(e?.tags) ? [...e.tags] : [] }); + let _ = !!(e?.id || wa(e)); + return d.push(ba(), $(L("ctx.editTags", "Edit tags"), "pi pi-tags", ia("EDIT_TAGS"), () => { + lo(i + 6, a + 6, e, () => { + Fa(e, { tags: Array.isArray(e?.tags) ? [...e.tags] : [] }); }); - }, { closeOnSelect: !1 }), _a(), $(L("ctx.setRating", "Set rating"), "pi pi-star", "1-5 >", null, { + }, { closeOnSelect: !1 }), ba(), $(L("ctx.setRating", "Set rating"), "pi pi-star", "1-5 >", null, { disabled: !_, closeOnSelect: !1, - submenu: to(e, _) - }), _a(), $(L("ctx.resetIndexFile", "Reset index (this file)"), "pi pi-refresh", null, async () => { + submenu: io(e, _) + }), ba(), $(L("ctx.resetIndexFile", "Reset index (this file)"), "pi pi-refresh", null, async () => { if (e?.filename || e?.id) { - F(L("toast.rescanningFile", "Rescanning file..."), "info", 1600); + x(L("toast.rescanningFile", "Rescanning file..."), "info", 1600); try { - let t = await Pa(e, n); - t?.ok ? F(L("toast.metadataRefreshed", "Metadata refreshed{suffix}", { suffix: "" }), "success", 1800) : F(t?.error || L("toast.resetFailed", "Failed to reset index"), "error"); + let t = await La(e, n); + t?.ok ? x(L("toast.metadataRefreshed", "Metadata refreshed{suffix}", { suffix: "" }), "success", 1800) : x(t?.error || L("toast.resetFailed", "Failed to reset index"), "error"); } catch (e) { - F(`${L("toast.resetFailed", "Failed to reset index")}: ${e?.message || String(e || "")}`, "error"); + x(`${L("toast.resetFailed", "Failed to reset index")}: ${e?.message || String(e || "")}`, "error"); } } - }, { disabled: !(e?.filename || e?.id) }), $("Rename...", "pi pi-pencil", ta("RENAME"), async () => { - if (!(e?.id || xa(e))) return; - let t = e.filename || "", r = zi(await wt(L("dialog.rename.title", "Rename file"), t), t); + }, { disabled: !(e?.filename || e?.id) }), $("Rename...", "pi pi-pencil", ia("RENAME"), async () => { + if (!(e?.id || wa(e))) return; + let t = e.filename || "", r = Hi(await Dt(L("dialog.rename.title", "Rename file"), t), t); if (!r || r === t) return; - let i = Ii(r); - if (!i.valid) F(i.reason, "error"); + let i = zi(r); + if (!i.valid) x(i.reason, "error"); else try { - let t = await je(e, r); + let t = await xe(e, r); if (!t?.ok) { - F(t?.error || L("toast.fileRenameFailed"), "error"); + x(t?.error || L("toast.fileRenameFailed"), "error"); return; } let i = t?.data?.asset; - i && typeof i == "object" ? (Object.assign(e, i), Ma(e, i)) : (e.filename = r, e.filepath &&= String(e.filepath).replace(/[^\\/]+$/, r), e.path &&= String(e.path).replace(/[^\\/]+$/, r), e.file_info && typeof e.file_info == "object" && (e.file_info.filename = r, e.file_info.filepath && (e.file_info.filepath = String(e.file_info.filepath).replace(/[^\\/]+$/, r)), e.file_info.path && (e.file_info.path = String(e.file_info.path).replace(/[^\\/]+$/, r))), Ma(e, { + i && typeof i == "object" ? (Object.assign(e, i), Fa(e, i)) : (e.filename = r, e.filepath &&= String(e.filepath).replace(/[^\\/]+$/, r), e.path &&= String(e.path).replace(/[^\\/]+$/, r), e.file_info && typeof e.file_info == "object" && (e.file_info.filename = r, e.file_info.filepath && (e.file_info.filepath = String(e.file_info.filepath).replace(/[^\\/]+$/, r)), e.file_info.path && (e.file_info.path = String(e.file_info.path).replace(/[^\\/]+$/, r))), Fa(e, { filename: e.filename, filepath: e.filepath, path: e.path, file_info: e.file_info })); - let a = ja(e.id)?.querySelector?.(".mjr-filename"); - a && (a.textContent = e.filename || r), F(L("toast.fileRenamedSuccess"), "success"), Na(n); + let a = Pa(e.id)?.querySelector?.(".mjr-filename"); + a && (a.textContent = e.filename || r), x(L("toast.fileRenamedSuccess"), "success"), Ia(n); } catch (e) { - F(L("toast.errorRenaming", "Error renaming file: {error}", { error: e?.message || String(e || "") }), "error"); + x(L("toast.errorRenaming", "Error renaming file: {error}", { error: e?.message || String(e || "") }), "error"); } - }, { disabled: !(e?.id || xa(e)) })), l ? d.push($(`Delete ${c} files...`, "pi pi-trash", ta("DELETE"), async () => { - if (await Bi(Number(c) || 0)) try { + }, { disabled: !(e?.id || wa(e)) })), l ? d.push($(`Delete ${c} files...`, "pi pi-trash", ia("DELETE"), async () => { + if (await Ui(Number(c) || 0)) try { let t = 0, i = 0, a = [], o = 0, c = s.length ? s : [e]; - for (let e of c) (await b(e))?.ok ? (t += 1, e?.id == null ? o += 1 : a.push(String(e.id))) : i += 1; + for (let e of c) (await E(e))?.ok ? (t += 1, e?.id == null ? o += 1 : a.push(String(e.id))) : i += 1; if (a.length) { - let e = pi(n, a); + let e = gi(n, a); r && Array.isArray(e?.selectedIds) && (r.selectedAssetIds = e.selectedIds, r.activeAssetId = e.selectedIds[0] || ""); } - o > 0 && Na(n), i === 0 ? F(L("toast.filesDeletedSuccessN", "{n} files deleted successfully!", { n: t }), "success") : F(L("toast.filesDeletedPartial", "{success} files deleted, {failed} failed.", { + o > 0 && Ia(n), i === 0 ? x(L("toast.filesDeletedSuccessN", "{n} files deleted successfully!", { n: t }), "success") : x(L("toast.filesDeletedPartial", "{success} files deleted, {failed} failed.", { success: t, failed: i }), "warning"); } catch (e) { - F(L("toast.errorDeleting", "Error deleting file: {error}", { error: e?.message || String(e || "") }), "error"); + x(L("toast.errorDeleting", "Error deleting file: {error}", { error: e?.message || String(e || "") }), "error"); } - })) : d.push($(L("ctx.delete", "Delete"), "pi pi-trash", ta("DELETE"), async () => { - if (await Bi(1, e?.filename)) try { - let t = await b(e); + })) : d.push($(L("ctx.delete", "Delete"), "pi pi-trash", ia("DELETE"), async () => { + if (await Ui(1, e?.filename)) try { + let t = await E(e); if (!t?.ok) { - F(t?.error || L("toast.fileDeleteFailed"), "error"); + x(t?.error || L("toast.fileDeleteFailed"), "error"); return; } if (e?.id) { - let t = pi(n, [String(e.id)]); + let t = gi(n, [String(e.id)]); r && Array.isArray(t?.selectedIds) && (r.selectedAssetIds = t.selectedIds, r.activeAssetId = t.selectedIds[0] || ""); - } else Na(n); - F(L("toast.fileDeletedSuccess"), "success"); + } else Ia(n); + x(L("toast.fileDeletedSuccess"), "success"); } catch (e) { - F(L("toast.errorDeleting", "Error deleting file: {error}", { error: e?.message || String(e || "") }), "error"); + x(L("toast.errorDeleting", "Error deleting file: {error}", { error: e?.message || String(e || "") }), "error"); } - }, { disabled: !(e?.id || xa(e)) })), d; + }, { disabled: !(e?.id || wa(e)) })), d; } -function oo(e, t, n, r) { - n && Gn({ +function lo(e, t, n, r) { + n && Jn({ x: e, y: t, asset: n, onChanged: r }); } -function so({ gridContainer: e, getState: t = () => ({}) } = {}) { +function uo({ gridContainer: e, getState: t = () => ({}) } = {}) { if (!e) return; if (e._mjrGridContextMenuBound && typeof e._mjrGridContextMenuUnbind == "function") return e._mjrGridContextMenuUnbind; let n = async (n) => { @@ -2796,15 +2796,15 @@ function so({ gridContainer: e, getState: t = () => ({}) } = {}) { } catch { return {}; } - })(), i = qt(n.target, ".mjr-asset-card"); + })(), i = Xt(n.target, ".mjr-asset-card"); if (!i) { - if (!Ia(r)) return; - let t = String(e?.dataset?.mjrScope || "").toLowerCase(), i = String(e?.dataset?.mjrSubfolder || "").trim(), a = (t === "input" || t === "output") && La(); + if (!za(r)) return; + let t = String(e?.dataset?.mjrScope || "").toLowerCase(), i = String(e?.dataset?.mjrSubfolder || "").trim(), a = (t === "input" || t === "output") && Ba(); if (!i && !a) return; - n.preventDefault(), n.stopPropagation(), sn({ + n.preventDefault(), n.stopPropagation(), un({ x: n.clientX, y: n.clientY, - items: ro({ + items: oo({ currentPath: i, gridContainer: e }) @@ -2814,11 +2814,11 @@ function so({ gridContainer: e, getState: t = () => ({}) } = {}) { n.preventDefault(), n.stopPropagation(); let a = i._mjrAsset; if (!a) return; - let o = eo(e), s = za(a) ? io({ + let o = ro(e), s = Ha(a) ? so({ asset: a, gridContainer: e, panelState: r - }) : ao({ + }) : co({ asset: a, card: i, gridContainer: e, @@ -2827,7 +2827,7 @@ function so({ gridContainer: e, getState: t = () => ({}) } = {}) { pointerY: n.clientY, selection: o }); - sn({ + un({ x: n.clientX, y: n.clientY, items: s @@ -2856,12 +2856,12 @@ function so({ gridContainer: e, getState: t = () => ({}) } = {}) { console.debug?.(e); } try { - oa(); + la(); } catch (e) { console.debug?.(e); } try { - ln(); + fn(); } catch (e) { console.debug?.(e); } @@ -2869,8 +2869,8 @@ function so({ gridContainer: e, getState: t = () => ({}) } = {}) { return e._mjrGridContextMenuUnbind = r, r; } // ui/features/panel/controllers/ratingHotkeysController.ts -var co = Ft; -function lo(e) { +var fo = Rt; +function po(e) { let t = String(e ?? ""); try { if (typeof CSS < "u" && typeof CSS.escape == "function") return CSS.escape(t); @@ -2879,10 +2879,10 @@ function lo(e) { } return t.replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1"); } -function uo(e, t = null) { +function mo(e, t = null) { if (!e) return []; try { - let t = Array.from(yt(e)); + let t = Array.from(St(e)); if (t.length) return t; } catch (e) { console.debug?.(e); @@ -2895,14 +2895,14 @@ function uo(e, t = null) { } return []; } -function fo(e, t) { +function ho(e, t) { try { - return e?.querySelector?.(`.mjr-asset-card[data-mjr-asset-id="${lo(t)}"]`); + return e?.querySelector?.(`.mjr-asset-card[data-mjr-asset-id="${po(t)}"]`); } catch (e) { return console.debug?.(e), null; } } -function po(e, t, n) { +function go(e, t, n) { if (!e) return; let r = e._mjrAsset; r && (r.rating = n); @@ -2915,7 +2915,7 @@ function po(e, t, n) { console.debug?.(e); } } -async function mo(e, t, n = 5) { +async function _o(e, t, n = 5) { let r = Math.max(1, Number(n) || 1), i = 0, a = [], o = async () => { for (; i < e.length;) { let n = i; @@ -2930,22 +2930,22 @@ async function mo(e, t, n = 5) { for (let t = 0; t < Math.min(r, e.length); t += 1) a.push(o()); await Promise.all(a); } -function ho({ gridContainer: e, createRatingBadge: t } = {}) { +function vo({ gridContainer: e, createRatingBadge: t } = {}) { let n = !1, r = null, i = null, a = async (e, t) => { if (e != null) { try { - let n = await N(e, t); + let n = await P(e, t); if (!n?.ok) { - F(n?.error || L("toast.ratingUpdateFailed"), "error"); + x(n?.error || L("toast.ratingUpdateFailed"), "error"); return; } - F(L("toast.ratingSetN", { n: t }), "success", 1500); + x(L("toast.ratingSetN", { n: t }), "success", 1500); } catch { - F(L("toast.ratingUpdateError"), "error"); + x(L("toast.ratingUpdateError"), "error"); return; } try { - window.dispatchEvent(new CustomEvent(co, { detail: { + window.dispatchEvent(new CustomEvent(fo, { detail: { assetId: String(e), rating: t } })); @@ -2957,8 +2957,8 @@ function ho({ gridContainer: e, createRatingBadge: t } = {}) { return { bind: () => { if (!n && e) { - n = !0, mt(!0), r = async (t) => { - if (vt() || gt().scope === "viewer" || t.defaultPrevented) return; + n = !0, _t(!0), r = async (t) => { + if (xt() || yt().scope === "viewer" || t.defaultPrevented) return; let n = (e) => !!(e?.isContentEditable || e?.closest?.("input, textarea, select, [contenteditable]:not([contenteditable='false'])")); if (t.isComposing || n(t.target) || n(document.activeElement)) return; let r = String(t.key || ""); @@ -2967,13 +2967,13 @@ function ho({ gridContainer: e, createRatingBadge: t } = {}) { if (!i && !o && !s) return; let c = r === "0" ? 0 : Number(r); if (!Number.isFinite(c)) return; - let l = uo(e, t.target); - l.length && (t.preventDefault(), t.stopPropagation(), t.stopImmediatePropagation?.(), await mo(l, (e) => a(e, c), 5)); + let l = mo(e, t.target); + l.length && (t.preventDefault(), t.stopPropagation(), t.stopImmediatePropagation?.(), await _o(l, (e) => a(e, c), 5)); }, i = (n) => { let r = n?.detail || {}, i = r.assetId ?? r.id ?? null, a = Number(r.rating); if (!i || !Number.isFinite(a)) return; - let o = fo(e, i); - o && po(o, t, a); + let o = ho(e, i); + o && go(o, t, a); }; try { window.addEventListener("keydown", r, { capture: !0 }); @@ -2981,7 +2981,7 @@ function ho({ gridContainer: e, createRatingBadge: t } = {}) { console.debug?.(e); } try { - window.addEventListener(co, i); + window.addEventListener(fo, i); } catch (e) { console.debug?.(e); } @@ -2989,14 +2989,14 @@ function ho({ gridContainer: e, createRatingBadge: t } = {}) { }, dispose: () => { if (n) { - n = !1, mt(!1); + n = !1, _t(!1); try { window.removeEventListener("keydown", r, { capture: !0 }); } catch (e) { console.debug?.(e); } try { - window.removeEventListener(co, i); + window.removeEventListener(fo, i); } catch (e) { console.debug?.(e); } @@ -3006,7 +3006,7 @@ function ho({ gridContainer: e, createRatingBadge: t } = {}) { }; } // ui/features/grid/StackGroupCards.ts -function go(e) { +function yo(e) { if (!e || e.dataset?.mjrOverlayButtonBound === "1") return e; try { e.dataset.mjrOverlayButtonBound = "1"; @@ -3025,7 +3025,7 @@ function go(e) { }; return e.addEventListener("pointerdown", t), e.addEventListener("mousedown", n), e.addEventListener("touchstart", t, { passive: !0 }), e.addEventListener("dblclick", t), e.addEventListener("keydown", t), e.addEventListener("dragstart", n), e; } -function _o(e, t, n = null, r = "mjr-stack-group-button-count") { +function bo(e, t, n = null, r = "mjr-stack-group-button-count") { e.textContent = ""; let i = document.createElement("span"); if (i.className = t, e.appendChild(i), n != null) { @@ -3033,24 +3033,24 @@ function _o(e, t, n = null, r = "mjr-stack-group-button-count") { t.className = r, t.textContent = String(n), e.appendChild(t); } } -function vo(e) { +function xo(e) { return String(e?.dataset?.mjrGroupStacks || "") === "1"; } -function yo(e) { +function So(e) { let t = String(e?.stack_id || "").trim(); return t ? `stack:${t}` : ""; } -function bo(e, t, n) { - return vo(e) && yo(t) || n; +function Co(e, t, n) { + return xo(e) && So(t) || n; } -function xo(e) { +function wo(e) { try { e._mjrStackMembersCache?.clear?.(); } catch (e) { console.debug?.(e); } } -function So(e, t, n) { +function To(e, t, n) { if (!t || !n || t._mjrIsVue) return; let r = !!n._mjrDupStack, i = Number(n._mjrDupCount || 0) || 0; if (!r || i < 2) { @@ -3060,7 +3060,7 @@ function So(e, t, n) { } t.dataset.mjrDupStacked = "true", t.dataset.mjrDupCount = String(i); let a = t.querySelector(".mjr-dup-stack-button"); - a || (a = document.createElement("button"), a.type = "button", a.className = "mjr-dup-stack-button", a.setAttribute("aria-label", "Show all duplicates"), go(a), a.addEventListener("click", (e) => { + a || (a = document.createElement("button"), a.type = "button", a.className = "mjr-dup-stack-button", a.setAttribute("aria-label", "Show all duplicates"), yo(a), a.addEventListener("click", (e) => { if (e.preventDefault(), e.stopPropagation(), a.dataset?.mjrStackOpening !== "1") try { a.dataset.mjrStackOpening = "1", a.disabled = !0; let e = a?._mjrGridContainer, t = a?._mjrAsset; @@ -3086,21 +3086,21 @@ function So(e, t, n) { } }), t.appendChild(a)), a._mjrGridContainer = e, a._mjrAsset = n; let o = `${i} duplicate${i > 1 ? "s" : ""}`; - a.title = `${o} - click to compare all copies`, _o(a, "pi pi-copy", i, "mjr-dup-stack-count"); + a.title = `${o} - click to compare all copies`, bo(a, "pi pi-copy", i, "mjr-dup-stack-count"); } // ui/features/dnd/utils/log.ts -var Co = () => { +var Eo = () => { try { return !!window?.MJR_DND_DEBUG; } catch { return !1; } -}, wo = (...e) => { - Co() && console.debug("[Majoor.DnD]", ...e); -}, To = (e, { buildCustomViewURL: t, buildViewURL: n }) => { +}, Do = (...e) => { + Eo() && console.debug("[Majoor.DnD]", ...e); +}, Oo = (e, { buildCustomViewURL: t, buildViewURL: n }) => { let r = String(e?.type || "output").toLowerCase(); - return r === "custom" ? t(e?.filename || "", e?.subfolder || "", be(e)) : r === "input" ? n(e?.filename || "", e?.subfolder || "", "input") : r === "temp" ? n(e?.filename || "", e?.subfolder || "", "temp") : n(e?.filename || "", e?.subfolder || "", "output"); -}, Eo = (e) => { + return r === "custom" ? t(e?.filename || "", e?.subfolder || "", Be(e)) : r === "input" ? n(e?.filename || "", e?.subfolder || "", "input") : r === "temp" ? n(e?.filename || "", e?.subfolder || "", "temp") : n(e?.filename || "", e?.subfolder || "", "output"); +}, ko = (e) => { if (!e || typeof e != "object") return null; let t = String(e.filename || "").trim(); if (!t || t.includes("/") || t.includes("\\") || t.includes("\0")) return null; @@ -3113,41 +3113,41 @@ var Co = () => { kind: o || void 0, filepath: o === "workflow" && s ? s : void 0 }; -}, Do = Eo, Oo = (e, t) => { +}, Ao = ko, jo = (e, t) => { let n = e?.dataTransfer?.getData?.(t); if (!n) return null; try { - return Eo(JSON.parse(n)); + return ko(JSON.parse(n)); } catch { return null; } -}, ko = /* @__PURE__ */ new WeakMap(), Ao = !1; -function jo(e) { - return e && ko.get(e) || null; +}, Mo = /* @__PURE__ */ new WeakMap(), No = !1; +function Po(e) { + return e && Mo.get(e) || null; } -function Mo(e, t) { - return e ? typeof t == "function" ? (ko.set(e, t), t) : (ko.delete(e), null) : null; +function Fo(e, t) { + return e ? typeof t == "function" ? (Mo.set(e, t), t) : (Mo.delete(e), null) : null; } -function No(e) { - e && ko.delete(e); +function Io(e) { + e && Mo.delete(e); } -function Po() { - Ao = !0; +function Lo() { + No = !0; } -function Fo() { - return Ao ? (Ao = !1, !0) : !1; +function Ro() { + return No ? (No = !1, !0) : !1; } -function Io() { - Ao = !1; +function zo() { + No = !1; } // ui/features/dnd/out/DragOut.ts -var Lo = (e) => { +var Bo = (e) => { try { return new URL(String(e || ""), window.location.href).href; } catch { return String(e || ""); } -}, Ro = () => _e("mjr_", 24), zo = (e) => { +}, Vo = () => Qe("mjr_", 24), Ho = (e) => { let t = e && typeof e == "object" ? e : null; if (!t) return null; let n = t.filename || t.name; @@ -3155,9 +3155,9 @@ var Lo = (e) => { filename: n, subfolder: t.subfolder || "", type: String(t.type || "output").toLowerCase(), - root_id: be(t) || void 0 + root_id: Be(t) || void 0 } : null; -}, Bo = (e, t) => { +}, Uo = (e, t) => { let n = []; if (!e || !t) return n; let r = t?.dataset?.mjrAssetId ? String(t.dataset.mjrAssetId) : ""; @@ -3207,33 +3207,33 @@ var Lo = (e) => { t && typeof t == "object" && n.push(t); } return n; -}, Vo = (e) => { +}, Wo = (e) => { if (!e || typeof e != "object") return ""; let t = e.filepath || e.path || e?.file_info?.filepath || ""; return t ? String(t) : ""; -}, Ho = ({ dt: e, asset: t, containerEl: n, card: r, viewUrl: i, stripMetadata: a = !1 }) => { - if (!e || !t) return; - let o = Bo(n, r); - if (Array.isArray(o) && o.length > 1) { - let t = o.map(zo).filter(Boolean); +}, Go = ({ dt: e, asset: n, containerEl: r, card: i, viewUrl: a, stripMetadata: o = !1 }) => { + if (!e || !n) return; + let s = Uo(r, i); + if (Array.isArray(s) && s.length > 1) { + let t = s.map(Ho).filter(Boolean); if (t.length > 1) { let n = ""; try { - n = Ro(); + n = Vo(); } catch (e) { console.warn("[DragOut] failed to create secure batch token", e); } if (n) { try { - me(p.BATCH_ZIP_CREATE, { + he(I.BATCH_ZIP_CREATE, { token: n, items: t, - strip_metadata: !!a + strip_metadata: !!o }).catch(() => {}); } catch (e) { console.debug?.(e); } - let r = Lo(I(n)), i = a ? `Majoor_Clean_Batch_${t.length}.zip` : `Majoor_Batch_${t.length}.zip`; + let r = Bo(j(n)), i = o ? `Majoor_Clean_Batch_${t.length}.zip` : `Majoor_Batch_${t.length}.zip`; try { e.setData("text/uri-list", r), e.setData("DownloadURL", `application/zip:${i}:${r}`), e.effectAllowed = "copyMove"; } catch (e) { @@ -3243,42 +3243,42 @@ var Lo = (e) => { } } } - let s = t.filename || t.name; - if (!s) return; - let c = a ? Vo(t) : "", l = Lo((c ? se(c) : "") || i), u = Qt(s); + let c = n.filename || n.name; + if (!c) return; + let l = o ? Wo(n) : "", u = Bo((l ? t(l) : "") || a), d = tn(c); try { - e.setData("text/uri-list", l), e.setData("DownloadURL", `${u}:${s}:${l}`), e.effectAllowed = "copyMove"; + e.setData("text/uri-list", u), e.setData("DownloadURL", `${d}:${c}:${u}`), e.effectAllowed = "copyMove"; } catch (e) { console.debug?.(e); } -}, Uo = (e, { asset: t, containerEl: n, card: r }) => { +}, Ko = (e, { asset: t, containerEl: n, card: r }) => { if (e && t) try { let t = e?.dataTransfer?.dropEffect; - !t || t === "none" || Fo(); + !t || t === "none" || Ro(); return; } catch (e) { console.debug?.(e); } -}, Wo = () => { - let e = $e(); +}, qo = () => { + let e = l(); return e && typeof e == "object" ? e : null; -}, Go = (e) => To(e, { - buildCustomViewURL: O, - buildViewURL: fe -}), Ko = !1, qo = !1, Jo = (e) => { +}, Jo = (e) => Oo(e, { + buildCustomViewURL: Se, + buildViewURL: Je +}), Yo = !1, Xo = !1, Zo = (e) => { try { return !!e?.closest?.("input, textarea, select, [contenteditable='true']"); } catch { return !1; } -}, Yo = () => Ko === !0, Xo = () => qo === !0, Zo = (e) => [ +}, Qo = () => Yo === !0, $o = () => Xo === !0, es = (e) => [ String(e?.type || "output"), String(e?.filename || ""), String(e?.subfolder || ""), - String(be(e) || "") -].join("\n"), Qo = (e, t) => { + String(Be(e) || "") +].join("\n"), ts = (e, t) => { if (String(e?.type || e?.file_info?.type || "").toLowerCase() === "custom") return null; - let n = Ge(String(e?.filepath || e?.path || e?.fullpath || e?.full_path || e?.file_info?.filepath || e?.file_info?.path || "")).trim(); + let n = je(String(e?.filepath || e?.path || e?.fullpath || e?.full_path || e?.file_info?.filepath || e?.file_info?.path || "")).trim(); if (!n || !t) return null; let r = n.toLowerCase(), i = t.toLowerCase(); for (let e of [ @@ -3306,20 +3306,20 @@ var Lo = (e) => { }; } return null; -}, $o = (e) => { +}, ns = (e) => { if (!e || typeof e != "object") return null; let t = String(e.filename || "").trim(); if (!t) return null; - let n = Qo(e, t); + let n = ts(e, t); return { filename: t, subfolder: n?.subfolder ?? e.subfolder ?? "", type: n?.type ?? String(e.type || "output").toLowerCase(), - root_id: be(e) || void 0, + root_id: Be(e) || void 0, kind: String(e.kind || "").toLowerCase(), filepath: String(e.filepath || e.path || e?.file_info?.filepath || "").trim() || void 0 }; -}, es = (e, t, n) => { +}, rs = (e, t, n) => { if (!e || !t || n == null) return !1; let r = String(n); try { @@ -3333,10 +3333,10 @@ var Lo = (e) => { console.debug?.(e); } return !1; -}, ts = ({ dt: e, asset: t, payload: n, viewUrl: r }) => { +}, is = ({ dt: e, asset: t, payload: n, viewUrl: r }) => { if (!e || !t || !n) return; let i = String(n.kind || "").toLowerCase() === "model3d" ? "3D" : n.kind, a = { - id: t.id == null ? Zo(n) : String(t.id), + id: t.id == null ? es(n) : String(t.id), name: t.filename || n.filename, display_name: t.filename || n.filename, filename: n.filename, @@ -3352,46 +3352,46 @@ var Lo = (e) => { }, tags: Array.isArray(t.tags) ? t.tags : [] }; - es(e, An, JSON.stringify(a)), r && es(e, "text/uri-list", r); -}, ns = (e) => { + rs(e, Nn, JSON.stringify(a)), r && rs(e, "text/uri-list", r); +}, as = (e) => { let t = e && typeof e == "object" ? e : null; if (!t) return []; try { let e = window?.__MJR_LAST_SELECTION_GRID__, n = typeof e?._mjrGetSelectedAssets == "function" ? e._mjrGetSelectedAssets() : []; if (Array.isArray(n) && n.length > 1) { - let e = n.map($o).filter(un), r = Zo(t); - if (e.some((e) => Zo(e) === r)) return e; + let e = n.map(ns).filter(pn), r = es(t); + if (e.some((e) => es(e) === r)) return e; } } catch (e) { console.debug?.(e); } return [t]; -}, rs = (e, t) => { +}, os = (e, t) => { try { let n = typeof e?._mjrGetSelectedAssets == "function" ? e._mjrGetSelectedAssets() : []; if (!Array.isArray(n) || n.length <= 1) return []; - let r = n.map($o).filter(un), i = Zo(t); - return r.some((e) => Zo(e) === i) ? r : []; + let r = n.map(ns).filter(pn), i = es(t); + return r.some((e) => es(e) === i) ? r : []; } catch (e) { return console.debug?.(e), []; } -}, is = (e, t) => { +}, ss = (e, t) => { try { let t = e?.dataTransfer?.getData?.("application/x-mjr-assets") || ""; if (t) { - let e = JSON.parse(t), n = (Array.isArray(e?.items) ? e.items : Array.isArray(e) ? e : []).map(Do).filter(un); + let e = JSON.parse(t), n = (Array.isArray(e?.items) ? e.items : Array.isArray(e) ? e : []).map(Ao).filter(pn); if (n.length) return n; } } catch (e) { console.debug?.(e); } - return ns(t); -}, as = async (e) => { + return as(t); +}, cs = async (e) => { let t = Array.isArray(e) ? e.filter(Boolean) : []; return t.length ? (await Promise.all(t.map(async (e) => { - let t = (await En({ - post: me, - endpoint: p.STAGE_TO_INPUT, + let t = (await kn({ + post: he, + endpoint: I.STAGE_TO_INPUT, payload: e, index: !1 }))?.relativePath; @@ -3401,43 +3401,43 @@ var Lo = (e) => { droppedExt: String(e?.filename || "").split(".").pop() || "" } : null; }))).filter(Boolean) : []; -}, os = /* @__PURE__ */ new Map(), ss = 6e4, cs = 20, ls = 5242880, us = 5e3, ds = 2e4, fs = 256, ps = 5e5, ms = /[\u0000-\u001f\u007f]/, hs = /\u0000/, gs = (e) => ms.test(String(e || "")), _s = (e) => hs.test(String(e || "")), vs = (e) => { +}, ls = /* @__PURE__ */ new Map(), us = 6e4, ds = 20, fs = 5242880, ps = 5e3, ms = 2e4, hs = 256, gs = 5e5, _s = /[\u0000-\u001f\u007f]/, vs = /\u0000/, ys = (e) => _s.test(String(e || "")), bs = (e) => vs.test(String(e || "")), xs = (e) => { if (!e || typeof e != "object" || Array.isArray(e)) return !1; let t = Number(e.id); if (!Number.isFinite(t)) return !1; let n = e.type == null ? "" : String(e.type); - if (n && (n.length > fs || gs(n))) return !1; + if (n && (n.length > hs || ys(n))) return !1; let r = e.widgets_values; if (Array.isArray(r)) { - for (let e of r) if (typeof e == "string" && (e.length > ps || _s(e))) return !1; + for (let e of r) if (typeof e == "string" && (e.length > gs || bs(e))) return !1; } return !0; -}, ys = (e) => { +}, Ss = (e) => { if (Array.isArray(e)) return e.length >= 4; if (e && typeof e == "object") { let t = Number(e.id); return !!Number.isFinite(t); } return !1; -}, bs = (e) => { - if (!e || typeof e != "object" || !Array.isArray(e.nodes) || !Array.isArray(e.links) || e.nodes.length > us || e.links.length > ds || !e.nodes.every(vs) || !e.links.every(ys)) return !1; +}, Cs = (e) => { + if (!e || typeof e != "object" || !Array.isArray(e.nodes) || !Array.isArray(e.links) || e.nodes.length > ps || e.links.length > ms || !e.nodes.every(xs) || !e.links.every(Ss)) return !1; try { let t = JSON.stringify(e).length; - if (!Number.isFinite(t) || t <= 0 || t > ls) return !1; + if (!Number.isFinite(t) || t <= 0 || t > fs) return !1; } catch { return !1; } return !0; -}, xs = () => { +}, ws = () => { let e = Date.now(); - for (let [t, n] of os.entries()) e - (n?.at || 0) > ss && os.delete(t); - os.size > cs && Array.from(os.entries()).sort((e, t) => (e[1]?.at || 0) - (t[1]?.at || 0)).slice(0, os.size - cs).forEach(([e]) => os.delete(e)); -}, Ss = async (e, t = null) => { - let n = e && typeof e == "object" ? e : null, r = be(n), i = Wo(), a = n?.filename ? `${n.type || "output"}:${n.filename}:${n.subfolder || ""}:${r}` : t ? `path:${t}` : null; + for (let [t, n] of ls.entries()) e - (n?.at || 0) > us && ls.delete(t); + ls.size > ds && Array.from(ls.entries()).sort((e, t) => (e[1]?.at || 0) - (t[1]?.at || 0)).slice(0, ls.size - ds).forEach(([e]) => ls.delete(e)); +}, Ts = async (e, t = null) => { + let n = e && typeof e == "object" ? e : null, r = Be(n), i = qo(), a = n?.filename ? `${n.type || "output"}:${n.filename}:${n.subfolder || ""}:${r}` : t ? `path:${t}` : null; if (a) { - let e = os.get(a); - if (e && Date.now() - (e.at || 0) < ss) { - if (e.workflow && bs(e.workflow)) try { + let e = ls.get(a); + if (e && Date.now() - (e.at || 0) < us) { + if (e.workflow && Cs(e.workflow)) try { if (typeof i?.loadGraphData == "function") return i.loadGraphData(e.workflow), !0; if (typeof i?.canvas?.graph?.configure == "function") { i.canvas.graph.configure(e.workflow); @@ -3458,22 +3458,22 @@ var Lo = (e) => { try { let e = null, o = null; if (String(n?.kind || "").toLowerCase() === "workflow" && n?.filepath) { - let e = await Le(String(n.filepath), { timeoutMs: 3e4 }); + let e = await ze(String(n.filepath), { timeoutMs: 3e4 }); o = e?.ok && (e?.data?.workflow || e?.workflow) || null; } else if (n?.filename) { - let t = `${p.WORKFLOW_QUICK}?type=${encodeURIComponent(n.type || "output")}&filename=${encodeURIComponent(n.filename)}&subfolder=${encodeURIComponent(n.subfolder || "")}` + (r ? `&root_id=${encodeURIComponent(r)}` : ""), i = await Pe(t); - i?.ok && i.workflow && (o = i.workflow), o || (e = `${p.METADATA}?workflow_only=1&type=${encodeURIComponent(n.type || "output")}&filename=${encodeURIComponent(n.filename)}&subfolder=${encodeURIComponent(n.subfolder || "")}&root_id=${encodeURIComponent(r)}`); - } else t && (e = `${p.METADATA}?workflow_only=1&path=${encodeURIComponent(String(t))}`); + let t = `${I.WORKFLOW_QUICK}?type=${encodeURIComponent(n.type || "output")}&filename=${encodeURIComponent(n.filename)}&subfolder=${encodeURIComponent(n.subfolder || "")}` + (r ? `&root_id=${encodeURIComponent(r)}` : ""), i = await Ie(t); + i?.ok && i.workflow && (o = i.workflow), o || (e = `${I.METADATA}?workflow_only=1&type=${encodeURIComponent(n.type || "output")}&filename=${encodeURIComponent(n.filename)}&subfolder=${encodeURIComponent(n.subfolder || "")}&root_id=${encodeURIComponent(r)}`); + } else t && (e = `${I.METADATA}?workflow_only=1&path=${encodeURIComponent(String(t))}`); if (!o && e) { - let t = await Pe(e); + let t = await Ie(e); if (!t?.ok || !t.data) return !1; o = t.data?.workflow; } - if (!bs(o)) return !1; - if (a && (os.set(a, { + if (!Cs(o)) return !1; + if (a && (ls.set(a, { workflow: o, at: Date.now() - }), xs()), typeof i?.loadGraphData == "function") return i.loadGraphData(o), !0; + }), ws()), typeof i?.loadGraphData == "function") return i.loadGraphData(o), !0; if (typeof i?.canvas?.graph?.configure == "function") { i.canvas.graph.configure(o); try { @@ -3489,7 +3489,7 @@ var Lo = (e) => { } return !1; }; -function Cs(e) { +function Es(e) { return (t) => { let n = t?.dataTransfer; if (!n) return; @@ -3497,26 +3497,26 @@ function Cs(e) { if (!r) return; let i = r._mjrAsset; if (!i || typeof i != "object") return; - let a = String(i?.kind || "").toLowerCase(), o = Qo(i, String(i.filename || "")), s = o?.type ?? String(i?.type || "output").toLowerCase(), c = { + let a = String(i?.kind || "").toLowerCase(), o = ts(i, String(i.filename || "")), s = o?.type ?? String(i?.type || "output").toLowerCase(), c = { filename: i.filename, subfolder: o?.subfolder ?? i.subfolder ?? "", type: s, - root_id: be(i) || void 0, + root_id: Be(i) || void 0, kind: a, filepath: String(i.filepath || i.path || i?.file_info?.filepath || "").trim() || void 0 }; try { - let t = Yo(); - es(n, Yt, JSON.stringify(c)); - let o = rs(e, c); - o.length > 1 && es(n, kn, JSON.stringify({ items: o })), es(n, "text/plain", String(i.filename || "")); - let s = a === "workflow" ? "" : Go(c); - ts({ + let t = Qo(); + rs(n, Qt, JSON.stringify(c)); + let o = os(e, c); + o.length > 1 && rs(n, Mn, JSON.stringify({ items: o })), rs(n, "text/plain", String(i.filename || "")); + let s = a === "workflow" ? "" : Jo(c); + is({ dt: n, asset: i, payload: c, viewUrl: s - }), Ho({ + }), Go({ dt: n, asset: i, containerEl: e, @@ -3529,7 +3529,7 @@ function Cs(e) { } try { r.addEventListener("dragend", (t) => { - Uo(t, { + Ko(t, { asset: i, containerEl: e, card: r @@ -3546,30 +3546,30 @@ function Cs(e) { } }; } -var ws = (e) => { +var Ds = (e) => { if (!e) return () => {}; - let t = jo(e); + let t = Po(e); if (typeof t == "function") return t; - let n = Cs(e); - return e.addEventListener("dragstart", n, !0), Mo(e, () => { + let n = Es(e); + return e.addEventListener("dragstart", n, !0), Fo(e, () => { try { e.removeEventListener("dragstart", n, !0); } catch (e) { console.debug?.(e); } - No(e); + Io(e); }); -}, Ts = null, Es = 0; -function Ds() { +}, Os = null, ks = 0; +function As() { let e = (e) => { - if (Jo(e?.target)) return; + if (Zo(e?.target)) return; let t = String(e?.key || "").toLowerCase(); - t === "s" ? Ko = !0 : t === "l" && (qo = !0); + t === "s" ? Yo = !0 : t === "l" && (Xo = !0); }, t = (e) => { let t = String(e?.key || "").toLowerCase(); - t === "s" ? Ko = !1 : t === "l" && (qo = !1); + t === "s" ? Yo = !1 : t === "l" && (Xo = !1); }, n = () => { - Ko = !1, qo = !1; + Yo = !1, Xo = !1; }, r = /* @__PURE__ */ new Set([ "mp3", "wav", @@ -3643,20 +3643,20 @@ function Ds() { t && (i = t.resolvedStart === void 0 ? t.start : t.resolvedStart); } e._ghostSegmentId = null, e._ghostTrack = null, e._ghostInitialTimeline = null, e._previewSegments = null, e.render?.(); - let s = String(n || "").toLowerCase(), c = r.has(s), l = await En({ - post: me, - endpoint: p.STAGE_TO_INPUT, + let s = String(n || "").toLowerCase(), c = r.has(s), l = await kn({ + post: he, + endpoint: I.STAGE_TO_INPUT, payload: t, index: !1 }); if (!l?.name) { - F(`Failed to stage: "${t?.filename}"`, "error"); + x(`Failed to stage: "${t?.filename}"`, "error"); return; } - let { name: u, subfolder: d = "" } = l, f = d ? `${d}/${u}` : u, m = `/view?filename=${encodeURIComponent(u)}&type=input&subfolder=${encodeURIComponent(d)}`; + let { name: u, subfolder: d = "" } = l, f = d ? `${d}/${u}` : u, p = `/view?filename=${encodeURIComponent(u)}&type=input&subfolder=${encodeURIComponent(d)}`; if (c) { try { - let t = await fetch(m); + let t = await fetch(p); if (!t.ok) throw Error(`HTTP ${t.status}`); let n = await t.arrayBuffer(), r = await new (window.AudioContext || window.webkitAudioContext)().decodeAudioData(n), a = typeof e.getFrameRate == "function" ? e.getFrameRate() : 25, o = Math.max(1, Math.ceil(r.duration * a)), s = r.getChannelData(0), c = Math.max(1, Math.floor(s.length / 200)), l = []; for (let e = 0; e < 200; e++) { @@ -3676,8 +3676,8 @@ function Ds() { d = Math.max(d, e.start + e.length); } } - let p = Date.now().toString(36) + Math.random().toString(36).slice(2, 7), h = { - id: p, + let m = Date.now().toString(36) + Math.random().toString(36).slice(2, 7), h = { + id: m, type: "audio", start: d, length: o, @@ -3688,72 +3688,72 @@ function Ds() { waveformPeaks: l }; if (!e.timeline?.audioSegments) { - wo("ltxdirector inject: no audioSegments", {}); + Do("ltxdirector inject: no audioSegments", {}); return; } - e.timeline.audioSegments.push(h), e.timeline.audioSegments.sort((e, t) => e.start - t.start), e.selectionType = "audio", e.selectedIndex = e.timeline.audioSegments.findIndex((e) => e.id === p), e.updateUIFromSelection?.(), e.commitChanges?.(!0), e.render?.(), F(`Added audio to LTX Director: ${u}`, "success", 3e3), wo("drop ltxdirector inject audio", { + e.timeline.audioSegments.push(h), e.timeline.audioSegments.sort((e, t) => e.start - t.start), e.selectionType = "audio", e.selectedIndex = e.timeline.audioSegments.findIndex((e) => e.id === m), e.updateUIFromSelection?.(), e.commitChanges?.(!0), e.render?.(), x(`Added audio to LTX Director: ${u}`, "success", 3e3), Do("drop ltxdirector inject audio", { file: u, start: d }); } catch (e) { - console.error("[Majoor] LTX Director audio inject failed", e), F(`Audio decode failed for: ${u}`, "error"); + console.error("[Majoor] LTX Director audio inject failed", e), x(`Audio decode failed for: ${u}`, "error"); } return; } - let h = typeof e.getFrameRate == "function" ? e.getFrameRate() : 25, g = a(t, s), _ = h, v = i ?? 0; + let m = typeof e.getFrameRate == "function" ? e.getFrameRate() : 25, h = a(t, s), g = m, _ = i ?? 0; if (i === null) { let t = Array.isArray(e.timeline?.segments) ? [...e.timeline.segments] : []; t.sort((e, t) => e.start - t.start); for (let e of t) { - if (v + _ <= e.start) break; - v = Math.max(v, e.start + e.length); + if (_ + g <= e.start) break; + _ = Math.max(_, e.start + e.length); } } - let y = Date.now().toString(36) + Math.random().toString(36).slice(2, 7), b; - if (g) { + let v = Date.now().toString(36) + Math.random().toString(36).slice(2, 7), y; + if (h) { let t = document.createElement("video"); - t.crossOrigin = "Anonymous", t.preload = "auto", t.muted = !0, t.playsInline = !0, t.src = m, b = { - id: `${y}_v`, - start: v, - length: _, + t.crossOrigin = "Anonymous", t.preload = "auto", t.muted = !0, t.playsInline = !0, t.src = p, y = { + id: `${v}_v`, + start: _, + length: g, trimStart: 0, prompt: "", type: "video", - videoDurationFrames: _, + videoDurationFrames: g, imageFile: f, fileName: u, videoEl: t - }, o(e, b, t, h); - } else b = { - id: y, - start: v, - length: _, + }, o(e, y, t, m); + } else y = { + id: v, + start: _, + length: g, prompt: "", type: "image", imageFile: f, - imageB64: m + imageB64: p }; if (!e.timeline?.segments) { - wo("ltxdirector inject: no timeline", {}); + Do("ltxdirector inject: no timeline", {}); return; } - if (e.timeline.segments.push(b), e.timeline.segments.sort((e, t) => e.start - t.start), g) try { - e.retakeMode || e.growTimelineIfNeeded?.(b.start + b.length), e._ensureThumbnails?.(b); + if (e.timeline.segments.push(y), e.timeline.segments.sort((e, t) => e.start - t.start), h) try { + e.retakeMode || e.growTimelineIfNeeded?.(y.start + y.length), e._ensureThumbnails?.(y); } catch (e) { console.debug?.(e); } else { let t = new Image(); t.onload = () => { - b.imgObj = t, e.render?.(); - }, t.src = m; + y.imgObj = t, e.render?.(); + }, t.src = p; } - let x = e.timeline.segments.findIndex((e) => e.id === y), S = g ? e.timeline.segments.findIndex((e) => e.id === b.id) : x; - S >= 0 && (e.selectionType = "image", e.selectedIndex = S, e.updateUIFromSelection?.()), e.commitChanges?.(!0), e.render?.(), F(`Added ${g ? "video" : "image"} to LTX Director: ${u}`, "success", 3e3), wo("drop ltxdirector inject", { + let b = e.timeline.segments.findIndex((e) => e.id === v), S = h ? e.timeline.segments.findIndex((e) => e.id === y.id) : b; + S >= 0 && (e.selectionType = "image", e.selectedIndex = S, e.updateUIFromSelection?.()), e.commitChanges?.(!0), e.render?.(), x(`Added ${h ? "video" : "image"} to LTX Director: ${u}`, "success", 3e3), Do("drop ltxdirector inject", { file: u, - start: v, + start: _, ext: s, - isVideo: g + isVideo: h }); }; return { @@ -3761,39 +3761,39 @@ function Ds() { onKeyUp: t, onWindowBlur: n, onDragOver: (e) => { - let t = Wo(); + let t = qo(); if (!Array.from(e?.dataTransfer?.types || []).includes("application/x-mjr-asset")) return; - let n = Oo(e, Yt); - if (!un(n)) return; - let r = mn(t, e.clientX, e.clientY), i = r ? Hn(t, r, e.clientX, e.clientY) : null, a = String(n?.filename || "").split(".").pop() || "", o = r && !i ? $t(r, n, a) : null, s = r && !i && !o && !!r._timelineEditor; - r && (i || o || s) ? (e.preventDefault(), s || (e.stopImmediatePropagation?.(), e.stopPropagation()), pn(t, r, Un), e.dataTransfer.dropEffect = "copy", i ? wo("dragover slot", { + let n = jo(e, Qt); + if (!pn(n)) return; + let r = _n(t, e.clientX, e.clientY), i = r ? Gn(t, r, e.clientX, e.clientY) : null, a = String(n?.filename || "").split(".").pop() || "", o = r && !i ? nn(r, n, a) : null, s = r && !i && !o && !!r._timelineEditor; + r && (i || o || s) ? (e.preventDefault(), s || (e.stopImmediatePropagation?.(), e.stopPropagation()), gn(t, r, Kn), e.dataTransfer.dropEffect = "copy", i ? Do("dragover slot", { node: r?.title, slot: i.input?.name - }) : s ? wo("dragover ltxdirector", { node: r?.title }) : wo("dragover widget", { + }) : s ? Do("dragover ltxdirector", { node: r?.title }) : Do("dragover widget", { node: r?.title, widget: o?.name - })) : (Zt(t, Un), Sn(t, e) && (e.preventDefault(), e.dataTransfer.dropEffect = "copy")); + })) : (en(t, Kn), Tn(t, e) && (e.preventDefault(), e.dataTransfer.dropEffect = "copy")); }, onDrop: async (e) => { - let t = Wo(); + let t = qo(); if (!Array.from(e?.dataTransfer?.types || []).includes("application/x-mjr-asset")) return; try { if ((e?.target)?.closest?.(".mjr-folder-card")) return; } catch {} - let n = Oo(e, Yt); - if (!un(n) || !Sn(t, e)) return; - Po(); - let r = Xo(), i = r ? is(e, n) : [n], a = mn(t, e.clientX, e.clientY), o = a ? Hn(t, a, e.clientX, e.clientY) : null, c = String(n?.filename || "").split(".").pop() || "", l = a && !o ? $t(a, n, c) : null; + let n = jo(e, Qt); + if (!pn(n) || !Tn(t, e)) return; + Lo(); + let r = $o(), i = r ? ss(e, n) : [n], a = _n(t, e.clientX, e.clientY), o = a ? Gn(t, a, e.clientX, e.clientY) : null, c = String(n?.filename || "").split(".").pop() || "", l = a && !o ? nn(a, n, c) : null; if (a && o) { - e.preventDefault(), e.stopImmediatePropagation?.(), e.stopPropagation(), Zt(t, Un); - let r = await Dn({ - post: me, - endpoint: p.STAGE_TO_INPUT, + e.preventDefault(), e.stopImmediatePropagation?.(), e.stopPropagation(), en(t, Kn); + let r = await An({ + post: he, + endpoint: I.STAGE_TO_INPUT, payload: n, index: !1 }); if (!r) return; - if (Vn({ + if (Wn({ app: t, payload: n, relativePath: r, @@ -3801,58 +3801,58 @@ function Ds() { inputSlotIndex: o.index, event: e })) { - wo("drop slot created and connected loader", { + Do("drop slot created and connected loader", { node: a?.title, slot: o.input?.name, value: r }); return; } - F(`Staged to input: ${r}`, "success", 4e3); + x(`Staged to input: ${r}`, "success", 4e3); return; } if (a && !o && !l && a._timelineEditor && !r) { - e.preventDefault(), e.stopImmediatePropagation?.(), e.stopPropagation(), Zt(t, Un), await s(a._timelineEditor, n, c); + e.preventDefault(), e.stopImmediatePropagation?.(), e.stopPropagation(), en(t, Kn), await s(a._timelineEditor, n, c); return; } if (!a || !l) { - if (Zt(t, Un), e.preventDefault(), e.stopImmediatePropagation?.(), e.stopPropagation(), r) { - let r = await as(i), a = bn({ + if (en(t, Kn), e.preventDefault(), e.stopImmediatePropagation?.(), e.stopPropagation(), r) { + let r = await cs(i), a = Cn({ app: t, items: r, event: e }); if (a > 0) { - wo("drop canvas created loaders", { count: a }); + Do("drop canvas created loaders", { count: a }); return; } - F(`Failed to load file: "${n?.filename}". Staging failed.`, "error"); + x(`Failed to load file: "${n?.filename}". Staging failed.`, "error"); return; } if (String(n?.kind || "").toLowerCase() === "workflow") { - if (await Ss(n)) { - wo("drop canvas loaded workflow", { file: n?.filename }); + if (await Ts(n)) { + Do("drop canvas loaded workflow", { file: n?.filename }); return; } - F(`Failed to load workflow: "${n?.filename}".`, "error"); + x(`Failed to load workflow: "${n?.filename}".`, "error"); return; } - let o = !a && !r, s = En({ - post: me, - endpoint: p.STAGE_TO_INPUT, + let o = !a && !r, s = kn({ + post: he, + endpoint: I.STAGE_TO_INPUT, payload: n, index: !1 - }), l = o ? Ss(n) : Promise.resolve(!1), [u, d] = await Promise.all([l, s]); + }), l = o ? Ts(n) : Promise.resolve(!1), [u, d] = await Promise.all([l, s]); if (u) { - wo("drop canvas loaded workflow", { file: n?.filename }); + Do("drop canvas loaded workflow", { file: n?.filename }); return; } let f = d?.relativePath; if (!f) { - wo("drop canvas stage failed"), F(`Failed to load file: "${n?.filename}". Staging failed.`, "error"); + Do("drop canvas stage failed"), x(`Failed to load file: "${n?.filename}". Staging failed.`, "error"); return; } - if (wo("drop canvas staged", { value: f }), bn({ + if (Do("drop canvas staged", { value: f }), Cn({ app: t, items: [{ payload: n, @@ -3861,71 +3861,71 @@ function Ds() { }], event: e })) { - wo("drop canvas created loader", { value: f }); + Do("drop canvas created loader", { value: f }); return; } - F(`Staged to input: ${f}`, "success", 4e3); + x(`Staged to input: ${f}`, "success", 4e3); return; } - e.preventDefault(), e.stopImmediatePropagation?.(), e.stopPropagation(), Zt(t, Un); - let u = await Dn({ - post: me, - endpoint: p.STAGE_TO_INPUT, + e.preventDefault(), e.stopImmediatePropagation?.(), e.stopPropagation(), en(t, Kn); + let u = await An({ + post: he, + endpoint: I.STAGE_TO_INPUT, payload: n, index: !1 }); - u && (Wn(l, u), Un(t), wo("drop inject", { + u && (qn(l, u), Kn(t), Do("drop inject", { node: a?.title, widget: l?.name, value: u })); }, onDragLeave: () => { - let e = Wo(); - Zt(e, Un), wo("dragleave"); + let e = qo(); + en(e, Kn), Do("dragleave"); } }; } -function Os() { +function js() { if (typeof window > "u" || !window?.addEventListener) return { dispose() {} }; - let { onKeyDown: e, onKeyUp: t, onWindowBlur: n, onDragOver: r, onDrop: i, onDragLeave: a } = Ds(); + let { onKeyDown: e, onKeyUp: t, onWindowBlur: n, onDragOver: r, onDrop: i, onDragLeave: a } = As(); return window.addEventListener("keydown", e, !0), window.addEventListener("keyup", t, !0), window.addEventListener("blur", n, !0), window.addEventListener("dragover", r, !0), window.addEventListener("drop", i, !0), window.addEventListener("dragleave", a, !0), { dispose: () => { try { window.removeEventListener("keydown", e, !0), window.removeEventListener("keyup", t, !0), window.removeEventListener("blur", n, !0), window.removeEventListener("dragover", r, !0), window.removeEventListener("drop", i, !0), window.removeEventListener("dragleave", a, !0); } catch (e) { console.debug?.(e); } - Ko = !1, qo = !1; + Yo = !1, Xo = !1; try { - Zt(Wo(), Un); + en(qo(), Kn); } catch (e) { console.debug?.(e); } } }; } -function ks() { - Ts || (Ts = Os(), Es = 0), Es += 1; +function Ms() { + Os || (Os = js(), ks = 0), ks += 1; let e = !1; return ({ force: t = !1 } = {}) => { - e || (e = !0, As({ force: t })); + e || (e = !0, Ns({ force: t })); }; } -function As({ force: e = !1 } = {}) { - if (!Ts) Es = 0, Io(); - else if (!e && Es > 1) --Es; +function Ns({ force: e = !1 } = {}) { + if (!Os) ks = 0, zo(); + else if (!e && ks > 1) --ks; else { - Es = 0; + ks = 0; try { - Ts.dispose?.(); + Os.dispose?.(); } catch (e) { console.debug?.(e); } - Ts = null, Io(); + Os = null, zo(); } } // ui/features/grid/MediaBlobCache.ts -var js = "__MJR_MEDIA_BLOB_CACHE__", Ms = 384, Ns = 3e5, Ps = 3e4, Fs = 15e3, Is = 6, Ls = 192, Rs = 3; -function zs() { +var Ps = "__MJR_MEDIA_BLOB_CACHE__", Fs = 384, Is = 3e5, Ls = 3e4, Rs = 15e3, zs = 6, Bs = 192, Vs = 3; +function Hs() { let e = /* @__PURE__ */ new Map(), t = null, n = 0, r = []; function i() { try { @@ -3937,10 +3937,10 @@ function zs() { return !1; } function a() { - return i() ? Ls : Ms; + return i() ? Bs : Fs; } function o() { - return i() ? Rs : Is; + return i() ? Vs : zs; } async function s(e) { n >= o() && await new Promise((e) => r.push(e)), n += 1; @@ -3953,7 +3953,7 @@ function zs() { } } function c() { - t ||= setInterval(l, Fs); + t ||= setInterval(l, Rs); } function l() { try { @@ -3975,7 +3975,7 @@ function zs() { for (let [r, i] of e) i.refcount > 0 || i.expiresAt < n && (n = i.expiresAt, t = r); t && (u(e.get(t)), e.delete(t)); } - function f(e, t = Ns) { + function f(e, t = Is) { e.expiresAt = Date.now() + t; } function p() { @@ -3999,7 +3999,7 @@ function zs() { r ? (r.hasError = !0, f(r)) : (e.size >= a() && d(), e.set(n, { blobUrl: null, refcount: 0, - expiresAt: Date.now() + Ps, + expiresAt: Date.now() + Ls, hasError: !0 }), p(), c()); } catch (e) { @@ -4033,7 +4033,7 @@ function zs() { return e.size >= a() && d(), e.set(r, { blobUrl: g, refcount: 1, - expiresAt: Date.now() + Ns, + expiresAt: Date.now() + Is, hasError: !1 }), p(), c(), g; } catch (e) { @@ -4045,7 +4045,7 @@ function zs() { let n = m(t); if (!n) return; let r = e.get(n); - r && (r.refcount = Math.max(0, r.refcount - 1), r.refcount <= 0 && f(r, Ps)), l(), p(); + r && (r.refcount = Math.max(0, r.refcount - 1), r.refcount <= 0 && f(r, Ls)), l(), p(); } catch (e) { console.debug?.(e); } @@ -4072,26 +4072,26 @@ function zs() { dispose: y }; } -function Bs() { +function Us() { try { - if (window[js]) return window[js]; + if (window[Ps]) return window[Ps]; } catch (e) { console.debug?.(e); } try { - window[js]?.dispose?.(); + window[Ps]?.dispose?.(); } catch (e) { console.debug?.(e); } - let e = zs(); + let e = Hs(); try { - window[js] = e; + window[Ps] = e; } catch (e) { console.debug?.(e); } return e; } -var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ +var Ws = Us(), Gs = ["title"], Ks = /* @__PURE__ */ ir({ __name: "RatingBadge", props: { rating: { type: [Number, String], @@ -4107,15 +4107,15 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ key: 0, class: "mjr-rating-badge", title: i.value - }, [(q(!0), Y(V, null, $n(n.value, (e) => (q(), Y("span", { + }, [(q(!0), Y(V, null, nr(n.value, (e) => (q(), Y("span", { key: e, - style: fr({ + style: hr({ color: "var(--mjr-rating-color, var(--mjr-star-active, #FFD45A))", marginRight: e < n.value ? "2px" : "0" }) - }, " ★ ", 4))), 128))], 8, Hs)) : W("", !0); + }, " ★ ", 4))), 128))], 8, Gs)) : W("", !0); } -}), Ws = ["title"], Gs = /* @__PURE__ */ tr({ +}), qs = ["title"], Js = /* @__PURE__ */ ir({ __name: "TagsBadge", props: { tags: { type: [Array, String], @@ -4144,34 +4144,34 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ class: "mjr-tags-badge", title: i.value, style: { color: "var(--mjr-tag-color, #90CAF9)" } - }, J(a.value), 9, Ws)) : W("", !0); + }, J(a.value), 9, qs)) : W("", !0); } -}), Ks = ["title"], qs = /* @__PURE__ */ tr({ +}), Ys = ["title"], Xs = /* @__PURE__ */ ir({ __name: "GenTimeBadge", props: { genTimeMs: { default: 0 } }, setup(e) { - let t = e, n = K(() => In(t.genTimeMs)), r = K(() => n.value > 0), i = K(() => tn(n.value)), a = K(() => on(n.value)); + let t = e, n = K(() => zn(t.genTimeMs)), r = K(() => n.value > 0), i = K(() => an(n.value)), a = K(() => ln(n.value)); return (e, t) => r.value ? (q(), Y("div", { key: 0, class: "mjr-gentime-badge", title: i.value.title, - style: fr({ color: a.value }) - }, J(i.value.text), 13, Ks)) : W("", !0); + style: hr({ color: a.value }) + }, J(i.value.text), 13, Ys)) : W("", !0); } -}), Js = { +}), Zs = { key: 0, class: "mjr-live-placeholder-wash", "aria-hidden": "true" -}, Ys = ["title", "aria-label"], Xs = ["alt", "src"], Zs = { class: "mjr-workflow-thumb-title" }, Qs = { class: "mjr-workflow-thumb-meta" }, $s = { key: 0 }, ec = { key: 1 }, tc = { key: 2 }, nc = { +}, Qs = ["title", "aria-label"], $s = ["alt", "src"], ec = { class: "mjr-workflow-thumb-title" }, tc = { class: "mjr-workflow-thumb-meta" }, nc = { key: 0 }, rc = { key: 1 }, ic = { key: 2 }, ac = { key: 3, class: "mjr-workflow-missing-chip" -}, rc = ["alt", "src"], ic = { +}, oc = ["alt", "src"], sc = { key: 1, class: "mjr-media-error-placeholder" -}, ac = ["data-src", "poster"], oc = ["src"], sc = { class: "mjr-audio-thumb-head" }, cc = { class: "mjr-audio-thumb-kind" }, lc = { +}, cc = ["data-src", "poster"], lc = ["src"], uc = { class: "mjr-audio-thumb-head" }, dc = { class: "mjr-audio-thumb-kind" }, fc = { class: "mjr-audio-thumb-waveform", "aria-hidden": "true" -}, uc = { class: "mjr-audio-thumb-meta" }, dc = { class: "mjr-audio-thumb-title" }, fc = { class: "mjr-audio-thumb-subtitle" }, pc = ["src", "alt"], mc = { +}, pc = { class: "mjr-audio-thumb-meta" }, mc = { class: "mjr-audio-thumb-title" }, hc = { class: "mjr-audio-thumb-subtitle" }, gc = ["src", "alt"], _c = { key: 1, class: "mjr-model3d-thumb-icon", style: { @@ -4182,23 +4182,23 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ "justify-content": "center", color: "rgba(255,255,255,0.7)" } -}, hc = [ +}, vc = [ "data-mjr-ext", "data-mjr-badge-bg", "title" -], gc = ["title"], _c = { +], yc = ["title"], bc = { key: 7, class: "mjr-card-hover-info" -}, vc = { +}, xc = { key: 0, class: "mjr-hover-prompt" -}, yc = { +}, Sc = { key: 1, class: "mjr-hover-prompt mjr-hover-workflow-notes" -}, bc = { +}, Cc = { key: 2, class: "mjr-hover-gentime" -}, xc = ["data-mjr-kind"], Sc = ["title"], Cc = { +}, wc = ["data-mjr-kind"], Tc = ["title"], Ec = { class: "mjr-card-meta-row", style: { "font-size": "0.85em", @@ -4209,7 +4209,7 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ "text-overflow": "ellipsis", "padding-right": "16px" } -}, wc = ["title"], Tc = ["title"], Ec = ["title"], Dc = { +}, Dc = ["title"], Oc = ["title"], kc = ["title"], Ac = { key: 0, class: "mjr-meta-separator", "aria-hidden": "true", @@ -4217,7 +4217,7 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ opacity: "0.55", margin: "0 3px" } -}, Oc = ["title"], kc = { class: "mjr-stack-group-button-count" }, Ac = { class: "mjr-dup-stack-count" }, jc = /* @__PURE__ */ tr({ +}, jc = ["title"], Mc = { class: "mjr-stack-group-button-count" }, Nc = { class: "mjr-dup-stack-count" }, Pc = /* @__PURE__ */ ir({ __name: "AssetCardInner", props: { asset: {} }, emits: ["workflow-action"], @@ -4242,7 +4242,7 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ async function i(e, t = {}) { if (!e) return null; try { - return Vs.hasError(e) ? null : await Vs.acquireUrl(e, t) || null; + return Ws.hasError(e) ? null : await Ws.acquireUrl(e, t) || null; } catch { return null; } @@ -4255,13 +4255,13 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ let t = String(e.dataset?.src || "").trim(); if (!t || e.getAttribute("src")) return; let n = (Number(e._mjrVideoLoadRequestId || 0) || 0) + 1; - if (e._mjrVideoLoadRequestId = n, Vs.hasError(t)) { + if (e._mjrVideoLoadRequestId = n, Ws.hasError(t)) { e.src = t, e._mjrSourceKey = t; return; } - let r = await Vs.acquireUrl(t); + let r = await Ws.acquireUrl(t); if (e._mjrVideoLoadRequestId !== n || !e.isConnected) { - r && Vs.releaseUrl(t); + r && Ws.releaseUrl(t); return; } r ? (e.src = r, e._mjrCachedSrc = t, e._mjrSourceKey = t) : (e.src = t, e._mjrSourceKey = t), e.load?.(); @@ -4282,7 +4282,7 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ } try { let t = String(e._mjrCachedSrc || "").trim(); - t && Vs.releaseUrl(t), e._mjrCachedSrc = "", e._mjrSourceKey = ""; + t && Ws.releaseUrl(t), e._mjrCachedSrc = "", e._mjrSourceKey = ""; } catch (e) { console.debug?.(e); } @@ -4353,26 +4353,26 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ function f(e) { e && (u(e), s(e)); } - let p = e, m = t, h = K(() => String(p.asset.kind || "image").toLowerCase()), g = K(() => h.value === "workflow"), _ = K(() => h.value === "image"), v = K(() => h.value === "video"), y = K(() => h.value === "audio"), b = K(() => h.value === "model3d"), x = K(() => ae(p.asset) || ""), S = K(() => String(p.asset.thumbnail_url || p.asset.graph_map_thumbnail_url || p.asset.thumb_url || p.asset.poster || "").trim()), C = K(() => !!String(p.asset.thumbnail_url || p.asset.thumb_url || p.asset.poster || "").trim()), w = K(() => g.value && !C.value && !!String(p.asset.graph_map_thumbnail_url || "").trim()), T = K(() => String(p.asset.preview_url || p.asset.previewUrl || p.asset.url || "").trim()), E = K(() => x.value), D = K(() => T.value || x.value), O = K(() => !v.value && !g.value ? "" : Te(p.asset, 384)), k = K(() => S.value || O.value), A = K(() => String(p.asset.filename || "")), ee = K(() => String(p.asset.display_name || p.asset.displayName || p.asset.name || A.value || "").trim()), j = K(() => { + let p = e, m = t, h = K(() => String(p.asset.kind || "image").toLowerCase()), g = K(() => h.value === "workflow"), _ = K(() => h.value === "image"), v = K(() => h.value === "video"), y = K(() => h.value === "audio"), b = K(() => h.value === "model3d"), x = K(() => le(p.asset) || ""), S = K(() => String(p.asset.thumbnail_url || p.asset.graph_map_thumbnail_url || p.asset.thumb_url || p.asset.poster || "").trim()), C = K(() => !!String(p.asset.thumbnail_url || p.asset.thumb_url || p.asset.poster || "").trim()), w = K(() => g.value && !C.value && !!String(p.asset.graph_map_thumbnail_url || "").trim()), T = K(() => String(p.asset.preview_url || p.asset.previewUrl || p.asset.url || "").trim()), E = K(() => x.value), D = K(() => T.value || x.value), O = K(() => !v.value && !g.value ? "" : Le(p.asset, 384)), k = K(() => S.value || O.value), A = K(() => String(p.asset.filename || "")), j = K(() => String(p.asset.display_name || p.asset.displayName || p.asset.name || A.value || "").trim()), M = K(() => { let e = A.value; return e.includes(".") ? e.split(".").pop().toUpperCase() : ""; - }), M = K(() => { - let e = ee.value || A.value; + }), N = K(() => { + let e = j.value || A.value; return e.includes(".") ? e.slice(0, e.lastIndexOf(".")) : e; - }), N = K(() => String(p.asset.notes || "").trim()), te = K(() => r(`${p.asset.id || ""}:${A.value}:${p.asset.duration || ""}`)), ne = K(() => M.value || A.value || "Audio"), P = K(() => [me.value, j.value].filter(Boolean).join(" / ") || "Audio"), re = K(() => { - let e = [A.value || ee.value], t = String(p.asset.subfolder || p.asset.file_info?.subfolder || "").trim(), n = String(p.asset.type || p.asset.source || p.asset.file_info?.type || "").trim(); - return t && e.push(`Subfolder: ${t}`), n && e.push(`Type: ${n}`), N.value && e.push(`Notes: ${N.value}`), e.filter(Boolean).join("\n"); - }), F = K(() => Number(p.asset.rating) || 0), I = K(() => p.asset.tags || []), ie = K(() => { + }), ee = K(() => String(p.asset.notes || "").trim()), te = K(() => r(`${p.asset.id || ""}:${A.value}:${p.asset.duration || ""}`)), P = K(() => N.value || A.value || "Audio"), ne = K(() => [me.value, M.value].filter(Boolean).join(" / ") || "Audio"), re = K(() => { + let e = [A.value || j.value], t = String(p.asset.subfolder || p.asset.file_info?.subfolder || "").trim(), n = String(p.asset.type || p.asset.source || p.asset.file_info?.type || "").trim(); + return t && e.push(`Subfolder: ${t}`), n && e.push(`Type: ${n}`), ee.value && e.push(`Notes: ${ee.value}`), e.filter(Boolean).join("\n"); + }), ie = K(() => Number(p.asset.rating) || 0), F = K(() => p.asset.tags || []), I = K(() => { let e = p.asset.generation_time_ms ?? p.asset.metadata?.generation_time_ms ?? 0; - return In(e); - }), oe = K(() => ie.value > 0), se = K(() => tn(ie.value)), ce = K(() => on(ie.value)), le = K(() => String(p.asset.positive_prompt || "").trim()), ue = K(() => p.asset?._mjrLivePlaceholder === !0 || p.asset?.is_live_placeholder === !0 || String(p.asset?.id || "").trim().toLowerCase().startsWith("live:")), de = K(() => String(p.asset?._mjrLiveLabel || "In progress").trim() || "In progress"), fe = K(() => `${de.value}: waiting for indexed asset data`), pe = K(() => { + return zn(e); + }), ae = K(() => I.value > 0), oe = K(() => an(I.value)), se = K(() => ln(I.value)), ce = K(() => String(p.asset.positive_prompt || "").trim()), ue = K(() => p.asset?._mjrLivePlaceholder === !0 || p.asset?.is_live_placeholder === !0 || String(p.asset?.id || "").trim().toLowerCase().startsWith("live:")), de = K(() => String(p.asset?._mjrLiveLabel || "In progress").trim() || "In progress"), fe = K(() => `${de.value}: waiting for indexed asset data`), pe = K(() => { let { width: e, height: t } = p.asset; return e && t ? `${e}x${t}` : ""; - }), me = K(() => p.asset.duration ? jn(p.asset.duration) : ""), he = K(() => String(p.asset.task || p.asset.workflow_task || "").trim()), ge = K(() => String(p.asset.model_family || p.asset.modelFamily || "").trim()), _e = K(() => String(p.asset.runs_on || p.asset.runsOn || "").trim()), ve = K(() => Number(p.asset.node_count || p.asset.nodeCount || 0) || 0), ye = K(() => !!p.asset.favorite), be = K(() => Number(p.asset.subgraph_count || p.asset.subgraphCount || 0) || 0), xe = K(() => Number(p.asset.missing_nodes_count || p.asset.missingNodesCount || 0) || 0), Se = K(() => Number(p.asset.missing_models_count || p.asset.missingModelsCount || 0) || 0), Ce = K(() => xe.value > 0 || Se.value > 0), we = K(() => { + }), me = K(() => p.asset.duration ? Pn(p.asset.duration) : ""), he = K(() => String(p.asset.task || p.asset.workflow_task || "").trim()), ge = K(() => String(p.asset.model_family || p.asset.modelFamily || "").trim()), _e = K(() => String(p.asset.runs_on || p.asset.runsOn || "").trim()), ve = K(() => Number(p.asset.node_count || p.asset.nodeCount || 0) || 0), ye = K(() => !!p.asset.favorite), be = K(() => Number(p.asset.subgraph_count || p.asset.subgraphCount || 0) || 0), xe = K(() => Number(p.asset.missing_nodes_count || p.asset.missingNodesCount || 0) || 0), Se = K(() => Number(p.asset.missing_models_count || p.asset.missingModelsCount || 0) || 0), Ce = K(() => xe.value > 0 || Se.value > 0), we = K(() => { if (!Ce.value) return ""; let e = []; return xe.value > 0 && e.push(`${xe.value} node`), Se.value > 0 && e.push(`${Se.value} model`), `Missing: ${e.join(" / ")}`; - }), L = K(() => p.asset.generation_time || p.asset.file_creation_time || p.asset.mtime || p.asset.created_at), Ee = K(() => L.value ? Cn(L.value) : ""), De = K(() => L.value ? Bn(L.value) : ""), Oe = K(() => [ + }), Te = K(() => p.asset.generation_time || p.asset.file_creation_time || p.asset.mtime || p.asset.created_at), Ee = K(() => Te.value ? En(Te.value) : ""), De = K(() => Te.value ? Un(Te.value) : ""), Oe = K(() => [ pe.value ? { key: "resolution", className: "mjr-meta-res", @@ -4397,13 +4397,13 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ title: `Time: ${De.value}`, text: De.value } : null, - oe.value ? { + ae.value ? { key: "gentime", className: "mjr-meta-gentime", - title: se.value.title, - text: se.value.text, + title: oe.value.title, + text: oe.value.text, style: { - color: ce.value, + color: se.value, fontWeight: "500" } } : null @@ -4412,16 +4412,16 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ video: "var(--mjr-badge-video, #F44336)", audio: "var(--mjr-badge-audio, #4CAF50)", model3d: "var(--mjr-badge-model3d, #9C27B0)" - }[h.value] || "var(--mjr-badge-image, #888)"), je = nr("mjrStackService", null), Me = K(() => !je || !String(p.asset.stack_id || "").trim() ? !1 : Number(p.asset.stack_asset_count || p.asset._mjrFeedGroupCount || 0) > 1), Ne = K(() => Number(p.asset.stack_asset_count || p.asset._mjrFeedGroupCount || 0) || 0), Pe = K(() => !!p.asset._mjrDupStack && Number(p.asset._mjrDupCount || 0) >= 2), Fe = K(() => Number(p.asset._mjrDupCount || 0) || 0), Ie = K(() => Pe.value && !Me.value), Le = Q(!1), Re = Q(!1); + }[h.value] || "var(--mjr-badge-image, #888)"), je = ar("mjrStackService", null), Me = K(() => !je || !String(p.asset.stack_id || "").trim() ? !1 : Number(p.asset.stack_asset_count || p.asset._mjrFeedGroupCount || 0) > 1), Ne = K(() => Number(p.asset.stack_asset_count || p.asset._mjrFeedGroupCount || 0) || 0), Pe = K(() => !!p.asset._mjrDupStack && Number(p.asset._mjrDupCount || 0) >= 2), Fe = K(() => Number(p.asset._mjrDupCount || 0) || 0), Ie = K(() => Pe.value && !Me.value), L = Q(!1), Re = Q(!1); async function ze(e) { - if (e.preventDefault(), e.stopPropagation(), !Le.value) { - Le.value = !0; + if (e.preventDefault(), e.stopPropagation(), !L.value) { + L.value = !0; try { await je?.openStackGroup?.(p.asset); } catch (e) { console.debug?.(e); } finally { - Le.value = !1; + L.value = !1; } } } @@ -4440,19 +4440,19 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ let Ve = Q(null), He = Q(null), Ue = Q(null), We = Q(null), Ge = Q(!1), Ke = Q(!1), qe = Q(""), Je = 0, Ye = "", Xe = "", Ze = ""; function Qe() { try { - Ye && Vs.releaseUrl(Ye); + Ye && Ws.releaseUrl(Ye); } catch (e) { console.debug?.(e); } Ye = ""; } - or(() => g.value ? S.value : _.value ? E.value : "", (e) => { + lr(() => g.value ? S.value : _.value ? E.value : "", (e) => { let t = String(e || "").trim(); t && t !== Xe && (Ge.value = !1, Xe = ""); - }, { immediate: !0 }), or(() => b.value ? k.value : "", (e) => { + }, { immediate: !0 }), lr(() => b.value ? k.value : "", (e) => { let t = String(e || "").trim(); t && t !== Ze && (Ke.value = !1, Ze = ""); - }, { immediate: !0 }), or(() => [_.value ? Ue.value : null, _.value ? E.value : ""], async ([e, t], n, r) => { + }, { immediate: !0 }), lr(() => [_.value ? Ue.value : null, _.value ? E.value : ""], async ([e, t], n, r) => { if (!e || !t || Ge.value) return; let o = Je += 1, s = new AbortController(), c = !1; r(() => { @@ -4463,12 +4463,12 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ if (qe.value && n === t || (e.dataset.mjrSourceKey = t, await a(), c || o !== Je || !e.isConnected)) return; let r = await i(t, { signal: s.signal }); if (c || o !== Je || !e.isConnected) { - r && r !== t && Vs.releaseUrl(t); + r && r !== t && Ws.releaseUrl(t); return; } if (r && r !== qe.value) { let e = Ye; - qe.value = r, Ye = r === t ? "" : t, e && e !== Ye && Vs.releaseUrl(e); + qe.value = r, Ye = r === t ? "" : t, e && e !== Ye && Ws.releaseUrl(e); } else !r && Ye && Ye !== t && (Qe(), qe.value = ""); } catch {} }, { immediate: !0 }); @@ -4476,38 +4476,38 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ function $e() { z.value = R.GRID_VIDEO_AUTOPLAY_MODE || "hover"; } - Zn(() => { + er(() => { window.addEventListener("mjr-settings-changed", $e); - }), or(He, (e, t) => { + }), lr(He, (e, t) => { if (t) try { f(t); } catch {} if (e && Ve.value) try { d(Ve.value, e, z.value); } catch {} - }), or(z, (e) => { + }), lr(z, (e) => { let t = He.value, n = Ve.value; t && n && d(n, t, e); - }), or(D, (e, t) => { + }), lr(D, (e, t) => { if (e === t) return; let n = He.value, r = Ve.value; n && r && (f(n), d(r, n, z.value)); - }, { flush: "post" }), ar(() => { + }, { flush: "post" }), cr(() => { window.removeEventListener("mjr-settings-changed", $e), Je += 1, Qe(); let e = He.value; if (e) try { f(e); } catch {} - }), ir(() => { - window.removeEventListener("mjr-settings-changed", $e); }), sr(() => { + window.removeEventListener("mjr-settings-changed", $e); + }), ur(() => { let e = We.value; if (!e) return; let t = p.asset; t?.has_workflow ?? t?.hasWorkflow, t?.has_generation_data ?? t?.hasGenerationData, t?.has_ai_info ?? t?.hasAiInfo ?? t?.ai_indexed, t?.has_ai_auto_tags ?? t?.hasAiAutoTags ?? t?.auto_tags ?? t?.autoTags, t?.has_ai_enhanced_caption ?? t?.hasAiEnhancedCaption ?? t?.enhanced_caption ?? t?.enhancedCaption, t?.has_ai_vector ?? t?.hasAiVector ?? t?.vector_indexed ?? t?.vectorIndexed; try { e.textContent = ""; - let n = _n(t); + let n = bn(t); n && e.appendChild(n); } catch {} }); @@ -4515,7 +4515,7 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ Ge.value = !0; try { let e = g.value ? S.value : E.value; - Xe = String(e || "").trim(), Vs.markError(e); + Xe = String(e || "").trim(), Ws.markError(e); } catch {} } function tt() { @@ -4548,26 +4548,26 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ }); } return (t, n) => { - let r = Qn("MButton"); + let r = tr("MButton"); return q(), Y(V, null, [ H("div", { class: X(["mjr-thumb", { "mjr-thumb-workflow": g.value }]), ref_key: "thumbRef", ref: Ve }, [ - ue.value ? (q(), Y("div", Js)) : W("", !0), + ue.value ? (q(), Y("div", Zs)) : W("", !0), g.value ? (q(), Y(V, { key: 1 }, [ H("div", { class: "mjr-workflow-card-actions", - onClick: n[1] ||= rr(() => {}, ["stop"]), - onDblclick: n[2] ||= rr(() => {}, ["stop"]) + onClick: n[1] ||= or(() => {}, ["stop"]), + onDblclick: n[2] ||= or(() => {}, ["stop"]) }, [H("button", { type: "button", class: X(["mjr-workflow-action-btn", { "is-active": ye.value }]), title: ye.value ? "Remove favorite" : "Add favorite", "aria-label": ye.value ? "Remove favorite" : "Add favorite", onClick: n[0] ||= (e) => rt("favorite", e) - }, [H("i", { class: X(ye.value ? "pi pi-star-fill" : "pi pi-star") }, null, 2)], 10, Ys)], 32), + }, [H("i", { class: X(ye.value ? "pi pi-star-fill" : "pi pi-star") }, null, 2)], 10, Qs)], 32), k.value && !Ge.value ? (q(), Y("img", { key: 0, class: X(["mjr-thumb-media", { "mjr-workflow-graph-map-preview": w.value }]), @@ -4576,18 +4576,18 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ loading: "lazy", src: k.value, onError: et - }, null, 42, Xs)) : W("", !0), + }, null, 42, $s)) : W("", !0), H("div", { class: X(["mjr-workflow-thumb", { "has-thumbnail": k.value && !Ge.value, "has-graph-map": w.value && !Ge.value }]) }, [ n[15] ||= H("i", { class: "pi pi-sitemap" }, null, -1), - H("div", Zs, J(he.value || "Workflow"), 1), - H("div", Qs, [ - ge.value ? (q(), Y("span", $s, J(ge.value), 1)) : W("", !0), - _e.value ? (q(), Y("span", ec, J(_e.value), 1)) : W("", !0), - ve.value ? (q(), Y("span", tc, J(ve.value) + " nodes", 1)) : W("", !0), - Ce.value ? (q(), Y("span", nc, J(we.value), 1)) : W("", !0) + H("div", ec, J(he.value || "Workflow"), 1), + H("div", tc, [ + ge.value ? (q(), Y("span", nc, J(ge.value), 1)) : W("", !0), + _e.value ? (q(), Y("span", rc, J(_e.value), 1)) : W("", !0), + ve.value ? (q(), Y("span", ic, J(ve.value) + " nodes", 1)) : W("", !0), + Ce.value ? (q(), Y("span", ac, J(we.value), 1)) : W("", !0) ]) ], 2) ], 64)) : _.value ? (q(), Y(V, { key: 2 }, [Ge.value ? W("", !0) : (q(), Y("img", { @@ -4600,7 +4600,7 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ loading: "lazy", src: qe.value || E.value || void 0, onError: et - }, null, 40, rc)), Ge.value ? (q(), Y("div", ic, [...n[16] ||= [H("i", { class: "pi pi-image" }, null, -1)]])) : W("", !0)], 64)) : v.value ? (q(), Y(V, { key: 3 }, [H("video", { + }, null, 40, oc)), Ge.value ? (q(), Y("div", sc, [...n[16] ||= [H("i", { class: "pi pi-image" }, null, -1)]])) : W("", !0)], 64)) : v.value ? (q(), Y(V, { key: 3 }, [H("video", { ref_key: "videoRef", ref: He, class: "mjr-thumb-media", @@ -4614,22 +4614,22 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ draggable: !1, tabindex: -1, style: { "pointer-events": "none" } - }, null, 8, ac), n[17] ||= H("div", { class: "mjr-thumb-play" }, [H("i", { class: "pi pi-play" })], -1)], 64)) : y.value ? (q(), Y(V, { key: 4 }, [k.value ? (q(), Y("img", { + }, null, 8, cc), n[17] ||= H("div", { class: "mjr-thumb-play" }, [H("i", { class: "pi pi-play" })], -1)], 64)) : y.value ? (q(), Y(V, { key: 4 }, [k.value ? (q(), Y("img", { key: 0, class: "mjr-thumb-media", src: k.value, draggable: !1, alt: "" - }, null, 8, oc)) : W("", !0), H("div", { class: X(["mjr-audio-thumb", { "has-poster": k.value }]) }, [ - H("div", sc, [n[18] ||= H("span", { class: "mjr-audio-thumb-icon" }, [H("i", { class: "pi pi-volume-up" })], -1), H("span", cc, J(j.value || "AUDIO"), 1)]), - H("div", lc, [(q(!0), Y(V, null, $n(te.value, (e, t) => (q(), Y("span", { + }, null, 8, lc)) : W("", !0), H("div", { class: X(["mjr-audio-thumb", { "has-poster": k.value }]) }, [ + H("div", uc, [n[18] ||= H("span", { class: "mjr-audio-thumb-icon" }, [H("i", { class: "pi pi-volume-up" })], -1), H("span", dc, J(M.value || "AUDIO"), 1)]), + H("div", fc, [(q(!0), Y(V, null, nr(te.value, (e, t) => (q(), Y("span", { key: t, - style: fr({ + style: hr({ height: `${e.height}%`, opacity: e.opacity }) }, null, 4))), 128))]), - H("div", uc, [H("span", dc, J(ne.value), 1), H("span", fc, J(P.value), 1)]) + H("div", pc, [H("span", mc, J(P.value), 1), H("span", hc, J(ne.value), 1)]) ], 2)], 64)) : b.value ? (q(), Y(V, { key: 5 }, [k.value && !Ke.value ? (q(), Y("img", { key: 0, class: "mjr-thumb-media", @@ -4637,15 +4637,15 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ draggable: !1, alt: A.value, onError: tt - }, null, 40, pc)) : (q(), Y("div", mc, [...n[19] ||= [H("i", { + }, null, 40, gc)) : (q(), Y("div", _c, [...n[19] ||= [H("i", { class: "pi pi-box", style: { "font-size": "2.5rem" } }, null, -1)]]))], 64)) : W("", !0), H("div", { class: "mjr-file-badge mjr-badge-ext", - "data-mjr-ext": j.value, + "data-mjr-ext": M.value, "data-mjr-badge-bg": Ae.value, - style: fr({ + style: hr({ position: "absolute", top: "6px", left: "6px", @@ -4659,18 +4659,18 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ pointerEvents: ke.value ? "auto" : "none", cursor: ke.value ? "pointer" : "default" }), - title: ke.value ? `${j.value} - duplicate filename (${e.asset._mjrNameCollisionCount || 2} files)` : `${j.value} file`, + title: ke.value ? `${M.value} - duplicate filename (${e.asset._mjrNameCollisionCount || 2} files)` : `${M.value} file`, onClick: nt - }, J(j.value) + J(ke.value ? "+" : ""), 13, hc), - U(Us, { - rating: F.value, + }, J(M.value) + J(ke.value ? "+" : ""), 13, vc), + U(Ks, { + rating: ie.value, class: "mjr-badge-rating" }, null, 8, ["rating"]), - U(Gs, { - tags: I.value, + U(Js, { + tags: F.value, class: "mjr-badge-tags" }, null, 8, ["tags"]), - U(qs, { "gen-time-ms": ie.value }, null, 8, ["gen-time-ms"]), + U(Xs, { "gen-time-ms": I.value }, null, 8, ["gen-time-ms"]), ue.value ? (q(), Y("div", { key: 6, class: "mjr-live-pill", @@ -4678,11 +4678,11 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ }, [n[20] ||= H("span", { class: "mjr-live-pill-dot", "aria-hidden": "true" - }, null, -1), H("span", null, J(de.value), 1)], 8, gc)) : W("", !0), - le.value || g.value && N.value || oe.value ? (q(), Y("div", _c, [ - le.value ? (q(), Y("div", vc, J(le.value), 1)) : W("", !0), - g.value && N.value ? (q(), Y("div", yc, J(N.value), 1)) : W("", !0), - oe.value ? (q(), Y("div", bc, "Time " + J(se.value.text), 1)) : W("", !0) + }, null, -1), H("span", null, J(de.value), 1)], 8, yc)) : W("", !0), + ce.value || g.value && ee.value || ae.value ? (q(), Y("div", bc, [ + ce.value ? (q(), Y("div", xc, J(ce.value), 1)) : W("", !0), + g.value && ee.value ? (q(), Y("div", Sc, J(ee.value), 1)) : W("", !0), + ae.value ? (q(), Y("div", Cc, "Time " + J(oe.value.text), 1)) : W("", !0) ])) : W("", !0) ], 2), H("div", { @@ -4704,28 +4704,28 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ "margin-bottom": "4px", "padding-right": "12px" } - }, J(M.value), 9, Sc), - H("div", Cc, [g.value ? (q(), Y(V, { key: 0 }, [ + }, J(N.value), 9, Tc), + H("div", Ec, [g.value ? (q(), Y(V, { key: 0 }, [ he.value ? (q(), Y("span", { key: 0, class: "mjr-meta-workflow-task", title: `Task: ${he.value}` - }, J(he.value), 9, wc)) : W("", !0), + }, J(he.value), 9, Dc)) : W("", !0), be.value ? (q(), Y("span", { key: 1, class: "mjr-meta-workflow-subgraphs", title: `${be.value} subgraph${be.value > 1 ? "s" : ""}` - }, J(be.value) + " sub", 9, Tc)) : W("", !0), + }, J(be.value) + " sub", 9, Oc)) : W("", !0), Ce.value ? (q(), Y("span", { key: 2, class: "mjr-meta-workflow-missing", title: we.value - }, J(we.value), 9, Ec)) : W("", !0) - ], 64)) : W("", !0), (q(!0), Y(V, null, $n(Oe.value, (e, t) => (q(), Y(V, { key: e.key }, [t > 0 ? (q(), Y("span", Dc, "/")) : W("", !0), H("span", { + }, J(we.value), 9, kc)) : W("", !0) + ], 64)) : W("", !0), (q(!0), Y(V, null, nr(Oe.value, (e, t) => (q(), Y(V, { key: e.key }, [t > 0 ? (q(), Y("span", Ac, "/")) : W("", !0), H("span", { class: X(e.className), - style: fr(e.style || null), + style: hr(e.style || null), title: e.title - }, J(e.text), 15, Oc)], 64))), 128))]), + }, J(e.text), 15, jc)], 64))), 128))]), H("div", { ref_key: "dotWrapperRef", ref: We, @@ -4737,27 +4737,27 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ "z-index": "2" } }, null, 512) - ], 8, xc), - Me.value ? (q(), Jn(r, { + ], 8, wc), + Me.value ? (q(), Zn(r, { key: 0, type: "button", class: "mjr-stack-group-button", severity: "secondary", text: "", rounded: "", - disabled: Le.value, - "aria-busy": Le.value ? "true" : "false", + disabled: L.value, + "aria-busy": L.value ? "true" : "false", "aria-label": `Open generation group in grid (${Ne.value} assets)`, title: `Open generation group in grid (${Ne.value} assets)`, onClick: ze, - onPointerdown: n[3] ||= rr(() => {}, ["stop"]), - onMousedown: n[4] ||= rr(() => {}, ["stop", "prevent"]), - onTouchstartPassive: n[5] ||= rr(() => {}, ["stop"]), - onDblclick: n[6] ||= rr(() => {}, ["stop"]), - onKeydown: n[7] ||= rr(() => {}, ["stop"]), - onDragstart: n[8] ||= rr(() => {}, ["stop", "prevent"]) + onPointerdown: n[3] ||= or(() => {}, ["stop"]), + onMousedown: n[4] ||= or(() => {}, ["stop", "prevent"]), + onTouchstartPassive: n[5] ||= or(() => {}, ["stop"]), + onDblclick: n[6] ||= or(() => {}, ["stop"]), + onKeydown: n[7] ||= or(() => {}, ["stop"]), + onDragstart: n[8] ||= or(() => {}, ["stop", "prevent"]) }, { - default: G(() => [n[21] ||= H("span", { class: "pi pi-clone" }, null, -1), H("span", kc, J(Ne.value), 1)]), + default: G(() => [n[21] ||= H("span", { class: "pi pi-clone" }, null, -1), H("span", Mc, J(Ne.value), 1)]), _: 1 }, 8, [ "disabled", @@ -4765,7 +4765,7 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ "aria-label", "title" ])) : W("", !0), - Ie.value ? (q(), Jn(r, { + Ie.value ? (q(), Zn(r, { key: 1, type: "button", class: "mjr-dup-stack-button", @@ -4777,14 +4777,14 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ "aria-label": `${Fe.value} duplicate${Fe.value > 1 ? "s" : ""} - click to compare all copies`, title: `${Fe.value} duplicate${Fe.value > 1 ? "s" : ""} - click to compare all copies`, onClick: Be, - onPointerdown: n[9] ||= rr(() => {}, ["stop"]), - onMousedown: n[10] ||= rr(() => {}, ["stop", "prevent"]), - onTouchstartPassive: n[11] ||= rr(() => {}, ["stop"]), - onDblclick: n[12] ||= rr(() => {}, ["stop"]), - onKeydown: n[13] ||= rr(() => {}, ["stop"]), - onDragstart: n[14] ||= rr(() => {}, ["stop", "prevent"]) + onPointerdown: n[9] ||= or(() => {}, ["stop"]), + onMousedown: n[10] ||= or(() => {}, ["stop", "prevent"]), + onTouchstartPassive: n[11] ||= or(() => {}, ["stop"]), + onDblclick: n[12] ||= or(() => {}, ["stop"]), + onKeydown: n[13] ||= or(() => {}, ["stop"]), + onDragstart: n[14] ||= or(() => {}, ["stop", "prevent"]) }, { - default: G(() => [n[22] ||= H("span", { class: "pi pi-copy" }, null, -1), H("span", Ac, J(Fe.value), 1)]), + default: G(() => [n[22] ||= H("span", { class: "pi pi-copy" }, null, -1), H("span", Nc, J(Fe.value), 1)]), _: 1 }, 8, [ "disabled", @@ -4795,23 +4795,23 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ ], 64); }; } -}), Mc = [ +}), Fc = [ "data-mjr-asset-id", "data-mjr-filename-key", "data-mjr-stem", "aria-label", "aria-selected" -], Nc = { +], Ic = { class: "mjr-card-info mjr-card-meta", style: { padding: "6px 8px", "min-width": "0" } -}, Pc = ["title"], Fc = /*#__PURE__*/ ((e, t) => { +}, Lc = ["title"], Rc = /*#__PURE__*/ ((e, t) => { let n = e.__vccOpts || e; for (let [e, r] of t) n[e] = r; return n; -})(/* @__PURE__ */ tr({ +})(/* @__PURE__ */ ir({ __name: "FolderCard", props: { asset: {}, @@ -4848,9 +4848,9 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ role: "button", tabindex: 0, draggable: "true", - onDragover: rr(a, ["prevent"]), + onDragover: or(a, ["prevent"]), onDragleave: o, - onDrop: rr(s, ["stop", "prevent"]), + onDrop: or(s, ["stop", "prevent"]), "data-mjr-asset-id": String(e.asset.id ?? ""), "data-mjr-filename-key": String(e.asset.filename || "").toLowerCase(), "data-mjr-ext": "FOLDER", @@ -4876,7 +4876,7 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ }), H("path", { fill: "#D9A730", d: "M20 6H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2z" - })])], -1), H("div", Nc, [H("div", { + })])], -1), H("div", Ic, [H("div", { class: "mjr-card-filename", title: e.asset.filename, style: { @@ -4885,15 +4885,15 @@ var Vs = Bs(), Hs = ["title"], Us = /* @__PURE__ */ tr({ "white-space": "nowrap", "margin-bottom": "4px" } - }, J(e.asset.filename), 9, Pc), n[0] ||= H("div", { class: "mjr-card-meta-row" }, null, -1)])], 42, Mc)); + }, J(e.asset.filename), 9, Lc), n[0] ||= H("div", { class: "mjr-card-meta-row" }, null, -1)])], 42, Fc)); } }), [["__scopeId", "data-v-252fa951"]]); // ui/vue/composables/useGridState.ts -function Ic(e) { +function zc(e) { return Array.from(e || []).map((e) => String(e || "").trim()).filter(Boolean); } -function Lc() { - let e = ur({ +function Bc() { + let e = pr({ query: "*", offset: 0, cursor: null, @@ -4922,7 +4922,7 @@ function Lc() { e.virtualGrid = { setItems(t) { e.assets = Array.isArray(t) ? t.slice() : []; } }; - let t = K(() => new Set(Ic(e.selectedIds))); + let t = K(() => new Set(zc(e.selectedIds))); function n(t = "", { error: n = !1 } = {}) { e.statusMessage = String(t || ""), e.statusError = !!n; } @@ -4942,14 +4942,14 @@ function Lc() { e.query = String(t || "*") || "*", e.offset = 0, e.cursor = null, e.total = n == null ? null : Number(n) || 0, e.done = !!r, e.assets = [], o(); } function c(t, n = "", { preserveAnchor: r = !1 } = {}) { - let i = Array.from(new Set(Ic(t))), a = String(n || i[0] || "").trim(); + let i = Array.from(new Set(zc(t))), a = String(n || i[0] || "").trim(); return e.selectedIds = i, e.activeId = a, r || (a ? e.selectionAnchorId = a : i.length || (e.selectionAnchorId = "")), { selectedIds: i, activeId: a }; } function l(t, { activeId: n = "" } = {}) { - let r = new Set(Ic(t)), i = Ic(e.selectedIds).filter((e) => r.has(e)), a = String(n || e.activeId || i[0] || "").trim(); + let r = new Set(zc(t)), i = zc(e.selectedIds).filter((e) => r.has(e)), a = String(n || e.activeId || i[0] || "").trim(); return c(i, r.has(a) ? a : i[0] || "", { preserveAnchor: !0 }); } function u() { @@ -4980,14 +4980,14 @@ function Lc() { }; } // ui/vue/composables/gridVisibility.ts -function Rc(e) { +function Vc(e) { try { return typeof e?.getClientRects != "function" || e.getClientRects().length > 0; } catch (e) { return console.debug?.(e), !1; } } -function zc(e, { requireClientRect: t = !0 } = {}) { +function Hc(e, { requireClientRect: t = !0 } = {}) { if (!e || typeof e != "object") return !1; try { if (typeof document < "u" && document.hidden) return !1; @@ -5012,14 +5012,14 @@ function zc(e, { requireClientRect: t = !0 } = {}) { } catch (e) { console.debug?.(e); } - return !t || Rc(e); + return !t || Vc(e); } -function Bc(e) { - return zc(e, { requireClientRect: !0 }); +function Uc(e) { + return Hc(e, { requireClientRect: !0 }); } -function Vc(e, t = null) { +function Wc(e, t = null) { let n = t || e; - if (!Bc(n) || e && e !== n && !zc(e, { requireClientRect: !1 })) return !1; + if (!Uc(n) || e && e !== n && !Hc(e, { requireClientRect: !1 })) return !1; try { let e = Number(n?.clientWidth || 0) || 0, t = Number(n?.clientHeight || 0) || 0; return e > 0 && t > 0; @@ -5028,50 +5028,50 @@ function Vc(e, t = null) { } } // ui/vue/grid/useGridQuery.ts -function Hc(e, t = "") { +function Gc(e, t = "") { return String(e ?? t).trim() || String(t); } -function Uc(e, t = 0) { +function Kc(e, t = 0) { let n = Number(e); return Number.isFinite(n) ? n : t; } -function Wc(e) { +function qc(e) { return e === !0 || e === 1 || String(e || "") === "1"; } -function Gc(e = {}) { - let t = Hc(e.q ?? e.query, "*") || "*", n = Object.prototype.hasOwnProperty.call(e, "resolutionCompare") ? String(e.resolutionCompare ?? "").trim().toLowerCase() : "gte", r = n === "lte" ? "lte" : n ? "gte" : ""; +function Jc(e = {}) { + let t = Gc(e.q ?? e.query, "*") || "*", n = Object.prototype.hasOwnProperty.call(e, "resolutionCompare") ? String(e.resolutionCompare ?? "").trim().toLowerCase() : "gte", r = n === "lte" ? "lte" : n ? "gte" : ""; return Object.freeze({ - scope: Hc(e.scope, "output").toLowerCase(), + scope: Gc(e.scope, "output").toLowerCase(), q: t, query: t, - customRootId: Hc(e.customRootId), - subfolder: Hc(e.subfolder), - collectionId: Hc(e.collectionId), - viewScope: Hc(e.viewScope), - kind: Hc(e.kind).toLowerCase(), - workflowOnly: Wc(e.workflowOnly), - minRating: Uc(e.minRating, 0), - minSizeMB: Uc(e.minSizeMB, 0), - maxSizeMB: Uc(e.maxSizeMB, 0), + customRootId: Gc(e.customRootId), + subfolder: Gc(e.subfolder), + collectionId: Gc(e.collectionId), + viewScope: Gc(e.viewScope), + kind: Gc(e.kind).toLowerCase(), + workflowOnly: qc(e.workflowOnly), + minRating: Kc(e.minRating, 0), + minSizeMB: Kc(e.minSizeMB, 0), + maxSizeMB: Kc(e.maxSizeMB, 0), resolutionCompare: r, - minWidth: Uc(e.minWidth, 0), - minHeight: Uc(e.minHeight, 0), - maxWidth: Uc(e.maxWidth, 0), - maxHeight: Uc(e.maxHeight, 0), - workflowType: Hc(e.workflowType).toUpperCase(), - workflowId: Hc(e.workflowId), - workflowModel: Hc(e.workflowModel), - workflowRunsOn: Hc(e.workflowRunsOn).toLowerCase(), - dateRange: Hc(e.dateRange).toLowerCase(), - dateExact: Hc(e.dateExact), - metadataSearchMode: Hc(e.metadataSearchMode), - sort: Hc(e.sort, "mtime_desc").toLowerCase(), - semanticMode: e.semanticMode === void 0 || e.semanticMode === null ? void 0 : Wc(e.semanticMode), - groupStacks: e.groupStacks === void 0 || e.groupStacks === null ? void 0 : Wc(e.groupStacks) + minWidth: Kc(e.minWidth, 0), + minHeight: Kc(e.minHeight, 0), + maxWidth: Kc(e.maxWidth, 0), + maxHeight: Kc(e.maxHeight, 0), + workflowType: Gc(e.workflowType).toUpperCase(), + workflowId: Gc(e.workflowId), + workflowModel: Gc(e.workflowModel), + workflowRunsOn: Gc(e.workflowRunsOn).toLowerCase(), + dateRange: Gc(e.dateRange).toLowerCase(), + dateExact: Gc(e.dateExact), + metadataSearchMode: Gc(e.metadataSearchMode), + sort: Gc(e.sort, "mtime_desc").toLowerCase(), + semanticMode: e.semanticMode === void 0 || e.semanticMode === null ? void 0 : qc(e.semanticMode), + groupStacks: e.groupStacks === void 0 || e.groupStacks === null ? void 0 : qc(e.groupStacks) }); } -function Kc(e = {}, t = {}) { - return Gc({ +function Yc(e = {}, t = {}) { + return Jc({ scope: e.mjrScope, q: e.mjrQuery, customRootId: e.mjrCustomRootId, @@ -5101,16 +5101,16 @@ function Kc(e = {}, t = {}) { ...t }); } -function qc(e = null, t = "*") { +function Xc(e = null, t = "*") { let n = e?.dataset || {}; - return Kc(n, { q: n.mjrQuery ?? t }).q; + return Yc(n, { q: n.mjrQuery ?? t }).q; } -function Jc(e = null, t = "mtime_desc") { +function Zc(e = null, t = "mtime_desc") { let n = e?.dataset || {}; - return Kc(n, { sort: n.mjrSort ?? t }).sort; + return Yc(n, { sort: n.mjrSort ?? t }).sort; } -function Yc(e = {}) { - let t = Gc(e); +function Qc(e = {}) { + let t = Jc(e); return [ t.scope, t.q, @@ -5136,30 +5136,30 @@ function Yc(e = {}) { t.dateExact ].join("|"); } -function Xc(e = {}) { - let t = Gc(e), n = t.viewScope && t.viewScope !== t.scope ? t.viewScope : ""; +function $c(e = {}) { + let t = Jc(e), n = t.viewScope && t.viewScope !== t.scope ? t.viewScope : ""; return !!(t.subfolder || t.customRootId || t.collectionId || n || t.kind || t.workflowOnly || t.minRating > 0 || t.minSizeMB > 0 || t.maxSizeMB > 0 || t.minWidth > 0 || t.minHeight > 0 || t.maxWidth > 0 || t.maxHeight > 0 || t.workflowType || t.workflowId || t.workflowModel || t.workflowRunsOn || t.dateRange || t.dateExact); } -function Zc(e = {}) { - let t = Gc(e); - return t.scope === "output" && t.q === "*" && t.sort === "mtime_desc" && !Xc(t); +function el(e = {}) { + let t = Jc(e); + return t.scope === "output" && t.q === "*" && t.sort === "mtime_desc" && !$c(t); } // ui/features/grid/PersistentAssetCache.ts -var Qc = "mjr-asset-cache", $c = 1, el = "snapshots", tl = 24, nl = 500, rl = 27e5, il = null; -function al() { - return il || (il = new Promise((e) => { +var tl = "mjr-asset-cache", nl = 1, rl = "snapshots", il = 24, al = 500, ol = 27e5, sl = null; +function cl() { + return sl || (sl = new Promise((e) => { try { - let t = indexedDB.open(Qc, $c); + let t = indexedDB.open(tl, nl); t.onupgradeneeded = () => { let e = t.result; - e.objectStoreNames.contains(el) || e.createObjectStore(el, { keyPath: "key" }); + e.objectStoreNames.contains(rl) || e.createObjectStore(rl, { keyPath: "key" }); }, t.onsuccess = () => e(t.result), t.onerror = () => e(null); } catch { e(null); } - }), il); + }), sl); } -function ol(e) { +function ll(e) { return !e || typeof e != "object" ? null : { id: e.id, filename: e.filename, @@ -5184,39 +5184,39 @@ function ol(e) { positive_prompt: e.positive_prompt }; } -function sl(e) { +function ul(e) { if (!e || typeof e != "object") return null; let t = Number(e.at || 0); - if (!t || Date.now() - t > rl) return null; - let n = Array.isArray(e.assets) ? e.assets.map(ol).filter(Boolean) : []; + if (!t || Date.now() - t > ol) return null; + let n = Array.isArray(e.assets) ? e.assets.map(ll).filter(Boolean) : []; return n.length ? { ...e, assets: n } : null; } -async function cl(e) { - let t = await al(); +async function dl(e) { + let t = await cl(); if (!t) return null; try { - return t.transaction(el, e).objectStore(el); + return t.transaction(rl, e).objectStore(rl); } catch { return null; } } -var ll = { +var fl = { async get(e) { - let t = await cl("readonly"); + let t = await dl("readonly"); return !t || !e ? null : await new Promise((n) => { let r = t.get(e); - r.onsuccess = () => n(sl(r.result)), r.onerror = () => n(null); + r.onsuccess = () => n(ul(r.result)), r.onerror = () => n(null); }); }, async put(e, t) { - let n = await cl("readwrite"), r = sl({ + let n = await dl("readwrite"), r = ul({ ...t, key: e, at: t?.at || Date.now(), - assets: Array.isArray(t?.assets) ? t.assets.slice(0, nl) : [] + assets: Array.isArray(t?.assets) ? t.assets.slice(0, al) : [] }); return !n || !e || !r ? !1 : (await new Promise((e) => { let t = n.put(r); @@ -5224,7 +5224,7 @@ var ll = { }), this.prune(), !0); }, async prune() { - let e = await cl("readwrite"); + let e = await dl("readwrite"); if (!e) return; let t = await new Promise((t) => { let n = [], r = e.openCursor(); @@ -5233,175 +5233,175 @@ var ll = { if (!e) return t(n); n.push(e.value), e.continue(); }, r.onerror = () => t(n); - }), n = t.filter((e) => !sl(e)).map((e) => e.key), r = t.filter((e) => !n.includes(e.key)).sort((e, t) => Number(e.at || 0) - Number(t.at || 0)).slice(0, Math.max(0, t.length - tl)).map((e) => e.key); + }), n = t.filter((e) => !ul(e)).map((e) => e.key), r = t.filter((e) => !n.includes(e.key)).sort((e, t) => Number(e.at || 0) - Number(t.at || 0)).slice(0, Math.max(0, t.length - il)).map((e) => e.key); for (let t of [...n, ...r]) e.delete(t); } -}, ul = /* @__PURE__ */ new Map(), dl = !0, fl = 8, pl = 200, ml = "mjr_grid_snapshot_cache_v2", hl = 18e5, gl = 1500, _l = !1, vl = null, yl = !1; -function bl() { - return dl; +}, pl = /* @__PURE__ */ new Map(), ml = !0, hl = 8, gl = 200, _l = "mjr_grid_snapshot_cache_v2", vl = 18e5, yl = 1500, bl = !1, xl = null, Sl = !1; +function Cl() { + return ml; } -function xl() { +function wl() { try { - ul.clear(), Dl()?.removeItem?.(ml), globalThis?.sessionStorage?.removeItem?.(ml); + pl.clear(), Al()?.removeItem?.(_l), globalThis?.sessionStorage?.removeItem?.(_l); } catch (e) { console.debug?.(e); } } -var Sl = /* @__PURE__ */ "id.filename.name.display_name.filepath.path.fullpath.full_path.file_info.subfolder.source.type.root_id.custom_root_id.kind.ext.size.mtime.generation_time.file_creation_time.created_at.updated_at.indexed_at.width.height.duration.thumbnail_url.thumb_url.preview_url.poster.url.rating.tags.has_workflow.hasWorkflow.has_generation_data.hasGenerationData.workflow_type.workflowType.workflow_id.workflowId.generation_time_ms.positive_prompt.enhanced_caption.auto_tags.has_ai_info.has_ai_vector.has_ai_auto_tags.has_ai_enhanced_caption.job_id.stack_id.source_node_id.source_node_type.date.date_exact".split("."); -function Cl(e, t = "") { +var Tl = /* @__PURE__ */ "id.filename.name.display_name.filepath.path.fullpath.full_path.file_info.subfolder.source.type.root_id.custom_root_id.kind.ext.size.mtime.generation_time.file_creation_time.created_at.updated_at.indexed_at.width.height.duration.thumbnail_url.thumb_url.preview_url.poster.url.rating.tags.has_workflow.hasWorkflow.has_generation_data.hasGenerationData.workflow_type.workflowType.workflow_id.workflowId.generation_time_ms.positive_prompt.enhanced_caption.auto_tags.has_ai_info.has_ai_vector.has_ai_auto_tags.has_ai_enhanced_caption.job_id.stack_id.source_node_id.source_node_type.date.date_exact".split("."); +function El(e, t = "") { try { return String(e ?? t).trim(); } catch { return String(t); } } -function wl(e = {}) { +function Dl(e = {}) { return JSON.stringify({ - scope: Cl(e.scope || "output", "output"), - query: Cl(e.query || e.q || "*", "*"), - customRootId: Cl(e.customRootId || ""), - subfolder: Cl(e.subfolder || ""), - collectionId: Cl(e.collectionId || ""), - viewScope: Cl(e.viewScope || ""), - kind: Cl(e.kind || ""), - workflowOnly: Cl(e.workflowOnly ? "1" : ""), - minRating: Cl(e.minRating || ""), - minSizeMB: Cl(e.minSizeMB || ""), - maxSizeMB: Cl(e.maxSizeMB || ""), - resolutionCompare: Cl(e.resolutionCompare || ""), - minWidth: Cl(e.minWidth || ""), - minHeight: Cl(e.minHeight || ""), - maxWidth: Cl(e.maxWidth || ""), - maxHeight: Cl(e.maxHeight || ""), - workflowType: Cl(e.workflowType || "").toUpperCase(), - workflowId: Cl(e.workflowId || ""), - workflowModel: Cl(e.workflowModel || ""), - workflowRunsOn: Cl(e.workflowRunsOn || "").toLowerCase(), - dateRange: Cl(e.dateRange || ""), - dateExact: Cl(e.dateExact || ""), - sort: Cl(e.sort || "mtime_desc", "mtime_desc"), - semanticMode: Cl(e.semanticMode ? "1" : "") + scope: El(e.scope || "output", "output"), + query: El(e.query || e.q || "*", "*"), + customRootId: El(e.customRootId || ""), + subfolder: El(e.subfolder || ""), + collectionId: El(e.collectionId || ""), + viewScope: El(e.viewScope || ""), + kind: El(e.kind || ""), + workflowOnly: El(e.workflowOnly ? "1" : ""), + minRating: El(e.minRating || ""), + minSizeMB: El(e.minSizeMB || ""), + maxSizeMB: El(e.maxSizeMB || ""), + resolutionCompare: El(e.resolutionCompare || ""), + minWidth: El(e.minWidth || ""), + minHeight: El(e.minHeight || ""), + maxWidth: El(e.maxWidth || ""), + maxHeight: El(e.maxHeight || ""), + workflowType: El(e.workflowType || "").toUpperCase(), + workflowId: El(e.workflowId || ""), + workflowModel: El(e.workflowModel || ""), + workflowRunsOn: El(e.workflowRunsOn || "").toLowerCase(), + dateRange: El(e.dateRange || ""), + dateExact: El(e.dateExact || ""), + sort: El(e.sort || "mtime_desc", "mtime_desc"), + semanticMode: El(e.semanticMode ? "1" : "") }); } -function Tl(e) { +function Ol(e) { if (!e || typeof e != "object") return null; let t = {}; - for (let n of Sl) e[n] !== void 0 && (t[n] = e[n]); + for (let n of Tl) e[n] !== void 0 && (t[n] = e[n]); return !t.type && t.source && (t.type = t.source), !t.source && t.type && (t.source = t.type), t.kind ||= e.kind || "image", Array.isArray(t.tags) && (t.tags = t.tags.slice(0, 80)), Array.isArray(t.auto_tags) && (t.auto_tags = t.auto_tags.slice(0, 80)), t; } -function El(e) { +function kl(e) { if (!e || typeof e != "object") return null; let t = Number(e.at || 0) || 0; - if (!t || Date.now() - t > hl) return null; - let n = Array.isArray(e.assets) ? e.assets.map(Tl).filter(Boolean) : []; + if (!t || Date.now() - t > vl) return null; + let n = Array.isArray(e.assets) ? e.assets.map(Ol).filter(Boolean) : []; if (!n.length) return null; let r = Number(e.total ?? n.length), i = Number(e.offset ?? n.length); return { assets: n, - title: Cl(e.title || "Cached", "Cached"), + title: El(e.title || "Cached", "Cached"), at: t, total: Number.isFinite(r) ? Math.max(0, r) : n.length, offset: Number.isFinite(i) ? Math.max(n.length, i) : n.length, done: !!e.done, - query: Cl(e.query || "*", "*") + query: El(e.query || "*", "*") }; } -function Dl() { +function Al() { try { return globalThis?.localStorage || null; } catch { return null; } } -bl() || xl(); -function Ol(e) { +Cl() || wl(); +function jl(e) { try { let t = globalThis?.sessionStorage; if (!t || !e) return; - let n = t.getItem?.(ml); + let n = t.getItem?.(_l); if (!n) return; - e.getItem?.(ml) || e.setItem(ml, n), t.removeItem(ml); - } catch (e) { - console.debug?.(e); - } -} -function kl() { - let e = Date.now(); - for (let [t, n] of ul.entries()) { - let r = Number(n?.at || 0) || 0; - (!r || e - r > hl) && ul.delete(t); - } - for (; ul.size > fl;) { - let e = ul.keys().next().value; - if (!e) break; - ul.delete(e); - } -} -function Al() { - if (!bl()) _l = !0, xl(); - else if (!_l) { - _l = !0; - try { - let e = Dl(); - Ol(e); - let t = e?.getItem?.(ml); - if (!t) return; - let n = JSON.parse(t), r = Array.isArray(n?.entries) ? n.entries : []; - for (let e of r) { - if (!Array.isArray(e) || e.length < 2) continue; - let t = String(e[0] || ""), n = El(e[1]); - t && n && ul.set(t, n); - } - kl(); - } catch (e) { - console.debug?.(e); - } - } -} -function jl() { - if (!bl()) xl(); - else try { - kl(); - let e = Dl(); - if (!e) return; - let t = Array.from(ul.entries()).map(([e, t]) => [e, { - ...t, - assets: Array.isArray(t?.assets) ? t.assets.slice(0, pl) : [] - }]); - e.setItem(ml, JSON.stringify({ entries: t })); + e.getItem?.(_l) || e.setItem(_l, n), t.removeItem(_l); } catch (e) { console.debug?.(e); } } function Ml() { - bl() ? (yl = !0, !vl && (vl = setTimeout(() => { - vl = null, yl && (yl = !1, jl()); - }, gl))) : (xl(), yl = !1); + let e = Date.now(); + for (let [t, n] of pl.entries()) { + let r = Number(n?.at || 0) || 0; + (!r || e - r > vl) && pl.delete(t); + } + for (; pl.size > hl;) { + let e = pl.keys().next().value; + if (!e) break; + pl.delete(e); + } } function Nl() { - vl &&= (clearTimeout(vl), null), yl && (yl = !1, jl()); + if (!Cl()) bl = !0, wl(); + else if (!bl) { + bl = !0; + try { + let e = Al(); + jl(e); + let t = e?.getItem?.(_l); + if (!t) return; + let n = JSON.parse(t), r = Array.isArray(n?.entries) ? n.entries : []; + for (let e of r) { + if (!Array.isArray(e) || e.length < 2) continue; + let t = String(e[0] || ""), n = kl(e[1]); + t && n && pl.set(t, n); + } + Ml(); + } catch (e) { + console.debug?.(e); + } + } } -function Pl(e) { - if (!bl()) return null; - Al(); - let t = El(ul.get(e)); - return t ? (ul.delete(e), ul.set(e, t), Ml(), t) : (ul.delete(e), Ml(), null); +function Pl() { + if (!Cl()) wl(); + else try { + Ml(); + let e = Al(); + if (!e) return; + let t = Array.from(pl.entries()).map(([e, t]) => [e, { + ...t, + assets: Array.isArray(t?.assets) ? t.assets.slice(0, gl) : [] + }]); + e.setItem(_l, JSON.stringify({ entries: t })); + } catch (e) { + console.debug?.(e); + } } -function Fl(e) { - return bl() ? (Al(), !!El(ul.get(e))) : !1; +function Fl() { + Cl() ? (Sl = !0, !xl && (xl = setTimeout(() => { + xl = null, Sl && (Sl = !1, Pl()); + }, yl))) : (wl(), Sl = !1); } -function Il(e, t) { - if (!bl() || !e || !t || typeof t != "object") return !1; - let n = El({ +function Il() { + xl &&= (clearTimeout(xl), null), Sl && (Sl = !1, Pl()); +} +function Ll(e) { + if (!Cl()) return null; + Nl(); + let t = kl(pl.get(e)); + return t ? (pl.delete(e), pl.set(e, t), Fl(), t) : (pl.delete(e), Fl(), null); +} +function Rl(e) { + return Cl() ? (Nl(), !!kl(pl.get(e))) : !1; +} +function zl(e, t) { + if (!Cl() || !e || !t || typeof t != "object") return !1; + let n = kl({ ...t, at: t.at || Date.now() }); - return n ? (ul.delete(e), ul.set(e, n), Ml(), ll.put(String(e || ""), n).catch((e) => { + return n ? (pl.delete(e), pl.set(e, n), Fl(), fl.put(String(e || ""), n).catch((e) => { console.debug?.(e); }), !0) : !1; } // ui/vue/grid/useAssetCollection.ts -function Ll(e) { +function Bl(e) { return !e || typeof e != "object" ? "" : [ e.source || e.type || "output", e.root_id || e.custom_root_id || "", @@ -5409,7 +5409,7 @@ function Ll(e) { e.filename || e.filepath || e.path || e.fullpath || e.full_path || "" ].join("|").trim().toLowerCase(); } -function Rl(e = [], { assetKey: t = Ll } = {}) { +function Vl(e = [], { assetKey: t = Bl } = {}) { let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(); for (let i of Array.isArray(e) ? e : []) { if (!i || typeof i != "object") continue; @@ -5421,12 +5421,12 @@ function Rl(e = [], { assetKey: t = Ll } = {}) { byKey: r }; } -function zl(e, { assetKey: t = Ll } = {}) { +function Hl(e, { assetKey: t = Bl } = {}) { if (!e || typeof e != "object") return e; - let n = Rl(Array.isArray(e.assets) ? e.assets : [], { assetKey: t }); + let n = Vl(Array.isArray(e.assets) ? e.assets : [], { assetKey: t }); return e.assetIdSet = new Set(n.byId.keys()), e.seenKeys = new Set(n.byKey.keys()), e; } -function Bl(e, t = [], { assetKey: n = Ll } = {}) { +function Ul(e, t = [], { assetKey: n = Bl } = {}) { if (!e || typeof e != "object") return 0; let r = new Set((Array.isArray(t) ? t : [t]).map((e) => e == null ? "" : typeof e == "object" && e?.id != null ? String(e.id) : String(e)).map((e) => e.trim()).filter(Boolean)); if (!r.size) return 0; @@ -5434,10 +5434,10 @@ function Bl(e, t = [], { assetKey: n = Ll } = {}) { return e.assets = (Array.isArray(e.assets) ? e.assets : []).filter((e) => { let t = e?.id == null ? "" : String(e.id); return !t || !r.has(t) || (i += 1, !1); - }), i > 0 && zl(e, { assetKey: n }), i; + }), i > 0 && Hl(e, { assetKey: n }), i; } // ui/vue/grid/usePagedAssets.ts -function Vl({ assets: e = [], count: t = null, limit: n = 0, offset: r = 0, total: i = null } = {}) { +function Wl({ assets: e = [], count: t = null, limit: n = 0, offset: r = 0, total: i = null } = {}) { let a = Array.isArray(e) ? e.length : 0, o = t == null ? a : Math.max(0, Number(t) || 0); if (o <= 0) return 0; let s = Math.max(0, Number(n) || 0), c = Math.max(0, Number(r) || 0), l = i == null ? null : Math.max(0, Number(i) || 0), u = l == null ? null : Math.max(0, l - c); @@ -5446,7 +5446,7 @@ function Vl({ assets: e = [], count: t = null, limit: n = 0, offset: r = 0, tota let d = Math.min(s, u ?? 0); return d <= 0 ? o : Math.max(o, d); } -async function Hl({ fetchPage: e, applyPage: t, getLimit: n, canContinue: r = null, beforeApplyPage: i = null, onEmptyPage: a = null, maxEmptyPages: o = 6 } = {}) { +async function Gl({ fetchPage: e, applyPage: t, getLimit: n, canContinue: r = null, beforeApplyPage: i = null, onEmptyPage: a = null, maxEmptyPages: o = 6 } = {}) { if (typeof e != "function" || typeof t != "function") return { ok: !1, error: /* @__PURE__ */ Error("fetchPage and applyPage are required") @@ -5502,8 +5502,8 @@ async function Hl({ fetchPage: e, applyPage: t, getLimit: n, canContinue: r = nu lastResult: l }; } -function Ul({ query: e, collection: t, fetchPage: n, pageSize: r = 80, getPageSize: i = null } = {}) { - let a = hr({ +function Kl({ query: e, collection: t, fetchPage: n, pageSize: r = 80, getPageSize: i = null } = {}) { + let a = vr({ offset: 0, cursor: null, total: null, @@ -5533,7 +5533,7 @@ function Ul({ query: e, collection: t, fetchPage: n, pageSize: r = 80, getPageSi }; } function f(e, { limit: n = l() } = {}) { - let r = Array.isArray(e?.assets) ? e.assets : [], i = e?.total == null ? null : Number(e.total) || 0, o = Vl({ + let r = Array.isArray(e?.assets) ? e.assets : [], i = e?.total == null ? null : Number(e.total) || 0, o = Wl({ assets: r, count: e?.count, limit: Number(e?.limit || n) || n, @@ -5598,7 +5598,7 @@ function Ul({ query: e, collection: t, fetchPage: n, pageSize: r = 80, getPageSi let u = a.requestId; a.loading = !0, a.error = null; try { - let n = await Hl({ + let n = await Gl({ maxEmptyPages: o, canContinue: t, getLimit: e, @@ -5658,12 +5658,12 @@ function Ul({ query: e, collection: t, fetchPage: n, pageSize: r = 80, getPageSi }; } // ui/vue/composables/useVirtualGrid.ts -function Wl(e, t) { +function ql(e, t) { if (!t || typeof t != "object") return !1; - let n = Kc(e?.dataset || {}), r = n.scope, i = n.subfolder.toLowerCase(), a = n.kind, o = n.workflowOnly, s = n.minRating, c = n.workflowType.toLowerCase(), l = String(n.workflowId || "").trim(), u = n.dateExact, d = String(t?.subfolder || "").trim().toLowerCase(), f = String(t?.type || t?.source || "output").trim().toLowerCase(), p = String(t?.kind || "").trim().toLowerCase(), m = String(t?.workflow_type || t?.workflowType || "").trim().toLowerCase(), h = String(t?.workflow_id || t?.workflowId || t?.metadata?.workflow_id || t?.metadata?.workflow?.id || "").trim(), g = String(t?.date_exact || t?.date || "").trim(), _ = t?.has_workflow ?? t?.hasWorkflow ?? null; + let n = Yc(e?.dataset || {}), r = n.scope, i = n.subfolder.toLowerCase(), a = n.kind, o = n.workflowOnly, s = n.minRating, c = n.workflowType.toLowerCase(), l = String(n.workflowId || "").trim(), u = n.dateExact, d = String(t?.subfolder || "").trim().toLowerCase(), f = String(t?.type || t?.source || "output").trim().toLowerCase(), p = String(t?.kind || "").trim().toLowerCase(), m = String(t?.workflow_type || t?.workflowType || "").trim().toLowerCase(), h = String(t?.workflow_id || t?.workflowId || t?.metadata?.workflow_id || t?.metadata?.workflow?.id || "").trim(), g = String(t?.date_exact || t?.date || "").trim(), _ = t?.has_workflow ?? t?.hasWorkflow ?? null; return !(r && r !== "all" && f && f !== r || i && d !== i || a && p && p !== a || o && _ !== null && !_ || s > 0 && (Number(t?.rating || 0) || 0) < s || c && m !== c || l && h && h !== l || u && g && g !== u); } -async function Gl(e, t, n, r, i, { requestId: a = 0, signal: o = null, cursor: s = null } = {}) { +async function Jl(e, t, n, r, i, { requestId: a = 0, signal: o = null, cursor: s = null } = {}) { let c = (e) => { if (typeof e == "string") return e; if (e && typeof e == "object") { @@ -5671,13 +5671,13 @@ async function Gl(e, t, n, r, i, { requestId: a = 0, signal: o = null, cursor: s if (typeof e.target?.value == "string") return e.target.value; } return String(e || ""); - }, l = Kc(e?.dataset || {}), { scope: u, customRootId: d, subfolder: f, kind: p, workflowOnly: m, minRating: h, minSizeMB: g, maxSizeMB: _, resolutionCompare: v, minWidth: y, minHeight: b, maxWidth: x, maxHeight: S, workflowType: C, workflowId: w, workflowModel: T, workflowRunsOn: E, dateRange: D, dateExact: O, metadataSearchMode: k } = l, A = l.sort || "mtime_desc", ee = c(t).trim() || "*", j = /^\[object\s+HTML.*Element\]$/i.test(ee) ? "*" : ee, M = i.sanitizeQuery(j) || j; + }, l = Yc(e?.dataset || {}), { scope: u, customRootId: d, subfolder: f, kind: p, workflowOnly: m, minRating: h, minSizeMB: g, maxSizeMB: _, resolutionCompare: v, minWidth: y, minHeight: b, maxWidth: x, maxHeight: S, workflowType: C, workflowId: w, workflowModel: T, workflowRunsOn: E, dateRange: D, dateExact: O, metadataSearchMode: k } = l, A = l.sort || "mtime_desc", j = c(t).trim() || "*", M = /^\[object\s+HTML.*Element\]$/i.test(j) ? "*" : j, N = i.sanitizeQuery(M) || M; try { - let t = String(u || "").toLowerCase() === "output", c = Xc({ + let t = String(u || "").toLowerCase() === "output", c = $c({ ...l, - q: M - }), ee = t && Number(r ?? 0) === 0 && M === "*" && !c && String(A || "mtime_desc").toLowerCase() === "mtime_desc", j = !(t && (Number(r ?? 0) > 0 || ee)), N = !!l.groupStacks, te = Number(r ?? 0) > 0 ? null : s || null, ne = i.buildListURL({ - q: M, + q: N + }), j = t && Number(r ?? 0) === 0 && N === "*" && !c && String(A || "mtime_desc").toLowerCase() === "mtime_desc", M = !(t && (Number(r ?? 0) > 0 || j)), ee = !!l.groupStacks, te = Number(r ?? 0) > 0 ? null : s || null, P = i.buildListURL({ + q: N, limit: n, offset: r, scope: u, @@ -5701,10 +5701,10 @@ async function Gl(e, t, n, r, i, { requestId: a = 0, signal: o = null, cursor: s dateExact: O || null, sort: A, cursor: te, - includeTotal: j, - groupStacks: N, + includeTotal: M, + groupStacks: ee, metadataMode: k || null - }), P = await i.get(ne, { + }), ne = await i.get(P, { timeoutMs: 12e4, ...o ? { signal: o } : {} }); @@ -5718,23 +5718,23 @@ async function Gl(e, t, n, r, i, { requestId: a = 0, signal: o = null, cursor: s } catch (e) { console.debug?.(e); } - if (P.ok) { - let e = P.data?.assets || [], t = Array.isArray(e) ? e.length : 0, n = P.data?.total; + if (ne.ok) { + let e = ne.data?.assets || [], t = Array.isArray(e) ? e.length : 0, n = ne.data?.total; return { ok: !0, assets: e, total: n == null ? null : Number(n ?? 0) || 0, count: t, - limit: Math.max(0, Number(P.data?.limit) || 0), - offset: Math.max(0, Number(P.data?.offset) || 0), - nextCursor: P.data?.next_cursor || P.data?.nextCursor || null, - hasMore: typeof P.data?.has_more == "boolean" ? P.data.has_more : null, + limit: Math.max(0, Number(ne.data?.limit) || 0), + offset: Math.max(0, Number(ne.data?.offset) || 0), + nextCursor: ne.data?.next_cursor || ne.data?.nextCursor || null, + hasMore: typeof ne.data?.has_more == "boolean" ? ne.data.has_more : null, sortKey: A, - safeQuery: M + safeQuery: N }; } try { - if (String(P?.code || "") === "ABORTED") return { + if (String(ne?.code || "") === "ABORTED") return { ok: !1, aborted: !0, error: "Aborted" @@ -5744,7 +5744,7 @@ async function Gl(e, t, n, r, i, { requestId: a = 0, signal: o = null, cursor: s } return { ok: !1, - error: P.error + error: ne.error }; } catch (e) { try { @@ -5762,7 +5762,7 @@ async function Gl(e, t, n, r, i, { requestId: a = 0, signal: o = null, cursor: s }; } } -function Kl(e, t) { +function Yl(e, t) { switch (t) { case "mtime_desc": return -(Number(e?.mtime) || 0); case "mtime_asc": return Number(e?.mtime) || 0; @@ -5771,23 +5771,23 @@ function Kl(e, t) { default: return -(Number(e?.mtime) || 0); } } -function ql(e, t, n) { +function Xl(e, t, n) { if (n === "name_desc") { let n = String(e?.filename || "").toLowerCase(), r = String(t?.filename || "").toLowerCase(); return n > r ? -1 : +(n < r); } - let r = Kl(e, n), i = Kl(t, n); + let r = Yl(e, n), i = Yl(t, n); return r < i ? -1 : +(r > i); } -function Jl(e, t, n) { +function Zl(e, t, n) { return n === "name_asc" ? String(e) < String(t) : n === "name_desc" ? String(e) > String(t) : Number(e) < Number(t); } -function Yl(e, t, n) { - let r = Kl(t, n); - for (let t = 0; t < e.length; t++) if (Jl(r, Kl(e[t], n), n)) return t; +function Ql(e, t, n) { + let r = Yl(t, n); + for (let t = 0; t < e.length; t++) if (Zl(r, Yl(e[t], n), n)) return t; return e.length; } -function Xl(e, t) { +function $l(e, t) { let n = t.get(e); return n || (n = { pending: /* @__PURE__ */ new Map(), @@ -5795,13 +5795,13 @@ function Xl(e, t) { flushing: !1 }, t.set(e, n)), n; } -function Zl(e) { +function eu(e) { return String(e ?? "").trim().toLowerCase(); } -function Ql(e) { +function tu(e) { return e?._mjrLivePlaceholder === !0 || e?.is_live_placeholder === !0 || String(e?.id || "").trim().toLowerCase().startsWith("live:"); } -function $l(e) { +function nu(e) { if (!e || typeof e != "object") return e; try { delete e._mjrLivePlaceholder, delete e._mjrLiveStatus, delete e._mjrLiveLabel, delete e.is_live_placeholder; @@ -5810,24 +5810,24 @@ function $l(e) { } return e; } -function eu(e) { +function ru(e) { if (!e || typeof e != "object") return ""; - let t = Zl(e?.type || e?.source || "output"), n = Zl(e?.root_id || e?.custom_root_id || ""), r = Zl(e?.subfolder || ""), i = Zl(e?.filename || ""); + let t = eu(e?.type || e?.source || "output"), n = eu(e?.root_id || e?.custom_root_id || ""), r = eu(e?.subfolder || ""), i = eu(e?.filename || ""); if (i) return `${t}|${n}|${r}|${i}`; - let a = Zl(e?.filepath || e?.path || e?.fullpath || e?.full_path || ""); + let a = eu(e?.filepath || e?.path || e?.fullpath || e?.full_path || ""); return a ? `${t}|${n}|path|${a}` : ""; } -function tu(e, t, n) { +function iu(e, t, n) { let r = Array.isArray(e?.assets) ? e.assets : []; if (t) { let e = r.findIndex((e) => String(e?.id || "") === t); if (e > -1) return e; } - let i = eu(n); - return i ? r.findIndex((e) => eu(e) === i) : -1; + let i = ru(n); + return i ? r.findIndex((e) => ru(e) === i) : -1; } -function nu(e, t) { - return !t || typeof t != "object" || !e || typeof e != "object" ? !1 : Ql(t) ? !0 : ![ +function au(e, t) { + return !t || typeof t != "object" || !e || typeof e != "object" ? !1 : tu(t) ? !0 : ![ "filename", "filepath", "path", @@ -5846,15 +5846,15 @@ function nu(e, t) { "date" ].some((t) => Object.prototype.hasOwnProperty.call(e, t)); } -function ru(e, t) { +function ou(e, t) { let n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set(), i = [], a = !1; for (let o of Array.isArray(e?.assets) ? e.assets : []) { let e = o?.id == null ? "" : String(o.id), s = t.assetKey(o); e && n.has(e) || s && r.has(s) ? a = !0 : (e && n.add(e), s && r.add(s), i.push(o)); } - a && (e.assets = i), zl(e, { assetKey: t.assetKey }); + a && (e.assets = i), Hl(e, { assetKey: t.assetKey }); } -function iu(e, t) { +function su(e, t) { let n = t.upsertState.get(e); if (!n || n.pending.size === 0 || n.flushing) return; n.flushing = !0, n.timer &&= (clearTimeout(n.timer), null); @@ -5864,14 +5864,14 @@ function iu(e, t) { try { let n = !1; for (let [a, o] of r.entries()) { - let r = Ql(o); + let r = tu(o); i.assetKeyFn = t.assetKey; - let s = ki(o, i, t.loadMajoorSettings); + let s = Mi(o, i, t.loadMajoorSettings); if (Array.isArray(s?.removed) && s.removed.length) { let e = new Set(s.removed); i.assets = i.assets.filter((t) => { let n = !e.has(t); - return n || Di(i, t, i), n; + return n || Ai(i, t, i), n; }); try { i.hiddenPngSiblings = (Number(i.hiddenPngSiblings || 0) || 0) + s.removed.length; @@ -5891,31 +5891,31 @@ function iu(e, t) { let c = i.assets.findIndex((e) => String(e.id) === a), l = c > -1 ? i.assets[c] : null, u = l ? { ...l, ...o - } : o, d = c > -1 ? c : tu(i, a, u), f = d > -1 ? i.assets[d] : null, p = f ? { + } : o, d = c > -1 ? c : iu(i, a, u), f = d > -1 ? i.assets[d] : null, p = f ? { ...f, ...o } : u, m = t.assetKey(u); - if (!Wl(e, p)) { + if (!ql(e, p)) { if (d > -1) { - if (nu(o, f)) { - Object.assign(f, o), r || $l(f), i.assets[d] = { ...f }, n = !0; + if (au(o, f)) { + Object.assign(f, o), r || nu(f), i.assets[d] = { ...f }, n = !0; continue; } let [e] = i.assets.splice(d, 1); - Di(i, e, i), n = !0; + Ai(i, e, i), n = !0; } } else if (d > -1) { let e = t.assetKey(f); - Object.assign(f, o), r || $l(f); + Object.assign(f, o), r || nu(f); let a = { ...f }, s = t.assetKey(a); i.assets[d] = a, e && e !== s && (i.seenKeys?.delete?.(e), s && i.seenKeys?.add?.(s)), n = !0; } else if (!(i.seenKeys.has(m) || o.id != null && i.assetIdSet?.has?.(a))) { - let t = Kc(e?.dataset || {}).sort || "mtime_desc", s = r ? u : $l({ ...u }), c = Yl(i.assets, s, t); + let t = Yc(e?.dataset || {}).sort || "mtime_desc", s = r ? u : nu({ ...u }), c = Ql(i.assets, s, t); i.seenKeys.add(m), o.id != null && i.assetIdSet?.add?.(a), i.assets.splice(c, 0, s), n = !0; } } if (n && a) { - ru(i, t); + ou(i, t); try { e.dataset.mjrHiddenPngSiblings = String(Number(i.hiddenPngSiblings || 0) || 0); } catch (e) { @@ -5927,22 +5927,22 @@ function iu(e, t) { if (n.flushing = !1, n.pending.size > 0 && !n.timer) { let r = Math.min(16, t.debounceMs); n.timer = setTimeout(() => { - n.timer = null, iu(e, t); + n.timer = null, su(e, t); }, r); } } } -function au(e, t, n) { +function cu(e, t, n) { if (!t || !t.id) return !1; let r = n.getOrCreateState(e), i = String(t.id); if (!n.ensureVirtualGrid(e, r)) return !1; - let a = Xl(e, n.upsertState); - return a.pending.set(i, t), a.pending.size >= n.maxBatchSize ? iu(e, n) : !a.timer && !a.flushing && (a.timer = setTimeout(() => { - a.timer = null, iu(e, n); + let a = $l(e, n.upsertState); + return a.pending.set(i, t), a.pending.size >= n.maxBatchSize ? su(e, n) : !a.timer && !a.flushing && (a.timer = setTimeout(() => { + a.timer = null, su(e, n); }, n.debounceMs)), !0; } // ui/vue/components/grid/gridDomBridge.ts -function ou(e) { +function lu(e) { let t = String(e ?? ""); try { if (typeof CSS < "u" && typeof CSS.escape == "function") return CSS.escape(t); @@ -5951,7 +5951,7 @@ function ou(e) { } return t.replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1"); } -function su(e) { +function uu(e) { if (!e) return []; try { return Array.from(e.querySelectorAll?.(".mjr-asset-card") || []); @@ -5959,7 +5959,7 @@ function su(e) { return console.debug?.(e), []; } } -function cu(e) { +function du(e) { if (!e) return null; try { return e.querySelector?.(".mjr-asset-card.is-selected") || null; @@ -5967,46 +5967,46 @@ function cu(e) { return console.debug?.(e), null; } } -function lu(e, t) { +function fu(e, t) { if (!e) return null; let n = String(t || "").trim(); if (!n) return null; try { - return e.querySelector?.(`.mjr-asset-card[data-mjr-asset-id="${ou(n)}"]`) || null; + return e.querySelector?.(`.mjr-asset-card[data-mjr-asset-id="${lu(n)}"]`) || null; } catch (e) { return console.debug?.(e), null; } } -function uu(e, t = 0) { +function pu(e, t = 0) { let n = e?.dataset?.mjrShown, r = Number(n); return Number.isFinite(r) ? Math.max(0, r) : Math.max(0, Number(t) || 0); } // ui/vue/composables/useGridLoader.ts -var du = 200, fu = 50, pu = /* @__PURE__ */ new WeakMap(), mu = /* @__PURE__ */ new Set([ +var mu = 200, hu = 50, gu = /* @__PURE__ */ new WeakMap(), _u = /* @__PURE__ */ new Set([ "collection", "filter", "initial", "scope", "search", "sort" -]), hu = 0; -function gu(e) { +]), vu = 0; +function yu(e) { return new Promise((t) => setTimeout(t, Math.max(0, Number(e) || 0))); } -function _u(e) { +function bu(e) { if (!e || typeof e != "object") return ""; if (e.id != null && String(e.id).trim()) return `id:${String(e.id).trim()}`; - let t = String(e?.type || e?.source || "output").trim().toLowerCase(), n = String(be(e) || "").trim().toLowerCase(), r = String(e?.subfolder || "").trim().toLowerCase(), i = String(e?.filename || "").trim().toLowerCase(); + let t = String(e?.type || e?.source || "output").trim().toLowerCase(), n = String(Be(e) || "").trim().toLowerCase(), r = String(e?.subfolder || "").trim().toLowerCase(), i = String(e?.filename || "").trim().toLowerCase(); if (i) return `${t}|${n}|${r}|${i}`; let a = String(e?.filepath || e?.path || e?.fullpath || e?.full_path || "").trim().toLowerCase(); return a ? `${t}|${n}|path|${a}` : ""; } -function vu(e) { +function xu(e) { if (e == null) return e; let t = String(e); return t.trim() === "" ? t : t.trim() === "*" ? "*" : t.replace(/[\u0000-\u001f\u007f]+/g, " ").replace(/[<>]/g, " ").replace(/\s+/g, " ").trim() || t; } -function yu(e) { +function Su(e) { if (typeof e == "string") return e; if (e && typeof e == "object") { if (typeof e.value == "string") return e.value; @@ -6022,13 +6022,13 @@ function yu(e) { } return String(e || ""); } -function bu(e) { +function Cu(e) { return e ? typeof e == "object" && "value" in e ? e.value || null : e : null; } -async function xu() { - await qn(); +async function wu() { + await Xn(); } -function Su(e, t) { +function Tu(e, t) { let n = String(e || "Failed to load"); try { let e = String(t?.message || t || "").trim(), r = e.toLowerCase(); @@ -6037,13 +6037,13 @@ function Su(e, t) { return n; } } -function Cu(e, t) { +function Eu(e, t) { let n = Math.max(1, Math.min(R.MAX_PAGE_SIZE, Number(e) || 1)), r = Math.max(0, Number(t) || 0); if (r <= 0) return n; let i = 2 ** Math.min(r, 5); return Math.max(1, Math.min(R.MAX_PAGE_SIZE, n * i)); } -function wu() { +function Du() { try { let e = typeof navigator < "u" ? navigator : null, t = Number(e?.deviceMemory || 0) || 0; if (t > 0 && t <= 4 || e?.connection?.saveData === !0) return !0; @@ -6052,20 +6052,20 @@ function wu() { } return !1; } -function Tu() { - return R.PREFETCH_NEXT_PAGE ? !wu() : !1; +function Ou() { + return R.PREFETCH_NEXT_PAGE ? !Du() : !1; } -function Eu(e, t = {}) { +function ku(e, t = {}) { let n = Array.isArray(e.assets) ? e.assets : []; - t.rebuildFromVisible && n.length ? Ei(e, n, { + t.rebuildFromVisible && n.length ? ki(e, n, { assetKey: t.assetKey || e.assetKeyFn, preserveHiddenCount: !!t.preserveHiddenCount - }) : Ei(e, [], { + }) : ki(e, [], { assetKey: t.assetKey || e.assetKeyFn, preserveHiddenCount: !1 }); } -function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingMessage: r, setStatusMessage: i, clearStatusMessage: a, resetAssets: o, setSelection: s, reconcileSelection: c, readScrollElement: l = () => null, readRenderedCards: u = () => [], scrollToAssetId: d = () => {}, canLoadMore: f = null } = {}) { +function Au({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingMessage: r, setStatusMessage: i, clearStatusMessage: a, resetAssets: o, setSelection: s, reconcileSelection: c, readScrollElement: l = () => null, readRenderedCards: u = () => [], scrollToAssetId: d = () => {}, canLoadMore: f = null } = {}) { let p = !1, m = null, h = null, g = { pagesRequested: 0, assetsReceived: 0, @@ -6092,7 +6092,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM g.lastOperation = String(e || ""), t.reloadReason && (g.lastReloadReason = String(t.reloadReason || "")), t.appendReason && (g.lastAppendReason = String(t.appendReason || "")); } function y() { - return bu(e); + return Cu(e); } function b() { return C(); @@ -6128,7 +6128,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM ...e, counts: { loaded: e.assets.length, - visible: uu(y(), e.assets.length), + visible: pu(y(), e.assets.length), total: e.pagination.total }, metrics: { ...g } @@ -6136,8 +6136,8 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM } function C() { let e = y(); - return Kc(e?.dataset || {}, { - q: qc(e, t.query || "*"), + return Yc(e?.dataset || {}, { + q: Xc(e, t.query || "*"), resolutionCompare: e?.dataset?.mjrFilterResolutionCompare || "" }); } @@ -6175,7 +6175,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM }; } function D(e) { - return mu.has(String(e || "").toLowerCase()); + return _u.has(String(e || "").toLowerCase()); } function O(e = null) { try { @@ -6193,9 +6193,9 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM } catch (e) { console.debug?.(e); } - return Vc(y(), l()); + return Wc(y(), l()); } - function ee() { + function j() { if (!R.DEFER_GRID_FETCH_DURING_EXECUTION) return !1; try { if (!Array.isArray(t.assets) || t.assets.length === 0) return !1; @@ -6208,7 +6208,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM return console.debug?.(e), !1; } } - function j() { + function M() { try { m?.timer && clearTimeout(m.timer); } catch (e) { @@ -6221,7 +6221,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM } m = null; } - function M() { + function N() { try { h && clearTimeout(h); } catch (e) { @@ -6229,9 +6229,9 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM } h = null; } - function N(e, n = R.PREFETCH_NEXT_PAGE_DELAY_MS) { - if (!Tu()) return; - M(); + function ee(e, n = R.PREFETCH_NEXT_PAGE_DELAY_MS) { + if (!Ou()) return; + N(); let r = Math.max(0, Number(n) || 0); h = setTimeout(() => { h = null, !(t.requestId !== e || t.done || t.loading) && me().catch((e) => { @@ -6240,15 +6240,15 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM }, r); } function te(e, t = {}) { - j(); + M(); let n = (() => { try { - return wl(C()); + return Dl(C()); } catch (e) { return console.debug?.(e), null; } })(), r = () => { - if (ee()) { + if (j()) { try { m = { ...m, @@ -6259,21 +6259,21 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM } return; } - j(); + M(); let i = y(); if (n) { let e = null; try { - e = wl(C()); + e = Dl(C()); } catch (e) { console.debug?.(e); } if (e && e !== n) { - ft("[Grid] Deferred execution reload skipped - scope/filter changed during execution"); + ht("[Grid] Deferred execution reload skipped - scope/filter changed during execution"); return; } } - let a = qc(i, e); + let a = Xc(i, e); Promise.resolve().then(() => _e(a, { ...t || {}, reset: !0, @@ -6292,18 +6292,18 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM console.debug?.(e); } } - function ne(e, t = null) { + function P(e, t = null) { if (!e || typeof e != "object") return ""; - let n = e.id == null ? `${e.type || ""}|${be(e)}|${e.filepath || ""}|${e.subfolder || ""}|${e.filename || ""}` : `id:${e.id}`; + let n = e.id == null ? `${e.type || ""}|${Be(e)}|${e.filepath || ""}|${e.subfolder || ""}|${e.filename || ""}` : `id:${e.id}`; try { - return bo(t || y() || globalThis?.__MJR_LAST_ASSETKEY_GRID__, e, n); + return Co(t || y() || globalThis?.__MJR_LAST_ASSETKEY_GRID__, e, n); } catch (e) { return console.debug?.(e), n; } } - function P() { + function ne() { try { - let e = Mt?.() || {}, t = e.grid || {}; + let e = Ft?.() || {}, t = e.grid || {}; return t.snapshotCacheEnabled === !0 || t.enableSnapshotCache === !0 || e.snapshotCacheEnabled === !0 || e.enableSnapshotCache === !0; } catch (e) { return console.debug?.(e), !1; @@ -6311,17 +6311,17 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM } function re(e = "") { try { - if (!P()) return; + if (!ne()) return; let n = y(), r = Array.isArray(t.assets) ? t.assets : []; if (!n || !r.length) return; - let i = r.map(Tl).filter(Boolean); + let i = r.map(Ol).filter(Boolean); if (!i.length) return; - let a = i.length < r.length, o = Number(t.offset || i.length) || i.length, s = Number(t.total ?? i.length), c = Kc(n.dataset || {}, { - q: qc(n, t.query || "*"), + let a = i.length < r.length, o = Number(t.offset || i.length) || i.length, s = Number(t.total ?? i.length), c = Yc(n.dataset || {}, { + q: Xc(n, t.query || "*"), resolutionCompare: n.dataset?.mjrFilterResolutionCompare || "" - }), l = wl(c); + }), l = Dl(c); if (!l) return; - Il(l, { + zl(l, { assets: i, title: String(e || "").trim(), query: String(t.query || c.query || "*").trim() || "*", @@ -6333,36 +6333,36 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM console.debug?.(e); } } - function F() { + function ie() { let e = y(); if (e) try { - let t = pu.get(e); + let t = gu.get(e); if (!t) return; t.timer &&= (clearTimeout(t.timer), null), t.pending.clear(), t.flushing = !1; } catch (e) { console.debug?.(e); } } - function I(e, n) { - let r = _(), i = Array.isArray(n) ? n.length : 0, o = Ai(e, n, t, { - loadMajoorSettings: Mt, + function F(e, n) { + let r = _(), i = Array.isArray(n) ? n.length : 0, o = Ni(e, n, t, { + loadMajoorSettings: Ft, clearGridMessage: () => { a(); }, ensureVirtualGrid: () => t.virtualGrid, - setFileBadgeCollision: an, - assetKey: (t) => ne(t, e), - ensureDupStackCard: (e, t, n) => So(e, t, n) + setFileBadgeCollision: cn, + assetKey: (t) => P(t, e), + ensureDupStackCard: (e, t, n) => To(e, t, n) }); return g.renderTimeMs += Math.max(0, _() - r), g.assetsReceived += i, g.visibleAssetsAdded += Number(o || 0) || 0, g.hiddenOrDedupedAssets += Math.max(0, i - (Number(o || 0) || 0)), o; } - function ie(e, t) { + function I(e, t) { let n = String(t || "*").trim() || "*"; - return Yc(Kc(e?.dataset || {}, { q: n })); + return Qc(Yc(e?.dataset || {}, { q: n })); } function ae(e) { - let t = C(), n = vu(yu(e).trim() || "*") || "*"; - return Zc({ + let t = C(), n = xu(Su(e).trim() || "*") || "*"; + return el({ ...t, q: n }); @@ -6382,9 +6382,9 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM error: "Grid unavailable" }; if (r === 0) { - let s = ie(o, e), c = Er(); + let s = I(o, e), c = kr(); if (c && c === s) { - let o = Tr(s); + let o = Or(s); if (o) try { let s = await o; if (Number(t.requestId) !== Number(i)) return { @@ -6399,7 +6399,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM }; let c = s?.data?.assets; if (s?.ok && Array.isArray(c)) { - ft("[Grid] Using early-fetched data:", c.length, "assets"); + ht("[Grid] Using early-fetched data:", c.length, "assets"); let t = s.data?.total ?? s.meta?.total ?? null; return oe({ ok: !0, @@ -6416,14 +6416,14 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM }); } } catch (e) { - ft("[Grid] Early fetch failed, falling back to normal fetch", e); + ht("[Grid] Early fetch failed, falling back to normal fetch", e); } } } - return oe(await Gl(o, e, n, r, { - sanitizeQuery: vu, - buildListURL: qe, - get: Pe, + return oe(await Jl(o, e, n, r, { + sanitizeQuery: xu, + buildListURL: Ge, + get: Ie, getGridState: () => t }, { requestId: i, @@ -6435,7 +6435,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM offset: r }); } - let ce = Ul({ + let ce = Kl({ query: { get value() { return t.query || "*"; @@ -6447,7 +6447,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM collection: { append(e = []) { let t = y(); - return t && e.length && Number(I(t, e) || 0) || 0; + return t && e.length && Number(F(t, e) || 0) || 0; }, reset() {} }, @@ -6506,12 +6506,12 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM console.debug?.(e); } let f = Array.isArray(t.selectedIds) ? t.selectedIds.join("|") : "", m = String(t.activeId || ""); - if (v("appendNextPage", { appendReason: "pagination" }), !A()) return !t.assets.length && !t.loading && Tu() && N(t.requestId, 400), { + if (v("appendNextPage", { appendReason: "pagination" }), !A()) return !t.assets.length && !t.loading && Ou() && ee(t.requestId, 400), { ok: !0, skipped: !0, hidden: !0 }; - if (ee()) return { + if (j()) return { ok: !0, skipped: !0, busy: !0 @@ -6529,7 +6529,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM let n = t.requestId, r = await ce.loadUntilVisible({ maxEmptyPages: 6, canContinue: () => A(), - getLimit: (e) => Cu(h, e), + getLimit: (e) => Eu(h, e), beforeApplyPage: (e) => { if (t.requestId !== n) return { ok: !1, @@ -6547,7 +6547,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM cursor: null, total: null, done: !1 - }), Eu(t), g.resetCount += 1, p = !1, null) : Array.isArray(t.assets) && t.assets.length ? (ft("[Grid LoadPage] empty response with cached visible assets - preserving cached view", { + }), ku(t), g.resetCount += 1, p = !1, null) : Array.isArray(t.assets) && t.assets.length ? (ht("[Grid LoadPage] empty response with cached visible assets - preserving cached view", { offset: t.offset, query: t.query }), { @@ -6558,18 +6558,18 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM }) : null; }, onEmptyPage: (e) => { - e.emptyPageIndex <= 0 || ft(`[Grid LoadPage] fetched adaptive page with no visible additions: offset=${t.offset}, fetched=${e.count}, consumed=${e.advanced}, added=${e.added}, limit=${e.limit}, done=${t.done}, visibleCount=${t.assets.length}, total=${t.total}`); + e.emptyPageIndex <= 0 || ht(`[Grid LoadPage] fetched adaptive page with no visible additions: offset=${t.offset}, fetched=${e.count}, consumed=${e.advanced}, added=${e.added}, limit=${e.limit}, done=${t.done}, visibleCount=${t.assets.length}, total=${t.total}`); } }); - if (de(), fe(), !r.ok) return r.aborted || r.stale || (ue({ done: !0 }), i(Su("Failed to load assets", r?.error || "Unknown error"), { error: !0 })), r; + if (de(), fe(), !r.ok) return r.aborted || r.stale || (ue({ done: !0 }), i(Tu("Failed to load assets", r?.error || "Unknown error"), { error: !0 })), r; if (r.preservedCached) return r; - if (t.done || r.added > 0) return re(t.query || qc(e, "*")), { + if (t.done || r.added > 0) return re(t.query || Xc(e, "*")), { ok: !0, count: r.count, total: t.total }; let a = r.lastResult || r.firstResult || r; - return ft(`[Grid LoadPage] fetched one page with no visible additions: offset=${t.offset}, fetched=${r.count}, consumed=${a.advanced}, added=${a.added}, limit=${a.limit || h}, done=${t.done}, visibleCount=${t.assets.length}, total=${t.total}`), !t.done && Tu() && N(Number(t.requestId ?? 0) || 0, Math.min(R.PREFETCH_NEXT_PAGE_DELAY_MS ?? 700, 250)), { + return ht(`[Grid LoadPage] fetched one page with no visible additions: offset=${t.offset}, fetched=${r.count}, consumed=${a.advanced}, added=${a.added}, limit=${a.limit || h}, done=${t.done}, visibleCount=${t.assets.length}, total=${t.total}`), !t.done && Ou() && ee(Number(t.requestId ?? 0) || 0, Math.min(R.PREFETCH_NEXT_PAGE_DELAY_MS ?? 700, 250)), { ok: !0, count: r.count, total: t.total, @@ -6591,7 +6591,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM } catch (e) { console.debug?.(e); } - return i(Su("Failed to load assets", e), { error: !0 }), { + return i(Tu("Failed to load assets", e), { error: !0 }), { ok: !1, error: e?.message || String(e) }; @@ -6613,7 +6613,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM } try { let e = Date.now() - _; - e < hu && await gu(hu - e); + e < vu && await yu(vu - e); } catch (e) { console.debug?.(e); } @@ -6630,21 +6630,21 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM } let n = t.requestId, r = null; try { - r = wl(C()); + r = Dl(C()); } catch (e) { console.debug?.(e); } he = setTimeout(async () => { - if (he = null, Number(t.requestId) !== Number(n) || ee() || !y()) return; + if (he = null, Number(t.requestId) !== Number(n) || j() || !y()) return; if (r) { let e = null; try { - e = wl(C()); + e = Dl(C()); } catch (e) { console.debug?.(e); } if (e && e !== r) { - ft("[Grid] Snapshot head refresh skipped - context changed"); + ht("[Grid] Snapshot head refresh skipped - context changed"); return; } } @@ -6658,12 +6658,12 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM if (r) { let e = null; try { - e = wl(C()); + e = Dl(C()); } catch (e) { console.debug?.(e); } if (e && e !== r) { - ft("[Grid] Snapshot head refresh discarded - context changed mid-fetch"); + ht("[Grid] Snapshot head refresh discarded - context changed mid-fetch"); return; } } @@ -6672,7 +6672,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM if (i.total != null && ue({ total: i.total }), !a.length) return; let o = 0; for (let e of a) e && e.id != null && Ee(e) && (o += 1); - o > 0 && (re(t.query || "*"), ft("[Grid] Snapshot head refresh: inserted", o, "new asset(s)")); + o > 0 && (re(t.query || "*"), ht("[Grid] Snapshot head refresh: inserted", o, "new asset(s)")); } catch (e) { console.debug?.("[Grid] Snapshot head refresh failed", e); } @@ -6693,19 +6693,19 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM } catch (e) { console.debug?.(e); } - let d = yu(e).trim() || "*", f = /^\[object\s+HTML.*Element\]$/i.test(d) ? "*" : d, m = vu(f) || f; + let d = Su(e).trim() || "*", f = /^\[object\s+HTML.*Element\]$/i.test(d) ? "*" : d, m = xu(f) || f; t.query = m; let h = c ? E(m, i) : { reason: "append", nextContext: w(m) }; - if (v("reload", { reloadReason: h.reason || "loadAssets" }), c && ee()) { + if (v("reload", { reloadReason: h.reason || "loadAssets" }), c && j()) { let e = !1; try { let n = C(); n.query = m; - let r = wl(n); - if (P() && Fl(r) && (e = await L(n, { allowReplaceExisting: !0 }), t.requestId > s + +!!e)) return console.debug?.("[Grid] loadAssets aborted during deferral due to scope switch"), { + let r = Dl(n); + if (ne() && Rl(r) && (e = await we(n, { allowReplaceExisting: !0 }), t.requestId > s + +!!e)) return console.debug?.("[Grid] loadAssets aborted during deferral due to scope switch"), { ok: !1, aborted: !0 }; @@ -6739,15 +6739,15 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM } catch { t.abortController = null; } - t.requestId = (Number(t.requestId) || 0) + 1, M(), F(), a(), p ? (t.query = m, ue({ + t.requestId = (Number(t.requestId) || 0) + 1, N(), ie(), a(), p ? (t.query = m, ue({ offset: 0, cursor: null, total: null, done: !1 - }), Eu(t, { + }), ku(t, { rebuildFromVisible: !0, preserveHiddenCount: !0, - assetKey: (e) => ne(e, u) + assetKey: (e) => P(e, u) })) : (o({ query: m, total: null, @@ -6757,10 +6757,10 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM cursor: null, total: null, done: !1 - }), Eu(t), g.resetCount += 1), n(m === "*" ? "Loading assets..." : `Searching for "${m}"...`); + }), ku(t), g.resetCount += 1), n(m === "*" ? "Loading assets..." : `Searching for "${m}"...`); } let _ = await me(); - return fe(), Tu() && _?.ok && !_?.skipped && !t.done && !_?.aborted && N(t.requestId), c && (pe({ + return fe(), Ou() && _?.ok && !_?.skipped && !t.done && !_?.aborted && ee(t.requestId), c && (pe({ title: m, showEmptyMessage: !(_?.skipped || _?.hidden || _?.aborted || _?.stale || _?.preservedCached || _?.busy) }), O(h.nextContext)), { @@ -6795,7 +6795,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM } catch { t.abortController = null; } - t.requestId = (Number(t.requestId) || 0) + 1, F(), a(), h ? (t.query = String(c || "Collection"), ue({ + t.requestId = (Number(t.requestId) || 0) + 1, ie(), a(), h ? (t.query = String(c || "Collection"), ue({ offset: 0, cursor: null, total: p.length, @@ -6809,15 +6809,15 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM cursor: null, total: p.length, done: !0 - }), Eu(t), g.resetCount += 1), u ? (n(p.length ? `Loading ${c}...` : `${c} is empty`), t.loading = !0) : (r(), t.loading = !1); + }), ku(t), g.resetCount += 1), u ? (n(p.length ? `Loading ${c}...` : `${c} is empty`), t.loading = !0) : (r(), t.loading = !1); } try { - let e = Jc(f, "mtime_desc"), n = p.sort((t, n) => ql(t, n, e)); + let e = Zc(f, "mtime_desc"), n = p.sort((t, n) => Xl(t, n, e)); return l && h && (o({ query: String(c || "Collection"), total: p.length, done: !0 - }), Eu(t), g.resetCount += 1), I(f, n), ue({ + }), ku(t), g.resetCount += 1), F(f, n), ue({ offset: n.length, cursor: null, total: n.length, @@ -6828,14 +6828,14 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM total: n.length }; } catch (e) { - return i(Su("Failed to load collection", e), { error: !0 }), { + return i(Tu("Failed to load collection", e), { error: !0 }), { ok: !1, error: e?.message || String(e) }; } finally { if (u) try { let e = Date.now() - m; - e < hu && await gu(hu - e); + e < vu && await yu(vu - e); } catch (e) { console.debug?.(e); } @@ -6845,7 +6845,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM function ye() { v("reload", { reloadReason: "scopeSwitch" }); try { - xo(y()); + wo(y()); } catch (e) { console.debug?.(e); } @@ -6859,13 +6859,13 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM cursor: null, total: null, done: !1 - }), M(), F(), r(), a(), p = !0, s([], ""); + }), N(), ie(), r(), a(), p = !0, s([], ""); } - function xe() { + function be() { t.virtualGrid?.setItems?.(t.assets || []); } - function Se(e, { updateSelection: n = !0 } = {}) { - let r = Bl(t, e, { assetKey: (e) => ne(e, y()) }); + function xe(e, { updateSelection: n = !0 } = {}) { + let r = Ul(t, e, { assetKey: (e) => P(e, y()) }); return r ? (Number.isFinite(Number(t.total)) && ue({ total: Math.max(0, Number(t.total || 0) - r) }), n && c(t.assets.map((e) => String(e?.id || "")).filter(Boolean), { activeId: t.activeId }), !t.assets.length && !t.loading && i("No assets found"), { ok: !0, removed: r, @@ -6876,7 +6876,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM selectedIds: t.selectedIds.slice() }; } - function Ce() { + function Se() { let e = y(), t = l(); if (!e || !t) return null; let n = (e) => { @@ -6887,7 +6887,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM } catch { return !1; } - }, r = cu(e), i = u(), a = i.find((e) => n(e)) || i[0] || null, o = n(r) ? r : a; + }, r = du(e), i = u(), a = i.find((e) => n(e)) || i[0] || null, o = n(r) ? r : a; if (!o) return null; try { let e = o.getBoundingClientRect(), n = t.getBoundingClientRect(); @@ -6900,17 +6900,17 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM return console.debug?.(e), null; } } - async function we(e) { + async function Ce(e) { let t = y(), n = l(); if (!t || !n || !e) return; - await xu(); + await wu(); let r = String(e.id || "").trim(); if (!r) { n.scrollTop = Number(e.scrollTop || 0) || 0, g.scrollRestoreCount += 1; return; } - d(r, { align: "start" }), await xu(); - let i = lu(t, r); + d(r, { align: "start" }), await wu(); + let i = fu(t, r); if (!i) n.scrollTop = Number(e.scrollTop || 0) || 0, g.scrollRestoreCount += 1; else try { let t = i.getBoundingClientRect(), r = n.getBoundingClientRect(), a = t.top - r.top - Number(e.top || 0); @@ -6919,10 +6919,10 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM console.debug?.(t), n.scrollTop = Number(e.scrollTop || 0) || 0, g.scrollRestoreCount += 1; } } - async function L(e = {}, n = {}) { + async function we(e = {}, n = {}) { let i = y(); - if (!i || !P()) return !1; - let s = wl(e), c = Pl(s); + if (!i || !ne()) return !1; + let s = Dl(e), c = Ll(s); if (!c || !Array.isArray(c.assets) || !c.assets.length || !n.allowReplaceExisting && Array.isArray(t.assets) && t.assets.length) return !1; g.lastResetReason = "snapshot"; try { @@ -6935,11 +6935,11 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM } catch { t.abortController = null; } - return t.requestId = (Number(t.requestId) || 0) + 1, M(), F(), o({ + return t.requestId = (Number(t.requestId) || 0) + 1, N(), ie(), o({ query: c.query || n.title || "Cached", total: Number(c.total ?? c.assets.length) || c.assets.length, done: !!c.done - }), Eu(t), g.resetCount += 1, a(), r(), t.loading = !1, I(i, c.assets), ue({ + }), ku(t), g.resetCount += 1, a(), r(), t.loading = !1, F(i, c.assets), ue({ offset: Math.max(Number(c.assets.length || 0) || 0, Number(c.offset || c.assets.length) || c.assets.length), cursor: c.cursor || null, total: Number(c.total ?? c.assets.length) || c.assets.length, @@ -6953,38 +6953,38 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM return { getOrCreateState: () => t, ensureVirtualGrid: () => t.virtualGrid, - upsertState: pu, - maxBatchSize: fu, - debounceMs: du, - assetKey: (t) => _u(t) || ne(t, e), - loadMajoorSettings: Mt + upsertState: gu, + maxBatchSize: hu, + debounceMs: mu, + assetKey: (t) => bu(t) || P(t, e), + loadMajoorSettings: Ft }; } function Ee(e) { v("upsertRealtime", { appendReason: "realtime" }); let t = y(); - return !t || !e || !e.id ? !1 : au(t, e, Te(t)); + return !t || !e || !e.id ? !1 : cu(t, e, Te(t)); } let De = !1; function Oe(e) { v("upsertRealtime", { appendReason: "realtimeImmediate" }); let t = y(); if (!t || !e || !e.id) return !1; - let n = au(t, e, Te(t)); + let n = cu(t, e, Te(t)); return n && !De && (De = !0, queueMicrotask(() => { De = !1; let e = y(); - e && iu(e, Te(e)); + e && su(e, Te(e)); })), n; } function ke() { re(t.query || "Cached"); try { - Nl(); + Il(); } catch (e) { console.debug?.(e); } - j(), M(); + M(), N(); try { t.abortController?.abort?.(); } catch (e) { @@ -6992,7 +6992,7 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM } let e = y(); if (e) try { - let t = Xl(e, pu); + let t = $l(e, gu); t?.timer && (clearTimeout(t.timer), t.timer = null), t?.pending?.clear?.(); } catch (e) { console.debug?.(e); @@ -7017,11 +7017,11 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM loadAssetsFromList: ve, loadNextPage: me, prepareGridForScopeSwitch: ye, - refreshGrid: xe, - removeAssets: Se, - captureAnchor: Ce, - restoreAnchor: we, - hydrateFromSnapshot: L, + refreshGrid: be, + removeAssets: xe, + captureAnchor: Se, + restoreAnchor: Ce, + hydrateFromSnapshot: we, upsertAsset: Ee, upsertAssetNow: Oe, getCanonicalState: x, @@ -7030,10 +7030,10 @@ function Du({ gridContainerRef: e, state: t, setLoadingMessage: n, clearLoadingM }; } // node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js -function Ou(e) { +function ju(e) { return typeof e == "object" ? e.key : e; } -function ku(e, t) { +function Mu(e, t) { let n = e.length; return new Proxy(e, { get(e, r, i) { if (typeof r == "string") { @@ -7062,7 +7062,7 @@ function ku(e, t) { } }); } // node_modules/@tanstack/virtual-core/dist/esm/utils.js -function Au(e, t, n) { +function Nu(e, t, n) { let r = n.initialDeps ?? [], i, a = !0; function o() { let o = e(); @@ -7072,34 +7072,34 @@ function Au(e, t, n) { r = e; }, o; } -function ju(e, t) { +function Pu(e, t) { if (e === void 0) throw Error(`Unexpected undefined${t ? `: ${t}` : ""}`); return e; } -var Mu = (e, t) => Math.abs(e - t) < 1.01, Nu = (e, t, n) => { +var Fu = (e, t) => Math.abs(e - t) < 1.01, Iu = (e, t, n) => { let r; return Object.assign(function(...i) { e.clearTimeout(r), r = e.setTimeout(() => t.apply(this, i), n); }, { cancel: () => { e.clearTimeout(r); } }); -}, Pu, Fu = () => { - if (Pu !== void 0) return Pu; - if (typeof navigator > "u") return Pu = !1; - if (/iP(hone|od|ad)/.test(navigator.userAgent)) return Pu = !0; +}, Lu, Ru = () => { + if (Lu !== void 0) return Lu; + if (typeof navigator > "u") return Lu = !1; + if (/iP(hone|od|ad)/.test(navigator.userAgent)) return Lu = !0; let e = navigator.maxTouchPoints; - return Pu = navigator.platform === "MacIntel" && e !== void 0 && e > 0; -}, Iu = (e) => { + return Lu = navigator.platform === "MacIntel" && e !== void 0 && e > 0; +}, zu = (e) => { let { offsetWidth: t, offsetHeight: n } = e; return { width: t, height: n }; -}, Lu = (e) => e, Ru = (e) => { +}, Bu = (e) => e, Vu = (e) => { let t = Math.max(e.startIndex - e.overscan, 0), n = Math.min(e.endIndex + e.overscan, e.count - 1) - t + 1, r = Array(n); for (let e = 0; e < n; e++) r[e] = t + e; return r; -}, zu = (e, t) => { +}, Hu = (e, t) => { let n = e.scrollElement; if (!n) return; let r = e.targetWindow; @@ -7111,7 +7111,7 @@ var Mu = (e, t) => Math.abs(e - t) < 1.01, Nu = (e, t, n) => { height: Math.round(r) }); }; - if (i(Iu(n)), !r.ResizeObserver) return () => {}; + if (i(zu(n)), !r.ResizeObserver) return () => {}; let a = new r.ResizeObserver((t) => { let r = () => { let e = t[0]; @@ -7125,28 +7125,28 @@ var Mu = (e, t) => Math.abs(e - t) < 1.01, Nu = (e, t, n) => { return; } } - i(Iu(n)); + i(zu(n)); }; e.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(r) : r(); }); return a.observe(n, { box: "border-box" }), () => { a.unobserve(n); }; -}, Bu = { passive: !0 }, Vu = typeof window > "u" || "onscrollend" in window, Hu = (e, t, n) => { +}, Uu = { passive: !0 }, Wu = typeof window > "u" || "onscrollend" in window, Gu = (e, t, n) => { let r = e.scrollElement; if (!r) return; let i = e.targetWindow; if (!i) return; - let a = e.options.useScrollendEvent && Vu, o = 0, s = a ? null : Nu(i, () => t(n(r), !1), e.options.isScrollingResetDelay), c = (e) => () => { + let a = e.options.useScrollendEvent && Wu, o = 0, s = a ? null : Iu(i, () => t(n(r), !1), e.options.isScrollingResetDelay), c = (e) => () => { o = n(r), s?.(), t(o, e); }, l = c(!0), u = c(!1); - return r.addEventListener("scroll", l, Bu), a && r.addEventListener("scrollend", u, Bu), () => { + return r.addEventListener("scroll", l, Uu), a && r.addEventListener("scrollend", u, Uu), () => { r.removeEventListener("scroll", l), a && r.removeEventListener("scrollend", u), s?.cancel(); }; -}, Uu = (e, t) => Hu(e, t, (t) => { +}, Ku = (e, t) => Gu(e, t, (t) => { let { horizontal: n, isRtl: r } = e.options; return n ? t.scrollLeft * (r && -1 || 1) : t.scrollTop; -}), Wu = (e, t, n) => { +}), qu = (e, t, n) => { if (n.options.useCachedMeasurements) { let t = n.indexFromElement(e), r = n.options.getItemKey(t); return n.itemSizeCache.get(r) ?? n.options.estimateSize(t); @@ -7160,14 +7160,14 @@ var Mu = (e, t) => Math.abs(e - t) < 1.01, Nu = (e, t, n) => { if (i !== void 0) return i; } return e[n.options.horizontal ? "offsetWidth" : "offsetHeight"]; -}, Gu = (e, { adjustments: t = 0, behavior: n }, r) => { +}, Ju = (e, { adjustments: t = 0, behavior: n }, r) => { var i, a; (a = (i = r.scrollElement)?.scrollTo) == null || a.call(i, { [r.options.horizontal ? "left" : "top"]: e + t, behavior: n }); }; -function Ku(e, t, n, r) { +function Yu(e, t, n, r) { if (t === 0) return !1; let i = r(0), a = /* @__PURE__ */ new Set(), o = 0; for (; o < e;) { @@ -7181,7 +7181,7 @@ function Ku(e, t, n, r) { for (let e = s; e < t; e++) if (a.has(r(e))) return !1; return !0; } -var qu = class { +var Xu = class { constructor(e) { this.unsubs = [], this.scrollElement = null, this.targetWindow = null, this.isScrolling = !1, this.scrollState = null, this.measurementsCache = [], this._singleLaneMeasurements = null, this.itemSizeCache = /* @__PURE__ */ new Map(), this.itemSizeCacheVersion = 0, this.laneAssignments = /* @__PURE__ */ new Map(), this.pendingMin = null, this.prevLanes = void 0, this.lanesChangedFlag = !1, this.lanesSettling = !1, this.pendingScrollAnchor = null, this.scrollRect = null, this.scrollOffset = null, this.scrollDirection = null, this.scrollAdjustments = 0, this._iosDeferredAdjustment = 0, this._iosTouching = !1, this._iosJustTouchEnded = !1, this._iosTouchEndTimerId = null, this._intendedScrollOffset = null, this._clampedAdjustment = null, this.elementsCache = /* @__PURE__ */ new Map(), this.now = () => { var e; @@ -7221,10 +7221,10 @@ var qu = class { scrollPaddingStart: 0, scrollPaddingEnd: 0, horizontal: !1, - getItemKey: Lu, - rangeExtractor: Ru, + getItemKey: Bu, + rangeExtractor: Vu, onChange: () => {}, - measureElement: Wu, + measureElement: qu, initialRect: { width: 0, height: 0 @@ -7251,13 +7251,13 @@ var qu = class { } let n = this.options, r = null, i = null, a = !1; if (n !== void 0 && n.enabled && t.enabled && t.anchorTo === "end" && this.scrollElement !== null) { - let e = n.count, o = t.count, s = this.getMeasurements(), c = this._singleLaneMeasurements?.items ?? s, l = (e) => Ou(c[e]), u = e > 0 ? l(0) : null, d = e > 0 ? l(e - 1) : null; + let e = n.count, o = t.count, s = this.getMeasurements(), c = this._singleLaneMeasurements?.items ?? s, l = (e) => ju(c[e]), u = e > 0 ? l(0) : null, d = e > 0 ? l(e - 1) : null; if (o !== e || e > 0 && o > 0 && (t.getItemKey(0) !== u || t.getItemKey(o - 1) !== d)) { a = !0; let c = e > 0 ? this.getVirtualItemForOffset(this.getScrollOffset()) ?? s[0] : null; c && (r = [c.key, this.getScrollOffset() - c.start]); let u = t.followOnAppend === !0 ? "auto" : t.followOnAppend || null; - u && o > 0 && this.isAtEnd(n.scrollEndThreshold) && (e === 0 || t.getItemKey(o - 1) !== d) && (o > e || Ku(e, o, l, t.getItemKey)) && (i = u); + u && o > 0 && this.isAtEnd(n.scrollEndThreshold) && (e === 0 || t.getItemKey(o - 1) !== d) && (o > e || Yu(e, o, l, t.getItemKey)) && (i = u); } } this.options = t, a && (this.pendingMin = 0, this.itemSizeCacheVersion++); @@ -7282,7 +7282,7 @@ var qu = class { }, this.notify = (e) => { var t, n; (n = (t = this.options).onChange) == null || n.call(t, this, e); - }, this.maybeNotify = Au(() => (this.calculateRange(), [ + }, this.maybeNotify = Nu(() => (this.calculateRange(), [ this.isScrolling, this.range ? this.range.startIndex : null, this.range ? this.range.endIndex : null @@ -7320,11 +7320,11 @@ var qu = class { let e = this.scrollElement, t = () => { this._iosTouching = !0, this._iosJustTouchEnded = !1, this._iosTouchEndTimerId !== null && this.targetWindow != null && (this.targetWindow.clearTimeout(this._iosTouchEndTimerId), this._iosTouchEndTimerId = null); }, n = () => { - this._iosTouching = !1, Fu() && this.targetWindow != null && (this._iosJustTouchEnded = !0, this._iosTouchEndTimerId = this.targetWindow.setTimeout(() => { + this._iosTouching = !1, Ru() && this.targetWindow != null && (this._iosJustTouchEnded = !0, this._iosTouchEndTimerId = this.targetWindow.setTimeout(() => { this._iosJustTouchEnded = !1, this._iosTouchEndTimerId = null, this._flushIosDeferredIfReady(); }, 150)); }; - e.addEventListener("touchstart", t, Bu), e.addEventListener("touchend", n, Bu), this.unsubs.push(() => { + e.addEventListener("touchstart", t, Uu), e.addEventListener("touchend", n, Uu), this.unsubs.push(() => { e.removeEventListener("touchstart", t), e.removeEventListener("touchend", n), this._iosTouchEndTimerId !== null && this.targetWindow != null && (this.targetWindow.clearTimeout(this._iosTouchEndTimerId), this._iosTouchEndTimerId = null); }); } @@ -7336,7 +7336,7 @@ var qu = class { let t = this.pendingScrollAnchor; if (this.pendingScrollAnchor = null, t && this.scrollElement && this.options.enabled) { let [e, n, r, i] = t; - e !== null && !r && (Fu() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded) ? i !== 0 && (this._iosDeferredAdjustment += i) : this.scrollState?.behavior === "smooth" && !Mu(this.getScrollOffset() - i, this.scrollState.lastTargetOffset) || this._scrollToOffset(this.getScrollOffset(), { + e !== null && !r && (Ru() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded) ? i !== 0 && (this._iosDeferredAdjustment += i) : this.scrollState?.behavior === "smooth" && !Fu(this.getScrollOffset() - i, this.scrollState.lastTargetOffset) || this._scrollToOffset(this.getScrollOffset(), { adjustments: void 0, behavior: void 0 })), r && this.scrollToEnd({ behavior: r }); @@ -7365,7 +7365,7 @@ var qu = class { adjustments: this.scrollAdjustments += n, behavior: void 0 }); - }, this.rafId = null, this.getSize = () => this.options.enabled ? (this.scrollRect = this.scrollRect ?? this.options.initialRect, this.scrollRect[this.options.horizontal ? "width" : "height"]) : (this.scrollRect = null, 0), this.getScrollOffset = () => this.options.enabled ? (this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset == "function" ? this.options.initialOffset() : this.options.initialOffset), this.scrollOffset) : (this.scrollOffset = null, 0), this.getMeasurementOptions = Au(() => [ + }, this.rafId = null, this.getSize = () => this.options.enabled ? (this.scrollRect = this.scrollRect ?? this.options.initialRect, this.scrollRect[this.options.horizontal ? "width" : "height"]) : (this.scrollRect = null, 0), this.getScrollOffset = () => this.options.enabled ? (this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset == "function" ? this.options.initialOffset() : this.options.initialOffset), this.scrollOffset) : (this.scrollOffset = null, 0), this.getMeasurementOptions = Nu(() => [ this.options.count, this.options.paddingStart, this.options.scrollMargin, @@ -7383,7 +7383,7 @@ var qu = class { lanes: a, laneAssignmentMode: o, gap: s - }), { key: !1 }), this.isIndexInRange = (e) => e >= 0 && e < this.options.count, this.getMeasurements = Au(() => [this.getMeasurementOptions(), this.itemSizeCacheVersion], ({ count: e, paddingStart: t, scrollMargin: n, getItemKey: r, enabled: i, lanes: a, laneAssignmentMode: o, gap: s }, c) => { + }), { key: !1 }), this.isIndexInRange = (e) => e >= 0 && e < this.options.count, this.getMeasurements = Nu(() => [this.getMeasurementOptions(), this.itemSizeCacheVersion], ({ count: e, paddingStart: t, scrollMargin: n, getItemKey: r, enabled: i, lanes: a, laneAssignmentMode: o, gap: s }, c) => { let l = this.itemSizeCache; if (!i) return this.measurementsCache = [], this._singleLaneMeasurements = null, this.itemSizeCache.clear(), this.laneAssignments.clear(), []; if (this.laneAssignments.size > e) for (let t of this.laneAssignments.keys()) t >= e && this.laneAssignments.delete(t); @@ -7413,7 +7413,7 @@ var qu = class { flat: a, items: o }; - let d = ku(o, a); + let d = Mu(o, a); return this.measurementsCache = d, d; } let d = this.measurementsCache.slice(0, u), f = Array(a).fill(void 0), p = new Float64Array(a), m = 0; @@ -7449,15 +7449,15 @@ var qu = class { }, { key: !1, debug: () => this.options.debug - }), this.calculateRange = Au(() => [ + }), this.calculateRange = Nu(() => [ this.getMeasurements(), this.getSize(), this.getScrollOffset(), this.options.lanes - ], (e, t, n, r) => e.length === 0 || t === 0 ? (this.range = null, null) : (this.range = Xu(e, t, n, r, r === 1 && this._singleLaneMeasurements !== null ? this._singleLaneMeasurements.flat : null), this.range), { + ], (e, t, n, r) => e.length === 0 || t === 0 ? (this.range = null, null) : (this.range = $u(e, t, n, r, r === 1 && this._singleLaneMeasurements !== null ? this._singleLaneMeasurements.flat : null), this.range), { key: !1, debug: () => this.options.debug - }), this.getVirtualIndexes = Au(() => { + }), this.getVirtualIndexes = Nu(() => { let e = null, t = null, n = this.calculateRange(); return n && (e = n.startIndex, t = n.endIndex), this.maybeNotify.updateDeps([ this.isScrolling, @@ -7523,7 +7523,7 @@ var qu = class { let f = !1; a ? f = this.applyScrollAdjustment(this.getTotalSize() - c) : d && (f = this.applyScrollAdjustment(s)), this.notify(f), this._retryClampedAdjustment(); } - }, this.getVirtualItems = Au(() => [this.getVirtualIndexes(), this.getMeasurements()], (e, t) => { + }, this.getVirtualItems = Nu(() => [this.getVirtualIndexes(), this.getMeasurements()], (e, t) => { let n = []; for (let r = 0, i = e.length; r < i; r++) { let i = t[e[r]]; @@ -7537,7 +7537,7 @@ var qu = class { let t = this.getMeasurements(); if (t.length === 0) return; let n = this._singleLaneMeasurements?.flat, r = this.options.lanes === 1 && n != null; - return ju(t[Ju(0, t.length - 1, r ? (e) => n[e * 2] : (e) => ju(t[e]).start, e)]); + return Pu(t[Zu(0, t.length - 1, r ? (e) => n[e * 2] : (e) => Pu(t[e]).start, e)]); }, this.getMaxScrollOffset = () => { if (!this.scrollElement) return 0; if ("scrollHeight" in this.scrollElement) return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight; @@ -7650,7 +7650,7 @@ var qu = class { } applyScrollAdjustment(e, t) { if (e === 0) return !1; - if (Fu() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) return this._iosDeferredAdjustment += e, !1; + if (Ru() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) return this._iosDeferredAdjustment += e, !1; { let n = this.getScrollOffset() + this.scrollAdjustments + e, r = this.scrollElement, i = r !== null && ("scrollHeight" in r || "document" in r) ? this.getMaxScrollOffset() : null; return this._clampedAdjustment = i !== null && n > i + .5 ? { @@ -7674,7 +7674,7 @@ var qu = class { return; } let e = this.scrollState.index == null ? void 0 : this.getOffsetForIndex(this.scrollState.index, this.scrollState.align), t = e ? e[0] : this.scrollState.lastTargetOffset, n = t !== this.scrollState.lastTargetOffset; - if (!n && Mu(t, this.getScrollOffset())) { + if (!n && Fu(t, this.getScrollOffset())) { if (this.scrollState.stableFrames++, this.scrollState.stableFrames >= 1) { this.getScrollOffset() !== t && this._scrollToOffset(t, { adjustments: void 0, @@ -7691,7 +7691,7 @@ var qu = class { } this.scheduleScrollReconcile(); } -}, Ju = (e, t, n, r) => { +}, Zu = (e, t, n, r) => { for (; e <= t;) { let i = (e + t) / 2 | 0, a = n(i); if (a < r) e = i + 1; @@ -7700,7 +7700,7 @@ var qu = class { } return e > 0 ? e - 1 : 0; }; -function Yu(e, t, n) { +function Qu(e, t, n) { let r = 0; for (; r <= t;) { let i = (r + t) / 2 | 0, a = e[i * 2]; @@ -7710,21 +7710,21 @@ function Yu(e, t, n) { } return r > 0 ? r - 1 : 0; } -function Xu(e, t, n, r, i) { +function $u(e, t, n, r, i) { let a = e.length - 1; if (e.length <= r) return { startIndex: 0, endIndex: a }; if (r === 1 && i !== null) { - let e = Yu(i, a, n), r = e, o = n + t; + let e = Qu(i, a, n), r = e, o = n + t; for (; r < a && i[r * 2] + i[r * 2 + 1] < o;) r++; return { startIndex: e, endIndex: r }; } - let o = Ju(0, a, (t) => e[t].start, n), s = o; + let o = Zu(0, a, (t) => e[t].start, n), s = o; if (r === 1) for (; s < a && e[s].end < n + t;) s++; else if (r > 1) { let i = Array(r).fill(0); @@ -7745,34 +7745,34 @@ function Xu(e, t, n, r, i) { }; } // node_modules/@tanstack/vue-virtual/dist/esm/index.js -function Zu(e) { - let t = new qu(Z(e)), n = mr(t), r = t._didMount(); - return or(() => Z(e).getScrollElement(), (e) => { +function ed(e) { + let t = new Xu(Z(e)), n = _r(t), r = t._didMount(); + return lr(() => Z(e).getScrollElement(), (e) => { e && t._willUpdate(); - }, { immediate: !0 }), or(() => Z(e), (e) => { + }, { immediate: !0 }), lr(() => Z(e), (e) => { t.setOptions({ ...e, onChange: (t, r) => { var i; - dr(n), (i = e.onChange) == null || i.call(e, t, r); + mr(n), (i = e.onChange) == null || i.call(e, t, r); } - }), t._willUpdate(), dr(n); - }, { immediate: !0 }), cr(r), n; + }), t._willUpdate(), mr(n); + }, { immediate: !0 }), dr(r), n; } -function Qu(e) { - return Zu(K(() => ({ - observeElementRect: zu, - observeElementOffset: Uu, - scrollToFn: Gu, +function td(e) { + return ed(K(() => ({ + observeElementRect: Hu, + observeElementOffset: Ku, + scrollToFn: Ju, ...Z(e) }))); } // ui/vue/grid/useGridVirtualRows.ts -function $u(e, t = 0) { +function nd(e, t = 0) { let n = Number(Z(e)); return Number.isFinite(n) ? n : t; } -function ed(e = [], t = 1) { +function rd(e = [], t = 1) { let n = Array.isArray(e) ? e : [], r = Math.max(1, Number(t) || 1), i = []; for (let e = 0; e < n.length; e += r) i.push({ index: Math.floor(e / r), @@ -7780,22 +7780,22 @@ function ed(e = [], t = 1) { }); return i; } -function td(e = [], t = 0, n = 1) { +function id(e = [], t = 0, n = 1) { let r = Array.isArray(e) ? e : [], i = Math.max(1, Number(n) || 1), a = Math.max(0, Number(t) || 0) * i; return r.slice(a, a + i); } -function nd({ scrollRef: e, items: t, rows: n, columnCount: r, estimateRowHeight: i, overscan: a = 8, enabled: o = !0, measure: s = Wu } = {}) { +function ad({ scrollRef: e, items: t, rows: n, columnCount: r, estimateRowHeight: i, overscan: a = 8, enabled: o = !0, measure: s = qu } = {}) { let c = K(() => { if (!Z(o)) return 0; let e = Z(n); if (Array.isArray(e)) return e.length; - let i = Z(t) || [], a = Math.max(1, $u(r, 1)); + let i = Z(t) || [], a = Math.max(1, nd(r, 1)); return Math.ceil((Array.isArray(i) ? i.length : 0) / a); - }), l = Qu(K(() => ({ + }), l = td(K(() => ({ count: c.value, getScrollElement: () => Z(e) || null, - estimateSize: () => Math.max(1, $u(i, 120)), - overscan: Math.max(0, $u(a, 8)), + estimateSize: () => Math.max(1, nd(i, 120)), + overscan: Math.max(0, nd(a, 8)), measureElement: s }))); return { @@ -7815,27 +7815,27 @@ function nd({ scrollRef: e, items: t, rows: n, columnCount: r, estimateRowHeight groupKey: String(n?.groupKey || "") }; }); - let i = Z(t) || [], a = Math.max(1, $u(r, 1)); + let i = Z(t) || [], a = Math.max(1, nd(r, 1)); return l.value.getVirtualItems().map((e) => ({ key: e.key, index: e.index, virtual: e, - items: td(i, e.index, a), + items: id(i, e.index, a), kind: "assets", title: "", groupKey: "" })); }), totalSize: K(() => l.value.getTotalSize()), - getRowItems: (e) => td(Z(t) || [], e, $u(r, 1)) + getRowItems: (e) => id(Z(t) || [], e, nd(r, 1)) }; } // ui/vue/grid/useInfiniteTrigger.ts -function rd(e, t = !0) { +function od(e, t = !0) { let n = Z(e); return n == null ? t : !!n; } -function id({ rootRef: e, enabled: t = !0, canLoad: n = !0, loadMore: r, rootMargin: i = "900px", threshold: a = .01 } = {}) { +function sd({ rootRef: e, enabled: t = !0, canLoad: n = !0, loadMore: r, rootMargin: i = "900px", threshold: a = .01 } = {}) { let o = Q(null), s = null, c = !1; function l() { try { @@ -7846,7 +7846,7 @@ function id({ rootRef: e, enabled: t = !0, canLoad: n = !0, loadMore: r, rootMar s = null; } async function u() { - if (!c && rd(t, !0) && rd(n, !0) && typeof r == "function") { + if (!c && od(t, !0) && od(n, !0) && typeof r == "function") { c = !0; try { await r(); @@ -7866,7 +7866,7 @@ function id({ rootRef: e, enabled: t = !0, canLoad: n = !0, loadMore: r, rootMar threshold: a }), s.observe(t)); } - return Yn() && (Zn(d), ar(l), or(() => [Z(e), o.value], () => d(), { flush: "post" })), { + return Qn() && (er(d), cr(l), lr(() => [Z(e), o.value], () => d(), { flush: "post" })), { sentinelRef: o, connect: d, disconnect: l, @@ -7874,48 +7874,48 @@ function id({ rootRef: e, enabled: t = !0, canLoad: n = !0, loadMore: r, rootMar }; } // ui/vue/grid/useGridDisplayAssets.ts -var ad = ["_mjrNameCollisionCount", "_mjrNameCollisionPaths"]; -function od(e) { - let t = gi(e?.filename); +var cd = ["_mjrNameCollisionCount", "_mjrNameCollisionPaths"]; +function ld(e) { + let t = yi(e?.filename); return t ? `${String(e?.source || e?.type || "").trim().toLowerCase()}|${String(e?.root_id || e?.custom_root_id || "").trim().toLowerCase()}|${String(e?.subfolder || "").trim().toLowerCase()}|${t}` : ""; } -function sd(e) { +function ud(e) { return !!e; } -function cd(e, t, n) { - _r(e)?.[t] !== n && (e[t] = n); -} -function ld(e, t) { - let n = _r(e); - n && Object.prototype.hasOwnProperty.call(n, t) && delete e[t]; -} -function ud(e, t) { - if (!Array.isArray(e) || e.length !== t.length) return !1; - for (let n = 0; n < t.length; n++) if (_r(e[n]) !== _r(t[n])) return !1; - return !0; -} -function dd(e) { - cd(e, "_mjrNameCollision", !1); - for (let t of ad) ld(e, t); - cd(e, "_mjrDupStack", !1), cd(e, "_mjrDupMembers", null), cd(e, "_mjrDupCount", 0); +function dd(e, t, n) { + br(e)?.[t] !== n && (e[t] = n); } function fd(e, t) { - for (let t of ad) ld(e, t); - cd(e, "_mjrNameCollision", !1), cd(e, "_mjrDupStack", !0), ud(_r(e)?._mjrDupMembers, t) || (e._mjrDupMembers = t.slice()), cd(e, "_mjrDupCount", t.length), yi(e, t); + let n = br(e); + n && Object.prototype.hasOwnProperty.call(n, t) && delete e[t]; } -function pd(e, { collapseDuplicates: t = !0 } = {}) { +function pd(e, t) { + if (!Array.isArray(e) || e.length !== t.length) return !1; + for (let n = 0; n < t.length; n++) if (br(e[n]) !== br(t[n])) return !1; + return !0; +} +function md(e) { + dd(e, "_mjrNameCollision", !1); + for (let t of cd) fd(e, t); + dd(e, "_mjrDupStack", !1), dd(e, "_mjrDupMembers", null), dd(e, "_mjrDupCount", 0); +} +function hd(e, t) { + for (let t of cd) fd(e, t); + dd(e, "_mjrNameCollision", !1), dd(e, "_mjrDupStack", !0), pd(br(e)?._mjrDupMembers, t) || (e._mjrDupMembers = t.slice()), dd(e, "_mjrDupCount", t.length), Si(e, t); +} +function gd(e, { collapseDuplicates: t = !0 } = {}) { let n = Array.isArray(e) ? e : []; if (!t) { let e = []; - for (let t of n) t && (dd(t), e.push(t)); + for (let t of n) t && (md(t), e.push(t)); return e; } let r = /* @__PURE__ */ new Map(), i = []; for (let e of n) { if (!e) continue; - let t = od(e); + let t = ld(e); if (!t) { - dd(e), i.push(e); + md(e), i.push(e); continue; } let n = r.get(t); @@ -7923,16 +7923,16 @@ function pd(e, { collapseDuplicates: t = !0 } = {}) { } for (let e of r.values()) { let t = e[0]; - for (let n of e) (n !== t || e.length < 2) && dd(n); - e.length >= 2 && fd(t, e); + for (let n of e) (n !== t || e.length < 2) && md(n); + e.length >= 2 && hd(t, e); } return i; } -function md(e) { +function _d(e) { let t = Array.isArray(e) ? e : [], n = [], r = /* @__PURE__ */ new Set(); for (let e of t) { if (!e || typeof e != "object") continue; - let t = { ..._r(e) }; + let t = { ...br(e) }; delete t._mjrDupMembers, delete t._mjrDupStack, delete t._mjrDupCount, delete t._mjrDupHidden, delete t._mjrNameCollision, delete t._mjrNameCollisionCount, delete t._mjrNameCollisionPaths; let i = String(t.id ?? ""); if (i) { @@ -7944,7 +7944,7 @@ function md(e) { return n; } // ui/vue/components/grid/VirtualAssetGridHost.vue?vue&type=script&setup=true&lang.ts -var hd = { +var vd = { key: 0, class: "mjr-grid-loading-overlay", style: { @@ -7959,19 +7959,19 @@ var hd = { background: "rgba(20,22,28,0.55)", "backdrop-filter": "blur(2px)" } -}, gd = { style: { width: "100%" } }, _d = { style: { +}, yd = { style: { width: "100%" } }, bd = { style: { "margin-top": "10px", "font-size": "12px", opacity: "0.68", "text-align": "center" -} }, vd = ["data-index"], yd = [ +} }, xd = ["data-index"], Sd = [ "aria-expanded", "title", "onClick" -], bd = { +], Cd = { class: "mjr-grid-group-separator-chevron", "aria-hidden": "true" -}, xd = { class: "mjr-grid-group-separator-title" }, Sd = [ +}, wd = { class: "mjr-grid-group-separator-title" }, Td = [ "data-mjr-asset-id", "data-mjr-filename-key", "data-mjr-ext", @@ -7987,21 +7987,21 @@ var hd = { "onMousedown", "onClick", "onDblclick" -], Cd = { +], Ed = { key: 3, style: { display: "flex", "flex-direction": "column", width: "100%" } -}, wd = [ +}, Dd = [ "aria-expanded", "title", "onClick" -], Td = { +], Od = { class: "mjr-grid-group-separator-chevron", "aria-hidden": "true" -}, Ed = { class: "mjr-grid-group-separator-title" }, Dd = [ +}, kd = { class: "mjr-grid-group-separator-title" }, Ad = [ "data-mjr-asset-id", "data-mjr-filename-key", "data-mjr-ext", @@ -8017,7 +8017,7 @@ var hd = { "onMousedown", "onClick", "onDblclick" -], Od = 501, kd = /* @__PURE__ */ tr({ +], jd = 501, Md = /* @__PURE__ */ ir({ __name: "VirtualAssetGridHost", props: { scrollElement: { default: null }, @@ -8042,23 +8042,23 @@ var hd = { default: !0 } }, - setup(e, { expose: n }) { - let r = e, i = Q(null), o = Q(1024); + setup(e, { expose: t }) { + let n = e, i = Q(null), a = Q(1024); Q(!0); - let s = Q(0), c = Q(0), l = /* @__PURE__ */ new WeakMap(), u = 0, d = 0, f = 0, p = 0, m = 0, h = /* @__PURE__ */ new Map(), g = null, _ = null; - function v() { - return g ||= import("./chunks/viewerOpenRequest-WOJE90Gn.js").then((e) => e.n), g; - } + let o = Q(0), s = Q(0), c = /* @__PURE__ */ new WeakMap(), d = 0, f = 0, p = 0, m = 0, h = 0, g = /* @__PURE__ */ new Map(), _ = null, v = null; function y() { - return _ ||= import("./chunks/floatingViewerManager-B_I-SRbd.js").then((e) => e.n), _; + return _ ||= import("./chunks/viewerOpenRequest-WOJE90Gn.js").then((e) => e.n), _; } - function b(e) { + function b() { + return v ||= import("./chunks/floatingViewerManager-D_aLLeau.js").then((e) => e.n), v; + } + function S(e) { return (Array.isArray(e) ? e : []).slice().sort((e, t) => { let n = Number(e?.mtime || e?.created_at || 0) || 0; return (Number(t?.mtime || t?.created_at || 0) || 0) - n; }); } - Xn("mjrStackService", { + $n("mjrStackService", { openStackGroup: async (e) => { let t = i.value; if (!t || !e) return; @@ -8068,15 +8068,15 @@ var hd = { t._mjrStackMembersCache ||= /* @__PURE__ */ new Map(); let a = t._mjrStackMembersCache.get(r); if (!Array.isArray(a)) { - let e = h.get(r); - e || (e = Pe(Ve(n, { limit: Od }), { timeoutMs: 3e4 }).finally(() => { - h.delete(r); - }), h.set(r, e)); + let e = g.get(r); + e || (e = Ie(pe(n, { limit: jd }), { timeoutMs: 3e4 }).finally(() => { + g.delete(r); + }), g.set(r, e)); let i = await e; if (i?.ok && Array.isArray(i?.data)) a = i.data, t._mjrStackMembersCache.set(r, a); else return; } - let o = b(a); + let o = S(a); t.dispatchEvent(new CustomEvent(B.OPEN_STACK_GROUP, { bubbles: !0, detail: { @@ -8090,7 +8090,7 @@ var hd = { openDupGroup: (e) => { let t = i.value; if (!t || !e) return; - let n = md(Array.isArray(e._mjrDupMembers) ? e._mjrDupMembers : [e]); + let n = _d(Array.isArray(e._mjrDupMembers) ? e._mjrDupMembers : [e]); t.dispatchEvent(new CustomEvent(B.OPEN_STACK_GROUP, { bubbles: !0, detail: { @@ -8102,28 +8102,28 @@ var hd = { })); } }); - let { state: x, selectedIdSet: S, setLoadingMessage: C, clearLoadingMessage: w, setStatusMessage: T, clearStatusMessage: E, resetAssets: D, setSelection: O, reconcileSelection: k, getSelectedAssets: A, getActiveAsset: ee } = Lc(); - function M(e) { + let { state: C, selectedIdSet: w, setLoadingMessage: T, clearLoadingMessage: E, setStatusMessage: D, clearStatusMessage: O, resetAssets: k, setSelection: A, reconcileSelection: j, getSelectedAssets: M, getActiveAsset: N } = Bc(); + function te(e) { return e ? typeof e == "object" && "value" in e ? e.value || null : e : null; } - let N = K(() => M(r.scrollElement)); + let P = K(() => te(n.scrollElement)); function ne() { - return su(i.value); + return uu(i.value); } - function P(e, { align: t = "auto" } = {}) { - let n = String(e || "").trim(); - if (!n) return; - let i = (Array.isArray(Se.value) ? Se.value : []).findIndex((e) => String(e?.id || "") === n); + function re(e, { align: t = "auto" } = {}) { + let r = String(e || "").trim(); + if (!r) return; + let i = (Array.isArray(Ce.value) ? Ce.value : []).findIndex((e) => String(e?.id || "") === r); if (!(i < 0)) { - if (r.virtualize) { - let e = Math.floor(i / Math.max(1, Be.value)); + if (n.virtualize) { + let e = Math.floor(i / Math.max(1, He.value)); try { Qe.value.scrollToIndex(e, { align: t }); } catch (e) { console.debug?.(e); } } else try { - x.cardElements.get(n)?.scrollIntoView?.({ + C.cardElements.get(r)?.scrollIntoView?.({ block: "nearest", inline: "nearest" }); @@ -8132,28 +8132,28 @@ var hd = { } } } - function re() { - return Vc(i.value, N.value); + function ie() { + return Wc(i.value, P.value); } - let I = Du({ + let F = Au({ gridContainerRef: i, - state: x, - setLoadingMessage: C, - clearLoadingMessage: w, - setStatusMessage: T, - clearStatusMessage: E, - resetAssets: D, - setSelection: O, - reconcileSelection: k, - readScrollElement: () => N.value, + state: C, + setLoadingMessage: T, + clearLoadingMessage: E, + setStatusMessage: D, + clearStatusMessage: O, + resetAssets: k, + setSelection: A, + reconcileSelection: j, + readScrollElement: () => P.value, readRenderedCards: ne, - scrollToAssetId: P, - canLoadMore: re - }), { sentinelRef: ie } = id({ - rootRef: N, + scrollToAssetId: re, + canLoadMore: ie + }), { sentinelRef: I } = sd({ + rootRef: P, enabled: !0, - canLoad: K(() => !x.loading && !x.done && re()), - loadMore: () => I.loadNextPage(), + canLoad: K(() => !C.loading && !C.done && ie()), + loadMore: () => F.loadNextPage(), rootMargin: "900px" }); function ae(e) { @@ -8165,7 +8165,7 @@ var hd = { return n >= 0 ? t.slice(0, n).toLowerCase() : t.toLowerCase(); } function se(e) { - return S.value.has(String(e?.id || "")); + return w.value.has(String(e?.id || "")); } function ce(e) { return String(e?.kind || "").toLowerCase() === "folder"; @@ -8174,7 +8174,7 @@ var hd = { return String(e?.kind || "").toLowerCase() === "workflow"; } function ue() { - return String(we.value || "").trim().toLowerCase() === "workflow"; + return String(Te.value || "").trim().toLowerCase() === "workflow"; } function de(e) { let t = String(e || "none").trim().toLowerCase(); @@ -8189,24 +8189,24 @@ var hd = { for (let e = 0; e < t.length; e += 1) n = (n << 5) - n + t.charCodeAt(e), n |= 0; return `hsl(${Math.abs(n) % 360}deg 68% 60%)`; } - function pe(e, t) { + function me(e, t) { return !e || typeof e != "object" ? "Ungrouped" : t === "task" ? String(e?.task || e?.workflow_task || "").trim() || "Task: Unknown" : t === "model" ? String(e?.model_family || e?.workflow_model_family || e?.workflow_model || e?.model || "").trim() || "Model: Unknown" : t === "category" ? String(e?.category || e?.subfolder || e?.workflow_category || "").trim() || "Category: Uncategorized" : "Ungrouped"; } - function me(e, t) { + function he(e, t) { return (Array.isArray(e) ? e : []).slice().sort((e, n) => { - let r = pe(e, t).toLowerCase(), i = pe(n, t).toLowerCase(); + let r = me(e, t).toLowerCase(), i = me(n, t).toLowerCase(); if (r < i) return -1; if (r > i) return 1; let a = Number(e?.mtime || e?.created_at || 0) || 0; return (Number(n?.mtime || n?.created_at || 0) || 0) - a; }); } - function he(e, t, n) { - let r = me(e, n), i = []; + function ge(e, t, n) { + let r = he(e, n), i = []; if (!r.length) return i; let a = /* @__PURE__ */ new Map(); for (let e of r) { - let t = le(e) ? pe(e, n) : "Other"; + let t = le(e) ? me(e, n) : "Other"; a.has(t) || a.set(t, []), a.get(t).push(e); } let o = Array.from(a.keys()); @@ -8231,102 +8231,102 @@ var hd = { } return i; } - function ge(e) { + function _e(e) { let t = i.value; return !t || String(t.dataset?.mjrGroupStacks || "") !== "1" ? !1 : !!String(e?.stack_id || "").trim() && Number(e?.stack_asset_count || 0) > 1; } - function _e(e) { + function ve(e) { return e?._mjrLivePlaceholder === !0 || e?.is_live_placeholder === !0 || String(e?.id || "").trim().toLowerCase().startsWith("live:"); } - function ve() { - let e = i.value; - if (!e) return; - let t = new Set((Array.isArray(x.selectedIds) ? x.selectedIds : []).map((e) => String(e || "").trim()).filter(Boolean)); - ut(e, t, x.activeId || ""); - try { - t.size ? e.dataset.mjrSelectedAssetId = String(x.activeId || Array.from(t)[0] || "") : delete e.dataset.mjrSelectedAssetId; - } catch (e) { - console.debug?.(e); - } - } function ye() { let e = i.value; if (!e) return; - let t = Array.isArray(x.selectedIds) ? x.selectedIds.slice() : [], n = String(x.activeId || ""), a = `${t.join("|")}::${n}`; - if (a === ye._lastSelectionKey) return; - ye._lastSelectionKey = a; + let t = new Set((Array.isArray(C.selectedIds) ? C.selectedIds : []).map((e) => String(e || "").trim()).filter(Boolean)); + pt(e, t, C.activeId || ""); + try { + t.size ? e.dataset.mjrSelectedAssetId = String(C.activeId || Array.from(t)[0] || "") : delete e.dataset.mjrSelectedAssetId; + } catch (e) { + console.debug?.(e); + } + } + function be() { + let e = i.value; + if (!e) return; + let t = Array.isArray(C.selectedIds) ? C.selectedIds.slice() : [], r = String(C.activeId || ""), a = `${t.join("|")}::${r}`; + if (a === be._lastSelectionKey) return; + be._lastSelectionKey = a; let o = { selectedIds: t, - activeId: n, - selectedAssets: A() + activeId: r, + selectedAssets: M() }; try { e.dispatchEvent(new CustomEvent("mjr:selection-changed", { detail: o })); } catch (e) { console.debug?.(e); } - if (r.emitWindowSelectionEvents) try { + if (n.emitWindowSelectionEvents) try { window.dispatchEvent(new CustomEvent("mjr:selection-changed", { detail: o })); } catch (e) { console.debug?.(e); } } - ye._lastSelectionKey = ""; - let be = Q(""), xe = K(() => pd(x.assets, { collapseDuplicates: be.value !== "similar" })), Se = K(() => (Array.isArray(xe.value) ? xe.value : []).filter((e) => sd(e))), Ce = Q(/* @__PURE__ */ new Set()), we = Q(""), Te = K(() => { - s.value; + be._lastSelectionKey = ""; + let xe = Q(""), Se = K(() => gd(C.assets, { collapseDuplicates: xe.value !== "similar" })), Ce = K(() => (Array.isArray(Se.value) ? Se.value : []).filter((e) => ud(e))), we = Q(/* @__PURE__ */ new Set()), Te = Q(""), Ee = K(() => { + o.value; let e = de(R.WORKFLOW_GRID_GROUP_BY); - return e === "none" || we.value !== "workflow" ? "none" : e; - }), Ee = K(() => { - let e = Array.isArray(Se.value) ? Se.value : []; + return e === "none" || Te.value !== "workflow" ? "none" : e; + }), De = K(() => { + let e = Array.isArray(Ce.value) ? Ce.value : []; if (!e.length) return []; - let t = Te.value; - return t === "none" ? [] : he(e, Be.value, t); + let t = Ee.value; + return t === "none" ? [] : ge(e, He.value, t); }); - or(() => `${Te.value}::${Ee.value.map((e) => `${e.kind}:${e.groupKey}`).join("|")}`, () => { - if (Te.value === "none") { - Ce.value = /* @__PURE__ */ new Set(); + lr(() => `${Ee.value}::${De.value.map((e) => `${e.kind}:${e.groupKey}`).join("|")}`, () => { + if (Ee.value === "none") { + we.value = /* @__PURE__ */ new Set(); return; } - let e = /* @__PURE__ */ new Set(), t = Ce.value; - for (let n of Ee.value) { + let e = /* @__PURE__ */ new Set(), t = we.value; + for (let n of De.value) { if (n?.kind !== "header") continue; let r = String(n.groupKey || ""); r && t.has(r) && e.add(r); } - Ce.value = e; + we.value = e; }, { immediate: !0 }); - function De(e) { - let t = String(e || ""); - return t ? Ce.value.has(t) : !1; - } function Oe(e) { let t = String(e || ""); - if (!t) return; - let n = new Set(Ce.value); - n.has(t) ? n.delete(t) : n.add(t), Ce.value = n; + return t ? we.value.has(t) : !1; } - function ke(e) { + function Ae(e) { + let t = String(e || ""); + if (!t) return; + let n = new Set(we.value); + n.has(t) ? n.delete(t) : n.add(t), we.value = n; + } + function je(e) { let t = String(e?.groupKey || e?.title || ""), n = 0; for (let e = 0; e < t.length; e += 1) n = (n << 5) - n + t.charCodeAt(e) | 0; return `mjr-grid-group-separator--accent-${Math.abs(n) % 8}`; } - let Ae = K(() => { - let e = Array.isArray(Se.value) ? Se.value : []; + let Me = K(() => { + let e = Array.isArray(Ce.value) ? Ce.value : []; if (!e.length) return []; - if (Te.value === "none") return ed(e, Be.value); - let t = Array.isArray(Ee.value) ? Ee.value : [], n = []; - for (let e of t) e?.kind === "header" ? n.push(e) : De(String(e?.groupKey || "")) || n.push(e); + if (Ee.value === "none") return rd(e, He.value); + let t = Array.isArray(De.value) ? De.value : [], n = []; + for (let e of t) e?.kind === "header" ? n.push(e) : Oe(String(e?.groupKey || "")) || n.push(e); return n; }); - function je() { + function Ne() { let e = i.value; if (!e) return; let t = { - count: Array.isArray(Se.value) ? Se.value.length : 0, - total: Number(x.total || 0) || 0 + count: Array.isArray(Ce.value) ? Ce.value.length : 0, + total: Number(C.total || 0) || 0 }; try { - e.dataset.mjrShown = String(t.count), e.dataset.mjrTotal = String(t.total), e.dataset.mjrHiddenPngSiblings = String(Number(x.hiddenPngSiblings || 0) || 0); + e.dataset.mjrShown = String(t.count), e.dataset.mjrTotal = String(t.total), e.dataset.mjrHiddenPngSiblings = String(Number(C.hiddenPngSiblings || 0) || 0); } catch (e) { console.debug?.(e); } @@ -8336,36 +8336,36 @@ var hd = { console.debug?.(e); } } - function Me(e) { + function Pe(e) { if (!e?.id) return; - let t = (Array.isArray(x.assets) ? x.assets : []).find((t) => String(t?.id || "") === String(e.id)); + let t = (Array.isArray(C.assets) ? C.assets : []).find((t) => String(t?.id || "") === String(e.id)); if (t) try { t.rating = e.rating, t.tags = e.tags; } catch (e) { console.debug?.(e); } } - function Ne() { + function Fe() { try { window.dispatchEvent(new CustomEvent("mjr:open-sidebar", { detail: { tab: "details" } })); } catch (e) { console.debug?.(e); } } - function Fe(e, t = 6) { - let n = x.cardElements.get(e); + function Le(e, t = 6) { + let n = C.cardElements.get(e); if (n) try { n.focus?.({ preventScroll: !0 }); } catch (e) { console.debug?.(e); } - else t <= 0 || requestAnimationFrame(() => Fe(e, t - 1)); - } - function Ie(e) { - let t = e?.detail || {}, n = String(t.assetId ?? t.id ?? "").trim(); - n && (Array.isArray(Se.value) ? Se.value : []).some((e) => String(e?.id || "") === n) && (O([n], n), ve(), ye(), P(n, { align: "center" }), setTimeout(() => Fe(n), 0)); + else t <= 0 || requestAnimationFrame(() => Le(e, t - 1)); } function Re(e) { + let t = e?.detail || {}, n = String(t.assetId ?? t.id ?? "").trim(); + n && (Array.isArray(Ce.value) ? Ce.value : []).some((e) => String(e?.id || "") === n) && (A([n], n), ye(), be(), re(n, { align: "center" }), setTimeout(() => Le(n), 0)); + } + function Be(e) { if (!e) return; e._mjrSelectionManagedByVue = !0; try { @@ -8378,139 +8378,139 @@ var hd = { } catch (e) { console.debug?.(e); } - ri(e, { applySettingsClasses: r.applyDefaultSettingsClasses }); + oi(e, { applySettingsClasses: n.applyDefaultSettingsClasses }); try { - gt = ws(e); + gt = Ds(e); } catch (e) { console.debug?.(e), gt = null; } - e._mjrPrimaryPointerSelectionUnbind = () => {}, e._mjrGetAssets = () => Array.isArray(Se.value) ? Se.value : [], e._mjrSetSelection = (e, t = "") => { - let n = O(e, t); - return ve(), ye(), n.selectedIds; + e._mjrPrimaryPointerSelectionUnbind = () => {}, e._mjrGetAssets = () => Array.isArray(Ce.value) ? Ce.value : [], e._mjrSetSelection = (e, t = "") => { + let n = A(e, t); + return ye(), be(), n.selectedIds; }; let t = (e, t = {}) => { - let n = I.removeAssets(e, t); - return je(), n; + let n = F.removeAssets(e, t); + return Ne(), n; }; e._mjrRemoveAssets = t, e._mjrGetRenderedCards = () => ne(), e._mjrScrollToAssetId = (e, t = {}) => { - P(e, t); - }, e._mjrHasAssetId = (e) => (Array.isArray(x.assets) ? x.assets : []).some((t) => String(t?.id || "") === String(e || "")), e._mjrGetGridState = () => x, e._mjrGetSelectedAssets = () => A(), e._mjrGetActiveAsset = () => ee(), e._mjrOnKeyboardAssetChanged = (e) => Me(e), e._mjrOpenKeyboardDetails = () => Ne(); - let n = () => (r.applyDefaultSettingsClasses && (ni(e), s.value += 1), I.refreshGrid()), i = () => { - I.prepareGridForScopeSwitch(), I.dispose(), x.cardElements.clear(), e._mjrGridApi = null; + re(e, t); + }, e._mjrHasAssetId = (e) => (Array.isArray(C.assets) ? C.assets : []).some((t) => String(t?.id || "") === String(e || "")), e._mjrGetGridState = () => C, e._mjrGetSelectedAssets = () => M(), e._mjrGetActiveAsset = () => N(), e._mjrOnKeyboardAssetChanged = (e) => Pe(e), e._mjrOpenKeyboardDetails = () => Fe(); + let r = () => (n.applyDefaultSettingsClasses && (ai(e), o.value += 1), F.refreshGrid()), i = () => { + F.prepareGridForScopeSwitch(), F.dispose(), C.cardElements.clear(), e._mjrGridApi = null; }; e._mjrGridApi = { - reload: (...e) => I.reload(...e), - loadAssetsFromList: (...e) => I.loadAssetsFromList(...e), - appendNextPage: (...e) => I.appendNextPage(...e), - refreshHead: (...e) => I.refreshHead(...e), - upsertRealtime: (...e) => I.upsertRealtime(...e), - upsertRealtimeNow: (...e) => I.upsertAssetNow(...e), - prepareForScopeSwitch: () => I.prepareGridForScopeSwitch(), - refreshGrid: n, - captureAnchor: () => I.captureAnchor(), - restoreAnchor: (e) => I.restoreAnchor(e), - hydrateFromSnapshot: (...e) => I.hydrateFromSnapshot(...e), + reload: (...e) => F.reload(...e), + loadAssetsFromList: (...e) => F.loadAssetsFromList(...e), + appendNextPage: (...e) => F.appendNextPage(...e), + refreshHead: (...e) => F.refreshHead(...e), + upsertRealtime: (...e) => F.upsertRealtime(...e), + upsertRealtimeNow: (...e) => F.upsertAssetNow(...e), + prepareForScopeSwitch: () => F.prepareGridForScopeSwitch(), + refreshGrid: r, + captureAnchor: () => F.captureAnchor(), + restoreAnchor: (e) => F.restoreAnchor(e), + hydrateFromSnapshot: (...e) => F.hydrateFromSnapshot(...e), removeAssets: t, dispose: i, - getCanonicalState: () => I.getCanonicalState(), - getDebugSnapshot: () => I.getDebugSnapshot() - }, e._mjrLoadAssets = (...e) => I.loadAssets(...e), e._mjrLoadAssetsFromList = (...e) => I.loadAssetsFromList(...e), e._mjrPrepareForScopeSwitch = () => I.prepareGridForScopeSwitch(), e._mjrRefreshGrid = n, e._mjrCaptureAnchor = () => I.captureAnchor(), e._mjrRestoreAnchor = (e) => I.restoreAnchor(e), e._mjrHydrateFromSnapshot = (...e) => I.hydrateFromSnapshot(...e), e._mjrUpsertAsset = (e) => I.upsertAsset(e), e._mjrUpsertAssetNow = (e) => I.upsertAssetNow(e), e._mjrGetCanonicalState = () => I.getCanonicalState(), e._mjrGetDebugSnapshot = () => I.getDebugSnapshot(), e._mjrDispose = i; + getCanonicalState: () => F.getCanonicalState(), + getDebugSnapshot: () => F.getDebugSnapshot() + }, e._mjrLoadAssets = (...e) => F.loadAssets(...e), e._mjrLoadAssetsFromList = (...e) => F.loadAssetsFromList(...e), e._mjrPrepareForScopeSwitch = () => F.prepareGridForScopeSwitch(), e._mjrRefreshGrid = r, e._mjrCaptureAnchor = () => F.captureAnchor(), e._mjrRestoreAnchor = (e) => F.restoreAnchor(e), e._mjrHydrateFromSnapshot = (...e) => F.hydrateFromSnapshot(...e), e._mjrUpsertAsset = (e) => F.upsertAsset(e), e._mjrUpsertAssetNow = (e) => F.upsertAssetNow(e), e._mjrGetCanonicalState = () => F.getCanonicalState(), e._mjrGetDebugSnapshot = () => F.getDebugSnapshot(), e._mjrDispose = i; } - or(i, (e) => { - e && (Re(e), ve(), je()); - }, { immediate: !0 }), or(() => `${(x.selectedIds || []).join("|")}::${String(x.activeId || "")}`, () => { - i.value && (ve(), ye()); - }, { flush: "post" }), or(() => `${Array.isArray(Se.value) ? Se.value.length : 0}::${Number(x.total || 0)}::${Number(x.hiddenPngSiblings || 0)}`, () => { - i.value && je(); + lr(i, (e) => { + e && (Be(e), ye(), Ne()); + }, { immediate: !0 }), lr(() => `${(C.selectedIds || []).join("|")}::${String(C.activeId || "")}`, () => { + i.value && (ye(), be()); + }, { flush: "post" }), lr(() => `${Array.isArray(Ce.value) ? Ce.value.length : 0}::${Number(C.total || 0)}::${Number(C.hiddenPngSiblings || 0)}`, () => { + i.value && Ne(); }, { flush: "post", immediate: !0 }); - function ze() { + function Ve() { let e = i.value, t = String(e?.dataset?.mjrBottomFeed || "").toLowerCase() === "true", n = Number(R.GRID_MIN_SIZE || 120) || 120; return t ? Math.max(80, Number(R.FEED_GRID_MIN_SIZE || n) || n) : ue() ? Math.max(180, n) : Math.max(80, n); } - let Be = K(() => { - s.value; - let e = Math.max(0, Number(R.GRID_GAP || 10) || 10), t = ze(), n = Number(o.value || 0) || Number(N.value?.clientWidth || 0) || 0; + let He = K(() => { + o.value; + let e = Math.max(0, Number(R.GRID_GAP || 10) || 10), t = Ve(), n = Number(a.value || 0) || Number(P.value?.clientWidth || 0) || 0; return n <= 0 ? 1 : Math.max(1, Math.floor((n + e) / (t + e))); - }), He = K(() => (Number(o.value || 0) || Number(N.value?.clientWidth || 0) || 0) > 0), Ue = K(() => (s.value, Math.max(0, Number(R.GRID_GAP || 10) || 10))), We = K(() => { - let e = Math.max(1, Be.value), t = Number(o.value || 0) || Number(N.value?.clientWidth || 0) || 0; - return t <= 0 ? ze() : Math.max(80, Math.floor((t - Ue.value * Math.max(0, e - 1)) / e)); - }), Ge = K(() => { - s.value; - let e = !!R.GRID_SHOW_DETAILS, t = We.value, n = e ? 82 : 0; - return Te.value === "none" ? t + n + Ue.value : Math.max(48, t + n + Ue.value); - }), Ke = K(() => r.virtualize ? [] : Array.isArray(Ae.value) ? Ae.value : []); - function qe(e) { - if (!d) try { - d = requestAnimationFrame(() => { - d = 0; + }), Ue = K(() => (Number(a.value || 0) || Number(P.value?.clientWidth || 0) || 0) > 0), We = K(() => (o.value, Math.max(0, Number(R.GRID_GAP || 10) || 10))), Ge = K(() => { + let e = Math.max(1, He.value), t = Number(a.value || 0) || Number(P.value?.clientWidth || 0) || 0; + return t <= 0 ? Ve() : Math.max(80, Math.floor((t - We.value * Math.max(0, e - 1)) / e)); + }), Ke = K(() => { + o.value; + let e = !!R.GRID_SHOW_DETAILS, t = Ge.value, n = e ? 82 : 0; + return Ee.value === "none" ? t + n + We.value : Math.max(48, t + n + We.value); + }), qe = K(() => n.virtualize ? [] : Array.isArray(Me.value) ? Me.value : []); + function Je(e) { + if (!f) try { + f = requestAnimationFrame(() => { + f = 0; try { - let t = typeof performance < "u" && typeof performance.now == "function" ? performance.now() : Date.now(), n = Number(e?.scrollTop || 0) || 0, r = Math.max(16, t - Number(m || t)), i = Math.abs(n - Number(p || n)) / Math.max(1, Ge.value) * (16 / r); - c.value = Math.max(0, Math.min(20, i)), p = n, m = t, f && clearTimeout(f), f = setTimeout(() => { - f = 0, c.value = 0; + let t = typeof performance < "u" && typeof performance.now == "function" ? performance.now() : Date.now(), n = Number(e?.scrollTop || 0) || 0, r = Math.max(16, t - Number(h || t)), i = Math.abs(n - Number(m || n)) / Math.max(1, Ke.value) * (16 / r); + s.value = Math.max(0, Math.min(20, i)), m = n, h = t, p && clearTimeout(p), p = setTimeout(() => { + p = 0, s.value = 0; }, 140); } catch (e) { console.debug?.(e); } }); } catch (e) { - console.debug?.(e), d = 0; + console.debug?.(e), f = 0; } } - function Je() { - if (d) { - try { - cancelAnimationFrame(d); - } catch (e) { - console.debug?.(e); - } - d = 0; - } + function Ye() { if (f) { try { - clearTimeout(f); + cancelAnimationFrame(f); } catch (e) { console.debug?.(e); } f = 0; } - c.value = 0; + if (p) { + try { + clearTimeout(p); + } catch (e) { + console.debug?.(e); + } + p = 0; + } + s.value = 0; } - let Ye = nd({ - scrollRef: N, - items: Se, - rows: Ae, - columnCount: Be, - estimateRowHeight: Ge, + let Xe = ad({ + scrollRef: P, + items: Ce, + rows: Me, + columnCount: He, + estimateRowHeight: Ke, overscan: K(() => { - let e = Math.max(1, Ge.value), t = N.value?.clientHeight || 0; + let e = Math.max(1, Ke.value), t = P.value?.clientHeight || 0; if (t <= 0) return 6; - let n = Math.ceil(t / e), r = Math.ceil(c.value * 3); + let n = Math.ceil(t / e), r = Math.ceil(s.value * 3); return Math.max(3, Math.min(30, n + r)); }), - enabled: K(() => r.virtualize) - }), Xe = Ye.rowCount, Qe = Ye.virtualizer, z = Ye.virtualRows, et = Ye.totalSize, tt = K(() => { + enabled: K(() => n.virtualize) + }), Ze = Xe.rowCount, Qe = Xe.virtualizer, z = Xe.virtualRows, et = Xe.totalSize, tt = K(() => { let e = /* @__PURE__ */ new Map(); for (let t of z.value) e.set(t.index, t.virtual || t); return e; - }), nt = K(() => (s.value, !!R.GRID_SHOW_DETAILS)), rt = K(() => { - let e = Math.max(1, Number(Be.value || 1)); + }), nt = K(() => (o.value, !!R.GRID_SHOW_DETAILS)), rt = K(() => { + let e = Math.max(1, Number(He.value || 1)); return Math.max(12, Math.min(36, e * 4)); }), it = K(() => Array.from({ length: Number(rt.value || 12) }, (e, t) => t)), at = K(() => { - let e = Math.max(80, Number(Ge.value || 0) - Number(Ue.value || 0)), t = Math.max(80, Number(We.value || 0)); + let e = Math.max(80, Number(Ke.value || 0) - Number(We.value || 0)), t = Math.max(80, Number(Ge.value || 0)); return Math.max(0, e - t); }), ot = K(() => ({ display: "grid", - gridTemplateColumns: `repeat(${Math.max(1, Number(Be.value || 1))}, minmax(0, ${Math.max(80, Number(We.value || 0))}px))`, - gap: `${Ue.value}px`, + gridTemplateColumns: `repeat(${Math.max(1, Number(He.value || 1))}, minmax(0, ${Math.max(80, Number(Ge.value || 0))}px))`, + gap: `${We.value}px`, justifyContent: "start", boxSizing: "border-box" })), st = K(() => ({ width: "100%", minWidth: "0", - height: `${Math.max(80, Number(Ge.value || 0) - Number(Ue.value || 0))}px`, + height: `${Math.max(80, Number(Ke.value || 0) - Number(We.value || 0))}px`, borderRadius: "12px", border: "1px solid rgba(255,255,255,0.22)", background: "rgba(192,198,206,0.20)", @@ -8519,7 +8519,7 @@ var hd = { boxSizing: "border-box" })), ct = K(() => ({ width: "100%", - height: `${Math.max(80, Number(We.value || 0))}px`, + height: `${Math.max(80, Number(Ge.value || 0))}px`, background: "linear-gradient(90deg, rgba(168,174,182,0.40) 0%, rgba(220,225,232,0.54) 50%, rgba(168,174,182,0.40) 100%)", backgroundSize: "220% 100%", animation: "mjr-skeleton-shimmer 2.2s ease-in-out infinite" @@ -8531,7 +8531,7 @@ var hd = { background: "linear-gradient(90deg, rgba(162,168,176,0.38) 0%, rgba(214,219,226,0.52) 50%, rgba(162,168,176,0.38) 100%)", backgroundSize: "220% 100%", animation: "mjr-skeleton-shimmer 2.2s ease-in-out infinite" - })), dt = K(() => ({ + })), ut = K(() => ({ height: "10px", margin: "0 10px 10px", borderRadius: "8px", @@ -8539,20 +8539,20 @@ var hd = { background: "linear-gradient(90deg, rgba(160,166,173,0.34) 0%, rgba(208,214,221,0.48) 50%, rgba(160,166,173,0.34) 100%)", backgroundSize: "220% 100%", animation: "mjr-skeleton-shimmer 2.2s ease-in-out infinite" - })), ft = K(() => ({ + })), dt = K(() => ({ display: nt.value ? "block" : "none", minHeight: `${Math.max(0, Number(at.value || 0))}px` })); - function pt() { - let e = Number(N.value?.clientWidth || 0) || Number(i.value?.clientWidth || 0) || 0; - e > 0 && (o.value = e); + function ft() { + let e = Number(P.value?.clientWidth || 0) || Number(i.value?.clientWidth || 0) || 0; + e > 0 && (a.value = e); } let mt = null, ht = null, gt = null, _t = !1; function vt() { let e = String(i.value?.dataset?.mjrScope || "").trim().toLowerCase(); - we.value !== e && (we.value = e); + Te.value !== e && (Te.value = e); let t = String(i.value?.dataset?.mjrViewScope || "").trim().toLowerCase(); - be.value !== t && (be.value = t); + xe.value !== t && (xe.value = t); } function yt() { Ut(); @@ -8572,9 +8572,9 @@ var hd = { 400 ]) setTimeout(e, t); } - Zn(() => { - yt(), window.addEventListener(B.VIEWER_ACTIVE_ASSET_CHANGED, Ie); - }), or(i, (e) => { + er(() => { + yt(), window.addEventListener(B.VIEWER_ACTIVE_ASSET_CHANGED, Re); + }), lr(i, (e) => { try { ht?.disconnect?.(); } catch (e) { @@ -8593,73 +8593,73 @@ var hd = { console.debug?.(e), ht = null; } } - }, { immediate: !0 }), or(N, (e, t) => { + }, { immediate: !0 }), lr(P, (e, t) => { try { mt?.disconnect?.(); } catch (e) { console.debug?.(e); } if (e) { - pt(); + ft(); try { mt = new ResizeObserver(() => { - pt(); + ft(); }), mt.observe(e); } catch (e) { console.debug?.(e), mt = null; } } - }, { immediate: !0 }), or(() => Xe.value, async () => { - He.value && (await qn(), Ct(), Wt()); - }), or(() => x.assets, async (e) => { + }, { immediate: !0 }), lr(() => Ze.value, async () => { + Ue.value && (await Xn(), Ct(), Wt()); + }), lr(() => C.assets, async (e) => { if (!Array.isArray(e) || e.length === 0) { let e = i.value; e?._mjrStackMembersCache && e._mjrStackMembersCache.clear(); } - await qn(), Ct(); + await Xn(), Ct(); }); function bt(e, t) { - let n = String(t?.filename || "").trim().toLowerCase(), r = l.get(e); + let n = String(t?.filename || "").trim().toLowerCase(), r = c.get(e); if (r && r !== n) { - let t = x.renderedFilenameMap.get(r); - t && (t.delete(e), t.size || x.renderedFilenameMap.delete(r)); + let t = C.renderedFilenameMap.get(r); + t && (t.delete(e), t.size || C.renderedFilenameMap.delete(r)); } if (!n) { - l.delete(e); + c.delete(e); return; } - let i = x.renderedFilenameMap.get(n); - i || (i = /* @__PURE__ */ new Set(), x.renderedFilenameMap.set(n, i)), i.add(e), l.set(e, n); + let i = C.renderedFilenameMap.get(n); + i || (i = /* @__PURE__ */ new Set(), C.renderedFilenameMap.set(n, i)), i.add(e), c.set(e, n); } function xt(e) { if (!e) return; - let t = l.get(e); + let t = c.get(e); if (!t) return; - let n = x.renderedFilenameMap.get(t); - n && (n.delete(e), n.size || x.renderedFilenameMap.delete(t)), l.delete(e); + let n = C.renderedFilenameMap.get(t); + n && (n.delete(e), n.size || C.renderedFilenameMap.delete(t)), c.delete(e); } function St(e) { let t = String(e || "").trim().toLowerCase(); if (!t) return; - let n = x.renderedFilenameMap.get(t); + let n = C.renderedFilenameMap.get(t); for (let e of n || []) e?.dataset?.mjrDupHidden && delete e.dataset.mjrDupHidden; } function Ct() { - for (let e of x.renderedFilenameMap.keys()) St(e); + for (let e of C.renderedFilenameMap.keys()) St(e); } function wt(e, t) { - let n = String(e?.id || "").trim(); - if (!n) return; + let r = String(e?.id || "").trim(); + if (!r) return; if (!t) { - let e = x.cardElements.get(n), t = e ? l.get(e) : ""; - xt(e), x.cardElements.delete(n), St(t); + let e = C.cardElements.get(r), t = e ? c.get(e) : ""; + xt(e), C.cardElements.delete(r), St(t); return; } let a = t?.$el ?? t; if (a instanceof HTMLElement) { - x.cardElements.set(n, a), a._mjrIsVue = !0, a._mjrAsset = e, a._mjrReactiveAsset = e, a.dataset.mjrKind = String(e?.kind || ""), bt(a, e), St(String(e?.filename || "").trim().toLowerCase()); + C.cardElements.set(r, a), a._mjrIsVue = !0, a._mjrAsset = e, a._mjrReactiveAsset = e, a.dataset.mjrKind = String(e?.kind || ""), bt(a, e), St(String(e?.filename || "").trim().toLowerCase()); try { - r.onCardRendered?.(a, e, i.value); + n.onCardRendered?.(a, e, i.value); } catch (e) { console.debug?.(e); } @@ -8700,45 +8700,45 @@ var hd = { } } if (Dt(e?.target, e?.currentTarget)) return; - let r = Array.isArray(x.assets) ? x.assets : [], i = r.findIndex((e) => String(e?.id || "") === n), a = Array.isArray(x.selectedIds) ? x.selectedIds.slice() : []; + let r = Array.isArray(C.assets) ? C.assets : [], i = r.findIndex((e) => String(e?.id || "") === n), a = Array.isArray(C.selectedIds) ? C.selectedIds.slice() : []; if (e?.shiftKey && i >= 0) { - let e = String(x.selectionAnchorId || x.activeId || n).trim(), t = r.findIndex((t) => String(t?.id || "") === e), a = t >= 0 ? t : i, o = Math.min(a, i), s = Math.max(a, i), c = r.slice(o, s + 1).map((e) => String(e?.id || "")).filter(Boolean); - O(c, n); + let e = String(C.selectionAnchorId || C.activeId || n).trim(), t = r.findIndex((t) => String(t?.id || "") === e), a = t >= 0 ? t : i, o = Math.min(a, i), s = Math.max(a, i), c = r.slice(o, s + 1).map((e) => String(e?.id || "")).filter(Boolean); + A(c, n); } else if (e?.ctrlKey || e?.metaKey) { let e = new Set(a.map(String)); e.has(n) ? e.delete(n) : e.add(n); let t = Array.from(e); - O(t, e.has(n) ? n : t[0] || ""); + A(t, e.has(n) ? n : t[0] || ""); } else { - O([n], n); + A([n], n); try { - x.cardElements.get(n)?.focus?.({ preventScroll: !0 }); + C.cardElements.get(n)?.focus?.({ preventScroll: !0 }); } catch (e) { console.debug?.(e); } - ue() && le(t) && y().then((e) => e?.floatingViewerManager?.isGraphModeVisible?.() ? Pt(t) : null).catch((e) => console.debug?.(e)); + ue() && le(t) && b().then((e) => e?.floatingViewerManager?.isGraphModeVisible?.() ? Nt(t) : null).catch((e) => console.debug?.(e)); } } function At(e, t) { if (Number(e?.button ?? 0) !== 0) return; let n = String(t?.id || "").trim(); if (!n) return; - let r = Array.isArray(x.selectedIds) ? x.selectedIds.map(String).filter(Boolean) : []; + let r = Array.isArray(C.selectedIds) ? C.selectedIds.map(String).filter(Boolean) : []; r.includes(n) && r.length > 1 && !e?.ctrlKey && !e?.metaKey && !e?.shiftKey ? (Ot.assetId = n, Ot.at = Date.now()) : (Ot.assetId = n, Ot.at = Date.now(), kt(e, t)); } - async function Mt(e) { - let t = (Array.isArray(x.assets) ? x.assets : []).filter((e) => !ce(e)), n = t.findIndex((t) => String(t?.id || "") === String(e?.id || "")); + async function jt(e) { + let t = (Array.isArray(C.assets) ? C.assets : []).filter((e) => !ce(e)), n = t.findIndex((t) => String(t?.id || "") === String(e?.id || "")); if (!t.length || n < 0) return; - let { requestViewerOpen: r } = await v(); + let { requestViewerOpen: r } = await y(); r({ assets: t, index: n }); } - function Nt(e, t = null) { + function Mt(e, t = null) { let n = String(e?.id || "").trim(); if (!n) return; - let r = x.cardElements.get(n); + let r = C.cardElements.get(n); if (r instanceof HTMLElement) try { let e = r.getBoundingClientRect(), n = Number(t?.clientX || t?.pageX || e.right - 8) || 0, i = Number(t?.clientY || t?.pageY || e.top + 10) || 0, a = new MouseEvent("contextmenu", { bubbles: !0, @@ -8752,13 +8752,13 @@ var hd = { console.debug?.(e); } } - async function Pt(e, { select: t = !1 } = {}) { + async function Nt(e, { select: t = !1 } = {}) { try { let n = String(e?.id || "").trim(); - t && n && O([n], n); + t && n && A([n], n); let r = String(e?.filepath || e?.path || e?.full_path || "").trim(), i = e; if (r) try { - let t = await Le(r, { timeoutMs: 25e3 }), n = t?.data?.workflow || t?.workflow || null, a = t?.data?.prompt || t?.prompt || null; + let t = await ze(r, { timeoutMs: 25e3 }), n = t?.data?.workflow || t?.workflow || null, a = t?.data?.prompt || t?.prompt || null; (n || a) && (i = { ...e, workflow: n || e?.workflow, @@ -8772,28 +8772,28 @@ var hd = { } catch (e) { console.debug?.(e); } - let { floatingViewerManager: a } = await y(); + let { floatingViewerManager: a } = await b(); await a.openAssets({ assets: [i], index: 0, mode: "graph" }); } catch (e) { - console.debug?.(e), Ne(); + console.debug?.(e), Fe(); } } async function Ft(e, t) { let n = String(e?.type || "").trim().toLowerCase(); if (n && String(t?.kind || "").toLowerCase() === "workflow") { if (n === "load") await It(t); - else if (n === "inspect") await Pt(t, { select: !0 }); + else if (n === "inspect") await Nt(t, { select: !0 }); else if (n === "favorite") { let e = !!t.favorite, n = !e; try { t.favorite = n; let e = String(t?.filepath || t?.path || t?.full_path || "").trim(); if (!e) throw Error("Missing workflow filepath"); - let r = await j({ + let r = await ee({ filepath: e, favorite: n }, { timeoutMs: 12e3 }); @@ -8806,37 +8806,37 @@ var hd = { } })); } catch (n) { - console.debug?.(n), t.favorite = e, F(L("toast.workflowFavoriteFailed", "Failed to update workflow favorite."), "error"); + console.debug?.(n), t.favorite = e, x(L("toast.workflowFavoriteFailed", "Failed to update workflow favorite."), "error"); } - } else n === "menu" && Nt(t, e?.event || null); + } else n === "menu" && Mt(t, e?.event || null); } } async function It(e) { let t = String(e?.filepath || e?.path || e?.full_path || "").trim(); if (!t) { - F(L("toast.workflowMissingPath", "Workflow file path is missing."), "error"); + x(L("toast.workflowMissingPath", "Workflow file path is missing."), "error"); return; } - let n = $e(); - if (a(n) === !0 && !await jt(L("dialog.workflowLoadReplaceDirty", "Current canvas has unsaved changes. Replace it with this workflow?"), L("tab.workflow", "Workflow"))) return; - let r = await Le(t, { timeoutMs: 3e4 }), i = r?.data?.workflow || r?.workflow || null; - if (!r?.ok || !i || typeof i != "object") F(r?.error || L("toast.workflowLoadFailed", "Failed to load workflow."), "error"); - else if (!te(i, n).ok) F(L("toast.workflowImportUnavailable", "ComfyUI workflow import is unavailable in this frontend."), "error"); + let n = l(); + if (ke(n) === !0 && !await Pt(L("dialog.workflowLoadReplaceDirty", "Current canvas has unsaved changes. Replace it with this workflow?"), L("tab.workflow", "Workflow"))) return; + let r = await ze(t, { timeoutMs: 3e4 }), i = r?.data?.workflow || r?.workflow || null; + if (!r?.ok || !i || typeof i != "object") x(r?.error || L("toast.workflowLoadFailed", "Failed to load workflow."), "error"); + else if (!u(i, n).ok) x(L("toast.workflowImportUnavailable", "ComfyUI workflow import is unavailable in this frontend."), "error"); else { try { - await Ze({ filepath: t }, { timeoutMs: 1e4 }); + await $e({ filepath: t }, { timeoutMs: 1e4 }); } catch (e) { console.debug?.(e); } - F(L("toast.workflowLoaded", "Workflow loaded"), "success", 1800); + x(L("toast.workflowLoaded", "Workflow loaded"), "success", 1800); } } function Lt(e) { try { - if (typeof r.onCardDblclick == "function") { - r.onCardDblclick({ + if (typeof n.onCardDblclick == "function") { + n.onCardDblclick({ asset: e, - assets: Array.isArray(x.assets) ? x.assets : [], + assets: Array.isArray(C.assets) ? C.assets : [], gridContainer: i.value }); return; @@ -8852,24 +8852,24 @@ var hd = { } catch (e) { console.debug?.(e); } - else String(e?.kind || "").toLowerCase() === "workflow" ? It(e) : Mt(e); + else String(e?.kind || "").toLowerCase() === "workflow" ? It(e) : jt(e); } - async function Rt({ asset: e, folderPath: n }) { - let r = String(e?.filepath || "").trim(); - if (r && n) try { - let e = await t({ + async function Rt({ asset: e, folderPath: t }) { + let n = String(e?.filepath || "").trim(); + if (n && t) try { + let e = await r({ op: "move_file", - path: r, - destination: n + path: n, + destination: t }); - e?.ok ? (F("Moved to folder", "success"), I.reload()) : F(e?.error || "Failed to move file", "error"); + e?.ok ? (x("Moved to folder", "success"), F.reload()) : x(e?.error || "Failed to move file", "error"); } catch (e) { - F(e?.message || "Failed to move file", "error"); + x(e?.message || "Failed to move file", "error"); } } let zt = null, Bt = null, Vt = 0, Ht = ""; function Ut() { - pt(); + ft(); try { Qe.value?.measure?.(); } catch (e) { @@ -8877,9 +8877,9 @@ var hd = { } } function Wt() { - if (!u) try { - u = requestAnimationFrame(() => { - u = 0; + if (!d) try { + d = requestAnimationFrame(() => { + d = 0; try { Qe.value?.measure?.(); } catch (e) { @@ -8887,7 +8887,7 @@ var hd = { } }); } catch (e) { - console.debug?.(e), u = 0; + console.debug?.(e), d = 0; try { Qe.value?.measure?.(); } catch (e) { @@ -8905,9 +8905,9 @@ var hd = { }, 150); } function Kt(e) { - if (!e || !r.virtualize) return () => {}; + if (!e || !n.virtualize) return () => {}; let t = () => { - qe(e); + Je(e); }; e.addEventListener("scroll", t, { passive: !0 }); try { @@ -8925,10 +8925,10 @@ var hd = { } catch (e) { console.debug?.(e); } - Je(); + Ye(); }; } - or(N, (e) => { + lr(P, (e) => { try { zt?.(); } catch (e) { @@ -8948,25 +8948,25 @@ var hd = { } } async function Jt() { - if (!r.virtualize || !He.value || x.loading || x.done) return; - let e = N.value; + if (!n.virtualize || !Ue.value || C.loading || C.done) return; + let e = P.value; if (!e) return; - let t = Array.isArray(x.assets) ? x.assets.length : 0, n = `${t}::${Be.value}`; - if (!Bt && !(n === Ht && Date.now() - Vt < 500) && (await qn(), (Number(e.scrollHeight || 0) || 0) <= qt(e) + 40)) { + let t = Array.isArray(C.assets) ? C.assets.length : 0, r = `${t}::${He.value}`; + if (!Bt && !(r === Ht && Date.now() - Vt < 500) && (await Xn(), (Number(e.scrollHeight || 0) || 0) <= qt(e) + 40)) { let e = t; - Bt = Promise.resolve(I.loadNextPage()).catch((e) => console.debug?.(e)).finally(() => { - let t = Array.isArray(x.assets) ? x.assets.length : 0; - Vt = Date.now(), Ht = t === e ? n : "", Bt = null, setTimeout(() => { + Bt = Promise.resolve(F.loadNextPage()).catch((e) => console.debug?.(e)).finally(() => { + let t = Array.isArray(C.assets) ? C.assets.length : 0; + Vt = Date.now(), Ht = t === e ? r : "", Bt = null, setTimeout(() => { Jt(); }, 0); }); } } - or(() => `${Array.isArray(x.assets) ? x.assets.length : 0}::${Be.value}::${x.loading}::${x.done}`, () => { + lr(() => `${Array.isArray(C.assets) ? C.assets.length : 0}::${He.value}::${C.loading}::${C.done}`, () => { Jt(); }, { flush: "post" }); function Yt(e) { - if (e && r.virtualize) try { + if (e && n.virtualize) try { Qe.value.measureElement(e); } catch (e) { console.debug?.(e); @@ -8974,9 +8974,9 @@ var hd = { } function Xt() { return { - width: `${We.value}px`, - flex: `0 0 ${We.value}px`, - minWidth: `${We.value}px` + width: `${Ge.value}px`, + flex: `0 0 ${Ge.value}px`, + minWidth: `${Ge.value}px` }; } function Zt(e) { @@ -8991,27 +8991,27 @@ var hd = { transform: `translateY(${Number(t?.start || 0)}px)`, width: "100%", display: "flex", - gap: `${Ue.value}px`, - paddingBottom: `${Ue.value}px`, + gap: `${We.value}px`, + paddingBottom: `${We.value}px`, boxSizing: "border-box" }; } function $t() { return { display: "flex", - gap: `${Ue.value}px`, - paddingBottom: `${Ue.value}px`, + gap: `${We.value}px`, + paddingBottom: `${We.value}px`, boxSizing: "border-box" }; } function en() { - s.value += 1, r.applyDefaultSettingsClasses && i.value && ni(i.value); + o.value += 1, n.applyDefaultSettingsClasses && i.value && ai(i.value); } - return or(() => r.applyDefaultSettingsClasses, () => { - i.value && r.applyDefaultSettingsClasses && ni(i.value); - }, { immediate: !0 }), ar(() => { + return lr(() => n.applyDefaultSettingsClasses, () => { + i.value && n.applyDefaultSettingsClasses && ai(i.value); + }, { immediate: !0 }), cr(() => { try { - window.removeEventListener(B.VIEWER_ACTIVE_ASSET_CHANGED, Ie); + window.removeEventListener(B.VIEWER_ACTIVE_ASSET_CHANGED, Re); } catch (e) { console.debug?.(e); } @@ -9041,13 +9041,13 @@ var hd = { console.debug?.(e); } try { - u && cancelAnimationFrame(u); + d && cancelAnimationFrame(d); } catch (e) { console.debug?.(e); } - u = 0, Je(); + d = 0, Ye(); try { - I.dispose(); + F.dispose(); } catch (e) { console.debug?.(e); } @@ -9067,62 +9067,62 @@ var hd = { } catch (e) { console.debug?.(e); } - }), or(i, (e) => { + }), lr(i, (e) => { e && (_t ||= (window.addEventListener("mjr-settings-changed", en), window.addEventListener("mjr:keepalive-attached", Gt), !0)); - }, { immediate: !0 }), n({ + }, { immediate: !0 }), t({ get gridContainer() { return i.value; }, get assets() { - return Array.isArray(x.assets) ? x.assets : []; + return Array.isArray(C.assets) ? C.assets : []; }, loadAssets(...e) { - return I.loadAssets(...e); + return F.loadAssets(...e); }, loadAssetsFromList(...e) { - return I.loadAssetsFromList(...e); + return F.loadAssetsFromList(...e); }, loadNextPage(...e) { - return I.loadNextPage(...e); + return F.loadNextPage(...e); }, appendNextPage(...e) { - return I.appendNextPage(...e); + return F.appendNextPage(...e); }, refreshHead(...e) { - return I.refreshHead(...e); + return F.refreshHead(...e); }, upsertRealtime(...e) { - return I.upsertRealtime(...e); + return F.upsertRealtime(...e); }, prepareGridForScopeSwitch(...e) { - return I.prepareGridForScopeSwitch(...e); + return F.prepareGridForScopeSwitch(...e); }, refreshGrid(...e) { - return I.refreshGrid(...e); + return F.refreshGrid(...e); }, removeAssets(...e) { - return I.removeAssets(...e); + return F.removeAssets(...e); }, upsertAsset(...e) { - return I.upsertAsset(...e); + return F.upsertAsset(...e); }, getCanonicalState(...e) { - return I.getCanonicalState(...e); + return F.getCanonicalState(...e); }, getDebugSnapshot(...e) { - return I.getDebugSnapshot(...e); + return F.getDebugSnapshot(...e); }, captureAnchor(...e) { - return I.captureAnchor(...e); + return F.captureAnchor(...e); }, restoreAnchor(...e) { - return I.restoreAnchor(...e); + return F.restoreAnchor(...e); }, hydrateFromSnapshot(...e) { - return I.hydrateFromSnapshot(...e); + return F.hydrateFromSnapshot(...e); }, dispose() { - return I.dispose(); + return F.dispose(); } }), (t, n) => (q(), Y("div", { ref_key: "gridContainerRef", @@ -9135,27 +9135,27 @@ var hd = { "min-height": "100%" } }, [ - Z(x).loading && !Z(x).assets.length ? (q(), Y("div", hd, [H("div", gd, [H("div", { + Z(C).loading && !Z(C).assets.length ? (q(), Y("div", vd, [H("div", yd, [H("div", { class: "mjr-grid-skeleton-layout", - style: fr(ot.value) - }, [(q(!0), Y(V, null, $n(it.value, (e) => (q(), Y("div", { + style: hr(ot.value) + }, [(q(!0), Y(V, null, nr(it.value, (e) => (q(), Y("div", { key: `sk-${e}`, class: "mjr-grid-skeleton-card", - style: fr(st.value) + style: hr(st.value) }, [H("div", { class: "mjr-grid-skeleton-thumb mjr-grid-skeleton-shimmer", - style: fr(ct.value) - }, null, 4), H("div", { style: fr(ft.value) }, [H("div", { + style: hr(ct.value) + }, null, 4), H("div", { style: hr(dt.value) }, [H("div", { class: "mjr-grid-skeleton-line mjr-grid-skeleton-line--title mjr-grid-skeleton-shimmer", - style: fr(lt.value) + style: hr(lt.value) }, null, 4), H("div", { class: "mjr-grid-skeleton-line mjr-grid-skeleton-line--meta mjr-grid-skeleton-shimmer", - style: fr(dt.value) - }, null, 4)], 4)], 4))), 128))], 4), H("div", _d, J(Z(x).loadingMessage || "Loading assets..."), 1)])])) : W("", !0), - Z(x).statusMessage && !Z(x).assets.length && !Z(x).loading ? (q(), Y("div", { + style: hr(ut.value) + }, null, 4)], 4)], 4))), 128))], 4), H("div", bd, J(Z(C).loadingMessage || "Loading assets..."), 1)])])) : W("", !0), + Z(C).statusMessage && !Z(C).assets.length && !Z(C).loading ? (q(), Y("div", { key: 1, class: "mjr-grid-message", - style: fr({ + style: hr({ position: "absolute", inset: "0", zIndex: 3, @@ -9167,41 +9167,41 @@ var hd = { pointerEvents: "none", fontSize: "14px", lineHeight: "1.4", - color: Z(x).statusError ? "var(--error-text, #f44336)" : "var(--muted-text, #bdbdbd)", + color: Z(C).statusError ? "var(--error-text, #f44336)" : "var(--muted-text, #bdbdbd)", background: "rgba(0, 0, 0, 0.35)" }) - }, J(Z(x).statusMessage), 5)) : W("", !0), + }, J(Z(C).statusMessage), 5)) : W("", !0), e.virtualize ? (q(), Y("div", { key: 2, - style: fr({ + style: hr({ height: `${Z(et)}px`, position: "relative", width: "100%", gridColumn: "1 / -1" }) - }, [(q(!0), Y(V, null, $n(Z(z), (e) => (q(), Y("div", { + }, [(q(!0), Y(V, null, nr(Z(z), (e) => (q(), Y("div", { key: e.key, ref_for: !0, ref: Yt, "data-index": e.index, - style: fr(Qt(e.index)) + style: hr(Qt(e.index)) }, [e.kind === "header" ? (q(), Y("button", { key: 0, type: "button", - class: X(["mjr-grid-group-separator", ke(e)]), - "aria-expanded": De(e.groupKey) ? "false" : "true", - title: `${De(e.groupKey) ? "Open" : "Close"} group`, - onClick: (t) => Oe(e.groupKey) - }, [H("span", bd, [H("i", { class: X(["pi", De(e.groupKey) ? "pi-chevron-down" : "pi-chevron-up"]) }, null, 2)]), H("span", xd, J(e.title), 1)], 10, yd)) : e.items.length ? (q(!0), Y(V, { key: 1 }, $n(e.items, (e) => (q(), Y(V, { key: String(e.id) }, [ce(e) ? (q(), Jn(Fc, { + class: X(["mjr-grid-group-separator", je(e)]), + "aria-expanded": Oe(e.groupKey) ? "false" : "true", + title: `${Oe(e.groupKey) ? "Open" : "Close"} group`, + onClick: (t) => Ae(e.groupKey) + }, [H("span", Cd, [H("i", { class: X(["pi", Oe(e.groupKey) ? "pi-chevron-down" : "pi-chevron-up"]) }, null, 2)]), H("span", wd, J(e.title), 1)], 10, Sd)) : e.items.length ? (q(!0), Y(V, { key: 1 }, nr(e.items, (e) => (q(), Y(V, { key: String(e.id) }, [ce(e) ? (q(), Zn(Rc, { key: 0, ref_for: !0, ref: Et(e), asset: e, selected: se(e), - style: fr(Xt()), - onMousedown: rr((t) => At(t, e), ["left"]), + style: hr(Xt()), + onMousedown: or((t) => At(t, e), ["left"]), onClick: (t) => kt(t, e), - onDblclick: rr((t) => Lt(e), ["stop"]), + onDblclick: or((t) => Lt(e), ["stop"]), onDropAsset: Rt }, null, 8, [ "asset", @@ -9216,50 +9216,50 @@ var hd = { ref: Et(e), class: X(["mjr-asset-card mjr-card", { "is-selected": se(e), - "mjr-live-placeholder": _e(e) + "mjr-live-placeholder": ve(e) }]), role: "button", tabindex: "0", draggable: "true", - style: fr(Xt()), + style: hr(Xt()), "data-mjr-asset-id": String(e.id ?? ""), "data-mjr-filename-key": String(e.filename || "").toLowerCase(), "data-mjr-ext": ae(e), "data-mjr-stem": oe(e), "data-mjr-kind": String(e.kind || ""), - "data-mjr-live-placeholder": _e(e) ? "true" : void 0, - "data-mjr-stacked": ge(e) ? "true" : void 0, - "data-mjr-stack-count": ge(e) ? String(e.stack_asset_count || 0) : void 0, + "data-mjr-live-placeholder": ve(e) ? "true" : void 0, + "data-mjr-stacked": _e(e) ? "true" : void 0, + "data-mjr-stack-count": _e(e) ? String(e.stack_asset_count || 0) : void 0, "data-mjr-dup-stacked": e._mjrDupStack ? "true" : void 0, "data-mjr-dup-count": e._mjrDupStack ? String(e._mjrDupCount || 0) : void 0, "aria-label": `Asset ${e.filename || ""}`, "aria-selected": se(e) ? "true" : "false", - onMousedown: rr((t) => At(t, e), ["left"]), + onMousedown: or((t) => At(t, e), ["left"]), onClick: (t) => kt(t, e), - onDblclick: rr((t) => Lt(e), ["stop"]) - }, [U(jc, { + onDblclick: or((t) => Lt(e), ["stop"]) + }, [U(Pc, { asset: e, onWorkflowAction: (t) => Ft(t, e) - }, null, 8, ["asset", "onWorkflowAction"])], 46, Sd))], 64))), 128)) : W("", !0)], 12, vd))), 128))], 4)) : (q(), Y("div", Cd, [(q(!0), Y(V, null, $n(Ke.value, (e) => (q(), Y("div", { + }, null, 8, ["asset", "onWorkflowAction"])], 46, Td))], 64))), 128)) : W("", !0)], 12, xd))), 128))], 4)) : (q(), Y("div", Ed, [(q(!0), Y(V, null, nr(qe.value, (e) => (q(), Y("div", { key: `${e.kind || "assets"}-${e.groupKey || ""}-${e.index ?? ""}`, - style: fr($t()) + style: hr($t()) }, [e.kind === "header" ? (q(), Y("button", { key: 0, type: "button", - class: X(["mjr-grid-group-separator", ke(e)]), - "aria-expanded": De(e.groupKey) ? "false" : "true", - title: `${De(e.groupKey) ? "Open" : "Close"} group`, - onClick: (t) => Oe(e.groupKey) - }, [H("span", Td, [H("i", { class: X(["pi", De(e.groupKey) ? "pi-chevron-down" : "pi-chevron-up"]) }, null, 2)]), H("span", Ed, J(e.title), 1)], 10, wd)) : (q(!0), Y(V, { key: 1 }, $n(e.items, (e) => (q(), Y(V, { key: String(e.id) }, [ce(e) ? (q(), Jn(Fc, { + class: X(["mjr-grid-group-separator", je(e)]), + "aria-expanded": Oe(e.groupKey) ? "false" : "true", + title: `${Oe(e.groupKey) ? "Open" : "Close"} group`, + onClick: (t) => Ae(e.groupKey) + }, [H("span", Od, [H("i", { class: X(["pi", Oe(e.groupKey) ? "pi-chevron-down" : "pi-chevron-up"]) }, null, 2)]), H("span", kd, J(e.title), 1)], 10, Dd)) : (q(!0), Y(V, { key: 1 }, nr(e.items, (e) => (q(), Y(V, { key: String(e.id) }, [ce(e) ? (q(), Zn(Rc, { key: 0, ref_for: !0, ref: Et(e), asset: e, selected: se(e), - style: fr(Xt()), - onMousedown: rr((t) => At(t, e), ["left"]), + style: hr(Xt()), + onMousedown: or((t) => At(t, e), ["left"]), onClick: (t) => kt(t, e), - onDblclick: rr((t) => Lt(e), ["stop"]), + onDblclick: or((t) => Lt(e), ["stop"]), onDropAsset: Rt }, null, 8, [ "asset", @@ -9274,34 +9274,34 @@ var hd = { ref: Et(e), class: X(["mjr-asset-card mjr-card", { "is-selected": se(e), - "mjr-live-placeholder": _e(e) + "mjr-live-placeholder": ve(e) }]), role: "button", tabindex: "0", draggable: "true", - style: fr(Xt()), + style: hr(Xt()), "data-mjr-asset-id": String(e.id ?? ""), "data-mjr-filename-key": String(e.filename || "").toLowerCase(), "data-mjr-ext": ae(e), "data-mjr-stem": oe(e), "data-mjr-kind": String(e.kind || ""), - "data-mjr-live-placeholder": _e(e) ? "true" : void 0, - "data-mjr-stacked": ge(e) ? "true" : void 0, - "data-mjr-stack-count": ge(e) ? String(e.stack_asset_count || 0) : void 0, + "data-mjr-live-placeholder": ve(e) ? "true" : void 0, + "data-mjr-stacked": _e(e) ? "true" : void 0, + "data-mjr-stack-count": _e(e) ? String(e.stack_asset_count || 0) : void 0, "data-mjr-dup-stacked": e._mjrDupStack ? "true" : void 0, "data-mjr-dup-count": e._mjrDupStack ? String(e._mjrDupCount || 0) : void 0, "aria-label": `Asset ${e.filename || ""}`, "aria-selected": se(e) ? "true" : "false", - onMousedown: rr((t) => At(t, e), ["left"]), + onMousedown: or((t) => At(t, e), ["left"]), onClick: (t) => kt(t, e), - onDblclick: rr((t) => Lt(e), ["stop"]) - }, [U(jc, { + onDblclick: or((t) => Lt(e), ["stop"]) + }, [U(Pc, { asset: e, onWorkflowAction: (t) => Ft(t, e) - }, null, 8, ["asset", "onWorkflowAction"])], 46, Dd))], 64))), 128))], 4))), 128))])), + }, null, 8, ["asset", "onWorkflowAction"])], 46, Ad))], 64))), 128))], 4))), 128))])), H("div", { ref_key: "infiniteSentinelRef", - ref: ie, + ref: I, "aria-hidden": "true", style: { height: "1px", @@ -9312,14 +9312,14 @@ var hd = { }, null, 512) ], 512)); } -}), Ad = 240, jd = 120, Md = 80, Nd = null, Pd = null; -function Fd() { - return Nd ||= import("./chunks/viewerOpenRequest-WOJE90Gn.js").then((e) => e.n), Nd; +}), Nd = 240, Pd = 120, Fd = 80, Id = null, Ld = null; +function Rd() { + return Id ||= import("./chunks/viewerOpenRequest-WOJE90Gn.js").then((e) => e.n), Id; } -function Id() { - return Pd ||= import("./chunks/floatingViewerManager-B_I-SRbd.js").then((e) => e.n), Pd; +function zd() { + return Ld ||= import("./chunks/floatingViewerManager-D_aLLeau.js").then((e) => e.n), Ld; } -function Ld(e) { +function Bd(e) { let t = document.createElement("button"); t.type = "button", t.className = "mjr-asset-card mjr-card mjr-feed-group-member-card", t.style.cssText = "display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;min-height:110px;padding:8px;border:1px solid var(--mjr-border,#444);border-radius:8px;background:var(--mjr-surface,#202020);color:inherit;text-align:left;overflow:hidden;"; try { @@ -9330,7 +9330,7 @@ function Ld(e) { let n = document.createElement("div"); return n.className = "mjr-feed-group-member-name", n.style.cssText = "font-size:11px;font-weight:600;line-height:1.3;word-break:break-word;", n.textContent = String(e?.filename || "Asset"), t.appendChild(n), t; } -function Rd(e) { +function Vd(e) { try { if (typeof e?._mjrGetRenderedCards == "function") { let t = e._mjrGetRenderedCards(); @@ -9345,11 +9345,11 @@ function Rd(e) { return console.debug?.(e), []; } } -function zd(e, t, n = "") { +function Hd(e, t, n = "") { let r = Array.isArray(t) ? t.map(String).filter(Boolean) : []; - return dt(e, r, { activeId: n || r[0] || "" }, Rd); + return mt(e, r, { activeId: n || r[0] || "" }, Vd); } -function Bd(e) { +function Ud(e) { let t = e?.grid; if (!t) return; let n = (e) => { @@ -9365,16 +9365,16 @@ function Bd(e) { } catch (e) { console.debug?.(e); } - let a = Rd(t), o = a.indexOf(n), s = yt(t); + let a = Vd(t), o = a.indexOf(n), s = St(t); if (e.shiftKey && o >= 0) { let n = Number.isFinite(Number(t._mjrLastSelectedIndex)) ? Number(t._mjrLastSelectedIndex) : o, r = Math.min(n, o), s = Math.max(n, o), c = a.slice(r, s + 1).map((e) => String(e?.dataset?.mjrAssetId || "").trim()).filter(Boolean); - zd(t, c, i), t._mjrLastSelectedIndex = o, e.preventDefault(), e.stopPropagation(); + Hd(t, c, i), t._mjrLastSelectedIndex = o, e.preventDefault(), e.stopPropagation(); } else if (e.ctrlKey || e.metaKey) { s.has(i) ? s.delete(i) : s.add(i); let n = Array.from(s); - zd(t, n, s.has(i) ? i : n[0] || ""), o >= 0 && (t._mjrLastSelectedIndex = o), e.preventDefault(), e.stopPropagation(); + Hd(t, n, s.has(i) ? i : n[0] || ""), o >= 0 && (t._mjrLastSelectedIndex = o), e.preventDefault(), e.stopPropagation(); } else { - zd(t, [i], i), o >= 0 && (t._mjrLastSelectedIndex = o); + Hd(t, [i], i), o >= 0 && (t._mjrLastSelectedIndex = o); try { n.focus?.({ preventScroll: !0 }); } catch (e) { @@ -9391,23 +9391,23 @@ function Bd(e) { } }; } -var Vd = { +var Wd = { hosts: /* @__PURE__ */ new Set(), pendingAssets: /* @__PURE__ */ new Map() }; -function Hd(e) { - if (!R.EXECUTION_GROUPING_ENABLED) return rf(e); +function Gd(e) { + if (!R.EXECUTION_GROUPING_ENABLED) return sf(e); let t = String(e?.stack_id || "").trim(); if (t) return `stack:${t}`; let n = String(e?.job_id || "").trim(); - return n ? `job:${n}` : rf(e); + return n ? `job:${n}` : sf(e); } -function Ud(e) { +function Kd(e) { let t = /* @__PURE__ */ new Map(); for (let n of Array.isArray(e) ? e : []) { - let e = of(n); + let e = lf(n); if (!e) continue; - let r = Hd(e), i = t.get(r); + let r = Gd(e), i = t.get(r); i || (i = { key: r, members: [] @@ -9432,16 +9432,16 @@ function Ud(e) { return (Number(t?.mtime || t?.created_at || 0) || 0) - n; }), n; } -function Wd(e) { +function qd(e) { return Array.from(e?.assetsByKey?.values?.() || []); } -function Gd(e) { +function Jd(e) { return String(e ?? "").trim().toLowerCase(); } -function Kd(e) { +function Yd(e) { return e?._mjrLivePlaceholder === !0 || e?.is_live_placeholder === !0 || String(e?.id || "").trim().toLowerCase().startsWith("live:"); } -function qd(e) { +function Xd(e) { if (!e || typeof e != "object") return e; try { delete e._mjrLivePlaceholder, delete e._mjrLiveStatus, delete e._mjrLiveLabel, delete e.is_live_placeholder; @@ -9450,19 +9450,19 @@ function qd(e) { } return e; } -function Jd(e) { +function Zd(e) { if (!e || typeof e != "object") return ""; - let t = Gd(e?.type || e?.source || "output"), n = Gd(e?.root_id || e?.custom_root_id || ""), r = Gd(e?.subfolder || ""), i = Gd(e?.filename || ""); + let t = Jd(e?.type || e?.source || "output"), n = Jd(e?.root_id || e?.custom_root_id || ""), r = Jd(e?.subfolder || ""), i = Jd(e?.filename || ""); if (i) return `${t}|${n}|${r}|${i}`; - let a = Gd(e?.filepath || e?.path || e?.fullpath || e?.full_path || ""); + let a = Jd(e?.filepath || e?.path || e?.fullpath || e?.full_path || ""); return a ? `${t}|${n}|path|${a}` : ""; } -function Yd(e, t) { - let n = of(t); +function Qd(e, t) { + let n = lf(t); if (!e || typeof e.set != "function" || !n) return null; - let r = rf(n), i = Jd(n), a = ""; + let r = sf(n), i = Zd(n), a = ""; if (i) { - for (let [t, n] of e.entries()) if (Jd(n) === i) { + for (let [t, n] of e.entries()) if (Zd(n) === i) { a = t; break; } @@ -9471,17 +9471,17 @@ function Yd(e, t) { ...o, ...n } : n; - return Kd(n) || qd(s), a && a !== r && e.delete(a), e.set(r, s), s; + return Yd(n) || Xd(s), a && a !== r && e.delete(a), e.set(r, s), s; } -function Xd(e, t) { - return e ? (e.assetsByKey ||= /* @__PURE__ */ new Map(), Yd(e.assetsByKey, t)) : null; +function $d(e, t) { + return e ? (e.assetsByKey ||= /* @__PURE__ */ new Map(), Qd(e.assetsByKey, t)) : null; } -function Zd(e) { +function ef(e) { e?.grid && e.loaded && (e._renderTimer ||= setTimeout(() => { - e._renderTimer = null, nf(e); - }, Md)); + e._renderTimer = null, of(e); + }, Fd)); } -function Qd(e, t, n = 0) { +function tf(e, t, n = 0) { let r = Array.isArray(t?._mjrFeedGroupAssets) ? t._mjrFeedGroupAssets.filter(Boolean) : [t].filter(Boolean); if (!r.length) return; let i = Math.max(0, Math.min(n, r.length - 1)), a = r[i] || null, o = String(a?.id || "").trim(); @@ -9491,14 +9491,14 @@ function Qd(e, t, n = 0) { } catch (e) { console.debug?.(e); } - zd(e.grid, [o], o); + Hd(e.grid, [o], o); } - Fd().then((e) => e.requestViewerOpen({ + Rd().then((e) => e.requestViewerOpen({ assets: r, index: i })).catch((e) => console.debug?.(e)); } -function $d(e, t) { +function nf(e, t) { let n = document.createElement("div"); n.className = "mjr-popover mjr-feed-group-popover", n.style.cssText = "display:none; width:min(440px, 92vw); padding:10px;"; let r = document.createElement("div"); @@ -9507,14 +9507,14 @@ function $d(e, t) { i.className = "mjr-feed-group-popover-grid", i.style.cssText = "display:grid; grid-template-columns:repeat(auto-fill, minmax(110px, 1fr)); gap:8px; max-height:360px; overflow-y:auto; overscroll-behavior:contain;"; let a = Array.isArray(t?._mjrFeedGroupAssets) ? t._mjrFeedGroupAssets : []; for (let r = 0; r < a.length; r += 1) { - let o = a[r], s = Ld(o); + let o = a[r], s = Bd(o); s.classList.add("mjr-feed-group-member-card"), r === 0 && s.classList.add("mjr-feed-group-member-card--cover"), s.addEventListener("click", (i) => { - i.preventDefault(), i.stopPropagation(), e.popoverManager?.close?.(n), Qd(e, t, r); + i.preventDefault(), i.stopPropagation(), e.popoverManager?.close?.(n), tf(e, t, r); }), i.appendChild(s); } return n.appendChild(i), e.root.appendChild(n), n; } -function ef(e, t, n) { +function rf(e, t, n) { if (!t || !n) return; let r = Number(n?._mjrFeedGroupCount || 0) || 0; if (r <= 1 || (t.dataset.mjrFeedGrouped = "true", t.dataset.mjrFeedGroupCount = String(r), t.dataset.mjrStacked = "true", t.dataset.mjrStackCount = String(r), t.querySelector(".mjr-feed-group-button"))) return; @@ -9523,20 +9523,20 @@ function ef(e, t, n) { let a = document.createElement("span"); a.className = "mjr-feed-group-button-icon pi pi-clone", i.appendChild(a); let o = document.createElement("span"); - o.className = "mjr-feed-group-button-count", o.textContent = String(r), i.appendChild(o), i.style.cssText = "position:absolute; top:34px; right:6px; z-index:11;", go(i); - let s = $d(e, n); + o.className = "mjr-feed-group-button-count", o.textContent = String(r), i.appendChild(o), i.style.cssText = "position:absolute; top:34px; right:6px; z-index:11;", yo(i); + let s = nf(e, n); i.addEventListener("click", (t) => { t.preventDefault(), t.stopPropagation(), e.popoverManager?.toggle?.(s, i); }), t.appendChild(i); } -function tf(e, t) { +function af(e, t) { let n = new Map((Array.isArray(t) ? t : []).map((e) => [String(e?.id || "").trim(), e]).filter(([e]) => !!e)); - for (let t of Rd(e?.grid)) { + for (let t of Vd(e?.grid)) { let r = String(t?.dataset?.mjrAssetId || "").trim(), i = n.get(r); - i && ef(e, t, i); + i && rf(e, t, i); } } -async function nf(e) { +async function of(e) { if (!e?.grid) return; try { e.popoverManager?.closeAll?.(); @@ -9549,19 +9549,19 @@ async function nf(e) { } catch (e) { console.debug?.(e); } - let t = Ud(Wd(e)), n = await si(e.grid, t, { + let t = Kd(qd(e)), n = await ui(e.grid, t, { title: L("bottomFeed.title", "Generated Feed"), reset: !0 }); - tf(e, t), Number(n?.count || 0) <= 0 ? (e.empty.textContent = L("bottomFeed.empty", "No generated assets yet."), e.empty.style.display = "") : e.empty.style.display = "none"; + af(e, t), Number(n?.count || 0) <= 0 ? (e.empty.textContent = L("bottomFeed.empty", "No generated assets yet."), e.empty.style.display = "") : e.empty.style.display = "none"; } -function rf(e) { +function sf(e) { let t = String(e?.id || "").trim(); if (t) return `id:${t}`; let n = String(e?.filename || "").trim(), r = String(e?.subfolder || "").trim(); return `file:${String(e?.source || e?.type || "").trim()}:${r}:${n}`; } -function af(e) { +function cf(e) { let t = String(e || "").split(".").pop()?.toUpperCase() ?? "", n = /* @__PURE__ */ new Set([ "MP4", "WEBM", @@ -9588,63 +9588,63 @@ function af(e) { ]); return n.has(t) ? "video" : r.has(t) ? "audio" : i.has(t) ? "model3d" : "image"; } -function of(e) { +function lf(e) { if (!e || typeof e != "object") return null; let t = { ...e }; - return !t.type && t.source && (t.type = t.source), !t.source && t.type && (t.source = t.type), t.kind ||= af(t.ext || t.filename || ""), t; + return !t.type && t.source && (t.type = t.source), !t.source && t.type && (t.source = t.type), t.kind ||= cf(t.ext || t.filename || ""), t; } -function sf(e) { - let t = of(e); +function uf(e) { + let t = lf(e); if (!t) return null; - let n = rf(t); + let n = sf(t); if (!n) return null; - let r = Jd(t), i = null; - if (r) for (let [e, t] of Vd.pendingAssets.entries()) e !== n && Jd(t) === r && (i = t, Vd.pendingAssets.delete(e)); - let a = Vd.pendingAssets.get(n) || i || null, o = a ? { + let r = Zd(t), i = null; + if (r) for (let [e, t] of Wd.pendingAssets.entries()) e !== n && Zd(t) === r && (i = t, Wd.pendingAssets.delete(e)); + let a = Wd.pendingAssets.get(n) || i || null, o = a ? { ...a, ...t } : t; - if (Kd(t) || qd(o), Vd.pendingAssets.set(n, o), Vd.pendingAssets.size > 64) { - let e = Vd.pendingAssets.keys().next().value; - e && Vd.pendingAssets.delete(e); + if (Yd(t) || Xd(o), Wd.pendingAssets.set(n, o), Wd.pendingAssets.size > 64) { + let e = Wd.pendingAssets.keys().next().value; + e && Wd.pendingAssets.delete(e); } return o; } -function cf() { - return Array.from(Vd.pendingAssets.values()); +function df() { + return Array.from(Wd.pendingAssets.values()); } -async function lf(e) { +async function ff(e) { if (e?.grid) { e.empty.style.display = "none", e.empty.textContent = L("bottomFeed.loading", "Loading recent assets..."); try { e.assetsByKey = /* @__PURE__ */ new Map(); let t = [], n = 0; - for (; n < Ad;) { - let r = qe({ + for (; n < Nd;) { + let r = Ge({ q: "*", - limit: Math.min(jd, Ad - n), + limit: Math.min(Pd, Nd - n), offset: n, scope: "output", sort: "mtime_desc", includeTotal: n === 0 - }), i = await Pe(r, { timeoutMs: 3e4 }); + }), i = await Ie(r, { timeoutMs: 3e4 }); if (!i?.ok) throw Error(String(i?.error || "Failed to load feed assets")); let a = Array.isArray(i?.data?.assets) ? i.data.assets : []; if (!a.length) break; for (let n of a) { - let r = Xd(e, n); + let r = $d(e, n); r && t.push(r); } - if (a.length < jd) break; + if (a.length < Pd) break; n += a.length; } - for (let t of cf()) Xd(e, t); - Vd.pendingAssets.clear(); - let r = Ud(Wd(e)), i = await si(e.grid, r, { + for (let t of df()) $d(e, t); + Wd.pendingAssets.clear(); + let r = Kd(qd(e)), i = await ui(e.grid, r, { title: L("bottomFeed.title", "Generated Feed"), reset: !0 }); - tf(e, r), Number(i?.count || 0) <= 0 ? (e.empty.textContent = L("bottomFeed.empty", "No generated assets yet."), e.empty.style.display = "") : e.empty.style.display = "none"; + af(e, r), Number(i?.count || 0) <= 0 ? (e.empty.textContent = L("bottomFeed.empty", "No generated assets yet."), e.empty.style.display = "") : e.empty.style.display = "none"; } catch (t) { console.debug?.(t), e.empty.textContent = L("bottomFeed.loadFailed", "Failed to load generated assets."), e.empty.style.display = ""; } finally { @@ -9652,21 +9652,21 @@ async function lf(e) { } } } -async function uf() { - for (let e of Array.from(Vd.hosts)) try { - await lf(e); +async function pf() { + for (let e of Array.from(Wd.hosts)) try { + await ff(e); } catch (e) { console.debug?.(e); } } -function df() { - uf(); +function mf() { + pf(); } -function ff(e) { +function hf(e) { let t = document.createElement("div"); t.textContent = L("bottomFeed.loading", "Loading recent assets..."), t.style.cssText = "font-size:11px; opacity:0.65; padding:4px 2px 8px 2px;", e.root.appendChild(t), e.empty = t; } -function pf(e) { +function gf(e) { if (!e) return; let t = [ e, @@ -9684,14 +9684,14 @@ function pf(e) { console.debug?.(e); } } -function mf(e) { +function _f(e) { if (!e) return; let t = (t, n) => { n ? e.classList.add(t) : e.classList.remove(t); }; t("mjr-feed-show-info", R.FEED_SHOW_INFO), t("mjr-feed-show-filename", R.FEED_SHOW_FILENAME), t("mjr-feed-show-dimensions", R.FEED_SHOW_DIMENSIONS), t("mjr-feed-show-date", R.FEED_SHOW_DATE), t("mjr-feed-show-gentime", R.FEED_SHOW_GENTIME), t("mjr-show-hover-info", R.GRID_SHOW_HOVER_INFO), t("mjr-feed-show-dot", R.FEED_SHOW_WORKFLOW_DOT), t("mjr-feed-show-badges-ext", R.FEED_SHOW_BADGES_EXTENSION), t("mjr-feed-show-badges-rating", R.FEED_SHOW_BADGES_RATING), t("mjr-feed-show-badges-tags", R.FEED_SHOW_BADGES_TAGS); } -function hf(e, t = null) { +function vf(e, t = null) { let n = t || document.createElement("div"); n.classList.add("mjr-am-grid-scroll"), n.style.position = "relative", n.style.flex = "1 1 auto", n.style.minHeight = "0", n.style.height = "100%", n.style.overflow = "auto", n.style.scrollbarGutter = "stable", n.style.overscrollBehavior = "contain", n.style.webkitOverflowScrolling = "touch"; let r = () => { @@ -9709,14 +9709,14 @@ function hf(e, t = null) { } }, a = document.createElement("div"); n.appendChild(a), e.root.appendChild(n); - let { app: o } = Wt(kd, { + let { app: o } = qt(Md, { scrollElement: n, virtualize: !1, applyDefaultSettingsClasses: !1, emitWindowSelectionEvents: !0, onCardRendered: (t, n) => { try { - ef(e, t, n); + rf(e, t, n); } catch (e) { console.debug?.(e); } @@ -9735,7 +9735,7 @@ function hf(e, t = null) { else if (t === "c") { e.preventDefault?.(), e.stopPropagation?.(), r(); try { - Id().then(async ({ floatingViewerManager: e }) => { + zd().then(async ({ floatingViewerManager: e }) => { await e.open(), e.toggleCompareAB(); }).catch((e) => console.debug?.(e)); } catch (e) { @@ -9756,19 +9756,19 @@ function hf(e, t = null) { } }; } -function gf(e) { +function yf(e) { let t = e?.grid; if (!t) return []; - let n = yt(t); - return n.size ? Wd(e).filter((e) => n.has(String(e?.id || ""))) : []; + let n = St(t); + return n.size ? qd(e).filter((e) => n.has(String(e?.id || ""))) : []; } -function _f(e) { +function bf(e) { let t = e?.grid; if (!t) return null; let n = String(t.dataset?.mjrSelectedAssetId || "").trim(); - return n ? Wd(e).find((e) => String(e?.id || "") === n) || null : gf(e)[0] || null; + return n ? qd(e).find((e) => String(e?.id || "") === n) || null : yf(e)[0] || null; } -function vf(e) { +function xf(e) { let t = String(e ?? ""); try { if (typeof CSS < "u" && typeof CSS.escape == "function") return CSS.escape(t); @@ -9777,39 +9777,39 @@ function vf(e) { } return t.replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1"); } -function yf(e) { +function Sf(e) { let t = e?.grid; if (!t) return; let n = () => { try { - Zd(e); + ef(e); } catch (e) { console.debug?.(e); } }; - e.keyboard = ea({ + e.keyboard = ra({ gridContainer: t, - getState: () => ({ assets: Ud(Wd(e)) }), - getSelectedAssets: () => gf(e), - getActiveAsset: () => _f(e), + getState: () => ({ assets: Kd(qd(e)) }), + getSelectedAssets: () => yf(e), + getActiveAsset: () => bf(e), onOpenTagsEditor: (e) => { - let r = t.querySelector?.(`.mjr-asset-card[data-mjr-asset-id="${vf(e?.id || "")}"]`) || null, i = null; + let r = t.querySelector?.(`.mjr-asset-card[data-mjr-asset-id="${xf(e?.id || "")}"]`) || null, i = null; try { i = r?.getBoundingClientRect?.() || t.getBoundingClientRect(); } catch (e) { console.debug?.(e); } - oo(Math.round((i?.left || 0) + Math.min((i?.width || 0) * .5, 160)), Math.round((i?.top || 0) + Math.min((i?.height || 0) * .5, 120)), e, n); + lo(Math.round((i?.left || 0) + Math.min((i?.width || 0) * .5, 160)), Math.round((i?.top || 0) + Math.min((i?.height || 0) * .5, 120)), e, n); }, onAssetChanged: n - }), e.keyboard.bind(), e.ratingHotkeys = ho({ + }), e.keyboard.bind(), e.ratingHotkeys = vo({ gridContainer: t, - createRatingBadge: nn + createRatingBadge: on }), e.ratingHotkeys.bind(); } -var bf = 60, xf = 600, Sf = 10; -function Cf(e, t) { - let n = Math.max(bf, Math.min(xf, Math.round(Number(t) / Sf) * Sf)); +var Cf = 60, wf = 600, Tf = 10; +function Ef(e, t) { + let n = Math.max(Cf, Math.min(wf, Math.round(Number(t) / Tf) * Tf)); if (e?.grid) try { e.grid.style.setProperty("--mjr-grid-min-size", `${n}px`); } catch (e) { @@ -9817,8 +9817,8 @@ function Cf(e, t) { } R.FEED_GRID_MIN_SIZE = n; try { - let e = Mt(); - e.feed.minSize = n, bt(e), Et(e); + let e = Ft(); + e.feed.minSize = n, Ct(e), kt(e); } catch (e) { console.debug?.(e); } @@ -9835,27 +9835,27 @@ function Cf(e, t) { } return n; } -function wf(e) { - let t = Math.max(bf, Number(R.FEED_GRID_MIN_SIZE || 120) || 120), n = document.createElement("div"); +function Df(e) { + let t = Math.max(Cf, Number(R.FEED_GRID_MIN_SIZE || 120) || 120), n = document.createElement("div"); n.className = "mjr-feed-toolbar", n.style.cssText = "display:flex; align-items:center; gap:5px; padding:0 2px 5px 2px; flex-shrink:0; user-select:none;"; let r = document.createElement("span"); r.textContent = L("bottomFeed.cardSize", "Cards:"), r.style.cssText = "font-size:11px; opacity:0.65; white-space:nowrap; flex-shrink:0;", n.appendChild(r); let i = document.createElement("button"); i.type = "button", i.className = "mjr-feed-size-btn", i.textContent = "-", i.title = L("bottomFeed.cardSizeDecrease", "Decrease card size"), i.style.cssText = "width:20px; height:20px; padding:0; border:1px solid var(--mjr-border,#555); border-radius:4px; background:var(--mjr-surface,#2a2a2a); color:inherit; cursor:pointer; font-size:14px; line-height:1; flex-shrink:0; display:flex; align-items:center; justify-content:center;", n.appendChild(i); let a = document.createElement("input"); - a.type = "range", a.className = "mjr-feed-size-slider", a.min = String(bf), a.max = String(xf), a.step = String(Sf), a.value = String(t), a.title = L("bottomFeed.cardSizeSlider", "Card size"), a.style.cssText = "flex:1 1 auto; min-width:40px; max-width:180px; height:4px; cursor:pointer; accent-color:var(--mjr-accent,#64b5f6);", n.appendChild(a); + a.type = "range", a.className = "mjr-feed-size-slider", a.min = String(Cf), a.max = String(wf), a.step = String(Tf), a.value = String(t), a.title = L("bottomFeed.cardSizeSlider", "Card size"), a.style.cssText = "flex:1 1 auto; min-width:40px; max-width:180px; height:4px; cursor:pointer; accent-color:var(--mjr-accent,#64b5f6);", n.appendChild(a); let o = document.createElement("button"); o.type = "button", o.className = "mjr-feed-size-btn", o.textContent = "+", o.title = L("bottomFeed.cardSizeIncrease", "Increase card size"), o.style.cssText = i.style.cssText, n.appendChild(o); let s = document.createElement("span"); s.className = "mjr-feed-size-display", s.textContent = `${t}px`, s.style.cssText = "font-size:11px; opacity:0.65; white-space:nowrap; min-width:36px; text-align:right; flex-shrink:0; font-variant-numeric:tabular-nums;", n.appendChild(s), i.addEventListener("click", () => { - Cf(e, Number(a.value) - Sf); + Ef(e, Number(a.value) - Tf); }), o.addEventListener("click", () => { - Cf(e, Number(a.value) + Sf); + Ef(e, Number(a.value) + Tf); }), a.addEventListener("input", () => { - Cf(e, Number(a.value)); + Ef(e, Number(a.value)); }), e.root.appendChild(n), e._sizeToolbar = n; } -function Tf(e, t = {}) { +function Of(e, t = {}) { let n = document.createElement("div"); n.className = "mjr-assets-manager mjr-bottom-feed", n.style.cssText = "padding:6px; height:100%; min-height:0; box-sizing:border-box; display:flex; flex-direction:column; overflow:hidden;", e.replaceChildren(n); let r = { @@ -9867,13 +9867,13 @@ function Tf(e, t = {}) { assetsByKey: /* @__PURE__ */ new Map(), popoverManager: null }; - wf(r), ff(r), hf(r, t.gridWrapper ?? null), Bd(r), r.popoverManager = Ni(n), r._disposeContextMenu = so({ + Df(r), hf(r), vf(r, t.gridWrapper ?? null), Ud(r), r.popoverManager = Ii(n), r._disposeContextMenu = uo({ gridContainer: r.grid, getState: () => ({ scope: "output" }) - }), yf(r), mf(r.grid); + }), Sf(r), _f(r.grid); let i = () => { try { - mf(r.grid); + _f(r.grid); } catch (e) { console.debug?.(e); } @@ -9886,42 +9886,42 @@ function Tf(e, t = {}) { } }, r; } -function Ef(e) { +function kf(e) { let t = new Set((Array.isArray(e) ? e : []).map((e) => String(e ?? "").trim()).filter(Boolean)); if (!t.size) return 0; let n = 0; - for (let [e, n] of Array.from(Vd.pendingAssets.entries())) t.has(String(n?.id ?? "").trim()) && Vd.pendingAssets.delete(e); - for (let e of Array.from(Vd.hosts)) try { + for (let [e, n] of Array.from(Wd.pendingAssets.entries())) t.has(String(n?.id ?? "").trim()) && Wd.pendingAssets.delete(e); + for (let e of Array.from(Wd.hosts)) try { let r = e?.assetsByKey; if (!r?.size) continue; let i = !1; for (let [e, a] of Array.from(r.entries())) t.has(String(a?.id ?? "").trim()) && (r.delete(e), n += 1, i = !0); - i && Zd(e); + i && ef(e); } catch (e) { console.debug?.(e); } return n; } -function Df(e) { - let t = sf(e); - if (t) for (let e of Array.from(Vd.hosts)) try { - if (!e?.grid || (Xd(e, t), !e.loaded)) continue; - e.empty.style.display = "none", Zd(e); +function Af(e) { + let t = uf(e); + if (t) for (let e of Array.from(Wd.hosts)) try { + if (!e?.grid || ($d(e, t), !e.loaded)) continue; + e.empty.style.display = "none", ef(e); } catch (e) { console.debug?.(e); } } -function Of(e, t = {}) { - pf(e); - let n = Tf(e, t); +function jf(e, t = {}) { + gf(e); + let n = Of(e, t); try { e._mjrGeneratedFeedHost = n; } catch (e) { console.debug?.(e); } - return Vd.hosts.add(n), lf(n), n; + return Wd.hosts.add(n), ff(n), n; } -function kf(e) { +function Mf(e) { let t = e?._mjrGeneratedFeedHost || e || null; if (!t) return; let n = t.container || null; @@ -9935,7 +9935,7 @@ function kf(e) { } console.debug?.(e); } - Vd.hosts.delete(t); + Wd.hosts.delete(t); try { t._disposeSelection?.(); } catch (e) { @@ -9982,7 +9982,7 @@ function kf(e) { console.debug?.(e); } try { - li(t.grid); + fi(t.grid); } catch (e) { console.debug?.(e); } @@ -9993,24 +9993,24 @@ function kf(e) { } } // ui/features/stacks/executionAssetBuffer.ts -function Af(e) { +function Nf(e) { return String(e || "").trim(); } -function jf(e) { +function Pf(e) { let t = String(e?.filename || "").trim(), n = String(e?.subfolder || "").trim(); return `${String(e?.type || "output").trim().toLowerCase()}|${String(e?.root_id || e?.custom_root_id || "").trim()}|${n}|${t}`; } -function Mf() { +function Ff() { let e = /* @__PURE__ */ new Map(); function t(t, n) { - let r = Af(t); + let r = Nf(t); if (!r) return []; let i = Array.isArray(n) ? n : []; if (!i.length) return []; let a = e.get(r); a || (a = /* @__PURE__ */ new Map(), e.set(r, a)); for (let e of i) { - let t = jf(e); + let t = Pf(e); t && a.set(t, { ...a.get(t) || {}, ...e || {} @@ -10019,13 +10019,13 @@ function Mf() { return Array.from(a.values()); } function n(t) { - let n = Af(t); + let n = Nf(t); if (!n) return []; let r = e.get(n); return e.delete(n), Array.from(r?.values?.() || []); } function r(t) { - let n = Af(t); + let n = Nf(t); n && e.delete(n); } return { @@ -10036,7 +10036,7 @@ function Mf() { }; } // ui/features/stacks/finalizeQueue.ts -function Nf({ defaultDelayMs: e = 900, postJob: t } = {}) { +function If({ defaultDelayMs: e = 900, postJob: t } = {}) { let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Set(), i = !1; async function a() { if (!i) { @@ -10073,27 +10073,27 @@ function Nf({ defaultDelayMs: e = 900, postJob: t } = {}) { }; } // ui/features/stacks/liveAssetGate.ts -function Pf(e) { +function Lf(e) { return String(e || "").trim(); } -function Ff(e) { +function Rf(e) { let t = String(e?.filename || "").trim(), n = String(e?.filepath || "").trim(), r = String(e?.subfolder || "").trim(); return `${String(e?.type || e?.source || "output").trim().toLowerCase()}|${String(e?.root_id || e?.custom_root_id || "").trim()}|${r}|${t || n}`; } -function If(e, t) { +function zf(e, t) { return !t || String(e?.job_id || "").trim() === t ? e : { ...e || {}, job_id: t }; } -function Lf() { +function Bf() { let e = /* @__PURE__ */ new Map(); function t(t, { files: n = [], expectedCount: r = null } = {}) { - let i = Pf(t); + let i = Lf(t); if (!i) return; let a = /* @__PURE__ */ new Set(); for (let e of Array.isArray(n) ? n : []) { - let t = Ff(e); + let t = Rf(e); t && a.add(t); } e.set(i, { @@ -10103,13 +10103,13 @@ function Lf() { }); } function n(t) { - let n = Pf(t); + let n = Lf(t); n && e.delete(n); } function r(t) { - let n = Pf(t?.job_id); + let n = Lf(t?.job_id); if (n) return n; - let r = Ff(t); + let r = Rf(t); if (!r) return ""; let i = "", a = Infinity; for (let [t, n] of e.entries()) n?.fileKeys?.has?.(r) && (n.markedAt ?? Infinity) < a && (a = n.markedAt ?? Infinity, i = t); @@ -10122,7 +10122,7 @@ function Lf() { jobId: "", defer: !1 }; - let i = If(t, n), a = e.get(n); + let i = zf(t, n), a = e.get(n); if (!a) return { detail: i, jobId: n, @@ -10144,20 +10144,20 @@ function Lf() { }; } // ui/features/stacks/executionRuntimeController.ts -var Rf = 2e3, zf = 2e3, Bf = /* @__PURE__ */ new Set([ +var Vf = 2e3, Hf = 2e3, Uf = /* @__PURE__ */ new Set([ "DB_MAINTENANCE", "TIMEOUT", "NETWORK_ERROR", "SERVICE_UNAVAILABLE" -]), Vf = 8, Hf = 1200, Uf = 15e3, Wf = 6e5, Gf = 500, Kf = 6, qf = 3e4, Jf = 500; -function Yf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensureExecutionRuntime: i, emitRuntimeStatus: a, refreshGeneratedFeedHosts: o, getActiveGridContainer: s }) { - let c = Re({ - ttlMs: Rf, - maxSize: zf - }), l = Re({ - ttlMs: Wf, - maxSize: Gf - }), u = Math.max(0, Number(R.EXECUTION_IDLE_GRACE_MS) || 6e3), d = /* @__PURE__ */ new Map(), f = Mf(), p = Lf(), m = "", h = 0, g = null; +]), Wf = 8, Gf = 1200, Kf = 15e3, qf = 6e5, Jf = 500, Yf = 6, Xf = 3e4, Zf = 500; +function Qf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensureExecutionRuntime: i, emitRuntimeStatus: a, refreshGeneratedFeedHosts: o, getActiveGridContainer: s }) { + let c = oe({ + ttlMs: Vf, + maxSize: Hf + }), l = oe({ + ttlMs: qf, + maxSize: Jf + }), u = Math.max(0, Number(R.EXECUTION_IDLE_GRACE_MS) || 6e3), d = /* @__PURE__ */ new Map(), f = Ff(), p = Bf(), m = "", h = 0, g = null; function _() { try { return typeof window > "u" ? !1 : window.__MJR_DEBUG_JOB_TRACKING__ === !0 || String(window.localStorage?.getItem("mjr.debug.jobTracking") || "").trim() === "1"; @@ -10229,7 +10229,7 @@ function Yf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensu console.debug?.(e); } } - let S = Nf({ + let S = If({ defaultDelayMs: 900, async postJob(r) { v("auto-stack:start", { job_id: r }); @@ -10267,7 +10267,7 @@ function Yf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensu } function T(e) { let t = Math.max(1, Number(e) || 1), n = Math.min(6, t - 1); - return Math.min(Uf, Hf * 2 ** n); + return Math.min(Kf, Gf * 2 ** n); } function E() { g &&= (clearTimeout(g), null); @@ -10285,7 +10285,7 @@ function Yf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensu } function O(e) { let t = String(e?.code || "").trim().toUpperCase(); - return Bf.has(t); + return Uf.has(t); } function k(r, i = 1, a = {}) { let o = Array.isArray(r) ? r : []; @@ -10300,7 +10300,7 @@ function Yf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensu files: o.map((e) => String(e?.filename || e?.filepath || "")) }), e(t.INDEX_FILES, s).then((e) => { if (!e?.ok) { - if (O(e) && i < Vf) { + if (O(e) && i < Wf) { let e = T(i); setTimeout(() => k(o, i + 1, a), e); } else try { @@ -10321,13 +10321,13 @@ function Yf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensu return console.debug?.(e), ""; } } - function ee(e) { + function j(e) { return !Array.isArray(e) || !e.length ? "" : e.map((e) => String(e?.filepath || e?.filename || "")).filter(Boolean).sort().join("|"); } - function j(e, t = {}, n = 1) { + function M(e, t = {}, n = 1) { let r = Array.isArray(e) ? e : []; if (!r.length) return; - let i = ee(r); + let i = j(r); if (!i) { k(r, 1, t); return; @@ -10335,7 +10335,7 @@ function Yf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensu let a = d.get(i); a?.timer && clearTimeout(a.timer); let o = a?.firstAttemptAt ?? Date.now(); - if (Date.now() - o >= qf) { + if (Date.now() - o >= Xf) { k(r, 1, t); return; } @@ -10350,7 +10350,7 @@ function Yf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensu firstAttemptAt: o }); } - function M(e) { + function N(e) { let t = String(e || "").trim(); if (!(!t || d.size <= 0)) for (let [e, n] of Array.from(d.entries())) { try { @@ -10361,7 +10361,7 @@ function Yf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensu d.delete(e), f.add(t, n?.files || []); } } - function N() { + function ee() { for (let [e, t] of Array.from(d.entries())) { try { t?.timer && clearTimeout(t.timer); @@ -10380,20 +10380,20 @@ function Yf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensu file_count: Array.isArray(e) ? e.length : 0, files: Array.isArray(e) ? e.map((e) => String(e?.filename || e?.filepath || "")) : [] }), !r) { - if (n < Kf) { - j(e, t, n); + if (n < Yf) { + M(e, t, n); return; } k(e, 1, t); } else f.add(r, e); } - function ne(e, t = 900) { + function P(e, t = 900) { y() && (v("finalize:schedule", { job_id: String(e || ""), delay_ms: t }), S.schedule(e, t)); } - function P(r) { + function ne(r) { let i = b(), a = String(r || "").trim(); if (!a) return; let o = f.take(a); @@ -10412,10 +10412,10 @@ function Yf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensu e?.ok ? (v("index:flush:done", { prompt_id: a, file_count: o.length - }), i.allowLiveStackFinalize && ne(a, 1800)) : (i.allowLiveStackFinalize && p.clearPendingJob(a), n(Error(String(e?.error || "Indexing generated files failed")), "executionRuntime.executed.index")); + }), i.allowLiveStackFinalize && P(a, 1800)) : (i.allowLiveStackFinalize && p.clearPendingJob(a), n(Error(String(e?.error || "Indexing generated files failed")), "executionRuntime.executed.index")); }).catch((e) => { i.allowLiveStackFinalize && p.clearPendingJob(a), n(e, "executionRuntime.executed.index"); - }) : i.allowLiveStackFinalize && ne(a); + }) : i.allowLiveStackFinalize && P(a); } function re(e) { let t = String(e || "").trim(); @@ -10427,7 +10427,7 @@ function Yf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensu return console.debug?.(e), !1; } } - function F(e) { + function ie(e) { if (!y()) return { detail: e, jobId: "", @@ -10443,18 +10443,18 @@ function Yf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensu }; } } - function I(e) { + function F(e) { let t = String(e?.kind || "").trim(), n = String(e?.filename || "").trim(), r = String(e?.filepath || "").trim(); return !!t && (!!n || !!r); } - function ie(e, { appRef: t }) { + function I(e, { appRef: t }) { if (!b().useExecutionBuffer) return; let n = w(r(e?.detail?.output)); if (!n.length) return; let i = e?.detail?.prompt_id || e?.detail?.promptId, a = String(e?.detail?.node || e?.detail?.display_node || "").trim(), o = i ? l.get(String(i)) : null, s = o ? Math.max(0, Date.now() - o) : 0, c = ""; try { if (a && t !== void 0) { - let e = ot(it(t), a); + let e = lt(st(t), a); e && (c = String(e.type || e.comfyClass || "").trim()); } } catch (e) { @@ -10496,9 +10496,9 @@ function Yf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensu progress_node: null, progress_value: null, progress_max: null - }), n && M(n); + }), n && N(n); } - function oe(e, { setCurrentJobId: t }) { + function se(e, { setCurrentJobId: t }) { let n = b(), r = e?.detail?.prompt_id || e?.detail?.promptId; v("execution:end", { type: String(e?.type || ""), @@ -10512,11 +10512,11 @@ function Yf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensu }), r && String(e?.type || "") !== "execution_success" && (v("buffer:clear", { prompt_id: String(r || ""), reason: String(e?.type || "") - }), E(), f.clear(r), n.allowLiveStackFinalize && p.clearPendingJob(r), N()), String(e?.type || "") === "execution_success" && D(() => { - r && M(r), P(r); - }, re(r) ? Math.min(u, Jf) : u); + }), E(), f.clear(r), n.allowLiveStackFinalize && p.clearPendingJob(r), ee()), String(e?.type || "") === "execution_success" && D(() => { + r && N(r), ne(r); + }, re(r) ? Math.min(u, Zf) : u); } - function se(e) { + function ce(e) { if (!y()) return; let t = []; for (let [, n] of e instanceof Map ? e.entries() : []) { @@ -10530,16 +10530,16 @@ function Yf({ post: e, ENDPOINTS: t, reportError: n, extractOutputFiles: r, ensu } return { notifyStacksUpdated: x, - prepareLiveAssetEvent: F, - isRenderableLiveAsset: I, - handleExecutedEvent: ie, + prepareLiveAssetEvent: ie, + isRenderableLiveAsset: F, + handleExecutedEvent: I, handleExecutionStart: ae, - handleExecutionEnd: oe, - handleNodeOutputsUpdated: se + handleExecutionEnd: se, + handleNodeOutputsUpdated: ce }; } // ui/utils/extractOutputFiles.ts -function Xf(e) { +function $f(e) { let t = [], n = /* @__PURE__ */ new Set(), r = 2e3, i = /\.(png|jpe?g|webp|gif|bmp|tiff?|avif|heic|heif|apng|hdr|svg|mp4|webm|mov|mkv|avi|m4v|mp3|wav|flac|ogg|glb|gltf|obj|fbx|ply|stl)$/i, a = typeof WeakSet < "u" ? /* @__PURE__ */ new WeakSet() : null, o = ({ type: e, subfolder: t, filename: n, path: r }) => r ? `path|${String(r).trim().toLowerCase()}` : `${e || ""}|${t || ""}|${n || ""}`.toLowerCase(), s = (e) => { if (!e) return; let r = e.path || e.filepath || e.fullpath || e.fullPath || e.full_path, i = e.filename; @@ -10620,15 +10620,15 @@ function Xf(e) { return u(e, 0), t; } // ui/features/runtime/sidebarAssetBadge.ts -var Zf = "mjr-sidebar-asset-badge", Qf = "mjr-sidebar-tab-has-badge", $f = "mjr-sidebar-asset-badge-style", ep = 99, tp = 0, np = "majoor-assets", rp = !1, ip = /* @__PURE__ */ new Set(); -function ap() { - if (typeof document > "u" || document.getElementById($f)) return; +var ep = "mjr-sidebar-asset-badge", tp = "mjr-sidebar-tab-has-badge", np = "mjr-sidebar-asset-badge-style", rp = 99, ip = 0, ap = "majoor-assets", op = !1, sp = /* @__PURE__ */ new Set(); +function cp() { + if (typeof document > "u" || document.getElementById(np)) return; let e = document.createElement("style"); - e.id = $f, e.textContent = ` - .${Qf} { + e.id = np, e.textContent = ` + .${tp} { position: relative !important; } - .${Zf} { + .${ep} { position: absolute; top: 3px; right: 3px; @@ -10652,7 +10652,7 @@ function ap() { } `, document.head?.appendChild(e); } -function op(e) { +function lp(e) { let t = String(e || "").trim(); if (!t) return []; let n = (() => { @@ -10671,91 +10671,91 @@ function op(e) { `[href="#${n}"]` ]; } -function sp(e) { +function up(e) { let t = `${e?.textContent || ""} ${e?.title || ""} ${e?.getAttribute?.("aria-label") || ""}`; return /assets\s*manager|majoor/i.test(t); } -function cp(e) { +function dp(e) { return !e || typeof e != "object" ? !1 : typeof HTMLElement < "u" ? e instanceof HTMLElement : typeof e.querySelector == "function" && typeof e.appendChild == "function"; } -function lp() { +function fp() { if (typeof document > "u") return null; - for (let e of op(np)) { + for (let e of lp(ap)) { let t = document.querySelector(e); - if (cp(t)) return t; + if (dp(t)) return t; } let e = Array.from(document.querySelectorAll(".pi-folder, .pi-folder-open")); for (let t of e) { let e = t.closest?.("button,[role='tab'],a,.p-button,.comfyui-button,.sidebar-tab"); - if (cp(e) && sp(e)) return e; + if (dp(e) && up(e)) return e; } - return Array.from(document.querySelectorAll("button,[role='tab'],a,.p-button,.comfyui-button,.sidebar-tab")).find((e) => cp(e) && sp(e)) || null; + return Array.from(document.querySelectorAll("button,[role='tab'],a,.p-button,.comfyui-button,.sidebar-tab")).find((e) => dp(e) && up(e)) || null; } -function up() { - ap(); - let e = lp(); +function pp() { + cp(); + let e = fp(); if (!e) return !1; - let t = e.querySelector(`:scope > .${Zf}`); - return !fp() || tp <= 0 ? (t?.remove(), e.classList.remove(Qf), !0) : (t || (t = document.createElement("span"), t.className = Zf, t.setAttribute("aria-hidden", "true"), e.appendChild(t)), e.classList.add(Qf), t.textContent = tp > ep ? `${ep}+` : String(tp), !0); + let t = e.querySelector(`:scope > .${ep}`); + return !hp() || ip <= 0 ? (t?.remove(), e.classList.remove(tp), !0) : (t || (t = document.createElement("span"), t.className = ep, t.setAttribute("aria-hidden", "true"), e.appendChild(t)), e.classList.add(tp), t.textContent = ip > rp ? `${rp}+` : String(ip), !0); } -function dp() { - up(), typeof requestAnimationFrame == "function" && requestAnimationFrame(() => up()), setTimeout(() => up(), 250), setTimeout(() => up(), 1e3); +function mp() { + pp(), typeof requestAnimationFrame == "function" && requestAnimationFrame(() => pp()), setTimeout(() => pp(), 250), setTimeout(() => pp(), 1e3); } -function fp() { +function hp() { return R.SIDEBAR_ASSET_BADGE_ENABLED !== !1; } -function pp(e = null) { +function gp(e = null) { let t = String(e?.id || e?.asset_id || "").trim(); if (t) return `id:${t}`; let n = String(e?.type || e?.source || "output").trim().toLowerCase(), r = String(e?.root_id || e?.custom_root_id || "").trim().toLowerCase(), i = String(e?.subfolder || e?.sub_folder || e?.subFolder || "").trim().toLowerCase(), a = String(e?.filename || "").trim().toLowerCase(), o = String(e?.filepath || e?.path || e?.fullpath || e?.full_path || "").trim().toLowerCase(), s = a || o; return s ? `file:${n}|${r}|${i}|${s}` : ""; } -function mp(e) { +function _p(e) { if (!e) return !0; - if (ip.has(e)) return !1; - if (ip.add(e), ip.size > 1e3) { - let e = Array.from(ip).slice(-500); - ip.clear(); - for (let t of e) ip.add(t); + if (sp.has(e)) return !1; + if (sp.add(e), sp.size > 1e3) { + let e = Array.from(sp).slice(-500); + sp.clear(); + for (let t of e) sp.add(t); } return !0; } -function hp({ sidebarTabId: e } = {}) { +function vp({ sidebarTabId: e } = {}) { let t = String(e || "").trim(); - t && (np = t), !rp && typeof window < "u" && (rp = !0, window.addEventListener?.("mjr-settings-changed", (e) => { - e?.detail?.key === "sidebar.assetBadgeEnabled" && (fp() || (tp = 0, ip.clear()), dp()); - })), dp(); + t && (ap = t), !op && typeof window < "u" && (op = !0, window.addEventListener?.("mjr-settings-changed", (e) => { + e?.detail?.key === "sidebar.assetBadgeEnabled" && (hp() || (ip = 0, sp.clear()), mp()); + })), mp(); } -function gp(e = null) { - fp() && mp(pp(e)) && (tp += 1, dp()); -} -function _p() { - tp = 0, ip.clear(), dp(); -} -// ui/features/runtime/pendingGeneratedAssets.ts -var vp = 0; -function yp(e = 1) { - let t = Math.max(1, Number(e) || 1); - vp += t; - try { - window.__mjrPendingGeneratedAssetCount = vp; - } catch {} - return vp; +function yp(e = null) { + hp() && _p(gp(e)) && (ip += 1, mp()); } function bp() { - let e = vp; - vp = 0; + ip = 0, sp.clear(), mp(); +} +// ui/features/runtime/pendingGeneratedAssets.ts +var xp = 0; +function Sp(e = 1) { + let t = Math.max(1, Number(e) || 1); + xp += t; + try { + window.__mjrPendingGeneratedAssetCount = xp; + } catch {} + return xp; +} +function Cp() { + let e = xp; + xp = 0; try { window.__mjrPendingGeneratedAssetCount = 0; } catch {} return e; } // ui/features/runtime/registerRealtimeListeners.ts -var xp = 3e4, Sp = /* @__PURE__ */ new Map(), Cp = "live"; -function wp(e) { +var wp = 3e4, Tp = /* @__PURE__ */ new Map(), Ep = "live"; +function Dp(e) { return e === !0 || e === 1 || e === "1" ? !0 : e === !1 || e === 0 || e === "0" ? !1 : null; } -function Tp(e) { +function Op(e) { let t = [ e?.has_ai_vector, e?.hasAiVector, @@ -10765,25 +10765,25 @@ function Tp(e) { e?.vectorIndexed ]; for (let e of t) { - let t = wp(e); + let t = Dp(e); if (t !== null) return t; } return !1; } -function Ep(e) { - let t = Date.now(), n = Number(Sp.get(e) || 0); - if (n > 0 && t - n < xp) return !0; - if (Sp.set(e, t), Sp.size > 500) { - let e = t - 5 * xp; - for (let [t, n] of Sp.entries()) Number(n) < e && Sp.delete(t); +function kp(e) { + let t = Date.now(), n = Number(Tp.get(e) || 0); + if (n > 0 && t - n < wp) return !0; + if (Tp.set(e, t), Tp.size > 500) { + let e = t - 5 * wp; + for (let [t, n] of Tp.entries()) Number(n) < e && Tp.delete(t); } return !1; } -function Dp(e) { +function Ap(e) { let t = String(e?.id || "").trim(); - t && (Tp(e) || Ep(t) || ee(t).catch((e) => console.debug?.("[Majoor] auto vector index failed", e))); + t && (Op(e) || kp(t) || s(t).catch((e) => console.debug?.("[Majoor] auto vector index failed", e))); } -function Op(e) { +function jp(e) { let t = String(e?.kind || "").trim().toLowerCase(); if (t) return t; let n = String(e?.filename || e?.filepath || e?.path || e?.fullpath || "").trim(), r = n.includes(".") && n.split(".").pop()?.toLowerCase?.() || ""; @@ -10831,8 +10831,8 @@ function Op(e) { "spz" ].includes(r) ? "model3d" : "unknown" : ""; } -function kp(e, { jobId: t = "" } = {}) { - let n = String(e?.filename || "").trim(), r = String(e?.filepath || e?.path || e?.fullpath || e?.full_path || "").trim(), i = String(e?.subfolder || e?.sub_folder || e?.subFolder || "").trim(), a = String(e?.type || e?.source || "output").trim().toLowerCase(), o = String(e?.root_id || e?.custom_root_id || "").trim(), s = Op(e); +function Mp(e, { jobId: t = "" } = {}) { + let n = String(e?.filename || "").trim(), r = String(e?.filepath || e?.path || e?.fullpath || e?.full_path || "").trim(), i = String(e?.subfolder || e?.sub_folder || e?.subFolder || "").trim(), a = String(e?.type || e?.source || "output").trim().toLowerCase(), o = String(e?.root_id || e?.custom_root_id || "").trim(), s = jp(e); if (!s || !n && !r) return null; let c = n || r.split(/[/\\]/).filter(Boolean).pop() || ""; if (!c) return null; @@ -10843,7 +10843,7 @@ function kp(e, { jobId: t = "" } = {}) { c ].map((e) => String(e || "").trim().toLowerCase()).join("|"), d = Date.now() / 1e3, f = String(e?.job_id || t || "").trim(); return { - id: `${Cp}:${u || l.toLowerCase()}`, + id: `${Ep}:${u || l.toLowerCase()}`, filename: c, filepath: l, path: l, @@ -10866,7 +10866,7 @@ function kp(e, { jobId: t = "" } = {}) { _mjrLiveLabel: "In progress" }; } -function Ap(e) { +function Np(e) { let t = String(e || ""); try { if (typeof CSS < "u" && typeof CSS.escape == "function") return CSS.escape(t); @@ -10875,11 +10875,11 @@ function Ap(e) { } return t.replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1"); } -function jp(e, t) { +function Pp(e, t) { let n = String(e || "").trim().toLowerCase(); return n === "delete_db" ? t("btn.deleteDb", "Delete DB") : n === "reset_index" ? t("btn.resetIndex", "Reset index") : n === "restore_db" ? t("btn.dbRestore", "Restore DB") : t("btn.maintenance", "Maintenance"); } -function Mp(e, t) { +function Fp(e, t) { let n = String(e || "").trim().toLowerCase(), r = String(t || "").trim().toLowerCase(), i = { delete_db: [ "started", @@ -10913,36 +10913,36 @@ function Mp(e, t) { label: r.replace(/[_-]+/g, " ") }; } -async function Np({ api: e, runtime: t, executionRuntime: n, appRef: r, liveStreamModule: i, ensureExecutionRuntime: a, emitRuntimeStatus: o, getActiveGridContainer: s, pushGeneratedAsset: c, upsertAsset: l, upsertAssetNow: u, removeAssetsFromGrid: d, getEnrichmentState: f, setEnrichmentState: p, comfyToast: m, t: h, reportError: _, registerCleanableListener: v, syncExecutionBackendState: y }) { +async function Ip({ api: e, runtime: t, executionRuntime: n, appRef: r, liveStreamModule: i, ensureExecutionRuntime: a, emitRuntimeStatus: o, getActiveGridContainer: s, pushGeneratedAsset: c, upsertAsset: l, upsertAssetNow: u, removeAssetsFromGrid: d, getEnrichmentState: f, setEnrichmentState: p, comfyToast: m, t: h, reportError: g, registerCleanableListener: _, syncExecutionBackendState: v }) { e._mjrExecutedHandler = (e) => { try { n.handleExecutedEvent(e, { appRef: r }); } catch (e) { - _(e, "entry.executed"); + g(e, "entry.executed"); } - }, v(t, e, "executed", e._mjrExecutedHandler), e._mjrExecutionStartHandler = (e) => { + }, _(t, e, "executed", e._mjrExecutedHandler), e._mjrExecutionStartHandler = (e) => { try { - n.handleExecutionStart(e, { setCurrentJobId: (e) => i?.setCurrentJobId(e) }), y?.({ + n.handleExecutionStart(e, { setCurrentJobId: (e) => i?.setCurrentJobId(e) }), v?.({ active: !0, promptId: e?.detail?.prompt_id || e?.detail?.promptId || "" }); } catch (e) { - _(e, "entry.execution_start"); + g(e, "entry.execution_start"); } }, e._mjrExecutionEndHandler = (e) => { try { - n.handleExecutionEnd(e, { setCurrentJobId: (e) => i?.setCurrentJobId(e) }), y?.({ + n.handleExecutionEnd(e, { setCurrentJobId: (e) => i?.setCurrentJobId(e) }), v?.({ active: !1, promptId: e?.detail?.prompt_id || e?.detail?.promptId || "" }); } catch (e) { - _(e, "entry.execution_end"); + g(e, "entry.execution_end"); } }, e._mjrStacksUpdatedHandler = (e) => { try { n.notifyStacksUpdated(e?.detail || {}); } catch (e) { - _(e, "entry.stacks_updated"); + g(e, "entry.stacks_updated"); } }, e._mjrRuntimeStatusHandler = (e) => { try { @@ -10954,7 +10954,7 @@ async function Np({ api: e, runtime: t, executionRuntime: n, appRef: r, liveStre queue_remaining: Number.isFinite(Number(t?.exec_info?.queue_remaining)) ? Number(t.exec_info.queue_remaining) : Number.isFinite(Number(t?.queue_remaining)) ? Number(t.queue_remaining) : a().queue_remaining }); } catch (e) { - _(e, "entry.runtime_status"); + g(e, "entry.runtime_status"); } }, e._mjrExecutionCachedHandler = (e) => { try { @@ -10964,9 +10964,9 @@ async function Np({ api: e, runtime: t, executionRuntime: n, appRef: r, liveStre cached_nodes: Array.isArray(t?.nodes) ? t.nodes.slice() : [] }); } catch (e) { - _(e, "entry.execution_cached"); + g(e, "entry.execution_cached"); } - }, v(t, e, "execution_start", e._mjrExecutionStartHandler), v(t, e, "execution_success", e._mjrExecutionEndHandler), v(t, e, "execution_error", e._mjrExecutionEndHandler), v(t, e, "execution_interrupted", e._mjrExecutionEndHandler), v(t, e, "mjr.stacks.updated", e._mjrStacksUpdatedHandler), v(t, e, "progress", e._mjrRuntimeStatusHandler), v(t, e, "status", e._mjrRuntimeStatusHandler), v(t, e, B.RUNTIME_STATUS, e._mjrRuntimeStatusHandler), v(t, e, "execution_cached", e._mjrExecutionCachedHandler); + }, _(t, e, "execution_start", e._mjrExecutionStartHandler), _(t, e, "execution_success", e._mjrExecutionEndHandler), _(t, e, "execution_error", e._mjrExecutionEndHandler), _(t, e, "execution_interrupted", e._mjrExecutionEndHandler), _(t, e, "mjr.stacks.updated", e._mjrStacksUpdatedHandler), _(t, e, "progress", e._mjrRuntimeStatusHandler), _(t, e, "status", e._mjrRuntimeStatusHandler), _(t, e, B.RUNTIME_STATUS, e._mjrRuntimeStatusHandler), _(t, e, "execution_cached", e._mjrExecutionCachedHandler); function b() { try { window.__mjrLastAssetUpsert = Date.now(), window.__mjrLastAssetUpsertCount = (Number(window.__mjrLastAssetUpsertCount || 0) || 0) + 1; @@ -10977,7 +10977,7 @@ async function Np({ api: e, runtime: t, executionRuntime: n, appRef: r, liveStre function x(e, t, { immediate: n = !1, force: r = !1 } = {}) { let i = String(t?.id || "").trim(), a = String(t?.kind || "").trim(), o = String(t?.filename || "").trim(), s = String(t?.filepath || "").trim(), c = !!a && (!!o || !!s), d = !1; if (i) try { - d = typeof e?._mjrHasAssetId == "function" ? !!e._mjrHasAssetId(i) : !!e.querySelector(`.mjr-asset-card[data-mjr-asset-id="${Ap(i)}"]`); + d = typeof e?._mjrHasAssetId == "function" ? !!e._mjrHasAssetId(i) : !!e.querySelector(`.mjr-asset-card[data-mjr-asset-id="${Np(i)}"]`); } catch (e) { console.debug?.(e); } @@ -11006,38 +11006,38 @@ async function Np({ api: e, runtime: t, executionRuntime: n, appRef: r, liveStre if (n !== "output" && n !== "all") return; let r = Array.isArray(e?.detail?.files) ? e.detail.files : [], i = String(e?.detail?.prompt_id || e?.detail?.promptId || "").trim(); for (let e of r) { - let n = kp(e, { jobId: i }); + let n = Mp(e, { jobId: i }); n && x(t, n, { immediate: !0, force: !0 }); } } catch (e) { - _(e, "entry.new_generation_output"); + g(e, "entry.new_generation_output"); } - }, v(t, window, B.NEW_GENERATION_OUTPUT, e._mjrNewGenerationOutputHandler), e._mjrAssetAddedHandler = (e) => { + }, _(t, window, B.NEW_GENERATION_OUTPUT, e._mjrNewGenerationOutputHandler), e._mjrAssetAddedHandler = (e) => { try { if (!e?.detail) return; let t = n.prepareLiveAssetEvent(e.detail), r = t?.detail || e.detail; if (t?.defer) return; let i = n.isRenderableLiveAsset(r); - i && c(r), Dp(r); + i && c(r), Ap(r); let a = s(); if (!a) { - i && yp(); + i && Sp(); return; } let o = a.dataset?.mjrScope || "output"; if (o !== "output" && o !== "all") { - i && yp(); + i && Sp(); return; } let l = a.dataset?.mjrQuery || "*"; - String(l).trim() === "*" && i ? x(a, r, { immediate: !0 }) || yp() : i && yp(); + String(l).trim() === "*" && i ? x(a, r, { immediate: !0 }) || Sp() : i && Sp(); } catch (e) { - _(e, "entry.asset_added"); + g(e, "entry.asset_added"); } - }, v(t, e, "mjr-asset-added", e._mjrAssetAddedHandler), e._mjrAssetUpdatedHandler = (e) => { + }, _(t, e, "mjr-asset-added", e._mjrAssetAddedHandler), e._mjrAssetUpdatedHandler = (e) => { try { if (!e?.detail) return; let t = n.prepareLiveAssetEvent(e.detail), r = t?.detail || e.detail; @@ -11047,23 +11047,23 @@ async function Np({ api: e, runtime: t, executionRuntime: n, appRef: r, liveStre if (!i) return; x(i, r, { immediate: !0 }); } catch (e) { - _(e, "entry.asset_updated"); + g(e, "entry.asset_updated"); } - }, v(t, e, "mjr-asset-updated", e._mjrAssetUpdatedHandler), e._mjrStructuredEventHandler = (e) => { + }, _(t, e, "mjr-asset-updated", e._mjrAssetUpdatedHandler), e._mjrStructuredEventHandler = (e) => { try { let t = e?.detail || {}; window.dispatchEvent(new CustomEvent(B.STRUCTURED_EVENT, { detail: t })); } catch (e) { console.debug?.(e); } - }, v(t, e, B.STRUCTURED_EVENT, e._mjrStructuredEventHandler), e._mjrScanCompleteHandler = (e) => { + }, _(t, e, B.STRUCTURED_EVENT, e._mjrStructuredEventHandler), e._mjrScanCompleteHandler = (e) => { try { let t = e?.detail || {}; window.dispatchEvent(new CustomEvent(B.SCAN_COMPLETE, { detail: t })), S(t); } catch (e) { console.debug?.(e); } - }, v(t, e, B.SCAN_COMPLETE, e._mjrScanCompleteHandler); + }, _(t, e, B.SCAN_COMPLETE, e._mjrScanCompleteHandler); function S(e) { if (globalThis?._mjrMaintenanceActive) return; let t = Math.max(0, Number(e?.added) || 0), n = Math.max(0, Number(e?.pruned) || 0); @@ -11094,7 +11094,7 @@ async function Np({ api: e, runtime: t, executionRuntime: n, appRef: r, liveStre } catch (e) { console.debug?.(e); } - }, v(t, e, B.ASSETS_REMOVED, e._mjrAssetsRemovedHandler), e._mjrCoreExecutionAssetsReadyHandler = (e) => { + }, _(t, e, B.ASSETS_REMOVED, e._mjrAssetsRemovedHandler), e._mjrCoreExecutionAssetsReadyHandler = (e) => { try { let t = e?.detail || {}; window.dispatchEvent(new CustomEvent(B.CORE_EXECUTION_ASSETS_READY, { detail: t })); @@ -11107,27 +11107,27 @@ async function Np({ api: e, runtime: t, executionRuntime: n, appRef: r, liveStre } catch (e) { console.debug?.(e); } - }, v(t, e, B.CORE_EXECUTION_ASSETS_READY, e._mjrCoreExecutionAssetsReadyHandler), e._mjrScanProgressHandler = (e) => { + }, _(t, e, B.CORE_EXECUTION_ASSETS_READY, e._mjrCoreExecutionAssetsReadyHandler), e._mjrScanProgressHandler = (e) => { try { let t = e?.detail || {}; window.dispatchEvent(new CustomEvent(B.SCAN_PROGRESS, { detail: t })); } catch (e) { console.debug?.(e); } - }, v(t, e, B.SCAN_PROGRESS, e._mjrScanProgressHandler), e._mjrAssetIndexingHandler = (e) => { + }, _(t, e, B.SCAN_PROGRESS, e._mjrScanProgressHandler), e._mjrAssetIndexingHandler = (e) => { try { let t = e?.detail || {}; window.dispatchEvent(new CustomEvent(B.ASSET_INDEXING, { detail: t })); } catch (e) { console.debug?.(e); } - }, v(t, e, B.ASSET_INDEXING, e._mjrAssetIndexingHandler), e._mjrAssetIndexedHandler = (e) => { + }, _(t, e, B.ASSET_INDEXING, e._mjrAssetIndexingHandler), e._mjrAssetIndexedHandler = (e) => { try { let t = e?.detail || {}; if (window.dispatchEvent(new CustomEvent(B.ASSET_INDEXED, { detail: t })), !t) return; let r = n.prepareLiveAssetEvent(t), i = r?.detail || t; if (r?.defer) return; - n.isRenderableLiveAsset(i) && (c(i), gp(i)), Dp(i); + n.isRenderableLiveAsset(i) && (c(i), yp(i)), Ap(i); let a = s(); if (!a) return; x(a, i, { @@ -11137,14 +11137,14 @@ async function Np({ api: e, runtime: t, executionRuntime: n, appRef: r, liveStre } catch (e) { console.debug?.(e); } - }, v(t, e, B.ASSET_INDEXED, e._mjrAssetIndexedHandler), e._mjrEnrichmentStatusHandler = (e) => { + }, _(t, e, B.ASSET_INDEXED, e._mjrAssetIndexedHandler), e._mjrEnrichmentStatusHandler = (e) => { try { let t = e?.detail || {}, n = Number(t?.queued), r = Number(t?.queue_left), i = Number.isFinite(n) ? Math.max(0, Math.floor(n)) : Number.isFinite(r) ? Math.max(0, Math.floor(r)) : 0, a = !!t?.active || i > 0, o = f().active; p(a, i), window.dispatchEvent(new CustomEvent(B.ENRICHMENT_STATUS, { detail: t })), o && !a && m(h("toast.enrichmentComplete", "Metadata enrichment complete"), "success", 2600); } catch (e) { console.debug?.(e); } - }, v(t, e, B.ENRICHMENT_STATUS, e._mjrEnrichmentStatusHandler), e._mjrDbRestoreStatusHandler = (e) => { + }, _(t, e, B.ENRICHMENT_STATUS, e._mjrEnrichmentStatusHandler), e._mjrDbRestoreStatusHandler = (e) => { try { let t = e?.detail || {}, n = String(t?.step || ""), r = String(t?.level || "info"), i = String(t?.operation || ""); window.dispatchEvent(new CustomEvent(B.DB_RESTORE_STATUS, { detail: t })); @@ -11162,11 +11162,11 @@ async function Np({ api: e, runtime: t, executionRuntime: n, appRef: r, liveStre if (!s) return; let c = r === "error" || n === "failed" ? "error" : n === "done" ? "success" : "info", l = { history: { trackId: `maintenance:${String(i || "db_restore").trim().toLowerCase() || "db_restore"}`, - title: jp(i, h), + title: Pp(i, h), detail: s, status: n, operation: String(i || "db_restore").trim().toLowerCase(), - progress: Mp(i, n), + progress: Fp(i, n), source: String(t?.name || "").trim() || "maintenance", forceStore: !0 } }; @@ -11175,28 +11175,28 @@ async function Np({ api: e, runtime: t, executionRuntime: n, appRef: r, liveStre "done", "failed" ].includes(n)) { - g(s, c, 0, l); + y(s, c, 0, l); return; } m(s, c, n === "done" || n === "failed" ? 2800 : 1800, l); } catch (e) { console.debug?.(e); } - }, v(t, e, B.DB_RESTORE_STATUS, e._mjrDbRestoreStatusHandler); + }, _(t, e, B.DB_RESTORE_STATUS, e._mjrDbRestoreStatusHandler); let C = (e) => { try { let t = Array.isArray(e?.detail?.ids) ? e.detail.ids.map((e) => String(e || "")).filter(Boolean) : []; if (!t.length) return; let n = s(); - n && d(n, t), Ef(t); + n && d(n, t), kf(t); } catch (e) { console.debug?.(e); } }; - v(t, window, B.ASSETS_DELETED, C), t && typeof t == "object" && (t.api = e, t.assetsDeletedHandler = C), console.debug("[Majoor] Real-time listener registered"); + _(t, window, B.ASSETS_DELETED, C), t && typeof t == "object" && (t.api = e, t.assetsDeletedHandler = C), console.debug("[Majoor] Real-time listener registered"); } // ui/features/runtime/entryDebugApi.ts -function Pp({ resolveNodeStreamModule: e }) { +function Lp({ resolveNodeStreamModule: e }) { typeof window < "u" && (window.MajoorDebug = { exportMetrics: () => window.MajoorMetrics?.exportMetrics?.(), getMetrics: () => window.MajoorMetrics?.getMetricsReport?.(), @@ -11211,16 +11211,16 @@ function Pp({ resolveNodeStreamModule: e }) { }, console.debug?.("[Majoor] NodeStream API: window.MajoorNodeStream.mode, .listAdapters(), .getKnownNodeSets()")); } // ui/features/runtime/benignConsoleNoise.ts -var Fp = ["ResizeObserver loop completed with undelivered notifications.", "ResizeObserver loop limit exceeded"]; -function Ip(e) { +var Rp = ["ResizeObserver loop completed with undelivered notifications.", "ResizeObserver loop limit exceeded"]; +function zp(e) { try { let t = String(e?.message || e || ""); - return Fp.some((e) => t.includes(e)); + return Rp.some((e) => t.includes(e)); } catch { return !1; } } -function Lp() { +function Bp() { if (typeof window > "u") return null; try { window.__MJR_BENIGN_CONSOLE_NOISE_FILTER__?.abort?.(); @@ -11235,7 +11235,7 @@ function Lp() { } let t = (e) => { try { - if (!Ip(e?.message || e?.error)) return; + if (!zp(e?.message || e?.error)) return; e.preventDefault?.(), e.stopImmediatePropagation?.(); } catch (e) { console.debug?.(e); @@ -11260,7 +11260,7 @@ function Lp() { return window.__MJR_BENIGN_CONSOLE_NOISE_FILTER__ = r, r; } // ui/features/geninfo/genInfoOverridePicker.ts -var Rp = "Majoor.GenInfoOverridePicker", zp = "MajoorGenInfoOverride", Bp = L("genInfoOverride.autoFillFromWorkflow", "Auto fill from workflow"), Vp = L("genInfoOverride.pick", "Pick"), Hp = { +var Vp = "Majoor.GenInfoOverridePicker", Hp = "MajoorGenInfoOverride", Up = L("genInfoOverride.autoFillFromWorkflow", "Auto fill from workflow"), Wp = L("genInfoOverride.pick", "Pick"), Gp = { positive_prompt: [ "positive_prompt", "prompt", @@ -11283,7 +11283,7 @@ var Rp = "Majoor.GenInfoOverridePicker", zp = "MajoorGenInfoOverride", Bp = L("g ], vae: ["vae", "vae_name"], clip: ["clip", "clip_name"] -}, Up = [ +}, Kp = [ { field: "positive_prompt", label: "prompt" @@ -11328,14 +11328,14 @@ var Rp = "Majoor.GenInfoOverridePicker", zp = "MajoorGenInfoOverride", Bp = L("g field: "denoise", label: "denoise" } -], Wp = 0x10000000000000000, Gp = !1, Kp = !1; -function qp(e, t) { +], qp = 0x10000000000000000, Jp = !1, Yp = !1; +function Xp(e, t) { let n = (e.widgets ?? []).find((e) => e?.name === t); if (n && n.value !== void 0 && n.value !== null && String(n.value).trim() !== "") return n.value; let r = Array.isArray(e.widgets_values) ? e.widgets_values : [], i = (Array.isArray(e.widgets) ? e.widgets : []).findIndex((e) => e?.name === t); return i >= 0 ? r[i] : void 0; } -function Jp(e, t, n, r, i) { +function Zp(e, t, n, r, i) { if (r == null || String(r).trim() === "") return; let a = `${n}:${String(r).trim()}`; t.has(a) || (t.add(a), e.push({ @@ -11345,42 +11345,42 @@ function Jp(e, t, n, r, i) { source: i })); } -function Yp(e, t, n) { +function Qp(e, t, n) { let r = t.toLowerCase(); - return !!((Hp[e] ?? [e]).some((e) => r === e || r.includes(e)) || e === "positive_prompt" && r === "text" && n.toLowerCase().includes("positive") || e === "negative_prompt" && (r.includes("negative") || n.toLowerCase().includes("negative"))); + return !!((Gp[e] ?? [e]).some((e) => r === e || r.includes(e)) || e === "positive_prompt" && r === "text" && n.toLowerCase().includes("positive") || e === "negative_prompt" && (r.includes("negative") || n.toLowerCase().includes("negative"))); } -function Xp(e, t = null) { +function $p(e, t = null) { let n = [], r = /* @__PURE__ */ new Set(); - for (let { graph: i, label: a } of st(e)) for (let e of at(i)) { - if (String(e?.comfyClass || e?.type || "") === zp) continue; + for (let { graph: i, label: a } of ut(e)) for (let e of ct(i)) { + if (String(e?.comfyClass || e?.type || "") === Hp) continue; let i = String(e?.title || e?.comfyClass || e?.type || `Node ${e?.id ?? ""}`).trim(), o = a === "Workflow" ? i : `${a} / ${i}`; - for (let [t, i] of Object.entries(Hp)) for (let a of i) Jp(n, r, t, qp(e, a), o); + for (let [t, i] of Object.entries(Gp)) for (let a of i) Zp(n, r, t, Xp(e, a), o); let s = Array.isArray(e.widgets) ? e.widgets : [], c = Array.isArray(e.widgets_values) ? e.widgets_values : []; s.forEach((e, a) => { let s = String(e?.name || "").toLowerCase(), l = e?.value ?? c[a]; - s.includes("positive") || s === "text" && String(i).toLowerCase().includes("positive") ? Jp(n, r, "positive_prompt", l, o) : s.includes("negative") && Jp(n, r, "negative_prompt", l, o), t && Yp(t, s, i) && Jp(n, r, t, l, `${o} / ${e?.name || `widget ${a + 1}`}`); + s.includes("positive") || s === "text" && String(i).toLowerCase().includes("positive") ? Zp(n, r, "positive_prompt", l, o) : s.includes("negative") && Zp(n, r, "negative_prompt", l, o), t && Qp(t, s, i) && Zp(n, r, t, l, `${o} / ${e?.name || `widget ${a + 1}`}`); }); } return t ? n.filter((e) => e.field === t).slice(0, 120) : n.slice(0, 80); } -function Zp(e, t) { +function em(e, t) { return (e.widgets ?? []).find((e) => e?.name === t); } -function Qp(e) { - let t = Zp(e, "seed"); +function tm(e) { + let t = em(e, "seed"); t && (t.options = { ...t.options ?? {}, min: -1, - max: Wp, + max: qp, control_after_generate: !1 }); } -function $p(e, t) { +function nm(e, t) { return t === "positive_prompt" ? e?.prompt ?? e?.positive_prompt : t === "negative_prompt" ? e?.negative_prompt ?? e?.negative : t === "loras_json" && Array.isArray(e?.loras) ? JSON.stringify(e.loras) : t === "custom_info_json" && Array.isArray(e?.custom_info) ? JSON.stringify(e.custom_info) : e?.[t]; } -function em(e, t) { +function rm(e, t) { if (!e || !t || typeof t != "object") return 0; - Qp(e); + tm(e); let n = 0; for (let r of [ "positive_prompt", @@ -11398,16 +11398,16 @@ function em(e, t) { "workflow_notes", "custom_info_json" ]) { - let i = $p(t, r); + let i = nm(t, r); if (i == null) continue; - let a = Zp(e, r); - a && (tm(a, i, e, r), nm(a, i), n += 1); + let a = em(e, r); + a && (im(a, i, e, r), am(a, i), n += 1); } return n; } -function tm(e, t, n, r) { +function im(e, t, n, r) { if (r !== "seed") { - Ht(e, t, n); + Gt(e, t, n); return; } let i = Number(t); @@ -11415,15 +11415,15 @@ function tm(e, t, n, r) { e.options = { ...e.options ?? {}, min: -1, - max: Wp, + max: qp, control_after_generate: !1 }, e.value = Math.trunc(i); try { - e.callback?.(e.value, $e()?.canvas ?? null, n, null, e); + e.callback?.(e.value, l()?.canvas ?? null, n, null, e); } catch {} } } -function nm(e, t) { +function am(e, t) { let n = String(t ?? ""), r = [ e?.inputEl, e?.element, @@ -11436,62 +11436,62 @@ function nm(e, t) { e.value = n; } catch {} } -function rm(e, t, n) { - let r = cm({ detail: { output: t } }); - if (r && em(e, r)) try { +function om(e, t, n) { + let r = dm({ detail: { output: t } }); + if (r && rm(e, r)) try { e.setSize?.(e.computeSize?.()), e.graph?.setDirtyCanvas?.(!0, !0), e.graph?.change?.(), n?.graph?.setDirtyCanvas?.(!0, !0), n?.graph?.change?.(), n?.canvas?.setDirty?.(!0, !0), n?.canvas?.draw?.(!0, !0); } catch {} } -function im(e, t, n = null) { - let r = n || t.field, i = Zp(e, r); - i && (tm(i, t.value, e, r), nm(i, t.value)); +function sm(e, t, n = null) { + let r = n || t.field, i = em(e, r); + i && (im(i, t.value, e, r), am(i, t.value)); } -function am(e) { +function cm(e) { return !e || e.value === void 0 || e.value === null || String(e.value).trim() === ""; } -function om(e, t) { - let n = Xp(t), r = 0; - for (let t of Object.keys(Hp)) { - let i = Zp(e, t); - if (!i || !am(i)) continue; +function lm(e, t) { + let n = $p(t), r = 0; + for (let t of Object.keys(Gp)) { + let i = em(e, t); + if (!i || !cm(i)) continue; let a = n.find((e) => e.field === t); - a && (tm(i, a.value, e, t), nm(i, a.value), r += 1); + a && (im(i, a.value, e, t), am(i, a.value), r += 1); } - return t?.graph?.setDirtyCanvas?.(!0, !0), t?.graph?.change?.(), F({ + return t?.graph?.setDirtyCanvas?.(!0, !0), t?.graph?.change?.(), x({ summary: "Majoor Gen Info", detail: r ? `Filled ${r} empty override fields.` : "No empty matching fields found." }, r ? "success" : "warning", 3e3), r; } -function sm(e, t) { - if (e && String(e?.comfyClass || e?.type || "") === zp && (Qp(e), !(e.widgets ?? []).some((e) => e?.name === Bp) && typeof e.addWidget == "function")) { - e.addWidget("button", Bp, null, () => om(e, t)); - for (let n of Up) { - let r = `${Vp} ${n.label}`; - (e.widgets ?? []).some((e) => e?.name === r) || e.addWidget("button", r, null, () => um(e, t, n.field)); +function um(e, t) { + if (e && String(e?.comfyClass || e?.type || "") === Hp && (tm(e), !(e.widgets ?? []).some((e) => e?.name === Up) && typeof e.addWidget == "function")) { + e.addWidget("button", Up, null, () => lm(e, t)); + for (let n of Kp) { + let r = `${Wp} ${n.label}`; + (e.widgets ?? []).some((e) => e?.name === r) || e.addWidget("button", r, null, () => pm(e, t, n.field)); } try { e.setSize?.(e.computeSize?.()), t?.graph?.setDirtyCanvas?.(!0, !0); } catch {} } } -function cm(e) { +function dm(e) { let t = e?.detail?.output, n = t?.majoor_geninfo_override ?? t?.ui?.majoor_geninfo_override, r = Array.isArray(n) ? n[0] : n; return r && typeof r == "object" ? r : null; } -function lm(e) { - if (Kp) return; +function fm(e) { + if (Yp) return; let t = e?.api; - t && typeof t.addEventListener == "function" && (Kp = !0, t.addEventListener("executed", (t) => { + t && typeof t.addEventListener == "function" && (Yp = !0, t.addEventListener("executed", (t) => { let n = t?.detail?.node ?? t?.detail?.display_node; if (!n) return; - let r = ot(e, n); - r && String(r?.comfyClass || r?.type || "") === zp && rm(r, t?.detail?.output, e); + let r = lt(e, n); + r && String(r?.comfyClass || r?.type || "") === Hp && om(r, t?.detail?.output, e); })); } -function um(e, t, n = null) { - let r = Xp(t, n); +function pm(e, t, n = null) { + let r = $p(t, n); if (!r.length) { - F({ + x({ summary: "Majoor Gen Info", detail: n ? `No widget value found for ${n}.` : "No workflow parameters found." }, "warning", 3e3); @@ -11510,60 +11510,60 @@ function um(e, t, n = null) { for (let t of r) { let r = document.createElement("button"); r.type = "button", r.style.cssText = "width:100%;display:grid;grid-template-columns:130px 1fr 150px;gap:8px;text-align:left;background:#2b2b2b;color:#eee;border:1px solid #3d3d3d;border-radius:5px;padding:7px;margin:5px 0;cursor:pointer", r.innerHTML = `${t.label}`, r.children[1].textContent = String(t.value), r.children[2].textContent = t.source, r.onclick = () => { - im(e, t, n), i.remove(); + sm(e, t, n), i.remove(); }, a.appendChild(r); } i.appendChild(a), a.querySelector("[data-close]")?.addEventListener("click", () => i.remove()), i.addEventListener("click", (e) => { e.target === i && i.remove(); }), document.body.appendChild(i); } -function dm(e, t) { - if (String(e?.comfyClass || e?.type || "") !== zp) return []; +function mm(e, t) { + if (String(e?.comfyClass || e?.type || "") !== Hp) return []; let n = [{ content: L("genInfoOverride.pickFromWorkflow", "Pick Gen Info from workflow"), - callback: () => um(e, t) + callback: () => pm(e, t) }]; - for (let r of Up) n.push({ + for (let r of Kp) n.push({ content: `Pick ${r.label}`, - callback: () => um(e, t, r.field) + callback: () => pm(e, t, r.field) }); return n.push({ - content: Bp, - callback: () => om(e, t) + content: Up, + callback: () => lm(e, t) }), n; } -function fm(e = null) { - if (Gp) return; - let t = e || $e(); - !t || typeof t.registerExtension != "function" ? setTimeout(() => fm(e), 100) : (Gp = !0, lm(t), t.registerExtension({ - name: Rp, +function hm(e = null) { + if (Jp) return; + let t = e || l(); + !t || typeof t.registerExtension != "function" ? setTimeout(() => hm(e), 100) : (Jp = !0, fm(t), t.registerExtension({ + name: Vp, async nodeCreated(e) { - sm(e, t); + um(e, t); }, getNodeMenuItems(e) { - return dm(e, t); + return mm(e, t); } }), setTimeout(() => { - for (let { graph: e } of st(t)) for (let n of at(e)) sm(n, t); + for (let { graph: e } of ut(t)) for (let n of ct(e)) um(n, t); }, 0)); } // ui/vue/composables/useDragDrop.ts -function pm() { +function gm() { let e = null; - Zn(() => { + er(() => { try { - e = ks() ?? null; + e = Ms() ?? null; } catch (e) { console.warn("[Majoor] useDragDrop: init failed", e); } - }), ir(() => { + }), sr(() => { try { e?.({ force: !0 }); } catch (e) { console.debug?.(e); } try { - As({ force: !0 }); + Ns({ force: !0 }); } catch (e) { console.debug?.(e); } @@ -11571,10 +11571,10 @@ function pm() { }); } // ui/vue/GlobalRuntime.vue -var mm = /* @__PURE__ */ tr({ +var _m = /* @__PURE__ */ ir({ __name: "GlobalRuntime", setup(e) { - let t = er(() => import("./chunks/ViewerPortal-Sv96pbcb.js")), n = Q(!1), r = [ + let t = rr(() => import("./chunks/ViewerPortal-CpLDC7XS.js")), n = Q(!1), r = [ B.OPEN_VIEWER, B.MFV_OPEN, B.MFV_TOGGLE, @@ -11587,7 +11587,7 @@ var mm = /* @__PURE__ */ tr({ if (n.value) return; n.value = !0; let t = String(e?.type || ""), r = e?.detail ?? null; - t && t !== B.OPEN_VIEWER && qn(() => { + t && t !== B.OPEN_VIEWER && Xn(() => { try { window.dispatchEvent(new CustomEvent(t, { detail: r })); } catch (e) { @@ -11595,21 +11595,21 @@ var mm = /* @__PURE__ */ tr({ } }); } - return pm(), Zn(() => { + return gm(), er(() => { for (let e of r) try { window.addEventListener(e, i, { once: !1 }); } catch (e) { console.debug?.(e); } - }), ir(() => { + }), sr(() => { for (let e of r) try { window.removeEventListener(e, i); } catch (e) { console.debug?.(e); } - }), (e, r) => n.value ? (q(), Jn(Z(t), { key: 0 })) : W("", !0); + }), (e, r) => n.value ? (q(), Zn(Z(t), { key: 0 })) : W("", !0); } -}), hm = { +}), vm = { gridRenderCount: 0, gridRenderTotalMs: 0, searchQueryCount: 0, @@ -11620,20 +11620,20 @@ var mm = /* @__PURE__ */ tr({ thumbnailLoadCount: 0, thumbnailLoadFailures: 0, errorCounts: {} -}, gm = /* @__PURE__ */ new Map(); -function _m(e) { +}, ym = /* @__PURE__ */ new Map(); +function bm(e) { let t = performance.now(); - gm.set(e, t); + ym.set(e, t); try { performance.mark(`${e}-start`); } catch {} } -function vm(e, t) { - let n = gm.get(e); +function xm(e, t) { + let n = ym.get(e); if (!n) return console.warn(`[Majoor Metrics] Timer not found: ${e}`), 0; let r = performance.now() - n; - if (gm.delete(e), t) { - let e = `${t}Count`, n = `${t}TotalMs`, i = hm; + if (ym.delete(e), t) { + let e = `${t}Count`, n = `${t}TotalMs`, i = vm; typeof i[e] == "number" && (i[e]++, i[n] += r); } r > 100 && console.log(`[Majoor Metrics] ${e}: ${r.toFixed(2)}ms`); @@ -11642,15 +11642,15 @@ function vm(e, t) { } catch {} return r; } -function ym(e) { - return gm.has(e); +function Sm(e) { + return ym.has(e); } -function bm(e) { +function Cm(e) { try { performance.mark(`${e}-start`); } catch {} } -function xm(e) { +function wm(e) { try { performance.mark(`${e}-end`), performance.measure(e, `${e}-start`, `${e}-end`); let t = performance.getEntriesByName(e)[0]?.duration || 0; @@ -11659,47 +11659,47 @@ function xm(e) { return null; } } -function Sm(e, t = !1) { - hm.apiCallCount++, hm.apiCallTotalMs += e, t && hm.apiErrorCount++; +function Tm(e, t = !1) { + vm.apiCallCount++, vm.apiCallTotalMs += e, t && vm.apiErrorCount++; } -function Cm(e) { - hm.gridRenderCount++, hm.gridRenderTotalMs += e; +function Em(e) { + vm.gridRenderCount++, vm.gridRenderTotalMs += e; } -function wm(e) { - hm.searchQueryCount++, hm.searchQueryTotalMs += e; +function Dm(e) { + vm.searchQueryCount++, vm.searchQueryTotalMs += e; } -function Tm(e) { - hm.thumbnailLoadCount++, e || hm.thumbnailLoadFailures++; +function Om(e) { + vm.thumbnailLoadCount++, e || vm.thumbnailLoadFailures++; } -function Em(e, t) { - hm.errorCounts[e] = (hm.errorCounts[e] || 0) + 1; +function km(e, t) { + vm.errorCounts[e] = (vm.errorCounts[e] || 0) + 1; } -function Dm() { +function Am() { return { - ...hm, + ...vm, averages: { - gridRenderMs: hm.gridRenderCount > 0 ? hm.gridRenderTotalMs / hm.gridRenderCount : 0, - searchQueryMs: hm.searchQueryCount > 0 ? hm.searchQueryTotalMs / hm.searchQueryCount : 0, - apiCallMs: hm.apiCallCount > 0 ? hm.apiCallTotalMs / hm.apiCallCount : 0 + gridRenderMs: vm.gridRenderCount > 0 ? vm.gridRenderTotalMs / vm.gridRenderCount : 0, + searchQueryMs: vm.searchQueryCount > 0 ? vm.searchQueryTotalMs / vm.searchQueryCount : 0, + apiCallMs: vm.apiCallCount > 0 ? vm.apiCallTotalMs / vm.apiCallCount : 0 }, rates: { - apiErrorRate: hm.apiCallCount > 0 ? (hm.apiErrorCount / hm.apiCallCount * 100).toFixed(2) + "%" : "0%", - thumbnailFailureRate: hm.thumbnailLoadCount > 0 ? (hm.thumbnailLoadFailures / hm.thumbnailLoadCount * 100).toFixed(2) + "%" : "0%" + apiErrorRate: vm.apiCallCount > 0 ? (vm.apiErrorCount / vm.apiCallCount * 100).toFixed(2) + "%" : "0%", + thumbnailFailureRate: vm.thumbnailLoadCount > 0 ? (vm.thumbnailLoadFailures / vm.thumbnailLoadCount * 100).toFixed(2) + "%" : "0%" } }; } -function Om(e) { - let t = `${e}Count`, n = `${e}TotalMs`, r = hm, i = r[t], a = r[n]; +function jm(e) { + let t = `${e}Count`, n = `${e}TotalMs`, r = vm, i = r[t], a = r[n]; return i > 0 ? a / i : 0; } -function km() { - let e = hm; +function Mm() { + let e = vm; Object.keys(e).forEach((t) => { typeof e[t] == "number" ? e[t] = 0 : typeof e[t] == "object" && (e[t] = {}); - }), gm.clear(), console.log("[Majoor Metrics] Metrics reset"); + }), ym.clear(), console.log("[Majoor Metrics] Metrics reset"); } -function Am() { - let e = Dm(); +function Nm() { + let e = Am(); console.group("[Majoor Assets Manager] Performance Metrics"), console.table({ "Grid Renders": e.gridRenderCount, "Avg Grid Render": `${e.averages.gridRenderMs.toFixed(2)}ms`, @@ -11712,26 +11712,69 @@ function Am() { "Thumbnail Loads": e.thumbnailLoadCount, "Thumbnail Failures": e.thumbnailLoadFailures, "Failure Rate": e.rates.thumbnailFailureRate - }), Object.keys(hm.errorCounts).length > 0 && console.log("Error Counts:", hm.errorCounts), console.groupEnd(); + }), Object.keys(vm.errorCounts).length > 0 && console.log("Error Counts:", vm.errorCounts), console.groupEnd(); } typeof window < "u" && (window.MajoorMetrics = { - startTimer: _m, - endTimer: vm, - hasTimer: ym, - mark: bm, - measure: xm, - trackApiCall: Sm, - trackGridRender: Cm, - trackSearchQuery: wm, - trackThumbnailLoad: Tm, - trackError: Em, - getMetricsReport: Dm, - getAverageDuration: Om, - resetMetrics: km, - exportMetrics: Am + startTimer: bm, + endTimer: xm, + hasTimer: Sm, + mark: Cm, + measure: wm, + trackApiCall: Tm, + trackGridRender: Em, + trackSearchQuery: Dm, + trackThumbnailLoad: Om, + trackError: km, + getMetricsReport: Am, + getAverageDuration: jm, + resetMetrics: Mm, + exportMetrics: Nm }); +// ui/features/status/emptyTrashAction.ts +function Pm(e, t, n, r) { + try { + return e.translate(t, n, r); + } catch { + return n; + } +} +async function Fm(e) { + let t = (t, n, r) => Pm(e, t, n, r), n = null; + try { + n = await e.getStatus(); + } catch (n) { + return e.toast(String(n?.message || n || t("toast.trashStatusFailed", "Failed to check trash")), "error", 4500), "error"; + } + if (!n?.ok) return e.toast(String(n?.error || t("toast.trashStatusFailed", "Failed to check trash")), "error", 4500), "error"; + let r = n?.data || {}; + if (r?.supported === !1) return e.toast(t("toast.trashUnsupported", "Trash is not supported on this platform"), "info", 3e3), "unsupported"; + let i = Number(r?.count) || 0; + if (!i) return e.toast(t("toast.trashIsEmpty", "Trash is empty"), "info", 2200), "empty"; + let a = Number(r?.bytes) || 0, o = t("dialog.emptyTrash.confirm", "Permanently delete {count} trashed files ({size}) that came from Majoor's folders? This cannot be undone.", { + count: i, + size: e.formatBytes(a) + }), s = !1; + try { + s = !!await e.confirm(o, t("dialog.emptyTrash.title", "Empty trash?")); + } catch { + s = !1; + } + if (!s) return "cancelled"; + let c = null; + try { + c = await e.empty(); + } catch (n) { + return e.toast(String(n?.message || n || t("toast.trashEmptyFailed", "Failed to empty trash")), "error", 4500), "error"; + } + if (!c?.ok) return e.toast(String(c?.error || t("toast.trashEmptyFailed", "Failed to empty trash")), "error", 4500), "error"; + let l = Number(c?.data?.removed) || 0, u = Array.isArray(c?.data?.failed) ? c.data.failed : [], d = Number(c?.data?.skipped_dirs) || 0; + return e.toast(t("toast.trashRemoved", "{count} files removed ({size})", { + count: l, + size: e.formatBytes(Number(c?.data?.bytes) || 0) + }), "success", 3200), u.length && e.toast(t("toast.trashFailures", "{count} entries could not be removed", { count: u.length }), "warning", 4500), d > 0 && e.toast(t("toast.trashSkippedDirs", "{count} directories in the trash were not removed", { count: d }), "warning", 4500), "removed"; +} // ui/features/status/StatusDot.ts -var jm = [{ +var Im = [{ key: "exiftool", labelKey: "tool.exiftool", hintKey: "tool.exiftool.hint" @@ -11739,24 +11782,24 @@ var jm = [{ key: "ffprobe", labelKey: "tool.ffprobe", hintKey: "tool.ffprobe.hint" -}], Mm = !1, Nm = null, Pm = null, Fm = "__MJR_STATUS_DOT_CACHE__", Im = { +}], Lm = !1, Rm = null, zm = null, Bm = "__MJR_STATUS_DOT_CACHE__", Vm = { ACTIVE: "active", COOLDOWN: "cooldown", IDLE: "idle" -}, Lm = { - [Im.ACTIVE]: 2e3, - [Im.COOLDOWN]: 1e4, - [Im.IDLE]: 6e4 +}, Hm = { + [Vm.ACTIVE]: 2e3, + [Vm.COOLDOWN]: 1e4, + [Vm.IDLE]: 6e4 }; -function Rm(e) { - Mm = !!e; +function Um(e) { + Lm = !!e; try { - globalThis._mjrMaintenanceActive = Mm; + globalThis._mjrMaintenanceActive = Lm; } catch (e) { console.debug?.(e); } } -function zm(e) { +function Wm(e) { let t = Number(e); if (!Number.isFinite(t) || t <= 0) return "0 B"; let n = [ @@ -11770,7 +11813,7 @@ function zm(e) { let a = r >= 100 ? 0 : r >= 10 ? 1 : 2; return `${r.toFixed(a)} ${n[i]}`; } -function Bm(e, t, n = null) { +function Gm(e, t, n = null) { if (e && (e.replaceChildren(), (Array.isArray(t) ? t.filter((e) => e != null && String(e).trim() !== "") : []).forEach((t, n) => { n > 0 && e.appendChild(document.createElement("br")), e.appendChild(document.createTextNode(String(t))); }), n != null && String(n).trim() !== "")) { @@ -11779,7 +11822,7 @@ function Bm(e, t, n = null) { t.style.fontSize = "11px", t.style.opacity = "0.6", t.textContent = String(n), e.appendChild(t); } } -function Vm(e, t = []) { +function Km(e, t = []) { if (!e) return; let n = Array.isArray(t) ? t.filter((e) => e && String(e.label || "").trim()) : []; if (!n.length) return; @@ -11799,7 +11842,7 @@ function Vm(e, t = []) { } e.appendChild(r); } -function Hm(e, { totalAssets: t = 0, withWorkflows: n = 0, withGenerationData: r = 0 } = {}) { +function qm(e, { totalAssets: t = 0, withWorkflows: n = 0, withGenerationData: r = 0 } = {}) { let i = Math.max(0, Number(t || e?.total_assets || 0) || 0); if (i <= 0) return []; let a = (e, t = i) => { @@ -11845,13 +11888,13 @@ function Hm(e, { totalAssets: t = 0, withWorkflows: n = 0, withGenerationData: r } : null ].filter(Boolean); } -function Um(e, t, n) { +function Jm(e, t, n) { if (!e) return; e.replaceChildren(), e.appendChild(document.createTextNode(String(t || ""))), e.appendChild(document.createElement("br")); let r = document.createElement("span"); r.style.fontSize = "11px", r.style.opacity = "0.7", r.textContent = String(n || ""), e.appendChild(r); } -function Wm(e, t = "neutral", n = {}) { +function Ym(e, t = "neutral", n = {}) { if (!e) return; let r = n?.toast !== !1, i = { neutral: { @@ -11910,30 +11953,30 @@ function Wm(e, t = "neutral", n = {}) { workflow: L("status.toast.workflow", "Index status: workflow scope") }, i = t === "error" ? "error" : t === "warning" ? "warning" : t === "success" ? "success" : "info"; try { - F(r[t] || r.info, i, 1800, { noHistory: !0 }); + x(r[t] || r.info, i, 1800, { noHistory: !0 }); } catch (e) { console.debug?.(e); } } } } -function Gm(e) { +function Xm(e) { let t = String(e || "").toLowerCase(); return t === "all" ? L("scope.allFull", "All (Inputs + Outputs)") : t === "input" || t === "inputs" ? L("scope.input", "Inputs") : t === "custom" ? L("scope.custom", "Browser") : t === "workflow" ? L("scope.workflow", "Workflow") : L("scope.output", "Outputs"); } -function Km(e, t = "") { - if (!e || typeof e != "object") return t ? L("status.watcher.disabledScoped", "Watcher: disabled ({scope})", { scope: Gm(t) }) : L("status.watcher.disabled", "Watcher: disabled"); +function Zm(e, t = "") { + if (!e || typeof e != "object") return t ? L("status.watcher.disabledScoped", "Watcher: disabled ({scope})", { scope: Xm(t) }) : L("status.watcher.disabled", "Watcher: disabled"); let n = !!e.enabled, r = e.scope ? String(e.scope) : ""; - return n ? r ? L("status.watcher.enabledScoped", `Watcher: enabled (${r})`, { scope: Gm(r) }) : L("status.watcher.enabled", "Watcher: enabled") : r || t ? L("status.watcher.disabledScoped", "Watcher: disabled ({scope})", { scope: Gm(t && r && r !== t ? t : r || t) }) : L("status.watcher.disabled", "Watcher: disabled"); + return n ? r ? L("status.watcher.enabledScoped", `Watcher: enabled (${r})`, { scope: Xm(r) }) : L("status.watcher.enabled", "Watcher: enabled") : r || t ? L("status.watcher.disabledScoped", "Watcher: disabled ({scope})", { scope: Xm(t && r && r !== t ? t : r || t) }) : L("status.watcher.disabled", "Watcher: disabled"); } -function qm(e = "status-action") { +function Qm(e = "status-action") { try { window?.dispatchEvent?.(new CustomEvent("mjr:reload-grid", { detail: { reason: String(e || "status-action") } })); } catch (e) { console.debug?.(e); } } -function Jm(e = "status-action", t = {}) { +function $m(e = "status-action", t = {}) { try { window?.dispatchEvent?.(new CustomEvent("mjr-grid-dirty", { detail: { reason: String(e || "status-action"), @@ -11943,14 +11986,14 @@ function Jm(e = "status-action", t = {}) { console.debug?.(e); } } -async function Ym(e = "") { - return await jt(L("dialog.vectorsReset.keepQuestion", "Keep existing AI vectors?\n\nConfirm = keep vectors\nCancel = continue without vectors"), e || L("dialog.vectorsReset.title", "AI vectors")); +async function eh(e = "") { + return await Pt(L("dialog.vectorsReset.keepQuestion", "Keep existing AI vectors?\n\nConfirm = keep vectors\nCancel = continue without vectors"), e || L("dialog.vectorsReset.title", "AI vectors")); } -function Xm(e = {}) { +function th(e = {}) { let t = typeof e?.getScanContext == "function" ? e.getScanContext : null; - Rm(!1); + Um(!1); let n = document.createElement("div"); - n.style.cssText = "margin-bottom: 20px; padding: 12px; background: var(--bg-color, #1a1a1a); border-radius: 6px; border: 1px solid var(--border-color, #333); cursor: pointer; transition: all 0.2s;", Wm(n, "info", { toast: !1 }); + n.style.cssText = "margin-bottom: 20px; padding: 12px; background: var(--bg-color, #1a1a1a); border-radius: 6px; border: 1px solid var(--border-color, #333); cursor: pointer; transition: all 0.2s;", Ym(n, "info", { toast: !1 }); let r = document.createElement("div"); r.style.cssText = "display: flex; align-items: center; gap: 10px; margin-bottom: 8px;"; let i = document.createElement("span"); @@ -11967,21 +12010,21 @@ function Xm(e = {}) { l.id = "mjr-status-text", l.style.cssText = "font-size: 12px; opacity: 0.8;", l.textContent = L("status.checking"); let u = document.createElement("div"); u.id = "mjr-status-capabilities", u.style.cssText = "font-size: 11px; opacity: 0.75; margin-top: 10px; display: flex; gap: 6px; flex-wrap: wrap;", u.textContent = L("status.discoveringTools"), c.appendChild(l), c.appendChild(u); + let d = document.createElement("div"); + d.id = "mjr-tools-status", d.style.cssText = "font-size: 11px; opacity: 0.7; margin-top: 10px;", d.textContent = L("status.toolStatusChecking", "Tool status: checking..."), c.appendChild(d); let f = document.createElement("div"); - f.id = "mjr-tools-status", f.style.cssText = "font-size: 11px; opacity: 0.7; margin-top: 10px;", f.textContent = L("status.toolStatusChecking", "Tool status: checking..."), c.appendChild(f); - let p = document.createElement("div"); - p.style.cssText = "margin-top: 10px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap;"; - let m = document.createElement("select"); - m.style.cssText = "\n min-width: 240px;\n padding: 4px 8px;\n font-size: 11px;\n border-radius: 6px;\n border: 1px solid rgba(255,255,255,0.2);\n background: rgba(255,255,255,0.04);\n color: inherit;\n ", m.title = L("status.dbBackupSelectHint", "Select a DB backup to restore"); - let h = !1, _ = null, v = (e) => { - m.replaceChildren(); + f.style.cssText = "margin-top: 10px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap;"; + let p = document.createElement("select"); + p.style.cssText = "\n min-width: 240px;\n padding: 4px 8px;\n font-size: 11px;\n border-radius: 6px;\n border: 1px solid rgba(255,255,255,0.2);\n background: rgba(255,255,255,0.04);\n color: inherit;\n ", p.title = L("status.dbBackupSelectHint", "Select a DB backup to restore"); + let m = !1, g = null, v = (e) => { + p.replaceChildren(); let t = document.createElement("option"); - t.value = "", t.textContent = String(e || ""), t.disabled = !0, t.selected = !0, m.appendChild(t), h = !1, m.disabled = !0, _ && (_.disabled = !0); + t.value = "", t.textContent = String(e || ""), t.disabled = !0, t.selected = !0, p.appendChild(t), m = !1, p.disabled = !0, g && (g.disabled = !0); }; v(L("status.dbBackupLoading", "Loading DB backups...")); let b = async (e = "") => { try { - let t = await pe(); + let t = await Ye(); if (!t?.ok) { v(L("status.dbBackupNone", "No DB backup found")); return; @@ -11991,57 +12034,57 @@ function Xm(e = {}) { v(L("status.dbBackupNone", "No DB backup found")); return; } - m.replaceChildren(); + p.replaceChildren(); let r = !1; for (let t of n) { let n = String(t?.name || ""); if (!n) continue; - let i = Number(t?.mtime || 0), a = Number(t?.size_bytes || 0), o = i > 0 ? (/* @__PURE__ */ new Date(i * 1e3)).toLocaleString() : "", s = `${n}${o ? ` (${o}` : ""}${a > 0 ? `, ${zm(a)}` : ""}${o ? ")" : ""}`, c = document.createElement("option"); - c.value = n, c.textContent = s, e && e === n && (c.selected = !0, r = !0), m.appendChild(c); + let i = Number(t?.mtime || 0), a = Number(t?.size_bytes || 0), o = i > 0 ? (/* @__PURE__ */ new Date(i * 1e3)).toLocaleString() : "", s = `${n}${o ? ` (${o}` : ""}${a > 0 ? `, ${Wm(a)}` : ""}${o ? ")" : ""}`, c = document.createElement("option"); + c.value = n, c.textContent = s, e && e === n && (c.selected = !0, r = !0), p.appendChild(c); } - h = m.childNodes.length > 0, m.disabled = !h, h && !r && m.childNodes[0] && (m.value = String(m.childNodes[0]?.value || "")), _ && (_.disabled = !h); + m = p.childNodes.length > 0, p.disabled = !m, m && !r && p.childNodes[0] && (p.value = String(p.childNodes[0]?.value || "")), g && (g.disabled = !m); } catch { v(L("status.dbBackupNone", "No DB backup found")); } }; - b(), p.appendChild(m); - let x = document.createElement("button"); - x.type = "button", x.textContent = L("btn.dbSave", "Save DB"), x.title = L("status.dbSaveHint", "Save a DB snapshot into archive folder"), x.style.cssText = "\n padding: 5px 10px;\n font-size: 11px;\n border-radius: 6px;\n border: 1px solid rgba(120,200,255,0.35);\n background: transparent;\n color: inherit;\n cursor: pointer;\n ", x.onclick = async (e) => { - e.stopPropagation(), Rm(!0); - let r = x.textContent, a = !!_?.disabled; - x.disabled = !0, _ && (_.disabled = !0), x.textContent = L("btn.saving", "Saving..."), i.style.background = "var(--mjr-status-info, #64B5F6)", Wm(n, "info"); + b(), f.appendChild(p); + let C = document.createElement("button"); + C.type = "button", C.textContent = L("btn.dbSave", "Save DB"), C.title = L("status.dbSaveHint", "Save a DB snapshot into archive folder"), C.style.cssText = "\n padding: 5px 10px;\n font-size: 11px;\n border-radius: 6px;\n border: 1px solid rgba(120,200,255,0.35);\n background: transparent;\n color: inherit;\n cursor: pointer;\n ", C.onclick = async (e) => { + e.stopPropagation(), Um(!0); + let r = C.textContent, a = !!g?.disabled; + C.disabled = !0, g && (g.disabled = !0), C.textContent = L("btn.saving", "Saving..."), i.style.background = "var(--mjr-status-info, #64B5F6)", Ym(n, "info"); try { - let e = await Ce(); + let e = await Pe(); if (e?.ok) { let t = String(e?.data?.name || "").trim(), n = Number(e?.data?.size_bytes || 0); - F(L("toast.dbSaveSuccess", "Database backup saved"), "success", 2200, { history: { + x(L("toast.dbSaveSuccess", "Database backup saved"), "success", 2200, { history: { title: L("btn.dbSave", "Save DB"), - detail: t ? `${t}${n > 0 ? ` | ${zm(n)}` : ""}` : L("toast.dbSaveSuccess", "Database backup saved"), + detail: t ? `${t}${n > 0 ? ` | ${Wm(n)}` : ""}` : L("toast.dbSaveSuccess", "Database backup saved"), operation: "save_db", source: t || "archive", forceStore: !0 } }), await b(t); - } else F(e?.error || L("toast.dbSaveFailed", "Failed to save DB backup"), "error"); + } else x(e?.error || L("toast.dbSaveFailed", "Failed to save DB backup"), "error"); } catch (e) { - F(e?.message || L("toast.dbSaveFailed", "Failed to save DB backup"), "error"); + x(e?.message || L("toast.dbSaveFailed", "Failed to save DB backup"), "error"); } finally { - Rm(!1), x.disabled = !1, _ && (_.disabled = a || !h), x.textContent = r; + Um(!1), C.disabled = !1, g && (g.disabled = a || !m), C.textContent = r; try { let e = t ? t() : null; - await ah(i, l, u, e, null, { force: !0 }); + await uh(i, l, u, e, null, { force: !0 }); } catch (e) { console.debug?.(e); } } - }, p.appendChild(x), _ = document.createElement("button"), _.type = "button", _.textContent = L("btn.dbRestore", "Restore"), _.title = L("status.dbRestoreHint", "Restore selected DB backup"), _.style.cssText = "\n padding: 5px 10px;\n font-size: 11px;\n border-radius: 6px;\n border: 1px solid rgba(255,180,80,0.35);\n background: transparent;\n color: inherit;\n cursor: pointer;\n ", _.onclick = async (e) => { + }, f.appendChild(C), g = document.createElement("button"), g.type = "button", g.textContent = L("btn.dbRestore", "Restore"), g.title = L("status.dbRestoreHint", "Restore selected DB backup"), g.style.cssText = "\n padding: 5px 10px;\n font-size: 11px;\n border-radius: 6px;\n border: 1px solid rgba(255,180,80,0.35);\n background: transparent;\n color: inherit;\n cursor: pointer;\n ", g.onclick = async (e) => { e.stopPropagation(); - let r = String(m.value || ""); + let r = String(p.value || ""); if (!r) { - F(L("toast.dbRestoreSelect", "Select a DB backup first"), "warning", 2e3); + x(L("toast.dbRestoreSelect", "Select a DB backup first"), "warning", 2e3); return; } - if (!await jt(`${L("dialog.dbRestore.confirm", "Restore selected DB backup? Current DB will be replaced.")}\n\n${r}`, L("btn.dbRestore", "Restore DB"))) return; - F(L("toast.dbRestoreStarted", "DB restore started"), "info", 1800, { history: { + if (!await Pt(`${L("dialog.dbRestore.confirm", "Restore selected DB backup? Current DB will be replaced.")}\n\n${r}`, L("btn.dbRestore", "Restore DB"))) return; + x(L("toast.dbRestoreStarted", "DB restore started"), "info", 1800, { history: { trackId: "maintenance:restore_db", title: L("btn.dbRestore", "Restore DB"), detail: r, @@ -12049,49 +12092,49 @@ function Xm(e = {}) { source: r, status: "started", forceStore: !0 - } }), Rm(!0); - let a = _.textContent, o = !!x.disabled; - _.disabled = !0, x.disabled = !0, m.disabled = !0, _.textContent = L("btn.restoring", "Restoring..."), i.style.background = "var(--mjr-status-warning, #FFA726)", Wm(n, "warning"); + } }), Um(!0); + let a = g.textContent, o = !!C.disabled; + g.disabled = !0, C.disabled = !0, p.disabled = !0, g.textContent = L("btn.restoring", "Restoring..."), i.style.background = "var(--mjr-status-warning, #FFA726)", Ym(n, "warning"); try { - let e = await xe({ + let e = await Ve({ name: r, useLatest: !1 }); - e?.ok ? await b(String(e?.data?.name || r || "")) : F(e?.error || L("toast.dbRestoreFailed", "Failed to restore DB backup"), "error"); + e?.ok ? await b(String(e?.data?.name || r || "")) : x(e?.error || L("toast.dbRestoreFailed", "Failed to restore DB backup"), "error"); } catch (e) { - F(e?.message || L("toast.dbRestoreFailed", "Failed to restore DB backup"), "error"); + x(e?.message || L("toast.dbRestoreFailed", "Failed to restore DB backup"), "error"); } finally { - Rm(!1), _.disabled = !h, x.disabled = o, m.disabled = !h, _.textContent = a, qm("db-restore"); + Um(!1), g.disabled = !m, C.disabled = o, p.disabled = !m, g.textContent = a, Qm("db-restore"); try { let e = t ? t() : null; - await ah(i, l, u, e, null, { force: !0 }); + await uh(i, l, u, e, null, { force: !0 }); } catch (e) { console.debug?.(e); } } - }, p.appendChild(_), c.appendChild(p); - let S = document.createElement("div"); - S.style.cssText = "margin-top: 10px; display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap;"; - let C = document.createElement("div"); - C.style.cssText = "margin-top: 8px; font-size: 11px; opacity: 0.9; line-height: 1.35; white-space: pre-wrap;", C.textContent = ""; - let w = (e, t = "neutral") => { + }, f.appendChild(g), c.appendChild(f); + let w = document.createElement("div"); + w.style.cssText = "margin-top: 10px; display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap;"; + let T = document.createElement("div"); + T.style.cssText = "margin-top: 8px; font-size: 11px; opacity: 0.9; line-height: 1.35; white-space: pre-wrap;", T.textContent = ""; + let E = (e, t = "neutral") => { let n = String(e || "").trim(); - C.textContent = n, n ? t === "error" ? (C.style.color = "var(--error-text-color, #ff8a80)", C.style.opacity = "1") : t === "success" ? (C.style.color = "var(--success-text-color, #a5d6a7)", C.style.opacity = "1") : t === "info" ? (C.style.color = "var(--input-text, #cfd8dc)", C.style.opacity = "0.95") : (C.style.color = "inherit", C.style.opacity = "0.9") : (C.style.color = "inherit", C.style.opacity = "0.9"); - }, T, D = document.createElement("button"); - D.type = "button", D.textContent = L("btn.resetIndex"), D.title = L("status.resetIndexHint", "Reset index cache (requires allowResetIndex in settings)."), D.style.cssText = "\n padding: 5px 12px;\n font-size: 11px;\n border-radius: 6px;\n border: 1px solid rgba(255,255,255,0.25);\n background: transparent;\n color: inherit;\n cursor: pointer;\n transition: border 0.2s, background 0.2s;\n ", D.onmouseenter = () => { - D.style.borderColor = "rgba(255,255,255,0.6)", D.style.background = "rgba(255,255,255,0.08)"; - }, D.onmouseleave = () => { - D.style.borderColor = "rgba(255,255,255,0.25)", D.style.background = "transparent"; - }, D.onclick = async (e) => { + T.textContent = n, n ? t === "error" ? (T.style.color = "var(--error-text-color, #ff8a80)", T.style.opacity = "1") : t === "success" ? (T.style.color = "var(--success-text-color, #a5d6a7)", T.style.opacity = "1") : t === "info" ? (T.style.color = "var(--input-text, #cfd8dc)", T.style.opacity = "0.95") : (T.style.color = "inherit", T.style.opacity = "0.9") : (T.style.color = "inherit", T.style.opacity = "0.9"); + }, D, O = document.createElement("button"); + O.type = "button", O.textContent = L("btn.resetIndex"), O.title = L("status.resetIndexHint", "Reset index cache (requires allowResetIndex in settings)."), O.style.cssText = "\n padding: 5px 12px;\n font-size: 11px;\n border-radius: 6px;\n border: 1px solid rgba(255,255,255,0.25);\n background: transparent;\n color: inherit;\n cursor: pointer;\n transition: border 0.2s, background 0.2s;\n ", O.onmouseenter = () => { + O.style.borderColor = "rgba(255,255,255,0.6)", O.style.background = "rgba(255,255,255,0.08)"; + }, O.onmouseleave = () => { + O.style.borderColor = "rgba(255,255,255,0.25)", O.style.background = "transparent"; + }, O.onclick = async (e) => { e.stopPropagation(); - let r = await Ym(L("btn.resetIndex", "Reset index")); - if (!await jt(r ? L("dialog.resetIndex.confirmKeepVectors", "This will reset index data and rescan files while keeping existing AI vectors.\n\nContinue?") : L("dialog.resetIndex.msg", "This will delete the database and rescan all files. Continue?"), L("dialog.resetIndex.title", "Reset index?"))) return; - Rm(!0); - let a = D.textContent; - D.disabled = !0, T.disabled = !0, D.textContent = L("btn.resetting"), i.style.background = "var(--mjr-status-info, #64B5F6)", Wm(n, "info"); + let r = await eh(L("btn.resetIndex", "Reset index")); + if (!await Pt(r ? L("dialog.resetIndex.confirmKeepVectors", "This will reset index data and rescan files while keeping existing AI vectors.\n\nContinue?") : L("dialog.resetIndex.msg", "This will delete the database and rescan all files. Continue?"), L("dialog.resetIndex.title", "Reset index?"))) return; + Um(!0); + let a = O.textContent; + O.disabled = !0, D.disabled = !0, O.textContent = L("btn.resetting"), i.style.background = "var(--mjr-status-info, #64B5F6)", Ym(n, "info"); try { let e = t ? t() : {}, a = String(e?.scope || "output").toLowerCase(), o = e?.customRootId || e?.custom_root_id || e?.root_id || null, s = a === "custom" && !o; - (await Xe({ + (await we({ scope: s ? "all" : a, customRootId: s ? null : o, reindex: !0, @@ -12103,54 +12146,54 @@ function Xm(e = {}) { clear_assets: !r, preserve_vectors: r, rebuild_fts: !0 - }))?.ok ? (i.style.background = "var(--mjr-status-success, #4CAF50)", Wm(n, "success")) : (i.style.background = "var(--mjr-status-error, #f44336)", Wm(n, "error")); + }))?.ok ? (i.style.background = "var(--mjr-status-success, #4CAF50)", Ym(n, "success")) : (i.style.background = "var(--mjr-status-error, #f44336)", Ym(n, "error")); } catch { - i.style.background = "var(--mjr-status-error, #f44336)", Wm(n, "error"); + i.style.background = "var(--mjr-status-error, #f44336)", Ym(n, "error"); } finally { - Rm(!1), D.disabled = !1, T.disabled = !1, D.textContent = a, qm("index-reset"); + Um(!1), O.disabled = !1, D.disabled = !1, O.textContent = a, Qm("index-reset"); try { let e = t ? t() : null; - await ah(i, l, u, e, null, { force: !0 }); + await uh(i, l, u, e, null, { force: !0 }); } catch (e) { console.debug?.(e); } } }; - let O = document.createElement("button"); - O.type = "button", O.textContent = "Backfill vectors", O.title = "Compute missing AI vector embeddings for existing assets.", O.style.cssText = "\n padding: 5px 12px;\n font-size: 11px;\n border-radius: 6px;\n border: 1px solid rgba(0, 188, 212, 0.45);\n background: transparent;\n color: inherit;\n cursor: pointer;\n transition: border 0.2s, background 0.2s;\n ", O.onmouseenter = () => { - O.style.borderColor = "rgba(0, 188, 212, 0.8)", O.style.background = "rgba(0, 188, 212, 0.12)"; - }, O.onmouseleave = () => { - O.style.borderColor = "rgba(0, 188, 212, 0.45)", O.style.background = "transparent"; - }, O.onclick = async (e) => { + let k = document.createElement("button"); + k.type = "button", k.textContent = "Backfill vectors", k.title = "Compute missing AI vector embeddings for existing assets.", k.style.cssText = "\n padding: 5px 12px;\n font-size: 11px;\n border-radius: 6px;\n border: 1px solid rgba(0, 188, 212, 0.45);\n background: transparent;\n color: inherit;\n cursor: pointer;\n transition: border 0.2s, background 0.2s;\n ", k.onmouseenter = () => { + k.style.borderColor = "rgba(0, 188, 212, 0.8)", k.style.background = "rgba(0, 188, 212, 0.12)"; + }, k.onmouseleave = () => { + k.style.borderColor = "rgba(0, 188, 212, 0.45)", k.style.background = "transparent"; + }, k.onclick = async (e) => { e.stopPropagation(); let r = t ? t() : {}, a = String(r?.scope || "output").toLowerCase(), o = String(r?.customRootId || r?.custom_root_id || r?.root_id || "").trim(); if (a === "custom" && !o) { - F(L("status.customBrowserScanDisabledHint", "Use Outputs, Inputs, or All to run indexing scans"), "warning", 2600), w("Backfill skipped - Browser scope has no selected custom root.", "warning"); + x(L("status.customBrowserScanDisabledHint", "Use Outputs, Inputs, or All to run indexing scans"), "warning", 2600), E("Backfill skipped - Browser scope has no selected custom root.", "warning"); return; } - let s = a || "output", c = Gm(s), d = { history: { + let s = a || "output", c = Xm(s), d = { history: { trackId: `vector-backfill:status:${s}:${o || "default"}`, title: "Vector Backfill", source: c, operation: "vector_backfill", forceStore: !0 } }; - Rm(!0); - let f = O.textContent, p = D.textContent; - O.disabled = !0, D.disabled = !0, T.disabled = !0, O.textContent = "Backfilling...", w(`Backfill started (${c})...`, "info"), g({ + Um(!0); + let f = k.textContent, p = O.textContent; + k.disabled = !0, O.disabled = !0, D.disabled = !0, k.textContent = "Backfilling...", E(`Backfill started (${c})...`, "info"), y({ summary: "Vector Backfill", detail: `Started (${c})` }, "info", 0, { history: { ...d.history, status: "started", detail: `Started (${c})` - } }), i.style.background = "var(--mjr-status-info, #64B5F6)", Wm(n, "info"); + } }), i.style.background = "var(--mjr-status-info, #64B5F6)", Ym(n, "info"); try { let e = { scope: s, onProgress: (e) => { let t = String(e?.status || "").toLowerCase(), n = e?.progress || e?.result || {}, r = Number(n?.candidates || n?.processed || 0), i = Number(n?.candidate_total || r || 0), a = Number(n?.eligible_total || n?.total_assets || 0), o = Number(n?.indexed || 0), s = Number(n?.skipped || 0), l = Number(n?.errors || 0); - if (t === "queued") w("Backfill queued...", "info"), g({ + if (t === "queued") E("Backfill queued...", "info"), y({ summary: "Vector Backfill", detail: `Queued (${c})` }, "info", 0, { history: { @@ -12166,7 +12209,7 @@ function Xm(e = {}) { } }); else if (t === "running" || r > 0 || i > 0 || a > 0 || o > 0 || s > 0 || l > 0) { let e = a > 0 ? `Indexed ${o}/${a} assets, candidates ${i}, skipped ${s}, errors ${l}` : `Candidates ${r}, indexed ${o}, skipped ${s}, errors ${l}`; - w(a > 0 ? `Backfill running - indexed ${o}/${a} assets, candidates ${i}, skipped ${s}, errors ${l}` : `Backfill running - candidates ${r}, indexed ${o}, skipped ${s}, errors ${l}`, "info"), g({ + E(a > 0 ? `Backfill running - indexed ${o}/${a} assets, candidates ${i}, skipped ${s}, errors ${l}` : `Backfill running - candidates ${r}, indexed ${o}, skipped ${s}, errors ${l}`, "info"), y({ summary: "Vector Backfill", detail: e }, "info", 0, { history: { @@ -12189,7 +12232,7 @@ function Xm(e = {}) { } }; s === "custom" && o && (e.customRootId = o); - let t = await E(64, e); + let t = await _(64, e); if (t?.ok) { let e = String(t?.data?.status || "").toLowerCase(), r = !!t?.data?.pending || [ "queued", @@ -12198,7 +12241,7 @@ function Xm(e = {}) { ].includes(e), a = t?.data?.progress || {}, o = Number(t?.data?.processed ?? a?.candidates ?? 0), s = Number(t?.data?.indexed ?? a?.indexed ?? 0), c = Number(t?.data?.skipped ?? a?.skipped ?? 0), l = Number(t?.data?.errors ?? a?.errors ?? 0); if (r) { let e = String(t?.data?.backfill_id || "").trim(), r = L("toast.vectorBackfillRunning", "Vector backfill still running in background{job}.", { job: e ? ` (${e.slice(0, 8)})` : "" }); - F(r, "info", 4200, { history: { + x(r, "info", 4200, { history: { ...d.history, status: "running", detail: `Running in background${e ? ` (${e.slice(0, 8)})` : ""}.`, @@ -12211,8 +12254,8 @@ function Xm(e = {}) { errors: l, label: "running" } - } }), w(`Backfill running in background - candidates ${o}, indexed ${s}, skipped ${c}, errors ${l}`, "info"), i.style.background = "var(--mjr-status-info, #64B5F6)", Wm(n, "info"); - } else F(L("toast.vectorBackfillComplete", "Vector backfill complete! Processed: {processed}, Indexed: {indexed}, Skipped: {skipped}", { + } }), E(`Backfill running in background - candidates ${o}, indexed ${s}, skipped ${c}, errors ${l}`, "info"), i.style.background = "var(--mjr-status-info, #64B5F6)", Ym(n, "info"); + } else x(L("toast.vectorBackfillComplete", "Vector backfill complete! Processed: {processed}, Indexed: {indexed}, Skipped: {skipped}", { processed: o, indexed: s, skipped: c @@ -12229,14 +12272,14 @@ function Xm(e = {}) { errors: l, label: "done" } - } }), w(`Backfill OK - processed ${o}, indexed ${s}, skipped ${c}`, "success"), i.style.background = "var(--mjr-status-success, #4CAF50)", Wm(n, "success"); + } }), E(`Backfill OK - processed ${o}, indexed ${s}, skipped ${c}`, "success"), i.style.background = "var(--mjr-status-success, #4CAF50)", Ym(n, "success"); } else { let e = String(t?.error || L("toast.vectorBackfillFailedGeneric", "Backfill failed")), r = String(t?.code || "").trim(), a = Number(t?.status || 0) || 0, o = [ r ? `code=${r}` : "", a ? `status=${a}` : "", e ].filter(Boolean).join(" | "); - F(o, "error", 4500, { history: { + x(o, "error", 4500, { history: { ...d.history, status: "failed", detail: o, @@ -12244,11 +12287,11 @@ function Xm(e = {}) { label: "failed", errors: 1 } - } }), w(`Backfill ? - ${o}\nSee console for full payload.`, "error"), console.error("[Majoor] Vector backfill failed response", t), i.style.background = "var(--mjr-status-error, #f44336)", Wm(n, "error"); + } }), E(`Backfill ? - ${o}\nSee console for full payload.`, "error"), console.error("[Majoor] Vector backfill failed response", t), i.style.background = "var(--mjr-status-error, #f44336)", Ym(n, "error"); } } catch (e) { let t = String(e?.message || e || "Backfill failed"); - F(t, "error", 4500, { history: { + x(t, "error", 4500, { history: { ...d.history, status: "failed", detail: t, @@ -12256,60 +12299,94 @@ function Xm(e = {}) { label: "failed", errors: 1 } - } }), w(`Backfill EXCEPTION - ${t}\nSee console for stack trace.`, "error"), console.error("[Majoor] Vector backfill exception", e), i.style.background = "var(--mjr-status-error, #f44336)", Wm(n, "error"); + } }), E(`Backfill EXCEPTION - ${t}\nSee console for stack trace.`, "error"), console.error("[Majoor] Vector backfill exception", e), i.style.background = "var(--mjr-status-error, #f44336)", Ym(n, "error"); } finally { - Rm(!1), O.disabled = !1, D.disabled = !1, T.disabled = !1, O.textContent = f, D.textContent = p, qm("vector-backfill"); + Um(!1), k.disabled = !1, O.disabled = !1, D.disabled = !1, k.textContent = f, O.textContent = p, Qm("vector-backfill"); try { let e = t ? t() : null; - await ah(i, l, u, e, null, { force: !0 }); + await uh(i, l, u, e, null, { force: !0 }); } catch (e) { console.debug?.(e); } } - }, T = document.createElement("button"), T.type = "button", T.textContent = L("btn.memoryPurge", "Memory purge"), T.title = L("tooltip.memoryPurge", "Unload Majoor AI models, ask ComfyUI to unload loaded models, and clear torch cache when idle."), T.style.cssText = "\n padding: 5px 12px;\n font-size: 11px;\n border-radius: 6px;\n border: 1px solid rgba(156, 204, 101, 0.45);\n background: transparent;\n color: inherit;\n cursor: pointer;\n transition: border 0.2s, background 0.2s;\n ", T.onmouseenter = () => { - T.style.borderColor = "rgba(156, 204, 101, 0.85)", T.style.background = "rgba(156, 204, 101, 0.12)"; - }, T.onmouseleave = () => { - T.style.borderColor = "rgba(156, 204, 101, 0.45)", T.style.background = "transparent"; - }, T.onclick = async (e) => { + }, D = document.createElement("button"), D.type = "button", D.textContent = L("btn.memoryPurge", "Memory purge"), D.title = L("tooltip.memoryPurge", "Unload Majoor AI models, ask ComfyUI to unload loaded models, and clear torch cache when idle."), D.style.cssText = "\n padding: 5px 12px;\n font-size: 11px;\n border-radius: 6px;\n border: 1px solid rgba(156, 204, 101, 0.45);\n background: transparent;\n color: inherit;\n cursor: pointer;\n transition: border 0.2s, background 0.2s;\n ", D.onmouseenter = () => { + D.style.borderColor = "rgba(156, 204, 101, 0.85)", D.style.background = "rgba(156, 204, 101, 0.12)"; + }, D.onmouseleave = () => { + D.style.borderColor = "rgba(156, 204, 101, 0.45)", D.style.background = "transparent"; + }, D.onclick = async (e) => { e.stopPropagation(); - let r = T.textContent; - T.disabled = !0, O.disabled = !0, D.disabled = !0, T.textContent = L("btn.memoryPurging", "Purging..."), w(L("status.memoryPurgeStarted", "Memory purge started..."), "info"), i.style.background = "var(--mjr-status-info, #64B5F6)", Wm(n, "info"); + let r = D.textContent; + D.disabled = !0, k.disabled = !0, O.disabled = !0, D.textContent = L("btn.memoryPurging", "Purging..."), E(L("status.memoryPurgeStarted", "Memory purge started..."), "info"), i.style.background = "var(--mjr-status-info, #64B5F6)", Ym(n, "info"); try { - let e = await y(); + let e = await A(); if (e?.ok) { let t = e?.data?.comfy_models ? L("toast.memoryPurgeComplete", "Memory purge complete. Majoor AI and ComfyUI model caches were released.") : L("toast.memoryPurgeCompleteMajoorOnly", "Memory purge complete. Majoor AI caches were released."); - F(t, "success", 3200), w(t, "success"), i.style.background = "var(--mjr-status-success, #4CAF50)", Wm(n, "success"); + x(t, "success", 3200), E(t, "success"), i.style.background = "var(--mjr-status-success, #4CAF50)", Ym(n, "success"); } else { let t = String(e?.error || "Memory purge failed"); - F(t, "error", 4500), w(t, "error"), i.style.background = "var(--mjr-status-error, #f44336)", Wm(n, "error"); + x(t, "error", 4500), E(t, "error"), i.style.background = "var(--mjr-status-error, #f44336)", Ym(n, "error"); } } catch (e) { let t = String(e?.message || e || "Memory purge failed"); - F(t, "error", 4500), w(t, "error"), i.style.background = "var(--mjr-status-error, #f44336)", Wm(n, "error"); + x(t, "error", 4500), E(t, "error"), i.style.background = "var(--mjr-status-error, #f44336)", Ym(n, "error"); } finally { - T.disabled = !1, O.disabled = !1, D.disabled = !1, T.textContent = r; + D.disabled = !1, k.disabled = !1, O.disabled = !1, D.textContent = r; try { let e = t ? t() : null; - await ah(i, l, u, e, null, { force: !0 }); + await uh(i, l, u, e, null, { force: !0 }); } catch (e) { console.debug?.(e); } } - }, S.appendChild(O), S.appendChild(T), S.appendChild(D), c.appendChild(C); - let k = document.createElement("button"); - k.type = "button", k.textContent = L("btn.deleteDb"), k.title = L("tooltip.deleteDb", "Force-delete database and rebuild from scratch"), k.style.cssText = "\n padding: 5px 12px;\n font-size: 11px;\n border-radius: 6px;\n border: 1px solid rgba(255,80,80,0.4);\n background: transparent;\n color: inherit;\n cursor: pointer;\n transition: border 0.2s, background 0.2s;\n ", k.onmouseenter = () => { - k.style.borderColor = "rgba(255,80,80,0.8)", k.style.background = "rgba(255,80,80,0.12)"; - }, k.onmouseleave = () => { - k.style.borderColor = "rgba(255,80,80,0.4)", k.style.background = "transparent"; - }, k.onclick = async (e) => { - e.stopPropagation(); - let r = await Ym(L("btn.deleteDb", "Delete DB")); - if (!await jt(r ? L("dialog.dbDelete.keepVectorsConfirm", "This will reset index data and keep existing AI vectors. Database files will not be force-deleted.\n\nContinue?") : L("dialog.dbDelete.confirm", "This will permanently delete the index database and rebuild it from scratch. All ratings, tags, and cached metadata will be lost.\n\nContinue?"), L("btn.deleteDb", "Delete DB"))) return; - Rm(!0); - let a = k.textContent; - k.disabled = !0, k.textContent = r ? L("btn.resetting", "Resetting...") : L("btn.deletingDb"), D.disabled = !0, T.disabled = !0, i.style.background = "var(--mjr-status-info, #64B5F6)", Wm(n, "info"); + }; + let j = document.createElement("button"); + j.type = "button", j.textContent = L("btn.emptyTrash", "Empty trash"), j.title = L("status.emptyTrashHint", "Permanently remove files Majoor sent to the freedesktop trash (requires allowDelete in settings)."), j.style.cssText = "\n padding: 5px 12px;\n font-size: 11px;\n border-radius: 6px;\n border: 1px solid rgba(255,167,38,0.45);\n background: transparent;\n color: inherit;\n cursor: pointer;\n transition: border 0.2s, background 0.2s;\n ", j.onmouseenter = () => { + j.style.borderColor = "rgba(255,167,38,0.85)", j.style.background = "rgba(255,167,38,0.12)"; + }, j.onmouseleave = () => { + j.style.borderColor = "rgba(255,167,38,0.45)", j.style.background = "transparent"; + }, (async () => { try { - (r ? await Xe({ + let e = await Ce(); + if (e?.ok && e?.data?.supported === !1) { + j.style.display = "none"; + return; + } + let t = await ce(); + t?.ok && t?.data?.prefs && t.data.prefs.allow_delete === !1 && (j.disabled = !0, j.title = L("status.emptyTrashDisabled", "Empty trash is disabled. Enable 'allow_delete' in settings or set MAJOOR_ALLOW_DELETE=1.")); + } catch (e) { + console.debug?.(e); + } + })(), j.onclick = async (e) => { + e.stopPropagation(), Um(!0); + let t = j.textContent; + j.disabled = !0, O.disabled = !0, D.disabled = !0, j.textContent = L("btn.emptyTrashRunning", "Emptying..."); + try { + await Fm({ + getStatus: Ce, + empty: h, + confirm: (e, t) => Promise.resolve(Pt(e, t)), + toast: (e, t, n, r) => x(e, t, n, r), + formatBytes: Wm, + translate: (e, t, n) => L(e, t, n) + }); + } finally { + Um(!1), j.disabled = !1, O.disabled = !1, D.disabled = !1, j.textContent = t; + } + }, w.appendChild(k), w.appendChild(D), w.appendChild(O), w.appendChild(j), c.appendChild(T); + let M = document.createElement("button"); + M.type = "button", M.textContent = L("btn.deleteDb"), M.title = L("tooltip.deleteDb", "Force-delete database and rebuild from scratch"), M.style.cssText = "\n padding: 5px 12px;\n font-size: 11px;\n border-radius: 6px;\n border: 1px solid rgba(255,80,80,0.4);\n background: transparent;\n color: inherit;\n cursor: pointer;\n transition: border 0.2s, background 0.2s;\n ", M.onmouseenter = () => { + M.style.borderColor = "rgba(255,80,80,0.8)", M.style.background = "rgba(255,80,80,0.12)"; + }, M.onmouseleave = () => { + M.style.borderColor = "rgba(255,80,80,0.4)", M.style.background = "transparent"; + }, M.onclick = async (e) => { + e.stopPropagation(); + let r = await eh(L("btn.deleteDb", "Delete DB")); + if (!await Pt(r ? L("dialog.dbDelete.keepVectorsConfirm", "This will reset index data and keep existing AI vectors. Database files will not be force-deleted.\n\nContinue?") : L("dialog.dbDelete.confirm", "This will permanently delete the index database and rebuild it from scratch. All ratings, tags, and cached metadata will be lost.\n\nContinue?"), L("btn.deleteDb", "Delete DB"))) return; + Um(!0); + let a = M.textContent; + M.disabled = !0, M.textContent = r ? L("btn.resetting", "Resetting...") : L("btn.deletingDb"), O.disabled = !0, D.disabled = !0, i.style.background = "var(--mjr-status-info, #64B5F6)", Ym(n, "info"); + try { + (r ? await we({ scope: "all", reindex: !0, maintenance_force: !0, @@ -12320,53 +12397,53 @@ function Xm(e = {}) { clear_assets: !1, preserve_vectors: !0, rebuild_fts: !0 - }) : await d())?.ok ? (globalThis._mjrCorruptToastShown = !1, i.style.background = "var(--mjr-status-success, #4CAF50)", Wm(n, "success")) : (i.style.background = "var(--mjr-status-error, #f44336)", Wm(n, "error")); + }) : await S())?.ok ? (globalThis._mjrCorruptToastShown = !1, i.style.background = "var(--mjr-status-success, #4CAF50)", Ym(n, "success")) : (i.style.background = "var(--mjr-status-error, #f44336)", Ym(n, "error")); } catch { - i.style.background = "var(--mjr-status-error, #f44336)", Wm(n, "error"); + i.style.background = "var(--mjr-status-error, #f44336)", Ym(n, "error"); } finally { - Rm(!1), k.disabled = !1, k.textContent = a, D.disabled = !1, T.disabled = !1, qm(r ? "index-reset-preserve-vectors" : "db-force-delete"); + Um(!1), M.disabled = !1, M.textContent = a, O.disabled = !1, D.disabled = !1, Qm(r ? "index-reset-preserve-vectors" : "db-force-delete"); try { let e = t ? t() : null; - await ah(i, l, u, e, null, { force: !0 }); + await uh(i, l, u, e, null, { force: !0 }); } catch (e) { console.debug?.(e); } } - }, S.appendChild(k), c.appendChild(S), n.appendChild(r), n.appendChild(c); - let A = n.querySelector("#mjr-status-title"); - A && A.addEventListener("click", (e) => { + }, w.appendChild(M), c.appendChild(w), n.appendChild(r), n.appendChild(c); + let N = n.querySelector("#mjr-status-title"); + N && N.addEventListener("click", (e) => { e.stopPropagation(); let t = n.querySelector("#mjr-status-body"); if (!t) return; let r = t.style.display === "none"; - nh(n, !r); - }), nh(n, !0), n.onmouseenter = () => { + sh(n, !r); + }), sh(n, !0), n.onmouseenter = () => { n.style.transform = "translateY(-1px)"; }, n.onmouseleave = () => { - n.style.transform = "", Wm(n, n.dataset?.mjrStatusTone || "neutral", { toast: !1 }); + n.style.transform = "", Ym(n, n.dataset?.mjrStatusTone || "neutral", { toast: !1 }); }; let ee = async (e) => { try { let r = e?.detail || {}, a = String(r?.step || ""); if (!a) return; let o = a === "started" || a === "stopping_workers" || a === "resetting_db" || a === "delete_db" || a === "recreate_db" || a === "replacing_files" || a === "restarting_scan"; - if (o ? Rm(!0) : (a === "failed" || a === "done") && Rm(!1), !n?.isConnected || !i?.isConnected || !l?.isConnected) return; + if (o ? Um(!0) : (a === "failed" || a === "done") && Um(!1), !n?.isConnected || !i?.isConnected || !l?.isConnected) return; if (o) { - i.style.background = "var(--mjr-status-info, #64B5F6)", Wm(n, "info", { toast: !1 }), Um(l, L("status.pending", "Pending..."), L("status.dbRestoreInProgress", "Database restore in progress")); + i.style.background = "var(--mjr-status-info, #64B5F6)", Ym(n, "info", { toast: !1 }), Jm(l, L("status.pending", "Pending..."), L("status.dbRestoreInProgress", "Database restore in progress")); return; } if (a === "failed") { - i.style.background = "var(--mjr-status-error, #f44336)", Wm(n, "error", { toast: !1 }), Bm(l, [L("status.error", "Error"), String(r?.message || L("toast.dbRestoreFailed", "Failed to restore DB backup"))]); + i.style.background = "var(--mjr-status-error, #f44336)", Ym(n, "error", { toast: !1 }), Gm(l, [L("status.error", "Error"), String(r?.message || L("toast.dbRestoreFailed", "Failed to restore DB backup"))]); return; } if (a === "done") { - i.style.background = "var(--mjr-status-success, #4CAF50)", Wm(n, "success", { toast: !1 }); + i.style.background = "var(--mjr-status-success, #4CAF50)", Ym(n, "success", { toast: !1 }); let e = String(r?.operation || ""), a = e === "delete_db" ? L("toast.dbDeleteSuccess", "Database deleted and rebuilt. Files are being reindexed.") : e === "reset_index" ? L("toast.resetStarted", "Index reset started. Files will be reindexed in the background.") : L("toast.dbRestoreSuccess", "Database backup restored"); - Um(l, L("status.ready", "Ready"), a); + Jm(l, L("status.ready", "Ready"), a); try { let e = t ? t() : null; setTimeout(() => { - ah(i, l, u, e, null, { force: !0 }); + uh(i, l, u, e, null, { force: !0 }); }, 600); } catch (e) { console.debug?.(e); @@ -12377,12 +12454,12 @@ function Xm(e = {}) { } }; try { - let e = Nm; - typeof e == "function" && window.removeEventListener("mjr-db-restore-status", e), Nm = ee, n._mjrDbRestoreStatusHandler = ee, window.addEventListener("mjr-db-restore-status", ee); + let e = Rm; + typeof e == "function" && window.removeEventListener("mjr-db-restore-status", e), Rm = ee, n._mjrDbRestoreStatusHandler = ee, window.addEventListener("mjr-db-restore-status", ee); } catch (e) { console.debug?.(e); } - let j = (e) => { + let te = (e) => { try { let t = e?.detail || {}, n = Number(t?.queue_remaining), r = Number(t?.progress_value), i = Number(t?.progress_max), a = Array.isArray(t?.cached_nodes) ? t.cached_nodes.length : 0, o = String(t?.active_prompt_id || "").trim(), s = [ Number.isFinite(r) && Number.isFinite(i) && i > 0 ? L("status.runtimeProgress", "Runtime progress: {value}/{max}", { @@ -12395,27 +12472,27 @@ function Xm(e = {}) { ].filter(Boolean); if (!s.length) return; let c = l?.querySelector?.("span"); - c ? c.textContent = s.join(" | ") : Um(l, L("status.ready", "Ready"), s.join(" | ")); + c ? c.textContent = s.join(" | ") : Jm(l, L("status.ready", "Ready"), s.join(" | ")); } catch (e) { console.debug?.(e); } }; try { - let e = Pm; - typeof e == "function" && window.removeEventListener(B.RUNTIME_STATUS, e), Pm = j, window.addEventListener(B.RUNTIME_STATUS, j); + let e = zm; + typeof e == "function" && window.removeEventListener(B.RUNTIME_STATUS, e), zm = te, window.addEventListener(B.RUNTIME_STATUS, te); } catch (e) { console.debug?.(e); } return n; } -async function Zm(e, t, n = null, r = null) { - if (Mm) { - F(L("status.maintenanceBusy", "Database maintenance in progress. Please wait."), "warning", 2200); +async function nh(e, t, n = null, r = null) { + if (Lm) { + x(L("status.maintenanceBusy", "Database maintenance in progress. Please wait."), "warning", 2200); return; } let i = t?.closest?.("#mjr-status-body")?.parentElement || t?.closest?.("div"), a = String(r?.scope || "output").toLowerCase(), o = r?.customRootId || r?.custom_root_id || r?.root_id || null; if (a === "custom" && !o) { - e.style.background = "var(--mjr-status-info, #64B5F6)", Wm(i, "info"), Um(t, L("status.customBrowserScanDisabled", "Custom browser mode: scan is disabled"), L("status.customBrowserScanDisabledHint", "Use Outputs, Inputs, or All to run indexing scans")); + e.style.background = "var(--mjr-status-info, #64B5F6)", Ym(i, "info"), Jm(t, L("status.customBrowserScanDisabled", "Custom browser mode: scan is disabled"), L("status.customBrowserScanDisabledHint", "Use Outputs, Inputs, or All to run indexing scans")); return; } try { @@ -12423,7 +12500,7 @@ async function Zm(e, t, n = null, r = null) { if (n && typeof n == "object") { let r = e - Number(n.at || 0); if (r >= 0 && r < 6e5) { - Um(t, L("status.scanInProgress", "Scan already running..."), L("status.scanInProgressHint", "Please wait for the current scan to finish")); + Jm(t, L("status.scanInProgress", "Scan already running..."), L("status.scanInProgressHint", "Please wait for the current scan to finish")); return; } } @@ -12443,15 +12520,15 @@ async function Zm(e, t, n = null, r = null) { } }, c = null; try { - let e = await Pe(p.ROOTS); + let e = await Ie(I.ROOTS); e.ok && (c = e.data); } catch (e) { console.debug?.(e); } if (!c) { - let n = await Pe(p.CONFIG); + let n = await Ie(I.CONFIG); if (!n.ok) { - e.style.background = "var(--mjr-status-error, #f44336)", Wm(i, "error"), t.textContent = L("status.errorGetConfig"), s(); + e.style.background = "var(--mjr-status-error, #f44336)", Ym(i, "error"), t.textContent = L("status.errorGetConfig"), s(); return; } c = { output_directory: n.data.output_directory }; @@ -12462,7 +12539,7 @@ async function Zm(e, t, n = null, r = null) { let e = Array.isArray(c?.custom_roots) ? c.custom_roots : [], t = o ? e.find((e) => e?.id === o) : null; u = t?.path ? ` (${t.path})` : ""; } else a === "output" && (u = c?.output_directory ? ` (${c.output_directory})` : ""); - e.style.background = "var(--mjr-status-info, #64B5F6)", Wm(i, "info"), Um(t, L("status.scanningScope", `Scanning ${l}${u}...`, { + e.style.background = "var(--mjr-status-info, #64B5F6)", Ym(i, "info"), Jm(t, L("status.scanningScope", `Scanning ${l}${u}...`, { scope: l, detail: u }), L("status.scanningHint", "This may take a while")); @@ -12470,187 +12547,187 @@ async function Zm(e, t, n = null, r = null) { scope: a, recursive: !0, incremental: !0, - fast: !!(Mt()?.scan?.fastMode ?? !0), + fast: !!(Ft()?.scan?.fastMode ?? !0), background_metadata: !0 }; if (a === "custom") { if (!o) { - e.style.background = "var(--mjr-status-error, #f44336)", Wm(i, "error"), t.textContent = L("status.selectCustomFolder"), s(); + e.style.background = "var(--mjr-status-error, #f44336)", Ym(i, "error"), t.textContent = L("status.selectCustomFolder"), s(); return; } d.custom_root_id = o; } let f; try { - f = await me(p.SCAN, d); + f = await he(I.SCAN, d); } finally { s(); } if (f?.ok) { let r = f.data; - e.style.background = "var(--mjr-status-success, #4CAF50)", Wm(i, "success"), Um(t, L("toast.scanComplete"), L("status.scanStats", `Added: ${r.added || 0} - Updated: ${r.updated || 0} - Skipped: ${r.skipped || 0}`, { + e.style.background = "var(--mjr-status-success, #4CAF50)", Ym(i, "success"), Jm(t, L("toast.scanComplete"), L("status.scanStats", `Added: ${r.added || 0} - Updated: ${r.updated || 0} - Skipped: ${r.skipped || 0}`, { added: r.added || 0, updated: r.updated || 0, skipped: r.skipped || 0 - })), Jm("scan-complete", { stats: { + })), $m("scan-complete", { stats: { added: r.added || 0, updated: r.updated || 0, skipped: r.skipped || 0 } }), setTimeout(() => { - ah(e, t, n); + uh(e, t, n); }, 2e3); - } else e.style.background = "var(--mjr-status-error, #f44336)", Wm(i, "error"), Bm(t, [L("toast.scanFailed") + `: ${f?.error || "Unknown error"}`]), setTimeout(() => { - ah(e, t, n); + } else e.style.background = "var(--mjr-status-error, #f44336)", Ym(i, "error"), Gm(t, [L("toast.scanFailed") + `: ${f?.error || "Unknown error"}`]), setTimeout(() => { + uh(e, t, n); }, 3e3); } -function Qm(e, t, n) { +function rh(e, t, n) { let r = document.createElement("span"); return r.style.cssText = "\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 6px;\n border-radius: 999px;\n background: rgba(255, 255, 255, 0.05);\n border: 1px solid rgba(255, 255, 255, 0.1);\n ", r.textContent = `${t ? "OK" : "ERR"} ${e}`, r.title = t ? L("status.toolAvailable", `${e} available`, { tool: e }) : n || L("status.toolUnavailable", `${e} unavailable`, { tool: e }), r.style.opacity = t ? "1" : "0.75", r; } -function $m(e, t = {}, n = {}) { +function ih(e, t = {}, n = {}) { if (!e) return; if (e.replaceChildren(), !t || Object.keys(t).length === 0) { e.textContent = L("status.discoveringTools"); return; } let r = document.createElement("div"); - r.style.display = "flex", r.style.flexWrap = "wrap", r.style.gap = "10px", r.style.alignItems = "flex-start", jm.forEach(({ key: e, labelKey: i, hintKey: a }) => { + r.style.display = "flex", r.style.flexWrap = "wrap", r.style.gap = "10px", r.style.alignItems = "flex-start", Im.forEach(({ key: e, labelKey: i, hintKey: a }) => { let o = !!t[e], s = n[e], c = L(i, e), l = L(a, ""); - r.appendChild(th({ + r.appendChild(oh({ label: c, hint: l }, o, s)); }), e.appendChild(r); } -function eh(e, t = null, n = {}) { +function ah(e, t = null, n = {}) { if (!e) return; let r = e.parentElement; if (!r) return; let i = r.querySelector("#mjr-tools-status"); if (!i) return; let a = n && Object.keys(n).length > 0; - i.textContent = !t && !a ? L("status.toolStatusChecking", "Tool status: checking...") : jm.map(({ key: e, labelKey: r }) => { + i.textContent = !t && !a ? L("status.toolStatusChecking", "Tool status: checking...") : Im.map(({ key: e, labelKey: r }) => { let i = L(r, e), a = t && e in t ? t[e] : void 0, o = e in n ? n[e] : void 0, s = a === void 0 ? o : a, c = s == null ? L("status.unknown", "unknown") : s ? L("status.available", "available") : L("status.missing", "missing"), l = t?.versions?.[e]; return l ? `${i}: ${c} - ${l}` : `${i}: ${c}`; }).join(" | "); } -function th({ label: e, hint: t }, n, r) { +function oh({ label: e, hint: t }, n, r) { let i = document.createElement("div"); i.style.cssText = "\n display: flex;\n flex-direction: column;\n gap: 3px;\n padding: 6px 8px;\n border-radius: 8px;\n background: rgba(255, 255, 255, 0.03);\n border: 1px solid rgba(255, 255, 255, 0.08);\n min-width: 170px;\n "; - let a = Qm(e, n, t); + let a = rh(e, n, t); a.style.fontWeight = "500", i.appendChild(a); let o = document.createElement("span"); return o.style.fontSize = "10px", o.style.opacity = "0.7", o.style.wordBreak = "break-all", o.textContent = L("status.path", "Path") + `: ${r || L("status.pathAuto", "auto / not configured")}`, i.appendChild(o), i; } -function nh(e, t) { +function sh(e, t) { let n = e.querySelector("#mjr-status-body"), r = e.querySelector("#mjr-status-title-indicator"); n && r && (t ? (n.style.display = "none", r.textContent = ">") : (n.style.display = "", r.textContent = "v")); } -function rh(e, t) { +function ch(e, t) { let n = !!e?.database?.available, r = t?.diagnostics || {}, i = !!r?.malformed, a = !!r?.locked; return !n || i ? L("status.dbHealthError", "DB health: error") : a ? L("status.dbHealthLocked", "DB health: locked") : L("status.dbHealthOk", "DB health: ok"); } -function ih(e, t) { +function lh(e, t) { let n = Number(e?.total_assets || 0), r = e?.last_index_end, i = e?.last_scan_end, a = t === "all" ? L("scope.all", "Inputs + Outputs") : t === "input" ? L("scope.input", "Inputs") : t === "custom" ? L("scope.custom", "Custom") : t === "workflow" ? L("scope.workflow", "Workflow") : L("scope.output", "Outputs"); return !Number.isFinite(n) || n <= 0 ? `${L("status.indexHealthEmpty", "Index health: empty")} (${a})` : !r && !i ? `${L("status.indexHealthPartial", "Index health: partial")} (${a})` : `${L("status.indexHealthOk", "Index health: ok")} (${a})`; } -async function ah(e, t, n = null, r = null, i = null, a = {}) { - let o = t?.closest?.("#mjr-status-body")?.parentElement || t?.closest?.("div"), s = a?.signal || null, c = !!a?.force; +async function uh(t, n, r = null, i = null, a = null, o = {}) { + let s = n?.closest?.("#mjr-status-body")?.parentElement || n?.closest?.("div"), c = o?.signal || null, l = !!o?.force; try { - if (!e?.isConnected || !t?.isConnected) return null; + if (!t?.isConnected || !n?.isConnected) return null; } catch (e) { console.debug?.(e); } try { - if (!c && Mm) return null; + if (!l && Lm) return null; } catch (e) { console.debug?.(e); } - i && typeof i == "object" && (i.lastCode = null, i.lastStatus = null); - let l = String(r?.scope || "output").toLowerCase(), u = l === "workflow" ? "all" : l, d = r?.customRootId || r?.custom_root_id || r?.root_id || null, f = l === "custom" && !d, m = f ? `${p.HEALTH_COUNTERS}?scope=all` : u === "custom" ? `${p.HEALTH_COUNTERS}?scope=custom&custom_root_id=${encodeURIComponent(String(d || ""))}` : `${p.HEALTH_COUNTERS}?scope=${encodeURIComponent(u || "output")}`, h = !!a?.lightweight, g = !(!c && i && typeof i == "object" && Number(i._scanAuxBackoffUntil || 0) > Date.now()) && (c || !h || !(i && typeof i == "object" && i._auxCached)), _, v, y, b = null; + a && typeof a == "object" && (a.lastCode = null, a.lastStatus = null); + let u = String(i?.scope || "output").toLowerCase(), d = u === "workflow" ? "all" : u, f = i?.customRootId || i?.custom_root_id || i?.root_id || null, p = u === "custom" && !f, m = p ? `${I.HEALTH_COUNTERS}?scope=all` : d === "custom" ? `${I.HEALTH_COUNTERS}?scope=custom&custom_root_id=${encodeURIComponent(String(f || ""))}` : `${I.HEALTH_COUNTERS}?scope=${encodeURIComponent(d || "output")}`, h = !!o?.lightweight, g = !(!l && a && typeof a == "object" && Number(a._scanAuxBackoffUntil || 0) > Date.now()) && (l || !h || !(a && typeof a == "object" && a._auxCached)), _, v, y, b = null; if (g) { - let [e, t, n] = await Promise.all([ - Pe(m, s ? { signal: s } : void 0), - Pe(p.HEALTH, s ? { signal: s } : void 0), - Pe(p.HEALTH_DB, s ? { signal: s } : void 0) + let [t, n, r] = await Promise.all([ + Ie(m, c ? { signal: c } : void 0), + Ie(I.HEALTH, c ? { signal: c } : void 0), + Ie(I.HEALTH_DB, c ? { signal: c } : void 0) ]); - _ = e, v = t, y = n; + _ = t, v = n, y = r; try { - let e = await D(s ? { signal: s } : void 0); - e?.ok && (b = e.data); + let t = await e(c ? { signal: c } : void 0); + t?.ok && (b = t.data); } catch (e) { console.debug?.(e); } - i && typeof i == "object" && (i._auxCached = !0, i._healthCache = v, i._dbDiagCache = y, i._toolsCache = b); - } else _ = await Pe(m, s ? { signal: s } : void 0), v = i?._healthCache || null, y = i?._dbDiagCache || null, b = i?._toolsCache || null; + a && typeof a == "object" && (a._auxCached = !0, a._healthCache = v, a._dbDiagCache = y, a._toolsCache = b); + } else _ = await Ie(m, c ? { signal: c } : void 0), v = a?._healthCache || null, y = a?._dbDiagCache || null, b = a?._toolsCache || null; try { - if (s?.aborted) return null; + if (c?.aborted) return null; } catch (e) { console.debug?.(e); } try { - if (!e?.isConnected || !t?.isConnected) return null; + if (!t?.isConnected || !n?.isConnected) return null; } catch (e) { console.debug?.(e); } - if (i && typeof i == "object" && (i.lastCode = _?.code || null, i.lastStatus = typeof _?.status == "number" ? _.status : null), _.ok) { - let r = _.data; - i && typeof i == "object" && (i._scanAuxBackoffUntil = r?.scan_active ? Date.now() + 3e4 : 0); - let a = r.total_assets || 0, c = r.with_workflows - 0, u = r.with_generation_data - 0, p = Math.max(0, Number(c || 0) || 0), m = r.last_scan_end, h = m ? new Date(m).toLocaleString() : "N/A", g = r.tool_availability || {}, x = r.tool_paths || {}, S = L("status.dbSize", "Database size: {size}", { size: zm(r.db_size_bytes || 0) }), C = v?.ok && v?.data && v.data.vector || {}, w = C?.enabled !== !1, T = !!C?.loaded, E = !!C?.degraded, D = String(C?.last_error || "").trim(), O = w ? E ? `AI vector: degraded${D ? ` (${D})` : ""}` : T ? "AI vector: loaded" : "AI vector: initializing" : "AI vector: disabled", k = rh(v?.data || null, y?.data || null), A = ih(r, f ? "all" : l), ee = !!(v?.ok && v?.data?.database?.available), j = y?.ok && y?.data?.diagnostics || {}, M = !!j?.malformed, N = !!j?.locked, te = !!j?.maintenance_active; - Rm(te); - let ne = Math.max(0, Number(r?.enrichment_queue_length || 0) || 0), P = yn().active || ne > 0; - vn(P, ne); - let re = Number(a) > 0, F = !!(r?.last_index_end || r?.last_scan_end), I = re && F, ie = "success"; - te || P ? ie = "info" : !ee || M ? ie = "error" : (N || !I || E) && (ie = "warning"); - let ae = l === "workflow", oe = f && ie !== "error" ? "browser" : ae && ie !== "error" ? "workflow" : ie, se = r.watcher; + if (a && typeof a == "object" && (a.lastCode = _?.code || null, a.lastStatus = typeof _?.status == "number" ? _.status : null), _.ok) { + let e = _.data; + a && typeof a == "object" && (a._scanAuxBackoffUntil = e?.scan_active ? Date.now() + 3e4 : 0); + let i = e.total_assets || 0, o = e.with_workflows - 0, l = e.with_generation_data - 0, d = Math.max(0, Number(o || 0) || 0), m = e.last_scan_end, h = m ? new Date(m).toLocaleString() : "N/A", g = e.tool_availability || {}, x = e.tool_paths || {}, S = L("status.dbSize", "Database size: {size}", { size: Wm(e.db_size_bytes || 0) }), C = v?.ok && v?.data && v.data.vector || {}, w = C?.enabled !== !1, T = !!C?.loaded, E = !!C?.degraded, D = String(C?.last_error || "").trim(), O = w ? E ? `AI vector: degraded${D ? ` (${D})` : ""}` : T ? "AI vector: loaded" : "AI vector: initializing" : "AI vector: disabled", k = ch(v?.data || null, y?.data || null), A = lh(e, p ? "all" : u), j = !!(v?.ok && v?.data?.database?.available), M = y?.ok && y?.data?.diagnostics || {}, N = !!M?.malformed, ee = !!M?.locked, te = !!M?.maintenance_active; + Um(te); + let P = Math.max(0, Number(e?.enrichment_queue_length || 0) || 0), ne = Sn().active || P > 0; + xn(ne, P); + let re = Number(i) > 0, ie = !!(e?.last_index_end || e?.last_scan_end), F = re && ie, I = "success"; + te || ne ? I = "info" : !j || N ? I = "error" : (ee || !F || E) && (I = "warning"); + let ae = u === "workflow", oe = p && I !== "error" ? "browser" : ae && I !== "error" ? "workflow" : I, se = e.watcher; try { if (!se || typeof se.enabled != "boolean") { - let e = await Je(s ? { signal: s } : void 0); - e?.ok && e.data && (se = { - enabled: !!e.data.enabled, - scope: r?.watcher?.scope || l, - custom_root_id: d || null + let t = await Ke(c ? { signal: c } : void 0); + t?.ok && t.data && (se = { + enabled: !!t.data.enabled, + scope: e?.watcher?.scope || u, + custom_root_id: f || null }); } } catch (e) { console.debug?.(e); } - let ce = ae ? L("status.watcher.disabledScoped", "Watcher: disabled ({scope})", { scope: L("scope.workflow", "Workflow") }) : f ? L("status.watcher.disabledScoped", "Watcher: disabled ({scope})", { scope: L("scope.customBrowser", "Browser") }) : Km(se, l), le = P ? L("status.enrichmentQueue", "Metadata enrichment queue: {count}", { count: ne }) : L("status.enrichmentIdle", "Metadata enrichment: idle"); - $m(n, g, x), eh(n, b, g); - let ue = l === "all" ? L("scope.allFull", "All (Inputs + Outputs)") : l === "input" ? L("scope.input", "Inputs") : l === "custom" ? L("scope.customBrowser", "Browser") : l === "workflow" ? L("scope.workflow", "Workflow") : L("scope.output", "Outputs"); - return ie === "error" ? (e.style.background = "var(--mjr-status-error, #f44336)", Wm(o, "error"), Um(t, L("status.dbCorrupted", "Database appears corrupted or unavailable."), [ + let ce = ae ? L("status.watcher.disabledScoped", "Watcher: disabled ({scope})", { scope: L("scope.workflow", "Workflow") }) : p ? L("status.watcher.disabledScoped", "Watcher: disabled ({scope})", { scope: L("scope.customBrowser", "Browser") }) : Zm(se, u), le = ne ? L("status.enrichmentQueue", "Metadata enrichment queue: {count}", { count: P }) : L("status.enrichmentIdle", "Metadata enrichment: idle"); + ih(r, g, x), ah(r, b, g); + let ue = u === "all" ? L("scope.allFull", "All (Inputs + Outputs)") : u === "input" ? L("scope.input", "Inputs") : u === "custom" ? L("scope.customBrowser", "Browser") : u === "workflow" ? L("scope.workflow", "Workflow") : L("scope.output", "Outputs"); + return I === "error" ? (t.style.background = "var(--mjr-status-error, #f44336)", Ym(s, "error"), Jm(n, L("status.dbCorrupted", "Database appears corrupted or unavailable."), [ k, A, S, ce - ].filter(Boolean).join(" | ")), r) : f ? (e.style.background = "var(--mjr-status-browser, #26A69A)", Wm(o, "browser"), Um(t, L("status.ready", "Ready"), [L("status.browserMetricsHidden", "Browser mode: global DB/index metrics hidden"), ce].filter(Boolean).join(" | ")), r) : ae ? (e.style.background = "#d481c3", Wm(o, oe), Bm(t, [ - L("status.workflowsIndexed", `${p.toLocaleString()} workflows indexed (${ue})`, { - count: p.toLocaleString(), + ].filter(Boolean).join(" | ")), e) : p ? (t.style.background = "var(--mjr-status-browser, #26A69A)", Ym(s, "browser"), Jm(n, L("status.ready", "Ready"), [L("status.browserMetricsHidden", "Browser mode: global DB/index metrics hidden"), ce].filter(Boolean).join(" | ")), e) : ae ? (t.style.background = "#d481c3", Ym(s, oe), Gm(n, [ + L("status.workflowsIndexed", `${d.toLocaleString()} workflows indexed (${ue})`, { + count: d.toLocaleString(), scope: ue }), - L("status.assetsCountReference", `Asset records in DB: ${a.toLocaleString()}`, { count: a.toLocaleString() }), + L("status.assetsCountReference", `Asset records in DB: ${i.toLocaleString()}`, { count: i.toLocaleString() }), le, O, k, A, S, ce - ], L("status.lastScan", `Last scan: ${h}`, { date: h })), r) : (a === 0 ? (e.style.background = oe === "browser" ? "var(--mjr-status-browser, #26A69A)" : ie === "info" ? "var(--mjr-status-info, #64B5F6)" : ie === "warning" ? "var(--mjr-status-warning, #FFA726)" : "var(--mjr-status-success, #4CAF50)", Wm(o, oe), Um(t, L("status.noAssets", `No assets indexed yet (${ue})`, { scope: ue }), [ + ], L("status.lastScan", `Last scan: ${h}`, { date: h })), e) : (i === 0 ? (t.style.background = oe === "browser" ? "var(--mjr-status-browser, #26A69A)" : I === "info" ? "var(--mjr-status-info, #64B5F6)" : I === "warning" ? "var(--mjr-status-warning, #FFA726)" : "var(--mjr-status-success, #4CAF50)", Ym(s, oe), Jm(n, L("status.noAssets", `No assets indexed yet (${ue})`, { scope: ue }), [ L("status.clickToScan", "Click the dot to start a scan"), O, k, A, S, ce - ].filter(Boolean).join(" | "))) : (e.style.background = oe === "browser" ? "var(--mjr-status-browser, #26A69A)" : ie === "info" ? "var(--mjr-status-info, #64B5F6)" : ie === "warning" ? "var(--mjr-status-warning, #FFA726)" : "var(--mjr-status-success, #4CAF50)", Wm(o, oe), Bm(t, [ - L("status.assetsIndexed", `${a.toLocaleString()} assets indexed (${ue})`, { - count: a.toLocaleString(), + ].filter(Boolean).join(" | "))) : (t.style.background = oe === "browser" ? "var(--mjr-status-browser, #26A69A)" : I === "info" ? "var(--mjr-status-info, #64B5F6)" : I === "warning" ? "var(--mjr-status-warning, #FFA726)" : "var(--mjr-status-success, #4CAF50)", Ym(s, oe), Gm(n, [ + L("status.assetsIndexed", `${i.toLocaleString()} assets indexed (${ue})`, { + count: i.toLocaleString(), scope: ue }), - dh(r), - L("status.withWorkflows", `With workflows: ${c} - Generation data: ${u}`, { - workflows: c, - gendata: u + gh(e), + L("status.withWorkflows", `With workflows: ${o} - Generation data: ${l}`, { + workflows: o, + gendata: l }), le, O, @@ -12658,34 +12735,34 @@ async function ah(e, t, n = null, r = null, i = null, a = {}) { A, S, ce - ], L("status.lastScan", `Last scan: ${h}`, { date: h })), Vm(t, Hm(r, { - totalAssets: a, - withWorkflows: c, - withGenerationData: u - }))), r); + ], L("status.lastScan", `Last scan: ${h}`, { date: h })), Km(n, qm(e, { + totalAssets: i, + withWorkflows: o, + withGenerationData: l + }))), e); } - if ($m(n, {}, {}), eh(n, b), e.style.background = "var(--mjr-status-error, #f44336)", Wm(o, "error"), _?.code === "INVALID_RESPONSE" && _?.status === 404) Um(t, L("status.apiNotFound", "Majoor API endpoints not found (404)"), L("status.apiNotFoundHint", "Backend routes are not loaded. Restart ComfyUI and check the terminal for Majoor import errors.")); + if (ih(r, {}, {}), ah(r, b), t.style.background = "var(--mjr-status-error, #f44336)", Ym(s, "error"), _?.code === "INVALID_RESPONSE" && _?.status === 404) Jm(n, L("status.apiNotFound", "Majoor API endpoints not found (404)"), L("status.apiNotFoundHint", "Backend routes are not loaded. Restart ComfyUI and check the terminal for Majoor import errors.")); else { let e = String(_?.error || "").toLowerCase(); - e.includes("malform") || e.includes("corrupt") || e.includes("disk image") ? (Um(t, L("status.dbCorrupted"), L("status.dbCorruptedHint")), globalThis._mjrCorruptToastShown || (globalThis._mjrCorruptToastShown = !0, F(L("toast.resetFailedCorrupt"), "error", 8e3))) : Bm(t, [_.error || L("status.errorChecking", "Error checking status")]); + e.includes("malform") || e.includes("corrupt") || e.includes("disk image") ? (Jm(n, L("status.dbCorrupted"), L("status.dbCorruptedHint")), globalThis._mjrCorruptToastShown || (globalThis._mjrCorruptToastShown = !0, x(L("toast.resetFailedCorrupt"), "error", 8e3))) : Gm(n, [_.error || L("status.errorChecking", "Error checking status")]); } if (_.code === "SERVICE_UNAVAILABLE") { - let i = oh(e, t, n, r); - t.appendChild(document.createElement("br")), t.appendChild(i); + let e = dh(t, n, r, i); + n.appendChild(document.createElement("br")), n.appendChild(e); } return null; } -function oh(e, t, n = null, r = null) { +function dh(e, t, n = null, r = null) { let i = document.createElement("button"); return i.textContent = L("btn.retryServices"), i.style.cssText = "\n padding: 4px 10px;\n margin-top: 6px;\n font-size: 11px;\n border-radius: 4px;\n border: 1px solid rgba(255,255,255,0.3);\n background: transparent;\n color: white;\n cursor: pointer;\n ", i.onclick = async () => { i.disabled = !0, i.textContent = L("btn.retrying"); - let a = await me(p.RETRY_SERVICES, {}); - i.disabled = !1, i.textContent = L("btn.retryServices"), a.ok ? ah(e, t, n, r) : (Bm(t, [a.error || L("status.retryFailed", "Retry failed")]), t.appendChild(document.createElement("br")), t.appendChild(i)); + let a = await he(I.RETRY_SERVICES, {}); + i.disabled = !1, i.textContent = L("btn.retryServices"), a.ok ? uh(e, t, n, r) : (Gm(t, [a.error || L("status.retryFailed", "Retry failed")]), t.appendChild(document.createElement("br")), t.appendChild(i)); }, i; } -function sh() { +function fh() { try { - let e = localStorage?.getItem?.(Fm); + let e = localStorage?.getItem?.(Bm); if (!e) return null; let t = JSON.parse(e); return t && typeof t == "object" ? t : null; @@ -12693,15 +12770,15 @@ function sh() { return console.debug?.(e), null; } } -function ch(e) { +function ph(e) { try { if (!e || typeof e != "object") return; - localStorage?.setItem?.(Fm, JSON.stringify(e)); + localStorage?.setItem?.(Bm, JSON.stringify(e)); } catch (e) { console.debug?.(e); } } -function lh(e) { +function mh(e) { let t = [], n = (e, r = 0) => { if (!(!e || r > 2)) { if (typeof e == "number" && Number.isFinite(e)) t.push(e); @@ -12714,23 +12791,23 @@ function lh(e) { }; return n(e, 0), t; } -function uh(e) { +function hh(e) { if (!e || typeof e != "object") return !1; - if (Mm) return !0; + if (Lm) return !0; try { - if (yn()?.active) return !0; + if (Sn()?.active) return !0; } catch (e) { console.debug?.(e); } - return lh(e).some((e) => Number(e) > 0); + return mh(e).some((e) => Number(e) > 0); } -function dh(e) { +function gh(e) { let t = []; e.images && t.push(`Images: ${e.images}`), e.videos && t.push(`Videos: ${e.videos}`), e.audio && t.push(`Audio: ${e.audio}`); let n = e.model3d || e.by_kind?.model3d || 0; return n && t.push(`3D: ${n}`), t.length ? t.join(" - ") : "Images: 0 - Videos: 0"; } -function fh(e) { +function _h(e) { if (!e || typeof e != "object") return ""; let t = (e) => e == null ? null : typeof e == "number" ? Number.isFinite(e) ? e : null : typeof e == "boolean" || typeof e == "string" ? e : null; return JSON.stringify({ @@ -12748,23 +12825,23 @@ function fh(e) { } }); } -function ph(e, t, n) { - let r = sh(); +function vh(e, t, n) { + let r = fh(); if (!r) return !1; try { - $m(n, r.tool_availability || {}, r.tool_paths || {}); + ih(n, r.tool_availability || {}, r.tool_paths || {}); } catch (e) { console.debug?.(e); } try { - return e.style.background = "var(--mjr-status-info, #64B5F6)", Um(t, L("status.cached", "Last known status"), L("status.checking", "Checking status...")), !0; + return e.style.background = "var(--mjr-status-info, #64B5F6)", Jm(t, L("status.cached", "Last known status"), L("status.checking", "Checking status...")), !0; } catch (e) { return console.debug?.(e), !1; } } -function mh(e, t, n) { - let r = fh(t), i = r && r !== String(n?.lastSignature || ""), a = uh(t), o = e || Im.ACTIVE, s = Number(n?.cooldownStablePolls || 0) || 0; - return a || i ? (o = Im.ACTIVE, s = 0) : o === Im.ACTIVE ? (o = Im.COOLDOWN, s = 0) : o === Im.COOLDOWN ? (s += 1, s >= 3 && (o = Im.IDLE, s = 0)) : (o = i ? Im.ACTIVE : Im.IDLE, s = 0), { +function yh(e, t, n) { + let r = _h(t), i = r && r !== String(n?.lastSignature || ""), a = hh(t), o = e || Vm.ACTIVE, s = Number(n?.cooldownStablePolls || 0) || 0; + return a || i ? (o = Vm.ACTIVE, s = 0) : o === Vm.ACTIVE ? (o = Vm.COOLDOWN, s = 0) : o === Vm.COOLDOWN ? (s += 1, s >= 3 && (o = Vm.IDLE, s = 0)) : (o = i ? Vm.ACTIVE : Vm.IDLE, s = 0), { nextState: o, signature: r, hasChange: i, @@ -12772,14 +12849,14 @@ function mh(e, t, n) { cooldownStablePolls: s }; } -function hh(e, t, n, r = null, i = null, a = null) { +function bh(e, t, n, r = null, i = null, a = null) { let o = "__MJR_STATUS_POLL_DISPOSE__", s = { lastCode: null, lastStatus: null, _pollTick: 0, _auxCached: !1 }, c = { - mode: Im.ACTIVE, + mode: Vm.ACTIVE, cooldownStablePolls: 0, lastSignature: "" }, l = typeof AbortController < "u" ? new AbortController() : null, u = async () => { @@ -12789,14 +12866,14 @@ function hh(e, t, n, r = null, i = null, a = null) { console.debug?.(e); } s._pollTick = Number(s._pollTick || 0) + 1; - let n = s._pollTick > 1 && s._pollTick % 4 != 0, o = await ah(e, t, r, typeof a == "function" ? a() : null, s, { + let n = s._pollTick > 1 && s._pollTick % 4 != 0, o = await uh(e, t, r, typeof a == "function" ? a() : null, s, { signal: l?.signal || null, lightweight: n, - force: !!Mm || s._pollTick <= 1 + force: !!Lm || s._pollTick <= 1 }); if (o && typeof o == "object") { - ch(o); - let e = mh(c.mode, o, c); + ph(o); + let e = yh(c.mode, o, c); c.mode = e.nextState, c.lastSignature = e.signature, c.cooldownStablePolls = e.cooldownStablePolls; } if (o && typeof i == "function") try { @@ -12806,7 +12883,7 @@ function hh(e, t, n, r = null, i = null, a = null) { } return o; }; - ph(e, t, r), u(); + vh(e, t, r), u(); try { n._mjrStatusPollDispose?.(); } catch (e) { @@ -12827,7 +12904,7 @@ function hh(e, t, n, r = null, i = null, a = null) { } return 1; }, h = () => { - let e = Lm[c.mode] || Math.max(250, Number(R.STATUS_POLL_INTERVAL) || 2e3), t = p ? Math.max(3e4, e) : f > 0 ? Math.min(6e4, Math.round(e * Math.min(8, 1 + f))) : e, r = Math.min(12e4, Math.round(t * m())); + let e = Hm[c.mode] || Math.max(250, Number(R.STATUS_POLL_INTERVAL) || 2e3), t = p ? Math.max(3e4, e) : f > 0 ? Math.min(6e4, Math.round(e * Math.min(8, 1 + f))) : e, r = Math.min(12e4, Math.round(t * m())); d = setTimeout(async () => { try { if (l?.signal?.aborted) return; @@ -12835,7 +12912,7 @@ function hh(e, t, n, r = null, i = null, a = null) { console.debug?.(e); } let e = await u(); - if (p = s.lastCode === "INVALID_RESPONSE" && s.lastStatus === 404, e ? f = 0 : p ? f = Math.min(999, f + 1) : (f = Math.min(999, f + 1), c.mode = Im.ACTIVE, c.cooldownStablePolls = 0), p && f >= 3) try { + if (p = s.lastCode === "INVALID_RESPONSE" && s.lastStatus === 404, e ? f = 0 : p ? f = Math.min(999, f + 1) : (f = Math.min(999, f + 1), c.mode = Vm.ACTIVE, c.cooldownStablePolls = 0), p && f >= 3) try { n._mjrStatusPollDispose?.(); } catch (e) { console.debug?.(e); @@ -12858,54 +12935,54 @@ function hh(e, t, n, r = null, i = null, a = null) { } h(); for (let i of n.querySelectorAll("#mjr-status-dot, #mjr-status-scan")) i.onclick = (n) => { - n.stopPropagation(), Zm(e, t, r, typeof a == "function" ? a() : null); + n.stopPropagation(), nh(e, t, r, typeof a == "function" ? a() : null); }, i.title = L("btn.scan", "Scan"); } // ui/vue/composables/useActiveAsset.ts -var gh = mr(null), _h = mr(null); -function vh() { +var xh = _r(null), Sh = _r(null); +function Ch() { return { - activeAsset: gh, - onUpdateCallback: _h + activeAsset: xh, + onUpdateCallback: Sh }; } -function yh(e, t) { - _h.value = typeof t == "function" ? t : null, gh.value = e ?? null; +function wh(e, t) { + Sh.value = typeof t == "function" ? t : null, xh.value = e ?? null; } -function bh() { - gh.value = null, _h.value = null; +function Th() { + xh.value = null, Sh.value = null; } -function xh(e, t) { - if (gh.value && e) { - gh.value = { - ...gh.value, +function Eh(e, t) { + if (xh.value && e) { + xh.value = { + ...xh.value, ...e }; try { - let e = t ?? _h.value; - typeof e == "function" && e(gh.value); + let e = t ?? Sh.value; + typeof e == "function" && e(xh.value); } catch {} } } // ui/components/sidebar/SidebarView.ts -var Sh = 360, Ch = 240, wh = 640; -function Th() { +var Dh = 360, Oh = 240, kh = 640; +function Ah() { try { - let e = Mt(), t = Number(e?.sidebar?.widthPx); - return Number.isFinite(t) ? Math.max(Ch, Math.min(wh, Math.round(t))) : Sh; + let e = Ft(), t = Number(e?.sidebar?.widthPx); + return Number.isFinite(t) ? Math.max(Oh, Math.min(kh, Math.round(t))) : Dh; } catch { - return Sh; + return Dh; } } -function Eh(e, t) { +function jh(e, t) { if (!e) return; let n = String(e?.dataset?.position || "right").toLowerCase() === "left", r = "var(--mjr-border, rgba(255,255,255,0.12))"; if (t) { - let t = `${Th()}px`; + let t = `${Ah()}px`; e.style.flex = `0 0 ${t}`, e.style.width = t, e.style.maxWidth = t, e.style.minWidth = "0", e.style.overflow = "hidden", e.style.borderLeft = n ? "none" : `1px solid ${r}`, e.style.borderRight = n ? `1px solid ${r}` : "none"; } else e.style.flex = "0 0 0px", e.style.width = "0", e.style.maxWidth = "0", e.style.minWidth = "0", e.style.overflow = "hidden", e.style.borderLeft = "none", e.style.borderRight = "none"; } -function Dh(e) { +function Mh(e) { if (e == null) return !1; let t = e; if (typeof e == "string") { @@ -12924,10 +13001,10 @@ function Dh(e) { } return !1; } -function Oh(e) { - return e ? !!(e.geninfo || e.prompt || Dh(e.metadata_raw)) : !1; +function Nh(e) { + return e ? !!(e.geninfo || e.prompt || Mh(e.metadata_raw)) : !1; } -async function kh(e, t, n) { +async function Ph(e, t, n) { if (!e || !t) return; let r = String(t?.kind || "").toLowerCase() === "folder"; try { @@ -12936,7 +13013,7 @@ async function kh(e, t, n) { console.debug?.(e); } let i = e._requestSeq = (e._requestSeq || 0) + 1; - e._currentFetchAbortController?.abort?.(), e._currentFetchAbortController = null, e.classList.add("is-open"), Eh(e, !0), e._currentAsset = t, e._currentFullAsset = t, e._ratingTagsSection = null, yh(t, n); + e._currentFetchAbortController?.abort?.(), e._currentFetchAbortController = null, e.classList.add("is-open"), jh(e, !0), e._currentAsset = t, e._currentFullAsset = t, e._ratingTagsSection = null, wh(t, n); let a = () => { e._currentFetchAbortController?.abort?.(); let t = typeof AbortController < "u" ? new AbortController() : null; @@ -12945,7 +13022,7 @@ async function kh(e, t, n) { e._requestSeq === i && e._currentAsset === t && (e._currentFullAsset = { ...e._currentFullAsset ?? t, ...r - }, xh(r, n)); + }, Eh(r, n)); }; (async () => { if (e._requestSeq !== i || e._currentAsset !== t) return; @@ -12967,8 +13044,8 @@ async function kh(e, t, n) { } let c = () => e._currentFullAsset ?? t; try { - if (t.id && !Oh(c())) { - let e = await Ue(t.id, n); + if (t.id && !Nh(c())) { + let e = await qe(t.id, n); if (s?.aborted) return; e?.ok && e.data && o(e.data); } @@ -12976,10 +13053,10 @@ async function kh(e, t, n) { s?.aborted || console.warn("Failed to load full asset metadata:", e); } if (!s?.aborted) { - if (!Oh(c())) { + if (!Nh(c())) { let e = String(c()?.filename || "").trim(), t = String(c()?.type || "output").trim().toLowerCase(), r = String(c()?.subfolder || "").trim(), i = String(c()?.root_id || c()?.rootId || "").trim(); if (e) try { - let a = await Ye({ + let a = await Ze({ type: t, filename: e, subfolder: r, @@ -13005,9 +13082,9 @@ async function kh(e, t, n) { } })(); } -function Ah(e) { +function Fh(e) { if (e) { - e._requestSeq = (e._requestSeq || 0) + 1, e.classList.remove("is-open"), Eh(e, !1), e._currentAsset = null, e._currentFullAsset = null, e._currentFetchAbortController?.abort?.(), e._currentFetchAbortController = null, bh(); + e._requestSeq = (e._requestSeq || 0) + 1, e.classList.remove("is-open"), jh(e, !1), e._currentAsset = null, e._currentFullAsset = null, e._currentFetchAbortController?.abort?.(), e._currentFetchAbortController = null, Th(); try { e.dispatchEvent?.(new CustomEvent("mjr:sidebar-closed", { bubbles: !0 })); } catch (e) { @@ -13016,14 +13093,14 @@ function Ah(e) { } } // ui/stores/usePanelStore.ts -var jh = "mjr_panel_state", Mh = /* @__PURE__ */ new Set([ +var Ih = "mjr_panel_state", Lh = /* @__PURE__ */ new Set([ "output", "input", "all", "custom", "workflow" ]); -function Nh(e, t = !1) { +function Rh(e, t = !1) { if (typeof e == "boolean") return e; if (typeof e == "string") { let t = e.trim().toLowerCase(); @@ -13042,71 +13119,71 @@ function Nh(e, t = !1) { } return !!t; } -function Ph(e, t = 0) { +function zh(e, t = 0) { let n = Number(e); return Number.isFinite(n) ? n : t; } -function Fh(e, t = "") { +function Bh(e, t = "") { return e == null ? t : String(e); } -function Ih(e, t = 0, n = Infinity) { - return Math.max(t, Math.min(n, Math.floor(Ph(e, t)))); +function Vh(e, t = 0, n = Infinity) { + return Math.max(t, Math.min(n, Math.floor(zh(e, t)))); } -function Lh(e) { - let t = Fh(e || "output").toLowerCase(), n = t === "outputs" ? "output" : t === "inputs" ? "input" : t; - return Mh.has(n) ? n : "output"; +function Hh(e) { + let t = Bh(e || "output").toLowerCase(), n = t === "outputs" ? "output" : t === "inputs" ? "input" : t; + return Lh.has(n) ? n : "output"; } -function Rh(e) { +function Uh(e) { if (!e || typeof e != "object") return {}; let t = e; return { - scope: Lh(t.scope), - customRootId: Fh(t.customRootId), - customRootLabel: Fh(t.customRootLabel), - currentFolderRelativePath: Fh(t.currentFolderRelativePath || t.subfolder), - collectionId: Fh(t.collectionId), - collectionName: Fh(t.collectionName), - kindFilter: Fh(t.kindFilter), - dateRangeFilter: Fh(t.dateRangeFilter), - dateExactFilter: Fh(t.dateExactFilter), - workflowOnly: Nh(t.workflowOnly, !1), - minRating: Ih(t.minRating, 0, 5), - minSizeMB: Math.max(0, Ph(t.minSizeMB, 0)), - maxSizeMB: Math.max(0, Ph(t.maxSizeMB, 0)), + scope: Hh(t.scope), + customRootId: Bh(t.customRootId), + customRootLabel: Bh(t.customRootLabel), + currentFolderRelativePath: Bh(t.currentFolderRelativePath || t.subfolder), + collectionId: Bh(t.collectionId), + collectionName: Bh(t.collectionName), + kindFilter: Bh(t.kindFilter), + dateRangeFilter: Bh(t.dateRangeFilter), + dateExactFilter: Bh(t.dateExactFilter), + workflowOnly: Rh(t.workflowOnly, !1), + minRating: Vh(t.minRating, 0, 5), + minSizeMB: Math.max(0, zh(t.minSizeMB, 0)), + maxSizeMB: Math.max(0, zh(t.maxSizeMB, 0)), resolutionCompare: t.resolutionCompare === "lte" ? "lte" : "gte", - minWidth: Ih(t.minWidth), - minHeight: Ih(t.minHeight), - maxWidth: Ih(t.maxWidth), - maxHeight: Ih(t.maxHeight), - workflowType: Fh(t.workflowType), - workflowId: Fh(t.workflowId || t.workflow_id), - workflowModelFilter: Fh(t.workflowModelFilter || t.workflowModel || t.workflow_model), - workflowRunsOnFilter: Fh(t.workflowRunsOnFilter || t.workflowRunsOn || t.runs_on), - sort: Fh(t.sort || "mtime_desc"), - searchQuery: Fh(t.searchQuery), + minWidth: Vh(t.minWidth), + minHeight: Vh(t.minHeight), + maxWidth: Vh(t.maxWidth), + maxHeight: Vh(t.maxHeight), + workflowType: Bh(t.workflowType), + workflowId: Bh(t.workflowId || t.workflow_id), + workflowModelFilter: Bh(t.workflowModelFilter || t.workflowModel || t.workflow_model), + workflowRunsOnFilter: Bh(t.workflowRunsOnFilter || t.workflowRunsOn || t.runs_on), + sort: Bh(t.sort || "mtime_desc"), + searchQuery: Bh(t.searchQuery), metadataSearchMode: String(t.metadataSearchMode || "AND").toUpperCase() === "OR" ? "OR" : "AND", - scrollTop: Ih(t.scrollTop), - activeAssetId: Fh(t.activeAssetId), - selectedAssetIds: Array.isArray(t.selectedAssetIds) ? t.selectedAssetIds.map((e) => Fh(e).trim()).filter(Boolean).slice(0, 5e3) : [], - sidebarOpen: Nh(t.sidebarOpen, !1) + scrollTop: Vh(t.scrollTop), + activeAssetId: Bh(t.activeAssetId), + selectedAssetIds: Array.isArray(t.selectedAssetIds) ? t.selectedAssetIds.map((e) => Bh(e).trim()).filter(Boolean).slice(0, 5e3) : [], + sidebarOpen: Rh(t.sidebarOpen, !1) }; } -function zh() { +function Wh() { try { - let e = localStorage.getItem(jh); - if (e) return Rh(JSON.parse(e)); + let e = localStorage.getItem(Ih); + if (e) return Uh(JSON.parse(e)); } catch {} return {}; } -function Bh(e) { +function Gh(e) { try { let t = { ...e }; - delete t.lastGridCount, delete t.lastGridTotal, delete t.viewScope, delete t.similarResults, delete t.similarTitle, delete t.similarSourceAssetId, localStorage.setItem(jh, JSON.stringify(t)); + delete t.lastGridCount, delete t.lastGridTotal, delete t.viewScope, delete t.similarResults, delete t.similarTitle, delete t.similarSourceAssetId, localStorage.setItem(Ih, JSON.stringify(t)); } catch {} } -var Vh = Sr("mjr-panel", () => { - let e = zh(), t = Q(e.scope || "output"), n = Q(e.customRootId || ""), r = Q(e.customRootLabel || ""), i = Q(e.currentFolderRelativePath || ""), a = Q(e.collectionId || ""), o = Q(e.collectionName || ""), s = Q(e.kindFilter || ""), c = Q(e.dateRangeFilter || ""), l = Q(e.dateExactFilter || ""), u = Q(e.workflowOnly || !1), d = Q(e.minRating || 0), f = Q(e.minSizeMB || 0), p = Q(e.maxSizeMB || 0), m = Q(e.resolutionCompare || "gte"), h = Q(e.minWidth || 0), g = Q(e.minHeight || 0), _ = Q(e.maxWidth || 0), v = Q(e.maxHeight || 0), y = Q(e.workflowType || ""), b = Q(e.workflowId || ""), x = Q(e.workflowModelFilter || ""), S = Q(e.workflowRunsOnFilter || ""), C = Q(e.sort || "mtime_desc"), w = Q(e.searchQuery || ""), T = Q(e.metadataSearchMode || "AND"), E = Q(e.scrollTop || 0), D = Q(e.activeAssetId || ""), O = Q(e.selectedAssetIds || []), k = Q(e.sidebarOpen || !1), A = Q(0), ee = Q(0), j = Q(""), M = Q([]), N = Q(""), te = Q(""), ne = null; - or([ +var Kh = Tr("mjr-panel", () => { + let e = Wh(), t = Q(e.scope || "output"), n = Q(e.customRootId || ""), r = Q(e.customRootLabel || ""), i = Q(e.currentFolderRelativePath || ""), a = Q(e.collectionId || ""), o = Q(e.collectionName || ""), s = Q(e.kindFilter || ""), c = Q(e.dateRangeFilter || ""), l = Q(e.dateExactFilter || ""), u = Q(e.workflowOnly || !1), d = Q(e.minRating || 0), f = Q(e.minSizeMB || 0), p = Q(e.maxSizeMB || 0), m = Q(e.resolutionCompare || "gte"), h = Q(e.minWidth || 0), g = Q(e.minHeight || 0), _ = Q(e.maxWidth || 0), v = Q(e.maxHeight || 0), y = Q(e.workflowType || ""), b = Q(e.workflowId || ""), x = Q(e.workflowModelFilter || ""), S = Q(e.workflowRunsOnFilter || ""), C = Q(e.sort || "mtime_desc"), w = Q(e.searchQuery || ""), T = Q(e.metadataSearchMode || "AND"), E = Q(e.scrollTop || 0), D = Q(e.activeAssetId || ""), O = Q(e.selectedAssetIds || []), k = Q(e.sidebarOpen || !1), A = Q(0), j = Q(0), M = Q(""), N = Q([]), ee = Q(""), te = Q(""), P = null; + lr([ t, n, r, @@ -13137,8 +13214,8 @@ var Vh = Sr("mjr-panel", () => { O, k ], () => { - ne && clearTimeout(ne), ne = setTimeout(() => { - ne = null, Bh({ + P && clearTimeout(P), P = setTimeout(() => { + P = null, Gh({ scope: t.value, customRootId: n.value, customRootLabel: r.value, @@ -13171,36 +13248,36 @@ var Vh = Sr("mjr-panel", () => { }); }, 750); }, { deep: !0 }); - let P = (e) => { - if (e.key === jh && e.newValue) try { - let n = Rh(JSON.parse(e.newValue)); + let ne = (e) => { + if (e.key === Ih && e.newValue) try { + let n = Uh(JSON.parse(e.newValue)); n.scope !== void 0 && (t.value = n.scope), n.customRootLabel !== void 0 && (r.value = n.customRootLabel), n.searchQuery !== void 0 && (w.value = n.searchQuery), n.metadataSearchMode !== void 0 && (T.value = n.metadataSearchMode), n.sort !== void 0 && (C.value = n.sort), n.sidebarOpen !== void 0 && (k.value = n.sidebarOpen); } catch {} }; try { - window.addEventListener("storage", P); + window.addEventListener("storage", ne); } catch {} - cr(() => { + dr(() => { try { - window.removeEventListener("storage", P); + window.removeEventListener("storage", ne); } catch {} }); function re() { s.value = "", c.value = "", l.value = "", u.value = !1, d.value = 0, f.value = 0, p.value = 0, m.value = "gte", h.value = 0, g.value = 0, _.value = 0, v.value = 0, y.value = "", b.value = "", x.value = "", S.value = "", w.value = ""; } - function F() { + function ie() { O.value = [], D.value = ""; } - function I(e, t = "") { + function F(e, t = "") { O.value = Array.isArray(e) ? e.map(String).filter(Boolean) : [], D.value = t || O.value[0] || ""; } - function ie(e, s = {}) { - t.value = e, i.value = s.folder || "", a.value = s.collectionId || "", o.value = s.collectionName || "", n.value = s.customRootId || "", r.value = s.customRootLabel || "", j.value = "", M.value = [], N.value = "", te.value = "", F(); + function I(e, s = {}) { + t.value = e, i.value = s.folder || "", a.value = s.collectionId || "", o.value = s.collectionName || "", n.value = s.customRootId || "", r.value = s.customRootLabel || "", M.value = "", N.value = [], ee.value = "", te.value = "", ie(); } async function ae() { let e = String(n.value || "").trim(); if (e) try { - let a = await Pe("/mjr/am/custom-roots"), o = (Array.isArray(a?.data) ? a.data : []).find((t) => String(t?.id || "") === e); + let a = await Ie("/mjr/am/custom-roots"), o = (Array.isArray(a?.data) ? a.data : []).find((t) => String(t?.id || "") === e); if (!o) { n.value = "", r.value = "", t.value === "custom" && (t.value = "output", i.value = ""); return; @@ -13240,29 +13317,29 @@ var Vh = Sr("mjr-panel", () => { selectedAssetIds: O, sidebarOpen: k, lastGridCount: A, - lastGridTotal: ee, - viewScope: j, - similarResults: M, - similarTitle: N, + lastGridTotal: j, + viewScope: M, + similarResults: N, + similarTitle: ee, similarSourceAssetId: te, resetFilters: re, - clearSelection: F, - setSelection: I, - navigateToScope: ie, + clearSelection: ie, + setSelection: F, + navigateToScope: I, validatePersistedCustomRoot: ae }; }); // ui/stores/getOptionalPanelStore.ts -function Hh() { +function qh() { try { - return Cr() ? Vh() : null; + return Er() ? Kh() : null; } catch { return null; } } // ui/stores/panelStateBridge.ts -function Uh(e, t = []) { - let n = Hh(); +function Jh(e, t = []) { + let n = qh(); return { panelStore: n, hydrateStoreFromLegacy: () => {}, @@ -13289,12 +13366,12 @@ function Uh(e, t = []) { }; } // ui/features/panel/messages/messageCenter.ts -var Wh = "mjr_panel_messages_v1", Gh = "mjr_panel_messages_last_read_v1", Kh = "mjr_panel_messages_dismissed_builtin_ids_v1", qh = 120, Jh = "/mjr/am/user-guide", Yh = /* @__PURE__ */ new Set([ +var Yh = "mjr_panel_messages_v1", Xh = "mjr_panel_messages_last_read_v1", Zh = "mjr_panel_messages_dismissed_builtin_ids_v1", Qh = 120, $h = "/mjr/am/user-guide", eg = /* @__PURE__ */ new Set([ "info", "success", "warning", "error" -]), Xh = "mjr:panel-messages-changed", Zh = !1, Qh = [], $h = Object.freeze([ +]), tg = "mjr:panel-messages-changed", ng = !1, rg = [], ig = Object.freeze([ { id: "whats-new-2026-07-09-version-2-5-0", title: "New Version 2.5.0", @@ -13417,7 +13494,7 @@ var Wh = "mjr_panel_messages_v1", Gh = "mjr_panel_messages_last_read_v1", Kh = " bodyKey: "msg.whatsNew.body.localUserGuide", actionLabel: "User Guide", actionLabelKey: "label.userGuide", - actionUrl: Jh + actionUrl: $h }, { id: "tip-2026-04-07-output-folder-override", @@ -13599,27 +13676,27 @@ var Wh = "mjr_panel_messages_v1", Gh = "mjr_panel_messages_last_read_v1", Kh = " actionLabelKey: "label.settingsGuide", actionUrl: "docs/SETTINGS_CONFIGURATION.md" } -]), eg = new Set($h.map((e) => String(e?.id || "").trim()).filter(Boolean)); -function tg(e, t = 0) { +]), ag = new Set(ig.map((e) => String(e?.id || "").trim()).filter(Boolean)); +function og(e, t = 0) { let n = Number(e); return Number.isFinite(n) ? n : t; } -function ng() { +function sg() { return Date.now(); } -function rg() { - return Ae(`msg-${ng()}-`, 6); +function cg() { + return be(`msg-${sg()}-`, 6); } -function ig(e) { +function lg(e) { let t = String(e || "").trim().toLowerCase(); - return t === "warn" ? "warning" : t === "danger" ? "error" : Yh.has(t) ? t : "info"; + return t === "warn" ? "warning" : t === "danger" ? "error" : eg.has(t) ? t : "info"; } -function ag(e) { - return eg.has(String(e || "").trim()); +function ug(e) { + return ag.has(String(e || "").trim()); } -function og(e = {}) { +function dg(e = {}) { return { - id: String(e?.id || "").trim() || rg(), + id: String(e?.id || "").trim() || cg(), title: String(e?.title || "").trim() || "Info", titleKey: String(e?.titleKey || "").trim(), emoji: String(e?.emoji || "").trim(), @@ -13627,14 +13704,14 @@ function og(e = {}) { bodyKey: String(e?.bodyKey || "").trim(), category: String(e?.category || "").trim() || "Info", categoryKey: String(e?.categoryKey || "").trim(), - createdAt: tg(e?.createdAt, ng()), - level: ig(e?.level), + createdAt: og(e?.createdAt, sg()), + level: lg(e?.level), actionLabel: String(e?.actionLabel || "").trim(), actionLabelKey: String(e?.actionLabelKey || "").trim(), actionUrl: String(e?.actionUrl || "").trim() }; } -function sg(e, t) { +function fg(e, t) { try { let n = localStorage.getItem(e); return n ? JSON.parse(n) : t; @@ -13642,87 +13719,87 @@ function sg(e, t) { return t; } } -function cg(e, t) { +function pg(e, t) { try { localStorage.setItem(e, JSON.stringify(t)); } catch {} } -function lg() { +function mg() { try { - return tg(localStorage.getItem(Gh), 0); + return og(localStorage.getItem(Xh), 0); } catch { return 0; } } -function ug(e) { +function hg(e) { try { - localStorage.setItem(Gh, String(tg(e, ng()))); + localStorage.setItem(Xh, String(og(e, sg()))); } catch {} } -function dg() { - let e = sg(Kh, []); - return new Set((Array.isArray(e) ? e : []).map((e) => String(e || "").trim()).filter((e) => ag(e))); +function gg() { + let e = fg(Zh, []); + return new Set((Array.isArray(e) ? e : []).map((e) => String(e || "").trim()).filter((e) => ug(e))); } -function fg() { - Qh.sort((e, t) => Number(t.createdAt || 0) - Number(e.createdAt || 0)), Qh.length > qh && (Qh = Qh.slice(0, qh)); +function _g() { + rg.sort((e, t) => Number(t.createdAt || 0) - Number(e.createdAt || 0)), rg.length > Qh && (rg = rg.slice(0, Qh)); } -function pg() { - cg(Wh, Qh); +function vg() { + pg(Yh, rg); } -function mg() { - let e = dg(), t = !1; - for (let n of $h) { - let r = og(n); +function yg() { + let e = gg(), t = !1; + for (let n of ig) { + let r = dg(n); if (e.has(r.id)) continue; - let i = Qh.findIndex((e) => e.id === r.id); + let i = rg.findIndex((e) => e.id === r.id); if (i < 0) { - Qh.push(r), t = !0; + rg.push(r), t = !0; continue; } - let a = Qh[i], o = { + let a = rg[i], o = { ...a, ...r, - createdAt: tg(a?.createdAt, r.createdAt) + createdAt: og(a?.createdAt, r.createdAt) }; - JSON.stringify(a) !== JSON.stringify(o) && (Qh[i] = o, t = !0); + JSON.stringify(a) !== JSON.stringify(o) && (rg[i] = o, t = !0); } - return t ? (fg(), pg(), !0) : !1; + return t ? (_g(), vg(), !0) : !1; } -function hg() { +function bg() { try { - window.dispatchEvent(new CustomEvent(Xh, { detail: { - total: Qh.length, - unread: yg() + window.dispatchEvent(new CustomEvent(tg, { detail: { + total: rg.length, + unread: wg() } })); } catch (e) { console.debug?.(e); } } -function gg() { - if (Zh) return; - Zh = !0; - let e = sg(Wh, []); - Qh = (Array.isArray(e) ? e : []).map(og), fg(); +function xg() { + if (ng) return; + ng = !0; + let e = fg(Yh, []); + rg = (Array.isArray(e) ? e : []).map(dg), _g(); } -function _g() { - gg(), mg() && hg(); +function Sg() { + xg(), yg() && bg(); } -function vg() { - return gg(), Qh.map((e) => ({ ...e })); +function Cg() { + return xg(), rg.map((e) => ({ ...e })); } -function yg() { - gg(); - let e = lg(); - return Qh.reduce((t, n) => t + +(Number(n.createdAt || 0) > e), 0); +function wg() { + xg(); + let e = mg(); + return rg.reduce((t, n) => t + +(Number(n.createdAt || 0) > e), 0); } -function bg() { - return gg(), lg(); +function Tg() { + return xg(), mg(); } -function xg({ upTo: e = ng() } = {}) { - gg(), ug(tg(e, ng())), hg(); +function Eg({ upTo: e = sg() } = {}) { + xg(), hg(og(e, sg())), bg(); } // ui/features/panel/messages/shortcutGuide.ts -var Sg = Object.freeze([ +var Dg = Object.freeze([ { id: "panel", titleKey: "msg.shortcuts.section.panel", @@ -13931,18 +14008,18 @@ var Sg = Object.freeze([ ]) } ]); -function Cg() { - return Sg.map((e) => ({ +function Og() { + return Dg.map((e) => ({ ...e, items: Array.isArray(e.items) ? e.items.map((e) => ({ ...e })) : [] })); } -function wg() { +function kg() { let e = document.createElement("div"); e.className = "mjr-shortcut-guide"; let t = document.createElement("div"); t.className = "mjr-shortcut-guide-intro", t.textContent = L("msg.shortcuts.intro", "Current keyboard shortcuts grouped by section for quick reference."), e.appendChild(t); - for (let t of Cg()) { + for (let t of Og()) { let n = document.createElement("section"); n.className = "mjr-shortcut-section"; let r = document.createElement("div"); @@ -13962,18 +14039,18 @@ function wg() { return e; } // ui/features/panel/messages/messagePopoverController.ts -var Tg = /* @__PURE__ */ new Set([ +var Ag = /* @__PURE__ */ new Set([ "info", "success", "warning", "error" -]), Eg = 2200, Dg = /* @__PURE__ */ new Set([ +]), jg = 2200, Mg = /* @__PURE__ */ new Set([ "started", "queued", "running", "pending", "in_progress" -]), Og = /* @__PURE__ */ new Set([ +]), Ng = /* @__PURE__ */ new Set([ "succeeded", "success", "complete", @@ -13984,7 +14061,7 @@ var Tg = /* @__PURE__ */ new Set([ "cancelled", "canceled" ]); -function kg(e) { +function Pg(e) { let t = Number(e); if (!Number.isFinite(t) || t <= 0) return ""; try { @@ -13999,15 +14076,15 @@ function kg(e) { return ""; } } -function Ag(e, t, n, r) { +function Fg(e, t, n, r) { let i = String(e?.[t] || "").trim(), a = String(e?.[n] || r || "").trim() || String(r || ""); return i ? L(i, a) : a; } -function jg(e) { +function Ig(e) { let t = String(e || "").trim().toLowerCase(); - return t === "warn" ? "warning" : t === "danger" ? "error" : Tg.has(t) ? t : "info"; + return t === "warn" ? "warning" : t === "danger" ? "error" : Ag.has(t) ? t : "info"; } -function Mg(e) { +function Lg(e) { let t = String(e || "").trim(); if (!t) return ""; try { @@ -14017,13 +14094,13 @@ function Mg(e) { return ""; } } -function Ng(e) { +function Rg(e) { let t = String(e?.emoji || "").trim(); if (t) return t; - let n = jg(e?.level); + let n = Ig(e?.level); return n === "success" ? "OK" : n === "warning" ? "WARN" : n === "error" ? "ERR" : "INFO"; } -function Pg(e) { +function zg(e) { switch (String(e || "").toLowerCase()) { case "success": return "OK"; case "warning": return "WARN"; @@ -14031,22 +14108,22 @@ function Pg(e) { default: return "Tip"; } } -function Fg(e) { +function Bg(e) { if (e?.persistent) return "persistent"; let t = Number(e?.durationMs); return !Number.isFinite(t) || t <= 0 ? "" : t < 1e4 ? `${(t / 1e3).toFixed(1)}s` : `${Math.round(t / 1e3)}s`; } -function Ig(e) { +function Vg(e) { let t = String(e || "").trim().toLowerCase(); return t ? t.replace(/[_-]+/g, " ") : ""; } -function Lg(e) { +function Hg(e) { let t = e?.progress; if (!t || typeof t != "object") return ""; let n = String(t.label || "").trim(), r = Number(t.current), i = Number(t.total), a = Number(t.indexed), o = Number(t.skipped), s = Number(t.errors), c = []; return n && c.push(n), Number.isFinite(r) && Number.isFinite(i) && i > 0 && c.push(`${r}/${i}`), Number.isFinite(a) && c.push(`indexed ${a}`), Number.isFinite(o) && c.push(`skipped ${o}`), Number.isFinite(s) && s > 0 && c.push(`errors ${s}`), c.join(" | "); } -function Rg(e) { +function Ug(e) { let t = e?.progress; if (!t || typeof t != "object") return null; let n = Number(t.percent); @@ -14054,14 +14131,14 @@ function Rg(e) { let r = Number(t.current), i = Number(t.total); return Number.isFinite(r) && Number.isFinite(i) && i > 0 ? Math.max(0, Math.min(100, Math.round(r / i * 100))) : null; } -function zg(e) { +function Wg(e) { return String(e?.trackId || "").trim() || [ String(e?.operation || "").trim(), String(e?.source || "").trim(), String(e?.title || "").trim() ].filter(Boolean).join(":"); } -function Bg({ activeTab: e = "messages", title: t = null, messagePopover: n = null, messageTabBtn: r = null, historyTabBtn: i = null, shortcutsTabBtn: a = null, messageList: o = null, historyPanel: s = null, shortcutsPanel: c = null, markReadBtn: l = null } = {}) { +function Gg({ activeTab: e = "messages", title: t = null, messagePopover: n = null, messageTabBtn: r = null, historyTabBtn: i = null, shortcutsTabBtn: a = null, messageList: o = null, historyPanel: s = null, shortcutsPanel: c = null, markReadBtn: l = null } = {}) { let u = e === "messages", d = e === "history", f = e === "shortcuts", p = u ? L("label.messages", "Messages") : d ? L("label.toastHistory", "History") : L("msg.shortcuts.title", "Shortcut Guide"); try { r?.classList.toggle("is-active", u), r?.setAttribute("aria-selected", u ? "true" : "false"), r?.setAttribute("tabindex", u ? "0" : "-1"), i?.classList.toggle("is-active", d), i?.setAttribute("aria-selected", d ? "true" : "false"), i?.setAttribute("tabindex", d ? "0" : "-1"), a?.classList.toggle("is-active", f), a?.setAttribute("aria-selected", f ? "true" : "false"), a?.setAttribute("tabindex", f ? "0" : "-1"); @@ -14074,8 +14151,8 @@ function Bg({ activeTab: e = "messages", title: t = null, messagePopover: n = nu console.debug?.(e); } } -function Vg({ messageBtn: e = null, messagePopover: t = null, title: n = null, messageList: r = null, historyTabBtn: i = null, historyTabBadge: a = null, historyTabCount: o = null, historyPanel: s = null, shortcutsPanel: c = null, messageTabBtn: l = null, messageTabBadge: u = null, shortcutsTabBtn: d = null, markReadBtn: f = null, popovers: p = null, onBeforeToggle: h = null, signal: g = null } = {}) { - _g(); +function Kg({ messageBtn: e = null, messagePopover: t = null, title: r = null, messageList: i = null, historyTabBtn: a = null, historyTabBadge: o = null, historyTabCount: s = null, historyPanel: c = null, shortcutsPanel: l = null, messageTabBtn: u = null, messageTabBadge: d = null, shortcutsTabBtn: f = null, markReadBtn: p = null, popovers: m = null, onBeforeToggle: h = null, signal: g = null } = {}) { + Sg(); let _ = "messages", v = !1, y = null, b = /* @__PURE__ */ new Set(), x = () => { if (y) { try { @@ -14087,15 +14164,15 @@ function Vg({ messageBtn: e = null, messagePopover: t = null, title: n = null, m } }, S = () => { if (!v || _ !== "history" || t?.style?.display !== "block") return; - let e = ie(); + let e = M(); for (let n of e) { - let e = zg(n); + let e = Wg(n); if (!e || !b.has(e)) continue; let r = String(n?.status || "").trim().toLowerCase(); - if (Og.has(r)) { + if (Ng.has(r)) { x(), y = setTimeout(() => { - y = null, v && _ === "history" && t?.style?.display === "block" && (p?.close?.(t), v = !1, b.clear(), C(), A()); - }, Eg); + y = null, v && _ === "history" && t?.style?.display === "block" && (m?.close?.(t), v = !1, b.clear(), C(), A()); + }, jg); return; } } @@ -14112,16 +14189,16 @@ function Vg({ messageBtn: e = null, messagePopover: t = null, title: n = null, m console.debug?.(e); } }, w = () => { - if (!r) return; - let e = vg(), t = bg(); - if (r.replaceChildren(), !e.length) { + if (!i) return; + let e = Cg(), t = Tg(); + if (i.replaceChildren(), !e.length) { let e = document.createElement("div"); - e.className = "mjr-messages-empty", e.textContent = L("msg.noMessages", "No messages for now."), r.appendChild(e); + e.className = "mjr-messages-empty", e.textContent = L("msg.noMessages", "No messages for now."), i.appendChild(e); } else for (let n of e) { let e = document.createElement("article"); e.className = "mjr-message-item"; - let i = jg(n?.level); - e.classList.add(`mjr-message-item--${i}`); + let r = Ig(n?.level); + e.classList.add(`mjr-message-item--${r}`); let a = Number(n?.createdAt || 0); a > Number(t || 0) && e.classList.add("mjr-message-item--unread"); let o = document.createElement("div"); @@ -14129,25 +14206,25 @@ function Vg({ messageBtn: e = null, messagePopover: t = null, title: n = null, m let s = document.createElement("div"); s.className = "mjr-message-item-title-wrap"; let c = document.createElement("span"); - c.className = "mjr-message-item-emoji", c.textContent = Ng(n), c.setAttribute("aria-hidden", "true"); + c.className = "mjr-message-item-emoji", c.textContent = Rg(n), c.setAttribute("aria-hidden", "true"); let l = document.createElement("div"); - l.className = "mjr-message-item-title", l.textContent = Ag(n, "titleKey", "title", L("label.info", "Info")); + l.className = "mjr-message-item-title", l.textContent = Fg(n, "titleKey", "title", L("label.info", "Info")); let u = document.createElement("span"); - u.className = "mjr-message-item-category", u.textContent = Ag(n, "categoryKey", "category", L("label.info", "Info")), s.appendChild(c), s.appendChild(l), o.appendChild(s), o.appendChild(u); + u.className = "mjr-message-item-category", u.textContent = Fg(n, "categoryKey", "category", L("label.info", "Info")), s.appendChild(c), s.appendChild(l), o.appendChild(s), o.appendChild(u); let d = document.createElement("div"); - d.className = "mjr-message-item-meta", d.textContent = kg(a); + d.className = "mjr-message-item-meta", d.textContent = Pg(a); let f = document.createElement("div"); - f.className = "mjr-message-item-body", f.textContent = Ag(n, "bodyKey", "body", ""), e.appendChild(o), d.textContent && e.appendChild(d), f.textContent && e.appendChild(f); - let p = Mg(n?.actionUrl), m = Ag(n, "actionLabelKey", "actionLabel", L("label.readMe", "Read Me")); + f.className = "mjr-message-item-body", f.textContent = Fg(n, "bodyKey", "body", ""), e.appendChild(o), d.textContent && e.appendChild(d), f.textContent && e.appendChild(f); + let p = Lg(n?.actionUrl), m = Fg(n, "actionLabelKey", "actionLabel", L("label.readMe", "Read Me")); if (p && m) { let t = document.createElement("a"); t.className = "mjr-message-item-action", t.href = p, t.target = "_blank", t.rel = "noopener noreferrer", t.textContent = m, e.appendChild(t); } - r.appendChild(e); + i.appendChild(e); } }, T = () => { - if (!s) return; - let e = ie(), t = s.querySelector(".mjr-history-list"); + if (!c) return; + let e = M(), t = c.querySelector(".mjr-history-list"); if (!t) { let e = document.createElement("div"); e.className = "mjr-history-head"; @@ -14155,8 +14232,8 @@ function Vg({ messageBtn: e = null, messagePopover: t = null, title: n = null, m n.className = "mjr-history-head-label", n.textContent = L("label.recentActivity", "Recent activity"); let r = document.createElement("button"); r.type = "button", r.className = "mjr-btn mjr-history-clear-btn", r.textContent = L("btn.clearHistory", "Clear"), r.title = L("tooltip.clearToastHistory", "Clear toast history"), r.addEventListener("click", (e) => { - e.stopPropagation(), m(), T(); - }, g ? { signal: g } : void 0), e.appendChild(n), e.appendChild(r), t = document.createElement("div"), t.className = "mjr-history-list", s.replaceChildren(e, t); + e.stopPropagation(), ae(), T(); + }, g ? { signal: g } : void 0), e.appendChild(n), e.appendChild(r), t = document.createElement("div"), t.className = "mjr-history-list", c.replaceChildren(e, t); } if (t.replaceChildren(), !e.length) { let e = document.createElement("div"); @@ -14165,7 +14242,7 @@ function Vg({ messageBtn: e = null, messagePopover: t = null, title: n = null, m let e = document.createElement("div"); e.className = `mjr-history-item mjr-history-item--${String(n.type || "info")}`; let r = document.createElement("span"); - r.className = "mjr-history-item-icon", r.textContent = Pg(n.type), r.setAttribute("aria-hidden", "true"); + r.className = "mjr-history-item-icon", r.textContent = zg(n.type), r.setAttribute("aria-hidden", "true"); let i = document.createElement("div"); i.className = "mjr-history-item-content"; let a = String(n.title || "").trim(), o = String(n.detail || "").trim(), s = String(n.message || "").trim(), c = a || s, l = a && o ? o : a ? "" : o, u = document.createElement("div"); @@ -14175,14 +14252,14 @@ function Vg({ messageBtn: e = null, messagePopover: t = null, title: n = null, m let f = document.createElement("div"); f.className = "mjr-history-item-meta"; let p = document.createElement("span"); - p.className = "mjr-history-item-time", p.textContent = kg(n.createdAt); + p.className = "mjr-history-item-time", p.textContent = Pg(n.createdAt); let m = document.createElement("span"); - m.className = "mjr-history-item-chip", m.textContent = Fg(n); + m.className = "mjr-history-item-chip", m.textContent = Bg(n); let h = document.createElement("span"); h.className = "mjr-history-item-chip", h.textContent = String(n.source || "").trim(); let g = document.createElement("span"); - g.className = "mjr-history-item-chip", g.textContent = Ig(n.status), i.appendChild(u), d.textContent && i.appendChild(d), p.textContent && f.appendChild(p), m.textContent && f.appendChild(m), g.textContent && f.appendChild(g), h.textContent && f.appendChild(h), f.childNodes.length && i.appendChild(f); - let _ = Lg(n), v = Rg(n); + g.className = "mjr-history-item-chip", g.textContent = Vg(n.status), i.appendChild(u), d.textContent && i.appendChild(d), p.textContent && f.appendChild(p), m.textContent && f.appendChild(m), g.textContent && f.appendChild(g), h.textContent && f.appendChild(h), f.childNodes.length && i.appendChild(f); + let _ = Hg(n), v = Ug(n); if (_ || v !== null) { let e = document.createElement("div"); if (e.className = "mjr-history-item-progress", _) { @@ -14197,7 +14274,7 @@ function Vg({ messageBtn: e = null, messagePopover: t = null, title: n = null, m } i.appendChild(e); } - let y = Mg(n?.actionUrl), b = String(n?.actionLabel || "").trim(); + let y = Lg(n?.actionUrl), b = String(n?.actionLabel || "").trim(); if (y && b) { let e = document.createElement("a"); e.className = "mjr-history-item-action", e.href = y, e.target = "_blank", e.rel = "noopener noreferrer", e.textContent = b, i.appendChild(e); @@ -14209,39 +14286,39 @@ function Vg({ messageBtn: e = null, messagePopover: t = null, title: n = null, m let n = Math.max(0, Number(t || 0) || 0); n <= 0 ? (e.style.display = "none", e.textContent = "") : (e.style.display = "inline-flex", e.textContent = n > 99 ? "99+" : String(n)); }, D = () => { - let e = oe(); - a && (a.style.display = e > 0 ? "inline-block" : "none"), E(o, e); + let e = ue(); + o && (o.style.display = e > 0 ? "inline-block" : "none"), E(s, e); }, O = () => { - c && (c.childNodes.length > 0 || c.replaceChildren(wg())); + l && (l.childNodes.length > 0 || l.replaceChildren(kg())); }, k = () => { - if (!f) return; - let e = Math.max(0, Number(yg() || 0) || 0); - f.disabled = e <= 0, f.title = e > 0 ? L("tooltip.markMessagesRead", "Mark all messages as read") : L("tooltip.noUnreadMessages", "No unread messages"); + if (!p) return; + let e = Math.max(0, Number(wg() || 0) || 0); + p.disabled = e <= 0, p.title = e > 0 ? L("tooltip.markMessagesRead", "Mark all messages as read") : L("tooltip.noUnreadMessages", "No unread messages"); }, A = () => { - let t = Math.max(0, Number(yg() || 0) || 0); + let t = Math.max(0, Number(wg() || 0) || 0); if (e) { let n = e.querySelector(".mjr-message-badge"), r = t > 0 ? L("tooltip.openMessagesUnread", "Messages ({count} unread)", { count: t }) : L("tooltip.openMessages", "Messages and updates"); e.classList.toggle("mjr-message-has-unread", t > 0), e.title = r, e.setAttribute("aria-label", r), n && (t <= 0 ? (n.style.display = "none", n.textContent = "") : (n.style.display = "inline-flex", n.textContent = t > 9 ? "9+" : String(t))); } - E(u, t), k(); - }, ee = () => { + E(d, t), k(); + }, j = () => { A(), D(), t?.style?.display === "block" && (_ === "messages" && w(), _ === "history" && T()); - }, j = g ? { signal: g } : void 0; + }, N = g ? { signal: g } : void 0; try { - window.addEventListener(Xh, ee, j); + window.addEventListener(tg, j, N); } catch (e) { console.debug?.(e); } try { - window.addEventListener(ze, () => { + window.addEventListener(se, () => { if (D(), t?.style?.display === "block" && _ === "history" && T(), v) { - for (let e of ie()) { - let t = String(e?.status || "").trim().toLowerCase(), n = zg(e); - n && Dg.has(t) && b.add(n); + for (let e of M()) { + let t = String(e?.status || "").trim().toLowerCase(), n = Wg(e); + n && Mg.has(t) && b.add(n); } S(); } - }, j); + }, N); } catch (e) { console.debug?.(e); } @@ -14250,9 +14327,9 @@ function Vg({ messageBtn: e = null, messagePopover: t = null, title: n = null, m } catch (e) { console.debug?.(e); } - let M = null; + let ee = null; try { - typeof MutationObserver < "u" && t && (M = new MutationObserver(C), M.observe(t, { + typeof MutationObserver < "u" && t && (ee = new MutationObserver(C), ee.observe(t, { attributes: !0, attributeFilter: ["style"] })); @@ -14260,85 +14337,85 @@ function Vg({ messageBtn: e = null, messagePopover: t = null, title: n = null, m console.debug?.(e); } try { - g?.addEventListener?.("abort", () => M?.disconnect?.(), { once: !0 }); + g?.addEventListener?.("abort", () => ee?.disconnect?.(), { once: !0 }); } catch (e) { console.debug?.(e); } - A(), D(), C(), Bg({ + A(), D(), C(), Gg({ activeTab: _, - title: n, + title: r, messagePopover: t, - messageTabBtn: l, - historyTabBtn: i, - shortcutsTabBtn: d, - messageList: r, - historyPanel: s, - shortcutsPanel: c, - markReadBtn: f + messageTabBtn: u, + historyTabBtn: a, + shortcutsTabBtn: f, + messageList: i, + historyPanel: c, + shortcutsPanel: l, + markReadBtn: p }); - let N = () => { - _ = "messages", Bg({ + let te = () => { + _ = "messages", Gg({ activeTab: _, - title: n, + title: r, messagePopover: t, - messageTabBtn: l, - historyTabBtn: i, - shortcutsTabBtn: d, - messageList: r, - historyPanel: s, - shortcutsPanel: c, - markReadBtn: f - }), w(), xg(), A(); - }, te = () => { - _ = "history", Bg({ + messageTabBtn: u, + historyTabBtn: a, + shortcutsTabBtn: f, + messageList: i, + historyPanel: c, + shortcutsPanel: l, + markReadBtn: p + }), w(), Eg(), A(); + }, P = () => { + _ = "history", Gg({ activeTab: _, - title: n, + title: r, messagePopover: t, - messageTabBtn: l, - historyTabBtn: i, - shortcutsTabBtn: d, - messageList: r, - historyPanel: s, - shortcutsPanel: c, - markReadBtn: f - }), T(), ce(), D(); + messageTabBtn: u, + historyTabBtn: a, + shortcutsTabBtn: f, + messageList: i, + historyPanel: c, + shortcutsPanel: l, + markReadBtn: p + }), T(), n(), D(); }, ne = () => { - _ = "shortcuts", Bg({ + _ = "shortcuts", Gg({ activeTab: _, - title: n, + title: r, messagePopover: t, - messageTabBtn: l, - historyTabBtn: i, - shortcutsTabBtn: d, - messageList: r, - historyPanel: s, - shortcutsPanel: c, - markReadBtn: f + messageTabBtn: u, + historyTabBtn: a, + shortcutsTabBtn: f, + messageList: i, + historyPanel: c, + shortcutsPanel: l, + markReadBtn: p }), O(); - }, P = (e) => { - e === "messages" ? N() : e === "history" ? te() : ne(); - }, re = () => { - if (t && p && e) { + }, re = (e) => { + e === "messages" ? te() : e === "history" ? P() : ne(); + }, ie = () => { + if (t && m && e) { if (t?.style?.display !== "block") { try { typeof h == "function" && h(); } catch (e) { console.debug?.(e); } - p.toggle(t, e); + m.toggle(t, e); } - te(), v = !0, x(), b.clear(); - for (let e of ie()) { - let t = String(e?.status || "").trim().toLowerCase(), n = zg(e); - n && Dg.has(t) && b.add(n); + P(), v = !0, x(), b.clear(); + for (let e of M()) { + let t = String(e?.status || "").trim().toLowerCase(), n = Wg(e); + n && Mg.has(t) && b.add(n); } S(), C(), A(); } }; try { window.addEventListener(B.OPEN_MESSAGE_HISTORY, () => { - re(); - }, j); + ie(); + }, N); } catch (e) { console.debug?.(e); } @@ -14352,58 +14429,58 @@ function Vg({ messageBtn: e = null, messagePopover: t = null, title: n = null, m if (n === "arrowright") { e.preventDefault(); let t = F[(r + 1) % F.length]; - P(t), t === "messages" && l?.focus?.(), t === "history" && i?.focus?.(), t === "shortcuts" && d?.focus?.(); + re(t), t === "messages" && u?.focus?.(), t === "history" && a?.focus?.(), t === "shortcuts" && f?.focus?.(); } else if (n === "arrowleft") { e.preventDefault(); let t = F[(r + F.length - 1) % F.length]; - P(t), t === "messages" && l?.focus?.(), t === "history" && i?.focus?.(), t === "shortcuts" && d?.focus?.(); - } else n === "home" ? (e.preventDefault(), N(), l?.focus?.()) : n === "end" ? (e.preventDefault(), ne(), d?.focus?.()) : (n === " " || n === "enter") && (e.preventDefault(), P(t)); + re(t), t === "messages" && u?.focus?.(), t === "history" && a?.focus?.(), t === "shortcuts" && f?.focus?.(); + } else n === "home" ? (e.preventDefault(), te(), u?.focus?.()) : n === "end" ? (e.preventDefault(), ne(), f?.focus?.()) : (n === " " || n === "enter") && (e.preventDefault(), re(t)); } }; - return e?.addEventListener("click", (a) => { - if (t && p && e) { - a.stopPropagation(), v = !1, b.clear(), x(), _ = "messages", w(), O(), Bg({ + return e?.addEventListener("click", (n) => { + if (t && m && e) { + n.stopPropagation(), v = !1, b.clear(), x(), _ = "messages", w(), O(), Gg({ activeTab: _, - title: n, + title: r, messagePopover: t, - messageTabBtn: l, - historyTabBtn: i, - shortcutsTabBtn: d, - messageList: r, - historyPanel: s, - shortcutsPanel: c, - markReadBtn: f + messageTabBtn: u, + historyTabBtn: a, + shortcutsTabBtn: f, + messageList: i, + historyPanel: c, + shortcutsPanel: l, + markReadBtn: p }); try { typeof h == "function" && h(); } catch (e) { console.debug?.(e); } - p.toggle(t, e), t?.style?.display === "block" && xg(), C(), A(); + m.toggle(t, e), t?.style?.display === "block" && Eg(), C(), A(); } - }, j), l?.addEventListener("click", (e) => { - e.preventDefault(), e.stopPropagation(), N(); - }, j), l?.addEventListener("keydown", (e) => I(e, "messages"), j), i?.addEventListener("click", (e) => { - e.preventDefault(), e.stopPropagation(), v = !1, b.clear(), x(), te(); - }, j), i?.addEventListener("keydown", (e) => I(e, "history"), j), d?.addEventListener("click", (e) => { + }, N), u?.addEventListener("click", (e) => { + e.preventDefault(), e.stopPropagation(), te(); + }, N), u?.addEventListener("keydown", (e) => I(e, "messages"), N), a?.addEventListener("click", (e) => { + e.preventDefault(), e.stopPropagation(), v = !1, b.clear(), x(), P(); + }, N), a?.addEventListener("keydown", (e) => I(e, "history"), N), f?.addEventListener("click", (e) => { e.preventDefault(), e.stopPropagation(), ne(); - }, j), d?.addEventListener("keydown", (e) => I(e, "shortcuts"), j), f?.addEventListener("click", (e) => { - e.preventDefault(), e.stopPropagation(), xg(), w(), A(); - }, j), { - refresh: ee, + }, N), f?.addEventListener("keydown", (e) => I(e, "shortcuts"), N), p?.addEventListener("click", (e) => { + e.preventDefault(), e.stopPropagation(), Eg(), w(), A(); + }, N), { + refresh: j, render: w, updateButtonState: A, - showMessagesTab: N, - showHistoryTab: te, + showMessagesTab: te, + showHistoryTab: P, showShortcutsTab: ne, - openHistoryPopover: re, + openHistoryPopover: ie, close: () => { - t && p && (p.close(t), v = !1, b.clear(), x(), C()); + t && m && (m.close(t), v = !1, b.clear(), x(), C()); } }; } // ui/features/panel/controllers/query.ts -function Hg(e) { +function qg(e) { let t = e; for (let e = 0; e < 3 && t && typeof t == "object" && "value" in t; e += 1) { let e = t.value; @@ -14412,8 +14489,8 @@ function Hg(e) { } return t; } -function Ug(e) { - let t = Hg(e); +function Jg(e) { + let t = qg(e); if (!t) return null; let n = String(t?.tagName || "").toUpperCase(); if (n === "INPUT" || n === "TEXTAREA") return t; @@ -14427,13 +14504,13 @@ function Ug(e) { } return null; } -function Wg(e) { - let t = Ug(e), n = t ? t.value : typeof e?.value == "string" ? e.value : ""; +function Yg(e) { + let t = Jg(e), n = t ? t.value : typeof e?.value == "string" ? e.value : ""; return String(n || "").trim() || "*"; } // ui/features/panel/controllers/gridController.ts -function Gg({ gridContainer: e, loadAssets: t, loadAssetsFromList: n, getCollectionAssets: i, disposeGrid: a, getQuery: o, searchInputEl: s, state: c }) { - let { read: l, write: u } = Uh(c, /* @__PURE__ */ "scope.customRootId.currentFolderRelativePath.kindFilter.workflowOnly.minRating.minSizeMB.maxSizeMB.resolutionCompare.minWidth.minHeight.maxWidth.maxHeight.workflowType.workflowId.workflowModelFilter.workflowRunsOnFilter.dateRangeFilter.dateExactFilter.sort.activeAssetId.selectedAssetIds.collectionId.collectionName.viewScope.similarResults.similarTitle.similarSourceAssetId.lastGridCount.lastGridTotal".split(".")), d = !1, f = !1, p = {}, m = 0, h = 0, g = 3e4, _ = async (e, t = g) => { +function Xg({ gridContainer: e, loadAssets: t, loadAssetsFromList: n, getCollectionAssets: r, disposeGrid: i, getQuery: a, searchInputEl: o, state: s }) { + let { read: c, write: l } = Jh(s, /* @__PURE__ */ "scope.customRootId.currentFolderRelativePath.kindFilter.workflowOnly.minRating.minSizeMB.maxSizeMB.resolutionCompare.minWidth.minHeight.maxWidth.maxHeight.workflowType.workflowId.workflowModelFilter.workflowRunsOnFilter.dateRangeFilter.dateExactFilter.sort.activeAssetId.selectedAssetIds.collectionId.collectionName.viewScope.similarResults.similarTitle.similarSourceAssetId.lastGridCount.lastGridTotal".split(".")), u = !1, d = !1, f = {}, p = 0, h = 0, g = 3e4, _ = async (e, t = g) => { let n = null; try { let r = new Promise((e, r) => { @@ -14448,13 +14525,13 @@ function Gg({ gridContainer: e, loadAssets: t, loadAssetsFromList: n, getCollect } }, v = () => { try { - return s?.dataset?.mjrSemanticMode === "1"; + return o?.dataset?.mjrSemanticMode === "1"; } catch { return !1; } }, y = () => { try { - return !!(Mt()?.ai?.vectorSearchEnabled ?? !0); + return !!(Ft()?.ai?.vectorSearchEnabled ?? !0); } catch { return !0; } @@ -14467,44 +14544,44 @@ function Gg({ gridContainer: e, loadAssets: t, loadAssetsFromList: n, getCollect } catch { return String(t || "").trim(); } - }, x = (e = []) => !Array.isArray(e) || e.length === 0 ? !1 : e.some((e) => { + }, S = (e = []) => !Array.isArray(e) || e.length === 0 ? !1 : e.some((e) => { if (String(e?._matchType || e?.matchType || "").trim().toLowerCase().includes("semantic")) return !0; let t = Number(e?._vectorScore ?? e?.vectorScore ?? NaN); return Number.isFinite(t) && t > 0; - }), S = () => { - let e = String(l("currentFolderRelativePath", "") || "").trim(); + }), C = () => { + let e = String(c("currentFolderRelativePath", "") || "").trim(); return { - subfolder: (l("scope", "output") !== "custom" || l("customRootId", "")) && e ? e : null, - kind: l("kindFilter", "") || null, - hasWorkflow: l("workflowOnly", !1) ? !0 : null, - minRating: Number(l("minRating", 0) || 0) > 0 ? Number(l("minRating", 0) || 0) : null, - minSizeMB: Number(l("minSizeMB", 0) || 0) > 0 ? Number(l("minSizeMB", 0) || 0) : null, - maxSizeMB: Number(l("maxSizeMB", 0) || 0) > 0 ? Number(l("maxSizeMB", 0) || 0) : null, - minWidth: Number(l("minWidth", 0) || 0) > 0 ? Number(l("minWidth", 0) || 0) : null, - minHeight: Number(l("minHeight", 0) || 0) > 0 ? Number(l("minHeight", 0) || 0) : null, - maxWidth: Number(l("maxWidth", 0) || 0) > 0 ? Number(l("maxWidth", 0) || 0) : null, - maxHeight: Number(l("maxHeight", 0) || 0) > 0 ? Number(l("maxHeight", 0) || 0) : null, - workflowType: String(l("workflowType", "") || "").trim().toUpperCase() || null, - workflowId: String(l("workflowId", "") || "").trim() || null, - workflowModel: String(l("workflowModelFilter", "") || "").trim() || null, - runsOn: String(l("workflowRunsOnFilter", "") || "").trim().toLowerCase() || null, - dateRange: String(l("dateRangeFilter", "") || "").trim().toLowerCase() || null, - dateExact: String(l("dateExactFilter", "") || "").trim() || null + subfolder: (c("scope", "output") !== "custom" || c("customRootId", "")) && e ? e : null, + kind: c("kindFilter", "") || null, + hasWorkflow: c("workflowOnly", !1) ? !0 : null, + minRating: Number(c("minRating", 0) || 0) > 0 ? Number(c("minRating", 0) || 0) : null, + minSizeMB: Number(c("minSizeMB", 0) || 0) > 0 ? Number(c("minSizeMB", 0) || 0) : null, + maxSizeMB: Number(c("maxSizeMB", 0) || 0) > 0 ? Number(c("maxSizeMB", 0) || 0) : null, + minWidth: Number(c("minWidth", 0) || 0) > 0 ? Number(c("minWidth", 0) || 0) : null, + minHeight: Number(c("minHeight", 0) || 0) > 0 ? Number(c("minHeight", 0) || 0) : null, + maxWidth: Number(c("maxWidth", 0) || 0) > 0 ? Number(c("maxWidth", 0) || 0) : null, + maxHeight: Number(c("maxHeight", 0) || 0) > 0 ? Number(c("maxHeight", 0) || 0) : null, + workflowType: String(c("workflowType", "") || "").trim().toUpperCase() || null, + workflowId: String(c("workflowId", "") || "").trim() || null, + workflowModel: String(c("workflowModelFilter", "") || "").trim() || null, + runsOn: String(c("workflowRunsOnFilter", "") || "").trim().toLowerCase() || null, + dateRange: String(c("dateRangeFilter", "") || "").trim().toLowerCase() || null, + dateExact: String(c("dateExactFilter", "") || "").trim() || null }; - }, C = async (e = "") => { + }, w = async (e = "") => { let t = Date.now(); if (t - Number(h || 0) < 15e3) return; h = t; try { - let e = await r(); + let e = await m(); if (e?.ok && e?.data) { let t = Number(e.data?.total || 0) || 0, n = Number(e.data?.eligible_total || 0) || 0, r = Number(e.data?.coverage_ratio ?? NaN); if (t <= 10) { - F(L("toast.aiSearchNeedsBackfill", "AI search index is almost empty ({count} vectors). Run Enrich, then Vector Backfill for existing assets.", { count: t }), "warn", 6500); + x(L("toast.aiSearchNeedsBackfill", "AI search index is almost empty ({count} vectors). Run Enrich, then Vector Backfill for existing assets.", { count: t }), "warn", 6500); return; } if (n > 0 && Number.isFinite(r) && r > 0 && r < .75) { - F(L("toast.aiSearchPartiallyIndexed", "AI search index is only partially built ({indexed}/{eligible}, {percent}%). Run Vector Backfill for existing assets.", { + x(L("toast.aiSearchPartiallyIndexed", "AI search index is only partially built ({indexed}/{eligible}, {percent}%). Run Vector Backfill for existing assets.", { indexed: t, eligible: n, percent: Math.round(r * 100) @@ -14514,24 +14591,24 @@ function Gg({ gridContainer: e, loadAssets: t, loadAssetsFromList: n, getCollect } } catch {} let n = b(e, L("toast.aiSearchUnavailable", "AI search is currently unavailable. Falling back to normal search.")); - F(n, "warn", 5200); - }, w = async (r, i = {}) => { + x(n, "warn", 5200); + }, T = async (r, i = {}) => { let a = String(r || "").trim(), o = /^ai:\s*/i.test(a); o && (a = a.replace(/^ai:\s*/i, "").trim()); - let s = y(), c = s && v(); + let s = y(), l = s && v(); if (!s) return await t(e, a || "*", i); - let u = c || o, d = !1, f = ""; + let u = l || o, d = !1, f = ""; if (u && a && a !== "*") { d = !0; - let t = S(); + let t = C(); try { - let r = await He(a, { + let r = await me(a, { topK: 100, - scope: l("scope", "output") || "output", - customRootId: l("customRootId", "") || "", + scope: c("scope", "output") || "output", + customRootId: c("customRootId", "") || "", ...t }); - if (r?.ok && Array.isArray(r.data) && r.data.length > 0 && x(r.data)) return await n(e, r.data, { + if (r?.ok && Array.isArray(r.data) && r.data.length > 0 && S(r.data)) return await n(e, r.data, { title: `AI Search: "${a}" (${r.data.length} results)`, reset: !0, ...i @@ -14541,10 +14618,10 @@ function Gg({ gridContainer: e, loadAssets: t, loadAssetsFromList: n, getCollect f = b(e, f), console.debug?.("[Majoor] Hybrid search failed, trying pure semantic", e); } try { - let r = await rt(a, { + let r = await ie(a, { topK: 100, - scope: l("scope", "output") || "output", - customRootId: l("customRootId", "") || "", + scope: c("scope", "output") || "output", + customRootId: c("customRootId", "") || "", ...t }); if (r?.ok && Array.isArray(r.data) && r.data.length > 0) return await n(e, r.data, { @@ -14558,44 +14635,44 @@ function Gg({ gridContainer: e, loadAssets: t, loadAssetsFromList: n, getCollect } } let p = await t(e, a || "*", i); - return d && f && (Number(p?.count || 0) || 0) === 0 && C(f), p; - }, T = async (t = {}) => { - let r = String(e.dataset.mjrViewScope || "").trim().toLowerCase(), a = String(l("viewScope", c?.viewScope || "") || "").trim().toLowerCase(); - e.dataset.mjrScope = l("scope", "output"), e.dataset.mjrViewScope = a, e.dataset.mjrCustomRootId = l("customRootId", "") || ""; - let s = l("currentFolderRelativePath", "") || ""; - e.dataset.mjrSubfolder = s, e.dataset.mjrFilterKind = l("kindFilter", "") || "", e.dataset.mjrFilterWorkflowOnly = l("workflowOnly", !1) ? "1" : "0", e.dataset.mjrFilterMinRating = String(l("minRating", 0) || 0), e.dataset.mjrFilterMinSizeMB = String(l("minSizeMB", 0) || 0), e.dataset.mjrFilterMaxSizeMB = String(l("maxSizeMB", 0) || 0), e.dataset.mjrFilterResolutionCompare = String(l("resolutionCompare", "gte") || "gte"), e.dataset.mjrFilterMinWidth = String(l("minWidth", 0) || 0), e.dataset.mjrFilterMinHeight = String(l("minHeight", 0) || 0), e.dataset.mjrFilterMaxWidth = String(l("maxWidth", 0) || 0), e.dataset.mjrFilterMaxHeight = String(l("maxHeight", 0) || 0), e.dataset.mjrFilterWorkflowType = String(l("workflowType", "") || ""), e.dataset.mjrFilterWorkflowId = String(l("workflowId", "") || ""), e.dataset.mjrFilterWorkflowModel = String(l("workflowModelFilter", "") || ""), e.dataset.mjrFilterWorkflowRunsOn = String(l("workflowRunsOnFilter", "") || ""), e.dataset.mjrFilterDateRange = l("dateRangeFilter", "") || "", e.dataset.mjrFilterDateExact = l("dateExactFilter", "") || "", e.dataset.mjrSort = l("sort", "mtime_desc") || "mtime_desc", e.dataset.mjrCollectionId = l("collectionId", "") || "", e.dataset.mjrSemanticMode = v() ? "1" : "0"; + return d && f && (Number(p?.count || 0) || 0) === 0 && w(f), p; + }, E = async (t = {}) => { + let i = String(e.dataset.mjrViewScope || "").trim().toLowerCase(), o = String(c("viewScope", s?.viewScope || "") || "").trim().toLowerCase(); + e.dataset.mjrScope = c("scope", "output"), e.dataset.mjrViewScope = o, e.dataset.mjrCustomRootId = c("customRootId", "") || ""; + let u = c("currentFolderRelativePath", "") || ""; + e.dataset.mjrSubfolder = u, e.dataset.mjrFilterKind = c("kindFilter", "") || "", e.dataset.mjrFilterWorkflowOnly = c("workflowOnly", !1) ? "1" : "0", e.dataset.mjrFilterMinRating = String(c("minRating", 0) || 0), e.dataset.mjrFilterMinSizeMB = String(c("minSizeMB", 0) || 0), e.dataset.mjrFilterMaxSizeMB = String(c("maxSizeMB", 0) || 0), e.dataset.mjrFilterResolutionCompare = String(c("resolutionCompare", "gte") || "gte"), e.dataset.mjrFilterMinWidth = String(c("minWidth", 0) || 0), e.dataset.mjrFilterMinHeight = String(c("minHeight", 0) || 0), e.dataset.mjrFilterMaxWidth = String(c("maxWidth", 0) || 0), e.dataset.mjrFilterMaxHeight = String(c("maxHeight", 0) || 0), e.dataset.mjrFilterWorkflowType = String(c("workflowType", "") || ""), e.dataset.mjrFilterWorkflowId = String(c("workflowId", "") || ""), e.dataset.mjrFilterWorkflowModel = String(c("workflowModelFilter", "") || ""), e.dataset.mjrFilterWorkflowRunsOn = String(c("workflowRunsOnFilter", "") || ""), e.dataset.mjrFilterDateRange = c("dateRangeFilter", "") || "", e.dataset.mjrFilterDateExact = c("dateExactFilter", "") || "", e.dataset.mjrSort = c("sort", "mtime_desc") || "mtime_desc", e.dataset.mjrCollectionId = c("collectionId", "") || "", e.dataset.mjrSemanticMode = v() ? "1" : "0"; try { - e.dataset.mjrQuery = String(o?.() ?? "*") || "*"; + e.dataset.mjrQuery = String(a?.() ?? "*") || "*"; } catch (e) { console.debug?.(e); } - e.dataset.mjrGroupStacks = R.EXECUTION_GROUPING_ENABLED && (l("scope", "output") === "output" || l("scope", "output") === "all") ? "1" : "0"; + e.dataset.mjrGroupStacks = R.EXECUTION_GROUPING_ENABLED && (c("scope", "output") === "output" || c("scope", "output") === "all") ? "1" : "0"; try { - let t = Array.isArray(l("selectedAssetIds", [])) ? l("selectedAssetIds", []).filter(Boolean).map(String) : []; - t.length ? (e.dataset.mjrSelectedAssetIds = JSON.stringify(t), e.dataset.mjrSelectedAssetId = String(l("activeAssetId", "") || t[0] || "")) : (delete e.dataset.mjrSelectedAssetIds, delete e.dataset.mjrSelectedAssetId); + let t = Array.isArray(c("selectedAssetIds", [])) ? c("selectedAssetIds", []).filter(Boolean).map(String) : []; + t.length ? (e.dataset.mjrSelectedAssetIds = JSON.stringify(t), e.dataset.mjrSelectedAssetId = String(c("activeAssetId", "") || t[0] || "")) : (delete e.dataset.mjrSelectedAssetIds, delete e.dataset.mjrSelectedAssetId); } catch (e) { console.debug?.(e); } - if (l("scope", "output") === "custom" && !l("customRootId", "") && !l("currentFolderRelativePath", "") && u("currentFolderRelativePath", ""), l("collectionId", "")) { - let t = await i?.(l("collectionId", "")); + if (c("scope", "output") === "custom" && !c("customRootId", "") && !c("currentFolderRelativePath", "") && l("currentFolderRelativePath", ""), c("collectionId", "")) { + let t = await r?.(c("collectionId", "")); if (t?.ok && t.data && Array.isArray(t.data.assets)) { - let r = l("collectionName", "") ? `Collection: ${l("collectionName", "")}` : "Collection", i = await n(e, t.data.assets, { + let r = c("collectionName", "") ? `Collection: ${c("collectionName", "")}` : "Collection", i = await n(e, t.data.assets, { title: r, reset: !0 }); try { - u("lastGridCount", Number(i?.count || 0) || 0), u("lastGridTotal", Number(i?.total || 0) || 0), e.dispatchEvent?.(new CustomEvent("mjr:grid-stats", { detail: i || {} })); + l("lastGridCount", Number(i?.count || 0) || 0), l("lastGridTotal", Number(i?.total || 0) || 0), e.dispatchEvent?.(new CustomEvent("mjr:grid-stats", { detail: i || {} })); } catch (e) { console.debug?.(e); } return; } - u("collectionId", ""), u("collectionName", ""); + l("collectionId", ""), l("collectionName", ""); } - let d = a; + let d = o; if (d === "similar") { - let r = Array.isArray(l("similarResults", [])) ? l("similarResults", []) : [], i = Array.isArray(c?.similarResults) ? c.similarResults : [], a = r.length > 0 ? r : i, o = String(l("similarSourceAssetId", c?.similarSourceAssetId || "") || "").trim(), s = await n(e, a, { - title: String(l("similarTitle", c?.similarTitle || "") || L("search.similarResults", "Similar to asset #{id} ({n} results)", { + let r = Array.isArray(c("similarResults", [])) ? c("similarResults", []) : [], i = Array.isArray(s?.similarResults) ? s.similarResults : [], a = r.length > 0 ? r : i, o = String(c("similarSourceAssetId", s?.similarSourceAssetId || "") || "").trim(), u = await n(e, a, { + title: String(c("similarTitle", s?.similarTitle || "") || L("search.similarResults", "Similar to asset #{id} ({n} results)", { id: o || "?", n: a.length })).trim() || "Similar", @@ -14603,13 +14680,13 @@ function Gg({ gridContainer: e, loadAssets: t, loadAssetsFromList: n, getCollect ...t }); try { - u("lastGridCount", Number(s?.count || 0) || 0), u("lastGridTotal", Number(s?.total || 0) || 0), e.dispatchEvent?.(new CustomEvent("mjr:grid-stats", { detail: s || {} })); + l("lastGridCount", Number(u?.count || 0) || 0), l("lastGridTotal", Number(u?.total || 0) || 0), e.dispatchEvent?.(new CustomEvent("mjr:grid-stats", { detail: u || {} })); } catch (e) { console.debug?.(e); } return; } - let f = r === "similar" && d !== "similar", p = await w(o(), { + let f = i === "similar" && d !== "similar", p = await T(a(), { ...t, preserveVisibleUntilReady: t.preserveVisibleUntilReady ?? !f }); @@ -14620,46 +14697,46 @@ function Gg({ gridContainer: e, loadAssets: t, loadAssetsFromList: n, getCollect console.debug?.(e); } try { - u("lastGridCount", Number(p?.count || 0) || 0), u("lastGridTotal", Number(p?.total || 0) || 0), e.dispatchEvent?.(new CustomEvent("mjr:grid-stats", { detail: p || {} })); + l("lastGridCount", Number(p?.count || 0) || 0), l("lastGridTotal", Number(p?.total || 0) || 0), e.dispatchEvent?.(new CustomEvent("mjr:grid-stats", { detail: p || {} })); } catch (e) { console.debug?.(e); } - }, E = null, D = async () => { - if (f = !0, !d) { - d = !0; + }, D = null, O = async () => { + if (d = !0, !u) { + u = !0; try { - for (; f;) { - let e = { ...p || {} }; - p = {}, f = !1; + for (; d;) { + let e = { ...f || {} }; + f = {}, d = !1; try { - let t = y() && (v() || String(o?.() || "").length >= 12); - await _(() => T(e), t ? 15e4 : g); + let t = y() && (v() || String(a?.() || "").length >= 12); + await _(() => E(e), t ? 15e4 : g); } catch (e) { try { let t = Date.now(); - t - Number(m || 0) > 2e3 && (m = t, console.warn("[Majoor] Grid reload failed", e)); + t - Number(p || 0) > 2e3 && (p = t, console.warn("[Majoor] Grid reload failed", e)); } catch (e) { console.debug?.(e); } } } } finally { - d = !1; + u = !1; } } }; return { reloadGrid: (e = {}) => new Promise((t, n) => { - p = { - ...p || {}, + f = { + ...f || {}, ...e || {} - }, E && clearTimeout(E), E = setTimeout(() => { - E = null, D().then(t).catch(n); + }, D && clearTimeout(D), D = setTimeout(() => { + D = null, O().then(t).catch(n); }, 30); }) }; } // ui/features/panel/controllers/browserNavigationController.ts -function Kg({ state: e, gridContainer: t, folderBreadcrumb: n, folderBreadcrumbController: r = null, customSelect: i, reloadGrid: a, clearSelection: o = null, onContextChanged: s = null, lifecycleSignal: c = null } = {}) { - let { read: l, write: u } = Uh(e, [ +function Zg({ state: e, gridContainer: t, folderBreadcrumb: n, folderBreadcrumbController: r = null, customSelect: i, reloadGrid: a, clearSelection: o = null, onContextChanged: s = null, lifecycleSignal: c = null } = {}) { + let { read: l, write: u } = Jh(e, [ "scope", "customRootId", "currentFolderRelativePath" @@ -14892,8 +14969,8 @@ function Kg({ state: e, gridContainer: t, folderBreadcrumb: n, folderBreadcrumbC }; } // ui/features/panel/controllers/scopeController.ts -function qg({ state: e, tabButtons: t, customMenuBtn: n, customPopover: r, popovers: i, reloadGrid: a, reconcileSelection: o = null, onChanged: s = null, onScopeChanged: c = null, onBeforeReload: l = null }) { - let u = 0, { panelStore: d, read: f, write: p, controllerState: m } = Uh(e, [ +function Qg({ state: e, tabButtons: t, customMenuBtn: n, customPopover: r, popovers: i, reloadGrid: a, reconcileSelection: o = null, onChanged: s = null, onScopeChanged: c = null, onBeforeReload: l = null }) { + let u = 0, { panelStore: d, read: f, write: p, controllerState: m } = Jh(e, [ "scope", "customRootId", "currentFolderRelativePath", @@ -15008,33 +15085,33 @@ function qg({ state: e, tabButtons: t, customMenuBtn: n, customPopover: r, popov }; } // ui/features/panel/controllers/contextController.ts -var Jg = (e, t) => { +var $g = (e, t) => { if (e) try { e.value = t; } catch (e) { console.debug?.(e); } -}, Yg = (e, t) => { +}, e_ = (e, t) => { if (e) try { e.checked = !!t; } catch (e) { console.debug?.(e); } }; -function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsBtn: i, searchInputEl: a, kindSelect: o, wfCheckbox: s, workflowTypeSelect: c, workflowIdInput: l, workflowModelInput: u, workflowRunsOnSelect: d, ratingSelect: f, minSizeInput: p, maxSizeInput: m, minWidthInput: h, minHeightInput: g, maxWidthInput: _, maxHeightInput: v, resolutionPresetSelect: y, dateRangeSelect: b, dateExactInput: x, scopeController: S, sortController: C, updateSummaryBar: w, reloadGrid: T, extraActions: E = null, getExtraContext: D = null } = {}) { - let O = e && typeof e == "object" ? e : {}, { read: k, write: A, controllerState: ee } = Uh(e, /* @__PURE__ */ "searchQuery.scope.collectionId.collectionName.customRootId.customRootLabel.currentFolderRelativePath.kindFilter.workflowOnly.minRating.minSizeMB.maxSizeMB.minWidth.minHeight.maxWidth.maxHeight.resolutionCompare.workflowType.workflowId.workflowModelFilter.workflowRunsOnFilter.dateRangeFilter.dateExactFilter.sort.viewScope.similarResults.similarTitle.similarSourceAssetId".split(".")), j = (e, t) => { +function t_({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsBtn: i, searchInputEl: a, kindSelect: o, wfCheckbox: s, workflowTypeSelect: c, workflowIdInput: l, workflowModelInput: u, workflowRunsOnSelect: d, ratingSelect: f, minSizeInput: p, maxSizeInput: m, minWidthInput: h, minHeightInput: g, maxWidthInput: _, maxHeightInput: v, resolutionPresetSelect: y, dateRangeSelect: b, dateExactInput: x, scopeController: S, sortController: C, updateSummaryBar: w, reloadGrid: T, extraActions: E = null, getExtraContext: D = null } = {}) { + let O = e && typeof e == "object" ? e : {}, { read: k, write: A, controllerState: j } = Jh(e, /* @__PURE__ */ "searchQuery.scope.collectionId.collectionName.customRootId.customRootLabel.currentFolderRelativePath.kindFilter.workflowOnly.minRating.minSizeMB.maxSizeMB.minWidth.minHeight.maxWidth.maxHeight.resolutionCompare.workflowType.workflowId.workflowModelFilter.workflowRunsOnFilter.dateRangeFilter.dateExactFilter.sort.viewScope.similarResults.similarTitle.similarSourceAssetId".split(".")), M = (e, t) => { A(e, t); - }, M = (e, t = "") => k(e, t), N = () => ({ + }, N = (e, t = "") => k(e, t), ee = () => ({ ...O || {}, - ...ee?.() || {}, - customRootLabel: M("customRootLabel", "") + ...j?.() || {}, + customRootLabel: N("customRootLabel", "") }), te = () => { try { E?.resetBrowserHistory?.(); } catch (e) { console.debug?.(e); } - }, ne = () => { + }, P = () => { try { let e = t?.closest?.(".mjr-assets-manager") || document.querySelector?.(".mjr-assets-manager") || document.documentElement; if (!e?.style?.setProperty) return; @@ -15042,10 +15119,10 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB } catch (e) { console.debug?.(e); } - }, P = { + }, ne = { clearQuery: async () => { try { - Jg(a, ""), j("searchQuery", ""); + $g(a, ""), M("searchQuery", ""); } catch (e) { console.debug?.(e); } @@ -15057,7 +15134,7 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB }, clearCollection: async () => { try { - j("collectionId", ""), j("collectionName", ""); + M("collectionId", ""), M("collectionName", ""); } catch (e) { console.debug?.(e); } @@ -15078,7 +15155,7 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB } let n = !1; try { - j("customRootId", ""), j("customRootLabel", ""), j("currentFolderRelativePath", ""), delete t?.dataset?.mjrSubfolder, te(), typeof S?.setScope == "function" ? (await S.setScope("output"), n = !0) : (j("scope", "output"), S?.setActiveTabStyles?.()); + M("customRootId", ""), M("customRootLabel", ""), M("currentFolderRelativePath", ""), delete t?.dataset?.mjrSubfolder, te(), typeof S?.setScope == "function" ? (await S.setScope("output"), n = !0) : (M("scope", "output"), S?.setActiveTabStyles?.()); } catch (e) { console.debug?.(e); } @@ -15090,7 +15167,7 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB }, clearCustomRoot: async () => { try { - j("customRootId", ""), j("customRootLabel", ""), j("currentFolderRelativePath", ""), delete t?.dataset?.mjrSubfolder, te(); + M("customRootId", ""), M("customRootLabel", ""), M("currentFolderRelativePath", ""), delete t?.dataset?.mjrSubfolder, te(); } catch (e) { console.debug?.(e); } @@ -15102,7 +15179,7 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB }, clearFolder: async () => { try { - j("currentFolderRelativePath", ""), delete t?.dataset?.mjrSubfolder, te(); + M("currentFolderRelativePath", ""), delete t?.dataset?.mjrSubfolder, te(); } catch (e) { console.debug?.(e); } @@ -15114,7 +15191,7 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB }, clearKind: async () => { try { - j("kindFilter", ""), Jg(o, ""); + M("kindFilter", ""), $g(o, ""); } catch (e) { console.debug?.(e); } @@ -15126,7 +15203,7 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB }, clearMinRating: async () => { try { - j("minRating", 0), Jg(f, "0"); + M("minRating", 0), $g(f, "0"); } catch (e) { console.debug?.(e); } @@ -15138,7 +15215,7 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB }, clearWorkflowOnly: async () => { try { - j("workflowOnly", !1), Yg(s, !1); + M("workflowOnly", !1), e_(s, !1); } catch (e) { console.debug?.(e); } @@ -15150,7 +15227,7 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB }, clearWorkflowType: async () => { try { - j("workflowType", ""), Jg(c, ""); + M("workflowType", ""), $g(c, ""); } catch (e) { console.debug?.(e); } @@ -15162,7 +15239,7 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB }, clearWorkflowId: async () => { try { - j("workflowId", ""), Jg(l, ""); + M("workflowId", ""), $g(l, ""); } catch (e) { console.debug?.(e); } @@ -15174,7 +15251,7 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB }, clearWorkflowModel: async () => { try { - j("workflowModelFilter", ""), Jg(u, ""); + M("workflowModelFilter", ""), $g(u, ""); } catch (e) { console.debug?.(e); } @@ -15186,7 +15263,7 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB }, clearWorkflowRunsOn: async () => { try { - j("workflowRunsOnFilter", ""), Jg(d, ""); + M("workflowRunsOnFilter", ""), $g(d, ""); } catch (e) { console.debug?.(e); } @@ -15198,7 +15275,7 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB }, clearSize: async () => { try { - j("minSizeMB", 0), j("maxSizeMB", 0), Jg(p, ""), Jg(m, ""); + M("minSizeMB", 0), M("maxSizeMB", 0), $g(p, ""), $g(m, ""); } catch (e) { console.debug?.(e); } @@ -15210,7 +15287,7 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB }, clearResolution: async () => { try { - j("minWidth", 0), j("minHeight", 0), j("maxWidth", 0), j("maxHeight", 0), Jg(h, ""), Jg(g, ""), Jg(_, ""), Jg(v, ""), Jg(y, ""); + M("minWidth", 0), M("minHeight", 0), M("maxWidth", 0), M("maxHeight", 0), $g(h, ""), $g(g, ""), $g(_, ""), $g(v, ""), $g(y, ""); } catch (e) { console.debug?.(e); } @@ -15222,7 +15299,7 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB }, clearDateRange: async () => { try { - j("dateRangeFilter", ""), Jg(b, ""); + M("dateRangeFilter", ""), $g(b, ""); } catch (e) { console.debug?.(e); } @@ -15234,7 +15311,7 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB }, clearDateExact: async () => { try { - j("dateExactFilter", ""), Jg(x, ""); + M("dateExactFilter", ""), $g(x, ""); } catch (e) { console.debug?.(e); } @@ -15246,7 +15323,7 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB }, clearSort: async () => { try { - j("sort", "mtime_desc"), C?.setSortIcon?.(M("sort", "mtime_desc")), C?.renderSortMenu?.(); + M("sort", "mtime_desc"), C?.setSortIcon?.(N("sort", "mtime_desc")), C?.renderSortMenu?.(); } catch (e) { console.debug?.(e); } @@ -15259,28 +15336,28 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB clearAll: async () => { let e = !1; try { - Jg(a, ""); + $g(a, ""); } catch (e) { console.debug?.(e); } try { - j("collectionId", ""), j("collectionName", ""), j("kindFilter", ""), j("workflowOnly", !1), j("minRating", 0), j("minSizeMB", 0), j("maxSizeMB", 0), j("minWidth", 0), j("minHeight", 0), j("maxWidth", 0), j("maxHeight", 0), j("resolutionCompare", "gte"), j("workflowType", ""), j("workflowId", ""), j("workflowModelFilter", ""), j("workflowRunsOnFilter", ""), j("dateRangeFilter", ""), j("dateExactFilter", ""), j("sort", "mtime_desc"), j("customRootId", ""), j("customRootLabel", ""), j("currentFolderRelativePath", ""), delete t?.dataset?.mjrSubfolder, te(); + M("collectionId", ""), M("collectionName", ""), M("kindFilter", ""), M("workflowOnly", !1), M("minRating", 0), M("minSizeMB", 0), M("maxSizeMB", 0), M("minWidth", 0), M("minHeight", 0), M("maxWidth", 0), M("maxHeight", 0), M("resolutionCompare", "gte"), M("workflowType", ""), M("workflowId", ""), M("workflowModelFilter", ""), M("workflowRunsOnFilter", ""), M("dateRangeFilter", ""), M("dateExactFilter", ""), M("sort", "mtime_desc"), M("customRootId", ""), M("customRootLabel", ""), M("currentFolderRelativePath", ""), delete t?.dataset?.mjrSubfolder, te(); try { await E?.clearTransientContext?.(); } catch (e) { console.debug?.(e); } - typeof S?.setScope == "function" ? (await S.setScope("output"), e = !0) : (j("scope", "output"), S?.setActiveTabStyles?.()); + typeof S?.setScope == "function" ? (await S.setScope("output"), e = !0) : (M("scope", "output"), S?.setActiveTabStyles?.()); } catch (e) { console.debug?.(e); } try { - Jg(o, ""), Yg(s, !1), Jg(c, ""), Jg(l, ""), Jg(u, ""), Jg(d, ""), Jg(f, "0"), Jg(p, ""), Jg(m, ""), Jg(h, ""), Jg(g, ""), Jg(_, ""), Jg(v, ""), Jg(y, ""), Jg(b, ""), Jg(x, ""); + $g(o, ""), e_(s, !1), $g(c, ""), $g(l, ""), $g(u, ""), $g(d, ""), $g(f, "0"), $g(p, ""), $g(m, ""), $g(h, ""), $g(g, ""), $g(_, ""), $g(v, ""), $g(y, ""), $g(b, ""), $g(x, ""); } catch (e) { console.debug?.(e); } try { - C?.setSortIcon?.(M("sort", "mtime_desc")), C?.renderSortMenu?.(); + C?.setSortIcon?.(N("sort", "mtime_desc")), C?.renderSortMenu?.(); } catch (e) { console.debug?.(e); } @@ -15297,11 +15374,11 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB "constructor", "prototype" ]); - for (let [t, n] of Object.entries(E)) e.has(String(t)) || (P[t] = n); + for (let [t, n] of Object.entries(E)) e.has(String(t)) || (ne[t] = n); } return { update: () => { - let e = String(a?.value || "").trim(), o = Wg(a), s = N(), c = !!(M("kindFilter", "") || M("workflowOnly", !1) || (Number(M("minRating", 0) || 0) || 0) > 0 || (Number(M("minSizeMB", 0) || 0) || 0) > 0 || (Number(M("maxSizeMB", 0) || 0) || 0) > 0 || (Number(M("minWidth", 0) || 0) || 0) > 0 || (Number(M("minHeight", 0) || 0) || 0) > 0 || (Number(M("maxWidth", 0) || 0) || 0) > 0 || (Number(M("maxHeight", 0) || 0) || 0) > 0 || String(M("workflowType", "") || "").trim().length > 0 || String(M("workflowId", "") || "").trim().length > 0 || String(M("workflowModelFilter", "") || "").trim().length > 0 || String(M("workflowRunsOnFilter", "") || "").trim().length > 0 || M("dateRangeFilter", "") || M("dateExactFilter", "")), l = String(M("sort", "mtime_desc") || "mtime_desc") !== "mtime_desc", u = !!M("collectionId", ""); + let e = String(a?.value || "").trim(), o = Yg(a), s = ee(), c = !!(N("kindFilter", "") || N("workflowOnly", !1) || (Number(N("minRating", 0) || 0) || 0) > 0 || (Number(N("minSizeMB", 0) || 0) || 0) > 0 || (Number(N("maxSizeMB", 0) || 0) || 0) > 0 || (Number(N("minWidth", 0) || 0) || 0) > 0 || (Number(N("minHeight", 0) || 0) || 0) > 0 || (Number(N("maxWidth", 0) || 0) || 0) > 0 || (Number(N("maxHeight", 0) || 0) || 0) > 0 || String(N("workflowType", "") || "").trim().length > 0 || String(N("workflowId", "") || "").trim().length > 0 || String(N("workflowModelFilter", "") || "").trim().length > 0 || String(N("workflowRunsOnFilter", "") || "").trim().length > 0 || N("dateRangeFilter", "") || N("dateExactFilter", "")), l = String(N("sort", "mtime_desc") || "mtime_desc") !== "mtime_desc", u = !!N("collectionId", ""); try { n?.classList?.toggle?.("mjr-context-active", c), r?.classList?.toggle?.("mjr-context-active", l), i?.classList?.toggle?.("mjr-context-active", u); } catch (e) { @@ -15316,19 +15393,19 @@ function Xg({ state: e, gridContainer: t, filterBtn: n, sortBtn: r, collectionsB rawQuery: e || o, ...n }, - actions: P + actions: ne }); } catch (e) { console.debug?.(e); } - ne(); + P(); }, - actions: P + actions: ne }; } // ui/features/panel/controllers/customRootsController.ts -function Zg({ state: e, customSelect: t, customRemoveBtn: n, comfyConfirm: r, comfyPrompt: i, comfyToast: a, get: o, post: s, ENDPOINTS: c, reloadGrid: l, onRootChanged: u = null }) { - let d = e && typeof e == "object" ? e : {}, { read: f, write: p } = Uh(e, [ +function n_({ state: e, customSelect: t, customRemoveBtn: n, comfyConfirm: r, comfyPrompt: i, comfyToast: a, get: o, post: s, ENDPOINTS: c, reloadGrid: l, onRootChanged: u = null }) { + let d = e && typeof e == "object" ? e : {}, { read: f, write: p } = Jh(e, [ "customRootId", "customRootLabel", "currentFolderRelativePath" @@ -15460,8 +15537,8 @@ function Zg({ state: e, customSelect: t, customRemoveBtn: n, comfyConfirm: r, co }; } // ui/features/panel/controllers/sortController.ts -function Qg({ state: e, sortBtn: t, sortMenu: n, sortPopover: r, popovers: i, reloadGrid: a, onChanged: o = null }) { - let { read: s, write: c } = Uh(e, ["sort"]), l = () => [ +function r_({ state: e, sortBtn: t, sortMenu: n, sortPopover: r, popovers: i, reloadGrid: a, onChanged: o = null }) { + let { read: s, write: c } = Jh(e, ["sort"]), l = () => [ { key: "mtime_desc", label: L("sort.newest") @@ -15546,24 +15623,24 @@ function Qg({ state: e, sortBtn: t, sortMenu: n, sortPopover: r, popovers: i, re }; } // ui/features/panel/controllers/sidebarController.ts -var $g = "_mjrRescanning", e_ = 1500, t_ = (e) => /^\d+$/.test(String(e ?? "").trim()); -async function n_({ card: e, asset: t, sidebar: n, onAssetUpdated: r }) { +var i_ = "_mjrRescanning", a_ = 1500, o_ = (e) => /^\d+$/.test(String(e ?? "").trim()); +async function s_({ card: e, asset: t, sidebar: n, onAssetUpdated: r }) { if (!e || !t || globalThis._mjrMaintenanceActive) return; try { let t = Date.now(); - if (t - (Number(e[$g] || 0) || 0) < e_) return; - e[$g] = t; + if (t - (Number(e[i_] || 0) || 0) < a_) return; + e[i_] = t; } catch (e) { console.debug?.(e); } let i = e.querySelector(".mjr-workflow-dot"); try { - i && (gn(i, "pending", "Pending: metadata refresh in progress", { asset: t }), i.classList.add("mjr-pulse-animation"), i.style.cursor = "progress", i.title = L("tooltip.pendingRefresh", "Pending: metadata refresh in progress")); + i && (yn(i, "pending", "Pending: metadata refresh in progress", { asset: t }), i.classList.add("mjr-pulse-animation"), i.style.cursor = "progress", i.title = L("tooltip.pendingRefresh", "Pending: metadata refresh in progress")); } catch (e) { console.debug?.(e); } try { - F(L("toast.rescanUpdatingAiIndex", "Rescanning file + updating AI index..."), "info", 2200); + x(L("toast.rescanUpdatingAiIndex", "Rescanning file + updating AI index..."), "info", 2200); } catch (e) { console.debug?.(e); } @@ -15571,22 +15648,22 @@ async function n_({ card: e, asset: t, sidebar: n, onAssetUpdated: r }) { filename: t.filename, subfolder: t.subfolder || "", type: String(t.type || "output").toLowerCase(), - root_id: be(t) || void 0 - }, o = null, s = !1, c = !1, l = !1; + root_id: Be(t) || void 0 + }, o = null, c = !1, l = !1, u = !1; try { - if (s = !!(await me(p.INDEX_FILES, { + if (c = !!(await he(I.INDEX_FILES, { files: [a], incremental: !1 - }))?.ok, !s && i && (gn(i, "error", "Error: metadata refresh failed", { asset: t }), i.classList.remove("mjr-pulse-animation"), i.style.cursor = ""), t_(t?.id)) { - c = !0; + }))?.ok, !c && i && (yn(i, "error", "Error: metadata refresh failed", { asset: t }), i.classList.remove("mjr-pulse-animation"), i.style.cursor = ""), o_(t?.id)) { + l = !0; try { - l = !!(await ee(t.id))?.ok; + u = !!(await s(t.id))?.ok; } catch (e) { console.debug?.(e); } } - if (s && t.id != null) { - let e = await Ue(t.id); + if (c && t.id != null) { + let e = await qe(t.id); e?.ok && e.data && (o = { ...t, ...e.data @@ -15594,7 +15671,7 @@ async function n_({ card: e, asset: t, sidebar: n, onAssetUpdated: r }) { } } catch { try { - i && (gn(i, "error", "Error: metadata refresh failed", { asset: t }), i.classList.remove("mjr-pulse-animation"), i.style.cursor = ""); + i && (yn(i, "error", "Error: metadata refresh failed", { asset: t }), i.classList.remove("mjr-pulse-animation"), i.style.cursor = ""); } catch (e) { console.debug?.(e); } @@ -15614,7 +15691,7 @@ async function n_({ card: e, asset: t, sidebar: n, onAssetUpdated: r }) { } finally { try { if (i && i.isConnected) { - let e = _n(o || t); + let e = bn(o || t); e && i.replaceWith(e); } } catch { @@ -15626,13 +15703,13 @@ async function n_({ card: e, asset: t, sidebar: n, onAssetUpdated: r }) { } } try { - s && l ? F(L("toast.metadataVectorUpdated", "Metadata + AI vector index updated for this asset."), "success", 2200) : s && c && !l && F(L("toast.metadataUpdatedVectorFailed", "Metadata updated. AI vector index could not be updated."), "warning", 2600); + c && u ? x(L("toast.metadataVectorUpdated", "Metadata + AI vector index updated for this asset."), "success", 2200) : c && l && !u && x(L("toast.metadataUpdatedVectorFailed", "Metadata updated. AI vector index could not be updated."), "warning", 2600); } catch (e) { console.debug?.(e); } return o; } -function r_(e, t) { +function c_(e, t) { if (e) { try { let n = e.querySelector(".mjr-asset-card.is-selected"); @@ -15668,7 +15745,7 @@ function r_(e, t) { } } } -var i_ = (e) => { +var l_ = (e) => { if (e == null) return ""; try { if (typeof CSS < "u" && typeof CSS.escape == "function") return CSS.escape(String(e)); @@ -15677,32 +15754,32 @@ var i_ = (e) => { } return String(e).replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1"); }; -function a_(e, t) { +function u_(e, t) { if (!e || !t) return null; try { - return e.querySelector(`.mjr-asset-card[data-mjr-asset-id="${i_(t)}"]`); + return e.querySelector(`.mjr-asset-card[data-mjr-asset-id="${l_(t)}"]`); } catch (e) { console.debug?.(e); } try { - return e.querySelector(`.mjr-asset-card[data-mjr-asset-id="${i_(t)}"]`); + return e.querySelector(`.mjr-asset-card[data-mjr-asset-id="${l_(t)}"]`); } catch (e) { console.debug?.(e); } return null; } -function o_(e) { +function d_(e) { if (!e) return null; let t = e.dataset?.mjrSelectedAssetId; if (t) { - let n = a_(e, t); + let n = u_(e, t); if (n) return n; } let n = e.dataset?.mjrSelectedAssetIds; if (n) try { let t = JSON.parse(n); if (Array.isArray(t) && t.length) { - let n = a_(e, t[0]); + let n = u_(e, t[0]); if (n) return n; } } catch (e) { @@ -15710,7 +15787,7 @@ function o_(e) { } return e.querySelector(".mjr-asset-card.is-selected"); } -function s_(e, { preventScroll: t = !0 } = {}) { +function f_(e, { preventScroll: t = !0 } = {}) { if (e) try { e.focus?.({ preventScroll: t }); } catch { @@ -15721,14 +15798,14 @@ function s_(e, { preventScroll: t = !0 } = {}) { } } } -function c_(e, { force: t = !1 } = {}) { +function p_(e, { force: t = !1 } = {}) { if (!e || !t && !e._mjrFocusWithin) return; - let n = o_(e); - n && (s_(n), e._mjrFocusWithin = !0); + let n = d_(e); + n && (f_(n), e._mjrFocusWithin = !0); } -function l_(e) { +function m_(e) { if (e) try { - let t = o_(e); + let t = d_(e); if (!t) return; let n = e.parentElement; if (n && typeof n.getBoundingClientRect == "function" && typeof t.getBoundingClientRect == "function") { @@ -15743,7 +15820,7 @@ function l_(e) { console.debug?.(e); } } -function u_(e) { +function h_(e) { if (e) try { e._mjrAutoRevealSelectionUntil = Date.now() + 900; } catch (e) { @@ -15751,12 +15828,12 @@ function u_(e) { } let t = () => { try { - l_(e); + m_(e); } catch (e) { console.debug?.(e); } try { - c_(e); + p_(e); } catch (e) { console.debug?.(e); } @@ -15771,10 +15848,10 @@ function u_(e) { t(); } } -function d_(e, t) { +function g_(e, t) { e && (t ? (e.classList.add("is-selected"), e.setAttribute?.("aria-selected", "true")) : (e.classList.remove("is-selected"), e.setAttribute?.("aria-selected", "false"))); } -function f_(e) { +function __(e) { try { if (typeof e?._mjrGetRenderedCards == "function") { let t = e._mjrGetRenderedCards(); @@ -15789,15 +15866,15 @@ function f_(e) { return []; } } -function p_(e) { +function v_(e) { if (e) try { - let t = f_(e).filter((e) => e?.classList?.contains?.("is-selected")).map((e) => e?.dataset?.mjrAssetId).filter(Boolean); + let t = __(e).filter((e) => e?.classList?.contains?.("is-selected")).map((e) => e?.dataset?.mjrAssetId).filter(Boolean); t.length ? (e.dataset.mjrSelectedAssetIds = JSON.stringify(t), !e.dataset.mjrSelectedAssetId && t[0] && (e.dataset.mjrSelectedAssetId = String(t[0]))) : (delete e.dataset.mjrSelectedAssetIds, delete e.dataset.mjrSelectedAssetId); } catch (e) { console.debug?.(e); } } -function m_(e, t, n = "") { +function y_(e, t, n = "") { if (!e) return []; let r = Array.from(t || []).map(String).filter(Boolean); try { @@ -15811,9 +15888,9 @@ function m_(e, t, n = "") { console.debug?.(e); } try { - for (let t of f_(e)) { + for (let t of __(e)) { let e = t?.dataset?.mjrAssetId; - d_(t, !!(e && r.includes(String(e)))); + g_(t, !!(e && r.includes(String(e)))); } } catch (e) { console.debug?.(e); @@ -15828,7 +15905,7 @@ function m_(e, t, n = "") { } return r; } -function h_({ gridContainer: e, state: t, activeId: n, readState: r = null, writeState: i = null } = {}) { +function b_({ gridContainer: e, state: t, activeId: n, readState: r = null, writeState: i = null } = {}) { if ((t || i) && e) try { let a = []; if (e.dataset?.mjrSelectedAssetIds) try { @@ -15837,7 +15914,7 @@ function h_({ gridContainer: e, state: t, activeId: n, readState: r = null, writ } catch (e) { console.debug?.(e); } - else a = e.dataset?.mjrSelectedAssetId ? [String(e.dataset.mjrSelectedAssetId)].filter(Boolean) : f_(e).filter((e) => e?.classList?.contains?.("is-selected")).map((e) => e?.dataset?.mjrAssetId).filter(Boolean).map(String); + else a = e.dataset?.mjrSelectedAssetId ? [String(e.dataset.mjrSelectedAssetId)].filter(Boolean) : __(e).filter((e) => e?.classList?.contains?.("is-selected")).map((e) => e?.dataset?.mjrAssetId).filter(Boolean).map(String); typeof i == "function" ? i("selectedAssetIds", a) : t.selectedAssetIds = a; let o = String(typeof r == "function" ? r("activeAssetId", "") || "" : t?.activeAssetId || ""); n == null ? o && a.includes(o) || (typeof i == "function" ? i("activeAssetId", a[0] || "") : t.activeAssetId = a[0] || "") : typeof i == "function" ? i("activeAssetId", String(n)) : t.activeAssetId = String(n); @@ -15845,8 +15922,8 @@ function h_({ gridContainer: e, state: t, activeId: n, readState: r = null, writ console.debug?.(e); } } -function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadge: r, showAssetInSidebar: i, closeSidebar: a, state: o }) { - let { read: s, write: c } = Uh(o, [ +function x_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadge: r, showAssetInSidebar: i, closeSidebar: a, state: o }) { + let { read: s, write: c } = Jh(o, [ "activeAssetId", "selectedAssetIds", "sidebarOpen" @@ -15856,7 +15933,7 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg e._mjrSidebarOpenBound = !0; let l = (t) => { e._mjrFocusWithin = !0; - let n = qt(t.target, ".mjr-asset-card"); + let n = Xt(t.target, ".mjr-asset-card"); if (n) try { e._mjrLastFocusedCardId = n.dataset?.mjrAssetId || ""; } catch (e) { @@ -15881,9 +15958,9 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg } }, a = () => { n && cancelAnimationFrame(n), r && clearTimeout(r), n = requestAnimationFrame(() => { - n = null, i() && l_(e); + n = null, i() && m_(e); }), r = setTimeout(() => { - r = null, i() && l_(e); + r = null, i() && m_(e); }, 160); }, o = new ResizeObserver(() => a()); t && o.observe(t), o.observe(e), e._mjrSelectionResizeObserver = o; @@ -15895,7 +15972,7 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg try { let n = i?.has_workflow ?? i?.hasWorkflow ?? t.has_workflow, r = i?.has_generation_data ?? i?.hasGenerationData ?? t.has_generation_data; n !== void 0 && (t.has_workflow = n), r !== void 0 && (t.has_generation_data = r); - let a = e.querySelector(".mjr-workflow-dot"), o = _n(t); + let a = e.querySelector(".mjr-workflow-dot"), o = bn(t); a && o && a.replaceWith(o); } catch (e) { console.debug?.(e); @@ -15915,22 +15992,22 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg } }, f = async (n) => { if (n.defaultPrevented) return; - let r = qt(n.target, ".mjr-asset-card"); + let r = Xt(n.target, ".mjr-asset-card"); if (!r) return; - let a = qt(n.target, ".mjr-workflow-dot"); + let a = Xt(n.target, ".mjr-workflow-dot"); if (a && r.contains(a)) { let a = r._mjrAsset; if (!a) return; n.preventDefault(), n.stopPropagation(); let l = r?.dataset?.mjrAssetId || ""; - m_(e, l ? [l] : [], l), h_({ + y_(e, l ? [l] : [], l), b_({ gridContainer: e, state: o, activeId: l, readState: s, writeState: c }); - let u = await n_({ + let u = await s_({ card: r, asset: a, sidebar: t, @@ -15944,12 +16021,12 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg } return; } - let l = qt(n.target, "a, button, input, textarea, select, label"); + let l = Xt(n.target, "a, button, input, textarea, select, label"); if (l && r.contains(l)) return; let u = r._mjrAsset; if (u) { if (e?._mjrSelectionManagedByVue) { - h_({ + b_({ gridContainer: e, state: o, activeId: String(r?.dataset?.mjrAssetId || "").trim(), @@ -15969,7 +16046,7 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg console.debug?.(e); } } else if (n.preventDefault(), n.stopPropagation(), n.ctrlKey || n.metaKey || n.shiftKey) { - let t = f_(e), i = t.indexOf(r); + let t = __(e), i = t.indexOf(r); if (n.shiftKey) { let t = []; try { @@ -15981,7 +16058,7 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg let n = r?.dataset?.mjrAssetId || "", i = t.findIndex((e) => String(e?.id || "") === String(n)), a = Number(e._mjrLastSelectedIndex), l = Number.isFinite(a) ? a : i; if (i >= 0 && l >= 0) { let r = Math.min(l, i), a = Math.max(l, i), u = t.slice(r, a + 1).map((e) => String(e?.id || "")).filter(Boolean); - m_(e, u, n || u[0] || ""), e._mjrLastSelectedIndex = i, h_({ + y_(e, u, n || u[0] || ""), e._mjrLastSelectedIndex = i, b_({ gridContainer: e, state: o, activeId: n || "", @@ -16016,7 +16093,7 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg } a && (l.has(a) ? l.delete(a) : l.add(a)); let u = Array.from(l), d = l.has(a) ? a : u[0] || ""; - m_(e, u, d), h_({ + y_(e, u, d), b_({ gridContainer: e, state: o, activeId: d, @@ -16026,7 +16103,7 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg } else { { if (r.classList.contains("is-selected")) { - m_(e, [], ""), h_({ + y_(e, [], ""), b_({ gridContainer: e, state: o, activeId: "", @@ -16036,7 +16113,7 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg return; } let n = r?.dataset?.mjrAssetId; - m_(e, n ? [n] : [], n || ""), h_({ + y_(e, n ? [n] : [], n || ""), b_({ gridContainer: e, state: o, activeId: n || "", @@ -16050,7 +16127,7 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg } } try { - l_(e), r?.focus?.({ preventScroll: !0 }); + m_(e), r?.focus?.({ preventScroll: !0 }); } catch (e) { console.debug?.(e); } @@ -16061,10 +16138,10 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg let p = async () => { let n = String(s("activeAssetId", "") || ""), r = null; if (n) try { - r = e.querySelector(`.mjr-asset-card[data-mjr-asset-id="${i_(n)}"]`); + r = e.querySelector(`.mjr-asset-card[data-mjr-asset-id="${l_(n)}"]`); } catch { try { - r = e.querySelector(`.mjr-asset-card[data-mjr-asset-id="${i_(n)}"]`); + r = e.querySelector(`.mjr-asset-card[data-mjr-asset-id="${l_(n)}"]`); } catch (e) { console.debug?.(e); } @@ -16072,7 +16149,7 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg r ||= e.querySelector(".mjr-asset-card.is-selected"); let l = r?._mjrAsset; if (l) { - r_(e, r), p_(e), h_({ + c_(e, r), v_(e), b_({ gridContainer: e, state: o, activeId: r?.dataset?.mjrAssetId, @@ -16088,7 +16165,7 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg } catch (e) { console.debug?.(e); } - c_(e, { force: !0 }), u_(e); + p_(e, { force: !0 }), h_(e); return; } } catch (e) { @@ -16101,7 +16178,7 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg } catch (e) { console.debug?.(e); } - u_(e), r?.focus?.({ preventScroll: !0 }); + h_(e), r?.focus?.({ preventScroll: !0 }); } catch (e) { console.debug?.(e); } @@ -16116,7 +16193,7 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg if (!n) return !1; let r = null; try { - r = a_(e, n); + r = u_(e, n); } catch (e) { console.debug?.(e); } @@ -16152,8 +16229,8 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg e.addEventListener("mjr:selection-changed", g); let _ = (t) => { if (t.defaultPrevented || (t.key?.toLowerCase?.() || "") !== "d" || t.ctrlKey || t.metaKey || t.altKey || t.target?.isContentEditable || t.target?.closest?.("input, textarea, select, [contenteditable='true']")) return; - let n = qt(t.target, ".mjr-asset-card"); - n && n._mjrAsset && (t.preventDefault(), t.stopPropagation(), r_(e, n), p_(e), h_({ + let n = Xt(t.target, ".mjr-asset-card"); + n && n._mjrAsset && (t.preventDefault(), t.stopPropagation(), c_(e, n), v_(e), b_({ gridContainer: e, state: o, activeId: n?.dataset?.mjrAssetId, @@ -16239,7 +16316,7 @@ function g_({ gridContainer: e, sidebar: t, createRatingBadge: n, createTagsBadg }; } // ui/features/panel/controllers/panelHotkeysController.ts -function __({ onTriggerScan: e, getScanContext: t, onToggleDetails: n, onToggleFloatingViewer: r, onFocusSearch: i, onClearSearch: a, allowListKeys: o } = {}) { +function S_({ onTriggerScan: e, getScanContext: t, onToggleDetails: n, onToggleFloatingViewer: r, onFocusSearch: i, onClearSearch: a, allowListKeys: o } = {}) { let s = !1, c = !1, l = null, u = o instanceof Set ? o : /* @__PURE__ */ new Set([ " ", "ArrowUp", @@ -16274,7 +16351,7 @@ function __({ onTriggerScan: e, getScanContext: t, onToggleDetails: n, onToggleF console.debug?.(e); } try { - let e = ht(); + let e = vt(); return e && (document.activeElement === document.body || e.contains?.(document.activeElement)) || !1; } catch (e) { return console.debug?.(e), !1; @@ -16293,7 +16370,7 @@ function __({ onTriggerScan: e, getScanContext: t, onToggleDetails: n, onToggleF c = !1; }, keydown: (o) => { - if (vt() || gt().scope === "viewer") return; + if (xt() || yt().scope === "viewer") return; if (o.key?.toLowerCase?.() === "v" && !o.ctrlKey && !o.metaKey && !o.altKey && !o.shiftKey && !(o.target?.isContentEditable || o.target?.closest?.("input, textarea, select, [contenteditable='true']")) && l?.isConnected && f(o)) { let e = !1; try { @@ -16370,7 +16447,7 @@ function __({ onTriggerScan: e, getScanContext: t, onToggleDetails: n, onToggleF } catch (e) { console.debug?.(e); } - lt("panel"); + ft("panel"); } }, g = () => { if (l) { @@ -16384,7 +16461,7 @@ function __({ onTriggerScan: e, getScanContext: t, onToggleDetails: n, onToggleF } catch (e) { console.debug?.(e); } - gt().scope === "panel" && lt(null), l = null; + yt().scope === "panel" && ft(null), l = null; } }; return { @@ -16393,17 +16470,17 @@ function __({ onTriggerScan: e, getScanContext: t, onToggleDetails: n, onToggleF }; } // ui/vue/composables/useGridSelection.ts -function v_(e) { +function C_(e) { return Array.isArray(e) ? e.map((e) => String(e || "").trim()).filter(Boolean) : []; } -function y_({ gridContainer: e, readSelectedAssetIds: t = () => [], readActiveAssetId: n = () => "", writeSelectedAssetIds: r = (e) => {}, writeActiveAssetId: i = (e) => {}, onSelectionChanged: a = () => {}, lifecycleSignal: o = null } = {}) { +function w_({ gridContainer: e, readSelectedAssetIds: t = () => [], readActiveAssetId: n = () => "", writeSelectedAssetIds: r = (e) => {}, writeActiveAssetId: i = (e) => {}, onSelectionChanged: a = () => {}, lifecycleSignal: o = null } = {}) { if (!e) return { restoreSelectionState() {}, dispose() {} }; let s = (e) => { try { - let t = e?.detail || {}, n = v_(t.selectedIds); + let t = e?.detail || {}, n = C_(t.selectedIds); r(n), i(String(t.activeId || n[0] || "").trim()); } catch (e) { console.debug?.(e); @@ -16421,7 +16498,7 @@ function y_({ gridContainer: e, readSelectedAssetIds: t = () => [], readActiveAs } return { restoreSelectionState: ({ scrollTop: r = 0 } = {}) => { - let i = v_(t()), a = String(n() || i[0] || "").trim(); + let i = C_(t()), a = String(n() || i[0] || "").trim(); if (i.length || a) { try { typeof e?._mjrSetSelection == "function" && e._mjrSetSelection(i, a); @@ -16438,7 +16515,7 @@ function y_({ gridContainer: e, readSelectedAssetIds: t = () => [], readActiveAs console.debug?.(e); } try { - lu(e, a)?.scrollIntoView?.({ + fu(e, a)?.scrollIntoView?.({ block: "nearest", behavior: "instant" }); @@ -16458,7 +16535,7 @@ function y_({ gridContainer: e, readSelectedAssetIds: t = () => [], readActiveAs }; } // ui/vue/composables/useAssetsQuery.ts -function b_(e) { +function T_(e) { try { if (typeof requestAnimationFrame == "function") { requestAnimationFrame(e); @@ -16469,28 +16546,28 @@ function b_(e) { } setTimeout(e, 0); } -function x_(e = {}, t = "*") { +function E_(e = {}, t = "*") { return e.scope === "output" && !e.collectionId && t === "*" && !e.kindFilter && !e.workflowOnly && !(Number(e.minRating || 0) > 0) && !(Number(e.minSizeMB || 0) > 0) && !(Number(e.maxSizeMB || 0) > 0) && !(Number(e.minWidth || 0) > 0) && !(Number(e.minHeight || 0) > 0) && !(Number(e.maxWidth || 0) > 0) && !(Number(e.maxHeight || 0) > 0) && !String(e.workflowType || "").trim() && !String(e.workflowId || "").trim() && !e.dateRangeFilter && !e.dateExactFilter; } -function S_({ gridContainer: e, gridWrapper: t, readScrollElement: n = () => null, gridController: r, captureAnchor: i, restoreAnchor: a, restoreGridUiState: o = null, readScrollTop: s = () => 0, restoreSelectionState: c = () => {}, readActiveAssetId: l = () => "", isSidebarOpen: u = () => !1, toggleSidebarDetails: d = () => {}, getQuery: f = () => "*", getScope: m = () => "output", loadAssets: h = null, lifecycleSignal: g = null } = {}) { - let _ = 0, v = !1, y = null, b = null, x = null, S = 0, C = !0, w = "", T = Date.now(), E = () => { +function D_({ gridContainer: e, gridWrapper: t, readScrollElement: n = () => null, gridController: r, captureAnchor: i, restoreAnchor: a, restoreGridUiState: o = null, readScrollTop: s = () => 0, restoreSelectionState: c = () => {}, readActiveAssetId: l = () => "", isSidebarOpen: u = () => !1, toggleSidebarDetails: d = () => {}, getQuery: f = () => "*", getScope: p = () => "output", loadAssets: m = null, lifecycleSignal: h = null } = {}) { + let g = 0, _ = !1, v = null, y = null, b = null, x = 0, S = !0, C = "", w = Date.now(), T = () => { try { - return Vc(e, (typeof n == "function" ? n() : t) || t || null); + return Wc(e, (typeof n == "function" ? n() : t) || t || null); } catch (e) { return console.debug?.(e), !1; } - }, D = (e = null, { resumeQueuedReload: t = !0 } = {}) => { - if (C = typeof e == "boolean" ? e : E(), !C) return y &&= (clearTimeout(y), null), C; - if (t && w && !v) { - let e = w; - w = "", A({ reason: e }).catch((e) => console.debug?.(e)); + }, E = (e = null, { resumeQueuedReload: t = !0 } = {}) => { + if (S = typeof e == "boolean" ? e : T(), !S) return v &&= (clearTimeout(v), null), S; + if (t && C && !_) { + let e = C; + C = "", k({ reason: e }).catch((e) => console.debug?.(e)); } - if (x && !y) { - let e = x, t = S || 50; - x = null, S = 0, ne(e, Math.min(t, 50)); + if (b && !v) { + let e = b, t = x || 50; + b = null, x = 0, te(e, Math.min(t, 50)); } - return t && _ > 0 && !v && A().catch((e) => console.debug?.(e)), C; - }, O = () => { + return t && g > 0 && !_ && k().catch((e) => console.debug?.(e)), S; + }, D = () => { try { let t = e?._mjrGetGridState?.(); if (Array.isArray(t?.assets) && t.assets.length > 0) return !0; @@ -16508,21 +16585,21 @@ function S_({ gridContainer: e, gridWrapper: t, readScrollElement: n = () => nul } catch (e) { return console.debug?.(e), !1; } - }, k = () => { + }, O = () => { try { return !!e?._mjrGetGridState?.()?.loading; } catch (e) { return console.debug?.(e), !1; } - }, A = async (t = {}) => { - if (e && r?.reloadGrid && (_ += 1, D(null, { resumeQueuedReload: !1 }) && !v)) { - v = !0; + }, k = async (t = {}) => { + if (e && r?.reloadGrid && (g += 1, E(null, { resumeQueuedReload: !1 }) && !_)) { + _ = !0; try { - for (; _ > 0;) { - if (!D(null, { resumeQueuedReload: !1 })) return; - _ = 0; + for (; g > 0;) { + if (!E(null, { resumeQueuedReload: !1 })) return; + g = 0; let t = typeof i == "function" ? i(e) : null; - if (await r.reloadGrid(), !D(null, { resumeQueuedReload: !1 })) return; + if (await r.reloadGrid(), !E(null, { resumeQueuedReload: !1 })) return; if (t && typeof a == "function") try { if ((Number(s() || 0) || 0) > (Number(t?.scrollTop || 0) || 0) + 8) continue; await a(e, t); @@ -16531,29 +16608,29 @@ function S_({ gridContainer: e, gridWrapper: t, readScrollElement: n = () => nul } } } finally { - v = !1; + _ = !1; } } - }, ee = (e = "external") => { - w = String(e || "external"); + }, A = (e = "external") => { + C = String(e || "external"); try { let e = globalThis?.window ?? globalThis; e.__mjrGridDirty = !0; } catch (e) { console.debug?.(e); } - if (D(null, { resumeQueuedReload: !1 }) && !v) { - let e = w; - w = "", A({ reason: e }).catch((e) => console.debug?.(e)); + if (E(null, { resumeQueuedReload: !1 }) && !_) { + let e = C; + C = "", k({ reason: e }).catch((e) => console.debug?.(e)); } }, j = (e) => { - e?.detail?.source !== "assets-query-controller" && ee(e?.detail?.reason || "external"); + e?.detail?.source !== "assets-query-controller" && A(e?.detail?.reason || "external"); }, M = (e) => { - globalThis?._mjrMaintenanceActive || ee(e?.detail?.reason || "manual"); + globalThis?._mjrMaintenanceActive || A(e?.detail?.reason || "manual"); }; try { let e = globalThis?.window ?? globalThis; - e?.addEventListener?.("mjr-grid-dirty", j, { signal: g || void 0 }), e?.addEventListener?.("mjr:reload-grid", M, { signal: g || void 0 }); + e?.addEventListener?.("mjr-grid-dirty", j, { signal: h || void 0 }), e?.addEventListener?.("mjr:reload-grid", M, { signal: h || void 0 }); } catch (e) { console.debug?.(e); } @@ -16564,7 +16641,7 @@ function S_({ gridContainer: e, gridWrapper: t, readScrollElement: n = () => nul } catch (e) { console.debug?.(e); } - b_(() => { + T_(() => { let e = Number(s() || 0) || 0; if (e > 0) try { t.scrollTop = e; @@ -16582,28 +16659,28 @@ function S_({ gridContainer: e, gridWrapper: t, readScrollElement: n = () => nul console.debug?.(e); } }); - }, te = async (t) => { + }, ee = async (t) => { try { await t; } catch (e) { console.debug?.(e); } - if (e && typeof h == "function" && !g?.aborted) { - if (!D()) x = t, S = 50; - else if (!O() && !k() && String(m() || "output") === "output" && String(f() || "*") === "*") try { - let t = await Pe(`${p.HEALTH_COUNTERS}?scope=output`, { signal: g || void 0 }); - t?.ok && (t.data?.total_assets || 0) > 0 && await h(e); + if (e && typeof m == "function" && !h?.aborted) { + if (!E()) b = t, x = 50; + else if (!D() && !O() && String(p() || "output") === "output" && String(f() || "*") === "*") try { + let t = await Ie(`${I.HEALTH_COUNTERS}?scope=output`, { signal: h || void 0 }); + t?.ok && (t.data?.total_assets || 0) > 0 && await m(e); } catch (e) { console.debug?.(e); } } - }, ne = (e, t = 2e3) => (y && clearTimeout(y), D() ? (x = null, S = 0, y = setTimeout(() => { - y = null, te(e).catch(() => {}); - }, t), y) : (x = e, S = t, null)); + }, te = (e, t = 2e3) => (v && clearTimeout(v), E() ? (b = null, x = 0, v = setTimeout(() => { + v = null, ee(e).catch(() => {}); + }, t), v) : (b = e, x = t, null)); return { - queuedReload: A, + queuedReload: k, restoreUiState: N, - scheduleAutoLoad: ne, + scheduleAutoLoad: te, createCountersUpdateHandler: ({ state: t = {}, getStableQuery: n = () => String(e?.dataset?.mjrQuery || "*").trim() || "*", getRecentUserInteractionAt: r = () => 0 } = {}) => { let i = globalThis?.window ?? globalThis, a = null, o = null, s = null, c = !1; return async (e = {}) => { @@ -16611,12 +16688,12 @@ function S_({ gridContainer: e, gridWrapper: t, readScrollElement: n = () => nul c = !0, a = e.last_scan_end, o = e.last_index_end, s = Number(e.total_assets ?? null); return; } - let l = e.last_scan_end && e.last_scan_end !== a, u = e.last_index_end && e.last_index_end !== o, d = Number(e.total_assets ?? null), f = x_(t, String(n() || "*").trim() || "*"), p = Date.now() - T < 8e3, m = Number.isFinite(d) && Number.isFinite(s) ? d - s : 0, h = Math.max(0, Number(i?.__mjrLastAssetUpsertCount || 0) || 0), g = m >= 20; - if (Number.isFinite(d) && (s = d), !f || p && O() && !u && !g) { + let l = e.last_scan_end && e.last_scan_end !== a, u = e.last_index_end && e.last_index_end !== o, d = Number(e.total_assets ?? null), f = E_(t, String(n() || "*").trim() || "*"), p = Date.now() - w < 8e3, m = Number.isFinite(d) && Number.isFinite(s) ? d - s : 0, h = Math.max(0, Number(i?.__mjrLastAssetUpsertCount || 0) || 0), g = m >= 20; + if (Number.isFinite(d) && (s = d), !f || p && D() && !u && !g) { a = e.last_scan_end, o = e.last_index_end; return; } - let _ = Date.now() - Number(i?.__mjrLastAssetUpsert || 0) < 15e3, v = _ && m > 0 && h > 0 && m <= h + 8, y = g && !l && !u && O(); + let _ = Date.now() - Number(i?.__mjrLastAssetUpsert || 0) < 15e3, v = _ && m > 0 && h > 0 && m <= h + 8, y = g && !l && !u && D(); u && (o = e.last_index_end); let b = u && !l && !g && !_; if (v) { @@ -16646,7 +16723,7 @@ function S_({ gridContainer: e, gridWrapper: t, readScrollElement: n = () => nul } try { let e = Date.now() - Math.max(0, Number(r() || 0) || 0); - O() || (e > 1500 ? ee(x) : w = x); + D() || (e > 1500 ? A(x) : C = x); } catch (e) { console.debug?.(e); } @@ -16684,15 +16761,15 @@ function S_({ gridContainer: e, gridWrapper: t, readScrollElement: n = () => nul } catch (e) { console.debug?.(e); } - b && clearTimeout(b), t.length === 0 || t === "*" ? c() : b = setTimeout(() => { - b = null, c(); + y && clearTimeout(y), t.length === 0 || t === "*" ? c() : y = setTimeout(() => { + y = null, c(); }, n); } }, u = (e) => { - e?.key === "Enter" && (b &&= (clearTimeout(b), null), c()); + e?.key === "Enter" && (y &&= (clearTimeout(y), null), c()); }; return e.addEventListener("input", l, { signal: t || void 0 }), e.addEventListener("keypress", u, { signal: t || void 0 }), () => { - b &&= (clearTimeout(b), null); + y &&= (clearTimeout(y), null); try { e.removeEventListener("input", l); } catch (e) { @@ -16705,9 +16782,9 @@ function S_({ gridContainer: e, gridWrapper: t, readScrollElement: n = () => nul } }; }, - markGridDirty: ee, + markGridDirty: A, setVisibility(e = null) { - return D(e); + return E(e); }, dispose() { try { @@ -16716,12 +16793,12 @@ function S_({ gridContainer: e, gridWrapper: t, readScrollElement: n = () => nul } catch (e) { console.debug?.(e); } - y &&= (clearTimeout(y), null), x = null, S = 0, b &&= (clearTimeout(b), null); + v &&= (clearTimeout(v), null), b = null, x = 0, y &&= (clearTimeout(y), null); } }; } // ui/features/panel/panelBootstrap.ts -function C_(e, { useComfyThemeUI: t }) { +function O_(e, { useComfyThemeUI: t }) { t ? e.classList.add("mjr-assets-manager") : e.classList.remove("mjr-assets-manager"); let n = e.parentElement || null, r = n ? { height: n.style.height, @@ -16733,7 +16810,7 @@ function C_(e, { useComfyThemeUI: t }) { } catch (e) { console.debug?.(e); } - _t(); + bt(); for (let t of [ () => e._eventCleanup?.(), () => e._mjrPopoverManager?.dispose?.(), @@ -16747,7 +16824,7 @@ function C_(e, { useComfyThemeUI: t }) { console.debug?.(e); } e.replaceChildren(), e.classList.add("mjr-am-container"); - let i = Ni(e); + let i = Ii(e); try { e._mjrPopoverManager = i; } catch (e) { @@ -16760,14 +16837,14 @@ function C_(e, { useComfyThemeUI: t }) { }; } // ui/features/panel/panelSettingsSync.ts -function w_({ container: e, state: t, sidebar: n, browseSection: r, gridWrapper: i, similarBtn: a, setSemanticEnabled: o, similarEnabledTitle: s, similarDisabledTitle: c, refreshGridFn: l, isSidebarOpen: u, readActiveAssetId: d, getSidebarController: f, panelLifecycleAC: p }) { - let m = "", h = () => { +function k_({ container: e, state: t, sidebar: n, browseSection: r, gridWrapper: a, similarBtn: o, setSemanticEnabled: s, similarEnabledTitle: c, similarDisabledTitle: l, refreshGridFn: u, isSidebarOpen: d, readActiveAssetId: f, getSidebarController: p, panelLifecycleAC: m }) { + let h = "", g = () => { try { - return !!(Mt()?.ai?.vectorSearchEnabled ?? !0); + return !!(Ft()?.ai?.vectorSearchEnabled ?? !0); } catch { return !0; } - }, g = (t) => { + }, _ = (t) => { let n = !!t; try { e.classList.toggle("mjr-ai-disabled", !n); @@ -16775,22 +16852,22 @@ function w_({ container: e, state: t, sidebar: n, browseSection: r, gridWrapper: console.debug?.(e); } try { - a.disabled = !n, a.title = n ? s : c; + o.disabled = !n, o.title = n ? c : l; } catch (e) { console.debug?.(e); } try { - o?.(n); + s?.(n); } catch (e) { console.debug?.(e); } - }, _ = (e) => { - let t = String(e || "right").toLowerCase() === "left" ? "left" : "right", a = t === "left" ? n?.nextElementSibling === i : i?.nextElementSibling === n; - if (m === t && a) return; - m = t; + }, v = (e) => { + let t = String(e || "right").toLowerCase() === "left" ? "left" : "right", i = t === "left" ? n?.nextElementSibling === a : a?.nextElementSibling === n; + if (h === t && i) return; + h = t; let o = 0, s = 0; try { - o = Number(i?.scrollTop || 0) || 0, s = Number(i?.scrollLeft || 0) || 0; + o = Number(a?.scrollTop || 0) || 0, s = Number(a?.scrollLeft || 0) || 0; } catch (e) { console.debug?.(e); } @@ -16802,40 +16879,40 @@ function w_({ container: e, state: t, sidebar: n, browseSection: r, gridWrapper: console.debug?.(e); } try { - t === "left" ? (r.appendChild(n), r.appendChild(i), r.insertBefore(n, r.firstChild)) : (r.appendChild(i), r.appendChild(n)); + t === "left" ? (r.appendChild(n), r.appendChild(a), r.insertBefore(n, r.firstChild)) : (r.appendChild(a), r.appendChild(n)); } catch (e) { console.debug?.(e); } try { requestAnimationFrame(() => { try { - i.scrollTop = o, i.scrollLeft = s; + a.scrollTop = o, a.scrollLeft = s; } catch (e) { console.debug?.(e); } }); } catch { try { - i.scrollTop = o, i.scrollLeft = s; + a.scrollTop = o, a.scrollLeft = s; } catch (e) { console.debug?.(e); } } - }, v = async (e) => { - let n = String(e || t.scope || "output").toLowerCase(), r = !!Mt()?.watcher?.enabled; + }, y = async (e) => { + let n = String(e || t.scope || "output").toLowerCase(), r = !!Ft()?.watcher?.enabled; if (n === "custom") try { - await Oe(!1); + await D(!1); } catch (e) { console.debug?.(e); } else { try { - await Oe(r); + await D(r); } catch (e) { console.debug?.(e); } if (r) try { - await C({ + await i({ scope: n, customRootId: "" }); @@ -16843,49 +16920,49 @@ function w_({ container: e, state: t, sidebar: n, browseSection: r, gridWrapper: console.debug?.(e); } } - }, y = (e) => { + }, b = (e) => { let n = String(e?.detail?.key || "").trim(), r = n === "__init__", i = r || n.startsWith("grid.") || n.startsWith("infiniteScroll.") || n.startsWith("siblings.") || n.startsWith("search.") || n.startsWith("rtHydrate.") || n.startsWith("workflowMinimap."), a = r || n.startsWith("sidebar.") || n.startsWith("ai."), o = r || n.startsWith("watcher."); try { - let e = Mt(), t = !!(e?.ai?.vectorSearchEnabled ?? !0), o = String(e?.ui?.cardHoverColor || "").trim(), s = String(e?.ui?.cardSelectionColor || "").trim(), c = String(e?.ui?.ratingColor || "").trim(), p = String(e?.ui?.tagColor || "").trim(); - if (/^#[0-9a-fA-F]{3,8}$/.test(o) && document.documentElement.style.setProperty("--mjr-card-hover-color", o), /^#[0-9a-fA-F]{3,8}$/.test(s) && document.documentElement.style.setProperty("--mjr-card-selection-color", s), /^#[0-9a-fA-F]{3,8}$/.test(c) && document.documentElement.style.setProperty("--mjr-rating-color", c), /^#[0-9a-fA-F]{3,8}$/.test(p) && document.documentElement.style.setProperty("--mjr-tag-color", p), _(e.sidebar?.position || "right"), g(t), i) { - let e = ht() || null; + let e = Ft(), t = !!(e?.ai?.vectorSearchEnabled ?? !0), o = String(e?.ui?.cardHoverColor || "").trim(), s = String(e?.ui?.cardSelectionColor || "").trim(), c = String(e?.ui?.ratingColor || "").trim(), l = String(e?.ui?.tagColor || "").trim(); + if (/^#[0-9a-fA-F]{3,8}$/.test(o) && document.documentElement.style.setProperty("--mjr-card-hover-color", o), /^#[0-9a-fA-F]{3,8}$/.test(s) && document.documentElement.style.setProperty("--mjr-card-selection-color", s), /^#[0-9a-fA-F]{3,8}$/.test(c) && document.documentElement.style.setProperty("--mjr-rating-color", c), /^#[0-9a-fA-F]{3,8}$/.test(l) && document.documentElement.style.setProperty("--mjr-tag-color", l), v(e.sidebar?.position || "right"), _(t), i) { + let e = vt() || null; if (!r && n.startsWith("siblings.")) try { e?.dispatchEvent(new CustomEvent("mjr:reload-grid")); } catch { - e && l(e); + e && u(e); } - else (n.startsWith("grid.") || n.startsWith("workflowMinimap.")) && e && l(e); + else (n.startsWith("grid.") || n.startsWith("workflowMinimap.")) && e && u(e); } - a && u() && d() && f()?.refreshActiveAsset?.(); + a && d() && f() && p()?.refreshActiveAsset?.(); } catch (e) { console.debug?.(e); } try { if (!o) return; - v(t.scope); + y(t.scope); } catch (e) { console.debug?.(e); } }; try { - y({ detail: { key: "__init__" } }); + b({ detail: { key: "__init__" } }); } catch (e) { console.debug?.(e); } try { - window.addEventListener?.("mjr-settings-changed", y, { signal: p?.signal }); + window.addEventListener?.("mjr-settings-changed", b, { signal: m?.signal }); } catch (e) { console.debug?.(e); } return { - applyWatcherForScope: v, - isAiEnabled: h, - applyAiUiState: g, - applySidebarPosition: _ + applyWatcherForScope: y, + isAiEnabled: g, + applyAiUiState: _, + applySidebarPosition: v }; } // ui/features/panel/panelGridEventBindings.ts -function T_({ gridContainer: e, panelLifecycleAC: t, requestQueuedReload: n, notifyContextChanged: r, markUserInteraction: i, writePanelValue: a, popovers: o, collectionsPopover: s, gridController: c, registerSummaryDispose: l }) { +function A_({ gridContainer: e, panelLifecycleAC: t, requestQueuedReload: n, notifyContextChanged: r, markUserInteraction: i, writePanelValue: a, popovers: o, collectionsPopover: s, gridController: c, registerSummaryDispose: l }) { let u = null; try { u = () => n(), e.addEventListener("mjr:reload-grid", u, { signal: t?.signal }), l(() => { @@ -16913,7 +16990,7 @@ function T_({ gridContainer: e, panelLifecycleAC: t, requestQueuedReload: n, not }), i(), r(); let l = Number(n?.count || s.length || o.length || 0); try { - F(L("toast.nameCollisionInView", "Name collision in view: {n} item(s) selected", { n: l }), "info", 1800); + x(L("toast.nameCollisionInView", "Name collision in view: {n} item(s) selected", { n: l }), "info", 1800); } catch (e) { console.debug?.(e); } @@ -16978,39 +17055,39 @@ function T_({ gridContainer: e, panelLifecycleAC: t, requestQueuedReload: n, not } } // ui/features/panel/panelSimilarSearch.ts -var E_ = 500; -function D_(e) { +var j_ = 500; +function M_(e) { return Number(e?.status || 0) === 404 && String(e?.error || "").toLowerCase().includes("non-json"); } -function O_(e, t = "") { +function N_(e, t = "") { let n = Array.isArray(e) ? e : []; - return n.length <= E_ ? { + return n.length <= j_ ? { list: n, title: t, truncated: !1, total: n.length } : { - list: n.slice(0, E_), - title: `${String(t || "").trim() || "Generation group"} - showing first ${E_}/${n.length}`, + list: n.slice(0, j_), + title: `${String(t || "").trim() || "Generation group"} - showing first ${j_}/${n.length}`, truncated: !0, total: n.length }; } -function k_(e = {}) { +function P_(e = {}) { let t = String(e?.stackId || e?.stack_id || "").trim(); if (t) return `stack:${t}`; let n = String(e?.asset?.id || "").trim(); return e?.isDupGroup ? n ? `duplicates:${n}` : "duplicates" : n ? `group:${n}` : "group"; } -function A_(e, t) { +function F_(e, t) { return String(e?.[t] ?? e?.file_info?.[t] ?? "").trim(); } -function j_({ similarBtn: e, similarPopover: t, similarFindBtn: n, similarDuplicatesBtn: r, similarSameNodeBtn: i, similarSameWorkflowBtn: a, gridContainer: o, state: c, panelLifecycleAC: l, isAiEnabled: u, similarDisabledTitle: d, readActiveAssetId: f, readSelectedAssetIds: p, readPanelValue: m, writePanelValue: h, scopeController: g, closePopovers: _, closePeerPopovers: v, popovers: y, workflowIdInput: b, reloadGrid: x, getDuplicatesAlert: S }) { - let C = () => String(f() || p()[0] || "").trim(), w = () => { - let e = Number(C()); +function I_({ similarBtn: e, similarPopover: t, similarFindBtn: n, similarDuplicatesBtn: r, similarSameNodeBtn: i, similarSameWorkflowBtn: a, gridContainer: o, state: s, panelLifecycleAC: c, isAiEnabled: l, similarDisabledTitle: u, readActiveAssetId: d, readSelectedAssetIds: f, readPanelValue: p, writePanelValue: m, scopeController: h, closePopovers: g, closePeerPopovers: _, popovers: v, workflowIdInput: y, reloadGrid: b, getDuplicatesAlert: S }) { + let w = () => String(d() || f()[0] || "").trim(), T = () => { + let e = Number(w()); return Number.isFinite(e) && e > 0 ? e : 0; - }, T = () => { - let e = C(); + }, E = () => { + let e = w(); if (!e) return null; try { let t = o?._mjrGetAssets, n = typeof t == "function" ? t() : []; @@ -17018,29 +17095,29 @@ function j_({ similarBtn: e, similarPopover: t, similarFindBtn: n, similarDuplic } catch (e) { return console.debug?.(e), null; } - }, E = async () => { - let e = T(); + }, D = async () => { + let e = E(); if (e) return e; - let t = w(); - return t ? D(t) : null; - }, D = async (e = w()) => { + let t = T(); + return t ? O(t) : null; + }, O = async (e = T()) => { if (!e) return null; try { - let t = await Ue(e, { timeoutMs: 3e4 }); + let t = await qe(e, { timeoutMs: 3e4 }); return t?.ok && t.data || null; } catch (e) { return console.debug?.(e), null; } - }, O = async (e, t) => e && t.some((t) => A_(e, t)) ? e : await D() || e, k = (e = {}) => (Array.isArray(e?.files) ? e.files : []).map((e) => ({ + }, k = async (e, t) => e && t.some((t) => F_(e, t)) ? e : await O() || e, A = (e = {}) => (Array.isArray(e?.files) ? e.files : []).map((e) => ({ filename: String(e?.filename || "").trim(), subfolder: String(e?.subfolder || "").trim().replace(/\\/g, "/"), type: String(e?.type || "").trim().toLowerCase() - })).filter((e) => e.filename), A = async (e, t) => { + })).filter((e) => e.filename), j = async (e, t) => { let n = [], r = /* @__PURE__ */ new Set(); for (let e of t.slice(0, 4)) { let t = e.type === "input" ? "input" : "output"; try { - let i = await Pe(qe({ + let i = await Ie(Ge({ q: e.filename, scope: t, limit: 50, @@ -17061,187 +17138,187 @@ function j_({ similarBtn: e, similarPopover: t, similarFindBtn: n, similarDuplic } } if (!n.length) { - F(L("nodeContext.fileNotIndexed", "The node file is not indexed yet. Run a scan first."), "info", 3200); + x(L("nodeContext.fileNotIndexed", "The node file is not indexed yet. Run a scan first."), "info", 3200); return; } let i = String(e?.title || e?.sourceNodeType || e?.source_node_type || t[0]?.filename || "").trim(); - h("similarResults", n), h("similarSourceAssetId", `node-file:${t[0]?.filename || ""}`), h("similarTitle", L("nodeContext.fileResultsTitle", "Node {node} file ({n} assets)", { + m("similarResults", n), m("similarSourceAssetId", `node-file:${t[0]?.filename || ""}`), m("similarTitle", L("nodeContext.fileResultsTitle", "Node {node} file ({n} assets)", { node: i || t[0]?.filename || "", n: n.length - })), await g?.setScope?.("similar"); - }, ee = async (e = {}) => { - let t = String(e?.sourceNodeId || e?.source_node_id || "").trim(), n = k(e); + })), await h?.setScope?.("similar"); + }, M = async (e = {}) => { + let t = String(e?.sourceNodeId || e?.source_node_id || "").trim(), n = A(e); if (t || n.length) { try { - _?.(); + g?.(); } catch (e) { console.debug?.(e); } - if (!t) await A(e, n); + if (!t) await j(e, n); else try { - let r = await Pe(Ne(t, { + let r = await Ie(Ee(t, { jobId: e?.jobId || e?.job_id || "", latest: e?.latest !== !1, limit: 500 }), { timeoutMs: 3e4 }); if (!r?.ok) { - if (D_(r)) { + if (M_(r)) { if (n.length) { - await A(e, n); + await j(e, n); return; } let t = window.MajoorAssetsManager ||= {}; - t.nodeContextRouteMissingToastShown || (t.nodeContextRouteMissingToastShown = !0, F(L("nodeContext.routeMissing", "Node context backend route is not loaded yet. Restart ComfyUI after updating Majoor Assets Manager."), "warn", 7e3)); + t.nodeContextRouteMissingToastShown || (t.nodeContextRouteMissingToastShown = !0, x(L("nodeContext.routeMissing", "Node context backend route is not loaded yet. Restart ComfyUI after updating Majoor Assets Manager."), "warn", 7e3)); return; } if (n.length) { - await A(e, n); + await j(e, n); return; } - F(String(r?.error || L("nodeContext.loadFailed", "Failed to load node assets")), "error", 3e3); + x(String(r?.error || L("nodeContext.loadFailed", "Failed to load node assets")), "error", 3e3); return; } let i = Array.isArray(r?.data) ? r.data : []; if (!i.length) { if (n.length) { - await A(e, n); + await j(e, n); return; } - F(L("nodeContext.noAssets", "No indexed assets found for this node yet."), "info", 2600); + x(L("nodeContext.noAssets", "No indexed assets found for this node yet."), "info", 2600); return; } let a = String(e?.title || e?.sourceNodeType || e?.source_node_type || t).trim(); - h("similarResults", i), h("similarSourceAssetId", `node:${t}`), h("similarTitle", L("nodeContext.resultsTitle", "Node {node} outputs ({n} assets)", { + m("similarResults", i), m("similarSourceAssetId", `node:${t}`), m("similarTitle", L("nodeContext.resultsTitle", "Node {node} outputs ({n} assets)", { node: a || t, n: i.length - })), await g?.setScope?.("similar"); + })), await h?.setScope?.("similar"); } catch (e) { - console.debug?.(e), F(L("nodeContext.loadFailed", "Failed to load node assets"), "error", 3e3); + console.debug?.(e), x(L("nodeContext.loadFailed", "Failed to load node assets"), "error", 3e3); } } - }, j = async () => { - if (!u()) { - F(d, "info", 2200); + }, N = async () => { + if (!l()) { + x(u, "info", 2200); return; } try { - _(); + g(); } catch (e) { console.debug?.(e); } - let t = w(); + let t = T(); if (!t) { - F(L("search.selectAssetForSimilar", "Select an asset first to find similar images/videos."), "info", 2500); + x(L("search.selectAssetForSimilar", "Select an asset first to find similar images/videos."), "info", 2500); return; } let n = e.title; e.disabled = !0, e.title = L("search.findingSimilar", "Finding similar assets..."); try { - let e = await s(t, { + let e = await C(t, { topK: 100, - scope: c.scope || "output", - customRootId: c.customRootId || "" + scope: s.scope || "output", + customRootId: s.customRootId || "" }); if (!e?.ok) { - F(String(e?.error || L("search.findSimilarFailed", "Failed to find similar assets")), "error", 3e3); + x(String(e?.error || L("search.findSimilarFailed", "Failed to find similar assets")), "error", 3e3); return; } let n = Array.isArray(e?.data) ? e.data : []; - h("similarResults", n), h("similarSourceAssetId", String(t)), h("similarTitle", L("search.similarResults", "Similar to asset #{id} ({n} results)", { + m("similarResults", n), m("similarSourceAssetId", String(t)), m("similarTitle", L("search.similarResults", "Similar to asset #{id} ({n} results)", { id: t, n: n.length - })), await g?.setScope?.("similar"); + })), await h?.setScope?.("similar"); } catch (e) { - console.debug?.(e), F(L("search.findSimilarFailed", "Failed to find similar assets"), "error", 3e3); + console.debug?.(e), x(L("search.findSimilarFailed", "Failed to find similar assets"), "error", 3e3); } finally { e.disabled = !1, e.title = n; } - }, M = async () => { + }, ee = async () => { try { - _?.(); + g?.(); } catch (e) { console.debug?.(e); } - let e = await E(), t = String(e?.id || C() || "").trim(), n = md(Array.isArray(e?._mjrDupMembers) ? e._mjrDupMembers : []); + let e = await D(), t = String(e?.id || w() || "").trim(), n = _d(Array.isArray(e?._mjrDupMembers) ? e._mjrDupMembers : []); if (n.length >= 2) { - h("similarResults", n), h("similarSourceAssetId", t ? `duplicates:${t}` : "duplicates"), h("similarTitle", L("search.duplicateResults", "Duplicates ({n} assets)", { n: n.length })), await g?.setScope?.("similar"); + m("similarResults", n), m("similarSourceAssetId", t ? `duplicates:${t}` : "duplicates"), m("similarTitle", L("search.duplicateResults", "Duplicates ({n} assets)", { n: n.length })), await h?.setScope?.("similar"); return; } let r = (S?.() || {})?.firstGroup; - r && Array.isArray(r.assets) && r.assets.length >= 2 ? (h("similarResults", r.assets), h("similarSourceAssetId", "duplicates"), h("similarTitle", L("search.duplicateResults", "Duplicates ({n} assets)", { n: r.assets.length })), await g?.setScope?.("similar")) : F(L("search.noKnownDuplicates", "No duplicate group is available yet. Run duplicate analysis from the duplicate alert first."), "info", 3200); - }, N = async () => { - let e = await O(await E(), ["source_node_id", "source_node_type"]), t = A_(e, "source_node_id"); - t ? await ee({ - sourceNodeId: t, - sourceNodeType: A_(e, "source_node_type"), - jobId: A_(e, "job_id"), - title: A_(e, "source_node_type") || t - }) : F(L("search.noSourceNode", "Selected asset has no persisted source node id."), "info", 2600); + r && Array.isArray(r.assets) && r.assets.length >= 2 ? (m("similarResults", r.assets), m("similarSourceAssetId", "duplicates"), m("similarTitle", L("search.duplicateResults", "Duplicates ({n} assets)", { n: r.assets.length })), await h?.setScope?.("similar")) : x(L("search.noKnownDuplicates", "No duplicate group is available yet. Run duplicate analysis from the duplicate alert first."), "info", 3200); }, te = async () => { + let e = await k(await D(), ["source_node_id", "source_node_type"]), t = F_(e, "source_node_id"); + t ? await M({ + sourceNodeId: t, + sourceNodeType: F_(e, "source_node_type"), + jobId: F_(e, "job_id"), + title: F_(e, "source_node_type") || t + }) : x(L("search.noSourceNode", "Selected asset has no persisted source node id."), "info", 2600); + }, P = async () => { try { - _?.(); + g?.(); } catch (e) { console.debug?.(e); } - let e = A_(await O(await E(), ["workflow_id"]), "workflow_id"); - if (!e) F(L("search.noWorkflowId", "Selected asset has no persisted workflow id."), "info", 2600); + let e = F_(await k(await D(), ["workflow_id"]), "workflow_id"); + if (!e) x(L("search.noWorkflowId", "Selected asset has no persisted workflow id."), "info", 2600); else { - h("workflowId", e); + m("workflowId", e); try { - b && (b.value = e); + y && (y.value = e); } catch (e) { console.debug?.(e); } try { - await g?.setScope?.(c.scope || "output"); + await h?.setScope?.(s.scope || "output"); } catch (e) { console.debug?.(e); } - await x?.(); + await b?.(); } }; e?.addEventListener("click", (n) => { n.stopPropagation(); try { - v?.(); + _?.(); } catch (e) { console.debug?.(e); } - y?.toggle?.(t, e); - }, { signal: l?.signal }); + v?.toggle?.(t, e); + }, { signal: c?.signal }); let ne = (e, t) => { e?.addEventListener("click", (e) => { e.stopPropagation(), t(); - }, { signal: l?.signal }); + }, { signal: c?.signal }); }; - ne(n, j), ne(r, M), ne(i, N), ne(a, te), o?.addEventListener(B.OPEN_STACK_GROUP, async (e) => { + ne(n, N), ne(r, ee), ne(i, te), ne(a, P), o?.addEventListener(B.OPEN_STACK_GROUP, async (e) => { try { - let t = e?.detail || {}, n = Array.isArray(t?.members) ? t.members : [], r = `Generation group (${n.length} assets)`, i = O_(n, String(t?.title || "").trim() || r); - i.truncated && F(`Large stack truncated to ${E_}/${i.total} assets to keep the grid responsive.`, "warn", 5e3), h("similarResults", i.list), h("similarSourceAssetId", k_(t)), h("similarTitle", i.title || r), await Promise.resolve(), await g?.setScope?.("similar"); + let t = e?.detail || {}, n = Array.isArray(t?.members) ? t.members : [], r = `Generation group (${n.length} assets)`, i = N_(n, String(t?.title || "").trim() || r); + i.truncated && x(`Large stack truncated to ${j_}/${i.total} assets to keep the grid responsive.`, "warn", 5e3), m("similarResults", i.list), m("similarSourceAssetId", P_(t)), m("similarTitle", i.title || r), await Promise.resolve(), await h?.setScope?.("similar"); } catch (e) { console.debug?.(e); } - }, { signal: l?.signal }), window.addEventListener(B.OPEN_NODE_CONTEXT, (e) => { + }, { signal: c?.signal }), window.addEventListener(B.OPEN_NODE_CONTEXT, (e) => { try { let e = window.MajoorAssetsManager; e?.pendingNodeContext && (e.pendingNodeContext = null); } catch (e) { console.debug?.(e); } - ee(e?.detail || {}); - }, { signal: l?.signal }); + M(e?.detail || {}); + }, { signal: c?.signal }); try { let e = window.MajoorAssetsManager?.pendingNodeContext || null; e && (window.MajoorAssetsManager.pendingNodeContext = null, setTimeout(() => { - ee(e); + M(e); }, 0)); } catch (e) { console.debug?.(e); } } // ui/features/panel/panelPinnedFolders.ts -function M_({ pinnedFoldersBtn: e, pinnedFoldersController: t = null, pinnedFoldersMenu: n = null, pinnedFoldersPopover: r, popovers: i, closeOtherPopovers: a, state: o, gridContainer: s, customSelect: c, scopeController: l, customRootsController: u, gridController: d, applyWatcherForScope: f, refreshDuplicateAlerts: m, notifyContextChanged: h, panelLifecycleAC: g }) { - let _ = (e) => { +function L_({ pinnedFoldersBtn: e, pinnedFoldersController: t = null, pinnedFoldersMenu: n = null, pinnedFoldersPopover: r, popovers: i, closeOtherPopovers: a, state: o, gridContainer: s, customSelect: c, scopeController: l, customRootsController: u, gridController: d, applyWatcherForScope: f, refreshDuplicateAlerts: p, notifyContextChanged: m, panelLifecycleAC: h }) { + let g = (e) => { let t = String(e?.id || "").trim(); if (!t) return null; let n = String(e?.path || "").trim(); @@ -17250,14 +17327,14 @@ function M_({ pinnedFoldersBtn: e, pinnedFoldersController: t = null, pinnedFold label: String(e?.name || n || t).trim() || t, path: n }; - }, v = async () => { + }, _ = async () => { try { - let e = await Pe(p.CUSTOM_ROOTS, g?.signal ? { signal: g.signal } : void 0); - return e?.ok && Array.isArray(e.data) ? e.data.map(_).filter(Boolean) : []; + let e = await Ie(I.CUSTOM_ROOTS, h?.signal ? { signal: h.signal } : void 0); + return e?.ok && Array.isArray(e.data) ? e.data.map(g).filter(Boolean) : []; } catch (e) { return console.debug?.(e), []; } - }, y = async (e) => { + }, v = async (e) => { let t = String(e?.id || "").trim(); if (!t) return; let n = String(e?.label || e?.path || t).trim(); @@ -17284,24 +17361,24 @@ function M_({ pinnedFoldersBtn: e, pinnedFoldersController: t = null, pinnedFold console.debug?.(e); } try { - await m(); + await p(); } catch (e) { console.debug?.(e); } try { - h(); + m(); } catch (e) { console.debug?.(e); } i.close(r), await d.reloadGrid(); - }, b = async (e, t = null) => { + }, y = async (e, t = null) => { t?.preventDefault?.(), t?.stopPropagation?.(); let n = String(e?.id || "").trim(); if (!n) return; let r = String(e?.label || e?.path || n).trim(); - if (!await jt(L("dialog.unpinFolder", "Unpin folder \"{name}\"?", { name: r }))) return; - let i = await me(p.CUSTOM_ROOTS_REMOVE, { id: n }); - if (!i?.ok) F(i?.error || L("toast.unpinFolderFailed", "Failed to unpin folder"), "error"); + if (!await Pt(L("dialog.unpinFolder", "Unpin folder \"{name}\"?", { name: r }))) return; + let i = await he(I.CUSTOM_ROOTS_REMOVE, { id: n }); + if (!i?.ok) x(i?.error || L("toast.unpinFolderFailed", "Failed to unpin folder"), "error"); else { String(o.customRootId || "") === n && (o.customRootId = "", o.customRootLabel = "", o.currentFolderRelativePath = ""); try { @@ -17311,13 +17388,13 @@ function M_({ pinnedFoldersBtn: e, pinnedFoldersController: t = null, pinnedFold } await C(), await d.reloadGrid(); } - }, x = (e) => typeof t?.setPinnedFolders == "function" && (t.setPinnedFolders({ + }, b = (e) => typeof t?.setPinnedFolders == "function" && (t.setPinnedFolders({ roots: e, emptyLabel: L("msg.noPinnedFolders", "No pinned folders"), loadingLabel: L("status.loading", "Loading..."), unpinLabel: L("ctx.unpinFolder", "Unpin folder"), - onOpen: y, - onUnpin: b, + onOpen: v, + onUnpin: y, loading: !1 }), !0), S = (e) => { if (n) { @@ -17330,9 +17407,9 @@ function M_({ pinnedFoldersBtn: e, pinnedFoldersController: t = null, pinnedFold let e = document.createElement("div"); e.className = "mjr-pinned-folder-row"; let r = document.createElement("button"); - r.type = "button", r.className = "mjr-menu-item mjr-pinned-folder-open", r.textContent = t.label, r.addEventListener("click", () => y(t), { signal: g?.signal }); + r.type = "button", r.className = "mjr-menu-item mjr-pinned-folder-open", r.textContent = t.label, r.addEventListener("click", () => v(t), { signal: h?.signal }); let i = document.createElement("button"); - i.type = "button", i.className = "mjr-menu-item mjr-pinned-folder-unpin", i.title = L("ctx.unpinFolder", "Unpin folder"), i.textContent = "x", i.addEventListener("click", (e) => b(t, e), { signal: g?.signal }), e.appendChild(r), e.appendChild(i), n.appendChild(e); + i.type = "button", i.className = "mjr-menu-item mjr-pinned-folder-unpin", i.title = L("ctx.unpinFolder", "Unpin folder"), i.textContent = "x", i.addEventListener("click", (e) => y(t, e), { signal: h?.signal }), e.appendChild(r), e.appendChild(i), n.appendChild(e); } else { let e = document.createElement("div"); @@ -17346,8 +17423,8 @@ function M_({ pinnedFoldersBtn: e, pinnedFoldersController: t = null, pinnedFold } catch (e) { console.debug?.(e); } - let e = await v(); - x(e) || S(e); + let e = await _(); + b(e) || S(e); } e?.addEventListener("click", async (t) => { t.stopPropagation(); @@ -17357,11 +17434,11 @@ function M_({ pinnedFoldersBtn: e, pinnedFoldersController: t = null, pinnedFold console.debug?.(e); } a(), i.toggle(r, e); - }, { signal: g?.signal }); + }, { signal: h?.signal }); } // ui/features/filters/calendar/AgendaCalendar.ts -var N_ = (e) => String(e).padStart(2, "0"); -function P_(e) { +var R_ = (e) => String(e).padStart(2, "0"); +function z_(e) { try { let t = String(e || "").trim(); if (!/^\d{4}-\d{2}-\d{2}$/.test(t)) return null; @@ -17373,50 +17450,50 @@ function P_(e) { return null; } } -function F_(e) { +function B_(e) { try { let t = e.getFullYear(), n = e.getMonth() + 1, r = e.getDate(); - return `${t}-${N_(n)}-${N_(r)}`; + return `${t}-${R_(n)}-${R_(r)}`; } catch { return ""; } } -function I_(e) { +function V_(e) { try { - return `${e.getFullYear()}-${N_(e.getMonth() + 1)}`; + return `${e.getFullYear()}-${R_(e.getMonth() + 1)}`; } catch { return ""; } } -function L_(e) { +function H_(e) { try { return new Date(e.getFullYear(), e.getMonth(), 1); } catch { return /* @__PURE__ */ new Date(); } } -function R_(e, t) { +function U_(e, t) { try { return new Date(e.getFullYear(), e.getMonth() + t, 1); } catch { return /* @__PURE__ */ new Date(); } } -function z_(e) { +function W_(e) { try { return new Date(e.getFullYear(), e.getMonth() + 1, 0).getDate(); } catch { return 31; } } -function B_(e) { +function G_(e) { try { return (e.getDay() + 6) % 7; } catch { return 0; } } -function V_(e, t) { +function K_(e, t) { if (e) try { let n = String(e.value || ""); e.value = t || "", n !== e.value && e.dispatchEvent?.(new Event("change", { bubbles: !0 })); @@ -17424,37 +17501,37 @@ function V_(e, t) { console.debug?.(e); } } -async function H_({ state: t, monthKey: n }) { +async function q_({ state: e, monthKey: t }) { try { - let r = String(t?.scope || "output"); - if (r === "collection") return { + let n = String(e?.scope || "output"); + if (n === "collection") return { ok: !0, days: {} }; - let i = String(t?.currentFolderRelativePath || "").trim(), a = r === "custom" && !t?.customRootId ? null : i || null, o = e({ - scope: r, - customRootId: t?.customRootId || null, - subfolder: a, - month: n, - kind: t?.kindFilter || null, - hasWorkflow: t?.workflowOnly ? !0 : null, - minRating: Number(t?.minRating || 0) || 0, - minSizeMB: Number(t?.minSizeMB || 0) || 0, - maxSizeMB: Number(t?.maxSizeMB || 0) || 0, - minWidth: Number(t?.minWidth || 0) || 0, - minHeight: Number(t?.minHeight || 0) || 0, - maxWidth: Number(t?.maxWidth || 0) || 0, - maxHeight: Number(t?.maxHeight || 0) || 0, - workflowType: String(t?.workflowType || "").trim().toUpperCase() || null, + let r = String(e?.currentFolderRelativePath || "").trim(), i = n === "custom" && !e?.customRootId ? null : r || null, a = Xe({ + scope: n, + customRootId: e?.customRootId || null, + subfolder: i, + month: t, + kind: e?.kindFilter || null, + hasWorkflow: e?.workflowOnly ? !0 : null, + minRating: Number(e?.minRating || 0) || 0, + minSizeMB: Number(e?.minSizeMB || 0) || 0, + maxSizeMB: Number(e?.maxSizeMB || 0) || 0, + minWidth: Number(e?.minWidth || 0) || 0, + minHeight: Number(e?.minHeight || 0) || 0, + maxWidth: Number(e?.maxWidth || 0) || 0, + maxHeight: Number(e?.maxHeight || 0) || 0, + workflowType: String(e?.workflowType || "").trim().toUpperCase() || null, dateRange: null, dateExact: null - }), s = await Pe(o); - return !s || !s.ok ? { + }), o = await Ie(a); + return !o || !o.ok ? { ok: !1, - error: s?.error || "Histogram error" + error: o?.error || "Histogram error" } : { ok: !0, - days: s?.data?.days && typeof s.data.days == "object" ? s.data.days : {} + days: o?.data?.days && typeof o.data.days == "object" ? o.data.days : {} }; } catch (e) { return { @@ -17463,7 +17540,7 @@ async function H_({ state: t, monthKey: n }) { }; } } -function U_({ container: e, hiddenInput: t, state: n, onRequestReloadGrid: r = null } = {}) { +function J_({ container: e, hiddenInput: t, state: n, onRequestReloadGrid: r = null } = {}) { if (!e || !(e instanceof HTMLElement) || !t) return { dispose() {}, refresh() {} @@ -17486,7 +17563,7 @@ function U_({ container: e, hiddenInput: t, state: n, onRequestReloadGrid: r = n d.type = "button", d.className = "mjr-btn mjr-agenda-clear", d.textContent = L("action.clear", "Clear"); let f = document.createElement("button"); f.type = "button", f.className = "mjr-btn mjr-agenda-refresh", f.textContent = L("action.refresh", "Refresh"), u.appendChild(d), u.appendChild(f), i.appendChild(a), i.appendChild(l), i.appendChild(u), e.appendChild(i); - let p = L_(P_(t.value) || /* @__PURE__ */ new Date()), m = {}, h = 0, g = !1, _ = () => { + let p = H_(z_(t.value) || /* @__PURE__ */ new Date()), m = {}, h = 0, g = !1, _ = () => { if (g) return; let e = p.getFullYear(), n = p.getMonth(); s.textContent = p.toLocaleString(void 0, { @@ -17506,13 +17583,13 @@ function U_({ container: e, hiddenInput: t, state: n, onRequestReloadGrid: r = n let t = document.createElement("div"); t.className = "mjr-agenda-weekday", t.textContent = e, l.appendChild(t); } - let i = B_(new Date(e, n, 1)), a = z_(p), o = P_(t.value), c = o ? F_(o) : ""; + let i = G_(new Date(e, n, 1)), a = W_(p), o = z_(t.value), c = o ? B_(o) : ""; for (let e = 0; e < i; e++) { let e = document.createElement("div"); e.className = "mjr-agenda-day mjr-agenda-day--blank", l.appendChild(e); } for (let r = 1; r <= a; r++) { - let i = F_(new Date(e, n, r)), a = Number(m?.[i] || 0) || 0, o = document.createElement("button"); + let i = B_(new Date(e, n, r)), a = Number(m?.[i] || 0) || 0, o = document.createElement("button"); if (o.type = "button", o.className = "mjr-agenda-day", o.textContent = String(r), o.dataset.date = i, a > 0) { o.classList.add("mjr-agenda-day--has-assets"); let e = L(a === 1 ? "tooltip.assetsDaySingular" : "tooltip.assetsDayPlural", a === 1 ? "{count} asset" : "{count} assets", { count: a }); @@ -17521,26 +17598,26 @@ function U_({ container: e, hiddenInput: t, state: n, onRequestReloadGrid: r = n t.className = "mjr-agenda-day-badge", t.textContent = a > 99 ? "99+" : String(a), t.setAttribute("aria-label", e), o.appendChild(t); } else o.title = L("tooltip.noAssetsDay", "No assets on this day"); i === c && o.classList.add("mjr-agenda-day--selected"), o.addEventListener("click", () => { - V_(t, String(t.value || "").trim() === i ? "" : i); + K_(t, String(t.value || "").trim() === i ? "" : i); }), l.appendChild(o); } }, v = async () => { if (g) return; - let e = I_(p); + let e = V_(p); if (!e) return; h += 1; - let t = h, r = await H_({ + let t = h, r = await q_({ state: n, monthKey: e }); g || t === h && (m = r.ok && r.days || {}, _()); }; return o.addEventListener("click", async () => { - p = R_(p, -1), await v(); + p = U_(p, -1), await v(); }), c.addEventListener("click", async () => { - p = R_(p, 1), await v(); + p = U_(p, 1), await v(); }), d.addEventListener("click", () => { - V_(t, ""); + K_(t, ""); try { r?.(); } catch (e) { @@ -17549,9 +17626,9 @@ function U_({ container: e, hiddenInput: t, state: n, onRequestReloadGrid: r = n }), f.addEventListener("click", async () => { await v(); }), t.addEventListener("change", () => { - let e = P_(t.value); + let e = z_(t.value); if (e) { - let t = L_(e); + let t = H_(e); (t.getFullYear() !== p.getFullYear() || t.getMonth() !== p.getMonth()) && (p = t); } _(); @@ -17568,14 +17645,14 @@ function U_({ container: e, hiddenInput: t, state: n, onRequestReloadGrid: r = n }; } // ui/features/panel/controllers/filtersController.ts -var W_ = (e) => { +var Y_ = (e) => { let t = String(e ?? "").trim(); if (!t) return 0; let n = t.replace(",", "."), r = Number(n); return Number.isFinite(r) ? r : 0; }; -function G_({ state: e, kindSelect: t, wfCheckbox: n, workflowTypeSelect: r, workflowIdInput: i, workflowModelInput: a, workflowRunsOnSelect: o, ratingSelect: s, minSizeInput: c, maxSizeInput: l, resolutionPresetSelect: u, minWidthInput: d, minHeightInput: f, maxWidthInput: p, maxHeightInput: m, dateRangeSelect: h, dateExactInput: g, reloadGrid: _, reconcileSelection: v = null, onFiltersChanged: y = null, lifecycleSignal: b = null }) { - let { write: x } = Uh(e, [ +function X_({ state: e, kindSelect: t, wfCheckbox: n, workflowTypeSelect: r, workflowIdInput: i, workflowModelInput: a, workflowRunsOnSelect: o, ratingSelect: s, minSizeInput: c, maxSizeInput: l, resolutionPresetSelect: u, minWidthInput: d, minHeightInput: f, maxWidthInput: p, maxHeightInput: m, dateRangeSelect: h, dateExactInput: g, reloadGrid: _, reconcileSelection: v = null, onFiltersChanged: y = null, lifecycleSignal: b = null }) { + let { write: x } = Jh(e, [ "kindFilter", "workflowOnly", "minRating", @@ -17687,7 +17764,7 @@ function G_({ state: e, kindSelect: t, wfCheckbox: n, workflowTypeSelect: r, wor C(); }, b ? { signal: b } : void 0); let E = () => { - let e = W_(c?.value || 0), t = W_(l?.value || 0), n = Number.isFinite(e) && e > 0 ? e : 0, r = Number.isFinite(t) && t > 0 ? t : 0; + let e = Y_(c?.value || 0), t = Y_(l?.value || 0), n = Number.isFinite(e) && e > 0 ? e : 0, r = Number.isFinite(t) && t > 0 ? t : 0; r > 0 && n > 0 && r < n && (r = n, l && (l.value = String(r))), x("minSizeMB", n), x("maxSizeMB", r); try { y?.(); @@ -17698,7 +17775,7 @@ function G_({ state: e, kindSelect: t, wfCheckbox: n, workflowTypeSelect: r, wor }; T(c, "change", E, b ? { signal: b } : void 0), T(l, "change", E, b ? { signal: b } : void 0); let D = () => { - let e = W_(d?.value || 0), t = W_(f?.value || 0), n = W_(p?.value || 0), r = W_(m?.value || 0), i = Number.isFinite(e) && e > 0 ? Math.round(e) : 0, a = Number.isFinite(t) && t > 0 ? Math.round(t) : 0, o = Number.isFinite(n) && n > 0 ? Math.round(n) : 0, s = Number.isFinite(r) && r > 0 ? Math.round(r) : 0; + let e = Y_(d?.value || 0), t = Y_(f?.value || 0), n = Y_(p?.value || 0), r = Y_(m?.value || 0), i = Number.isFinite(e) && e > 0 ? Math.round(e) : 0, a = Number.isFinite(t) && t > 0 ? Math.round(t) : 0, o = Number.isFinite(n) && n > 0 ? Math.round(n) : 0, s = Number.isFinite(r) && r > 0 ? Math.round(r) : 0; o > 0 && i > 0 && o < i && (o = i, p && (p.value = String(o))), s > 0 && a > 0 && s < a && (s = a, m && (m.value = String(s))), x("minWidth", i), x("minHeight", a), x("maxWidth", o), x("maxHeight", s); try { u && (u.value = { @@ -17782,7 +17859,7 @@ function G_({ state: e, kindSelect: t, wfCheckbox: n, workflowTypeSelect: r, wor }; } // ui/features/panel/panelFiltersInit.ts -function K_({ state: e, hasVueHeaderSection: t, kindSelect: n, wfCheckbox: r, workflowTypeSelect: i, workflowIdInput: a, workflowModelInput: o, workflowRunsOnSelect: s, ratingSelect: c, minSizeInput: l, maxSizeInput: u, resolutionPresetSelect: d, minWidthInput: f, minHeightInput: p, maxWidthInput: m, maxHeightInput: h, dateRangeSelect: g, dateExactInput: _, agendaContainer: v, gridController: y, reconcileVisibleSelection: b, exitSimilarViewIfActive: x, notifyContextChanged: S, panelLifecycleAC: C, popovers: w = null, filterPopover: T = null }) { +function Z_({ state: e, hasVueHeaderSection: t, kindSelect: n, wfCheckbox: r, workflowTypeSelect: i, workflowIdInput: a, workflowModelInput: o, workflowRunsOnSelect: s, ratingSelect: c, minSizeInput: l, maxSizeInput: u, resolutionPresetSelect: d, minWidthInput: f, minHeightInput: p, maxWidthInput: m, maxHeightInput: h, dateRangeSelect: g, dateExactInput: _, agendaContainer: v, gridController: y, reconcileVisibleSelection: b, exitSimilarViewIfActive: x, notifyContextChanged: S, panelLifecycleAC: C, popovers: w = null, filterPopover: T = null }) { let E = null; try { try { @@ -17792,7 +17869,7 @@ function K_({ state: e, hasVueHeaderSection: t, kindSelect: n, wfCheckbox: r, wo } catch (e) { console.debug?.(e); } - E = U_({ + E = J_({ container: v, hiddenInput: _, state: e, @@ -17833,7 +17910,7 @@ function K_({ state: e, hasVueHeaderSection: t, kindSelect: n, wfCheckbox: r, wo D = () => { e &&= (clearTimeout(e), null); }; - } else D = G_({ + } else D = X_({ state: e, kindSelect: n, wfCheckbox: r, @@ -17870,7 +17947,7 @@ function K_({ state: e, hasVueHeaderSection: t, kindSelect: n, wfCheckbox: r, wo }; } // ui/features/panel/panelContextMenuExtraActions.ts -function q_({ state: e, scopeController: t, browserNav: r, gridController: i, getDuplicatesAlert: a, refreshDuplicateAlerts: o }) { +function Q_({ state: e, scopeController: t, browserNav: n, gridController: r, getDuplicatesAlert: i, refreshDuplicateAlerts: a }) { return { clearSimilarScope: async () => { try { @@ -17888,48 +17965,48 @@ function q_({ state: e, scopeController: t, browserNav: r, gridController: i, ge }, resetBrowserHistory: () => { try { - r?.resetHistory?.(); + n?.resetHistory?.(); } catch (e) { console.debug?.(e); } }, onDuplicateAlertClick: async (e) => { - let t = (e || a() || {}).firstGroup; + let t = (e || i() || {}).firstGroup; if (t && Array.isArray(t.assets) && t.assets.length >= 2) { let e = t.assets[0] || {}, n = t.assets.slice(1).map((e) => Number(e?.id || 0)).filter((e) => e > 0); if (n.length) { - if (await jt(L("dialog.mergeDuplicateTags", "Exact duplicates detected ({count}). Merge tags into \"{target}\"?", { + if (await Pt(L("dialog.mergeDuplicateTags", "Exact duplicates detected ({count}). Merge tags into \"{target}\"?", { count: t.assets.length, target: e?.filename || e?.id }))) { - let t = await Ie(Number(e?.id || 0), n); - t?.ok ? F(L("toast.tagsMerged", "Tags merged"), "success", 2200) : F(L("toast.tagMergeFailed", "Tag merge failed: {error}", { error: t?.error || "error" }), "warning", 3500); + let t = await ve(Number(e?.id || 0), n); + t?.ok ? x(L("toast.tagsMerged", "Tags merged"), "success", 2200) : x(L("toast.tagMergeFailed", "Tag merge failed: {error}", { error: t?.error || "error" }), "warning", 3500); } - if (await jt(L("dialog.deleteExactDuplicates", "Delete {count} exact duplicate(s)?", { count: n.length }))) { - let e = await w(n); - e?.ok ? (F(L("toast.duplicatesDeleted", "Duplicates deleted"), "success", 2200), await i.reloadGrid()) : F(L("toast.deleteFailed", "Delete failed: {error}", { error: e?.error || "error" }), "warning", 3500); + if (await Pt(L("dialog.deleteExactDuplicates", "Delete {count} exact duplicate(s)?", { count: n.length }))) { + let e = await k(n); + e?.ok ? (x(L("toast.duplicatesDeleted", "Duplicates deleted"), "success", 2200), await r.reloadGrid()) : x(L("toast.deleteFailed", "Delete failed: {error}", { error: e?.error || "error" }), "warning", 3500); } - await o(); + await a(); return; } } - if (!await jt(L("dialog.startDuplicateAnalysis", "Start duplicate analysis in background?"))) return; - let r = await n(500); - r?.ok ? F(L("toast.dupAnalysisStarted", "Duplicate analysis started"), "info", 2200) : F(L("toast.analysisNotStarted", "Analysis not started: {error}", { error: r?.error || "error" }), "warning", 3500), await o(); + if (!await Pt(L("dialog.startDuplicateAnalysis", "Start duplicate analysis in background?"))) return; + let n = await T(500); + n?.ok ? x(L("toast.dupAnalysisStarted", "Duplicate analysis started"), "info", 2200) : x(L("toast.analysisNotStarted", "Analysis not started: {error}", { error: n?.error || "error" }), "warning", 3500), await a(); } }; } // ui/features/panel/panelRuntime.ts -async function J_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { - return Y_(e, { +async function $_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { + return ev(e, { useComfyThemeUI: t, external: n }); } -async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { - _m("panelRender"), bm("panelRender"); - let r = typeof AbortController < "u" ? new AbortController() : null, { popovers: i, hostWrapper: a, hostWrapperPrevStyle: o } = C_(e, { useComfyThemeUI: t }), s = Hh(); - if (!s) throw Error("[Majoor] mountAssetsManagerPanelRuntime requires an active Pinia panel store"); +async function ev(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { + bm("panelRender"), Cm("panelRender"); + let r = typeof AbortController < "u" ? new AbortController() : null, { popovers: i, hostWrapper: o, hostWrapperPrevStyle: s } = O_(e, { useComfyThemeUI: t }), c = qh(); + if (!c) throw Error("[Majoor] mountAssetsManagerPanelRuntime requires an active Pinia panel store"); for (let e of [ "statusSection", "statusDot", @@ -17944,7 +18021,7 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { "gridContainer", "sidebar" ]) if (!n?.[e]) throw Error(`[Majoor] mountAssetsManagerPanelRuntime now requires external.${e}`); - let c = Uh(null, [ + let l = Jh(null, [ "searchQuery", "scrollTop", "scope", @@ -17964,31 +18041,31 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { "similarTitle", "similarSourceAssetId" ]); - s.viewScope = String(s.viewScope || "").trim().toLowerCase() === "similar" ? "similar" : "", s.similarResults = Array.isArray(s.similarResults) ? s.similarResults : [], s.similarTitle = String(s.similarTitle || ""), s.similarSourceAssetId = String(s.similarSourceAssetId || ""); - let l = (e, t = "") => c.read(e, s?.[e] ?? t), u = (e, t) => c.write(e, t), d = () => { - let e = l("selectedAssetIds", []); + c.viewScope = String(c.viewScope || "").trim().toLowerCase() === "similar" ? "similar" : "", c.similarResults = Array.isArray(c.similarResults) ? c.similarResults : [], c.similarTitle = String(c.similarTitle || ""), c.similarSourceAssetId = String(c.similarSourceAssetId || ""); + let u = (e, t = "") => l.read(e, c?.[e] ?? t), d = (e, t) => l.write(e, t), f = () => { + let e = u("selectedAssetIds", []); return Array.isArray(e) ? e.map(String).filter(Boolean) : []; - }, f = () => String(l("activeAssetId", "") || "").trim(), m = () => !!l("sidebarOpen", !1), { header: h, tabButtons: g, customMenuBtn: _, filterBtn: v, sortBtn: y, collectionsBtn: b, pinnedFoldersBtn: x, messageBtn: S, settingsBtn: C, customPopover: w, customSelect: T, customAddBtn: E, customRemoveBtn: D, filterPopover: O, kindSelect: A, wfCheckbox: ee, workflowTypeSelect: j, workflowIdInput: M, workflowModelInput: N, workflowRunsOnSelect: te, ratingSelect: ne, minSizeInput: P, maxSizeInput: re, resolutionPresetSelect: I, minWidthInput: ie, minHeightInput: ae, maxWidthInput: oe, maxHeightInput: se, dateRangeSelect: ce, dateExactInput: le, agendaContainer: ue, sortPopover: de, sortMenu: fe, collectionsPopover: pe, pinnedFoldersPopover: he, pinnedFoldersController: ge, pinnedFoldersMenu: _e, messagePopoverTitle: ve, messagePopover: ye, messageTabBtn: be, messageTabBadge: xe, historyTabBtn: Se, historyTabBadge: Ce, historyTabCount: we, historyPanel: Te, shortcutsTabBtn: Ee, messageList: De, shortcutsPanel: Oe, markReadBtn: ke, searchSection: Ae, searchInputEl: je, similarBtn: Me, similarPopover: Ne, similarFindBtn: Fe, similarDuplicatesBtn: Ie, similarSameNodeBtn: Le, similarSameWorkflowBtn: Re, setSemanticEnabled: ze, _headerDispose: Be } = n.headerSection, Ve = !!n?.headerSection?.isVueHeader; - c.read("searchQuery", "") && (je.value = c.read("searchQuery", "")), je.addEventListener("input", (e) => { - c.write("searchQuery", e.target.value); + }, p = () => String(u("activeAssetId", "") || "").trim(), m = () => !!u("sidebarOpen", !1), { header: h, tabButtons: g, customMenuBtn: _, filterBtn: v, sortBtn: y, collectionsBtn: b, pinnedFoldersBtn: S, messageBtn: C, settingsBtn: w, customPopover: T, customSelect: E, customAddBtn: D, customRemoveBtn: O, filterPopover: k, kindSelect: A, wfCheckbox: j, workflowTypeSelect: M, workflowIdInput: N, workflowModelInput: ee, workflowRunsOnSelect: te, ratingSelect: P, minSizeInput: ne, maxSizeInput: re, resolutionPresetSelect: ie, minWidthInput: F, minHeightInput: ae, maxWidthInput: oe, maxHeightInput: se, dateRangeSelect: ce, dateExactInput: le, agendaContainer: ue, sortPopover: de, sortMenu: fe, collectionsPopover: pe, pinnedFoldersPopover: me, pinnedFoldersController: ge, pinnedFoldersMenu: _e, messagePopoverTitle: ve, messagePopover: ye, messageTabBtn: be, messageTabBadge: xe, historyTabBtn: Se, historyTabBadge: Ce, historyTabCount: we, historyPanel: Te, shortcutsTabBtn: Ee, messageList: De, shortcutsPanel: Oe, markReadBtn: ke, searchSection: Ae, searchInputEl: je, similarBtn: Me, similarPopover: Ne, similarFindBtn: Pe, similarDuplicatesBtn: Fe, similarSameNodeBtn: Le, similarSameWorkflowBtn: Re, setSemanticEnabled: ze, _headerDispose: Be } = n.headerSection, Ve = !!n?.headerSection?.isVueHeader; + l.read("searchQuery", "") && (je.value = l.read("searchQuery", "")), je.addEventListener("input", (e) => { + l.write("searchQuery", e.target.value); }, { signal: r?.signal }); - let He = n.summaryBar, Ue = n.updateSummaryBar, We = n.folderBreadcrumb, Ge = n.folderBreadcrumbController || null, Ke = n.statusSection, R = n.statusDot, qe = n.statusText, Je = n.capabilitiesSection, Ye = n.browseSection, Xe = n.gridWrapper, Ze = n.sidebar; - Mt(); + let He = n.summaryBar, Ue = n.updateSummaryBar, We = n.folderBreadcrumb, Ge = n.folderBreadcrumbController || null, Ke = n.statusSection, qe = n.statusDot, Je = n.statusText, Ye = n.capabilitiesSection, R = n.browseSection, Xe = n.gridWrapper, Ze = n.sidebar; + Ft(); let Qe = document.createElement("div"); Qe.classList.add("mjr-am-content"); let z = null, $e = null; e.tabIndex = -1; - let et = null, nt = 0, rt = () => { + let et = null, tt = 0, nt = () => { try { - nt = Date.now(); + tt = Date.now(); } catch { - nt = 0; + tt = 0; } - }, it = typeof n?.bindGridHostState == "function" && typeof n?.restoreGridUiState == "function", at = !it; + }, rt = typeof n?.bindGridHostState == "function" && typeof n?.restoreGridUiState == "function", it = !rt; Xe.addEventListener("scroll", () => { - rt(), at && (et && clearTimeout(et), et = setTimeout(() => { + nt(), it && (et && clearTimeout(et), et = setTimeout(() => { try { - c.write("scrollTop", Xe.scrollTop); + l.write("scrollTop", Xe.scrollTop); } catch (e) { console.debug?.(e); } @@ -17996,9 +18073,9 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { }, { passive: !0, signal: r?.signal - }), z = n.gridContainer, z.parentElement !== Xe && Xe.appendChild(z), pt(z); + }), z = n.gridContainer, z.parentElement !== Xe && Xe.appendChild(z), gt(z); try { - z.dataset.mjrScope = String(l("scope", s.scope || "output") || "output"); + z.dataset.mjrScope = String(u("scope", c.scope || "output") || "output"); } catch (e) { console.debug?.(e); } @@ -18016,7 +18093,7 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { let e = () => { try { Ue?.({ - state: s, + state: c, gridContainer: z }); } catch (e) { @@ -18033,97 +18110,97 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { } catch (e) { console.debug?.(e); } - let ct = n.loadAssets ?? oi, ut = n.loadAssetsFromList ?? si, dt = n.prepareGridForScopeSwitch ?? ci, ft = n.disposeGrid ?? li, mt = n.refreshGrid ?? ui, ht = n.captureAnchor ?? di, vt = n.restoreAnchor ?? fi, yt = n.hydrateGridFromSnapshot ?? ai; + let ct = n.loadAssets ?? li, lt = n.loadAssetsFromList ?? ui, ut = n.prepareGridForScopeSwitch ?? di, dt = n.disposeGrid ?? fi, pt = n.refreshGrid ?? pi, mt = n.captureAnchor ?? mi, ht = n.restoreAnchor ?? hi, _t = n.hydrateGridFromSnapshot ?? ci; if (typeof n?.onGridContainerReady == "function") try { - n.onGridContainerReady(z, { getState: () => s }); + n.onGridContainerReady(z, { getState: () => c }); } catch (e) { console.debug?.(e); } - else e._mjrGridContextMenuUnbind = so({ + else e._mjrGridContextMenuUnbind = uo({ gridContainer: z, - getState: () => s + getState: () => c }); - let bt = L("search.findSimilar", "Find Similar"), xt = L("search.similarDisabled", "AI features are disabled in settings"), { applyWatcherForScope: St, isAiEnabled: Ct } = w_({ + let vt = L("search.findSimilar", "Find Similar"), xt = L("search.similarDisabled", "AI features are disabled in settings"), { applyWatcherForScope: St, isAiEnabled: Ct } = k_({ container: e, - state: s, + state: c, sidebar: Ze, - browseSection: Ye, + browseSection: R, gridWrapper: Xe, similarBtn: Me, setSemanticEnabled: ze, - similarEnabledTitle: bt, + similarEnabledTitle: vt, similarDisabledTitle: xt, - refreshGridFn: mt, + refreshGridFn: pt, isSidebarOpen: m, - readActiveAssetId: f, + readActiveAssetId: p, getSidebarController: () => $e, panelLifecycleAC: r }); - Qe.appendChild(Ke), Qe.appendChild(Ae), Qe.appendChild(We), Qe.appendChild(He), Qe.appendChild(Ye), e.appendChild(h); + Qe.appendChild(Ke), Qe.appendChild(Ae), Qe.appendChild(We), Qe.appendChild(He), Qe.appendChild(R), e.appendChild(h); try { e._mjrVersionUpdateCleanup?.(); } catch (e) { console.debug?.(e); } e._mjrVersionUpdateCleanup = Be || h._mjrVersionUpdateCleanup, e.appendChild(Qe); - let Tt = () => Wg(je), Et = Gg({ + let wt = () => Yg(je), Tt = Xg({ gridContainer: z, loadAssets: ct, - loadAssetsFromList: ut, - getCollectionAssets: k, - disposeGrid: ft, - getQuery: Tt, + loadAssetsFromList: lt, + getCollectionAssets: at, + disposeGrid: dt, + getQuery: wt, searchInputEl: je, - state: s - }), Dt = null, Ot = null, kt = null, At = null, Nt = null, Pt = null, Ft = null, It = null, Lt = null, Rt = !1, Bt = (e) => !!e && String(e?.style?.display || "").toLowerCase() === "block", Vt = () => { + state: c + }), Et = null, Ot = null, kt = null, At = null, jt = null, Mt = null, Nt = null, It = null, Lt = null, Rt = !1, zt = (e) => !!e && String(e?.style?.display || "").toLowerCase() === "block", Bt = () => { let e = [ - [v, O], + [v, k], [y, de], [b, pe], - [x, he], - [S, ye], + [S, me], + [C, ye], [Me, Ne] ]; for (let [t, n] of e) try { - t?.classList?.toggle?.("mjr-popover-open", Bt(n)), t?.setAttribute?.("aria-expanded", Bt(n) ? "true" : "false"); + t?.classList?.toggle?.("mjr-popover-open", zt(n)), t?.setAttribute?.("aria-expanded", zt(n) ? "true" : "false"); } catch (e) { console.debug?.(e); } try { - C?.classList?.toggle?.("mjr-popover-open", Rt), C?.setAttribute?.("aria-expanded", Rt ? "true" : "false"); + w?.classList?.toggle?.("mjr-popover-open", Rt), w?.setAttribute?.("aria-expanded", Rt ? "true" : "false"); } catch (e) { console.debug?.(e); } - }, Ht = () => { + }, Vt = () => { try { Ot?.update?.(); } catch (e) { console.debug?.(e); } try { - Pt?.renderBreadcrumb?.(); + Mt?.renderBreadcrumb?.(); } catch (e) { console.debug?.(e); } - Vt(); + Bt(); }; - it || (It = y_({ + rt || (It = w_({ gridContainer: z, - readSelectedAssetIds: d, - readActiveAssetId: () => f(), - writeSelectedAssetIds: (e) => u("selectedAssetIds", e), - writeActiveAssetId: (e) => u("activeAssetId", e), + readSelectedAssetIds: f, + readActiveAssetId: () => p(), + writeSelectedAssetIds: (e) => d("selectedAssetIds", e), + writeActiveAssetId: (e) => d("activeAssetId", e), onSelectionChanged: () => { - rt(), Ht(); + nt(), Vt(); }, lifecycleSignal: r?.signal || null - })), Pt = Kg({ - state: s, + })), Mt = Zg({ + state: c, gridContainer: z, folderBreadcrumb: We, folderBreadcrumbController: Ge, - customSelect: T, - reloadGrid: () => Et.reloadGrid(), + customSelect: E, + reloadGrid: () => Tt.reloadGrid(), clearSelection: () => { try { z?._mjrSetSelection?.([], ""); @@ -18141,15 +18218,15 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { lifecycleSignal: r?.signal || null }); try { - Ft = Pt.bindGridFolderNavigation(); + Nt = Mt.bindGridFolderNavigation(); } catch (e) { console.debug?.(e); } let Ut = async () => { - let e = String(l("scope", s.scope || "output") || "output").toLowerCase(), t = String(l("customRootId", s.customRootId || "") || "").trim(); - if (e === "custom" && !t) kt = null, Ht(); + let e = String(u("scope", c.scope || "output") || "output").toLowerCase(), t = String(u("customRootId", c.customRootId || "") || "").trim(); + if (e === "custom" && !t) kt = null, Vt(); else try { - let n = await tt({ + let n = await a({ scope: e, customRootId: t, maxGroups: 4, @@ -18162,12 +18239,12 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { similarCount: Array.isArray(i.similar_pairs) ? i.similar_pairs.length : 0, firstGroup: Array.isArray(i.exact_groups) ? i.exact_groups[0] : null, firstPair: Array.isArray(i.similar_pairs) ? i.similar_pairs[0] : null - }, Ht(); + }, Vt(); } catch (e) { console.debug?.(e); } }, Wt = null; - T_({ + A_({ gridContainer: z, panelLifecycleAC: r, requestQueuedReload: () => { @@ -18177,7 +18254,7 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { console.debug?.(e); } Wt = setTimeout(() => { - Wt = null, an().catch((e) => { + Wt = null, rn().catch((e) => { try { console.warn("[Majoor] queuedReload failed", e); } catch (e) { @@ -18186,33 +18263,33 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { }); }, 120); }, - notifyContextChanged: Ht, - markUserInteraction: rt, - writePanelValue: u, + notifyContextChanged: Vt, + markUserInteraction: nt, + writePanelValue: d, popovers: i, collectionsPopover: pe, - gridController: Et, + gridController: Tt, registerSummaryDispose: st }); - let Gt = Zg({ - state: s, - customSelect: T, - customRemoveBtn: D, - comfyConfirm: jt, - comfyPrompt: wt, - comfyToast: F, - get: Pe, - post: me, - ENDPOINTS: p, - reloadGrid: Et.reloadGrid, + let Gt = n_({ + state: c, + customSelect: E, + customRemoveBtn: O, + comfyConfirm: Pt, + comfyPrompt: Dt, + comfyToast: x, + get: Ie, + post: he, + ENDPOINTS: I, + reloadGrid: Tt.reloadGrid, onRootChanged: async () => { try { - Pt?.resetHistory?.(); + Mt?.resetHistory?.(); } catch (e) { console.debug?.(e); } try { - await St(s.scope); + await St(c.scope); } catch (e) { console.debug?.(e); } @@ -18223,8 +18300,8 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { } } }), Kt = Gt.bind({ - customAddBtn: E, - customRemoveBtn: D + customAddBtn: D, + customRemoveBtn: O }); try { window.addEventListener("mjr:custom-roots-changed", async (e) => { @@ -18238,34 +18315,34 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { try { let e = z?._mjrGetAssets, t = z?._mjrSetSelection; if (typeof e != "function" || typeof t != "function") return; - let n = (Array.isArray(e()) ? e() : []).map((e) => String(e?.id ?? "").trim()).filter(Boolean), r = d(), i = r.filter((e) => n.includes(e)), a = r.length - i.length; + let n = (Array.isArray(e()) ? e() : []).map((e) => String(e?.id ?? "").trim()).filter(Boolean), r = f(), i = r.filter((e) => n.includes(e)), a = r.length - i.length; if (a <= 0) return; - let o = f(); - t(i, i.includes(o) ? o : i[0] || ""), F(L("toast.selectionPruned", "{count} items deselected - not visible in current view", { count: a }), "info", 2600, { noHistory: !0 }); + let o = p(); + t(i, i.includes(o) ? o : i[0] || ""), x(L("toast.selectionPruned", "{count} items deselected - not visible in current view", { count: a }), "info", 2600, { noHistory: !0 }); } catch (e) { console.debug?.(e); } }; - Dt = qg({ - state: s, + Et = Qg({ + state: c, tabButtons: g, customMenuBtn: _, - customPopover: w, + customPopover: T, popovers: i, refreshCustomRoots: Gt.refreshCustomRoots, - reloadGrid: Et.reloadGrid, + reloadGrid: Tt.reloadGrid, reconcileSelection: qt, onChanged: () => { try { - z && (z.dataset.mjrScope = String(l("scope", s.scope || "output") || "output")); + z && (z.dataset.mjrScope = String(u("scope", c.scope || "output") || "output")); } catch (e) { console.debug?.(e); } - Ht(); + Vt(); }, onScopeChanged: async () => { try { - await St(String(l("scope", s.scope || "output") || "output")); + await St(String(u("scope", c.scope || "output") || "output")); } catch (e) { console.debug?.(e); } @@ -18277,19 +18354,19 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { }, onBeforeReload: async () => { try { - z.dataset.mjrScope = l("scope", "output"), z.dataset.mjrCustomRootId = l("customRootId", "") || "", z.dataset.mjrSubfolder = l("currentFolderRelativePath", "") || "", z.dataset.mjrCollectionId = l("collectionId", "") || "", z.dataset.mjrViewScope = l("viewScope", "") || ""; + z.dataset.mjrScope = u("scope", "output"), z.dataset.mjrCustomRootId = u("customRootId", "") || "", z.dataset.mjrSubfolder = u("currentFolderRelativePath", "") || "", z.dataset.mjrCollectionId = u("collectionId", "") || "", z.dataset.mjrViewScope = u("viewScope", "") || ""; } catch (e) { console.debug?.(e); } try { - dt(z); + ut(z); } catch (e) { console.debug?.(e); } try { - await ah(R, qe, Je, { - scope: l("scope", s.scope || "output"), - customRootId: l("customRootId", s.customRootId || "") + await uh(qe, Je, Ye, { + scope: u("scope", c.scope || "output"), + customRootId: u("customRootId", c.customRootId || "") }, null, { signal: r?.signal || null }); } catch (e) { console.debug?.(e); @@ -18298,16 +18375,16 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { }); let Jt = async ({ reload: e = !1 } = {}) => { try { - if (String(l("viewScope", s.viewScope || "") || "").trim().toLowerCase() !== "similar") return; - await Dt?.clearSimilarScope?.({ reload: e }); + if (String(u("viewScope", c.viewScope || "") || "").trim().toLowerCase() !== "similar") return; + await Et?.clearSimilarScope?.({ reload: e }); } catch (e) { console.debug?.(e); } }; Object.values(g).forEach((e) => { - e.addEventListener("click", () => Dt.setScope(e.dataset.scope), { signal: r?.signal }); - }), Vg({ - messageBtn: S, + e.addEventListener("click", () => Et.setScope(e.dataset.scope), { signal: r?.signal }); + }), Kg({ + messageBtn: C, messagePopover: ye, title: ve, messageList: De, @@ -18323,161 +18400,161 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { popovers: i, signal: r?.signal, onBeforeToggle: () => { - i.close(w), i.close(O), i.close(de), i.close(pe), i.close(he); + i.close(T), i.close(k), i.close(de), i.close(pe), i.close(me); } }), i.setDismissWhitelist([ - w, - O, + T, + k, de, pe, - he, + me, ye, Ne, _, v, y, b, - x, S, + C, Me - ]), i.setOnVisibilityChanged?.(() => Vt()); + ]), i.setOnVisibilityChanged?.(() => Bt()); try { - window.addEventListener(zt, (e) => { - Rt = !!e?.detail?.open, Vt(); + window.addEventListener(Ht, (e) => { + Rt = !!e?.detail?.open, Bt(); }, { signal: r?.signal }); } catch (e) { console.debug?.(e); } - Vt(), _.addEventListener("click", (e) => { - e.stopPropagation(), i.close(O), i.close(de), i.close(pe), i.close(ye), i.close(Ne), i.toggle(w, _); + Bt(), _.addEventListener("click", (e) => { + e.stopPropagation(), i.close(k), i.close(de), i.close(pe), i.close(ye), i.close(Ne), i.toggle(T, _); }, { signal: r?.signal }), v.addEventListener("click", (e) => { - e.stopPropagation(), i.close(w), i.close(de), i.close(pe), i.close(ye), i.close(Ne), i.toggle(O, v); + e.stopPropagation(), i.close(T), i.close(de), i.close(pe), i.close(ye), i.close(Ne), i.toggle(k, v); }, { signal: r?.signal }), b.addEventListener("click", (e) => { - e.stopPropagation(), i.close(w), i.close(O), i.close(de), i.close(ye), i.close(Ne), i.toggle(pe, b); + e.stopPropagation(), i.close(T), i.close(k), i.close(de), i.close(ye), i.close(Ne), i.toggle(pe, b); }, { signal: r?.signal }); - let Yt = Ve ? null : Qg({ - state: s, + let Yt = Ve ? null : r_({ + state: c, sortBtn: y, sortMenu: fe, sortPopover: de, popovers: i, - reloadGrid: Et.reloadGrid, - onChanged: () => Ht() + reloadGrid: Tt.reloadGrid, + onChanged: () => Vt() }); Yt ? Yt.bind({ onBeforeToggle: () => { - i.close(w), i.close(O), i.close(pe), i.close(ye), i.close(Ne); + i.close(T), i.close(k), i.close(pe), i.close(ye), i.close(Ne); } }) : y.addEventListener("click", (e) => { - e.stopPropagation(), i.close(w), i.close(O), i.close(pe), i.close(ye), i.close(Ne), i.toggle(de, y); - }, { signal: r?.signal }), j_({ + e.stopPropagation(), i.close(T), i.close(k), i.close(pe), i.close(ye), i.close(Ne), i.toggle(de, y); + }, { signal: r?.signal }), I_({ similarBtn: Me, similarPopover: Ne, - similarFindBtn: Fe, - similarDuplicatesBtn: Ie, + similarFindBtn: Pe, + similarDuplicatesBtn: Fe, similarSameNodeBtn: Le, similarSameWorkflowBtn: Re, gridContainer: z, - state: s, + state: c, panelLifecycleAC: r, isAiEnabled: Ct, similarDisabledTitle: xt, - readActiveAssetId: f, - readSelectedAssetIds: d, - readPanelValue: l, - writePanelValue: u, - scopeController: Dt, + readActiveAssetId: p, + readSelectedAssetIds: f, + readPanelValue: u, + writePanelValue: d, + scopeController: Et, closePopovers: () => { - i.close(w), i.close(O), i.close(de), i.close(pe), i.close(ye), i.close(Ne); + i.close(T), i.close(k), i.close(de), i.close(pe), i.close(ye), i.close(Ne); }, closePeerPopovers: () => { - i.close(w), i.close(O), i.close(de), i.close(pe), i.close(ye), i.close(he); + i.close(T), i.close(k), i.close(de), i.close(pe), i.close(ye), i.close(me); }, popovers: i, - workflowIdInput: M, - reloadGrid: () => Et.reloadGrid(), + workflowIdInput: N, + reloadGrid: () => Tt.reloadGrid(), getDuplicatesAlert: () => kt - }), M_({ - pinnedFoldersBtn: x, + }), L_({ + pinnedFoldersBtn: S, pinnedFoldersController: ge, pinnedFoldersMenu: _e, - pinnedFoldersPopover: he, + pinnedFoldersPopover: me, popovers: i, closeOtherPopovers: () => { - i.close(w), i.close(O), i.close(de), i.close(pe), i.close(ye), i.close(Ne); + i.close(T), i.close(k), i.close(de), i.close(pe), i.close(ye), i.close(Ne); }, - state: s, + state: c, gridContainer: z, - customSelect: T, - scopeController: Dt, + customSelect: E, + scopeController: Et, customRootsController: Gt, - gridController: Et, + gridController: Tt, applyWatcherForScope: St, refreshDuplicateAlerts: Ut, - notifyContextChanged: Ht, + notifyContextChanged: Vt, panelLifecycleAC: r }); - let { agendaCalendar: Xt, disposeFilters: Zt } = K_({ - state: s, + let { agendaCalendar: Xt, disposeFilters: Zt } = Z_({ + state: c, hasVueHeaderSection: Ve, kindSelect: A, - wfCheckbox: ee, - workflowTypeSelect: j, - workflowIdInput: M, - workflowModelInput: N, + wfCheckbox: j, + workflowTypeSelect: M, + workflowIdInput: N, + workflowModelInput: ee, workflowRunsOnSelect: te, - ratingSelect: ne, - minSizeInput: P, + ratingSelect: P, + minSizeInput: ne, maxSizeInput: re, - resolutionPresetSelect: I, - minWidthInput: ie, + resolutionPresetSelect: ie, + minWidthInput: F, minHeightInput: ae, maxWidthInput: oe, maxHeightInput: se, dateRangeSelect: ce, dateExactInput: le, agendaContainer: ue, - gridController: Et, + gridController: Tt, reconcileVisibleSelection: qt, exitSimilarViewIfActive: Jt, - notifyContextChanged: Ht, + notifyContextChanged: Vt, panelLifecycleAC: r, popovers: i, - filterPopover: O - }), Qt = q_({ - state: s, - scopeController: Dt, - browserNav: Pt, - gridController: Et, + filterPopover: k + }), Qt = Q_({ + state: c, + scopeController: Et, + browserNav: Mt, + gridController: Tt, getDuplicatesAlert: () => kt, refreshDuplicateAlerts: Ut }); try { - Ot = Xg({ - state: s, + Ot = t_({ + state: c, gridContainer: z, filterBtn: v, sortBtn: y, collectionsBtn: b, searchInputEl: je, kindSelect: A, - wfCheckbox: ee, - workflowTypeSelect: j, - workflowIdInput: M, - workflowModelInput: N, + wfCheckbox: j, + workflowTypeSelect: M, + workflowIdInput: N, + workflowModelInput: ee, workflowRunsOnSelect: te, - ratingSelect: ne, - minSizeInput: P, + ratingSelect: P, + minSizeInput: ne, maxSizeInput: re, - minWidthInput: ie, + minWidthInput: F, minHeightInput: ae, maxWidthInput: oe, maxHeightInput: se, - resolutionPresetSelect: I, + resolutionPresetSelect: ie, dateRangeSelect: ce, dateExactInput: le, - scopeController: Dt, + scopeController: Et, sortController: Yt, updateSummaryBar: Ue, - reloadGrid: () => Et.reloadGrid(), + reloadGrid: () => Tt.reloadGrid(), getExtraContext: () => ({ duplicatesAlert: kt }), extraActions: Qt }); @@ -18485,17 +18562,17 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { console.debug?.(e); } try { - if (Ht(), it) st(n.bindGridHostState({ - onContextChanged: Ht, - markUserInteraction: rt + if (Vt(), rt) st(n.bindGridHostState({ + onContextChanged: Vt, + markUserInteraction: nt })); else { - let e = () => Ht(); + let e = () => Vt(); z.addEventListener("mjr:grid-stats", e, { signal: r?.signal }), window.addEventListener?.("mjr-settings-changed", e, { signal: r?.signal }); let t = null, n = null, i = () => { n && clearTimeout(n), n = setTimeout(() => { n = null, t && cancelAnimationFrame(t), t = requestAnimationFrame(() => { - t = null, Ht(); + t = null, Vt(); }); }, 250); }, a = new MutationObserver(() => i()); @@ -18525,48 +18602,48 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { } catch (e) { console.debug?.(e); } - $e = g_({ + $e = x_({ gridContainer: z, sidebar: Ze, - createRatingBadge: nn, - createTagsBadge: hn, - showAssetInSidebar: kh, - closeSidebar: Ah, - state: s + createRatingBadge: on, + createTagsBadge: vn, + showAssetInSidebar: Ph, + closeSidebar: Fh, + state: c }); let $t = { - gridController: Et, - captureAnchor: ht, - restoreAnchor: vt, - restoreGridUiState: it ? (e) => n.restoreGridUiState(e, { onRestoreSidebar: () => { + gridController: Tt, + captureAnchor: mt, + restoreAnchor: ht, + restoreGridUiState: rt ? (e) => n.restoreGridUiState(e, { onRestoreSidebar: () => { try { $e?.toggleDetails?.(); } catch (e) { console.debug?.(e); } } }) : null, - readScrollTop: () => c.read("scrollTop", s.scrollTop || 0), + readScrollTop: () => l.read("scrollTop", c.scrollTop || 0), restoreSelectionState: ({ scrollTop: e } = {}) => { It?.restoreSelectionState?.({ scrollTop: e }); }, - readActiveAssetId: f, + readActiveAssetId: p, isSidebarOpen: m, toggleSidebarDetails: () => { $e?.toggleDetails?.(); }, - getQuery: Tt, - getScope: () => c.read("scope", s.scope), + getQuery: wt, + getScope: () => l.read("scope", c.scope), loadAssets: ct, lifecycleSignal: r?.signal || null }; - Lt = typeof n?.initAssetsQueryController == "function" ? n.initAssetsQueryController($t) : S_({ + Lt = typeof n?.initAssetsQueryController == "function" ? n.initAssetsQueryController($t) : D_({ gridContainer: z, gridWrapper: Xe, ...$t }); - let en = __({ + let en = S_({ onTriggerScan: (e) => { - Zm(R, qe, Je, e || {}); + nh(qe, Je, Ye, e || {}); }, onToggleDetails: () => { $e?.toggleDetails?.(); @@ -18590,25 +18667,25 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { onClearSearch: () => { try { if (!je) return; - u("searchQuery", ""), je.value = "", je.dispatchEvent?.(new Event("input", { bubbles: !0 })); + d("searchQuery", ""), je.value = "", je.dispatchEvent?.(new Event("input", { bubbles: !0 })); } catch (e) { console.debug?.(e); } }, getScanContext: () => ({ - scope: c.read("scope", s.scope), - customRootId: c.read("customRootId", s.customRootId) + scope: l.read("scope", c.scope), + customRootId: l.read("customRootId", c.customRootId) }) - }), tn = ho({ + }), tn = vo({ gridContainer: z, - createRatingBadge: nn - }), rn = null; + createRatingBadge: on + }), nn = null; if (e._eventCleanup) try { e._eventCleanup(); } catch (e) { console.debug?.(e); } - en.bind(Qe), tn.bind(), lt("grid"); + en.bind(Qe), tn.bind(), ft("grid"); try { e._mjrHotkeys = en, e._mjrRatingHotkeys = tn, e._mjrSidebarController = $e; } catch (e) { @@ -18646,7 +18723,7 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { } catch (e) { console.debug?.(e); } - gt().scope === "grid" && lt(null); + yt().scope === "grid" && ft(null); try { Xt?.dispose?.(); } catch (e) { @@ -18658,11 +18735,11 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { console.debug?.(e); } try { - rn?.(); + nn?.(); } catch (e) { console.debug?.(e); } - rn = null; + nn = null; try { Ze?.dispose?.(); } catch (e) { @@ -18679,7 +18756,7 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { console.debug?.(e); } try { - Nt && clearTimeout(Nt), Nt = null; + jt && clearTimeout(jt), jt = null; } catch (e) { console.debug?.(e); } @@ -18716,16 +18793,16 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { console.debug?.(e); } try { - Ft?.(); + Nt?.(); } catch (e) { console.debug?.(e); } try { - z && ft(z); + z && dt(z); } catch (e) { console.debug?.(e); } - _t(z), z = null; + bt(z), z = null; try { i.dispose(); } catch (e) { @@ -18737,67 +18814,67 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { console.debug?.(e); } try { - a && o && (a.style.height = o.height, a.style.minHeight = o.minHeight, a.style.width = o.width); + o && s && (o.style.height = s.height, o.style.minHeight = s.minHeight, o.style.width = s.width); } catch (e) { console.debug?.(e); } }; - let an = async () => { + let rn = async () => { await Lt?.queuedReload?.(); }; - hh(R, qe, Ke, Je, Lt?.createCountersUpdateHandler?.({ - state: s, + bh(qe, Je, Ke, Ye, Lt?.createCountersUpdateHandler?.({ + state: c, getStableQuery: () => String(z?.dataset?.mjrQuery || "*").trim() || "*", - getRecentUserInteractionAt: () => Number(nt || 0) + getRecentUserInteractionAt: () => Number(tt || 0) }) ?? (async () => { - await an(); + await rn(); }), () => ({ - scope: c.read("scope", s.scope), - customRootId: c.read("customRootId", s.customRootId) - })), Dt.setActiveTabStyles(), Pt?.renderBreadcrumb?.(), Gt.refreshCustomRoots().catch(() => {}), rn = Lt?.bindSearchInput?.({ + scope: l.read("scope", c.scope), + customRootId: l.read("customRootId", c.customRootId) + })), Et.setActiveTabStyles(), Mt?.renderBreadcrumb?.(), Gt.refreshCustomRoots().catch(() => {}), nn = Lt?.bindSearchInput?.({ searchInputEl: je, lifecycleSignal: r?.signal || null, debounceMs: 120, onQueryChanged: () => { - Jt({ reload: !1 }), Ht(); + Jt({ reload: !1 }), Vt(); }, onBeforeReload: () => { - Jt({ reload: !1 }), Ht(); + Jt({ reload: !1 }), Vt(); }, startSearchTimer: () => { - _m("searchQuery"); + bm("searchQuery"); }, reloadGrid: () => { - Et.reloadGrid(); + Tt.reloadGrid(); } }); - let on = !1; + let an = !1; try { - on = await yt(z, { - scope: l("scope", s.scope || "output") || "output", - query: String(Wg(c.read("searchQuery", s.searchQuery || "*") || "*") || "*"), - customRootId: l("customRootId", s.customRootId || "") || "", - subfolder: l("currentFolderRelativePath", s.currentFolderRelativePath || "") || "", - collectionId: l("collectionId", s.collectionId || "") || "", - viewScope: l("viewScope", s.viewScope || "") || "", - kind: l("kindFilter", s.kindFilter || "") || "", - workflowOnly: !!l("workflowOnly", s.workflowOnly), - minRating: l("minRating", s.minRating || "") || "", - minSizeMB: l("minSizeMB", s.minSizeMB || "") || "", - maxSizeMB: l("maxSizeMB", s.maxSizeMB || "") || "", - resolutionCompare: l("resolutionCompare", s.resolutionCompare || "") || "", - minWidth: l("minWidth", s.minWidth || "") || "", - minHeight: l("minHeight", s.minHeight || "") || "", - maxWidth: l("maxWidth", s.maxWidth || "") || "", - maxHeight: l("maxHeight", s.maxHeight || "") || "", - workflowType: l("workflowType", s.workflowType || "") || "", - workflowId: l("workflowId", s.workflowId || "") || "", - workflowModel: l("workflowModelFilter", s.workflowModelFilter || "") || "", - workflowRunsOn: l("workflowRunsOnFilter", s.workflowRunsOnFilter || "") || "", - dateRange: l("dateRangeFilter", s.dateRangeFilter || "") || "", - dateExact: l("dateExactFilter", s.dateExactFilter || "") || "", - sort: l("sort", s.sort || "mtime_desc") || "mtime_desc" - }, { title: l("collectionName", s.collectionName || "") || c.read("searchQuery", s.searchQuery || "") || "Cached" }); + an = await _t(z, { + scope: u("scope", c.scope || "output") || "output", + query: String(Yg(l.read("searchQuery", c.searchQuery || "*") || "*") || "*"), + customRootId: u("customRootId", c.customRootId || "") || "", + subfolder: u("currentFolderRelativePath", c.currentFolderRelativePath || "") || "", + collectionId: u("collectionId", c.collectionId || "") || "", + viewScope: u("viewScope", c.viewScope || "") || "", + kind: u("kindFilter", c.kindFilter || "") || "", + workflowOnly: !!u("workflowOnly", c.workflowOnly), + minRating: u("minRating", c.minRating || "") || "", + minSizeMB: u("minSizeMB", c.minSizeMB || "") || "", + maxSizeMB: u("maxSizeMB", c.maxSizeMB || "") || "", + resolutionCompare: u("resolutionCompare", c.resolutionCompare || "") || "", + minWidth: u("minWidth", c.minWidth || "") || "", + minHeight: u("minHeight", c.minHeight || "") || "", + maxWidth: u("maxWidth", c.maxWidth || "") || "", + maxHeight: u("maxHeight", c.maxHeight || "") || "", + workflowType: u("workflowType", c.workflowType || "") || "", + workflowId: u("workflowId", c.workflowId || "") || "", + workflowModel: u("workflowModelFilter", c.workflowModelFilter || "") || "", + workflowRunsOn: u("workflowRunsOnFilter", c.workflowRunsOnFilter || "") || "", + dateRange: u("dateRangeFilter", c.dateRangeFilter || "") || "", + dateExact: u("dateExactFilter", c.dateExactFilter || "") || "", + sort: u("sort", c.sort || "mtime_desc") || "mtime_desc" + }, { title: u("collectionName", c.collectionName || "") || l.read("searchQuery", c.searchQuery || "") || "Cached" }); } catch (e) { console.debug?.(e); } @@ -18807,22 +18884,22 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { } catch (e) { console.debug?.(e); } - let cn = bp(), ln = !cn && (on || sn) ? Promise.resolve({ + let cn = Cp(), ln = !cn && (an || sn) ? Promise.resolve({ ok: !0, - hydrated: !!on, + hydrated: !!an, cached: !!sn - }) : Et.reloadGrid({ + }) : Tt.reloadGrid({ reason: cn ? "pending-generated-assets" : "initial-load", preserveVisibleUntilReady: !cn }); - if (on) try { + if (an) try { setTimeout(() => { try { if (r?.signal?.aborted) return; } catch (e) { console.debug?.(e); } - Et.reloadGrid().catch(() => {}); + Tt.reloadGrid().catch(() => {}); }, 200); } catch (e) { console.debug?.(e); @@ -18846,14 +18923,14 @@ async function Y_(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) { } catch (e) { console.debug?.(e); } - return Cm(vm("panelRender", "gridRender") ?? 0), { gridContainer: z }; + return Em(xm("panelRender", "gridRender") ?? 0), { gridContainer: z }; } // ui/vue/components/status/StatusSection.vue -var X_ = /* @__PURE__ */ tr({ +var tv = /* @__PURE__ */ ir({ __name: "StatusSection", setup(e, { expose: t }) { - let n = Xm({ getScanContext: null }), r = n.querySelector("#mjr-status-dot"), i = n.querySelector("#mjr-status-text"), a = n.querySelector("#mjr-status-capabilities"); - return ir(() => { + let n = th({ getScanContext: null }), r = n.querySelector("#mjr-status-dot"), i = n.querySelector("#mjr-status-text"), a = n.querySelector("#mjr-status-capabilities"); + return sr(() => { try { n?._mjrStatusPollDispose?.(); } catch {} @@ -18864,25 +18941,25 @@ var X_ = /* @__PURE__ */ tr({ capabilitiesSection: a }), (e, t) => null; } -}), Z_ = hr({ +}), nv = vr({ open: !1, initial: null, resolve: null }); -function Q_(e = {}) { - return Z_.open = !0, Z_.initial = e || {}, new Promise((e) => { - Z_.resolve = e; +function rv(e = {}) { + return nv.open = !0, nv.initial = e || {}, new Promise((e) => { + nv.resolve = e; }); } -function $_(e = null) { - let t = Z_.resolve; - Z_.open = !1, Z_.initial = null, Z_.resolve = null, t && t(e); +function iv(e = null) { + let t = nv.resolve; + nv.open = !1, nv.initial = null, nv.resolve = null, t && t(e); } // ui/vue/components/panel/SimilarSearchPopover.vue?vue&type=script&setup=true&lang.ts -var ev = { +var av = { class: "mjr-popover mjr-similar-popover", style: { display: "none" } -}, tv = { class: "mjr-menu mjr-similar-menu" }, nv = { class: "mjr-menu-item-label mjr-menu-item-label--icon" }, rv = { class: "mjr-menu-item-label mjr-menu-item-label--icon" }, iv = { class: "mjr-menu-item-label mjr-menu-item-label--icon" }, av = { class: "mjr-menu-item-label mjr-menu-item-label--icon" }, ov = /* @__PURE__ */ tr({ +}, ov = { class: "mjr-menu mjr-similar-menu" }, sv = { class: "mjr-menu-item-label mjr-menu-item-label--icon" }, cv = { class: "mjr-menu-item-label mjr-menu-item-label--icon" }, lv = { class: "mjr-menu-item-label mjr-menu-item-label--icon" }, uv = { class: "mjr-menu-item-label mjr-menu-item-label--icon" }, dv = /* @__PURE__ */ ir({ __name: "SimilarSearchPopover", setup(e, { expose: t }) { let n = Q(null), r = Q(null), i = Q(null), a = Q(null), o = (e) => e?.$el || e || null; @@ -18900,8 +18977,8 @@ var ev = { return o(a.value); } }), (e, t) => { - let o = Qn("MButton"); - return q(), Y("div", ev, [H("div", tv, [ + let o = tr("MButton"); + return q(), Y("div", av, [H("div", ov, [ U(o, { ref_key: "findSimilarBtnRef", ref: n, @@ -18911,7 +18988,7 @@ var ev = { text: "", title: Z(L)("search.findSimilarWarning", "Find similar assets. This may be heavy on very large libraries.") }, { - default: G(() => [H("span", nv, [t[0] ||= H("i", { + default: G(() => [H("span", sv, [t[0] ||= H("i", { class: "pi pi-sparkles", "aria-hidden": "true" }, null, -1), H("span", null, J(Z(L)("search.findSimilar", "Find Similar")), 1)])]), @@ -18925,7 +19002,7 @@ var ev = { severity: "secondary", text: "" }, { - default: G(() => [H("span", rv, [t[1] ||= H("i", { + default: G(() => [H("span", cv, [t[1] ||= H("i", { class: "pi pi-clone", "aria-hidden": "true" }, null, -1), H("span", null, J(Z(L)("search.findDuplicates", "Find Duplicate")), 1)])]), @@ -18940,7 +19017,7 @@ var ev = { severity: "secondary", text: "" }, { - default: G(() => [H("span", iv, [t[2] ||= H("i", { + default: G(() => [H("span", lv, [t[2] ||= H("i", { class: "pi pi-share-alt", "aria-hidden": "true" }, null, -1), H("span", null, J(Z(L)("search.generatedWithSameSaveNode", "Generated with same save node")), 1)])]), @@ -18954,7 +19031,7 @@ var ev = { severity: "secondary", text: "" }, { - default: G(() => [H("span", av, [t[3] ||= H("i", { + default: G(() => [H("span", uv, [t[3] ||= H("i", { class: "pi pi-sitemap", "aria-hidden": "true" }, null, -1), H("span", null, J(Z(L)("search.generatedFromSameWorkflow", "Generated from same workflow")), 1)])]), @@ -18963,11 +19040,11 @@ var ev = { ])]); }; } -}), sv = { class: "mjr-am-search-pill" }, cv = ["id"], lv = { class: "mjr-am-search-tools" }, uv = { class: "mjr-popover-anchor" }, dv = { class: "mjr-popover-anchor" }, fv = "Ctrl/Cmd+F, Ctrl/Cmd+K, Ctrl/Cmd+H", pv = "AND", mv = /* @__PURE__ */ tr({ +}), fv = { class: "mjr-am-search-pill" }, pv = ["id"], mv = { class: "mjr-am-search-tools" }, hv = { class: "mjr-popover-anchor" }, gv = { class: "mjr-popover-anchor" }, _v = "Ctrl/Cmd+F, Ctrl/Cmd+K, Ctrl/Cmd+H", vv = "AND", yv = /* @__PURE__ */ ir({ __name: "SearchBar", emits: ["search-change"], setup(e, { expose: t, emit: n }) { - let r = n, i = Vh(), a = Q(null), o = Q(null), s = Q(null), c = Q(null), l = Q(null), u = Q(null), d = Ae("mjr-search-autocomplete-", 8), f = (e) => e?.$el || e || null, m = () => f(o.value), h = Q(!1), g = Q(!0), _ = Q(pv), v = null, y = null, b = K(() => h.value ? L("search.semanticPlaceholder", "Describe what you're looking for...") : L("search.placeholder", "Search assets...")), x = K(() => h.value ? Gt(L("search.semanticTitle", "AI semantic search — describe your image in natural language"), fv) : Gt(L("search.title", "Search by filename, tags, or attributes (e.g. rating:5, ext:png)"), fv)), S = K(() => h.value ? { + let r = n, i = Kh(), a = Q(null), o = Q(null), s = Q(null), c = Q(null), l = Q(null), u = Q(null), d = be("mjr-search-autocomplete-", 8), f = (e) => e?.$el || e || null, p = () => f(o.value), m = Q(!1), h = Q(!0), g = Q(vv), _ = null, v = null, y = K(() => m.value ? L("search.semanticPlaceholder", "Describe what you're looking for...") : L("search.placeholder", "Search assets...")), b = K(() => m.value ? Jt(L("search.semanticTitle", "AI semantic search — describe your image in natural language"), _v) : Jt(L("search.title", "Search by filename, tags, or attributes (e.g. rating:5, ext:png)"), _v)), x = K(() => m.value ? { background: "rgba(0, 188, 212, 0.2)", borderColor: "rgba(0, 188, 212, 0.6)", color: "#00BCD4", @@ -18977,102 +19054,102 @@ var ev = { borderColor: "rgba(0, 188, 212, 0.25)", color: "rgba(0, 188, 212, 0.5)", boxShadow: "none" - }), C = () => { + }), S = () => { try { - let e = m(); + let e = p(); if (!e) return; - e.dataset.mjrSemanticMode = h.value ? "1" : "0", e.dataset.mjrMetadataMode = _.value; + e.dataset.mjrSemanticMode = m.value ? "1" : "0", e.dataset.mjrMetadataMode = g.value; } catch (e) { console.debug?.(e); } - }, w = (e = {}) => { + }, C = (e = {}) => { r("search-change", { - query: m()?.value || "", - semantic: h.value, - metadataMode: _.value, + query: p()?.value || "", + semantic: m.value, + metadataMode: g.value, ...e }); - }, T = () => { - if (g.value) { - h.value = !h.value, C(); + }, w = () => { + if (h.value) { + m.value = !m.value, S(); try { - m()?.dispatchEvent?.(new Event("input", { bubbles: !0 })); + p()?.dispatchEvent?.(new Event("input", { bubbles: !0 })); } catch (e) { console.debug?.(e); } - w({ semantic: h.value }); + C({ semantic: m.value }); } - }, E = async (e) => { + }, T = async (e) => { let t = e.target?.value || ""; - i.searchQuery = t, i.metadataSearchMode = pv, C(), w({ query: t }), await j(); - }, D = (e) => { + i.searchQuery = t, i.metadataSearchMode = vv, S(), C({ query: t }), await j(); + }, E = (e) => { let t = String(e || "").split(/\s+/); return t[t.length - 1] || ""; }; - async function O() { - return v || (y ||= Pe(p.METADATA_KEYS, { limit: 600 }).then((e) => { + async function D() { + return _ || (v ||= Ie(I.METADATA_KEYS, { limit: 600 }).then((e) => { let t = e?.data || {}; - return v = t, t; - }), y); + return _ = t, t; + }), v); } - function k(e, t) { + function O(e, t) { let n = String(e || "").match(/^(.*?)(\S*)$/); return `${n ? n[1] : ""}${t}`.trimStart(); } - function A(e, t) { - let n = D(e), r = n.replace(/^-/, ""), i = Pn(); + function k(e, t) { + let n = E(e), r = n.replace(/^-/, ""), i = Ln(); if (!r.includes(":")) { let t = r.toLowerCase(); - return Object.keys(i).filter((e) => e.startsWith(t)).slice(0, 12).map((t) => k(e, `${n.startsWith("-") ? "-" : ""}${t}:`)); + return Object.keys(i).filter((e) => e.startsWith(t)).slice(0, 12).map((t) => O(e, `${n.startsWith("-") ? "-" : ""}${t}:`)); } let [a, o = ""] = r.split(/:(.*)/s); - if (!Rn(a)) return []; + if (!Vn(a)) return []; let s = o.toLowerCase(), c = Array.isArray(t?.keys) ? t.keys : [], l = t?.workflow_nodes || {}; - return [...c, ...Object.keys(l).flatMap((e) => (l[e] || []).map((t) => `workflow_nodes.${e}.${t}`))].filter((e) => String(e || "").toLowerCase().includes(s)).slice(0, 16).map((t) => k(e, `${n.startsWith("-") ? "-" : ""}${a}:${t}`)); + return [...c, ...Object.keys(l).flatMap((e) => (l[e] || []).map((t) => `workflow_nodes.${e}.${t}`))].filter((e) => String(e || "").toLowerCase().includes(s)).slice(0, 16).map((t) => O(e, `${n.startsWith("-") ? "-" : ""}${a}:${t}`)); } - let ee = 0, j = St(async () => { - let e = (m()?.value || "").trim(); - if (h.value || e.length < 1) return; - let t = ++ee; + let A = 0, j = Tt(async () => { + let e = (p()?.value || "").trim(); + if (m.value || e.length < 1) return; + let t = ++A; try { - let n = [], r = await O(); - if (n.push(...A(e, r)), !e.includes(":") && e.length >= 2) { - let t = await Pe("/mjr/am/autocomplete", { + let n = [], r = await D(); + if (n.push(...k(e, r)), !e.includes(":") && e.length >= 2) { + let t = await Ie("/mjr/am/autocomplete", { q: e, limit: 10 }); t && t.ok && Array.isArray(t.data) && n.push(...t.data); } - if (t !== ee) return; + if (t !== A) return; s.value && (s.value.innerHTML = "", [...new Set(n)].slice(0, 18).forEach((e) => { let t = document.createElement("option"); t.value = e, s.value.appendChild(t); })); } catch {} }, 300); - return or(() => i.searchQuery, (e) => { - let t = m(); + return lr(() => i.searchQuery, (e) => { + let t = p(); t && t.value !== e && (t.value = e); - }), or(g, (e) => { - !e && h.value && (h.value = !1), C(); - }), or(h, () => { - C(); - }), or(() => i.metadataSearchMode, (e) => { - String(e || "").toUpperCase() !== pv && (i.metadataSearchMode = pv), _.value !== pv && (_.value = pv), C(); - }), Zn(() => { + }), lr(h, (e) => { + !e && m.value && (m.value = !1), S(); + }), lr(m, () => { + S(); + }), lr(() => i.metadataSearchMode, (e) => { + String(e || "").toUpperCase() !== vv && (i.metadataSearchMode = vv), g.value !== vv && (g.value = vv), S(); + }), er(() => { try { - let e = m(); - e && (e.value = i.searchQuery || ""), i.metadataSearchMode = pv; + let e = p(); + e && (e.value = i.searchQuery || ""), i.metadataSearchMode = vv; } catch (e) { console.debug?.(e); } - C(); + S(); }), t({ get searchSection() { return a.value; }, get searchInputEl() { - return m(); + return p(); }, get similarBtn() { return f(c.value); @@ -19096,15 +19173,15 @@ var ev = { return f(u.value); }, setSemanticEnabled: (e) => { - g.value = !!e, C(); + h.value = !!e, S(); } }), (e, t) => { - let n = Qn("MInputText"), r = Qn("MButton"); + let n = tr("MInputText"), r = tr("MButton"); return q(), Y("div", { ref_key: "searchSectionRef", ref: a, class: "mjr-am-search" - }, [H("div", sv, [ + }, [H("div", fv, [ t[0] ||= H("span", { class: "mjr-am-search-icon" }, [H("i", { class: "pi pi-search" })], -1), U(n, { ref_key: "searchInputRef", @@ -19112,10 +19189,10 @@ var ev = { id: "mjr-search-input", class: "mjr-input", type: "text", - placeholder: b.value, - title: x.value, + placeholder: y.value, + title: b.value, list: Z(d), - onInput: E + onInput: T }, null, 8, [ "placeholder", "title", @@ -19125,9 +19202,9 @@ var ev = { ref_key: "dataListRef", ref: s, id: Z(d) - }, null, 8, cv) - ]), H("div", lv, [ - H("div", uv, [U(r, { + }, null, 8, pv) + ]), H("div", mv, [ + H("div", hv, [U(r, { ref_key: "semanticBtnRef", ref: u, type: "button", @@ -19135,11 +19212,11 @@ var ev = { severity: "secondary", text: "", rounded: "", - disabled: !g.value, - "aria-disabled": !g.value, - title: g.value ? Z(L)("search.semanticToggle", "Toggle AI semantic search (CLIP-based)") : Z(L)("search.semanticDisabled", "AI semantic search is disabled in settings"), - style: fr(S.value), - onClick: T + disabled: !h.value, + "aria-disabled": !h.value, + title: h.value ? Z(L)("search.semanticToggle", "Toggle AI semantic search (CLIP-based)") : Z(L)("search.semanticDisabled", "AI semantic search is disabled in settings"), + style: hr(x.value), + onClick: w }, { default: G(() => [...t[1] ||= [H("i", { class: "pi pi-sparkles" }, null, -1)]]), _: 1 @@ -19149,7 +19226,7 @@ var ev = { "title", "style" ])]), - H("div", dv, [U(r, { + H("div", gv, [U(r, { ref_key: "similarBtnRef", ref: c, type: "button", @@ -19161,24 +19238,24 @@ var ev = { }, { default: G(() => [...t[2] ||= [H("i", { class: "pi pi-search" }, null, -1)]]), _: 1 - }, 8, ["title"]), U(ov, { + }, 8, ["title"]), U(dv, { ref_key: "similarPopoverRef", ref: l }, null, 512)]), - gr(e.$slots, "filter-anchor"), - gr(e.$slots, "sort-anchor"), - gr(e.$slots, "collections-anchor"), - gr(e.$slots, "pinned-folders-anchor") + yr(e.$slots, "filter-anchor"), + yr(e.$slots, "sort-anchor"), + yr(e.$slots, "collections-anchor"), + yr(e.$slots, "pinned-folders-anchor") ])], 512); }; } -}), hv = { +}), bv = { class: "mjr-popover mjr-sort-popover", style: { display: "none" } -}, gv = { class: "mjr-menu-item-label" }, _v = /* @__PURE__ */ tr({ +}, xv = { class: "mjr-menu-item-label" }, Sv = /* @__PURE__ */ ir({ __name: "SortPopover", setup(e) { - let t = Vh(), n = K(() => t.sort || "mtime_desc"), r = (e) => { + let t = Kh(), n = K(() => t.sort || "mtime_desc"), r = (e) => { t.sort = e; try { window.dispatchEvent(new CustomEvent("mjr:sort-changed", { detail: { sort: e } })); @@ -19227,33 +19304,33 @@ var ev = { command: () => r(e.key) }))); return (e, t) => { - let r = Qn("MMenu"); - return q(), Y("div", hv, [U(r, { + let r = tr("MMenu"); + return q(), Y("div", bv, [U(r, { model: i.value, class: "mjr-menu mjr-prime-menu mjr-sort-menu", pt: { list: { class: "mjr-menu mjr-prime-menu-list" } } }, { - item: G(({ item: e }) => [H("div", { class: X(["mjr-menu-item", { "is-active": n.value === e.key }]) }, [H("span", gv, J(e.label), 1), H("i", { + item: G(({ item: e }) => [H("div", { class: X(["mjr-menu-item", { "is-active": n.value === e.key }]) }, [H("span", xv, J(e.label), 1), H("i", { class: X([e.icon, "mjr-menu-item-check"]), - style: fr({ opacity: +(n.value === e.key) }) + style: hr({ opacity: +(n.value === e.key) }) }, null, 6)], 2)]), _: 1 }, 8, ["model"])]); }; } -}), vv = { class: "mjr-popover mjr-filter-popover mjr-popover--hidden" }, yv = { class: "mjr-filter-head" }, bv = { class: "mjr-filter-head-left" }, xv = { class: "mjr-filter-kicker" }, Sv = { class: "mjr-filter-subtitle" }, Cv = { class: "mjr-filter-head-actions" }, wv = { class: "mjr-filter-active-count" }, Tv = { class: "mjr-filter-group-title" }, Ev = { +}), Cv = { class: "mjr-popover mjr-filter-popover mjr-popover--hidden" }, wv = { class: "mjr-filter-head" }, Tv = { class: "mjr-filter-head-left" }, Ev = { class: "mjr-filter-kicker" }, Dv = { class: "mjr-filter-subtitle" }, Ov = { class: "mjr-filter-head-actions" }, kv = { class: "mjr-filter-active-count" }, Av = { class: "mjr-filter-group-title" }, jv = { class: "mjr-filter-group-chevron", "aria-hidden": "true" -}, Dv = { class: "mjr-filter-group-body" }, Ov = { class: "mjr-filter-card" }, kv = { class: "mjr-popover-row" }, Av = { class: "mjr-popover-label" }, jv = { class: "mjr-popover-row" }, Mv = { class: "mjr-popover-label" }, Nv = ["title"], Pv = { class: "mjr-filter-card" }, Fv = { class: "mjr-popover-row" }, Iv = { class: "mjr-popover-label" }, Lv = { class: "mjr-popover-row" }, Rv = { class: "mjr-popover-label" }, zv = { class: "mjr-popover-row" }, Bv = { class: "mjr-popover-label" }, Vv = { class: "mjr-filter-stack" }, Hv = { class: "mjr-popover-row" }, Uv = { class: "mjr-popover-label" }, Wv = { class: "mjr-popover-row" }, Gv = { class: "mjr-popover-label" }, Kv = { class: "mjr-filter-group-title" }, qv = { +}, Mv = { class: "mjr-filter-group-body" }, Nv = { class: "mjr-filter-card" }, Pv = { class: "mjr-popover-row" }, Fv = { class: "mjr-popover-label" }, Iv = { class: "mjr-popover-row" }, Lv = { class: "mjr-popover-label" }, Rv = ["title"], zv = { class: "mjr-filter-card" }, Bv = { class: "mjr-popover-row" }, Vv = { class: "mjr-popover-label" }, Hv = { class: "mjr-popover-row" }, Uv = { class: "mjr-popover-label" }, Wv = { class: "mjr-popover-row" }, Gv = { class: "mjr-popover-label" }, Kv = { class: "mjr-filter-stack" }, qv = { class: "mjr-popover-row" }, Jv = { class: "mjr-popover-label" }, Yv = { class: "mjr-popover-row" }, Xv = { class: "mjr-popover-label" }, Zv = { class: "mjr-filter-group-title" }, Qv = { class: "mjr-filter-group-chevron", "aria-hidden": "true" -}, Jv = { class: "mjr-filter-group-body" }, Yv = { class: "mjr-filter-card" }, Xv = { class: "mjr-popover-row mjr-popover-row--3col" }, Zv = { class: "mjr-popover-label" }, Qv = { class: "mjr-popover-row" }, $v = { class: "mjr-popover-label" }, ey = { class: "mjr-popover-row mjr-popover-row--3col" }, ty = { class: "mjr-popover-label" }, ny = { class: "mjr-popover-row mjr-popover-row--3col" }, ry = { class: "mjr-popover-label" }, iy = { class: "mjr-filter-group-title" }, ay = { +}, $v = { class: "mjr-filter-group-body" }, ey = { class: "mjr-filter-card" }, ty = { class: "mjr-popover-row mjr-popover-row--3col" }, ny = { class: "mjr-popover-label" }, ry = { class: "mjr-popover-row" }, iy = { class: "mjr-popover-label" }, ay = { class: "mjr-popover-row mjr-popover-row--3col" }, oy = { class: "mjr-popover-label" }, sy = { class: "mjr-popover-row mjr-popover-row--3col" }, cy = { class: "mjr-popover-label" }, ly = { class: "mjr-filter-group-title" }, uy = { class: "mjr-filter-group-chevron", "aria-hidden": "true" -}, oy = { class: "mjr-filter-group-body" }, sy = { class: "mjr-filter-card mjr-filter-card--agenda" }, cy = { class: "mjr-popover-row" }, ly = { class: "mjr-popover-label" }, uy = { class: "mjr-popover-row" }, dy = { class: "mjr-popover-label" }, fy = /* @__PURE__ */ tr({ +}, dy = { class: "mjr-filter-group-body" }, fy = { class: "mjr-filter-card mjr-filter-card--agenda" }, py = { class: "mjr-popover-row" }, my = { class: "mjr-popover-label" }, hy = { class: "mjr-popover-row" }, gy = { class: "mjr-popover-label" }, _y = /* @__PURE__ */ ir({ __name: "FilterPopover", setup(e, { expose: t }) { - let n = Vh(), r = Q(null), i = Q(null), a = Q(null), o = Q(null), s = Q(null), c = Q(null), l = Q(null), u = Q(null), d = Q(null), f = Q(null), p = Q([{ + let n = Kh(), r = Q(null), i = Q(null), a = Q(null), o = Q(null), s = Q(null), c = Q(null), l = Q(null), u = Q(null), d = Q(null), f = Q(null), p = Q([{ label: L("filter.any", "Any"), value: "" }]), m = (e) => e?.$el || e || null, h = (e) => m(e.value)?.value || "", g = (e, t) => { @@ -19449,7 +19526,7 @@ var ev = { } }, k = async () => { try { - let e = await Me(); + let e = await Ne(); if (!e?.ok) return; let t = (Array.isArray(e.data?.model_families) ? e.data.model_families : []).map((e) => ({ label: String(e?.label || e?.value || "").trim(), @@ -19463,30 +19540,30 @@ var ev = { console.debug?.(e); } }; - Zn(() => { + er(() => { k(); }); let A = (e, { emit: t = !0 } = {}) => { n.kindFilter = String(e || ""), t && O(); - }, ee = (e, { emit: t = !0 } = {}) => { - n.workflowOnly = !!e, t && O(); }, j = (e, { emit: t = !0 } = {}) => { - n.workflowType = String(e || "").trim().toUpperCase(), t && O(); + n.workflowOnly = !!e, t && O(); }, M = (e, { emit: t = !0 } = {}) => { - n.workflowId = String(e || "").trim(), t && O(); + n.workflowType = String(e || "").trim().toUpperCase(), t && O(); }, N = (e, { emit: t = !0 } = {}) => { + n.workflowId = String(e || "").trim(), t && O(); + }, ee = (e, { emit: t = !0 } = {}) => { n.workflowModelFilter = String(e || "").trim(), t && O(); }, te = (e, { emit: t = !0 } = {}) => { n.workflowRunsOnFilter = String(e || "").trim().toLowerCase(), t && O(); - }, ne = (e, { emit: t = !0 } = {}) => { + }, P = (e, { emit: t = !0 } = {}) => { n.minRating = Number(e || 0) || 0, t && O(); - }, P = () => { + }, ne = () => { let e = D(h(r) || 0), t = D(h(i) || 0); t > 0 && e > 0 && t < e && (t = e, g(i, t)), n.minSizeMB = e > 0 ? e : 0, n.maxSizeMB = t > 0 ? t : 0, O(); }, re = () => { let e = Math.max(0, Math.round(D(h(a) || 0))), t = Math.max(0, Math.round(D(h(o) || 0))), r = Math.max(0, Math.round(D(h(s) || 0))), i = Math.max(0, Math.round(D(h(c) || 0))); r > 0 && e > 0 && r < e && (r = e, g(s, r)), i > 0 && t > 0 && i < t && (i = t, g(c, i)), n.minWidth = e, n.minHeight = t, n.maxWidth = r, n.maxHeight = i, O(); - }, F = (e, { emit: t = !0 } = {}) => { + }, ie = (e, { emit: t = !0 } = {}) => { let [r, i] = { hd: [1280, 720], fhd: [1920, 1080], @@ -19494,9 +19571,9 @@ var ev = { uhd: [3840, 2160] }[String(e || "").trim()] || [0, 0]; n.minWidth = Number(r || 0), n.minHeight = Number(i || 0), n.maxWidth = 0, n.maxHeight = 0, g(a, n.minWidth || ""), g(o, n.minHeight || ""), g(s, ""), g(c, ""), t && O(); - }, I = (e, { emit: t = !0 } = {}) => { + }, F = (e, { emit: t = !0 } = {}) => { n.dateRangeFilter = String(e || ""), n.dateRangeFilter && n.dateExactFilter && (n.dateExactFilter = "", g(u, "")), t && O(); - }, ie = (e) => { + }, I = (e) => { n.dateExactFilter = String(e?.target?.value || "").trim(), n.dateExactFilter && n.dateRangeFilter && (n.dateRangeFilter = ""), O(); }, ae = (e) => { let t = String(e || "").trim().toLowerCase(); @@ -19533,28 +19610,28 @@ var ev = { setValue: A }), ue = ce({ getChecked: () => !!n.workflowOnly, - setChecked: ee + setChecked: j }), de = se({ getValue: () => String(n.workflowType || "").trim().toUpperCase(), - setValue: j + setValue: M }), fe = se({ getValue: () => String(n.workflowId || "").trim(), - setValue: M + setValue: N }), pe = se({ getValue: () => String(n.workflowModelFilter || "").trim(), - setValue: N + setValue: ee }), me = se({ getValue: () => String(n.workflowRunsOnFilter || "").trim().toLowerCase(), setValue: te }), he = se({ getValue: () => String(Number(n.minRating || 0) || 0), - setValue: ne + setValue: P }), ge = se({ getValue: () => T.value, - setValue: F + setValue: ie }), _e = se({ getValue: () => String(n.dateRangeFilter || ""), - setValue: I + setValue: F }), ve = K(() => { let e = 0; return String(n.kindFilter || "").trim() && (e += 1), n.workflowOnly && (e += 1), String(n.workflowType || "").trim() && (e += 1), String(n.workflowId || "").trim() && (e += 1), String(n.workflowModelFilter || "").trim() && (e += 1), String(n.workflowRunsOnFilter || "").trim() && (e += 1), (Number(n.minRating || 0) || 0) > 0 && (e += 1), ((Number(n.minSizeMB || 0) || 0) > 0 || (Number(n.maxSizeMB || 0) || 0) > 0) && (e += 1), ((Number(n.minWidth || 0) || 0) > 0 || (Number(n.minHeight || 0) || 0) > 0 || (Number(n.maxWidth || 0) || 0) > 0 || (Number(n.maxHeight || 0) || 0) > 0) && (e += 1), String(n.dateRangeFilter || "").trim() && (e += 1), String(n.dateExactFilter || "").trim() && (e += 1), e; @@ -19617,9 +19694,9 @@ var ev = { return l.value; } }), (e, t) => { - let p = Qn("MButton"), m = Qn("MSelect"), h = Qn("MCheckbox"), g = Qn("MInputText"); - return q(), Y("div", vv, [ - H("div", yv, [H("div", bv, [H("div", xv, J(Z(L)("label.filters", "Filters")), 1), H("div", Sv, J(Z(L)("label.refineResults", "Refine your results")), 1)]), H("div", Cv, [H("span", wv, J(ve.value), 1), U(p, { + let p = tr("MButton"), m = tr("MSelect"), h = tr("MCheckbox"), g = tr("MInputText"); + return q(), Y("div", Cv, [ + H("div", wv, [H("div", Tv, [H("div", Ev, J(Z(L)("label.filters", "Filters")), 1), H("div", Dv, J(Z(L)("label.refineResults", "Refine your results")), 1)]), H("div", Ov, [H("span", kv, J(ve.value), 1), U(p, { type: "button", class: "mjr-filter-clear-all", severity: "secondary", @@ -19627,7 +19704,7 @@ var ev = { disabled: ve.value === 0, onClick: ye }, { - default: G(() => [pr(J(Z(L)("action.clearAll", "Clear all")), 1)]), + default: G(() => [gr(J(Z(L)("action.clearAll", "Clear all")), 1)]), _: 1 }, 8, ["disabled"])])]), H("div", { class: X(["mjr-filter-group mjr-filter-group--core", { "is-open": oe("core") }]) }, [U(p, { @@ -19638,9 +19715,9 @@ var ev = { "aria-expanded": String(oe("core")), onClick: t[0] ||= (e) => ae("core") }, { - default: G(() => [H("span", Tv, J(Z(L)("group.core", "Core")), 1), H("span", Ev, J(oe("core") ? "▾" : "▸"), 1)]), + default: G(() => [H("span", Av, J(Z(L)("group.core", "Core")), 1), H("span", jv, J(oe("core") ? "▾" : "▸"), 1)]), _: 1 - }, 8, ["aria-expanded"]), Kn(H("div", Dv, [H("div", Ov, [H("div", kv, [H("div", Av, J(Z(L)("label.type")), 1), U(m, { + }, 8, ["aria-expanded"]), Yn(H("div", Mv, [H("div", Nv, [H("div", Pv, [H("div", Fv, J(Z(L)("label.type")), 1), U(m, { class: "mjr-select mjr-filter-select", "panel-class": "mjr-filter-select-panel", title: Z(L)("tooltip.filterByFileType", "Filter by file type"), @@ -19653,56 +19730,56 @@ var ev = { "title", "model-value", "options" - ])]), H("div", jv, [H("div", Mv, J(Z(L)("label.workflow")), 1), H("label", { + ])]), H("div", Iv, [H("div", Lv, J(Z(L)("label.workflow")), 1), H("label", { class: "mjr-popover-toggle", title: Z(L)("tooltip.filterWorkflowOnly", "Show only assets with embedded workflow data") }, [U(h, { class: "mjr-checkbox", "model-value": !!Z(n).workflowOnly, binary: "", - "onUpdate:modelValue": ee - }, null, 8, ["model-value"]), H("span", null, J(Z(L)("filter.onlyWithWorkflow")), 1)], 8, Nv)])]), H("div", Pv, [ - H("div", Fv, [H("div", Iv, J(Z(L)("label.workflowType", "Workflow type")), 1), U(m, { + "onUpdate:modelValue": j + }, null, 8, ["model-value"]), H("span", null, J(Z(L)("filter.onlyWithWorkflow")), 1)], 8, Rv)])]), H("div", zv, [ + H("div", Bv, [H("div", Vv, J(Z(L)("label.workflowType", "Workflow type")), 1), U(m, { class: "mjr-select mjr-filter-select", "panel-class": "mjr-filter-select-panel", "model-value": String(Z(n).workflowType || "").trim().toUpperCase(), options: y.value, "option-label": "label", "option-value": "value", - "onUpdate:modelValue": j + "onUpdate:modelValue": M }, null, 8, ["model-value", "options"])]), - H("div", Lv, [H("div", Rv, J(Z(L)("label.sameWorkflow", "Generated with Same Workflow")), 1), U(g, { + H("div", Hv, [H("div", Uv, J(Z(L)("label.sameWorkflow", "Generated with Same Workflow")), 1), U(g, { ref_key: "workflowIdInputRef", ref: d, class: "mjr-input", title: Z(L)("tooltip.filterWorkflowId", "Filter assets generated from the same embedded workflow id"), placeholder: Z(L)("placeholder.workflowId", "Workflow ID"), "model-value": String(Z(n).workflowId || ""), - "onUpdate:modelValue": M, - onChange: t[1] ||= (e) => M(e?.target?.value) + "onUpdate:modelValue": N, + onChange: t[1] ||= (e) => N(e?.target?.value) }, null, 8, [ "title", "placeholder", "model-value" ])]), - H("div", zv, [H("div", Bv, J(Z(L)("label.workflowModelFamily", "Model family")), 1), H("div", Vv, [U(m, { + H("div", Wv, [H("div", Gv, J(Z(L)("label.workflowModelFamily", "Model family")), 1), H("div", Kv, [U(m, { class: "mjr-select mjr-filter-select", "panel-class": "mjr-filter-select-panel", "model-value": String(Z(n).workflowModelFilter || ""), options: x.value, "option-label": "label", "option-value": "value", - "onUpdate:modelValue": N + "onUpdate:modelValue": ee }, null, 8, ["model-value", "options"]), U(g, { ref_key: "workflowModelInputRef", ref: f, class: "mjr-input", placeholder: Z(L)("placeholder.workflowModelFamily", "Flux, Wan, SDXL..."), "model-value": String(Z(n).workflowModelFilter || ""), - "onUpdate:modelValue": N, - onChange: t[2] ||= (e) => N(e?.target?.value) + "onUpdate:modelValue": ee, + onChange: t[2] ||= (e) => ee(e?.target?.value) }, null, 8, ["placeholder", "model-value"])])]), - H("div", Hv, [H("div", Uv, J(Z(L)("label.workflowRunsOn", "Runs on")), 1), U(m, { + H("div", qv, [H("div", Jv, J(Z(L)("label.workflowRunsOn", "Runs on")), 1), U(m, { class: "mjr-select mjr-filter-select", "panel-class": "mjr-filter-select-panel", "model-value": String(Z(n).workflowRunsOnFilter || "").trim().toLowerCase(), @@ -19711,7 +19788,7 @@ var ev = { "option-value": "value", "onUpdate:modelValue": te }, null, 8, ["model-value", "options"])]), - H("div", Wv, [H("div", Gv, J(Z(L)("label.rating")), 1), U(m, { + H("div", Yv, [H("div", Xv, J(Z(L)("label.rating")), 1), U(m, { class: "mjr-select mjr-filter-select", "panel-class": "mjr-filter-select-panel", title: Z(L)("tooltip.filterMinRating", "Filter by minimum rating"), @@ -19719,13 +19796,13 @@ var ev = { options: S.value, "option-label": "label", "option-value": "value", - "onUpdate:modelValue": ne + "onUpdate:modelValue": P }, null, 8, [ "title", "model-value", "options" ])]) - ])], 512), [[lr, oe("core")]])], 2), + ])], 512), [[fr, oe("core")]])], 2), H("div", { class: X(["mjr-filter-group mjr-filter-group--media", { "is-open": oe("media") }]) }, [U(p, { type: "button", class: "mjr-filter-group-toggle", @@ -19734,11 +19811,11 @@ var ev = { "aria-expanded": String(oe("media")), onClick: t[3] ||= (e) => ae("media") }, { - default: G(() => [H("span", Kv, J(Z(L)("group.media", "Media")), 1), H("span", qv, J(oe("media") ? "▾" : "▸"), 1)]), + default: G(() => [H("span", Zv, J(Z(L)("group.media", "Media")), 1), H("span", Qv, J(oe("media") ? "▾" : "▸"), 1)]), _: 1 - }, 8, ["aria-expanded"]), Kn(H("div", Jv, [H("div", Yv, [ - H("div", Xv, [ - H("div", Zv, J(Z(L)("label.fileSizeMB", "File size (MB)")), 1), + }, 8, ["aria-expanded"]), Yn(H("div", $v, [H("div", ey, [ + H("div", ty, [ + H("div", ny, J(Z(L)("label.fileSizeMB", "File size (MB)")), 1), U(g, { ref_key: "minSizeInputRef", ref: r, @@ -19748,7 +19825,7 @@ var ev = { class: "mjr-input", placeholder: Z(L)("label.min", "Min"), value: Z(n).minSizeMB || "", - onChange: P + onChange: ne }, null, 8, ["placeholder", "value"]), U(g, { ref_key: "maxSizeInputRef", @@ -19759,20 +19836,20 @@ var ev = { class: "mjr-input", placeholder: Z(L)("label.max", "Max"), value: Z(n).maxSizeMB || "", - onChange: P + onChange: ne }, null, 8, ["placeholder", "value"]) ]), - H("div", Qv, [H("div", $v, J(Z(L)("label.resolutionPx", "Resolution (px)")), 1), U(m, { + H("div", ry, [H("div", iy, J(Z(L)("label.resolutionPx", "Resolution (px)")), 1), U(m, { class: "mjr-select mjr-filter-select", "panel-class": "mjr-filter-select-panel", "model-value": T.value, options: C.value, "option-label": "label", "option-value": "value", - "onUpdate:modelValue": F + "onUpdate:modelValue": ie }, null, 8, ["model-value", "options"])]), - H("div", ey, [ - H("div", ty, J(Z(L)("label.resolutionMinWxH", "Min WxH (px)")), 1), + H("div", ay, [ + H("div", oy, J(Z(L)("label.resolutionMinWxH", "Min WxH (px)")), 1), U(g, { ref_key: "minWidthInputRef", ref: a, @@ -19806,8 +19883,8 @@ var ev = { "value" ]) ]), - H("div", ny, [ - H("div", ry, J(Z(L)("label.resolutionMaxWxH", "Max WxH (px)")), 1), + H("div", sy, [ + H("div", cy, J(Z(L)("label.resolutionMaxWxH", "Max WxH (px)")), 1), U(g, { ref_key: "maxWidthInputRef", ref: s, @@ -19841,7 +19918,7 @@ var ev = { "value" ]) ]) - ])], 512), [[lr, oe("media")]])], 2), + ])], 512), [[fr, oe("media")]])], 2), H("div", { class: X(["mjr-filter-group mjr-filter-group--time", { "is-open": oe("time") }]) }, [U(p, { type: "button", class: "mjr-filter-group-toggle", @@ -19850,9 +19927,9 @@ var ev = { "aria-expanded": String(oe("time")), onClick: t[4] ||= (e) => ae("time") }, { - default: G(() => [H("span", iy, J(Z(L)("group.time", "Time")), 1), H("span", ay, J(oe("time") ? "▾" : "▸"), 1)]), + default: G(() => [H("span", ly, J(Z(L)("group.time", "Time")), 1), H("span", uy, J(oe("time") ? "▾" : "▸"), 1)]), _: 1 - }, 8, ["aria-expanded"]), Kn(H("div", oy, [H("div", sy, [H("div", cy, [H("div", ly, J(Z(L)("label.dateRange")), 1), U(m, { + }, 8, ["aria-expanded"]), Yn(H("div", dy, [H("div", fy, [H("div", py, [H("div", my, J(Z(L)("label.dateRange")), 1), U(m, { class: "mjr-select mjr-filter-select", "panel-class": "mjr-filter-select-panel", title: Z(L)("tooltip.filterByDateRange", "Filter by date range"), @@ -19860,12 +19937,12 @@ var ev = { options: w.value, "option-label": "label", "option-value": "value", - "onUpdate:modelValue": I + "onUpdate:modelValue": F }, null, 8, [ "title", "model-value", "options" - ])]), H("div", uy, [H("div", dy, J(Z(L)("label.agenda")), 1), H("div", { + ])]), H("div", hy, [H("div", gy, J(Z(L)("label.agenda")), 1), H("div", { ref_key: "agendaContainerRef", ref: l, class: "mjr-agenda-container" @@ -19875,12 +19952,12 @@ var ev = { type: "date", class: X(["mjr-input mjr-agenda-input", E.value]), value: Z(n).dateExactFilter, - onChange: ie - }, null, 8, ["class", "value"])], 512)])])], 512), [[lr, oe("time")]])], 2) + onChange: I + }, null, 8, ["class", "value"])], 512)])])], 512), [[fr, oe("time")]])], 2) ]); }; } -}), py = 128, my = Object.freeze([ +}), vy = 128, yy = Object.freeze([ { key: "portraits", label: "Portraits", @@ -19918,10 +19995,10 @@ var ev = { iconClass: "pi pi-circle" } ]); -function hy(e) { +function by(e) { try { let t = String(e ?? "").trim(); - if (!t || t.length > py || t.includes("\0")) return ""; + if (!t || t.length > vy || t.includes("\0")) return ""; for (let e = 0; e < t.length; e += 1) { let n = t.charCodeAt(e); if (n <= 31 || n === 127) return ""; @@ -19931,7 +20008,7 @@ function hy(e) { return ""; } } -function gy(e) { +function xy(e) { if (!e || typeof e != "object") return null; let t = String(e.filepath || "").trim(); return t ? { @@ -19943,10 +20020,10 @@ function gy(e) { root_id: String(e.root_id || e.rootId || e.custom_root_id || "").trim() || void 0 } : null; } -function _y(e) { +function Sy(e) { let t = [], n = [], r = /* @__PURE__ */ new Set(); for (let i of Array.isArray(e) ? e : []) { - let e = gy(i); + let e = xy(i); if (e?.filepath) { let n = e.filepath.toLowerCase(); if (r.has(n)) continue; @@ -19961,7 +20038,7 @@ function _y(e) { missingIds: n }; } -async function vy(e) { +async function Cy(e) { let t = Array.from(new Set((Array.isArray(e) ? e : []).map((e) => Number(e)).filter((e) => Number.isFinite(e) && e > 0))); if (!t.length) return { ok: !0, @@ -19972,13 +20049,13 @@ async function vy(e) { ok: !1, error: String(n?.error || "Failed to fetch assets") }; - let { assets: r } = _y(Array.isArray(n?.data) ? n.data : Array.isArray(n?.data?.assets) ? n.data.assets : []); + let { assets: r } = Sy(Array.isArray(n?.data) ? n.data : Array.isArray(n?.data?.assets) ? n.data.assets : []); return { ok: !0, data: r }; } -function yy(e) { +function wy(e) { let t = String(e?.label || "").trim(); if (t && !/^group\b/i.test(t)) return t; let n = (Array.isArray(e?.dominant_tags) ? e.dominant_tags : []).map((e) => String(e || "").trim()).filter(Boolean); @@ -19996,43 +20073,43 @@ function yy(e) { let s = Object.entries(o).sort((e, t) => t[1] - e[1])[0]?.[0] || "other", c = s === "image" ? "Images" : s === "video" ? "Videos" : s === "audio" ? "Audio" : "Media", l = Number(e?.cluster_id), u = Number.isFinite(l) ? ` ${l + 1}` : ""; return a ? `${a} - ${c}` : `${c} Cluster${u}`; } -function by() { +function Ty() { try { - return !!(Mt()?.ai?.vectorSearchEnabled ?? !0); + return !!(Ft()?.ai?.vectorSearchEnabled ?? !0); } catch { return !0; } } // ui/vue/components/panel/CollectionsPopover.vue?vue&type=script&setup=true&lang.ts -var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-item-label" }, Cy = { class: "mjr-menu-item-label" }, wy = { class: "mjr-menu-item-right" }, Ty = { +var Ey = { class: "mjr-menu mjr-collections-menu" }, Dy = { class: "mjr-menu-item-label" }, Oy = { class: "mjr-menu-item-label" }, ky = { class: "mjr-menu-item-right" }, Ay = { key: 0, class: "mjr-menu-item-hint" -}, Ey = { +}, jy = { key: 1, class: "mjr-muted" -}, Dy = { +}, My = { key: 2, class: "mjr-state-block is-error" -}, Oy = { +}, Ny = { key: 3, class: "mjr-muted" -}, ky = { class: "mjr-collection-row" }, Ay = { class: "mjr-menu-item-label" }, jy = { class: "mjr-menu-item-right" }, My = { +}, Py = { class: "mjr-collection-row" }, Fy = { class: "mjr-menu-item-label" }, Iy = { class: "mjr-menu-item-right" }, Ly = { key: 0, class: "mjr-menu-item-hint" -}, Ny = { class: "mjr-state-block" }, Py = { class: "mjr-section-title mjr-section-title--cyan" }, Fy = { class: "mjr-section-hint" }, Iy = { class: "mjr-menu-item-label mjr-menu-item-label--icon" }, Ly = { class: "mjr-section-title mjr-section-title--violet" }, Ry = { class: "mjr-section-hint" }, zy = { class: "mjr-menu-item-label mjr-menu-item-label--icon" }, By = { +}, Ry = { class: "mjr-state-block" }, zy = { class: "mjr-section-title mjr-section-title--cyan" }, By = { class: "mjr-section-hint" }, Vy = { class: "mjr-menu-item-label mjr-menu-item-label--icon" }, Hy = { class: "mjr-section-title mjr-section-title--violet" }, Uy = { class: "mjr-section-hint" }, Wy = { class: "mjr-menu-item-label mjr-menu-item-label--icon" }, Gy = { key: 0, class: "mjr-state-block is-error" -}, Vy = { class: "mjr-cluster-thumbs" }, Hy = ["src", "alt"], Uy = { class: "mjr-cluster-info" }, Wy = ["title"], Gy = { class: "mjr-cluster-count" }, Ky = "mjr:collections-changed", qy = /* @__PURE__ */ tr({ +}, Ky = { class: "mjr-cluster-thumbs" }, qy = ["src", "alt"], Jy = { class: "mjr-cluster-info" }, Yy = ["title"], Xy = { class: "mjr-cluster-count" }, Zy = "mjr:collections-changed", Qy = /* @__PURE__ */ ir({ __name: "CollectionsPopover", setup(e, { expose: t }) { - let n = Vh(), i = Q(null), a = Q([]), s = Q(!1), c = Q(""), l = Q(!1), u = Q(!0), d = Q(!1), f = Q(!1), p = Q(!1), m = Q([]), h = Q(""), g = Q(""), _ = 0, y = null, b = !1, x = K(() => String(n.collectionId || "").trim()), C = K(() => String(n.collectionName || "").trim()), w = K(() => !!x.value), T = K(() => !u.value || f.value), E = K(() => u.value && d.value), D = K(() => `${Math.max(1, Math.min(a.value.length, 6)) * 48}px`); - function O() { - let e = i.value; + let n = Kh(), r = Q(null), i = Q([]), a = Q(!1), o = Q(""), s = Q(!1), c = Q(!0), l = Q(!1), u = Q(!1), f = Q(!1), p = Q([]), h = Q(""), g = Q(""), _ = 0, v = null, y = !1, b = K(() => String(n.collectionId || "").trim()), S = K(() => String(n.collectionName || "").trim()), C = K(() => !!b.value), T = K(() => !c.value || u.value), E = K(() => c.value && l.value), D = K(() => `${Math.max(1, Math.min(i.value.length, 6)) * 48}px`); + function k() { + let e = r.value; return !!e && String(e.style.display || "").toLowerCase() !== "none"; } - function k({ collectionId: e = x.value, collectionName: t = C.value, close: n = !0, reload: r = !0 } = {}) { + function A({ collectionId: e = b.value, collectionName: t = S.value, close: n = !0, reload: r = !0 } = {}) { try { - window.dispatchEvent(new CustomEvent(Ky, { detail: { + window.dispatchEvent(new CustomEvent(Zy, { detail: { collectionId: String(e || ""), collectionName: String(t || ""), close: n !== !1, @@ -20042,21 +20119,21 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite console.debug?.(e); } } - function A(e) { + function j(e) { try { - return ae(e) || ""; + return le(e) || ""; } catch (e) { return console.debug?.(e), ""; } } - async function ee() { - if (!by()) return { + async function M() { + if (!Ty()) return { enabled: !1, vectorAvailable: !1, vectorDisabled: !1 }; try { - let e = await r(), t = !e?.ok && (String(e?.code || "").toUpperCase() === "SERVICE_UNAVAILABLE" || /vector search is not enabled/i.test(String(e?.error || ""))); + let e = await m(), t = !e?.ok && (String(e?.code || "").toUpperCase() === "SERVICE_UNAVAILABLE" || /vector search is not enabled/i.test(String(e?.error || ""))); return { enabled: !0, vectorAvailable: !!(e?.ok && e?.data?.total > 0), @@ -20070,7 +20147,7 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite }; } } - function j(...e) { + function N(...e) { let t = [], n = /* @__PURE__ */ new Set(); for (let r of e) for (let e of Array.isArray(r) ? r : []) { let r = String(e?.filepath || "").trim().toLowerCase(); @@ -20078,21 +20155,21 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite } return t; } - async function M() { + async function ee() { let e = ++_; - s.value = !0, l.value = !0, c.value = "", h.value = ""; + a.value = !0, s.value = !0, o.value = "", h.value = ""; try { - let [t, n] = await Promise.all([Ee(), ee()]); + let [t, n] = await Promise.all([Re(), M()]); if (e !== _) return; - t?.ok ? a.value = Array.isArray(t?.data) ? t.data : [] : (c.value = String(t?.error || L("msg.failedLoadCollections", "Failed to load collections")), a.value = []), u.value = !!n.enabled, d.value = !!n.vectorAvailable, f.value = !!n.vectorDisabled, d.value || (m.value = [], p.value = !1); + t?.ok ? i.value = Array.isArray(t?.data) ? t.data : [] : (o.value = String(t?.error || L("msg.failedLoadCollections", "Failed to load collections")), i.value = []), c.value = !!n.enabled, l.value = !!n.vectorAvailable, u.value = !!n.vectorDisabled, l.value || (p.value = [], f.value = !1); } catch (t) { if (e !== _) return; - console.debug?.(t), c.value = L("msg.failedLoadCollections", "Failed to load collections"), a.value = []; + console.debug?.(t), o.value = L("msg.failedLoadCollections", "Failed to load collections"), i.value = []; } finally { - e === _ && (s.value = !1, l.value = !1); + e === _ && (a.value = !1, s.value = !1); } } - function N(e, t) { + function te(e, t) { return async (...n) => { if (!g.value) { g.value = e; @@ -20104,74 +20181,74 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite } }; } - let te = N("create", async () => { - let e = await wt(L("dialog.createCollection", "Create collection"), L("dialog.collectionPlaceholder", "Collection name")); + let P = te("create", async () => { + let e = await Dt(L("dialog.createCollection", "Create collection"), L("dialog.collectionPlaceholder", "Collection name")); if (!e) return; - let t = hy(e); + let t = by(e); if (!t) { - F(L("toast.invalidCollectionName", "Invalid collection name"), "error"); + x(L("toast.invalidCollectionName", "Invalid collection name"), "error"); return; } - let n = await v(t); - n?.ok ? k({ + let n = await w(t); + n?.ok ? A({ collectionId: String(n?.data?.id || ""), collectionName: String(n?.data?.name || t) - }) : F(n?.error || L("toast.failedCreateCollection", "Failed to create collection"), "error"); - }), ne = N("exit", async () => { - k({ + }) : x(n?.error || L("toast.failedCreateCollection", "Failed to create collection"), "error"); + }), re = te("exit", async () => { + A({ collectionId: "", collectionName: "" }); - }), re = N("open", async (e) => { + }), F = te("open", async (e) => { let t = String(e?.id || ""), n = String(e?.name || t); - t && (t === x.value ? k({ + t && (t === b.value ? A({ collectionId: t, collectionName: n, reload: !1 - }) : k({ + }) : A({ collectionId: t, collectionName: n })); - }), I = N("delete", async (e) => { + }), I = te("delete", async (e) => { let t = String(e?.id || ""), n = String(e?.name || t); - if (!t || !await jt(L("dialog.deleteCollection", "Delete collection \"{name}\"?", { name: n }))) return; - let r = await o(t); - r?.ok ? t === x.value ? k({ + if (!t || !await Pt(L("dialog.deleteCollection", "Delete collection \"{name}\"?", { name: n }))) return; + let r = await d(t); + r?.ok ? t === b.value ? A({ collectionId: "", collectionName: "" - }) : await M() : F(r?.error || L("toast.failedDeleteCollection", "Failed to delete collection"), "error"); + }) : await ee() : x(r?.error || L("toast.failedDeleteCollection", "Failed to delete collection"), "error"); }); - async function ie(e) { + async function ae(e) { let t = String(e?.label || "").trim(); if (!t) return; - let n = await v(t); + let n = await w(t); if (!n?.ok) { - F(n?.error || L("toast.failedCreateSmartCollection", "Failed to create smart collection"), "error"); + x(n?.error || L("toast.failedCreateSmartCollection", "Failed to create smart collection"), "error"); return; } let r = String(n?.data?.id || ""); if (!r) return; - let i = await rt(String(e?.query || ""), 50); + let i = await ie(String(e?.query || ""), 50); if (i?.ok && Array.isArray(i?.data) && i.data.length > 0) { - let e = _y(i.data), n = e.assets; + let e = Sy(i.data), n = e.assets; if (e.missingIds.length) { - let t = await vy(e.missingIds); - t.ok && Array.isArray(t.data) && (n = j(n, t.data)); + let t = await Cy(e.missingIds); + t.ok && Array.isArray(t.data) && (n = N(n, t.data)); } if (n.length) { - let e = await S(r, n); + let e = await O(r, n); if (!e?.ok) { - F(e?.error || L("toast.failedAddAssetsToSmartCollection", "Failed to add assets to smart collection"), "error"); + x(e?.error || L("toast.failedAddAssetsToSmartCollection", "Failed to add assets to smart collection"), "error"); return; } let i = Number(e?.data?.added || n.length || 0); - F(L("toast.smartCollectionCreated", "Smart collection \"{name}\" created with {count} assets!", { + x(L("toast.smartCollectionCreated", "Smart collection \"{name}\" created with {count} assets!", { name: t, count: i }), "success", 3e3); - } else F(L("toast.smartCollectionEmpty", "Collection \"{name}\" created but no matching assets found. Index more assets first.", { name: t }), "info", 3e3); - } else F(L("toast.smartCollectionEmpty", "Collection \"{name}\" created but no matching assets found. Index more assets first.", { name: t }), "info", 3e3); - k({ + } else x(L("toast.smartCollectionEmpty", "Collection \"{name}\" created but no matching assets found. Index more assets first.", { name: t }), "info", 3e3); + } else x(L("toast.smartCollectionEmpty", "Collection \"{name}\" created but no matching assets found. Index more assets first.", { name: t }), "info", 3e3); + A({ collectionId: r, collectionName: t }); @@ -20182,31 +20259,31 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite if (!g.value) { g.value = t; try { - await ie(e); + await ae(e); } catch (e) { - console.error("[Majoor] Smart collection creation failed:", e), F(L("toast.failedCreateSmartCollection", "Failed to create smart collection"), "error"); + console.error("[Majoor] Smart collection creation failed:", e), x(L("toast.failedCreateSmartCollection", "Failed to create smart collection"), "error"); } finally { g.value === t && (g.value = ""); } } } async function se() { - if (!(p.value || g.value)) { - p.value = !0, h.value = "", m.value = []; + if (!(f.value || g.value)) { + f.value = !0, h.value = "", p.value = []; try { - let e = await P(8); + let e = await ne(8); if (!e?.ok || !Array.isArray(e?.data) || !e.data.length) { - F(L("toast.noGroupsFoundIndexFirst", "No groups found. Index more assets first."), "info", 3e3); + x(L("toast.noGroupsFoundIndexFirst", "No groups found. Index more assets first."), "info", 3e3); return; } - m.value = e.data.map((e) => ({ + p.value = e.data.map((e) => ({ ...e, - _label: yy(e) + _label: wy(e) })); } catch (e) { - console.error("[Majoor] Discover groups failed:", e), h.value = L("toast.clusterAnalysisFailed", "Cluster analysis failed"), F(L("toast.clusterAnalysisFailed", "Cluster analysis failed"), "error"); + console.error("[Majoor] Discover groups failed:", e), h.value = L("toast.clusterAnalysisFailed", "Cluster analysis failed"), x(L("toast.clusterAnalysisFailed", "Cluster analysis failed"), "error"); } finally { - p.value = !1; + f.value = !1; } } } @@ -20215,107 +20292,107 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite if (!g.value) { g.value = t; try { - let t = String(e?._label || yy(e) || "").trim(); + let t = String(e?._label || wy(e) || "").trim(); if (!t) return; - let n = await v(t); + let n = await w(t); if (!n?.ok) { - F(n?.error || L("toast.failedCreateCollection", "Failed to create collection"), "error"); + x(n?.error || L("toast.failedCreateCollection", "Failed to create collection"), "error"); return; } let r = String(n?.data?.id || ""), i = Array.isArray(e?.all_asset_ids) ? e.all_asset_ids : []; if (r && i.length) { - let e = await vy(i); + let e = await Cy(i); if (!e.ok) { - F(e.error || L("toast.failedLoadClusterAssets", "Failed to load cluster assets"), "error"); + x(e.error || L("toast.failedLoadClusterAssets", "Failed to load cluster assets"), "error"); return; } - let n = await S(r, e.data || []); + let n = await O(r, e.data || []); if (!n?.ok) { - F(n?.error || L("toast.failedAddAssetsToCollection", "Failed to add assets to collection"), "error"); + x(n?.error || L("toast.failedAddAssetsToCollection", "Failed to add assets to collection"), "error"); return; } let a = Number(n?.data?.added || e.data?.length || 0); - F(L("toast.collectionCreatedWithAssets", "Collection \"{name}\" created with {count} assets!", { + x(L("toast.collectionCreatedWithAssets", "Collection \"{name}\" created with {count} assets!", { name: t, count: a }), "success", 3e3); - } else F(L("toast.collectionCreatedNamed", "Collection \"{name}\" created.", { name: t }), "success", 2200); - k({ + } else x(L("toast.collectionCreatedNamed", "Collection \"{name}\" created.", { name: t }), "success", 2200); + A({ collectionId: r, collectionName: t }); } catch (e) { - console.error("[Majoor] Cluster collection creation failed:", e), F(L("toast.failedCreateCollection", "Failed to create collection"), "error"); + console.error("[Majoor] Cluster collection creation failed:", e), x(L("toast.failedCreateCollection", "Failed to create collection"), "error"); } finally { g.value === t && (g.value = ""); } } } - function le() { - let e = O(); - e && !b && M().catch(() => {}), b = e; + function ue() { + let e = k(); + e && !y && ee().catch(() => {}), y = e; } - return Zn(() => { - le(), typeof MutationObserver < "u" && i.value && (y = new MutationObserver(() => le()), y.observe(i.value, { + return er(() => { + ue(), typeof MutationObserver < "u" && r.value && (v = new MutationObserver(() => ue()), v.observe(r.value, { attributes: !0, attributeFilter: ["style"] })); - }), ir(() => { + }), sr(() => { try { - y?.disconnect?.(); + v?.disconnect?.(); } catch (e) { console.debug?.(e); } - y = null; - }), t({ refresh: M }), (e, t) => { - let n = Qn("MButton"), r = Qn("MVirtualScroller"); + v = null; + }), t({ refresh: ee }), (e, t) => { + let n = tr("MButton"), l = tr("MVirtualScroller"); return q(), Y("div", { ref_key: "rootRef", - ref: i, + ref: r, class: "mjr-popover mjr-collections-popover", style: { display: "none" } - }, [H("div", xy, [ + }, [H("div", Ey, [ U(n, { type: "button", class: "mjr-menu-item", severity: "secondary", text: "", disabled: g.value !== "", - onClick: Z(te) + onClick: Z(P) }, { - default: G(() => [H("span", Sy, J(Z(L)("ctx.createCollection", "Create collection")), 1), t[0] ||= H("i", { class: "pi pi-plus mjr-menu-item-check mjr-menu-item-check--visible" }, null, -1)]), + default: G(() => [H("span", Dy, J(Z(L)("ctx.createCollection", "Create collection")), 1), t[0] ||= H("i", { class: "pi pi-plus mjr-menu-item-check mjr-menu-item-check--visible" }, null, -1)]), _: 1 }, 8, ["disabled", "onClick"]), - w.value ? (q(), Jn(n, { + C.value ? (q(), Zn(n, { key: 0, type: "button", class: "mjr-menu-item", severity: "secondary", text: "", disabled: g.value !== "", - onClick: Z(ne) + onClick: Z(re) }, { - default: G(() => [H("span", Cy, J(Z(L)("ctx.exitCollection", "Exit collection")), 1), H("span", wy, [C.value ? (q(), Y("span", Ty, J(C.value), 1)) : W("", !0), t[1] ||= H("i", { class: "pi pi-times mjr-menu-item-check mjr-menu-item-check--visible" }, null, -1)])]), + default: G(() => [H("span", Oy, J(Z(L)("ctx.exitCollection", "Exit collection")), 1), H("span", ky, [S.value ? (q(), Y("span", Ay, J(S.value), 1)) : W("", !0), t[1] ||= H("i", { class: "pi pi-times mjr-menu-item-check mjr-menu-item-check--visible" }, null, -1)])]), _: 1 }, 8, ["disabled", "onClick"])) : W("", !0), t[9] ||= H("div", { class: "mjr-menu-divider" }, null, -1), - s.value ? (q(), Y("div", Ey, J(Z(L)("label.loading", "Loading...")), 1)) : c.value ? (q(), Y("div", Dy, J(c.value), 1)) : a.value.length ? (q(), Jn(r, { + a.value ? (q(), Y("div", jy, J(Z(L)("label.loading", "Loading...")), 1)) : o.value ? (q(), Y("div", My, J(o.value), 1)) : i.value.length ? (q(), Zn(l, { key: 4, - items: a.value, + items: i.value, "item-size": 48, "scroll-height": D.value, "num-tolerated-items": 4, class: "mjr-collections-virtual-list" }, { - item: G(({ item: e }) => [H("div", ky, [U(n, { + item: G(({ item: e }) => [H("div", Py, [U(n, { type: "button", - class: X(["mjr-menu-item", { "is-active": x.value === String(e.id || "") }]), + class: X(["mjr-menu-item", { "is-active": b.value === String(e.id || "") }]), severity: "secondary", text: "", disabled: g.value !== "", - onClick: (t) => Z(re)(e) + onClick: (t) => Z(F)(e) }, { - default: G(() => [H("span", Ay, J(e.name || e.id), 1), H("span", jy, [Number(e.count || 0) ? (q(), Y("span", My, J(Number(e.count || 0)), 1)) : W("", !0), t[2] ||= H("i", { class: "pi pi-check mjr-menu-item-check" }, null, -1)])]), + default: G(() => [H("span", Fy, J(e.name || e.id), 1), H("span", Iy, [Number(e.count || 0) ? (q(), Y("span", Ly, J(Number(e.count || 0)), 1)) : W("", !0), t[2] ||= H("i", { class: "pi pi-check mjr-menu-item-check" }, null, -1)])]), _: 2 }, 1032, [ "class", @@ -20328,7 +20405,7 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite text: "", disabled: g.value !== "", title: Z(L)("tooltip.deleteCollection", "Delete collection"), - onClick: rr((t) => Z(I)(e), ["stop", "prevent"]) + onClick: or((t) => Z(I)(e), ["stop", "prevent"]) }, { default: G(() => [...t[3] ||= [H("i", { class: "pi pi-trash" }, null, -1)]]), _: 1 @@ -20338,13 +20415,13 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite "onClick" ])])]), _: 1 - }, 8, ["items", "scroll-height"])) : (q(), Y("div", Oy, J(Z(L)("msg.noCollections", "No collections yet")), 1)), - !l.value && T.value ? (q(), Y(V, { key: 5 }, [t[4] ||= H("div", { class: "mjr-menu-divider" }, null, -1), H("div", Ny, J(u.value ? "AI Smart Collections are disabled (enable vector search env var)." : "AI Smart Collections are disabled in settings."), 1)], 64)) : W("", !0), - !l.value && E.value ? (q(), Y(V, { key: 6 }, [ + }, 8, ["items", "scroll-height"])) : (q(), Y("div", Ny, J(Z(L)("msg.noCollections", "No collections yet")), 1)), + !s.value && T.value ? (q(), Y(V, { key: 5 }, [t[4] ||= H("div", { class: "mjr-menu-divider" }, null, -1), H("div", Ry, J(c.value ? "AI Smart Collections are disabled (enable vector search env var)." : "AI Smart Collections are disabled in settings."), 1)], 64)) : W("", !0), + !s.value && E.value ? (q(), Y(V, { key: 6 }, [ t[7] ||= H("div", { class: "mjr-menu-divider" }, null, -1), - H("div", Py, J(Z(L)("label.smartSuggestions", "Smart Suggestions")), 1), - H("div", Fy, J(Z(L)("label.smartCollectionsHint", "Create collections from AI-detected themes")), 1), - (q(!0), Y(V, null, $n(Z(my), (e) => (q(), Jn(n, { + H("div", zy, J(Z(L)("label.smartSuggestions", "Smart Suggestions")), 1), + H("div", By, J(Z(L)("label.smartCollectionsHint", "Create collections from AI-detected themes")), 1), + (q(!0), Y(V, null, nr(Z(yy), (e) => (q(), Zn(n, { key: e.key, type: "button", class: "mjr-menu-item mjr-menu-item--smart", @@ -20353,39 +20430,39 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite disabled: g.value !== "", onClick: (t) => oe(e) }, { - default: G(() => [H("span", Iy, [H("i", { class: X(e.iconClass) }, null, 2), H("span", null, J(e.label), 1)]), t[5] ||= H("i", { class: "pi pi-plus mjr-menu-item-check mjr-menu-item-check--visible" }, null, -1)]), + default: G(() => [H("span", Vy, [H("i", { class: X(e.iconClass) }, null, 2), H("span", null, J(e.label), 1)]), t[5] ||= H("i", { class: "pi pi-plus mjr-menu-item-check mjr-menu-item-check--visible" }, null, -1)]), _: 2 }, 1032, ["disabled", "onClick"]))), 128)), t[8] ||= H("div", { class: "mjr-menu-divider" }, null, -1), - H("div", Ly, J(Z(L)("label.discoverGroups", "Discover Groups")), 1), - H("div", Ry, J(Z(L)("label.discoverGroupsHint", "AI clusters assets by visual similarity")), 1), + H("div", Hy, J(Z(L)("label.discoverGroups", "Discover Groups")), 1), + H("div", Uy, J(Z(L)("label.discoverGroupsHint", "AI clusters assets by visual similarity")), 1), U(n, { type: "button", class: "mjr-menu-item mjr-menu-item--cluster", severity: "secondary", text: "", - disabled: p.value || g.value !== "", + disabled: f.value || g.value !== "", onClick: se }, { - default: G(() => [H("span", zy, [t[6] ||= H("i", { class: "pi pi-search" }, null, -1), H("span", null, J(p.value ? Z(L)("label.analyzing", "Analyzing...") : Z(L)("label.analyzeLibrary", "Analyze library")), 1)])]), + default: G(() => [H("span", Wy, [t[6] ||= H("i", { class: "pi pi-search" }, null, -1), H("span", null, J(f.value ? Z(L)("label.analyzing", "Analyzing...") : Z(L)("label.analyzeLibrary", "Analyze library")), 1)])]), _: 1 }, 8, ["disabled"]), - h.value ? (q(), Y("div", By, J(h.value), 1)) : W("", !0), - (q(!0), Y(V, null, $n(m.value, (e) => (q(), Y("div", { + h.value ? (q(), Y("div", Gy, J(h.value), 1)) : W("", !0), + (q(!0), Y(V, null, nr(p.value, (e) => (q(), Y("div", { key: e.cluster_id, class: "mjr-cluster-row" }, [ - H("div", Vy, [(q(!0), Y(V, null, $n(Array.isArray(e.sample_assets) ? e.sample_assets.slice(0, 3) : [], (t, n) => (q(), Y("img", { + H("div", Ky, [(q(!0), Y(V, null, nr(Array.isArray(e.sample_assets) ? e.sample_assets.slice(0, 3) : [], (t, n) => (q(), Y("img", { key: `${e.cluster_id}-${n}`, class: "mjr-cluster-thumb", - src: A(t), + src: j(t), alt: String(t?.filename || e._label || ""), loading: "lazy" - }, null, 8, Hy))), 128))]), - H("div", Uy, [H("div", { + }, null, 8, qy))), 128))]), + H("div", Jy, [H("div", { class: "mjr-cluster-name", title: e._label - }, J(e._label), 9, Wy), H("div", Gy, J(Number(e.size || 0)) + " " + J(Z(L)("label.assets", "assets")), 1)]), + }, J(e._label), 9, Yy), H("div", Xy, J(Number(e.size || 0)) + " " + J(Z(L)("label.assets", "assets")), 1)]), U(n, { type: "button", class: "mjr-cluster-create-btn", @@ -20394,7 +20471,7 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite title: Z(L)("ctx.createCollection", "Create collection"), onClick: (t) => ce(e) }, { - default: G(() => [pr(J(g.value === `cluster:${String(e.cluster_id ?? "")}` ? Z(L)("label.loading", "Loading...") : Z(L)("label.create", "Create")), 1)]), + default: G(() => [gr(J(g.value === `cluster:${String(e.cluster_id ?? "")}` ? Z(L)("label.loading", "Loading...") : Z(L)("label.create", "Create")), 1)]), _: 2 }, 1032, [ "disabled", @@ -20406,16 +20483,16 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite ])], 512); }; } -}), Jy = { class: "mjr-popover mjr-pinned-folders-popover mjr-popover--hidden" }, Yy = { +}), $y = { class: "mjr-popover mjr-pinned-folders-popover mjr-popover--hidden" }, eb = { key: 0, class: "mjr-muted mjr-pinned-folders-empty" -}, Xy = { +}, tb = { key: 1, class: "mjr-muted mjr-pinned-folders-empty" -}, Zy = { class: "mjr-pinned-folder-label" }, Qy = { +}, nb = { class: "mjr-pinned-folder-label" }, rb = { key: 0, class: "mjr-menu-item-hint mjr-pinned-folder-path" -}, $y = /* @__PURE__ */ tr({ +}, ib = /* @__PURE__ */ ir({ __name: "PinnedFoldersPopover", setup(e, { expose: t }) { let n = Q(null), r = Q([]), i = Q(!1), a = Q("No pinned folders"), o = Q("Loading..."), s = Q("Unpin folder"), c = Q(null), l = Q(null); @@ -20446,13 +20523,13 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite setPinnedFolders: d, setPinnedFoldersLoading: f }), (e, t) => { - let c = Qn("MButton"); - return q(), Y("div", Jy, [H("div", { + let c = tr("MButton"); + return q(), Y("div", $y, [H("div", { ref_key: "menuRef", ref: n, class: "mjr-menu mjr-pinned-folders-menu", role: "menu" - }, [i.value ? (q(), Y("div", Yy, J(o.value), 1)) : r.value.length ? (q(!0), Y(V, { key: 2 }, $n(r.value, (e) => (q(), Y("div", { + }, [i.value ? (q(), Y("div", eb, J(o.value), 1)) : r.value.length ? (q(!0), Y(V, { key: 2 }, nr(r.value, (e) => (q(), Y("div", { key: e.id, class: "mjr-pinned-folder-row" }, [U(c, { @@ -20462,7 +20539,7 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite severity: "secondary", onClick: (t) => p(e) }, { - default: G(() => [H("span", Zy, J(e.label), 1), e.path ? (q(), Y("span", Qy, J(e.path), 1)) : W("", !0)]), + default: G(() => [H("span", nb, J(e.label), 1), e.path ? (q(), Y("span", rb, J(e.path), 1)) : W("", !0)]), _: 2 }, 1032, ["onClick"]), U(c, { type: "button", @@ -20482,13 +20559,13 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite "title", "aria-label", "onClick" - ])]))), 128)) : (q(), Y("div", Xy, J(a.value), 1))], 512)]); + ])]))), 128)) : (q(), Y("div", tb, J(a.value), 1))], 512)]); }; } -}), eb = { +}), ab = { class: "mjr-popover mjr-custom-popover", style: { display: "none" } -}, tb = { class: "mjr-popover-row" }, nb = { class: "mjr-popover-label" }, rb = { class: "mjr-popover-row mjr-popover-row--actions" }, ib = /* @__PURE__ */ tr({ +}, ob = { class: "mjr-popover-row" }, sb = { class: "mjr-popover-label" }, cb = { class: "mjr-popover-row mjr-popover-row--actions" }, lb = /* @__PURE__ */ ir({ __name: "CustomRootsPopover", setup(e, { expose: t }) { let n = Q([{ @@ -20571,8 +20648,8 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite return s(o.value); } }), (e, t) => { - let s = Qn("MSelect"), c = Qn("MButton"); - return q(), Y("div", eb, [H("div", tb, [H("div", nb, J(Z(L)("label.folder")), 1), U(s, { + let s = tr("MSelect"), c = tr("MButton"); + return q(), Y("div", ab, [H("div", ob, [H("div", sb, J(Z(L)("label.folder")), 1), U(s, { class: "mjr-select", "model-value": r.value, options: n.value, @@ -20584,14 +20661,14 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite "model-value", "options", "disabled" - ])]), H("div", rb, [U(c, { + ])]), H("div", cb, [U(c, { ref_key: "customAddBtnRef", ref: a, type: "button", class: "mjr-btn", severity: "secondary" }, { - default: G(() => [pr(J(Z(L)("btn.add")), 1)]), + default: G(() => [gr(J(Z(L)("btn.add")), 1)]), _: 1 }, 512), U(c, { ref_key: "customRemoveBtnRef", @@ -20601,15 +20678,15 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite severity: "secondary", disabled: "" }, { - default: G(() => [pr(J(Z(L)("btn.remove")), 1)]), + default: G(() => [gr(J(Z(L)("btn.remove")), 1)]), _: 1 }, 512)])]); }; } -}), ab = ["aria-label"], ob = { class: "mjr-messages-head" }, sb = { class: "mjr-messages-actions" }, cb = ["title"], lb = { class: "mjr-messages-star-label" }, ub = { +}), ub = ["aria-label"], db = { class: "mjr-messages-head" }, fb = { class: "mjr-messages-actions" }, pb = ["title"], mb = { class: "mjr-messages-star-label" }, hb = { class: "mjr-messages-tabs", role: "tablist" -}, db = { class: "mjr-messages-panels" }, fb = { class: "mjr-messages-empty" }, pb = "https://github.com/MajoorWaldi/ComfyUI-Majoor-AssetsManager", mb = /* @__PURE__ */ tr({ +}, gb = { class: "mjr-messages-panels" }, _b = { class: "mjr-messages-empty" }, vb = "https://github.com/MajoorWaldi/ComfyUI-Majoor-AssetsManager", yb = /* @__PURE__ */ ir({ __name: "MessagePopover", setup(e, { expose: t }) { let n = Q(null), r = Q(null), i = Q(null), a = Q(null), o = Q(null), s = Q(null), c = Q(null), l = Q(null), u = Q(null), d = Q(null), f = Q(null), p = (e) => e?.$el || e || null; @@ -20648,7 +20725,7 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite return f.value; } }), (e, t) => { - let p = Qn("MButton"), m = Qn("MDialog"); + let p = tr("MButton"), m = tr("MDialog"); return q(), Y("div", { class: "mjr-popover mjr-messages-popover", id: "mjr-messages-popover", @@ -20674,12 +20751,12 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite } }, { default: G(() => [ - H("div", ob, [H("div", { + H("div", db, [H("div", { ref_key: "titleRef", ref: n, class: "mjr-messages-title" - }, J(Z(L)("label.messages", "Messages")), 513), H("div", sb, [H("a", { - href: pb, + }, J(Z(L)("label.messages", "Messages")), 513), H("div", fb, [H("a", { + href: vb, target: "_blank", rel: "noopener noreferrer", class: "mjr-btn mjr-messages-star-link", @@ -20687,7 +20764,7 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite }, [t[0] ||= H("span", { class: "mjr-messages-star-icon", "aria-hidden": "true" - }, "★", -1), H("span", lb, J(Z(L)("btn.giveStar", "Give a star")), 1)], 8, cb), U(p, { + }, "★", -1), H("span", mb, J(Z(L)("btn.giveStar", "Give a star")), 1)], 8, pb), U(p, { ref_key: "markReadBtnRef", ref: r, type: "button", @@ -20695,10 +20772,10 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite severity: "secondary", title: Z(L)("tooltip.markMessagesRead", "Mark all messages as read") }, { - default: G(() => [pr(J(Z(L)("btn.markAllRead", "Mark all read")), 1)]), + default: G(() => [gr(J(Z(L)("btn.markAllRead", "Mark all read")), 1)]), _: 1 }, 8, ["title"])])]), - H("div", ub, [ + H("div", hb, [ U(p, { ref_key: "messageTabBtnRef", ref: i, @@ -20763,11 +20840,11 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite "aria-controls": "mjr-shortcuts-panel", id: "mjr-shortcuts-tab" }, { - default: G(() => [pr(J(Z(L)("msg.shortcuts.title", "Shortcut Guide")), 1)]), + default: G(() => [gr(J(Z(L)("msg.shortcuts.title", "Shortcut Guide")), 1)]), _: 1 }, 512) ]), - H("div", db, [ + H("div", gb, [ H("div", { ref_key: "messageListRef", ref: u, @@ -20775,7 +20852,7 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite id: "mjr-messages-panel", role: "tabpanel", "aria-labelledby": "mjr-messages-tab" - }, [H("div", fb, J(Z(L)("msg.noMessages", "No messages for now.")), 1)], 512), + }, [H("div", _b, J(Z(L)("msg.noMessages", "No messages for now.")), 1)], 512), H("div", { ref_key: "historyPanelRef", ref: d, @@ -20797,13 +20874,13 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite ]) ]), _: 1 - })], 8, ab); + })], 8, ub); }; } -}), hb = { class: "mjr-am-header-row" }, gb = { class: "mjr-am-header-left" }, _b = { class: "mjr-am-header-title" }, vb = ["data-mjr-version-channel", "title"], yb = { class: "mjr-tabs" }, bb = { class: "mjr-am-header-tools" }, xb = { +}), bb = { class: "mjr-am-header-row" }, xb = { class: "mjr-am-header-left" }, Sb = { class: "mjr-am-header-title" }, Cb = ["data-mjr-version-channel", "title"], wb = { class: "mjr-tabs" }, Tb = { class: "mjr-am-header-tools" }, Eb = { class: "mjr-popover-anchor", style: { display: "none" } -}, Sb = { class: "mjr-popover-anchor" }, Cb = { class: "mjr-popover-anchor" }, wb = { class: "mjr-popover-anchor" }, Tb = { class: "mjr-popover-anchor" }, Eb = { class: "mjr-popover-anchor" }, Db = "mjr-am-version-badge-label", Ob = "V", kb = /* @__PURE__ */ tr({ +}, Db = { class: "mjr-popover-anchor" }, Ob = { class: "mjr-popover-anchor" }, kb = { class: "mjr-popover-anchor" }, Ab = { class: "mjr-popover-anchor" }, jb = { class: "mjr-popover-anchor" }, Mb = "mjr-am-version-badge-label", Nb = "V", Pb = /* @__PURE__ */ ir({ __name: "HeaderSection", setup(e, { expose: t }) { let n = null; @@ -20841,12 +20918,12 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite rating_desc: "pi pi-star-fill", size_desc: "pi pi-sort-numeric-down-alt", size_asc: "pi pi-sort-numeric-up-alt" - }, s = Vh(), c = a() === "nightly", l = Q(null), u = Q(null), d = Q(null), f = Q(null), m = Q(null), h = Q(null), g = Q(null), v = Q(null), y = Q(null), b = Q(null), x = Q(null), S = Q(null), C = Q(null), w = Q(null), T = Q(null), E = Q(null), D = Q(null), O = Q(null), k = Q(null), A = Q(null), ee = Q(null), j = Q(null), M = Q(null), N = Q(null), te = Q(null), ne = Q(null), P = (e) => e?.$el || e || null, re = Q(c ? "nightly" : "v?"), I = Q(c ? "nightly" : "stable"), ie = Q(!1), ae = Q(!1), oe = K(() => o[s.sort] ?? "pi pi-sort-amount-down"), se = K(() => String(s.viewScope || s.scope || "output").toLowerCase()), ce = K(() => se.value === "similar" || Array.isArray(s.similarResults) && s.similarResults.length > 0 || !!s.similarTitle), le = K(() => { + }, s = Kh(), c = a() === "nightly", l = Q(null), u = Q(null), d = Q(null), f = Q(null), p = Q(null), m = Q(null), h = Q(null), g = Q(null), _ = Q(null), v = Q(null), y = Q(null), b = Q(null), S = Q(null), C = Q(null), w = Q(null), T = Q(null), E = Q(null), D = Q(null), O = Q(null), k = Q(null), A = Q(null), j = Q(null), M = Q(null), N = Q(null), ee = Q(null), te = Q(null), P = (e) => e?.$el || e || null, ne = Q(c ? "nightly" : "v?"), re = Q(c ? "nightly" : "stable"), ie = Q(!1), F = Q(!1), ae = K(() => o[s.sort] ?? "pi pi-sort-amount-down"), oe = K(() => String(s.viewScope || s.scope || "output").toLowerCase()), se = K(() => oe.value === "similar" || Array.isArray(s.similarResults) && s.similarResults.length > 0 || !!s.similarTitle), ce = K(() => { let e = String(s.similarSourceAssetId || ""); return e.startsWith("stack:") || e.startsWith("duplicates:") || e.startsWith("group:") || e.startsWith("node:") ? "group" : "similar"; - }), ue = K(() => le.value === "group" ? L("tab.group", "Group") : L("tab.similar", "Similar")), de = K(() => le.value === "group" ? L("tooltip.tab.group", "Browse current grouped assets") : L("tooltip.tab.similar", "Browse current similar findings")), fe = { + }), le = K(() => ce.value === "group" ? L("tab.group", "Group") : L("tab.similar", "Similar")), ue = K(() => ce.value === "group" ? L("tooltip.tab.group", "Browse current grouped assets") : L("tooltip.tab.similar", "Browse current similar findings")), de = { get tabAll() { - return P(ee.value); + return P(A.value); }, get tabInputs() { return P(j.value); @@ -20858,12 +20935,12 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite return P(N.value); }, get tabWorkflow() { - return P(te.value); + return P(ee.value); }, get tabSimilar() { - return P(ne.value); + return P(te.value); } - }, pe = K(() => ({ + }, fe = K(() => ({ position: "relative", fontSize: "10px", opacity: ie.value ? "1" : "0.6", @@ -20876,19 +20953,19 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite cursor: "pointer", transition: "opacity 0.2s, background 0.2s", verticalAlign: "middle" - })), he = K(() => ae.value ? L("tooltip.closeMFV", "Close Majoor Floating Viewer") : L("tooltip.openMFV", "Open Majoor Floating Viewer")), ge = K(() => "pi pi-eye"), _e = K(() => L("tooltip.openMajoorSettings", "Open Majoor Assets Manager settings")); - async function ve() { - let e = _(); + })), pe = K(() => F.value ? L("tooltip.closeMFV", "Close Majoor Floating Viewer") : L("tooltip.openMFV", "Open Majoor Floating Viewer")), me = K(() => "pi pi-eye"), ge = K(() => L("tooltip.openMajoorSettings", "Open Majoor Assets Manager settings")); + async function _e() { + let e = ot(); if (!e || typeof e != "object") { - F(L("toast.workflowSerializeFailed", "Could not read the current ComfyUI workflow."), "error"); + x(L("toast.workflowSerializeFailed", "Could not read the current ComfyUI workflow."), "error"); return; } - let t = await Q_({ + let t = await rv({ workflow: e, name: String(e?.name || e?.title || "workflow").trim() }), n = String(t?.name || "").trim(); if (!n) return; - let r = await z({ + let r = await nt({ workflow: e, name: n, task: t?.task || "", @@ -20897,9 +20974,9 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite runs_on: t?.runs_on || "", notes: t?.notes || "" }, { timeoutMs: 3e4 }); - if (!r?.ok) F(r?.error || L("toast.workflowSaveFailed", "Failed to save workflow."), "error"); + if (!r?.ok) x(r?.error || L("toast.workflowSaveFailed", "Failed to save workflow."), "error"); else { - F(L("toast.workflowSaved", "Workflow saved"), "success", 1800); + x(L("toast.workflowSaved", "Workflow saved"), "success", 1800); try { window.dispatchEvent(new CustomEvent("mjr:reload-grid", { detail: { reason: "workflow-save" } })); } catch (e) { @@ -20907,43 +20984,43 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite } } } - async function ye() { + async function ve() { let e = ""; try { - let t = await me(p.BROWSE_FOLDER, {}); + let t = await he(I.BROWSE_FOLDER, {}); t?.ok && (e = String(t?.data?.path || "").trim()); } catch (e) { console.debug?.(e); } if (!e) { - let t = await wt(L("dialog.enterWorkflowRootPath", "Workflow root folder"), "", L("tab.workflow", "Workflow")); + let t = await Dt(L("dialog.enterWorkflowRootPath", "Workflow root folder"), "", L("tab.workflow", "Workflow")); e = String(t || "").trim(); } if (!e) return; - let t = await ke(e, { timeoutMs: 3e4 }); - if (!t?.ok) F(t?.error || L("toast.failedSetWorkflowRoots", "Failed to set workflow roots"), "error"); + let t = await Oe(e, { timeoutMs: 3e4 }); + if (!t?.ok) x(t?.error || L("toast.failedSetWorkflowRoots", "Failed to set workflow roots"), "error"); else { try { - let n = Mt(); - n.paths = n.paths || {}, n.paths.workflowRoots = String(t?.data?.workflow_roots_text || e).trim(), bt(n), window.dispatchEvent(new CustomEvent("mjr-settings-changed", { detail: { + let n = Ft(); + n.paths = n.paths || {}, n.paths.workflowRoots = String(t?.data?.workflow_roots_text || e).trim(), Ct(n), window.dispatchEvent(new CustomEvent("mjr-settings-changed", { detail: { key: "paths.workflowRoots", value: e } })), window.dispatchEvent(new CustomEvent("mjr:reload-grid", { detail: { reason: "workflow-root-pick" } })); } catch (e) { console.debug?.(e); } - F(L("toast.workflowRootsSaved", "Workflow roots saved"), "success", 1800); + x(L("toast.workflowRootsSaved", "Workflow roots saved"), "success", 1800); } } - function be() { - let e = C.value; + function ye() { + let e = S.value; if (e) try { e.value = "", e.click(); } catch (e) { console.debug?.(e); } } - function xe(e) { + function be(e) { return new Promise((t, n) => { let r = new FileReader(); r.onload = () => { @@ -20955,30 +21032,30 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite }, r.onerror = () => n(r.error || /* @__PURE__ */ Error("Failed to read workflow file")), r.readAsText(e, "utf-8"); }); } - async function Se(e) { + async function xe(e) { let t = Array.from(e?.target?.files || []).filter((e) => String(e?.name || "").toLowerCase().endsWith(".json")); if (!t.length) return; let n = 0; for (let e of t) try { - let t = await xe(e); + let t = await be(e); if (!t || typeof t != "object") { - F(L("toast.workflowImportInvalid", "Invalid workflow JSON."), "error"); + x(L("toast.workflowImportInvalid", "Invalid workflow JSON."), "error"); continue; } - let r = String(e.name || "workflow.json").replace(/\.json$/i, "").trim() || "workflow", i = await z({ + let r = String(e.name || "workflow.json").replace(/\.json$/i, "").trim() || "workflow", i = await nt({ workflow: t, name: r }, { timeoutMs: 3e4 }); if (!i?.ok) { - F(i?.error || L("toast.workflowSaveFailed", "Failed to save workflow."), "error"); + x(i?.error || L("toast.workflowSaveFailed", "Failed to save workflow."), "error"); continue; } n += 1; } catch (e) { - console.debug?.(e), F(L("toast.workflowImportInvalid", "Invalid workflow JSON."), "error"); + console.debug?.(e), x(L("toast.workflowImportInvalid", "Invalid workflow JSON."), "error"); } if (n > 0) { - F(n === 1 ? L("toast.workflowImported", "Workflow imported") : L("toast.workflowsImported", "{count} workflows imported", { count: n }), "success", 1800); + x(n === 1 ? L("toast.workflowImported", "Workflow imported") : L("toast.workflowsImported", "{count} workflows imported", { count: n }), "success", 1800); try { window.dispatchEvent(new CustomEvent("mjr:reload-grid", { detail: { reason: "workflow-import" } })); } catch (e) { @@ -20986,79 +21063,79 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite } } } - function Ce(e, { channel: t = "" } = {}) { - re.value = String(e || ""), t && (I.value = t); + function Se(e, { channel: t = "" } = {}) { + ne.value = String(e || ""), t && (re.value = t); } - function we(e) { + function Ce(e) { r().then((t) => { - let n = I.value.toLowerCase() === "nightly" || re.value.toLowerCase() === "nightly"; + let n = re.value.toLowerCase() === "nightly" || ne.value.toLowerCase() === "nightly"; if (!e && !n) { let e = (typeof t?.version == "string" ? t.version.trim() : "") || ""; - e && Ce(`v${e}`, { channel: "stable" }); + e && Se(`v${e}`, { channel: "stable" }); } }).catch(() => { n = null; }); } - async function Te(e) { + async function we(e) { try { - let t = await Pe(p.VERSION, { cache: "no-cache" }); + let t = await Ie(I.VERSION, { cache: "no-cache" }); if (!t?.ok) return; let n = String(t.data?.version || "").trim(); if (i(n, String(t.data?.branch || "").trim().toLowerCase()) || e) { - Ce("nightly", { channel: "nightly" }); + Se("nightly", { channel: "nightly" }); return; } - n && Ce(n.startsWith("v") ? n : `v${n}`, { channel: "stable" }); + n && Se(n.startsWith("v") ? n : `v${n}`, { channel: "stable" }); } catch {} } + function Te() { + try { + Wt(P(g.value), pe.value, Nb); + } catch (e) { + console.debug?.(e); + } + } function Ee() { - try { - Vt(P(v.value), he.value, Ob); - } catch (e) { - console.debug?.(e); - } - } - function De() { try { if (typeof document > "u") return; - ae.value = !!document.querySelector(".mjr-mfv.is-visible"); + F.value = !!document.querySelector(".mjr-mfv.is-visible"); } catch (e) { console.debug?.(e); } } - function Oe(e) { - ae.value = !!e?.detail?.visible; + function De(e) { + F.value = !!e?.detail?.visible; } - function Ae() { + function ke() { window.dispatchEvent(new CustomEvent(B.MFV_TOGGLE)); } + function Ae() { + Kt(); + } function je() { - Ut(); - } - function Me() { try { - typeof window < "u" && window.removeEventListener(B.MFV_VISIBILITY_CHANGED, Oe); + typeof window < "u" && window.removeEventListener(B.MFV_VISIBILITY_CHANGED, De); } catch (e) { console.debug?.(e); } } - return or(ae, () => { - Ee(); - }), Zn(async () => { - await qn(), De(), Ee(), we(c), Te(c); + return lr(F, () => { + Te(); + }), er(async () => { + await Xn(), Ee(), Te(), Ce(c), we(c); try { - typeof window < "u" && window.addEventListener(B.MFV_VISIBILITY_CHANGED, Oe); + typeof window < "u" && window.addEventListener(B.MFV_VISIBILITY_CHANGED, De); } catch (e) { console.debug?.(e); } try { - l.value._mjrVersionUpdateCleanup = Me; + l.value._mjrVersionUpdateCleanup = je; } catch (e) { console.debug?.(e); } - }), ir(() => { - Me(); + }), sr(() => { + je(); }), t({ isVueHeader: !0, get header() { @@ -21068,7 +21145,7 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite return u.value; }, get tabButtons() { - return fe; + return de; }, get customMenuBtn() { return P(d.value); @@ -21077,285 +21154,285 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite return P(f.value); }, get sortBtn() { - return P(m.value); + return P(p.value); }, get collectionsBtn() { - return P(h.value); + return P(m.value); }, get pinnedFoldersBtn() { - return P(g.value); + return P(h.value); }, get messageBtn() { - return P(y.value); + return P(_.value); }, get settingsBtn() { - return P(b.value); + return P(v.value); }, get customPopover() { - return k.value?.$el ?? null; + return O.value?.$el ?? null; }, get customSelect() { - return k.value?.customSelect ?? null; + return O.value?.customSelect ?? null; }, get customAddBtn() { - return k.value?.customAddBtn ?? null; + return O.value?.customAddBtn ?? null; }, get customRemoveBtn() { - return k.value?.customRemoveBtn ?? null; + return O.value?.customRemoveBtn ?? null; }, get filterPopover() { - return E.value?.$el ?? null; + return T.value?.$el ?? null; }, get kindSelect() { - return E.value?.kindSelect ?? null; + return T.value?.kindSelect ?? null; }, get wfCheckbox() { - return E.value?.wfCheckbox ?? null; + return T.value?.wfCheckbox ?? null; }, get workflowTypeSelect() { - return E.value?.workflowTypeSelect ?? null; + return T.value?.workflowTypeSelect ?? null; }, get workflowIdInput() { - return E.value?.workflowIdInput ?? null; + return T.value?.workflowIdInput ?? null; }, get workflowModelInput() { - return E.value?.workflowModelInput ?? null; + return T.value?.workflowModelInput ?? null; }, get workflowRunsOnSelect() { - return E.value?.workflowRunsOnSelect ?? null; + return T.value?.workflowRunsOnSelect ?? null; }, get ratingSelect() { - return E.value?.ratingSelect ?? null; + return T.value?.ratingSelect ?? null; }, get minSizeInput() { - return E.value?.minSizeInput ?? null; + return T.value?.minSizeInput ?? null; }, get maxSizeInput() { - return E.value?.maxSizeInput ?? null; + return T.value?.maxSizeInput ?? null; }, get resolutionPresetSelect() { - return E.value?.resolutionPresetSelect ?? null; + return T.value?.resolutionPresetSelect ?? null; }, get minWidthInput() { - return E.value?.minWidthInput ?? null; + return T.value?.minWidthInput ?? null; }, get minHeightInput() { - return E.value?.minHeightInput ?? null; + return T.value?.minHeightInput ?? null; }, get maxWidthInput() { - return E.value?.maxWidthInput ?? null; + return T.value?.maxWidthInput ?? null; }, get maxHeightInput() { - return E.value?.maxHeightInput ?? null; + return T.value?.maxHeightInput ?? null; }, get dateRangeSelect() { - return E.value?.dateRangeSelect ?? null; + return T.value?.dateRangeSelect ?? null; }, get dateExactInput() { - return E.value?.dateExactInput ?? null; + return T.value?.dateExactInput ?? null; }, get agendaContainer() { - return E.value?.agendaContainer ?? null; + return T.value?.agendaContainer ?? null; }, get sortPopover() { - return T.value?.$el ?? null; + return w.value?.$el ?? null; }, sortMenu: document.createElement("div"), get collectionsPopover() { - return D.value?.$el ?? null; + return E.value?.$el ?? null; }, get refreshCollectionsPopover() { - return D.value?.refresh ?? null; + return E.value?.refresh ?? null; }, get pinnedFoldersPopover() { - return O.value?.$el ?? null; + return D.value?.$el ?? null; }, get pinnedFoldersController() { - return O.value ?? null; + return D.value ?? null; }, get pinnedFoldersMenu() { - return O.value?.pinnedFoldersMenu ?? null; + return D.value?.pinnedFoldersMenu ?? null; }, get messagePopover() { - return A.value?.$el ?? null; + return k.value?.$el ?? null; }, get messagePopoverTitle() { - return A.value?.title ?? null; + return k.value?.title ?? null; }, get messageTabBtn() { - return A.value?.messageTabBtn ?? null; + return k.value?.messageTabBtn ?? null; }, get messageTabBadge() { - return A.value?.messageTabBadge ?? null; + return k.value?.messageTabBadge ?? null; }, get historyTabBtn() { - return A.value?.historyTabBtn ?? null; + return k.value?.historyTabBtn ?? null; }, get historyTabBadge() { - return A.value?.historyTabBadge ?? null; + return k.value?.historyTabBadge ?? null; }, get historyTabCount() { - return A.value?.historyTabCount ?? null; + return k.value?.historyTabCount ?? null; }, get historyPanel() { - return A.value?.historyPanel ?? null; + return k.value?.historyPanel ?? null; }, get shortcutsTabBtn() { - return A.value?.shortcutsTabBtn ?? null; + return k.value?.shortcutsTabBtn ?? null; }, get messageList() { - return A.value?.messageList ?? null; + return k.value?.messageList ?? null; }, get shortcutsPanel() { - return A.value?.shortcutsPanel ?? null; + return k.value?.shortcutsPanel ?? null; }, get markReadBtn() { - return A.value?.markReadBtn ?? null; + return k.value?.markReadBtn ?? null; }, get searchSection() { - return w.value?.searchSection ?? null; + return C.value?.searchSection ?? null; }, get searchInputEl() { - return w.value?.searchInputEl ?? null; + return C.value?.searchInputEl ?? null; }, get similarBtn() { - return w.value?.similarBtn ?? null; + return C.value?.similarBtn ?? null; }, get similarPopover() { - return w.value?.similarPopover ?? null; + return C.value?.similarPopover ?? null; }, get similarFindBtn() { - return w.value?.similarFindBtn ?? null; + return C.value?.similarFindBtn ?? null; }, get similarDuplicatesBtn() { - return w.value?.similarDuplicatesBtn ?? null; + return C.value?.similarDuplicatesBtn ?? null; }, get similarSameNodeBtn() { - return w.value?.similarSameNodeBtn ?? null; + return C.value?.similarSameNodeBtn ?? null; }, get similarSameWorkflowBtn() { - return w.value?.similarSameWorkflowBtn ?? null; + return C.value?.similarSameWorkflowBtn ?? null; }, setSemanticEnabled(e) { - w.value?.setSemanticEnabled?.(e); + C.value?.setSemanticEnabled?.(e); }, - _headerDispose: Me + _headerDispose: je }), (e, t) => { - let n = Qn("MButton"); + let n = tr("MButton"); return q(), Y(V, null, [H("div", { ref_key: "headerRef", ref: l, class: "mjr-am-header" - }, [H("div", hb, [H("div", gb, [ + }, [H("div", bb, [H("div", xb, [ t[2] ||= H("i", { class: "mjr-am-header-icon pi pi-folder", "aria-hidden": "true" }, null, -1), - H("div", _b, J(Z(L)("manager.title")), 1), + H("div", Sb, J(Z(L)("manager.title")), 1), H("a", { href: "https://ko-fi.com/majoorwaldi", target: "_blank", rel: "noopener noreferrer", class: "mjr-am-version-badge", - "data-mjr-version-channel": I.value, + "data-mjr-version-channel": re.value, title: Z(L)("tooltip.supportKofi"), - style: fr(pe.value), + style: hr(fe.value), onMouseenter: t[0] ||= (e) => ie.value = !0, onMouseleave: t[1] ||= (e) => ie.value = !1 - }, [H("span", { class: X(Db) }, J(re.value), 1)], 44, vb) + }, [H("span", { class: X(Mb) }, J(ne.value), 1)], 44, Cb) ]), H("div", { ref_key: "headerActionsRef", ref: u, class: "mjr-am-header-actions" - }, [H("div", yb, [ + }, [H("div", wb, [ U(n, { ref_key: "tabAllRef", - ref: ee, + ref: A, type: "button", - class: X(["mjr-tab", { "is-active": se.value === "all" }]), + class: X(["mjr-tab", { "is-active": oe.value === "all" }]), severity: "secondary", text: "", "data-scope": "all", title: Z(L)("tooltip.tab.all") }, { - default: G(() => [pr(J(Z(L)("tab.all")), 1)]), + default: G(() => [gr(J(Z(L)("tab.all")), 1)]), _: 1 }, 8, ["class", "title"]), U(n, { ref_key: "tabInputsRef", ref: j, type: "button", - class: X(["mjr-tab", { "is-active": se.value === "input" }]), + class: X(["mjr-tab", { "is-active": oe.value === "input" }]), severity: "secondary", text: "", "data-scope": "input", title: Z(L)("tooltip.tab.input") }, { - default: G(() => [pr(J(Z(L)("tab.input")), 1)]), + default: G(() => [gr(J(Z(L)("tab.input")), 1)]), _: 1 }, 8, ["class", "title"]), U(n, { ref_key: "tabOutputsRef", ref: M, type: "button", - class: X(["mjr-tab", { "is-active": se.value === "output" }]), + class: X(["mjr-tab", { "is-active": oe.value === "output" }]), severity: "secondary", text: "", "data-scope": "output", title: Z(L)("tooltip.tab.output") }, { - default: G(() => [pr(J(Z(L)("tab.output")), 1)]), + default: G(() => [gr(J(Z(L)("tab.output")), 1)]), _: 1 }, 8, ["class", "title"]), U(n, { ref_key: "tabCustomRef", ref: N, type: "button", - class: X(["mjr-tab", { "is-active": se.value === "custom" }]), + class: X(["mjr-tab", { "is-active": oe.value === "custom" }]), severity: "secondary", text: "", "data-scope": "custom", title: Z(L)("tooltip.tab.custom") }, { - default: G(() => [pr(J(Z(L)("tab.custom")), 1)]), + default: G(() => [gr(J(Z(L)("tab.custom")), 1)]), _: 1 }, 8, ["class", "title"]), U(n, { ref_key: "tabWorkflowRef", - ref: te, + ref: ee, type: "button", - class: X(["mjr-tab", { "is-active": se.value === "workflow" }]), + class: X(["mjr-tab", { "is-active": oe.value === "workflow" }]), severity: "secondary", text: "", "data-scope": "workflow", title: Z(L)("tooltip.tab.workflow", "Browse saved workflows") }, { - default: G(() => [pr(J(Z(L)("tab.workflow", "Workflow")), 1)]), + default: G(() => [gr(J(Z(L)("tab.workflow", "Workflow")), 1)]), _: 1 }, 8, ["class", "title"]), U(n, { ref_key: "tabSimilarRef", - ref: ne, + ref: te, type: "button", - class: X(["mjr-tab", { "is-active": se.value === "similar" }]), + class: X(["mjr-tab", { "is-active": oe.value === "similar" }]), severity: "secondary", text: "", "data-scope": "similar", - style: fr({ display: ce.value ? "" : "none" }), - title: de.value + style: hr({ display: se.value ? "" : "none" }), + title: ue.value }, { - default: G(() => [pr(J(ue.value), 1)]), + default: G(() => [gr(J(le.value), 1)]), _: 1 }, 8, [ "class", "style", "title" ]) - ]), H("div", bb, [ - se.value === "workflow" ? (q(), Jn(n, { + ]), H("div", Tb, [ + oe.value === "workflow" ? (q(), Zn(n, { key: 0, ref_key: "saveWorkflowBtnRef", - ref: x, + ref: y, type: "button", class: "mjr-icon-btn mjr-save-workflow-btn", severity: "secondary", @@ -21363,7 +21440,7 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite rounded: "", title: Z(L)("tooltip.saveCurrentWorkflow", "Save current workflow"), "aria-label": Z(L)("tooltip.saveCurrentWorkflow", "Save current workflow"), - onClick: ve + onClick: _e }, { default: G(() => [...t[3] ||= [H("i", { class: "pi pi-save", @@ -21371,10 +21448,10 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite }, null, -1)]]), _: 1 }, 8, ["title", "aria-label"])) : W("", !0), - se.value === "workflow" ? (q(), Jn(n, { + oe.value === "workflow" ? (q(), Zn(n, { key: 1, ref_key: "pickWorkflowRootBtnRef", - ref: S, + ref: b, type: "button", class: "mjr-icon-btn mjr-pick-workflow-root-btn", severity: "secondary", @@ -21382,7 +21459,7 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite rounded: "", title: Z(L)("tooltip.pickWorkflowRoot", "Pick saved workflow root"), "aria-label": Z(L)("tooltip.pickWorkflowRoot", "Pick saved workflow root"), - onClick: ye + onClick: ve }, { default: G(() => [...t[4] ||= [H("i", { class: "pi pi-folder-plus", @@ -21390,7 +21467,7 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite }, null, -1)]]), _: 1 }, 8, ["title", "aria-label"])) : W("", !0), - se.value === "workflow" ? (q(), Jn(n, { + oe.value === "workflow" ? (q(), Zn(n, { key: 2, type: "button", class: "mjr-icon-btn mjr-import-workflow-btn", @@ -21399,7 +21476,7 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite rounded: "", title: Z(L)("tooltip.importWorkflow", "Import workflow"), "aria-label": Z(L)("tooltip.importWorkflow", "Import workflow"), - onClick: be + onClick: ye }, { default: G(() => [...t[5] ||= [H("i", { class: "pi pi-upload", @@ -21409,14 +21486,14 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite }, 8, ["title", "aria-label"])) : W("", !0), H("input", { ref_key: "importWorkflowInputRef", - ref: C, + ref: S, type: "file", accept: ".json,application/json", multiple: "", style: { display: "none" }, - onChange: Se + onChange: xe }, null, 544), - H("div", xb, [U(n, { + H("div", Eb, [U(n, { ref_key: "customMenuBtnRef", ref: d, type: "button", @@ -21432,24 +21509,24 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite "aria-hidden": "true" }, null, -1)]]), _: 1 - }, 8, ["title", "aria-label"]), U(ib, { + }, 8, ["title", "aria-label"]), U(lb, { ref_key: "customPopoverRef", - ref: k + ref: O }, null, 512)]), U(n, { ref_key: "mfvBtnRef", - ref: v, + ref: g, type: "button", - class: X(["mjr-icon-btn", { "mjr-mfv-btn-active": ae.value }]), + class: X(["mjr-icon-btn", { "mjr-mfv-btn-active": F.value }]), severity: "secondary", text: "", rounded: "", - title: he.value, - "aria-label": he.value, - onClick: Ae + title: pe.value, + "aria-label": pe.value, + onClick: ke }, { default: G(() => [H("i", { - class: X(ge.value), + class: X(me.value), "aria-hidden": "true" }, null, 2)]), _: 1 @@ -21458,9 +21535,9 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite "title", "aria-label" ]), - H("div", Sb, [U(n, { + H("div", Db, [U(n, { ref_key: "messageBtnRef", - ref: y, + ref: _, type: "button", class: "mjr-icon-btn mjr-message-btn", severity: "secondary", @@ -21478,21 +21555,21 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite "aria-hidden": "true" }, null, -1)]]), _: 1 - }, 8, ["title", "aria-label"]), U(mb, { + }, 8, ["title", "aria-label"]), U(yb, { ref_key: "messagePopoverRef", - ref: A + ref: k }, null, 512)]), U(n, { ref_key: "settingsBtnRef", - ref: b, + ref: v, type: "button", class: "mjr-icon-btn mjr-settings-shortcut-btn", severity: "secondary", text: "", rounded: "", - title: _e.value, - "aria-label": _e.value, - onClick: je + title: ge.value, + "aria-label": ge.value, + onClick: Ae }, { default: G(() => [...t[8] ||= [H("i", { class: "pi pi-cog", @@ -21500,11 +21577,11 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite }, null, -1)]]), _: 1 }, 8, ["title", "aria-label"]) - ])], 512)])], 512), U(mv, { + ])], 512)])], 512), U(yv, { ref_key: "searchBarRef", - ref: w + ref: C }, { - "filter-anchor": G(() => [H("div", Cb, [U(n, { + "filter-anchor": G(() => [H("div", Ob, [U(n, { ref_key: "filterBtnRef", ref: f, type: "button", @@ -21520,13 +21597,13 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite "aria-hidden": "true" }, null, -1)]]), _: 1 - }, 8, ["title", "aria-label"]), U(fy, { + }, 8, ["title", "aria-label"]), U(_y, { ref_key: "filterPopoverRef", - ref: E + ref: T }, null, 512)])]), - "sort-anchor": G(() => [H("div", wb, [U(n, { + "sort-anchor": G(() => [H("div", kb, [U(n, { ref_key: "sortBtnRef", - ref: m, + ref: p, type: "button", class: "mjr-icon-btn", severity: "secondary", @@ -21536,17 +21613,17 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite "aria-label": Z(L)("label.sort") }, { default: G(() => [H("i", { - class: X(oe.value), + class: X(ae.value), "aria-hidden": "true" }, null, 2)]), _: 1 - }, 8, ["title", "aria-label"]), U(_v, { + }, 8, ["title", "aria-label"]), U(Sv, { ref_key: "sortPopoverRef", - ref: T + ref: w }, null, 512)])]), - "collections-anchor": G(() => [H("div", Tb, [U(n, { + "collections-anchor": G(() => [H("div", Ab, [U(n, { ref_key: "collectionsBtnRef", - ref: h, + ref: m, type: "button", class: "mjr-icon-btn", severity: "secondary", @@ -21560,13 +21637,13 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite "aria-hidden": "true" }, null, -1)]]), _: 1 - }, 8, ["title", "aria-label"]), U(qy, { + }, 8, ["title", "aria-label"]), U(Qy, { ref_key: "collectionsPopoverRef", - ref: D + ref: E }, null, 512)])]), - "pinned-folders-anchor": G(() => [H("div", Eb, [U(n, { + "pinned-folders-anchor": G(() => [H("div", jb, [U(n, { ref_key: "pinnedFoldersBtnRef", - ref: g, + ref: h, type: "button", class: "mjr-icon-btn", severity: "secondary", @@ -21580,28 +21657,28 @@ var xy = { class: "mjr-menu mjr-collections-menu" }, Sy = { class: "mjr-menu-ite "aria-hidden": "true" }, null, -1)]]), _: 1 - }, 8, ["title", "aria-label"]), U($y, { + }, 8, ["title", "aria-label"]), U(ib, { ref_key: "pinnedFoldersPopoverRef", - ref: O + ref: D }, null, 512)])]), _: 1 }, 512)], 64); }; } -}), Ab = (e) => { +}), Fb = (e) => { try { return String(e ?? ""); } catch { return ""; } -}, jb = (e) => { +}, Ib = (e) => { let t = String(e || ""); return L(t === "name_asc" ? "sort.nameAZ" : t === "name_desc" ? "sort.nameZA" : t === "mtime_asc" ? "sort.oldest" : "sort.newest"); -}, Mb = (e) => { +}, Lb = (e) => { let t = String(e || "").toLowerCase(); return t === "similar" ? L("scope.similar", "Similar") : t === "custom" ? L("scope.customBrowser") : t === "workflow" ? L("scope.workflow", "Workflow") : L(t === "all" ? "tab.all" : t === "input" || t === "inputs" ? "scope.input" : "scope.output"); }; -function Nb({ label: e, value: t, onClear: n } = {}) { +function Rb({ label: e, value: t, onClear: n } = {}) { let r = document.createElement("div"); r.className = "mjr-context-pill"; let i = document.createElement("span"); @@ -21622,69 +21699,69 @@ function Nb({ label: e, value: t, onClear: n } = {}) { } return r; } -function Pb() { +function zb() { let e = document.createElement("div"); return e.className = "mjr-am-context-pills", { wrap: e, update: ({ state: t, rawQuery: n = "", actions: r = null } = {}) => { - let i = r && typeof r == "object" ? r : {}, a = Ab(n || "").trim(), o = a.length > 0 && a !== "*", s = !!(Ab(t?.kindFilter || "").trim() || t?.workflowOnly || (Number(t?.minRating || 0) || 0) > 0 || (Number(t?.minSizeMB || 0) || 0) > 0 || (Number(t?.maxSizeMB || 0) || 0) > 0 || (Number(t?.minWidth || 0) || 0) > 0 || (Number(t?.minHeight || 0) || 0) > 0 || (Number(t?.maxWidth || 0) || 0) > 0 || (Number(t?.maxHeight || 0) || 0) > 0 || Ab(t?.workflowType || "").trim() || Ab(t?.workflowId || "").trim() || Ab(t?.workflowModelFilter || "").trim() || Ab(t?.workflowRunsOnFilter || "").trim() || Ab(t?.dateRangeFilter || "").trim() || Ab(t?.dateExactFilter || "").trim()), c = Ab(t?.sort || "mtime_desc").trim() !== "mtime_desc", l = Ab(t?.collectionId || "").trim().length > 0, u = String(t?.viewScope || t?.scope || "output").toLowerCase(), d = u === "similar", f = u === "custom", p = u !== "output", m = Ab(t?.similarSourceAssetId || "").trim(); + let i = r && typeof r == "object" ? r : {}, a = Fb(n || "").trim(), o = a.length > 0 && a !== "*", s = !!(Fb(t?.kindFilter || "").trim() || t?.workflowOnly || (Number(t?.minRating || 0) || 0) > 0 || (Number(t?.minSizeMB || 0) || 0) > 0 || (Number(t?.maxSizeMB || 0) || 0) > 0 || (Number(t?.minWidth || 0) || 0) > 0 || (Number(t?.minHeight || 0) || 0) > 0 || (Number(t?.maxWidth || 0) || 0) > 0 || (Number(t?.maxHeight || 0) || 0) > 0 || Fb(t?.workflowType || "").trim() || Fb(t?.workflowId || "").trim() || Fb(t?.workflowModelFilter || "").trim() || Fb(t?.workflowRunsOnFilter || "").trim() || Fb(t?.dateRangeFilter || "").trim() || Fb(t?.dateExactFilter || "").trim()), c = Fb(t?.sort || "mtime_desc").trim() !== "mtime_desc", l = Fb(t?.collectionId || "").trim().length > 0, u = String(t?.viewScope || t?.scope || "output").toLowerCase(), d = u === "similar", f = u === "custom", p = u !== "output", m = Fb(t?.similarSourceAssetId || "").trim(); if (o || s || c || l || p || d || e.childElementCount) { try { e.replaceChildren(); } catch (e) { console.debug?.(e); } - if (!f && l && e.appendChild(Nb({ + if (!f && l && e.appendChild(Rb({ label: L("label.collections"), - value: Ab(t?.collectionName || t?.collectionId || "").trim(), + value: Fb(t?.collectionName || t?.collectionId || "").trim(), onClear: () => i?.clearCollection?.() - })), d && e.appendChild(Nb({ + })), d && e.appendChild(Rb({ label: L("search.findSimilar", "Find Similar"), value: m ? L("search.similarReference", "Reference #{id}", { id: m }) : L("scope.similar", "Similar"), onClear: () => i?.clearSimilarScope?.() - })), p && e.appendChild(Nb({ + })), p && e.appendChild(Rb({ label: L("label.scope"), - value: Mb(u || "output"), + value: Lb(u || "output"), onClear: () => d ? i?.clearSimilarScope?.() : i?.clearScope?.() - })), o && e.appendChild(Nb({ + })), o && e.appendChild(Rb({ label: L("label.query"), value: a, onClear: () => i?.clearQuery?.() - })), Ab(t?.kindFilter || "").trim() && e.appendChild(Nb({ + })), Fb(t?.kindFilter || "").trim() && e.appendChild(Rb({ label: L("label.type"), - value: Ab(t?.kindFilter || "").trim(), + value: Fb(t?.kindFilter || "").trim(), onClear: () => i?.clearKind?.() - })), Number(t?.minRating || 0) > 0 && e.appendChild(Nb({ + })), Number(t?.minRating || 0) > 0 && e.appendChild(Rb({ label: L("label.rating"), value: `>= ${Number(t?.minRating || 0)}`, onClear: () => i?.clearMinRating?.() - })), t?.workflowOnly && e.appendChild(Nb({ + })), t?.workflowOnly && e.appendChild(Rb({ label: L("label.workflow"), value: L("label.only"), onClear: () => i?.clearWorkflowOnly?.() - })), Ab(t?.workflowType || "").trim() && e.appendChild(Nb({ + })), Fb(t?.workflowType || "").trim() && e.appendChild(Rb({ label: L("label.workflowType"), - value: Ab(t?.workflowType || "").trim(), + value: Fb(t?.workflowType || "").trim(), onClear: () => i?.clearWorkflowType?.() - })), Ab(t?.workflowId || "").trim()) { - let n = Ab(t?.workflowId || "").trim(); - e.appendChild(Nb({ + })), Fb(t?.workflowId || "").trim()) { + let n = Fb(t?.workflowId || "").trim(); + e.appendChild(Rb({ label: L("label.sameWorkflow", "Generated with Same Workflow"), value: n.length > 18 ? `${n.slice(0, 8)}...${n.slice(-6)}` : n, onClear: () => i?.clearWorkflowId?.() })); } - if (Ab(t?.workflowModelFilter || "").trim() && e.appendChild(Nb({ + if (Fb(t?.workflowModelFilter || "").trim() && e.appendChild(Rb({ label: L("label.workflowModelFamily", "Model family"), - value: Ab(t?.workflowModelFilter || "").trim(), + value: Fb(t?.workflowModelFilter || "").trim(), onClear: () => i?.clearWorkflowModel?.() - })), Ab(t?.workflowRunsOnFilter || "").trim() && e.appendChild(Nb({ + })), Fb(t?.workflowRunsOnFilter || "").trim() && e.appendChild(Rb({ label: L("label.workflowRunsOn", "Runs on"), - value: Ab(t?.workflowRunsOnFilter || "").trim(), + value: Fb(t?.workflowRunsOnFilter || "").trim(), onClear: () => i?.clearWorkflowRunsOn?.() })), (Number(t?.minSizeMB || 0) || 0) > 0 || (Number(t?.maxSizeMB || 0) || 0) > 0) { let n = Number(t?.minSizeMB || 0) || 0, r = Number(t?.maxSizeMB || 0) || 0, a = n > 0 && r > 0 ? `${n}-${r} MB` : n > 0 ? `>= ${n} MB` : `<= ${r} MB`; - e.appendChild(Nb({ + e.appendChild(Rb({ label: L("sidebar.size"), value: a, onClear: () => i?.clearSize?.() @@ -21692,23 +21769,23 @@ function Pb() { } if ((Number(t?.minWidth || 0) || 0) > 0 || (Number(t?.minHeight || 0) || 0) > 0 || (Number(t?.maxWidth || 0) || 0) > 0 || (Number(t?.maxHeight || 0) || 0) > 0) { let n = String(t?.resolutionCompare || "gte") === "lte", r = Number(n ? t?.maxWidth : t?.minWidth || 0) || 0, a = Number(n ? t?.maxHeight : t?.minHeight || 0) || 0; - e.appendChild(Nb({ + e.appendChild(Rb({ label: L("label.resolution"), value: `${n ? "<=" : ">="} ${r || 0}x${a || 0} px`, onClear: () => i?.clearResolution?.() })); } - Ab(t?.dateRangeFilter || "").trim() && e.appendChild(Nb({ + Fb(t?.dateRangeFilter || "").trim() && e.appendChild(Rb({ label: L("sidebar.date"), - value: Ab(t?.dateRangeFilter || "").trim(), + value: Fb(t?.dateRangeFilter || "").trim(), onClear: () => i?.clearDateRange?.() - })), Ab(t?.dateExactFilter || "").trim() && e.appendChild(Nb({ + })), Fb(t?.dateExactFilter || "").trim() && e.appendChild(Rb({ label: L("label.day"), - value: Ab(t?.dateExactFilter || "").trim(), + value: Fb(t?.dateExactFilter || "").trim(), onClear: () => i?.clearDateExact?.() - })), c && e.appendChild(Nb({ + })), c && e.appendChild(Rb({ label: L("label.sort"), - value: jb(t?.sort), + value: Ib(t?.sort), onClear: () => i?.clearSort?.() })); } @@ -21716,17 +21793,17 @@ function Pb() { }; } // ui/vue/components/panel/summaryBarState.ts -var Fb = (e, t = "") => L(e, t, void 0), Ib = (e) => { +var Bb = (e, t = "") => L(e, t, void 0), Vb = (e) => { try { return String(e ?? ""); } catch { return ""; } -}, Lb = (e) => { +}, Hb = (e) => { let t = String(e || "").toLowerCase(); - return t === "similar" ? Fb("scope.similar", "Similar") : t === "workflow" ? Fb("scope.workflow", "Workflow") : Fb(t === "input" || t === "inputs" ? "scope.input" : t === "custom" ? "scope.customBrowser" : t === "all" ? "tab.all" : "scope.output"); + return t === "similar" ? Bb("scope.similar", "Similar") : t === "workflow" ? Bb("scope.workflow", "Workflow") : Bb(t === "input" || t === "inputs" ? "scope.input" : t === "custom" ? "scope.customBrowser" : t === "all" ? "tab.all" : "scope.output"); }; -function Rb(e) { +function Ub(e) { try { let t = e?._mjrGetRenderedCards; if (typeof t == "function") { @@ -21738,7 +21815,7 @@ function Rb(e) { } return []; } -function zb(e) { +function Wb(e) { try { let t = String(e?.dataset?.mjrSelectedAssetIds || "").trim(); if (t) { @@ -21755,8 +21832,8 @@ function zb(e) { } return 0; } -function Bb({ state: e, gridContainer: t, context: n = null } = {}) { - let r = Rb(t), i = (() => { +function Gb({ state: e, gridContainer: t, context: n = null } = {}) { + let r = Ub(t), i = (() => { try { let e = 0; for (let t of r) String(t?._mjrAsset?.kind || "").toLowerCase() === "folder" && (e += 1); @@ -21777,12 +21854,12 @@ function Bb({ state: e, gridContainer: t, context: n = null } = {}) { } catch (e) { console.debug?.(e); } - return zb(t); - })(), s = Number(t?.dataset?.mjrTotal || 0) || Math.max(0, Number(e?.lastGridTotal ?? 0) || 0), c = Number(t?.dataset?.mjrShown || 0) || Math.max(0, Number(e?.lastGridCount ?? 0) || 0) || a, l = String(e?.viewScope || e?.scope || t?.dataset?.mjrScope || "output").toLowerCase(), u = s && s >= c ? `${c}/${s}` : `${c}`, d = [`${c > 0 && i.total > 0 && i.folders === i.total ? Fb("summary.folders") : Fb("summary.assets")}: ${u}`]; - o > 0 && d.push(`${Fb("summary.selected")}: ${o}`), d.push(Lb(l)); + return Wb(t); + })(), s = Number(t?.dataset?.mjrTotal || 0) || Math.max(0, Number(e?.lastGridTotal ?? 0) || 0), c = Number(t?.dataset?.mjrShown || 0) || Math.max(0, Number(e?.lastGridCount ?? 0) || 0) || a, l = String(e?.viewScope || e?.scope || t?.dataset?.mjrScope || "output").toLowerCase(), u = s && s >= c ? `${c}/${s}` : `${c}`, d = [`${c > 0 && i.total > 0 && i.folders === i.total ? Bb("summary.folders") : Bb("summary.assets")}: ${u}`]; + o > 0 && d.push(`${Bb("summary.selected")}: ${o}`), d.push(Hb(l)); try { let e = Number(t?.dataset?.mjrHiddenPngSiblings || 0) || 0; - String(t?.dataset?.mjrHidePngSiblingsEnabled || "") === "1" && e > 0 && d.push(`${Fb("summary.hidden")}: ${e}`); + String(t?.dataset?.mjrHidePngSiblingsEnabled || "") === "1" && e > 0 && d.push(`${Bb("summary.hidden")}: ${e}`); } catch (e) { console.debug?.(e); } @@ -21792,22 +21869,22 @@ function Bb({ state: e, gridContainer: t, context: n = null } = {}) { total: s, activeScope: l, summaryText: d.filter(Boolean).join(" | "), - duplicateText: h ? `${Fb("summary.duplicates")}: ${p} | ${Fb("summary.similar")}: ${m}` : "", + duplicateText: h ? `${Bb("summary.duplicates")}: ${p} | ${Bb("summary.similar")}: ${m}` : "", showDuplicates: h, - rawQuery: Ib(n?.rawQuery || "").trim() + rawQuery: Vb(n?.rawQuery || "").trim() }; } // ui/vue/components/panel/SummaryBarSection.vue?vue&type=script&setup=true&lang.ts -var Vb = { +var Kb = { key: 2, class: "mjr-folder-breadcrumb-separator" -}, Hb = { +}, qb = { key: 0, class: "mjr-folder-breadcrumb-separator" -}, Ub = { class: "mjr-am-summary-left" }, Wb = { class: "mjr-am-summary-text" }, Gb = { class: "mjr-am-summary-right" }, Kb = ["aria-label"], qb = /* @__PURE__ */ tr({ +}, Jb = { class: "mjr-am-summary-left" }, Yb = { class: "mjr-am-summary-text" }, Xb = { class: "mjr-am-summary-right" }, Zb = ["aria-label"], Qb = /* @__PURE__ */ ir({ __name: "SummaryBarSection", setup(e, { expose: t }) { - let n = Vh(), r = Q(null), i = Q(null), a = Q(null), o = Q(""), s = Q(""), c = Q(!1), l = Q(!1), u = Q(null), d = Q(null), f = Q([]), p = Pb(), m = K(() => String(n.kindFilter || "").trim().toLowerCase()), h = K(() => { + let n = Kh(), r = Q(null), i = Q(null), a = Q(null), o = Q(""), s = Q(""), c = Q(!1), l = Q(!1), u = Q(null), d = Q(null), f = Q([]), p = zb(), m = K(() => String(n.kindFilter || "").trim().toLowerCase()), h = K(() => { let e = L("label.type", "Type"); return [ { @@ -21854,7 +21931,7 @@ var Vb = { t && (n.kindFilter = v(t) ? "" : t, y()); } function x({ state: e, gridContainer: t, context: r = null, actions: i = null } = {}) { - let a = Bb({ + let a = Gb({ state: e, gridContainer: t, context: r @@ -21892,7 +21969,7 @@ var Vb = { console.debug?.(e); } } - return Zn(() => { + return er(() => { try { a.value?.appendChild?.(p.wrap); } catch (e) { @@ -21904,14 +21981,14 @@ var Vb = { folderBreadcrumb: i, setFolderBreadcrumb: S }), (e, t) => { - let n = Qn("MButton"); + let n = tr("MButton"); return q(), Y(V, null, [H("div", { ref_key: "folderBreadcrumb", ref: i, class: X(["mjr-folder-breadcrumb", { "is-visible": l.value }]), "aria-label": "Folder breadcrumb" }, [ - u.value ? (q(), Jn(n, { + u.value ? (q(), Zn(n, { key: 0, type: "button", class: "mjr-btn-link mjr-folder-breadcrumb-action", @@ -21920,10 +21997,10 @@ var Vb = { disabled: u.value.disabled, onClick: t[0] ||= (e) => C(u.value) }, { - default: G(() => [pr(J(u.value.label), 1)]), + default: G(() => [gr(J(u.value.label), 1)]), _: 1 }, 8, ["disabled"])) : W("", !0), - d.value ? (q(), Jn(n, { + d.value ? (q(), Zn(n, { key: 1, type: "button", class: "mjr-btn-link mjr-folder-breadcrumb-action", @@ -21932,11 +22009,11 @@ var Vb = { disabled: d.value.disabled, onClick: t[1] ||= (e) => C(d.value) }, { - default: G(() => [pr(J(d.value.label), 1)]), + default: G(() => [gr(J(d.value.label), 1)]), _: 1 }, 8, ["disabled"])) : W("", !0), - u.value || d.value ? (q(), Y("span", Vb, " | ")) : W("", !0), - (q(!0), Y(V, null, $n(f.value, (e, t) => (q(), Y(V, { key: `${e.target}:${t}` }, [t > 0 ? (q(), Y("span", Hb, "/")) : W("", !0), U(n, { + u.value || d.value ? (q(), Y("span", Kb, " | ")) : W("", !0), + (q(!0), Y(V, null, nr(f.value, (e, t) => (q(), Y(V, { key: `${e.target}:${t}` }, [t > 0 ? (q(), Y("span", qb, "/")) : W("", !0), U(n, { type: "button", class: X(["mjr-btn-link mjr-folder-breadcrumb-segment", { "is-current": e.current }]), severity: "secondary", @@ -21944,7 +22021,7 @@ var Vb = { disabled: e.current, onClick: (t) => C(e) }, { - default: G(() => [pr(J(e.label), 1)]), + default: G(() => [gr(J(e.label), 1)]), _: 2 }, 1032, [ "class", @@ -21956,12 +22033,12 @@ var Vb = { ref: r, class: "mjr-am-summary", "aria-live": "polite" - }, [H("div", Ub, [H("div", Wb, J(o.value), 1)]), H("div", Gb, [ + }, [H("div", Jb, [H("div", Yb, J(o.value), 1)]), H("div", Xb, [ H("div", { class: "mjr-media-shortcuts", "aria-label": Z(L)("label.type", "Type"), role: "group" - }, [(q(!0), Y(V, null, $n(h.value, (e) => (q(), Jn(n, { + }, [(q(!0), Y(V, null, nr(h.value, (e) => (q(), Zn(n, { key: e.kind, type: "button", class: X(["mjr-icon-btn mjr-media-shortcut-btn", { "mjr-context-active": v(e.kind) }]), @@ -21984,8 +22061,8 @@ var Vb = { "aria-pressed", "class", "onClick" - ]))), 128))], 8, Kb), - c.value ? (q(), Jn(n, { + ]))), 128))], 8, Zb), + c.value ? (q(), Zn(n, { key: 0, type: "button", class: "mjr-am-dup-alert", @@ -21994,7 +22071,7 @@ var Vb = { title: s.value, onClick: _ }, { - default: G(() => [pr(J(s.value), 1)]), + default: G(() => [gr(J(s.value), 1)]), _: 1 }, 8, ["title"])) : W("", !0), H("div", { @@ -22006,11 +22083,11 @@ var Vb = { } }); // ui/vue/composables/useGridContextMenu.ts -function Jb(e, t) { +function $b(e, t) { let n = null; function r(e) { if (e && !e._mjrGridContextMenuBound) try { - n = so({ + n = uo({ gridContainer: e, getState: t }); @@ -22024,16 +22101,16 @@ function Jb(e, t) { } catch {} n = null; } - or(e, (e, t) => { + lr(e, (e, t) => { t && i(), e && r(e); - }, { immediate: !0 }), ir(i); + }, { immediate: !0 }), sr(i); } // ui/vue/composables/useGridKeyboard.ts -function Yb(e) { +function ex(e) { if (!e) return () => {}; let t = e; try { - let n = ea({ + let n = ra({ gridContainer: e, getState: () => t._mjrGetGridState?.() || {}, getSelectedAssets: () => t._mjrGetSelectedAssets?.() || [], @@ -22051,7 +22128,7 @@ function Yb(e) { } catch (e) { console.debug?.("[useGridKeyboard] rect lookup failed", e); } - oo(Math.round((i?.left || 0) + Math.min((i?.width || 0) * .5, 160)), Math.round((i?.top || 0) + Math.min((i?.height || 0) * .5, 120)), n, () => { + lo(Math.round((i?.left || 0) + Math.min((i?.width || 0) * .5, 160)), Math.round((i?.top || 0) + Math.min((i?.height || 0) * .5, 120)), n, () => { t._mjrOnKeyboardAssetChanged?.(n); }); } @@ -22068,7 +22145,7 @@ function Yb(e) { return console.debug?.("[useGridKeyboard] bind failed", e), () => {}; } } -function Xb(e) { +function tx(e) { let t = null, n = () => { try { t?.(); @@ -22077,13 +22154,13 @@ function Xb(e) { } t = null; }; - or(e, (e, r) => { - r && n(), e && (t = Yb(e)); - }, { immediate: !0 }), ir(n); + lr(e, (e, r) => { + r && n(), e && (t = ex(e)); + }, { immediate: !0 }), sr(n); } // ui/vue/components/grid/assetsGridHostState.ts -function Zb() {} -function Qb() { +function nx() {} +function rx() { return new Promise((e) => { try { if (typeof requestAnimationFrame == "function") { @@ -22096,7 +22173,7 @@ function Qb() { e(); }); } -function $b(e, ...t) { +function ix(e, ...t) { try { return typeof e == "function" ? e(...t) : void 0; } catch (e) { @@ -22104,21 +22181,21 @@ function $b(e, ...t) { return; } } -function ex(e = {}) { +function ax(e = {}) { let t = Array.isArray(e.selectedIds) ? e.selectedIds.map(String).filter(Boolean) : []; return { ids: t, activeId: String(e.activeId || t[0] || "").trim() }; } -function tx(e, t = {}, n = null) { +function ox(e, t = {}, n = null) { return { count: Number(t.count ?? t.shown ?? e?.dataset?.mjrShown ?? n?.lastGridCount ?? 0) || 0, total: Number(t.total ?? e?.dataset?.mjrTotal ?? n?.lastGridTotal ?? 0) || 0 }; } -function nx(e, t = Hh()) { - if (!e || !t) return Zb; +function sx(e, t = qh()) { + if (!e || !t) return nx; let n = 0, r = () => { if (!n) try { n = requestAnimationFrame(() => { @@ -22144,8 +22221,8 @@ function nx(e, t = Hh()) { } }; } -function rx(e, { panelStore: t = Hh(), onContextChanged: n = null, markUserInteraction: r = null } = {}) { - if (!e) return Zb; +function cx(e, { panelStore: t = qh(), onContextChanged: n = null, markUserInteraction: r = null } = {}) { + if (!e) return nx; let i = 0, a = () => { if (i) try { cancelAnimationFrame(i); @@ -22154,24 +22231,24 @@ function rx(e, { panelStore: t = Hh(), onContextChanged: n = null, markUserInter } try { i = requestAnimationFrame(() => { - i = 0, $b(n); + i = 0, ix(n); }); } catch (e) { - console.debug?.(e), i = 0, $b(n); + console.debug?.(e), i = 0, ix(n); } }, o = (r) => { let i = r?.detail || {}; if (t) { - let { count: n, total: r } = tx(e, i, t); + let { count: n, total: r } = ox(e, i, t); t.lastGridCount = n, t.lastGridTotal = r; } - $b(n); + ix(n); }, s = (e) => { - if ($b(r), t) { - let { ids: n, activeId: r } = ex(e?.detail || {}); + if (ix(r), t) { + let { ids: n, activeId: r } = ax(e?.detail || {}); t.selectedAssetIds = n, t.activeAssetId = r; } - $b(n); + ix(n); }; e.addEventListener("mjr:grid-stats", o), e.addEventListener("mjr:selection-changed", s); try { @@ -22219,14 +22296,14 @@ function rx(e, { panelStore: t = Hh(), onContextChanged: n = null, markUserInter } }; } -async function ix({ initialLoadPromise: e, gridWrapper: t, gridContainer: n, panelStore: r = Hh(), onRestoreSidebar: i = null } = {}) { +async function lx({ initialLoadPromise: e, gridWrapper: t, gridContainer: n, panelStore: r = qh(), onRestoreSidebar: i = null } = {}) { if (!t || !n || !r) return; try { await e; } catch (e) { console.debug?.(e); } - await Qb(); + await rx(); let a = Number(r.scrollTop || 0) || 0; if (a > 0) try { t.scrollTop = a; @@ -22243,7 +22320,7 @@ async function ix({ initialLoadPromise: e, gridWrapper: t, gridContainer: n, pan if (s) { let e = () => { try { - typeof n?._mjrScrollToAssetId == "function" ? n._mjrScrollToAssetId(s) : lu(n, s)?.scrollIntoView?.({ + typeof n?._mjrScrollToAssetId == "function" ? n._mjrScrollToAssetId(s) : fu(n, s)?.scrollIntoView?.({ block: "nearest", behavior: "instant" }); @@ -22254,13 +22331,13 @@ async function ix({ initialLoadPromise: e, gridWrapper: t, gridContainer: n, pan e(), setTimeout(e, 160); } } - r.sidebarOpen && s && $b(i); + r.sidebarOpen && s && ix(i); } // ui/vue/components/grid/AssetsGrid.vue -var ax = /* @__PURE__ */ tr({ +var ux = /* @__PURE__ */ ir({ __name: "AssetsGrid", setup(e, { expose: t }) { - let n = Q(null), r = Q(null), i = Q(null), a = Vh(), o = K(() => i.value?.gridContainer ?? null), s = null, c = null, l = null, u = null; + let n = Q(null), r = Q(null), i = Q(null), a = Kh(), o = K(() => i.value?.gridContainer ?? null), s = null, c = null, l = null, u = null; function d() { try { l?.setVisibility?.(); @@ -22271,7 +22348,7 @@ var ax = /* @__PURE__ */ tr({ function f() { try { let e = o.value; - e && pt(e); + e && gt(e); } catch (e) { console.debug?.(e); } @@ -22354,7 +22431,7 @@ var ax = /* @__PURE__ */ tr({ } }; } - Xn("mjr-grid-container-ref", o), Jb(o, () => a), Xb(o); + $n("mjr-grid-container-ref", o), $b(o, () => a), tx(o); function m() { return o.value || null; } @@ -22366,23 +22443,23 @@ var ax = /* @__PURE__ */ tr({ } catch (e) { console.debug?.(e); } - c = rx(t, { + c = cx(t, { panelStore: a, ...e }); } } - return Zn(() => { - s = nx(r.value, a), r.value && Number(a.scrollTop || 0) > 0 && (r.value.scrollTop = Number(a.scrollTop || 0)), p(); + return er(() => { + s = sx(r.value, a), r.value && Number(a.scrollTop || 0) > 0 && (r.value.scrollTop = Number(a.scrollTop || 0)), p(); try { window.addEventListener("mjr:keepalive-attached", f), document.addEventListener("visibilitychange", d); } catch (e) { console.debug?.(e); } d(); - }), ar(() => { + }), cr(() => { try { - _t(m()); + bt(m()); } catch (e) { console.debug?.(e); } @@ -22415,14 +22492,14 @@ var ax = /* @__PURE__ */ tr({ } catch (e) { console.debug?.(e); } - }), or(o, (e, t) => { + }), lr(o, (e, t) => { try { - t && t !== e && _t(t); + t && t !== e && bt(t); } catch (e) { console.debug?.(e); } try { - e && pt(e); + e && gt(e); } catch (e) { console.debug?.(e); } @@ -22450,7 +22527,7 @@ var ax = /* @__PURE__ */ tr({ }; }, restoreGridUiState(e, t = {}) { - return ix({ + return lx({ initialLoadPromise: e, gridWrapper: r.value, gridContainer: m(), @@ -22466,7 +22543,7 @@ var ax = /* @__PURE__ */ tr({ } catch (e) { console.debug?.(e); } - return l = S_({ + return l = D_({ gridContainer: t, gridWrapper: r.value, ...e @@ -22521,13 +22598,13 @@ var ax = /* @__PURE__ */ tr({ overflow: "auto", position: "relative" } - }, [U(kd, { + }, [U(Md, { ref_key: "gridHostRef", ref: i, "scroll-element": r.value }, null, 8, ["scroll-element"])], 512)], 512)); } -}), ox = { +}), dx = { class: "mjr-sidebar-header", style: { display: "flex", @@ -22538,15 +22615,15 @@ var ax = /* @__PURE__ */ tr({ "flex-shrink": "0", background: "var(--mjr-surface-2,#2e2e2e)" } -}, sx = ["title"], cx = /* @__PURE__ */ tr({ +}, fx = ["title"], px = /* @__PURE__ */ ir({ __name: "SidebarHeaderSection", props: { asset: {} }, emits: ["close"], setup(e, { emit: t }) { let n = t; return (t, r) => { - let i = Qn("MButton"); - return q(), Y("div", ox, [H("div", { + let i = tr("MButton"); + return q(), Y("div", dx, [H("div", { class: "mjr-sidebar-filename", title: e.asset.filename, style: { @@ -22559,7 +22636,7 @@ var ax = /* @__PURE__ */ tr({ "min-width": "0", "padding-right": "8px" } - }, J(e.asset.filename), 9, sx), U(i, { + }, J(e.asset.filename), 9, fx), U(i, { type: "button", class: "mjr-sidebar-close", severity: "secondary", @@ -22583,21 +22660,21 @@ var ax = /* @__PURE__ */ tr({ onMouseenter: r[1] ||= (e) => (e.currentTarget.style.background = "rgba(255,255,255,0.1)") && (e.currentTarget.style.borderColor = "rgba(255,255,255,0.2)"), onMouseleave: r[2] ||= (e) => (e.currentTarget.style.background = "none") && (e.currentTarget.style.borderColor = "transparent") }, { - default: G(() => [...r[3] ||= [pr("x", -1)]]), + default: G(() => [...r[3] ||= [gr("x", -1)]]), _: 1 })]); }; } }); // ui/components/sidebar/utils/format.ts -function lx(e) { +function mx(e) { if (!e) return "Unknown"; let t = e / 1024; if (t < 1024) return `${t.toFixed(1)} KB`; let n = t / 1024; return n < 1024 ? `${n.toFixed(1)} MB` : `${(n / 1024).toFixed(2)} GB`; } -function ux(e) { +function hx(e) { if (!e) return ""; let t = /* @__PURE__ */ new Date(Number(e) * 1e3); if (Number.isNaN(t.getTime())) return ""; @@ -22605,7 +22682,7 @@ function ux(e) { return `${t.getFullYear()}-${n(t.getMonth() + 1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}`; } // ui/components/VideoControls.ts -function dx(e, t) { +function gx(e, t) { let n = []; try { e.controls = !1, e.loop = !0, e.muted = !0, e.playsInline = !0, e.autoplay = !0; @@ -22671,7 +22748,7 @@ function dx(e, t) { } catch (e) { console.debug?.(e); } - n.push(kt(e, "loadedmetadata", () => s(), { passive: !0 })), n.push(kt(e, "canplay", () => s(), { passive: !0 })), n.push(kt(i, "click", c)), n.push(kt(e, "play", o, { passive: !0 })), n.push(kt(e, "pause", o, { passive: !0 })), n.push(kt(e, "ended", () => s(), { passive: !0 })); + n.push(Mt(e, "loadedmetadata", () => s(), { passive: !0 })), n.push(Mt(e, "canplay", () => s(), { passive: !0 })), n.push(Mt(i, "click", c)), n.push(Mt(e, "play", o, { passive: !0 })), n.push(Mt(e, "pause", o, { passive: !0 })), n.push(Mt(e, "ended", () => s(), { passive: !0 })); try { o(); } catch (e) { @@ -22681,7 +22758,7 @@ function dx(e, t) { controlsEl: r, destroy: () => { try { - for (let e of n) Ot(() => e?.()); + for (let e of n) jt(() => e?.()); } catch (e) { console.debug?.(e); } @@ -22693,28 +22770,28 @@ function dx(e, t) { } }; } -function fx(e, t = {}) { +function _x(e, t = {}) { try { let n = t?.hostEl || e?.parentElement; return !e || !n ? { controlsEl: null, - destroy: At - } : dx(e, n); + destroy: Nt + } : gx(e, n); } catch (e) { return console.debug?.(e), { controlsEl: null, - destroy: At + destroy: Nt }; } } // ui/vue/components/panel/sidebar/SidebarPreviewSection.vue?vue&type=script&setup=true&lang.ts -var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["src"], _x = { +var vx = { class: "mjr-sidebar-preview" }, yx = ["src"], bx = ["src"], xx = ["src"], Sx = { key: 3, style: { color: "rgba(255, 255, 255, 0.4)", "font-size": "14px" } -}, vx = { +}, Cx = { class: "mjr-sidebar-preview-meta", style: { "margin-top": "10px", @@ -22728,7 +22805,7 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr "padding-bottom": "12px", "border-bottom": "1px solid var(--mjr-border, rgba(255, 255, 255, 0.12))" } -}, yx = /* @__PURE__ */ tr({ +}, wx = /* @__PURE__ */ ir({ __name: "SidebarPreviewSection", props: { asset: {}, @@ -22738,15 +22815,15 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr } }, setup(e) { - let t = e, n = Q(null), r = null, i = K(() => ae(t.asset) || ""), a = K(() => { + let t = e, n = Q(null), r = null, i = K(() => le(t.asset) || ""), a = K(() => { let e = String(t.asset?.filename || ""), n = e.lastIndexOf("."); return n === -1 ? "" : e.slice(n + 1).toUpperCase(); }), o = K(() => { let e = []; a.value && e.push(a.value), t.asset?.kind && e.push(String(t.asset.kind).toLowerCase()); - let n = lx(t.asset?.size); + let n = mx(t.asset?.size); n && e.push(n); - let r = ux(t.asset?.mtime); + let r = hx(t.asset?.mtime); return r && e.push(r), e.join(" | "); }); function s() { @@ -22771,7 +22848,7 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr if (e && i) { c(i); try { - r = fx(i, { + r = _x(i, { variant: "preview", hostEl: e }); @@ -22780,17 +22857,17 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr } } } - return or(() => [t.asset, t.showPreviewThumb], () => { + return lr(() => [t.asset, t.showPreviewThumb], () => { s(); - }, { flush: "post" }), or(i, () => { + }, { flush: "post" }), lr(i, () => { setTimeout(() => { l(); }, 0); - }), Zn(() => { + }), er(() => { l(); - }), ar(() => { + }), cr(() => { s(); - }), (t, r) => (q(), Y("div", px, [e.showPreviewThumb ? (q(), Y("div", { + }), (t, r) => (q(), Y("div", vx, [e.showPreviewThumb ? (q(), Y("div", { key: 0, ref_key: "previewContainerRef", ref: n, @@ -22813,7 +22890,7 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr "max-height": "100%", "object-fit": "contain" } - }, null, 8, mx)) : e.asset.kind === "video" ? (q(), Y("video", { + }, null, 8, yx)) : e.asset.kind === "video" ? (q(), Y("video", { key: 1, src: i.value, muted: !0, @@ -22826,7 +22903,7 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr "max-height": "100%", "object-fit": "contain" } - }, null, 8, hx)) : e.asset.kind === "audio" ? (q(), Y("audio", { + }, null, 8, bx)) : e.asset.kind === "audio" ? (q(), Y("audio", { key: 2, src: i.value, controls: "", @@ -22835,9 +22912,9 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr width: "92%", "max-width": "560px" } - }, null, 8, gx)) : (q(), Y("div", _x, J(String(e.asset.kind || "PREVIEW").toUpperCase()), 1))], 512)) : W("", !0), H("div", vx, J(o.value), 1)])); + }, null, 8, xx)) : (q(), Y("div", Sx, J(String(e.asset.kind || "PREVIEW").toUpperCase()), 1))], 512)) : W("", !0), H("div", Cx, J(o.value), 1)])); } -}), bx = { +}), Tx = { class: "mjr-sidebar-section", style: { background: "rgba(255, 255, 255, 0.03)", @@ -22845,22 +22922,22 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr "border-radius": "8px", padding: "10px" } -}, xx = { style: { +}, Ex = { style: { "font-size": "12px", "font-weight": "700", color: "#26a69a", "margin-bottom": "8px", "text-transform": "uppercase", "letter-spacing": "0.4px" -} }, Sx = { style: { +} }, Dx = { style: { display: "flex", "flex-direction": "column", gap: "6px" -} }, Cx = { style: { +} }, Ox = { style: { "font-size": "12px", opacity: "0.68", "min-width": "92px" -} }, wx = ["title"], Tx = /* @__PURE__ */ tr({ +} }, kx = ["title"], Ax = /* @__PURE__ */ ir({ __name: "SidebarFolderSection", props: { asset: {} }, setup(e) { @@ -22903,17 +22980,17 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr ]; return u > 0 && f.push({ label: L("sidebar.folder.created", "Created"), - value: `${Cn(u) || "-"} ${Bn(u) || ""}`.trim() + value: `${En(u) || "-"} ${Un(u) || ""}`.trim() }), l > 0 && f.push({ label: L("sidebar.folder.modified", "Modified"), - value: `${Cn(l) || "-"} ${Bn(l) || ""}`.trim() + value: `${En(l) || "-"} ${Un(l) || ""}`.trim() }), d && f.push({ label: L("sidebar.folder.note", "Note"), value: L("sidebar.folder.scanTruncated", "Scan was truncated for performance"), valueStyle: "color:#FFB74D;font-weight:600;" }), f; }); - return (e, t) => (q(), Y("div", bx, [H("div", xx, J(Z(L)("sidebar.folder.details", "Folder Details")), 1), H("div", Sx, [(q(!0), Y(V, null, $n(r.value, (e) => (q(), Y("div", { + return (e, t) => (q(), Y("div", Tx, [H("div", Ex, J(Z(L)("sidebar.folder.details", "Folder Details")), 1), H("div", Dx, [(q(!0), Y(V, null, nr(r.value, (e) => (q(), Y("div", { key: e.label, style: { display: "flex", @@ -22921,33 +22998,33 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr "align-items": "flex-start", "justify-content": "space-between" } - }, [H("div", Cx, J(e.label), 1), H("div", { - style: fr(e.valueStyle || "font-size: 12px; text-align: right; word-break: break-word"), + }, [H("div", Ox, J(e.label), 1), H("div", { + style: hr(e.valueStyle || "font-size: 12px; text-align: right; word-break: break-word"), title: String(e.value || "") - }, J(e.value), 13, wx)]))), 128))])])); + }, J(e.value), 13, kx)]))), 128))])])); } -}), Ex = ["aria-label"], Dx = { class: "mjr-context-menu-title" }, Ox = { class: "mjr-context-menu-item-left" }, kx = { +}), jx = ["aria-label"], Mx = { class: "mjr-context-menu-title" }, Nx = { class: "mjr-context-menu-item-left" }, Px = { key: 0, class: "mjr-context-menu-note" -}, Ax = { +}, Fx = { key: 1, class: "mjr-context-menu-note is-error" -}, jx = { +}, Ix = { key: 2, class: "mjr-context-menu-note" -}, Mx = { class: "mjr-context-menu-item-left" }, Nx = { +}, Lx = { class: "mjr-context-menu-item-left" }, Rx = { key: 0, class: "mjr-context-menu-hint" -}, Px = /* @__PURE__ */ tr({ +}, zx = /* @__PURE__ */ ir({ __name: "AddToCollectionMenu", setup(e) { let t = Q(null), n = Q(!1), r = Q([]), i = Q(""), a = 0, o = null, s = K(() => ({ position: "fixed", - left: `${Math.round(Number(Vi.x) || 0)}px`, - top: `${Math.round(Number(Vi.y) || 0)}px`, + left: `${Math.round(Number(Wi.x) || 0)}px`, + top: `${Math.round(Number(Wi.y) || 0)}px`, display: "block", zIndex: "10004" - })), c = K(() => Vi.assets.length || 0), l = K(() => L("ctx.addToCollection", "Add to collection") + (c.value > 1 ? ` (${c.value})` : "")); + })), c = K(() => Wi.assets.length || 0), l = K(() => L("ctx.addToCollection", "Add to collection") + (c.value > 1 ? ` (${c.value})` : "")); function u({ collectionName: e, selectedCount: t, addRes: n }) { let r = Number(n?.data?.added ?? 0) || 0, i = Number(n?.data?.skipped_existing ?? 0) || 0, a = Number(n?.data?.skipped_duplicate ?? 0) || 0, o = String(e || "").trim() || L("label.collection", "collection"), s = L("msg.collectionAdd.added", "Added {added} item(s) to \"{name}\".", { added: r, @@ -22957,15 +23034,15 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr } function d() { let e = t.value; - if (!Vi.open || !e) return; - let n = e.getBoundingClientRect(), r = Number(window.innerWidth || 0), i = Number(window.innerHeight || 0), a = Number(Vi.x) || 0, o = Number(Vi.y) || 0; - a + n.width > r && (a = Math.max(8, r - n.width - 10)), o + n.height > i && (o = Math.max(8, i - n.height - 10)), a < 8 && (a = 8), o < 8 && (o = 8), Vi.x = a, Vi.y = o; + if (!Wi.open || !e) return; + let n = e.getBoundingClientRect(), r = Number(window.innerWidth || 0), i = Number(window.innerHeight || 0), a = Number(Wi.x) || 0, o = Number(Wi.y) || 0; + a + n.width > r && (a = Math.max(8, r - n.width - 10)), o + n.height > i && (o = Math.max(8, i - n.height - 10)), a < 8 && (a = 8), o < 8 && (o = 8), Wi.x = a, Wi.y = o; } async function f() { let e = ++a; n.value = !0, i.value = ""; try { - let t = await Ee(); + let t = await Re(); if (e !== a) return; r.value = Array.isArray(t?.data) ? t.data : []; } catch (t) { @@ -22973,7 +23050,7 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr r.value = [], i.value = L("toast.failedLoadCollections", "Failed to load collections."); } finally { if (e === a) { - n.value = !1, await qn(), d(); + n.value = !1, await Xn(), d(); try { t.value?.querySelector?.(".mjr-context-menu-item:not([aria-disabled=\"true\"])")?.focus?.(); } catch (e) { @@ -22983,44 +23060,44 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr } } async function p(e, t) { - let n = Array.isArray(Vi.assets) ? Vi.assets : []; - Wi(); - let r = await S(e, n); - r?.ok ? F(u({ + let n = Array.isArray(Wi.assets) ? Wi.assets : []; + qi(); + let r = await O(e, n); + r?.ok ? x(u({ collectionName: t, selectedCount: n.length, addRes: r - }), "success", 4e3) : F(r?.error || L("toast.failedAddAssetsToCollection", "Failed to add assets to collection."), "error"); + }), "success", 4e3) : x(r?.error || L("toast.failedAddAssetsToCollection", "Failed to add assets to collection."), "error"); } async function m() { - let e = Array.isArray(Vi.assets) ? Vi.assets : []; - Wi(); - let t = await wt(L("dialog.createCollection", "Create collection"), L("dialog.collectionPlaceholder", "My collection")); + let e = Array.isArray(Wi.assets) ? Wi.assets : []; + qi(); + let t = await Dt(L("dialog.createCollection", "Create collection"), L("dialog.collectionPlaceholder", "My collection")); if (!t) return; - let n = await v(t); + let n = await w(t); if (!n?.ok) { - F(n?.error || L("toast.failedCreateCollectionDot", "Failed to create collection."), "error"); + x(n?.error || L("toast.failedCreateCollectionDot", "Failed to create collection."), "error"); return; } - let r = n.data?.id, i = await S(r, e); - i?.ok ? F(u({ + let r = n.data?.id, i = await O(r, e); + i?.ok ? x(u({ collectionName: n.data?.name || t, selectedCount: e.length, addRes: i - }), "success", 4e3) : F(i?.error || L("toast.failedAddAssetsToCollection", "Failed to add assets to collection."), "error"); + }), "success", 4e3) : x(i?.error || L("toast.failedAddAssetsToCollection", "Failed to add assets to collection."), "error"); } function h(e) { - t.value?.contains?.(e?.target) || Wi(); + t.value?.contains?.(e?.target) || qi(); } function g(e) { - e?.key === "Escape" && Wi(); + e?.key === "Escape" && qi(); } function _() { - Wi(); + qi(); } - return or(() => Vi.open, async (e) => { + return lr(() => Wi.open, async (e) => { e && (r.value = [], await f()); - }), Zn(() => { + }), er(() => { o = new AbortController(); let e = { capture: !0, @@ -23034,25 +23111,25 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr passive: !0, signal: o.signal }), window.addEventListener("mjr-close-all-menus", _, { signal: o.signal }); - }), ir(() => { + }), sr(() => { try { o?.abort(); } catch (e) { console.debug?.(e); } - o = null, Wi(); + o = null, qi(); }), (e, a) => { - let o = Qn("MButton"); - return q(), Jn(yr, { to: "body" }, [Z(Vi).open ? (q(), Y("div", { + let o = tr("MButton"); + return q(), Zn(Sr, { to: "body" }, [Z(Wi).open ? (q(), Y("div", { key: 0, ref_key: "menuRef", ref: t, class: "mjr-add-to-collection-menu mjr-context-menu", - style: fr(s.value), + style: hr(s.value), role: "menu", "aria-label": l.value }, [ - H("div", Dx, J(l.value), 1), + H("div", Mx, J(l.value), 1), U(o, { type: "button", class: "mjr-context-menu-item", @@ -23061,12 +23138,12 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr role: "menuitem", onClick: m }, { - default: G(() => [H("span", Ox, [a[0] ||= H("i", { class: "pi pi-plus" }, null, -1), H("span", null, J(Z(L)("dialog.createCollection", "Create collection")) + "...", 1)])]), + default: G(() => [H("span", Nx, [a[0] ||= H("i", { class: "pi pi-plus" }, null, -1), H("span", null, J(Z(L)("dialog.createCollection", "Create collection")) + "...", 1)])]), _: 1 }), a[2] ||= H("div", { class: "mjr-context-menu-separator" }, null, -1), - n.value ? (q(), Y("div", kx, J(Z(L)("msg.loadingCollections", "Loading collections...")), 1)) : i.value ? (q(), Y("div", Ax, J(i.value), 1)) : r.value.length ? W("", !0) : (q(), Y("div", jx, J(Z(L)("msg.noCollections", "No collections yet.")), 1)), - (q(!0), Y(V, null, $n(r.value, (e) => (q(), Jn(o, { + n.value ? (q(), Y("div", Px, J(Z(L)("msg.loadingCollections", "Loading collections...")), 1)) : i.value ? (q(), Y("div", Fx, J(i.value), 1)) : r.value.length ? W("", !0) : (q(), Y("div", Ix, J(Z(L)("msg.noCollections", "No collections yet.")), 1)), + (q(!0), Y(V, null, nr(r.value, (e) => (q(), Zn(o, { key: String(e?.id || ""), type: "button", class: "mjr-context-menu-item", @@ -23075,31 +23152,31 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr role: "menuitem", onClick: (t) => p(String(e?.id || ""), String(e?.name || e?.id || "")) }, { - default: G(() => [H("span", Mx, [a[1] ||= H("i", { class: "pi pi-bookmark" }, null, -1), H("span", null, J(String(e?.name || e?.id || "")), 1)]), Number(e?.count || 0) > 0 ? (q(), Y("span", Nx, J(Number(e?.count || 0)), 1)) : W("", !0)]), + default: G(() => [H("span", Lx, [a[1] ||= H("i", { class: "pi pi-bookmark" }, null, -1), H("span", null, J(String(e?.name || e?.id || "")), 1)]), Number(e?.count || 0) > 0 ? (q(), Y("span", Rx, J(Number(e?.count || 0)), 1)) : W("", !0)]), _: 2 }, 1032, ["onClick"]))), 128)) - ], 12, Ex)) : W("", !0)]); + ], 12, jx)) : W("", !0)]); }; } -}), Fx = { +}), Bx = { key: 0, class: "mjr-context-menu-separator" -}, Ix = { class: "mjr-context-menu-item-left" }, Lx = { class: "mjr-context-menu-item-right" }, Rx = { +}, Vx = { class: "mjr-context-menu-item-left" }, Hx = { class: "mjr-context-menu-item-right" }, Ux = { key: 0, class: "mjr-context-menu-hint" -}, zx = { +}, Wx = { key: 1, class: "mjr-context-menu-submenu-arrow" -}, Bx = { +}, Gx = { key: 0, class: "mjr-context-menu-separator" -}, Vx = { class: "mjr-context-menu-item-left" }, Hx = { +}, Kx = { class: "mjr-context-menu-item-left" }, qx = { key: 0, class: "mjr-context-menu-hint" -}, Ux = /* @__PURE__ */ tr({ +}, Jx = /* @__PURE__ */ ir({ __name: "GridContextMenu", setup(e) { - let t = Q(null), n = Q(null), r = Q(null), i = null, a = null, o = K(() => l(en.main, 10031)), s = K(() => l(en.submenu, 10032)), c = K(() => l(en.tags, 10033)); + let t = Q(null), n = Q(null), r = Q(null), i = null, a = null, o = K(() => l(rn.main, 10031)), s = K(() => l(rn.submenu, 10032)), c = K(() => l(rn.tags, 10033)); function l(e, t) { return { position: "fixed", @@ -23114,7 +23191,7 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr } function d() { u(), i = setTimeout(() => { - dn(); + mn(); }, 180); } function f(e, t) { @@ -23123,7 +23200,7 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr a + n.width > r && (a = Math.max(8, r - n.width - 10)), o + n.height > i && (o = Math.max(8, i - n.height - 10)), a < 8 && (a = 8), o < 8 && (o = 8), e.x = a, e.y = o; } async function p(e, t) { - await qn(), f(e, t?.value || null); + await Xn(), f(e, t?.value || null); } function m(e) { try { @@ -23134,14 +23211,14 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr } function h(e, t) { if (!Array.isArray(e?.submenu) || !e.submenu.length) { - dn(); + mn(); return; } u(); let n = (t?.currentTarget)?.getBoundingClientRect?.(); - fn({ - x: Math.round((n?.right || en.main.x || 0) + 6), - y: Math.round((n?.top || en.main.y || 0) - 4), + hn({ + x: Math.round((n?.right || rn.main.x || 0) + 6), + y: Math.round((n?.top || rn.main.y || 0) - 4), items: e.submenu, title: e.label || "" }); @@ -23154,12 +23231,12 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr } catch (e) { console.error("[GridContextMenu.vue] Action failed:", e); } finally { - e.closeOnSelect === !1 ? n === "submenu" && dn() : ln(); + e.closeOnSelect === !1 ? n === "submenu" && mn() : fn(); } } } function _(e, t) { - Array.isArray(e?.submenu) && e.submenu.length ? h(e, t) : dn(); + Array.isArray(e?.submenu) && e.submenu.length ? h(e, t) : mn(); } function v(e) { Array.isArray(e?.submenu) && e.submenu.length && d(); @@ -23172,37 +23249,37 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr } function x(e) { let i = e?.target; - t.value?.contains?.(i) || n.value?.contains?.(i) || r.value?.contains?.(i) || ln(); + t.value?.contains?.(i) || n.value?.contains?.(i) || r.value?.contains?.(i) || fn(); } function S(e) { - e?.key === "Escape" && ln(); + e?.key === "Escape" && fn(); } function C() { - ln(); + fn(); } function w(e) { let t = e?.detail; - String(t?.source || "") !== "grid" && ln(); + String(t?.source || "") !== "grid" && fn(); } function T(e) { - let t = en.tags.asset; + let t = rn.tags.asset; t && (t.tags = Array.isArray(e) ? [...e] : []); } function E(e) { let t = Array.isArray(e?.tags) ? e.tags : []; try { - en.tags.onChanged?.(t); + rn.tags.onChanged?.(t); } catch (e) { console.debug?.(e); } } - return or(() => en.main.open, async (e) => { - e && (await p(en.main, t), m(t)); - }), or(() => en.submenu.open, async (e) => { - e && (await p(en.submenu, n), m(n)); - }), or(() => en.tags.open, async (e) => { - e && await p(en.tags, r); - }), Zn(() => { + return lr(() => rn.main.open, async (e) => { + e && (await p(rn.main, t), m(t)); + }), lr(() => rn.submenu.open, async (e) => { + e && (await p(rn.submenu, n), m(n)); + }), lr(() => rn.tags.open, async (e) => { + e && await p(rn.tags, r); + }), er(() => { a = new AbortController(); let e = { capture: !0, @@ -23216,26 +23293,26 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr passive: !0, signal: a.signal }), window.addEventListener("mjr-close-all-menus", w, { signal: a.signal }); - }), ir(() => { + }), sr(() => { u(); try { a?.abort(); } catch (e) { console.debug?.(e); } - a = null, ln(); + a = null, fn(); }), (e, i) => { - let a = Qn("MButton"); - return q(), Jn(yr, { to: "body" }, [ - Z(en).main.open ? (q(), Y("div", { + let a = tr("MButton"); + return q(), Zn(Sr, { to: "body" }, [ + Z(rn).main.open ? (q(), Y("div", { key: 0, ref_key: "mainMenuRef", ref: t, class: "mjr-grid-context-menu mjr-context-menu", - style: fr(o.value), + style: hr(o.value), role: "menu", "aria-label": "Grid context menu" - }, [(q(!0), Y(V, null, $n(Z(en).main.items, (e) => (q(), Y(V, { key: e.id }, [e.type === "separator" ? (q(), Y("div", Fx)) : (q(), Jn(a, { + }, [(q(!0), Y(V, null, nr(Z(rn).main.items, (e) => (q(), Y(V, { key: e.id }, [e.type === "separator" ? (q(), Y("div", Bx)) : (q(), Zn(a, { key: 1, type: "button", class: X(["mjr-context-menu-item", { @@ -23255,10 +23332,10 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr onMouseenter: (t) => _(e, t), onMouseleave: (t) => v(e) }, { - default: G(() => [H("span", Ix, [e.iconClass ? (q(), Y("i", { + default: G(() => [H("span", Vx, [e.iconClass ? (q(), Y("i", { key: 0, class: X(e.iconClass) - }, null, 2)) : W("", !0), H("span", null, J(e.label), 1)]), H("span", Lx, [e.rightHint ? (q(), Y("span", Rx, J(e.rightHint), 1)) : W("", !0), Array.isArray(e.submenu) && e.submenu.length ? (q(), Y("span", zx, " > ")) : W("", !0)])]), + }, null, 2)) : W("", !0), H("span", null, J(e.label), 1)]), H("span", Hx, [e.rightHint ? (q(), Y("span", Ux, J(e.rightHint), 1)) : W("", !0), Array.isArray(e.submenu) && e.submenu.length ? (q(), Y("span", Wx, " > ")) : W("", !0)])]), _: 2 }, 1032, [ "class", @@ -23268,17 +23345,17 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr "onMouseenter", "onMouseleave" ]))], 64))), 128))], 4)) : W("", !0), - Z(en).submenu.open ? (q(), Y("div", { + Z(rn).submenu.open ? (q(), Y("div", { key: 1, ref_key: "submenuRef", ref: n, class: "mjr-grid-rating-submenu mjr-context-menu", - style: fr(s.value), + style: hr(s.value), role: "menu", "aria-label": "Grid context submenu", onMouseenter: y, onMouseleave: b - }, [(q(!0), Y(V, null, $n(Z(en).submenu.items, (e) => (q(), Y(V, { key: e.id }, [e.type === "separator" ? (q(), Y("div", Bx)) : (q(), Jn(a, { + }, [(q(!0), Y(V, null, nr(Z(rn).submenu.items, (e) => (q(), Y(V, { key: e.id }, [e.type === "separator" ? (q(), Y("div", Gx)) : (q(), Zn(a, { key: 1, type: "button", class: X(["mjr-context-menu-item", { @@ -23295,10 +23372,10 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr tabindex: e.disabled ? -1 : 0, onClick: (t) => g(e, t, "submenu") }, { - default: G(() => [H("span", Vx, [e.iconClass ? (q(), Y("i", { + default: G(() => [H("span", Kx, [e.iconClass ? (q(), Y("i", { key: 0, class: X(e.iconClass) - }, null, 2)) : W("", !0), H("span", null, J(e.label), 1)]), e.rightHint ? (q(), Y("span", Hx, J(e.rightHint), 1)) : W("", !0)]), + }, null, 2)) : W("", !0), H("span", null, J(e.label), 1)]), e.rightHint ? (q(), Y("span", qx, J(e.rightHint), 1)) : W("", !0)]), _: 2 }, 1032, [ "class", @@ -23306,119 +23383,119 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr "tabindex", "onClick" ]))], 64))), 128))], 36)) : W("", !0), - Z(en).tags.open && Z(en).tags.asset ? (q(), Y("div", { + Z(rn).tags.open && Z(rn).tags.asset ? (q(), Y("div", { key: 2, ref_key: "tagsPopoverRef", ref: r, class: "mjr-grid-popover", - style: fr(c.value) - }, [U(zn, { - asset: Z(en).tags.asset, - "model-value": Z(en).tags.asset?.tags || [], + style: hr(c.value) + }, [U(Hn, { + asset: Z(rn).tags.asset, + "model-value": Z(rn).tags.asset?.tags || [], "onUpdate:modelValue": T, onTagsChange: E }, null, 8, ["asset", "model-value"])], 4)) : W("", !0) ]); }; } -}), Wx = { class: "mjr-workflow-picker-dialog mjr-workflow-info-dialog" }, Gx = { class: "mjr-workflow-picker-header" }, Kx = { class: "mjr-workflow-picker-title" }, qx = { class: "mjr-workflow-picker-subtitle" }, Jx = { class: "mjr-workflow-info-form" }, Yx = { class: "is-wide" }, Xx = { class: "mjr-workflow-picker-footer" }, Zx = /* @__PURE__ */ tr({ +}), Yx = { class: "mjr-workflow-picker-dialog mjr-workflow-info-dialog" }, Xx = { class: "mjr-workflow-picker-header" }, Zx = { class: "mjr-workflow-picker-title" }, Qx = { class: "mjr-workflow-picker-subtitle" }, $x = { class: "mjr-workflow-info-form" }, eS = { class: "is-wide" }, tS = { class: "mjr-workflow-picker-footer" }, nS = /* @__PURE__ */ ir({ __name: "WorkflowInfoDialog", setup(e) { - let t = hr({ + let t = vr({ task: "", model_family: "", provider: "", runs_on: "", notes: "" - }), n = K(() => ca.workflow || null), r = K(() => String(n.value?.display_name || n.value?.filename || "Workflow")); - or(() => ca.open, (e) => { + }), n = K(() => da.workflow || null), r = K(() => String(n.value?.display_name || n.value?.filename || "Workflow")); + lr(() => da.open, (e) => { if (!e) return; let r = n.value || {}; t.task = String(r.user_task || r.task || ""), t.model_family = String(r.user_model_family || r.model_family || ""), t.provider = String(r.user_provider || r.provider || ""), t.runs_on = String(r.user_runs_on || r.runs_on || ""), t.notes = String(r.notes || ""); }); - function a() { - ua(); + function i() { + pa(); } - async function o() { + async function a() { let e = String(n.value?.filepath || "").trim(); if (!e) { - F(L("toast.workflowMissingPath", "Workflow file path is missing."), "error"); + x(L("toast.workflowMissingPath", "Workflow file path is missing."), "error"); return; } - let r = await i({ + let r = await c({ filepath: e, ...t }, { timeoutMs: 2e4 }); - r?.ok ? (F(L("toast.workflowUpdated", "Workflow updated"), "success", 1800), window?.dispatchEvent?.(new CustomEvent("mjr:reload-grid", { detail: { reason: "workflow-info" } })), a()) : F(r?.error || L("toast.workflowSaveFailed", "Failed to save workflow."), "error"); + r?.ok ? (x(L("toast.workflowUpdated", "Workflow updated"), "success", 1800), window?.dispatchEvent?.(new CustomEvent("mjr:reload-grid", { detail: { reason: "workflow-info" } })), i()) : x(r?.error || L("toast.workflowSaveFailed", "Failed to save workflow."), "error"); } - return (e, n) => (q(), Jn(yr, { to: "body" }, [Z(ca).open ? (q(), Y("div", { + return (e, n) => (q(), Zn(Sr, { to: "body" }, [Z(da).open ? (q(), Y("div", { key: 0, class: "mjr-workflow-picker-backdrop", - onClick: rr(a, ["self"]) - }, [H("section", Wx, [ - H("header", Gx, [H("div", null, [H("div", Kx, J(Z(L)("ctx.editWorkflowInfo", "Edit infos")), 1), H("div", qx, J(r.value), 1)]), H("button", { + onClick: or(i, ["self"]) + }, [H("section", Yx, [ + H("header", Xx, [H("div", null, [H("div", Zx, J(Z(L)("ctx.editWorkflowInfo", "Edit infos")), 1), H("div", Qx, J(r.value), 1)]), H("button", { type: "button", class: "mjr-workflow-picker-close", - onClick: a + onClick: i }, [...n[5] ||= [H("i", { class: "pi pi-times" }, null, -1)]])]), - H("div", Jx, [ - H("label", null, [n[6] ||= H("span", null, "Task", -1), Kn(H("input", { + H("div", $x, [ + H("label", null, [n[6] ||= H("span", null, "Task", -1), Yn(H("input", { "onUpdate:modelValue": n[0] ||= (e) => t.task = e, type: "text", placeholder: "I2V, I2I, T2V, Image Edit..." - }, null, 512), [[xr, t.task]])]), - H("label", null, [n[7] ||= H("span", null, "Model family", -1), Kn(H("input", { + }, null, 512), [[wr, t.task]])]), + H("label", null, [n[7] ||= H("span", null, "Model family", -1), Yn(H("input", { "onUpdate:modelValue": n[1] ||= (e) => t.model_family = e, type: "text", placeholder: "Flux, Qwen, Wan..." - }, null, 512), [[xr, t.model_family]])]), - H("label", null, [n[8] ||= H("span", null, "Provider", -1), Kn(H("input", { + }, null, 512), [[wr, t.model_family]])]), + H("label", null, [n[8] ||= H("span", null, "Provider", -1), Yn(H("input", { "onUpdate:modelValue": n[2] ||= (e) => t.provider = e, type: "text", placeholder: "Google, ByteDance, local..." - }, null, 512), [[xr, t.provider]])]), - H("label", null, [n[10] ||= H("span", null, "Runs on", -1), Kn(H("select", { "onUpdate:modelValue": n[3] ||= (e) => t.runs_on = e }, [...n[9] ||= [ + }, null, 512), [[wr, t.provider]])]), + H("label", null, [n[10] ||= H("span", null, "Runs on", -1), Yn(H("select", { "onUpdate:modelValue": n[3] ||= (e) => t.runs_on = e }, [...n[9] ||= [ H("option", { value: "" }, "Auto", -1), H("option", { value: "local" }, "local", -1), H("option", { value: "api" }, "api", -1), H("option", { value: "cloud" }, "cloud", -1) - ]], 512), [[vr, t.runs_on]])]), - H("label", Yx, [n[11] ||= H("span", null, "Notes", -1), Kn(H("textarea", { + ]], 512), [[xr, t.runs_on]])]), + H("label", eS, [n[11] ||= H("span", null, "Notes", -1), Yn(H("textarea", { "onUpdate:modelValue": n[4] ||= (e) => t.notes = e, rows: "5", placeholder: "Notes displayed on workflow hover" - }, null, 512), [[xr, t.notes]])]) + }, null, 512), [[wr, t.notes]])]) ]), - H("footer", Xx, [H("button", { + H("footer", tS, [H("button", { type: "button", class: "mjr-workflow-picker-secondary", - onClick: a + onClick: i }, J(Z(L)("btn.cancel", "Cancel")), 1), H("button", { type: "button", class: "mjr-workflow-picker-primary", - onClick: o + onClick: a }, J(Z(L)("btn.apply", "Apply")), 1)]) ])])) : W("", !0)])); } -}), Qx = { class: "mjr-workflow-picker-header" }, $x = { class: "mjr-workflow-picker-title" }, eS = { +}), rS = { class: "mjr-workflow-picker-header" }, iS = { class: "mjr-workflow-picker-title" }, aS = { key: 0, class: "mjr-workflow-picker-source" -}, tS = { class: "mjr-workflow-picker-toolbar" }, nS = { class: "mjr-workflow-picker-search" }, rS = ["placeholder"], iS = { value: "" }, aS = ["value"], oS = { value: "" }, sS = ["value"], cS = { value: "" }, lS = ["value"], uS = { class: "mjr-workflow-picker-body" }, dS = { +}, oS = { class: "mjr-workflow-picker-toolbar" }, sS = { class: "mjr-workflow-picker-search" }, cS = ["placeholder"], lS = { value: "" }, uS = ["value"], dS = { value: "" }, fS = ["value"], pS = { value: "" }, mS = ["value"], hS = { class: "mjr-workflow-picker-body" }, gS = { key: 0, class: "mjr-workflow-picker-empty" -}, fS = { +}, _S = { key: 1, class: "mjr-workflow-picker-empty is-error" -}, pS = { +}, vS = { key: 2, class: "mjr-workflow-picker-empty" -}, mS = ["onClick"], hS = { class: "mjr-workflow-picker-thumb" }, gS = ["src", "alt"], _S = { +}, yS = ["onClick"], bS = { class: "mjr-workflow-picker-thumb" }, xS = ["src", "alt"], SS = { key: 1, class: "pi pi-sitemap" -}, vS = { class: "mjr-workflow-picker-card-info" }, yS = ["disabled"], bS = { class: "mjr-workflow-picker-card-info" }, xS = { class: "mjr-workflow-picker-footer" }, SS = ["disabled"], CS = 120, wS = /* @__PURE__ */ tr({ +}, CS = { class: "mjr-workflow-picker-card-info" }, wS = ["disabled"], TS = { class: "mjr-workflow-picker-card-info" }, ES = { class: "mjr-workflow-picker-footer" }, DS = ["disabled"], OS = 120, kS = /* @__PURE__ */ ir({ __name: "WorkflowPickerDialog", setup(e) { - let t = Q(""), n = Q(!1), r = Q(!1), i = Q(""), a = Q([]), o = Q(""), s = Q(0), c = Q(!1), l = 0, u = K(() => Mn.sourceAsset || null), d = K(() => Mn.workflow || null), f = K(() => String(Mn.mode || "") === "asset"), p = K(() => String(u.value?.filename || u.value?.display_name || d.value?.display_name || d.value?.filename || u.value?.filepath || d.value?.filepath || "")), m = K(() => b("task")), h = K(() => b("model_family")), g = K(() => b("runs_on")), _ = Q(""), v = Q(""), y = Q(""); + let t = Q(""), n = Q(!1), r = Q(!1), i = Q(""), a = Q([]), o = Q(""), s = Q(0), c = Q(!1), l = 0, u = K(() => Fn.sourceAsset || null), d = K(() => Fn.workflow || null), f = K(() => String(Fn.mode || "") === "asset"), p = K(() => String(u.value?.filename || u.value?.display_name || d.value?.display_name || d.value?.filename || u.value?.filepath || d.value?.filepath || "")), m = K(() => b("task")), h = K(() => b("model_family")), g = K(() => b("runs_on")), _ = Q(""), v = Q(""), y = Q(""); function b(e) { let t = /* @__PURE__ */ new Set(); for (let n of a.value || []) { @@ -23462,12 +23539,12 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr e ? n.value = !0 : r.value = !0, i.value = ""; try { if (f.value) { - a.value = Array.isArray(Mn.items) ? Mn.items.filter((e) => String(e?.filepath || "").trim()) : [], !o.value && a.value[0]?.filepath && (o.value = String(a.value[0].filepath)); + a.value = Array.isArray(Fn.items) ? Fn.items.filter((e) => String(e?.filepath || "").trim()) : [], !o.value && a.value[0]?.filepath && (o.value = String(a.value[0].filepath)); return; } - let n = await le({ + let n = await de({ q: "*", - limit: CS, + limit: OS, offset: u, sort: "mtime" }, { timeoutMs: 2e4 }); @@ -23477,7 +23554,7 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr return; } let r = (Array.isArray(n?.data?.assets) ? n.data.assets : Array.isArray(n?.data) ? n.data : []).filter((e) => String(e?.filepath || "").trim()); - a.value = e ? r : [...a.value, ...r], s.value = u + r.length, c.value = r.length >= CS, !o.value && a.value[0]?.filepath && (o.value = String(a.value[0].filepath)); + a.value = e ? r : [...a.value, ...r], s.value = u + r.length, c.value = r.length >= OS, !o.value && a.value[0]?.filepath && (o.value = String(a.value[0].filepath)); } catch (e) { t === l && (i.value = String(e?.message || e || "Failed to load workflows"), a.value = []); } finally { @@ -23491,97 +23568,97 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr if (!(n.value || r.value || !c.value)) return E({ reset: !1 }); } function k() { - S.value && wn(S.value); + S.value && Dn(S.value); } function A() { - wn(null); + Dn(null); } - function ee(e) { + function j(e) { e.key === "Escape" && (e.preventDefault(), A()); } - return or(() => Mn.open, (e) => { + return lr(() => Fn.open, (e) => { if (e) { o.value = "", s.value = 0, c.value = !1, t.value = "", _.value = "", v.value = "", y.value = "", D(); try { - window.addEventListener("keydown", ee); + window.addEventListener("keydown", j); } catch {} } else try { - window.removeEventListener("keydown", ee); + window.removeEventListener("keydown", j); } catch {} - }), ar(() => { + }), cr(() => { try { - window.removeEventListener("keydown", ee); + window.removeEventListener("keydown", j); } catch {} - }), (e, a) => (q(), Jn(yr, { to: "body" }, [Z(Mn).open ? (q(), Y("div", { + }), (e, a) => (q(), Zn(Sr, { to: "body" }, [Z(Fn).open ? (q(), Y("div", { key: 0, class: "mjr-workflow-picker-backdrop", - onMousedown: rr(A, ["self"]) + onMousedown: or(A, ["self"]) }, [H("section", { class: X(["mjr-workflow-picker-dialog", { "is-asset-mode": f.value }]), role: "dialog", "aria-modal": "true" }, [ - H("header", Qx, [H("div", $x, [a[4] ||= H("i", { class: "pi pi-sitemap" }, null, -1), H("span", null, J(Z(Mn).title), 1)]), H("button", { + H("header", rS, [H("div", iS, [a[4] ||= H("i", { class: "pi pi-sitemap" }, null, -1), H("span", null, J(Z(Fn).title), 1)]), H("button", { class: "mjr-workflow-picker-icon-btn", type: "button", onClick: A }, [...a[5] ||= [H("i", { class: "pi pi-times" }, null, -1)]])]), - p.value ? (q(), Y("div", eS, [H("span", null, J(f.value ? Z(L)("tab.workflow", "Workflow") : Z(L)("dialog.workflowThumbnailSource", "Source")), 1), H("strong", null, J(p.value), 1)])) : W("", !0), - H("div", tS, [ - H("label", nS, [a[6] ||= H("i", { class: "pi pi-search" }, null, -1), Kn(H("input", { + p.value ? (q(), Y("div", aS, [H("span", null, J(f.value ? Z(L)("tab.workflow", "Workflow") : Z(L)("dialog.workflowThumbnailSource", "Source")), 1), H("strong", null, J(p.value), 1)])) : W("", !0), + H("div", oS, [ + H("label", sS, [a[6] ||= H("i", { class: "pi pi-search" }, null, -1), Yn(H("input", { "onUpdate:modelValue": a[0] ||= (e) => t.value = e, type: "search", placeholder: Z(L)("search.workflows", "Search workflows...") - }, null, 8, rS), [[xr, t.value]])]), - f.value ? W("", !0) : Kn((q(), Y("select", { + }, null, 8, cS), [[wr, t.value]])]), + f.value ? W("", !0) : Yn((q(), Y("select", { key: 0, "onUpdate:modelValue": a[1] ||= (e) => _.value = e - }, [H("option", iS, J(Z(L)("filter.task", "Task")), 1), (q(!0), Y(V, null, $n(m.value, (e) => (q(), Y("option", { + }, [H("option", lS, J(Z(L)("filter.task", "Task")), 1), (q(!0), Y(V, null, nr(m.value, (e) => (q(), Y("option", { key: e, value: e - }, J(e), 9, aS))), 128))], 512)), [[vr, _.value]]), - f.value ? W("", !0) : Kn((q(), Y("select", { + }, J(e), 9, uS))), 128))], 512)), [[xr, _.value]]), + f.value ? W("", !0) : Yn((q(), Y("select", { key: 1, "onUpdate:modelValue": a[2] ||= (e) => v.value = e - }, [H("option", oS, J(Z(L)("filter.model", "Model")), 1), (q(!0), Y(V, null, $n(h.value, (e) => (q(), Y("option", { + }, [H("option", dS, J(Z(L)("filter.model", "Model")), 1), (q(!0), Y(V, null, nr(h.value, (e) => (q(), Y("option", { key: e, value: e - }, J(e), 9, sS))), 128))], 512)), [[vr, v.value]]), - f.value ? W("", !0) : Kn((q(), Y("select", { + }, J(e), 9, fS))), 128))], 512)), [[xr, v.value]]), + f.value ? W("", !0) : Yn((q(), Y("select", { key: 2, "onUpdate:modelValue": a[3] ||= (e) => y.value = e - }, [H("option", cS, J(Z(L)("filter.runsOn", "Runs on")), 1), (q(!0), Y(V, null, $n(g.value, (e) => (q(), Y("option", { + }, [H("option", pS, J(Z(L)("filter.runsOn", "Runs on")), 1), (q(!0), Y(V, null, nr(g.value, (e) => (q(), Y("option", { key: e, value: e - }, J(e), 9, lS))), 128))], 512)), [[vr, y.value]]) + }, J(e), 9, mS))), 128))], 512)), [[xr, y.value]]) ]), - H("div", uS, [n.value ? (q(), Y("div", dS, J(Z(L)("status.loading", "Loading...")), 1)) : i.value ? (q(), Y("div", fS, J(i.value), 1)) : x.value.length ? (q(), Y(V, { key: 3 }, [(q(!0), Y(V, null, $n(x.value, (e) => (q(), Y("button", { + H("div", hS, [n.value ? (q(), Y("div", gS, J(Z(L)("status.loading", "Loading...")), 1)) : i.value ? (q(), Y("div", _S, J(i.value), 1)) : x.value.length ? (q(), Y(V, { key: 3 }, [(q(!0), Y(V, null, nr(x.value, (e) => (q(), Y("button", { key: e.filepath, type: "button", class: X(["mjr-workflow-picker-card", { "is-selected": o.value === String(e.filepath || "") }]), onClick: (t) => o.value = String(e.filepath || ""), onDblclick: k - }, [H("div", hS, [T(e) ? (q(), Y("img", { + }, [H("div", bS, [T(e) ? (q(), Y("img", { key: 0, src: T(e), alt: C(e), loading: "lazy" - }, null, 8, gS)) : (q(), Y("i", _S))]), H("div", vS, [ + }, null, 8, xS)) : (q(), Y("i", SS))]), H("div", CS, [ H("strong", null, J(C(e)), 1), H("span", null, J(w(e)), 1), H("small", null, J(e.filename), 1) - ])], 42, mS))), 128)), !f.value && c.value ? (q(), Y("button", { + ])], 42, yS))), 128)), !f.value && c.value ? (q(), Y("button", { key: 0, type: "button", class: "mjr-workflow-picker-card mjr-workflow-picker-load-more", disabled: r.value, onClick: O - }, [a[7] ||= H("div", { class: "mjr-workflow-picker-thumb" }, [H("i", { class: "pi pi-angle-down" })], -1), H("div", bS, [ + }, [a[7] ||= H("div", { class: "mjr-workflow-picker-thumb" }, [H("i", { class: "pi pi-angle-down" })], -1), H("div", TS, [ H("strong", null, J(r.value ? Z(L)("status.loading", "Loading...") : Z(L)("action.loadMore", "Load more")), 1), H("span", null, J(Z(L)("tab.workflow", "Workflow")), 1), H("small", null, J(s.value) + " loaded", 1) - ])], 8, yS)) : W("", !0)], 64)) : (q(), Y("div", pS, J(Z(L)("toast.noWorkflowsFound", "No workflows found.")), 1))]), - H("footer", xS, [H("button", { + ])], 8, wS)) : W("", !0)], 64)) : (q(), Y("div", vS, J(Z(L)("toast.noWorkflowsFound", "No workflows found.")), 1))]), + H("footer", ES, [H("button", { type: "button", class: "mjr-workflow-picker-btn", onClick: A @@ -23590,31 +23667,31 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr class: "mjr-workflow-picker-btn is-primary", disabled: !S.value, onClick: k - }, J(Z(L)("action.apply", "Apply")), 9, SS)]) + }, J(Z(L)("action.apply", "Apply")), 9, DS)]) ], 2)], 32)) : W("", !0)])); } -}), TS = { class: "mjr-workflow-picker-dialog mjr-workflow-info-dialog" }, ES = { class: "mjr-workflow-picker-header" }, DS = { class: "mjr-workflow-picker-title" }, OS = { class: "mjr-workflow-picker-subtitle" }, kS = { class: "mjr-workflow-info-form" }, AS = { class: "is-wide" }, jS = { class: "is-wide" }, MS = { class: "mjr-workflow-picker-footer" }, NS = /* @__PURE__ */ tr({ +}), AS = { class: "mjr-workflow-picker-dialog mjr-workflow-info-dialog" }, jS = { class: "mjr-workflow-picker-header" }, MS = { class: "mjr-workflow-picker-title" }, NS = { class: "mjr-workflow-picker-subtitle" }, PS = { class: "mjr-workflow-info-form" }, FS = { class: "is-wide" }, IS = { class: "is-wide" }, LS = { class: "mjr-workflow-picker-footer" }, RS = /* @__PURE__ */ ir({ __name: "WorkflowSaveInfoDialog", setup(e) { - let t = hr({ + let t = vr({ name: "", task: "", model_family: "", provider: "", runs_on: "", notes: "" - }), n = K(() => Z_.initial || {}), r = K(() => L("dialog.saveWorkflowWithInfo", "Save workflow")), i = K(() => L("dialog.workflowInfoAutoFallback", "Leave fields empty to use automatic workflow detection.")); - or(() => Z_.open, (e) => { + }), n = K(() => nv.initial || {}), r = K(() => L("dialog.saveWorkflowWithInfo", "Save workflow")), i = K(() => L("dialog.workflowInfoAutoFallback", "Leave fields empty to use automatic workflow detection.")); + lr(() => nv.open, (e) => { if (!e) return; let r = n.value || {}; t.name = String(r.name || r.workflow?.name || r.workflow?.title || "workflow").trim(), t.task = String(r.task || ""), t.model_family = String(r.model_family || ""), t.provider = String(r.provider || ""), t.runs_on = String(r.runs_on || ""), t.notes = String(r.notes || ""); }); function a() { - $_(null); + iv(null); } function o() { let e = String(t.name || "").trim(); - e && $_({ + e && iv({ name: e, task: String(t.task || "").trim(), model_family: String(t.model_family || "").trim(), @@ -23624,13 +23701,13 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr }); } return (e, n) => { - let s = Qn("MButton"), c = Qn("MInputText"), l = Qn("MSelect"), u = Qn("MTextarea"); - return q(), Jn(yr, { to: "body" }, [Z(Z_).open ? (q(), Y("div", { + let s = tr("MButton"), c = tr("MInputText"), l = tr("MSelect"), u = tr("MTextarea"); + return q(), Zn(Sr, { to: "body" }, [Z(nv).open ? (q(), Y("div", { key: 0, class: "mjr-workflow-picker-backdrop", - onClick: rr(a, ["self"]) - }, [H("section", TS, [ - H("header", ES, [H("div", null, [H("div", DS, J(r.value), 1), H("div", OS, J(i.value), 1)]), U(s, { + onClick: or(a, ["self"]) + }, [H("section", AS, [ + H("header", jS, [H("div", null, [H("div", MS, J(r.value), 1), H("div", NS, J(i.value), 1)]), U(s, { type: "button", class: "mjr-workflow-picker-close", onClick: a @@ -23638,13 +23715,13 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr default: G(() => [...n[6] ||= [H("i", { class: "pi pi-times" }, null, -1)]]), _: 1 })]), - H("div", kS, [ - H("label", AS, [H("span", null, J(Z(L)("dialog.workflowSaveName", "Workflow name")), 1), U(c, { + H("div", PS, [ + H("label", FS, [H("span", null, J(Z(L)("dialog.workflowSaveName", "Workflow name")), 1), U(c, { modelValue: t.name, "onUpdate:modelValue": n[0] ||= (e) => t.name = e, type: "text", placeholder: "workflow", - onKeydown: br(rr(o, ["prevent"]), ["enter"]) + onKeydown: Cr(or(o, ["prevent"]), ["enter"]) }, null, 8, ["modelValue", "onKeydown"])]), H("label", null, [n[7] ||= H("span", null, "Task", -1), U(c, { modelValue: t.task, @@ -23689,19 +23766,19 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr "option-value": "value", placeholder: "Auto" }, null, 8, ["modelValue"])]), - H("label", jS, [n[11] ||= H("span", null, "Notes", -1), U(u, { + H("label", IS, [n[11] ||= H("span", null, "Notes", -1), U(u, { modelValue: t.notes, "onUpdate:modelValue": n[5] ||= (e) => t.notes = e, rows: "5", placeholder: "Notes displayed on workflow hover" }, null, 8, ["modelValue"])]) ]), - H("footer", MS, [U(s, { + H("footer", LS, [U(s, { type: "button", class: "mjr-workflow-picker-secondary", onClick: a }, { - default: G(() => [pr(J(Z(L)("btn.cancel", "Cancel")), 1)]), + default: G(() => [gr(J(Z(L)("btn.cancel", "Cancel")), 1)]), _: 1 }), U(s, { type: "button", @@ -23709,29 +23786,29 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr disabled: !String(t.name || "").trim(), onClick: o }, { - default: G(() => [pr(J(Z(L)("btn.save", "Save")), 1)]), + default: G(() => [gr(J(Z(L)("btn.save", "Save")), 1)]), _: 1 }, 8, ["disabled"])]) ])])) : W("", !0)]); }; } -}), PS = /* @__PURE__ */ tr({ +}), zS = /* @__PURE__ */ ir({ __name: "ContextMenuPortal", setup(e) { - let t = Q(""), n = K(() => rn(t.value)); - return Zn(() => { - t.value = cn(); - }), ir(() => { - Xt(t.value), t.value = ""; + let t = Q(""), n = K(() => sn(t.value)); + return er(() => { + t.value = dn(); + }), sr(() => { + $t(t.value), t.value = ""; }), (e, t) => n.value ? (q(), Y(V, { key: 0 }, [ - U(Ux), - U(Px), - U(wS), - U(Zx), - U(NS) + U(Jx), + U(zx), + U(kS), + U(nS), + U(RS) ], 64)) : W("", !0); } -}), FS = { +}), BS = { class: "mjr-sidebar-content", style: { flex: "1", @@ -23741,29 +23818,29 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr "flex-direction": "column", gap: "16px" } -}, IS = { +}, VS = { class: "mjr-sidebar-rating-tags", style: { display: "flex", "flex-direction": "column", gap: "10px" } -}, LS = { style: { +}, HS = { style: { display: "flex", "align-items": "center", gap: "8px" -} }, RS = { style: { +} }, US = { style: { "font-size": "0.8em", opacity: "0.6", "min-width": "44px" -} }, zS = { style: { +} }, WS = { style: { display: "flex", "flex-direction": "column", gap: "4px" -} }, BS = { style: { +} }, GS = { style: { "font-size": "0.8em", opacity: "0.6" -} }, VS = /* @__PURE__ */ tr({ +} }, KS = /* @__PURE__ */ ir({ __name: "AssetSidebarContent", props: { asset: {}, @@ -23777,14 +23854,14 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr return e === "workflow" || t === "workflow" || r.endsWith(".json"); }), o = K(() => Number(n.asset?.rating) || 0), s = K(() => n.asset?.tags || []), c = K(() => { try { - return !!(Mt()?.sidebar?.showPreviewThumb ?? !0); + return !!(Ft()?.sidebar?.showPreviewThumb ?? !0); } catch { return !0; } }); function l() { if (n.sidebar) try { - Ah(n.sidebar); + Fh(n.sidebar); } catch (e) { console.debug?.(e); } @@ -23795,49 +23872,49 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr if (!u.value && d.value) { u.value = !0; try { - F(L("toast.collectingFiles", "Collecting files..."), "info", 2500); + x(L("toast.collectingFiles", "Collecting files..."), "info", 2500); let e = await De(d.value); if (!e?.ok) { - F(e?.error || L("toast.collectFilesFailed", "Collect files failed"), "error"); + x(e?.error || L("toast.collectFilesFailed", "Collect files failed"), "error"); return; } let t = e?.data || {}, n = Array.isArray(t.missing) ? t.missing.length : 0, r = t.fallback_used ? L("toast.collectFallbackDir", "output folder (source folder not writable)") : L("toast.collectSameDir", "asset folder"), i = L("toast.collectedFiles", "Collected {name} in {where}", { name: String(t.zip_name || "zip"), where: r }); - n > 0 && (i += ` \u2014 ${n} ${L("toast.collectMissingInputs", "input(s) missing")}`), F(i, n > 0 ? "warning" : "success", 6e3); + n > 0 && (i += ` \u2014 ${n} ${L("toast.collectMissingInputs", "input(s) missing")}`), x(i, n > 0 ? "warning" : "success", 6e3); } catch (e) { - console.debug?.(e), F(L("toast.collectFilesFailed", "Collect files failed"), "error"); + console.debug?.(e), x(L("toast.collectFilesFailed", "Collect files failed"), "error"); } finally { u.value = !1; } } } return (t, n) => { - let r = Qn("MButton"); + let r = tr("MButton"); return q(), Y(V, null, [ - U(cx, { + U(px, { asset: e.asset, onClose: l }, null, 8, ["asset"]), - H("div", FS, [i.value ? (q(), Jn(Tx, { + H("div", BS, [i.value ? (q(), Zn(Ax, { key: 0, asset: e.asset }, null, 8, ["asset"])) : (q(), Y(V, { key: 1 }, [a.value ? W("", !0) : (q(), Y(V, { key: 0 }, [ - U(yx, { + U(wx, { asset: e.asset, "show-preview-thumb": c.value }, null, 8, ["asset", "show-preview-thumb"]), - H("div", IS, [H("div", LS, [H("span", RS, J(Z(L)("sidebar.rating", "Rating")), 1), U(Nn, { + H("div", VS, [H("div", HS, [H("span", US, J(Z(L)("sidebar.rating", "Rating")), 1), U(In, { asset: e.asset, "model-value": o.value, size: 60 - }, null, 8, ["asset", "model-value"])]), H("div", zS, [H("span", BS, J(Z(L)("sidebar.tags", "Tags")), 1), U(zn, { + }, null, 8, ["asset", "model-value"])]), H("div", WS, [H("span", GS, J(Z(L)("sidebar.tags", "Tags")), 1), U(Hn, { asset: e.asset, "model-value": s.value }, null, 8, ["asset", "model-value"])])]), - U(xn, { asset: e.asset }, null, 8, ["asset"]), - d.value ? (q(), Jn(r, { + U(wn, { asset: e.asset }, null, 8, ["asset"]), + d.value ? (q(), Zn(r, { key: 0, type: "button", class: "mjr-btn mjr-sidebar-collect-btn", @@ -23856,13 +23933,13 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr default: G(() => [H("i", { class: X(u.value ? "pi pi-spin pi-spinner" : "pi pi-box") }, null, 2), H("span", null, J(u.value ? Z(L)("sidebar.collectingFiles", "Collecting...") : Z(L)("sidebar.collectFiles", "Collect files")), 1)]), _: 1 }, 8, ["disabled", "title"])) : W("", !0), - U(On, { asset: e.asset }, null, 8, ["asset"]) - ], 64)), U(Ln, { asset: e.asset }, null, 8, ["asset"])], 64))]), - U(PS) + U(jn, { asset: e.asset }, null, 8, ["asset"]) + ], 64)), U(Bn, { asset: e.asset }, null, 8, ["asset"])], 64))]), + U(zS) ], 64); }; } -}), HS = { +}), qS = { key: 1, class: "mjr-sidebar-placeholder", style: { @@ -23875,11 +23952,11 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr "font-size": "0.85em", "text-align": "center" } -}, US = /* @__PURE__ */ tr({ +}, JS = /* @__PURE__ */ ir({ __name: "SidebarSection", setup(e, { expose: t }) { - let n = Q(null), { activeAsset: r, onUpdateCallback: i } = vh(); - return Zn(() => { + let n = Q(null), { activeAsset: r, onUpdateCallback: i } = Ch(); + return er(() => { let e = n.value; if (!e) return; e.style.flex = "0 0 0px", e.style.width = "0", e.style.maxWidth = "0", e.style.minWidth = "0", e.style.overflow = "hidden", e.style.borderLeft = "none", e.style.borderRight = "none", e._requestSeq = 0, e._currentAsset = null, e._currentFullAsset = null, e._ratingTagsSection = null; @@ -23889,7 +23966,7 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr }, a = (n) => { let r = n?.detail || {}, a = r.assetId ?? r.id ?? null, o = Number(r.rating); if (t(a) && Number.isFinite(o)) { - xh({ rating: o }, i.value); + Eh({ rating: o }, i.value); try { e._currentAsset && (e._currentAsset.rating = o), e._currentFullAsset && (e._currentFullAsset.rating = o); } catch (e) { @@ -23899,7 +23976,7 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr }, o = (n) => { let r = n?.detail || {}, a = r.assetId ?? r.id ?? null, o = Array.isArray(r.tags) ? r.tags : null; if (t(a) && o) { - xh({ tags: o }, i.value); + Eh({ tags: o }, i.value); try { e._currentAsset && (e._currentAsset.tags = o), e._currentFullAsset && (e._currentFullAsset.tags = o); } catch (e) { @@ -23921,16 +23998,16 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr }, e._dispose = e.dispose; let l = c ? { signal: c.signal } : void 0; try { - window.addEventListener(Ft, a, l), window.addEventListener(Pt, o, l); + window.addEventListener(Rt, a, l), window.addEventListener(Lt, o, l); } catch (e) { console.debug?.(e); try { - window.addEventListener(Ft, a), window.addEventListener(Pt, o), s.push(() => window.removeEventListener(Ft, a)), s.push(() => window.removeEventListener(Pt, o)); + window.addEventListener(Rt, a), window.addEventListener(Lt, o), s.push(() => window.removeEventListener(Rt, a)), s.push(() => window.removeEventListener(Lt, o)); } catch (e) { console.debug?.(e); } } - }), ir(() => { + }), sr(() => { try { n.value?.dispose?.(); } catch {} @@ -23951,7 +24028,7 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr transition: "width 140ms ease,max-width 140ms ease,flex-basis 140ms ease,border-color 140ms ease", contain: "layout paint style" } - }, [Z(r) ? (q(), Jn(VS, { + }, [Z(r) ? (q(), Zn(KS, { key: 0, asset: Z(r), "on-update": Z(i), @@ -23960,18 +24037,18 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr "asset", "on-update", "sidebar" - ])) : (q(), Y("div", HS, J(Z(L)("sidebar.placeholderSelectAsset", "Select an asset to view details")), 1))], 512)); + ])) : (q(), Y("div", qS, J(Z(L)("sidebar.placeholderSelectAsset", "Select an asset to view details")), 1))], 512)); } -}), WS = /* @__PURE__ */ tr({ +}), YS = /* @__PURE__ */ ir({ __name: "App", setup(e) { let t = Q(null), n = Q(null), r = Q(null), i = Q(null), a = Q(null), o = Q(null), s = null; - return Zn(async () => { + return er(async () => { if (!t.value) return; let e = {}; n.value && (e.statusSection = n.value.statusSection, e.statusDot = n.value.statusDot, e.statusText = n.value.statusText, e.capabilitiesSection = n.value.capabilitiesSection), r.value && (e.headerSection = r.value), i.value && (e.summaryBar = i.value.summaryBar, e.updateSummaryBar = i.value.updateSummaryBar, e.folderBreadcrumb = i.value.folderBreadcrumb, e.folderBreadcrumbController = i.value), a.value && (e.browseSection = a.value.browseSection, e.gridWrapper = a.value.gridWrapper, e.gridContainer = a.value.gridContainer, e.onGridContainerReady = (...e) => a.value?.onGridContainerReady?.(...e), e.bindGridHostState = (...e) => a.value?.bindGridHostState?.(...e), e.restoreGridUiState = (...e) => a.value?.restoreGridUiState?.(...e), e.initAssetsQueryController = (...e) => a.value?.initAssetsQueryController?.(...e), e.loadAssets = (e, t = "*", n = {}) => a.value?.loadAssets?.(t, n), e.loadAssetsFromList = (e, t = [], n = {}) => a.value?.loadAssetsFromList?.(t, n), e.prepareGridForScopeSwitch = (e) => a.value?.prepareGridForScopeSwitch?.(), e.refreshGrid = (e) => a.value?.refreshGrid?.(), e.captureAnchor = (e) => a.value?.captureAnchor?.(), e.restoreAnchor = (e, t) => a.value?.restoreAnchor?.(t), e.hydrateGridFromSnapshot = (e, t = {}, n = {}) => a.value?.hydrateGridFromSnapshot?.(t, n), e.upsertAsset = (e, t) => a.value?.upsertAsset?.(t), e.removeAssets = (e, t = [], n = {}) => a.value?.removeAssets?.(t, n), e.disposeGrid = (e) => a.value?.disposeGrid?.()), o.value && (e.sidebar = o.value.sidebar); try { - s = await J_(t.value, { + s = await $_(t.value, { useComfyThemeUI: !0, external: e }); @@ -23979,35 +24056,35 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr console.warn("[Majoor] App.vue: mountAssetsManagerPanelRuntime failed", e); } try { - Vh().validatePersistedCustomRoot?.(); + Kh().validatePersistedCustomRoot?.(); } catch {} - }), ir(() => { + }), sr(() => { try { s?.dispose?.(); } catch {} s = null; }), (e, s) => (q(), Y(V, null, [ - U(X_, { + U(tv, { ref_key: "statusSectionRef", ref: n }, null, 512), - U(kb, { + U(Pb, { ref_key: "headerSectionRef", ref: r }, null, 512), - U(qb, { + U(Qb, { ref_key: "summaryBarSectionRef", ref: i }, null, 512), - U(ax, { + U(ux, { ref_key: "assetsGridRef", ref: a }, null, 512), - U(US, { + U(JS, { ref_key: "sidebarSectionRef", ref: o }, null, 512), - U(PS), + U(zS), H("div", { ref_key: "containerRef", ref: t, @@ -24021,7 +24098,7 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr }, null, 512) ], 64)); } -}), GS = /* @__PURE__ */ tr({ +}), XS = /* @__PURE__ */ ir({ __name: "GeneratedFeedApp", setup(e) { let t = Q(null), n = null; @@ -24041,18 +24118,18 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr } } } - return Zn(() => { + return er(() => { if (t.value) try { - r(t.value), n = Of(t.value); + r(t.value), n = jf(t.value); } catch (e) { console.warn("[Majoor] GeneratedFeedApp.vue: createGeneratedFeedHost failed", e); } - }), ir(() => { + }), sr(() => { try { - kf(n); + Mf(n); } catch {} n = null; - }), (e, n) => (q(), Y(V, null, [U(PS), H("div", { + }), (e, n) => (q(), Y(V, null, [U(zS), H("div", { ref_key: "containerRef", ref: t, class: "mjr-vue-feed-root", @@ -24067,43 +24144,43 @@ var px = { class: "mjr-sidebar-preview" }, mx = ["src"], hx = ["src"], gx = ["sr } }, null, 512)], 64)); } -}), KS = "data-mjr-topbar-mfv-host", qS = "data-mjr-topbar-mfv-button", JS = "data-mjr-topbar-mfv-slot", YS = "label.floatingViewer", XS = "Viewer", ZS = "V", QS = "viewer.mfvTopbarButton", $S = null, eC = null, tC = null, nC = null, rC = null, iC = null, aC = null, oC = null, sC = !1, cC = null, lC = !1, uC = !1; -function dC(e) { +}), ZS = "data-mjr-topbar-mfv-host", QS = "data-mjr-topbar-mfv-button", $S = "data-mjr-topbar-mfv-slot", eC = "label.floatingViewer", tC = "Viewer", nC = "V", rC = "viewer.mfvTopbarButton", iC = null, aC = null, oC = null, sC = null, cC = null, lC = null, uC = null, dC = null, fC = !1, pC = null, mC = !1, hC = !1; +function gC(e) { if (!e) { - !rC && typeof MutationObserver < "u" && (rC = new MutationObserver(() => { - fC() && (rC?.disconnect?.(), rC = null, DC()); - }), rC.observe(document.body, { + !cC && typeof MutationObserver < "u" && (cC = new MutationObserver(() => { + _C() && (cC?.disconnect?.(), cC = null, MC()); + }), cC.observe(document.body, { childList: !0, subtree: !0 })); return; } try { - rC?.disconnect?.(); + cC?.disconnect?.(); } catch {} - if (rC = null, eC !== e) { + if (cC = null, aC !== e) { try { - $S?.disconnect?.(); + iC?.disconnect?.(); } catch {} - $S = new MutationObserver(() => { - hC(e) || DC(); - }), $S.observe(e, { + iC = new MutationObserver(() => { + bC(e) || MC(); + }), iC.observe(e, { childList: !0, subtree: !0 - }), eC = e; + }), aC = e; } let t = e.parentElement; - if (t && nC !== t) { + if (t && sC !== t) { try { - tC?.disconnect?.(); + oC?.disconnect?.(); } catch {} - tC = new MutationObserver(() => DC()), tC.observe(t, { childList: !0 }), nC = t; + oC = new MutationObserver(() => MC()), oC.observe(t, { childList: !0 }), sC = t; } } -function fC() { +function _C() { return typeof document > "u" ? null : document.querySelector(".actionbar-container"); } -function pC(e = fC()) { +function vC(e = _C()) { if (typeof document > "u") return; let t = document.documentElement?.style; if (!t) return; @@ -24114,203 +24191,203 @@ function pC(e = fC()) { let n = e.getBoundingClientRect(), r = Math.max(60, Math.ceil(n.bottom + 12)); t.setProperty("--mjr-mfv-top-offset", `${r}px`); } -function mC(e) { +function yC(e) { return e && e.querySelector(".queue-button-group") || null; } -function hC(e) { +function bC(e) { try { - let t = e?.querySelector?.(`[${JS}]`), n = mC(e); - return !t || !n ? !1 : t.parentElement === n.parentElement && t.previousElementSibling === n && !!t.querySelector(`[${KS}]`); + let t = e?.querySelector?.(`[${$S}]`), n = yC(e); + return !t || !n ? !1 : t.parentElement === n.parentElement && t.previousElementSibling === n && !!t.querySelector(`[${ZS}]`); } catch { return !1; } } -function gC(e) { +function xC(e) { if (!e) return null; - let t = e.querySelector(`[${JS}]`); - t || (t = document.createElement("div"), t.setAttribute(JS, "1"), t.className = "flex h-full items-center pointer-events-auto", t.style.position = "relative", t.style.zIndex = "10030", t.style.padding = "0 4px"); - let n = mC(e), r = n?.parentElement || e; + let t = e.querySelector(`[${$S}]`); + t || (t = document.createElement("div"), t.setAttribute($S, "1"), t.className = "flex h-full items-center pointer-events-auto", t.style.position = "relative", t.style.zIndex = "10030", t.style.padding = "0 4px"); + let n = yC(e), r = n?.parentElement || e; return t.parentElement === r ? n && r && t.previousElementSibling !== n ? r.insertBefore(t, n.nextSibling) : !n && t !== r.lastElementChild && r.appendChild(t) : n && r ? r.insertBefore(t, n.nextSibling) : r.appendChild(t), t; } -function _C(e = "pi pi-eye") { +function SC(e = "pi pi-eye") { let t = document.createElement("i"); return t.className = e, t.setAttribute("aria-hidden", "true"), t; } -function vC(e = "Viewer") { +function CC(e = "Viewer") { let t = document.createElement("span"); return t.className = "mjr-topbar-mfv-label", t.textContent = e, t; } -function yC(e) { +function wC(e) { if (!e) return; - let t = lC ? L("tooltip.closeMFV", "Close Floating Viewer") : L("tooltip.openMFV", "Open Floating Viewer"); - Vt(e, t, ZS, { ariaLabel: t }), e.setAttribute("aria-pressed", lC ? "true" : "false"), e.classList.toggle("primary", lC), e.classList.toggle("mjr-topbar-mfv-active", lC), e.replaceChildren(_C(lC ? "pi pi-eye-slash" : "pi pi-eye"), vC(L(YS, XS))); + let t = mC ? L("tooltip.closeMFV", "Close Floating Viewer") : L("tooltip.openMFV", "Open Floating Viewer"); + Wt(e, t, nC, { ariaLabel: t }), e.setAttribute("aria-pressed", mC ? "true" : "false"), e.classList.toggle("primary", mC), e.classList.toggle("mjr-topbar-mfv-active", mC), e.replaceChildren(SC(mC ? "pi pi-eye-slash" : "pi pi-eye"), CC(L(eC, tC))); } -function bC() { +function TC() { try { window.dispatchEvent(new Event(B.MFV_TOGGLE)); } catch (e) { console.debug?.("[Majoor] top bar MFV launch failed", e); } - DC(); -} -function xC() { - let e = document.createElement("button"); - return e.type = "button", e.setAttribute(qS, "1"), e.className = "comfyui-button mjr-topbar-mfv-button", e.style.position = "relative", e.style.zIndex = "10030", e.style.width = "auto", e.style.height = "32px", e.style.minWidth = "32px", e.style.padding = "0 10px", e.style.gap = "6px", e.style.display = "inline-flex", e.style.alignItems = "center", e.style.justifyContent = "center", e.style.whiteSpace = "nowrap", e.addEventListener("click", bC), yC(e), e; -} -function SC() { - let e = document.createElement("div"); - return e.setAttribute(KS, "1"), e.className = "mjr-topbar-mfv-button-host", e.style.position = "relative", e.appendChild(xC()), e; -} -function CC() { - if (typeof document > "u" || uC) return; - let e = !!document.querySelector(".mjr-mfv.is-visible"); - lC !== e && (lC = e); -} -function wC() { - return R.MFV_TOPBAR_BUTTON !== !1; -} -function TC() { - try { - document.querySelector(`[${KS}]`)?.remove?.(), document.querySelector(`[${JS}]`)?.remove?.(); - } catch (e) { - console.debug?.(e); - } + MC(); } function EC() { - let e = fC(); - if (!e) return pC(null), null; - if (!wC()) return TC(), pC(e), null; - dC(e), CC(); - let t = gC(e); - if (!t) return pC(e), null; - let n = t.querySelector(`[${KS}]`); - return n ||= SC(), n.parentElement !== t && t.replaceChildren(n), pC(e), yC(n.querySelector(`[${qS}]`)), t; + let e = document.createElement("button"); + return e.type = "button", e.setAttribute(QS, "1"), e.className = "comfyui-button mjr-topbar-mfv-button", e.style.position = "relative", e.style.zIndex = "10030", e.style.width = "auto", e.style.height = "32px", e.style.minWidth = "32px", e.style.padding = "0 10px", e.style.gap = "6px", e.style.display = "inline-flex", e.style.alignItems = "center", e.style.justifyContent = "center", e.style.whiteSpace = "nowrap", e.addEventListener("click", TC), wC(e), e; } function DC() { - sC || (sC = !0, cC = window.setTimeout(() => { - sC = !1, cC = null, EC(); - }, 32)); + let e = document.createElement("div"); + return e.setAttribute(ZS, "1"), e.className = "mjr-topbar-mfv-button-host", e.style.position = "relative", e.appendChild(EC()), e; } function OC() { - return typeof window > "u" || typeof document > "u" || !document.body ? !1 : (DC(), iC || (iC = (e) => { - lC = !!e?.detail?.visible, uC = !0, DC(); - }, window.addEventListener(B.MFV_VISIBILITY_CHANGED, iC)), aC || (aC = () => DC(), window.addEventListener("resize", aC)), oC || (oC = (e) => { - let t = e?.detail?.key; - (t === QS || t === "storage") && DC(); - }, window.addEventListener("mjr-settings-changed", oC)), dC(fC()), !0); + if (typeof document > "u" || hC) return; + let e = !!document.querySelector(".mjr-mfv.is-visible"); + mC !== e && (mC = e); } function kC() { + return R.MFV_TOPBAR_BUTTON !== !1; +} +function AC() { try { - $S?.disconnect?.(); + document.querySelector(`[${ZS}]`)?.remove?.(), document.querySelector(`[${$S}]`)?.remove?.(); } catch (e) { console.debug?.(e); } - $S = null, eC = null; +} +function jC() { + let e = _C(); + if (!e) return vC(null), null; + if (!kC()) return AC(), vC(e), null; + gC(e), OC(); + let t = xC(e); + if (!t) return vC(e), null; + let n = t.querySelector(`[${ZS}]`); + return n ||= DC(), n.parentElement !== t && t.replaceChildren(n), vC(e), wC(n.querySelector(`[${QS}]`)), t; +} +function MC() { + fC || (fC = !0, pC = window.setTimeout(() => { + fC = !1, pC = null, jC(); + }, 32)); +} +function NC() { + return typeof window > "u" || typeof document > "u" || !document.body ? !1 : (MC(), lC || (lC = (e) => { + mC = !!e?.detail?.visible, hC = !0, MC(); + }, window.addEventListener(B.MFV_VISIBILITY_CHANGED, lC)), uC || (uC = () => MC(), window.addEventListener("resize", uC)), dC || (dC = (e) => { + let t = e?.detail?.key; + (t === rC || t === "storage") && MC(); + }, window.addEventListener("mjr-settings-changed", dC)), gC(_C()), !0); +} +function PC() { try { - tC?.disconnect?.(); + iC?.disconnect?.(); } catch (e) { console.debug?.(e); } - tC = null, nC = null; + iC = null, aC = null; try { - rC?.disconnect?.(); + oC?.disconnect?.(); } catch (e) { console.debug?.(e); } - rC = null; + oC = null, sC = null; try { - cC && window.clearTimeout(cC); + cC?.disconnect?.(); } catch (e) { console.debug?.(e); } - cC = null, iC && typeof window < "u" && window.removeEventListener(B.MFV_VISIBILITY_CHANGED, iC), iC = null, aC && typeof window < "u" && window.removeEventListener("resize", aC), aC = null, oC && typeof window < "u" && window.removeEventListener("mjr-settings-changed", oC), oC = null, sC = !1, lC = !1, uC = !1; + cC = null; try { - document.documentElement?.style?.setProperty("--mjr-mfv-top-offset", "60px"), document.querySelector(`[${KS}]`)?.remove?.(), document.querySelector(`[${JS}]`)?.remove?.(); + pC && window.clearTimeout(pC); + } catch (e) { + console.debug?.(e); + } + pC = null, lC && typeof window < "u" && window.removeEventListener(B.MFV_VISIBILITY_CHANGED, lC), lC = null, uC && typeof window < "u" && window.removeEventListener("resize", uC), uC = null, dC && typeof window < "u" && window.removeEventListener("mjr-settings-changed", dC), dC = null, fC = !1, mC = !1, hC = !1; + try { + document.documentElement?.style?.setProperty("--mjr-mfv-top-offset", "60px"), document.querySelector(`[${ZS}]`)?.remove?.(), document.querySelector(`[${$S}]`)?.remove?.(); } catch (e) { console.debug?.(e); } } // ui/features/runtime/entryUiRegistration.ts -var AC = "mjr-global-runtime-root", jC = "_mjrGlobalRuntimeVueApp", MC = "_mjrSidebarVueApp", NC = "_mjrFeedVueApp", PC = "majoor-generated-feed", FC = null; -function IC() { +var FC = "mjr-global-runtime-root", IC = "_mjrGlobalRuntimeVueApp", LC = "_mjrSidebarVueApp", RC = "_mjrFeedVueApp", zC = "majoor-generated-feed", BC = null; +function VC() { if (typeof document > "u" || !document?.body) return null; - let e = document.getElementById(AC); - return e || (e = document.createElement("div"), e.id = AC, e.setAttribute("role", "presentation"), e.style.cssText = "position:fixed;inset:0;overflow:visible;pointer-events:none;z-index:10020;", document.body.appendChild(e), e); + let e = document.getElementById(FC); + return e || (e = document.createElement("div"), e.id = FC, e.setAttribute("role", "presentation"), e.style.cssText = "position:fixed;inset:0;overflow:visible;pointer-events:none;z-index:10020;", document.body.appendChild(e), e); } -function LC() { +function HC() { try { - let e = IC(); + let e = VC(); if (!e) return !1; - let t = !!Bt(e, mm, jC); - return OC(), t; + let t = !!Ut(e, _m, IC); + return NC(), t; } catch { return !1; } } -function RC() { +function UC() { try { - kC(); - let e = document.getElementById(AC); + PC(); + let e = document.getElementById(FC); if (!e) return; - Kt(e, jC), e.remove?.(); + Yt(e, IC), e.remove?.(); } catch {} } -function zC(e, t) { - let n = We(e, t); - if (_p(), !n) try { +function WC(e, t) { + let n = Ae(e, t); + if (bp(), !n) try { window.dispatchEvent(new Event(B.OPEN_ASSETS_MANAGER)); } catch (e) { console.debug?.(e); } return n; } -function BC() { +function GC() { try { window.dispatchEvent(new CustomEvent(B.RELOAD_GRID, { detail: { reason: "command" } })); } catch (e) { console.debug?.(e); } } -function VC(e) { - let t = Fe(e, PC); +function KC(e) { + let t = _e(e, zC); if (!t) try { - df(); + mf(); } catch (e) { console.debug?.(e); } return t; } -async function HC() { +async function qC() { try { - let e = await me(p.BROWSE_FOLDER, {}); + let e = await he(I.BROWSE_FOLDER, {}); if (e?.ok) return String(e?.data?.path || "").trim(); let t = String(e?.code || "").trim(); - t && t !== "CANCELLED" && F(e?.error || L("toast.nativeFolderBrowserUnavailable", "Native folder browser unavailable. Please enter path manually."), "warning", 3500); + t && t !== "CANCELLED" && x(e?.error || L("toast.nativeFolderBrowserUnavailable", "Native folder browser unavailable. Please enter path manually."), "warning", 3500); } catch (e) { - console.debug?.(e), F(L("toast.nativeFolderBrowserUnavailable", "Native folder browser unavailable. Please enter path manually."), "warning", 3500); + console.debug?.(e), x(L("toast.nativeFolderBrowserUnavailable", "Native folder browser unavailable. Please enter path manually."), "warning", 3500); } return ""; } -async function UC(e, { settingId: t, settingsPathKey: n, save: r, successMessage: i, restartRequired: a = !1 }) { - let o = await HC(); - if (!o) return !1; - let s = await r(o); - if (!s?.ok) return F(s?.error || L("toast.settingsPathSaveFailed", "Failed to save path"), "error"), !1; +async function JC(e, { settingId: t, settingsPathKey: n, save: r, successMessage: i, restartRequired: a = !1 }) { + let s = await qC(); + if (!s) return !1; + let c = await r(s); + if (!c?.ok) return x(c?.error || L("toast.settingsPathSaveFailed", "Failed to save path"), "error"), !1; try { - let r = Mt(); - r.paths = r.paths || {}, r.paths[n] = o, bt(r), A(e, t, o), window.dispatchEvent(new CustomEvent(B.SETTINGS_CHANGED, { detail: { + let r = Ft(); + r.paths = r.paths || {}, r.paths[n] = s, Ct(r), o(e, t, s), window.dispatchEvent(new CustomEvent(B.SETTINGS_CHANGED, { detail: { key: `paths.${n}`, - value: o + value: s } })); } catch (e) { console.debug?.(e); } - return F(a ? `${i} ${L("toast.restartComfyUiToApply", "Restart ComfyUI to apply.")}` : i, "success", 2800), !0; + return x(a ? `${i} ${L("toast.restartComfyUiToApply", "Restart ComfyUI to apply.")}` : i, "success", 2800), !0; } -function WC(e) { - return pw(e).find(fw) || null; +function YC(e) { + return vw(e).find(_w) || null; } -function GC(e) { +function XC(e) { let t = String(e?.id ?? e?.nodeId ?? e?.node_id ?? "").trim(); if (!t) return null; let n = String(e?.comfyClass || e?.type || e?.constructor?.type || "").trim(); @@ -24322,7 +24399,7 @@ function GC(e) { title: String(e?.title || e?.properties?.title || e?.properties?.name || n || "").trim() }; } -async function KC(e) { +async function ZC(e) { if (!e) return []; try { let t = (await import("./chunks/NodeStreamController-CIKDDXJT.js")).extractNodeFileData?.(e), n = String(t?.filename || "").trim(); @@ -24336,7 +24413,7 @@ async function KC(e) { return console.debug?.(e), []; } } -function qC(e) { +function QC(e) { try { if (typeof window > "u") return; window.MajoorAssetsManager = window.MajoorAssetsManager || {}, window.MajoorAssetsManager.pendingNodeContext = e, window.dispatchEvent(new CustomEvent(B.OPEN_NODE_CONTEXT, { detail: e })); @@ -24344,18 +24421,18 @@ function qC(e) { console.debug?.(e); } } -async function JC(e, t, n) { - zC(e, t); - let r = GC(n) || {}, i = await KC(n); +async function $C(e, t, n) { + WC(e, t); + let r = XC(n) || {}, i = await ZC(n); i.length && (r.files = i); let a = String(n?.comfyClass || n?.type || "").toLowerCase(); - return i.length && /load|upload/.test(a) && (delete r.source_node_id, delete r.sourceNodeId), !r.source_node_id && !i.length ? (F(L("toast.nodeContextMissing", "Select an output node first."), "info", 2200), !1) : (qC(r), !0); + return i.length && /load|upload/.test(a) && (delete r.source_node_id, delete r.sourceNodeId), !r.source_node_id && !i.length ? (x(L("toast.nodeContextMissing", "Select an output node first."), "info", 2200), !1) : (QC(r), !0); } -async function YC(e) { +async function ew(e) { try { - let t = await KC(e); + let t = await ZC(e); if (t.length) { - let { floatingViewerManager: e } = await import("./chunks/floatingViewerManager-B_I-SRbd.js").then((e) => e.n); + let { floatingViewerManager: e } = await import("./chunks/floatingViewerManager-D_aLLeau.js").then((e) => e.n); if (await e.openAssets({ assets: t, index: 0 @@ -24371,11 +24448,11 @@ async function YC(e) { } return !1; } -function XC(e, t) { - let n = FC; - return n ? (JC(e, t, n), !0) : (F(L("toast.nodeContextMissing", "Select an output node first."), "info", 2200), !1); +function tw(e, t) { + let n = BC; + return n ? ($C(e, t, n), !0) : (x(L("toast.nodeContextMissing", "Select an output node first."), "info", 2200), !1); } -function ZC(e, { sidebarTabId: t, triggerStartupScan: n }) { +function nw(e, { sidebarTabId: t, triggerStartupScan: n }) { return [ { id: "mjr.openAssetsManager", @@ -24384,7 +24461,7 @@ function ZC(e, { sidebarTabId: t, triggerStartupScan: n }) { title: L("tooltip.openAssetsManager", "Open Majoor Assets Manager"), description: L("tooltip.openAssetsManager", "Open Majoor Assets Manager"), icon: "pi pi-folder-open", - function: () => zC(e, t) + function: () => WC(e, t) }, { id: "mjr.scanAssets", @@ -24408,7 +24485,7 @@ function ZC(e, { sidebarTabId: t, triggerStartupScan: n }) { id: "mjr.refreshAssetsGrid", label: L("command.refreshAssetsGrid", "Refresh assets grid"), icon: "pi pi-sync", - function: () => BC() + function: () => GC() }, { id: "mjr.openFloatingViewer", @@ -24432,13 +24509,13 @@ function ZC(e, { sidebarTabId: t, triggerStartupScan: n }) { title: L("tooltip.openGeneratedFeed", "Open the Majoor generated feed panel"), description: L("tooltip.openGeneratedFeed", "Open the Majoor generated feed panel"), icon: "pi pi-list", - function: () => VC(e) + function: () => KC(e) }, { id: "mjr.openSettings", label: L("command.openSettings", "Open Majoor settings"), icon: "pi pi-cog", - function: () => Ut(e) + function: () => Kt(e) }, { id: "mjr.pickOutputDirectory", @@ -24447,10 +24524,10 @@ function ZC(e, { sidebarTabId: t, triggerStartupScan: n }) { title: L("tooltip.pickOutputDirectory", "Use the native folder browser to set Majoor's generation output directory"), description: L("tooltip.pickOutputDirectory", "Use the native folder browser to set Majoor's generation output directory"), icon: "pi pi-folder", - function: () => UC(e, { + function: () => JC(e, { settingId: "Majoor.Paths.OutputDirectory", settingsPathKey: "outputDirectory", - save: M, + save: tt, successMessage: L("toast.outputDirectorySaved", "Output directory saved.") }) }, @@ -24461,10 +24538,10 @@ function ZC(e, { sidebarTabId: t, triggerStartupScan: n }) { title: L("tooltip.pickIndexDirectory", "Use the native folder browser to set Majoor's index database directory"), description: L("tooltip.pickIndexDirectory", "Use the native folder browser to set Majoor's index database directory"), icon: "pi pi-database", - function: () => UC(e, { + function: () => JC(e, { settingId: "Majoor.Paths.IndexDirectory", settingsPathKey: "indexDirectory", - save: ue, + save: it, successMessage: L("toast.indexDirectorySaved", "Index directory saved."), restartRequired: !0 }) @@ -24476,7 +24553,7 @@ function ZC(e, { sidebarTabId: t, triggerStartupScan: n }) { title: L("tooltip.openNodeContext", "Show the latest indexed assets produced by this node"), description: L("tooltip.openNodeContext", "Show the latest indexed assets produced by this node"), icon: "pi pi-sitemap", - function: () => XC(e, t) + function: () => tw(e, t) }, { id: "mjr.openNodeInFloatingViewer", @@ -24486,12 +24563,12 @@ function ZC(e, { sidebarTabId: t, triggerStartupScan: n }) { description: L("tooltip.openNodeInFloatingViewer", "Open this node's media in the Majoor floating viewer"), icon: "pi pi-window-maximize", function: () => { - YC(FC); + ew(BC); } } ]; } -function QC() { +function rw() { return [{ combo: { alt: !0, @@ -24508,7 +24585,7 @@ function QC() { commandId: "mjr.toggleFloatingViewer" }]; } -function $C() { +function iw() { return [{ path: ["Extensions", "Majoor Assets Manager"], commands: [ @@ -24523,13 +24600,13 @@ function $C() { ] }]; } -function ew(e, { sidebarTabId: t, triggerStartupScan: n }) { +function aw(e, { sidebarTabId: t, triggerStartupScan: n }) { return [null, { content: "Majoor Assets Manager", submenu: { options: [ { content: L("tooltip.openAssetsManager", "Open Majoor Assets Manager"), - callback: () => zC(e, t) + callback: () => WC(e, t) }, { content: L("command.openFloatingViewer", "Open floating viewer"), @@ -24543,12 +24620,12 @@ function ew(e, { sidebarTabId: t, triggerStartupScan: n }) { }, { content: L("command.openGeneratedFeed", "Open generated feed"), - callback: () => VC(e) + callback: () => KC(e) }, null, { content: L("command.refreshAssetsGrid", "Refresh assets grid"), - callback: () => BC() + callback: () => GC() }, { content: L("command.scanAssets", "Scan assets"), @@ -24556,12 +24633,12 @@ function ew(e, { sidebarTabId: t, triggerStartupScan: n }) { }, { content: L("command.openSettings", "Open Majoor settings"), - callback: () => Ut(e) + callback: () => Kt(e) } ] } }]; } -function tw() { +function ow() { return [ { label: "Majoor Assets Manager", @@ -24578,20 +24655,20 @@ function tw() { } ]; } -function nw(e, t) { - for (let n of ZC(e, t)) x(e, n); +function sw(e, t) { + for (let n of nw(e, t)) f(e, n); } -function rw(e) { - for (let t of QC()) T(e, t); +function cw(e) { + for (let t of rw()) g(e, t); } -function iw(e, { sidebarTabId: t }) { - hp({ sidebarTabId: t }); +function lw(e, { sidebarTabId: t }) { + vp({ sidebarTabId: t }); try { - Mt()?.integration?.hideNativeAssetsTab && Dt(!0); + Ft()?.integration?.hideNativeAssetsTab && At(!0); } catch (e) { console.debug?.(e); } - return f(e, { + return N(e, { id: t, icon: "pi pi-folder", title: L("manager.title"), @@ -24599,8 +24676,8 @@ function iw(e, { sidebarTabId: t }) { tooltip: L("tooltip.sidebarTab"), type: "custom", render(e) { - _p(), Xr({ idleOnly: !0 }).catch(() => null), Bt(e, WS, MC), setTimeout(() => { - let e = bp(); + bp(), $r({ idleOnly: !0 }).catch(() => null), Ut(e, YS, LC), setTimeout(() => { + let e = Cp(); if (e) try { window.dispatchEvent(new CustomEvent(B.RELOAD_GRID, { detail: { reason: "pending-generated-assets", @@ -24614,80 +24691,80 @@ function iw(e, { sidebarTabId: t }) { destroy(e) {} }); } -function aw() { +function uw() { try { - Ct(); + Et(); } catch {} try { - Kt(null, MC); + Yt(null, LC); } catch {} - ow = !1; + dw = !1; try { - document.getElementById(sw)?.remove?.(); + document.getElementById(fw)?.remove?.(); } catch {} } -var ow = !1, sw = "mjr-sidebar-prewarm-host"; -function cw() { - if (ow || typeof document > "u" || !document?.body || Rt(MC)) return !1; - ow = !0; +var dw = !1, fw = "mjr-sidebar-prewarm-host"; +function pw() { + if (dw || typeof document > "u" || !document?.body || Vt(LC)) return !1; + dw = !0; try { - let e = document.getElementById(sw); - return e || (e = document.createElement("div"), e.id = sw, e.style.cssText = "position:fixed;left:-99999px;top:0;width:360px;height:600px;overflow:hidden;visibility:hidden;pointer-events:none;contain:strict;", e.setAttribute("aria-hidden", "true"), document.body.appendChild(e)), Bt(e, WS, MC, { attachIfExists: !1 }), !0; + let e = document.getElementById(fw); + return e || (e = document.createElement("div"), e.id = fw, e.style.cssText = "position:fixed;left:-99999px;top:0;width:360px;height:600px;overflow:hidden;visibility:hidden;pointer-events:none;contain:strict;", e.setAttribute("aria-hidden", "true"), document.body.appendChild(e)), Ut(e, YS, LC, { attachIfExists: !1 }), !0; } catch (e) { - return console.debug?.(e), ow = !1, !1; + return console.debug?.(e), dw = !1, !1; } } -function lw() { +function mw() { return { - id: PC, + id: zC, title: L("bottomFeed.title", "Generated Feed"), icon: "pi pi-images", type: "custom", render(e) { - Bt(e, GS, NC); + Ut(e, XS, RC); }, destroy(e) {} }; } -function uw() { - return [lw()]; +function hw() { + return [mw()]; } -function dw() { +function gw() { try { - Kt(null, NC); + Yt(null, RC); } catch {} } -function fw(e) { +function _w(e) { let t = String(e?.comfyClass || e?.type || e?.constructor?.type || "").trim(); return t ? /save|load|preview/i.test(t) : !1; } -function pw(e) { +function vw(e) { return e ? Array.isArray(e) ? e.filter(Boolean) : e instanceof Set ? Array.from(e).filter(Boolean) : e instanceof Map ? Array.from(e.values()).filter(Boolean) : Array.isArray(e?.items) ? e.items.filter(Boolean) : Array.isArray(e?.nodes) ? e.nodes.filter(Boolean) : [e] : []; } -function mw(e) { - return FC = WC(e), FC ? [ +function yw(e) { + return BC = YC(e), BC ? [ "mjr.openNodeContext", "mjr.openAssetsManager", "mjr.openNodeInFloatingViewer" ] : []; } -function hw(e, t) { +function bw(e, t) { return { content: e, callback: t }; } -function gw(e, t, { sidebarTabId: n }) { - return fw(e) ? [ - hw("View in Assets Manager", () => { - JC(t, n, e); +function xw(e, t, { sidebarTabId: n }) { + return _w(e) ? [ + bw("View in Assets Manager", () => { + $C(t, n, e); }), - hw("Open in Floating Viewer", () => { - YC(e); + bw("Open in Floating Viewer", () => { + ew(e); }), - hw("Index Output", () => { + bw("Index Output", () => { try { - BC(), F(L("toast.rescanningFile", "Rescanning file..."), "info", 1800); + GC(), x(L("toast.rescanningFile", "Rescanning file..."), "info", 1800); } catch (e) { console.debug?.(e); } @@ -24695,15 +24772,15 @@ function gw(e, t, { sidebarTabId: n }) { ] : []; } // ui/features/runtime/entryRuntimeLifecycle.ts -var _w = "__MJR_ENTRY_RUNTIME__"; -function vw(e, t) { +var Sw = "__MJR_ENTRY_RUNTIME__"; +function Cw(e, t) { if (e) try { e._mjrAssetUpdateReloadTimer &&= (clearTimeout(e._mjrAssetUpdateReloadTimer), null), e._mjrExecutedHandler && e.removeEventListener("executed", e._mjrExecutedHandler), e._mjrAssetAddedHandler && e.removeEventListener("mjr-asset-added", e._mjrAssetAddedHandler), e._mjrAssetUpdatedHandler && e.removeEventListener("mjr-asset-updated", e._mjrAssetUpdatedHandler), e._mjrStructuredEventHandler && e.removeEventListener(B.STRUCTURED_EVENT, e._mjrStructuredEventHandler), e._mjrScanCompleteHandler && e.removeEventListener(B.SCAN_COMPLETE, e._mjrScanCompleteHandler), e._mjrAssetsRemovedHandler && e.removeEventListener(B.ASSETS_REMOVED, e._mjrAssetsRemovedHandler), e._mjrScanProgressHandler && e.removeEventListener(B.SCAN_PROGRESS, e._mjrScanProgressHandler), e._mjrAssetIndexingHandler && e.removeEventListener(B.ASSET_INDEXING, e._mjrAssetIndexingHandler), e._mjrAssetIndexedHandler && e.removeEventListener(B.ASSET_INDEXED, e._mjrAssetIndexedHandler), e._mjrExecutionStartHandler && e.removeEventListener("execution_start", e._mjrExecutionStartHandler), e._mjrExecutionEndHandler && (e.removeEventListener("execution_success", e._mjrExecutionEndHandler), e.removeEventListener("execution_error", e._mjrExecutionEndHandler), e.removeEventListener("execution_interrupted", e._mjrExecutionEndHandler)), e._mjrStacksUpdatedHandler && e.removeEventListener("mjr.stacks.updated", e._mjrStacksUpdatedHandler), e._mjrEnrichmentStatusHandler && e.removeEventListener(B.ENRICHMENT_STATUS, e._mjrEnrichmentStatusHandler), e._mjrDbRestoreStatusHandler && e.removeEventListener(B.DB_RESTORE_STATUS, e._mjrDbRestoreStatusHandler), e._mjrRuntimeStatusHandler && (e.removeEventListener("progress", e._mjrRuntimeStatusHandler), e.removeEventListener("status", e._mjrRuntimeStatusHandler), e.removeEventListener(B.RUNTIME_STATUS, e._mjrRuntimeStatusHandler), e.removeEventListener("execution_cached", e._mjrExecutionCachedHandler)); } catch (e) { t?.(e, "entry.removeApiHandlers"); } } -function yw(e, t) { +function ww(e, t) { try { let t = e?.assetsDeletedHandler; t && typeof window < "u" && window.removeEventListener(B.ASSETS_DELETED, t); @@ -24711,10 +24788,10 @@ function yw(e, t) { t?.(e, "entry.removeRuntimeWindowHandlers"); } } -function bw(e, { reportError: t } = {}) { +function Tw(e, { reportError: t } = {}) { if (e && typeof e == "object") { try { - l(); + Ue(); } catch (e) { console.debug?.(e); } @@ -24741,13 +24818,13 @@ function bw(e, { reportError: t } = {}) { console.warn("[MJR teardown]", e); } try { - vw(e.api || null, t), yw(e, t); + Cw(e.api || null, t), ww(e, t); } catch (e) { console.warn("[MJR teardown]", e); } } } -function xw(e, t, n, r, i = void 0) { +function Ew(e, t, n, r, i = void 0) { if (!e || !t?.addEventListener || typeof r != "function") return null; let a = i && typeof i == "object" ? { ...i } : i; if (typeof AbortController < "u") try { @@ -24767,11 +24844,11 @@ function xw(e, t, n, r, i = void 0) { } }), null; } -function Sw({ cleanupEntryRuntimeFn: e = bw, teardownLiveStreamTracker: t, teardownNodeStream: n, teardownFloatingViewerManager: r, teardownGeneratedFeed: i, teardownAssetsSidebar: a, teardownGlobalRuntime: o, teardownTopBarMfvButton: s, reportError: c }) { +function Dw({ cleanupEntryRuntimeFn: e = Tw, teardownLiveStreamTracker: t, teardownNodeStream: n, teardownFloatingViewerManager: r, teardownGeneratedFeed: i, teardownAssetsSidebar: a, teardownGlobalRuntime: o, teardownTopBarMfvButton: s, reportError: c }) { try { if (typeof window < "u") { try { - let t = window[_w]; + let t = window[Sw]; e(t, { reportError: c }); } catch (e) { console.warn("[MJR teardown]", e); @@ -24811,7 +24888,7 @@ function Sw({ cleanupEntryRuntimeFn: e = bw, teardownLiveStreamTracker: t, teard } catch (e) { console.warn("[MJR teardown]", e); } - window[_w] = { + window[Sw] = { api: null, assetsDeletedHandler: null, _cleanupControllers: [], @@ -24823,42 +24900,42 @@ function Sw({ cleanupEntryRuntimeFn: e = bw, teardownLiveStreamTracker: t, teard } } // ui/entry.ts -var Cw = null, ww = null, Tw = null; -function Ew() { - return Tw ||= import("./chunks/floatingViewerManager-B_I-SRbd.js").then((e) => e.n), Tw; +var Ow = null, kw = null, Aw = null; +function jw() { + return Aw ||= import("./chunks/floatingViewerManager-D_aLLeau.js").then((e) => e.n), Aw; } -function Dw() { - Tw && Tw.then((e) => e?.teardownFloatingViewerManager?.()).catch((e) => console.debug?.("[Majoor] MFV teardown skipped", e)); +function Mw() { + Aw && Aw.then((e) => e?.teardownFloatingViewerManager?.()).catch((e) => console.debug?.("[Majoor] MFV teardown skipped", e)); } -var Ow = "majoor-assets", kw = "__MJR_EXECUTION_RUNTIME__", Aw = "Majoor.AssetsManager", jw = { +var Nw = "majoor-assets", Pw = "__MJR_EXECUTION_RUNTIME__", Fw = "Majoor.AssetsManager", Iw = { active: null, promptId: "" -}, Mw = null, Nw = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i, Pw = /^[0-9a-f]{20,}$/i; -function Fw(...e) { +}, Lw = null, Rw = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i, zw = /^[0-9a-f]{20,}$/i; +function Bw(...e) { for (let t of e) { let e = String(t || "").trim(); if (e) return e; } return ""; } -function Iw(e) { +function Vw(e) { let t = String(e || "").trim(); - return Nw.test(t) || Pw.test(t); + return Rw.test(t) || zw.test(t); } -function Lw(e) { - return Fw(e?.title, e?.properties?.title, e?.properties?.name, e?.properties?.label, e?.name); +function Hw(e) { + return Bw(e?.title, e?.properties?.title, e?.properties?.name, e?.properties?.label, e?.name); } -function Rw(e) { +function Uw(e) { if (!e || typeof e != "object") return []; if (Array.isArray(e.nodes)) return e.nodes.filter(Boolean); if (Array.isArray(e._nodes)) return e._nodes.filter(Boolean); let t = e._nodes_by_id ?? e.nodes_by_id ?? null; return t instanceof Map ? Array.from(t.values()).filter(Boolean) : t && typeof t == "object" ? Object.values(t).filter(Boolean) : []; } -function zw(e) { - return Rw(e).length > 0; +function Ww(e) { + return Uw(e).length > 0; } -function Bw(e) { +function Gw(e) { return !e || typeof e != "object" ? !1 : [ e.subgraph, e._subgraph, @@ -24869,13 +24946,13 @@ function Bw(e) { e.subgraph_instance?.graph, e.inner_graph, e.subgraph_graph - ].some(zw) || Array.isArray(e.nodes) && e.nodes.length > 0 && e.nodes !== e.graph?.nodes ? !0 : Iw(e.type) && !!Lw(e); + ].some(Ww) || Array.isArray(e.nodes) && e.nodes.length > 0 && e.nodes !== e.graph?.nodes ? !0 : Vw(e.type) && !!Hw(e); } -function Vw(e, t) { - let n = String(e?.type || t || "").trim(), r = Lw(e); - return Iw(n) ? r || "Subgraph" : n || r || "Node"; +function Kw(e, t) { + let n = String(e?.type || t || "").trim(), r = Hw(e); + return Vw(n) ? r || "Subgraph" : n || r || "Node"; } -function Hw() { +function qw() { try { return typeof window > "u" ? { active_prompt_id: null, @@ -24884,87 +24961,87 @@ function Hw() { progress_value: null, progress_max: null, cached_nodes: [] - } : (window[kw] && typeof window[kw] == "object" || (window[kw] = { + } : (window[Pw] && typeof window[Pw] == "object" || (window[Pw] = { active_prompt_id: null, queue_remaining: null, progress_node: null, progress_value: null, progress_max: null, cached_nodes: [] - }), window[kw]); + }), window[Pw]); } catch (e) { return console.debug?.(e), {}; } } -function Uw(e = {}) { +function Jw(e = {}) { try { - let t = Hw(); + let t = qw(); Object.assign(t, e || {}), window.dispatchEvent(new CustomEvent(B.RUNTIME_STATUS, { detail: { ...t } })); } catch (e) { console.debug?.(e); } } -async function Ww({ active: e, promptId: t = "" } = {}) { +async function Yw({ active: e, promptId: t = "" } = {}) { let n = !!e, r = String(t || "").trim(); - if (jw.active !== n || jw.promptId !== r) { - jw = { + if (Iw.active !== n || Iw.promptId !== r) { + Iw = { active: n, promptId: r }; try { - await me(p.RUNTIME_EXECUTION, { + await he(I.RUNTIME_EXECUTION, { active: n, prompt_id: r || void 0, cooldown_ms: Number(R.EXECUTION_IDLE_GRACE_MS) || 6e3 }); } catch (e) { - ct(e, "entry.execution_state_sync"); + dt(e, "entry.execution_state_sync"); } } } -function Gw() { +function Xw() { try { - return !!String(Hw()?.active_prompt_id || "").trim(); + return !!String(qw()?.active_prompt_id || "").trim(); } catch (e) { return console.debug?.(e), !1; } } -function Kw(e = 1200) { +function Zw(e = 1200) { try { - Mw && clearTimeout(Mw); + Lw && clearTimeout(Lw); } catch (e) { console.debug?.(e); } - Mw = setTimeout(() => { - if (Mw = null, Gw()) { - Kw(e); + Lw = setTimeout(() => { + if (Lw = null, Xw()) { + Zw(e); return; } - let t = ht(); - t && oi(t); + let t = vt(); + t && li(t); }, Math.max(250, Number(e) || 0)); } -function qw(e) { - import("./chunks/LiveStreamTracker-C_DbXPzd.js").then((t) => { - Cw = t; +function Qw(e) { + import("./chunks/LiveStreamTracker-BAuKfk0M.js").then((t) => { + Ow = t; try { t.initLiveStreamTracker(e); } catch (e) { console.warn("[MJR setup] initLiveStreamTracker failed:", e); } }).catch((e) => console.warn("[MJR setup] LiveStreamTracker load failed:", e)), import("./chunks/NodeStreamController-CIKDDXJT.js").then((t) => { - ww = t; + kw = t; try { t.initNodeStream({ app: e, onOutput: (e) => { - Ew().then((t) => t?.floatingViewerManager?.feedNodeStream?.(e)).catch((e) => console.debug?.("[NodeStream] MFV output failed", e)); + jw().then((t) => t?.floatingViewerManager?.feedNodeStream?.(e)).catch((e) => console.debug?.("[NodeStream] MFV output failed", e)); }, onStatus: (t, n) => { try { - let r = (e?.graph ?? e?.canvas?.graph ?? null)?.getNodeById?.(Number(t)), i = Bw(r), a = Lw(r), o = i ? "Subgraph" : Vw(r, n); - Ew().then((e) => { - e?.floatingViewerManager?.setNodeStreamSelection?.(t, o, i ? a || Vw(r, n) : a); + let r = (e?.graph ?? e?.canvas?.graph ?? null)?.getNodeById?.(Number(t)), i = Gw(r), a = Hw(r), o = i ? "Subgraph" : Kw(r, n); + jw().then((e) => { + e?.floatingViewerManager?.setNodeStreamSelection?.(t, o, i ? a || Kw(r, n) : a); }).catch((e) => console.debug?.("[NodeStream] MFV status failed", e)); } catch (e) { console.debug?.("[NodeStream] onStatus failed", e); @@ -24976,16 +25053,16 @@ function qw(e) { } }).catch((e) => console.warn("[MJR setup] NodeStream load failed:", e)); } -async function Jw(e, t) { - let n = await c({ +async function $w(e, t) { + let n = await He({ app: e, timeoutMs: 4e3 - }) || u(e); - if (ne(n || null), !n) { + }) || F(e); + if (p(n || null), !n) { console.warn("Majoor API not available, real-time updates disabled"); return; } - It({ + zt({ api: n, app: e }).catch((e) => console.debug?.("[Majoor] MFV progress tracking init failed", e)); @@ -24995,78 +25072,78 @@ async function Jw(e, t) { } catch (e) { console.debug?.(e); } - vw(r?.api || null, ct), n !== r?.api && vw(n, ct), yw(r, ct), await Np({ + Cw(r?.api || null, dt), n !== r?.api && Cw(n, dt), ww(r, dt), await Ip({ api: n, runtime: r, executionRuntime: t, - appRef: wr, - liveStreamModule: Cw, - ensureExecutionRuntime: Hw, - emitRuntimeStatus: Uw, - getActiveGridContainer: ht, - pushGeneratedAsset: Df, - upsertAsset: mi, - upsertAssetNow: hi, - removeAssetsFromGrid: pi, - getEnrichmentState: yn, - setEnrichmentState: vn, - comfyToast: F, + appRef: Dr, + liveStreamModule: Ow, + ensureExecutionRuntime: qw, + emitRuntimeStatus: Jw, + getActiveGridContainer: vt, + pushGeneratedAsset: Af, + upsertAsset: _i, + upsertAssetNow: vi, + removeAssetsFromGrid: gi, + getEnrichmentState: Sn, + setEnrichmentState: xn, + comfyToast: x, t: L, - reportError: ct, - registerCleanableListener: xw, - syncExecutionBackendState: Ww + reportError: dt, + registerCleanableListener: Ew, + syncExecutionBackendState: Yw }); } -var Yw = Yf({ - post: me, - ENDPOINTS: p, - reportError: ct, - extractOutputFiles: Xf, - ensureExecutionRuntime: Hw, - emitRuntimeStatus: Uw, - refreshGeneratedFeedHosts: df, - getActiveGridContainer: ht -}), Xw = { - name: Aw, - settings: xt(wr), - commands: ZC(wr, { - sidebarTabId: Ow, - triggerStartupScan: Jr +var eT = Qf({ + post: he, + ENDPOINTS: I, + reportError: dt, + extractOutputFiles: $f, + ensureExecutionRuntime: qw, + emitRuntimeStatus: Jw, + refreshGeneratedFeedHosts: mf, + getActiveGridContainer: vt +}), tT = { + name: Fw, + settings: wt(Dr), + commands: nw(Dr, { + sidebarTabId: Nw, + triggerStartupScan: Zr }), - keybindings: QC(), - menuCommands: $C(), - aboutPageBadges: tw(), - bottomPanelTabs: uw(), + keybindings: rw(), + menuCommands: iw(), + aboutPageBadges: ow(), + bottomPanelTabs: hw(), async setup() { - Sw({ - cleanupEntryRuntimeFn: bw, - teardownLiveStreamTracker: (e) => Cw?.teardownLiveStreamTracker(e), - teardownNodeStream: (e) => ww?.teardownNodeStream(e), - teardownFloatingViewerManager: Dw, - teardownGeneratedFeed: dw, - teardownAssetsSidebar: aw, - teardownGlobalRuntime: RC, - teardownTopBarMfvButton: kC, - reportError: ct - }), Lp(), re(wr); - let e = await h({ timeoutMs: 12e3 }) || wr; - re(e), fm(e); + Dw({ + cleanupEntryRuntimeFn: Tw, + teardownLiveStreamTracker: (e) => Ow?.teardownLiveStreamTracker(e), + teardownNodeStream: (e) => kw?.teardownNodeStream(e), + teardownFloatingViewerManager: Mw, + teardownGeneratedFeed: gw, + teardownAssetsSidebar: uw, + teardownGlobalRuntime: UC, + teardownTopBarMfvButton: PC, + reportError: dt + }), Bp(), b(Dr); + let e = await v({ timeoutMs: 12e3 }) || Dr; + b(e), hm(e); try { typeof window < "u" && (window.__MJR_RUNTIME_APP__ = e); } catch (e) { console.debug?.(e); } - Qr(), ei({ enabled: !0 }), LC(), qw(e), Nt(e, () => { - let e = ht(); - e && (R.DEFER_GRID_FETCH_DURING_EXECUTION && Gw() ? Kw() : oi(e)); - }), nw(e, { - sidebarTabId: Ow, - triggerStartupScan: Jr - }), rw(e), Jw(e, Yw).catch((e) => ct(e, "entry.api_setup")), iw(e, { sidebarTabId: Ow }) ? ft("[Majoor] Sidebar tab registered (Vue)") : console.warn("Majoor Assets Manager: extensionManager.registerSidebarTab is unavailable"); + ti(), ri({ enabled: !0 }), HC(), Qw(e), It(e, () => { + let e = vt(); + e && (R.DEFER_GRID_FETCH_DURING_EXECUTION && Xw() ? Zw() : li(e)); + }), sw(e, { + sidebarTabId: Nw, + triggerStartupScan: Zr + }), cw(e), $w(e, eT).catch((e) => dt(e, "entry.api_setup")), lw(e, { sidebarTabId: Nw }) ? ht("[Majoor] Sidebar tab registered (Vue)") : console.warn("Majoor Assets Manager: extensionManager.registerSidebarTab is unavailable"); try { let e = typeof window < "u" ? window.requestIdleCallback : null, t = () => { try { - cw(); + pw(); } catch (e) { console.debug?.(e); } @@ -25075,30 +25152,30 @@ var Yw = Yf({ } catch (e) { console.debug?.(e); } - Pp({ resolveNodeStreamModule: async () => (ww ||= await import("./chunks/NodeStreamController-CIKDDXJT.js"), ww) }); + Lp({ resolveNodeStreamModule: async () => (kw ||= await import("./chunks/NodeStreamController-CIKDDXJT.js"), kw) }); }, onNodeOutputsUpdated(e) { try { - Yw.handleNodeOutputsUpdated(e); + eT.handleNodeOutputsUpdated(e); } catch (e) { console.debug?.("[Majoor] onNodeOutputsUpdated error", e); } }, getNodeMenuItems(e) { - return gw(e, wr, { sidebarTabId: Ow }); + return xw(e, Dr, { sidebarTabId: Nw }); }, getCanvasMenuItems(e) { - return ew(wr, { - sidebarTabId: Ow, - triggerStartupScan: Jr + return aw(Dr, { + sidebarTabId: Nw, + triggerStartupScan: Zr }); }, getSelectionToolboxCommands(e) { - return mw(e); + return yw(e); } }; try { - wr.registerExtension(Xw); + Dr.registerExtension(tT); } catch (e) { - console.warn("[Majoor] registerExtension() threw (extension already registered) - re-running setup() directly", e), Xw.setup().catch((e) => ct(e, "entry.setup_after_duplicate_registration")); + console.warn("[Majoor] registerExtension() threw (extension already registered) - re-running setup() directly", e), tT.setup().catch((e) => dt(e, "entry.setup_after_duplicate_registration")); }