UNPKG

@paroicms/internal-link-plugin

Version:

Internal link plugin for ParoiCMS

937 lines (936 loc) 29.5 kB
//#region ../../../node_modules/solid-js/dist/solid.js var e = { context: void 0, registry: void 0, effects: void 0, done: !1, getContextId() { return t(this.context.count); }, getNextContextId() { return t(this.context.count++); } }; function t(t) { let n = String(t), r = n.length - 1; return e.context.id + (r ? String.fromCharCode(96 + r) : "") + n; } function n(t) { e.context = t; } function r() { return { ...e.context, id: e.getNextContextId(), count: 0 }; } var i = { equals: (e, t) => e === t }, a = null, o = j, s = 1, c = 2, l = { owned: null, cleanups: null, context: null, owner: null }, u = null, d = null, f = null, p = null, m = null, h = null, g = null, _ = 0; function ee(e, t) { let n = m, r = u, i = e.length === 0, a = t === void 0 ? r : t, o = i ? l : { owned: null, cleanups: null, context: a ? a.context : null, owner: a }, s = i ? e : () => e(() => S(() => N(o))); u = o, m = null; try { return A(s, !0); } finally { m = n, u = r; } } function v(e, t) { t = t ? Object.assign({}, i, t) : i; let n = { value: e, observers: null, observerSlots: null, comparator: t.equals || void 0 }; return [ae.bind(n), (e) => (typeof e == "function" && (e = d && d.running && d.sources.has(n) ? e(n.tValue) : e(n.value)), T(n, e))]; } function y(e, t, n) { let r = O(e, t, !1, s); f && d && d.running ? h.push(r) : E(r); } function b(e, t, n) { o = ce; let r = O(e, t, !1, s), i = w && ie(w); i && (r.suspense = i), (!n || !n.render) && (r.user = !0), g ? g.push(r) : E(r); } function x(e, t, n) { n = n ? Object.assign({}, i, n) : i; let r = O(e, t, !0, 0); return r.observers = null, r.observerSlots = null, r.comparator = n.equals || void 0, f && d && d.running ? (r.tState = s, h.push(r)) : E(r), ae.bind(r); } function S(e) { if (!p && m === null) return e(); let t = m; m = null; try { return p ? p.untrack(e) : e(); } finally { m = t; } } function te(e) { return u === null || (u.cleanups === null ? u.cleanups = [e] : u.cleanups.push(e)), e; } function ne(e) { if (d && d.running) return e(), d.done; let t = m, n = u; return Promise.resolve().then(() => { m = t, u = n; let r; return (f || w) && (r = d ||= { sources: /* @__PURE__ */ new Set(), effects: [], promises: /* @__PURE__ */ new Set(), disposed: /* @__PURE__ */ new Set(), queue: /* @__PURE__ */ new Set(), running: !0 }, r.done ||= new Promise((e) => r.resolve = e), r.running = !0), A(e, !1), m = u = null, r ? r.done : void 0; }); } var [re, C] = /* @__PURE__ */ v(!1); function ie(e) { let t; return u && u.context && (t = u.context[e.id]) !== void 0 ? t : e.defaultValue; } var w; function ae() { let e = d && d.running; if (this.sources && (e ? this.tState : this.state)) if ((e ? this.tState : this.state) === s) E(this); else { let e = h; h = null, A(() => M(this), !1), h = e; } if (m) { let e = this.observers ? this.observers.length : 0; m.sources ? (m.sources.push(this), m.sourceSlots.push(e)) : (m.sources = [this], m.sourceSlots = [e]), this.observers ? (this.observers.push(m), this.observerSlots.push(m.sources.length - 1)) : (this.observers = [m], this.observerSlots = [m.sources.length - 1]); } return e && d.sources.has(this) ? this.tValue : this.value; } function T(e, t, n) { let r = d && d.running && d.sources.has(e) ? e.tValue : e.value; if (!e.comparator || !e.comparator(r, t)) { if (d) { let r = d.running; (r || !n && d.sources.has(e)) && (d.sources.add(e), e.tValue = t), r || (e.value = t); } else e.value = t; e.observers && e.observers.length && A(() => { for (let t = 0; t < e.observers.length; t += 1) { let n = e.observers[t], r = d && d.running; r && d.disposed.has(n) || ((r ? !n.tState : !n.state) && (n.pure ? h.push(n) : g.push(n), n.observers && le(n)), r ? n.tState = s : n.state = s); } if (h.length > 1e6) throw h = [], Error(); }, !1); } return t; } function E(e) { if (!e.fn) return; N(e); let t = _; D(e, d && d.running && d.sources.has(e) ? e.tValue : e.value, t), d && !d.running && d.sources.has(e) && queueMicrotask(() => { A(() => { d && (d.running = !0), m = u = e, D(e, e.tValue, t), m = u = null; }, !1); }); } function D(e, t, n) { let r, i = u, a = m; m = u = e; try { r = e.fn(t); } catch (t) { return e.pure && (d && d.running ? (e.tState = s, e.tOwned && e.tOwned.forEach(N), e.tOwned = void 0) : (e.state = s, e.owned && e.owned.forEach(N), e.owned = null)), e.updatedAt = n + 1, I(t); } finally { m = a, u = i; } (!e.updatedAt || e.updatedAt <= n) && (e.updatedAt != null && "observers" in e ? T(e, r, !0) : d && d.running && e.pure ? (d.sources.has(e) || (e.value = r), d.sources.add(e), e.tValue = r) : e.value = r, e.updatedAt = n); } function O(e, t, n, r = s, i) { let a = { fn: e, state: r, updatedAt: null, owned: null, sources: null, sourceSlots: null, cleanups: null, value: t, owner: u, context: u ? u.context : null, pure: n }; if (d && d.running && (a.state = 0, a.tState = r), u === null || u !== l && (d && d.running && u.pure ? u.tOwned ? u.tOwned.push(a) : u.tOwned = [a] : u.owned ? u.owned.push(a) : u.owned = [a]), p && a.fn) { let e = a.fn, [t, n] = v(void 0, { equals: !1 }), r = p.factory(e, n); te(() => r.dispose()); let i, o = () => ne(n).then(() => { i &&= (i.dispose(), void 0); }); a.fn = (n) => (t(), d && d.running ? (i ||= p.factory(e, o), i.track(n)) : r.track(n)); } return a; } function k(e) { let t = d && d.running; if ((t ? e.tState : e.state) === 0) return; if ((t ? e.tState : e.state) === c) return M(e); if (e.suspense && S(e.suspense.inFallback)) return e.suspense.effects.push(e); let n = [e]; for (; (e = e.owner) && (!e.updatedAt || e.updatedAt < _);) { if (t && d.disposed.has(e)) return; (t ? e.tState : e.state) && n.push(e); } for (let r = n.length - 1; r >= 0; r--) { if (e = n[r], t) { let t = e, i = n[r + 1]; for (; (t = t.owner) && t !== i;) if (d.disposed.has(t)) return; } if ((t ? e.tState : e.state) === s) E(e); else if ((t ? e.tState : e.state) === c) { let t = h; h = null, A(() => M(e, n[0]), !1), h = t; } } } function A(e, t) { if (h) return e(); let n = !1; t || (h = []), g ? n = !0 : g = [], _++; try { let t = e(); return oe(n), t; } catch (e) { n || (g = null), h = null, I(e); } } function oe(e) { if (h &&= (f && d && d.running ? se(h) : j(h), null), e) return; let t; if (d) { if (!d.promises.size && !d.queue.size) { let e = d.sources, n = d.disposed; g.push.apply(g, d.effects), t = d.resolve; for (let e of g) "tState" in e && (e.state = e.tState), delete e.tState; d = null, A(() => { for (let e of n) N(e); for (let t of e) { if (t.value = t.tValue, t.owned) for (let e = 0, n = t.owned.length; e < n; e++) N(t.owned[e]); t.tOwned && (t.owned = t.tOwned), delete t.tValue, delete t.tOwned, t.tState = 0; } C(!1); }, !1); } else if (d.running) { d.running = !1, d.effects.push.apply(d.effects, g), g = null, C(!0); return; } } let n = g; g = null, n.length && A(() => o(n), !1), t && t(); } function j(e) { for (let t = 0; t < e.length; t++) k(e[t]); } function se(e) { for (let t = 0; t < e.length; t++) { let n = e[t], r = d.queue; r.has(n) || (r.add(n), f(() => { r.delete(n), A(() => { d.running = !0, k(n); }, !1), d && (d.running = !1); })); } } function ce(t) { let r, i = 0; for (r = 0; r < t.length; r++) { let e = t[r]; e.user ? t[i++] = e : k(e); } if (e.context) { if (e.count) { e.effects ||= [], e.effects.push(...t.slice(0, i)); return; } n(); } for (e.effects && (e.done || !e.count) && (t = [...e.effects, ...t], i += e.effects.length, delete e.effects), r = 0; r < i; r++) k(t[r]); } function M(e, t) { let n = d && d.running; n ? e.tState = 0 : e.state = 0; for (let r = 0; r < e.sources.length; r += 1) { let i = e.sources[r]; if (i.sources) { let e = n ? i.tState : i.state; e === s ? i !== t && (!i.updatedAt || i.updatedAt < _) && k(i) : e === c && M(i, t); } } } function le(e) { let t = d && d.running; for (let n = 0; n < e.observers.length; n += 1) { let r = e.observers[n]; (t ? !r.tState : !r.state) && (t ? r.tState = c : r.state = c, r.pure ? h.push(r) : g.push(r), r.observers && le(r)); } } function N(e) { let t; if (e.sources) for (; e.sources.length;) { let t = e.sources.pop(), n = e.sourceSlots.pop(), r = t.observers; if (r && r.length) { let e = r.pop(), i = t.observerSlots.pop(); n < r.length && (e.sourceSlots[i] = n, r[n] = e, t.observerSlots[n] = i); } } if (e.tOwned) { for (t = e.tOwned.length - 1; t >= 0; t--) N(e.tOwned[t]); delete e.tOwned; } if (d && d.running && e.pure) P(e, !0); else if (e.owned) { for (t = e.owned.length - 1; t >= 0; t--) N(e.owned[t]); e.owned = null; } if (e.cleanups) { for (t = e.cleanups.length - 1; t >= 0; t--) e.cleanups[t](); e.cleanups = null; } d && d.running ? e.tState = 0 : e.state = 0; } function P(e, t) { if (t || (e.tState = 0, d.disposed.add(e)), e.owned) for (let t = 0; t < e.owned.length; t++) P(e.owned[t]); } function ue(e) { return e instanceof Error ? e : Error(typeof e == "string" ? e : "Unknown error", { cause: e }); } function F(e, t, n) { try { for (let n of t) n(e); } catch (e) { I(e, n && n.owner || null); } } function I(e, t = u) { let n = a && t && t.context && t.context[a], r = ue(e); if (!n) throw r; g ? g.push({ fn() { F(r, n, t); }, state: s }) : F(r, n, t); } var de = !1; function L(t, i) { if (de && e.context) { let a = e.context; n(r()); let o = S(() => t(i || {})); return n(a), o; } return S(() => t(i || {})); } var fe = (e) => `Stale read from <${e}>.`; function R(e) { let t = e.keyed, n = x(() => e.when, void 0, void 0), r = t ? n : x(n, void 0, { equals: (e, t) => !e == !t }); return x(() => { let i = r(); if (i) { let a = e.children; return typeof a == "function" && a.length > 0 ? S(() => a(t ? i : () => { if (!S(r)) throw fe("Show"); return n(); })) : a; } return e.fallback; }, void 0, void 0); } //#endregion //#region ../../../node_modules/solid-js/web/dist/web.js var z = (e) => x(() => e()); function pe(e, t, n) { let r = n.length, i = t.length, a = r, o = 0, s = 0, c = t[i - 1].nextSibling, l = null; for (; o < i || s < a;) { if (t[o] === n[s]) { o++, s++; continue; } for (; t[i - 1] === n[a - 1];) i--, a--; if (i === o) { let t = a < r ? s ? n[s - 1].nextSibling : n[a - s] : c; for (; s < a;) e.insertBefore(n[s++], t); } else if (a === s) for (; o < i;) (!l || !l.has(t[o])) && t[o].remove(), o++; else if (t[o] === n[a - 1] && n[s] === t[i - 1]) { let r = t[--i].nextSibling; e.insertBefore(n[s++], t[o++].nextSibling), e.insertBefore(n[--a], r), t[i] = n[a]; } else { if (!l) { l = /* @__PURE__ */ new Map(); let e = s; for (; e < a;) l.set(n[e], e++); } let r = l.get(t[o]); if (r != null) if (s < r && r < a) { let c = o, u = 1, d; for (; ++c < i && c < a && !((d = l.get(t[c])) == null || d !== r + u);) u++; if (u > r - s) { let i = t[o]; for (; s < r;) e.insertBefore(n[s++], i); } else e.replaceChild(n[s++], t[o++]); } else o++; else t[o++].remove(); } } } var B = "_$DX_DELEGATE"; function V(e, t, n, r) { let i, a = () => { let t = r ? document.createElementNS("http://www.w3.org/1998/Math/MathML", "template") : document.createElement("template"); return t.innerHTML = e, n ? t.content.firstChild.firstChild : r ? t.firstChild : t.content.firstChild; }, o = t ? () => S(() => document.importNode(i ||= a(), !0)) : () => (i ||= a()).cloneNode(!0); return o.cloneNode = o, o; } function H(e, t = window.document) { let n = t[B] || (t[B] = /* @__PURE__ */ new Set()); for (let r = 0, i = e.length; r < i; r++) { let i = e[r]; n.has(i) || (n.add(i), t.addEventListener(i, he)); } } function me(e, t) { W(e) || (t == null ? e.removeAttribute("class") : e.className = t); } function U(e, t, n, r) { if (n !== void 0 && !r && (r = []), typeof t != "function") return G(e, t, r, n); y((r) => G(e, t(), r, n), r); } function W(t) { return !!e.context && !e.done && (!t || t.isConnected); } function he(t) { if (e.registry && e.events && e.events.find(([e, n]) => n === t)) return; let n = t.target, r = `$$${t.type}`, i = t.target, a = t.currentTarget, o = (e) => Object.defineProperty(t, "target", { configurable: !0, value: e }), s = () => { let e = n[r]; if (e && !n.disabled) { let i = n[`${r}Data`]; if (i === void 0 ? e.call(n, t) : e.call(n, i, t), t.cancelBubble) return; } return n.host && typeof n.host != "string" && !n.host._$host && n.contains(t.target) && o(n.host), !0; }, c = () => { for (; s() && (n = n._$host || n.parentNode || n.host);); }; if (Object.defineProperty(t, "currentTarget", { configurable: !0, get() { return n || document; } }), e.registry && !e.done && (e.done = _$HY.done = !0), t.composedPath) { let e = t.composedPath(); o(e[0]); for (let t = 0; t < e.length - 2 && (n = e[t], s()); t++) { if (n._$host) { n = n._$host, c(); break; } if (n.parentNode === a) break; } } else c(); o(i); } function G(e, t, n, r, i) { let a = W(e); if (a) { !n && (n = [...e.childNodes]); let t = []; for (let e = 0; e < n.length; e++) { let r = n[e]; r.nodeType === 8 && r.data.slice(0, 2) === "!$" ? r.remove() : t.push(r); } n = t; } for (; typeof n == "function";) n = n(); if (t === n) return n; let o = typeof t, s = r !== void 0; if (e = s && n[0] && n[0].parentNode || e, o === "string" || o === "number") { if (a || o === "number" && (t = t.toString(), t === n)) return n; if (s) { let i = n[0]; i && i.nodeType === 3 ? i.data !== t && (i.data = t) : i = document.createTextNode(t), n = J(e, n, r, i); } else n = n !== "" && typeof n == "string" ? e.firstChild.data = t : e.textContent = t; } else if (t == null || o === "boolean") { if (a) return n; n = J(e, n, r); } else if (o === "function") return y(() => { let i = t(); for (; typeof i == "function";) i = i(); n = G(e, i, n, r); }), () => n; else if (Array.isArray(t)) { let o = [], c = n && Array.isArray(n); if (K(o, t, n, i)) return y(() => n = G(e, o, n, r, !0)), () => n; if (a) { if (!o.length) return n; if (r === void 0) return n = [...e.childNodes]; let t = o[0]; if (t.parentNode !== e) return n; let i = [t]; for (; (t = t.nextSibling) !== r;) i.push(t); return n = i; } if (o.length === 0) { if (n = J(e, n, r), s) return n; } else c ? n.length === 0 ? q(e, o, r) : pe(e, n, o) : (n && J(e), q(e, o)); n = o; } else if (t.nodeType) { if (a && t.parentNode) return n = s ? [t] : t; if (Array.isArray(n)) { if (s) return n = J(e, n, r, t); J(e, n, null, t); } else n == null || n === "" || !e.firstChild ? e.appendChild(t) : e.replaceChild(t, e.firstChild); n = t; } return n; } function K(e, t, n, r) { let i = !1; for (let a = 0, o = t.length; a < o; a++) { let o = t[a], s = n && n[e.length], c; if (!(o == null || o === !0 || o === !1)) if ((c = typeof o) == "object" && o.nodeType) e.push(o); else if (Array.isArray(o)) i = K(e, o, s) || i; else if (c === "function") if (r) { for (; typeof o == "function";) o = o(); i = K(e, Array.isArray(o) ? o : [o], Array.isArray(s) ? s : [s]) || i; } else e.push(o), i = !0; else { let t = String(o); s && s.nodeType === 3 && s.data === t ? e.push(s) : e.push(document.createTextNode(t)); } } return i; } function q(e, t, n = null) { for (let r = 0, i = t.length; r < i; r++) e.insertBefore(t[r], n); } function J(e, t, n, r) { if (n === void 0) return e.textContent = ""; let i = r || document.createTextNode(""); if (t.length) { let r = !1; for (let a = t.length - 1; a >= 0; a--) { let o = t[a]; if (i !== o) { let t = o.parentNode === e; !r && !a ? t ? e.replaceChild(i, o) : e.insertBefore(i, n) : t && o.remove(); } else r = !0; } } else e.insertBefore(i, n); return [i]; } //#endregion //#region src/assets/lucide-icons/pencil.svg?raw var Y = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\"/><path d=\"m15 5 4 4\"/></svg>\n", X = (e) => e != null && (e = Object.getPrototypeOf(e), e === Array.prototype || e === Object.prototype); function Z(e, t, n) { for (let [r, i] of Object.entries(t)) { let t = `${n}.${r}`; e[t] = i, X(i) && Z(e, i, t); } } function ge(e) { let t = { ...e }; for (let [n, r] of Object.entries(e)) X(r) && Z(t, r, n); return t; } var _e = ((e) => e); function ve(e, t = _e) { return (n, ...r) => { n[0] === "." && (n = n.slice(1)); let i = e()?.[n]; switch (typeof i) { case "function": return i(...r); case "string": return t(i, r[0]); default: return i; } }; } //#endregion //#region src/i18n.ts var ye = { en: { InternalLink: { insertLink: "Insert link", change: "Change", editor: { noResult: "No results found", draft: "Draft", published: "Published", sheduled: "Sheduled" }, dialog: { title: "Insert an internal link", removeLink: "Remove link", changeLink: "Find another link", ok: "OK" } } }, fr: { InternalLink: { insertLink: "Insérer un lien", change: "Modifier", editor: { noResult: "Aucun résultat trouvé", draft: "Brouillon", published: "Publié", sheduled: "Programmé" }, dialog: { title: "Insérer un lien interne", removeLink: "Supprimer le lien", changeLink: "Trouver un autre lien", ok: "OK" } } }, es: { InternalLink: { insertLink: "Insertar enlace", change: "Cambiar", editor: { noResult: "No se encontraron resultados", draft: "Borrador", published: "Publicado", sheduled: "Programado" }, dialog: { title: "Insertar un enlace interno", removeLink: "Eliminar enlace", changeLink: "Encontrar otro enlace", ok: "OK" } } }, de: { InternalLink: { insertLink: "Link einfügen", change: "Ändern", editor: { noResult: "Keine Ergebnisse gefunden", draft: "Entwurf", published: "Veröffentlicht", sheduled: "Geplant" }, dialog: { title: "Einen internen Link einfügen", removeLink: "Link entfernen", changeLink: "Einen anderen Link finden", ok: "OK" } } }, it: { InternalLink: { insertLink: "Inserisci link", change: "Cambia", editor: { noResult: "Nessun risultato trovato", draft: "Bozza", published: "Pubblicato", sheduled: "Programmato" }, dialog: { title: "Inserisci un link interno", removeLink: "Rimuovi link", changeLink: "Trova un altro link", ok: "OK" } } }, pt: { InternalLink: { insertLink: "Inserir link", change: "Alterar", editor: { noResult: "Nenhum resultado encontrado", draft: "Rascunho", published: "Publicado", sheduled: "Agendado" }, dialog: { title: "Inserir um link interno", removeLink: "Remover link", changeLink: "Encontrar outro link", ok: "OK" } } } }; function Q(e) { return { t: ve(x(() => { let t = e(); return ge(ye[t in ye ? t : "en"]); })) }; } //#endregion //#region src/assets/lucide-icons/circle-alert.svg?raw var be = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><line x1=\"12\" x2=\"12\" y1=\"8\" y2=\"12\"/><line x1=\"12\" x2=\"12.01\" y1=\"16\" y2=\"16\"/></svg>\n", xe = /* @__PURE__ */ V("<div class=ILResult>"), Se = /* @__PURE__ */ V("<div class=ILNoResult><span class=ILNoResult-message></span><span>"), Ce = /* @__PURE__ */ V("<div class=InternalLinkEditor><form class=ILForm><input class=InternalLinkEditor-input type=text placeholder=Search>"), we = /* @__PURE__ */ V("<div class=ILResultItem><div class=ILResultItem-title></div><span>"); function Te(e) { let { value: t, setValue: n, service: r } = e, [i, a] = v(""), [o, s] = v([]), { t: c } = Q(e.language); b(async () => { let e = t(); e && (a((await r.getDocument(e))?.title ?? ""), await l()); }); let l = async (e) => { e?.preventDefault(), !(i().length < 2) && s(await r.searchDocuments({ searchString: i() })); }, u = (e) => e && new Date(e).getTime() < Date.now(); return (() => { var e = Ce(), t = e.firstChild, r = t.firstChild; return t.addEventListener("submit", l), r.$$input = (e) => a(e.currentTarget.value), U(e, L(R, { when: o, get children() { var e = xe(); return U(e, () => o().map((e) => (() => { var t = we(), r = t.firstChild, i = r.nextSibling; return t.$$click = () => { n(e.id); }, U(r, () => e.title), U(i, (() => { var t = z(() => !!e.ready); return () => t() ? z(() => !!u(e.publishDate))() ? c("InternalLink.editor.published") : c("InternalLink.editor.sheduled") : c("InternalLink.editor.draft"); })()), y(() => me(i, `ILResultItem-status ${e.ready ? u(e.publishDate) ? "published" : "sheduled" : "draft"}`)), t; })())), e; } }), null), U(e, L(R, { get when() { return !o() || o().length === 0; }, get children() { var e = Se(), t = e.firstChild, n = t.nextSibling; return U(t, () => c("InternalLink.editor.noResult")), n.innerHTML = be, e; } }), null), y(() => r.value = i()), e; })(); } H(["input", "click"]); //#endregion //#region src/internal-link-dialog/InternalLinkDialog.tsx var Ee = /* @__PURE__ */ V("<div class=InternalLinkDialog-header><span class=InternalLinkDialog-title>"), $ = /* @__PURE__ */ V("<button class=PlgBtn type=button>"), De = /* @__PURE__ */ V("<div class=InternalLinkDialog-content>"), Oe = /* @__PURE__ */ V("<div class=ILPreview><div class=ILPreview-title></div><button class=\"PlgBtn outlined iconBtn\"type=button>"), ke = /* @__PURE__ */ V("<div>"), Ae = /* @__PURE__ */ V("<div><button class=\"PlgBtn primary\"type=button>"), je = /* @__PURE__ */ V("<button type=button class=\"PlgBtn danger\">"), Me = /* @__PURE__ */ V("<button class=\"PlgBtn primary\"type=button>"), Ne = /* @__PURE__ */ V("<div class=InternalLinkDialog-linkPreview><div></div><button class=\"PlgBtn iconBtn\"type=button>"); function Pe({ service: e, setValue: t, value: n, language: r }) { let { t: i } = Q(r), [a, o] = v(), [s, c] = v(!!n()); b(async () => { let t = n(); if (!t) return; let r = await e.getDocument(t); if (!r) return; let { title: i, typeName: a } = r; o({ title: i, typeName: a }); }); let l = (() => { var e = Ee(), t = e.firstChild; return U(e, (() => { var e = z(() => !!(n() && !s())); return () => e() && (() => { var e = $(); return e.$$click = () => { c(!0); }, e.innerHTML = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m12 19-7-7 7-7\"/><path d=\"M19 12H5\"/></svg>\n", e; })(); })(), t), U(t, () => i("InternalLink.dialog.title")), e; })(), u = (() => { var i = De(); return U(i, (() => { var i = z(() => !!(s() && n())); return () => i() ? (() => { var t = Oe(), r = t.firstChild, i = r.nextSibling; return U(r, () => a()?.title), i.$$click = () => { let t = n(), r = a()?.typeName; !t || !r || (f.close(), e.openDocumentEdition(t, r)); }, i.innerHTML = Y, t; })() : L(Te, { service: e, language: r, value: n, setValue: (e) => { t(e), c(!0), f.hide(); } }); })()), i; })(), d = (() => { var e = ke(); return U(e, (() => { var e = z(() => !!s()); return () => e() ? (() => { var e = Ae(), r = e.firstChild; return U(e, (() => { var e = z(() => !!n()); return () => e() && [(() => { var e = je(); return e.$$click = () => { t(void 0), f.hide(); }, U(e, () => i("InternalLink.dialog.removeLink")), e; })(), (() => { var e = $(); return e.$$click = () => c(!1), U(e, () => i("InternalLink.dialog.changeLink")), e; })()]; })(), r), r.$$click = () => { f.hide(); }, U(r, () => i("InternalLink.dialog.ok")), e; })() : (() => { var e = Me(); return e.$$click = () => { f.hide(); }, U(e, () => i("InternalLink.dialog.ok")), e; })(); })()), e; })(), f = e.createModalDialog({ content: u, footer: d, header: l }); return (() => { var e = ke(); return U(e, (() => { var e = z(() => !!n()); return () => e() ? (() => { var e = Ne(), t = e.firstChild, n = t.nextSibling; return U(t, () => a()?.title), n.$$click = () => f.show(), n.innerHTML = Y, e; })() : (() => { var e = $(); return e.$$click = () => f.show(), U(e, () => i("InternalLink.insertLink")), e; })(); })()), e; })(); } H(["click"]); //#endregion //#region src/internal-link-dialog/editor-integration-handler.tsx var Fe = /* @__PURE__ */ V("<div class=InternalLinkDialog-header><span class=InternalLinkDialog-title>"), Ie = /* @__PURE__ */ V("<button class=PlgBtn type=button>"), Le = /* @__PURE__ */ V("<div>"), Re = /* @__PURE__ */ V("<div><button class=\"PlgBtn primary\"type=button>"), ze = /* @__PURE__ */ V("<button type=button class=\"PlgBtn danger outlined\">"), Be = /* @__PURE__ */ V("<button class=\"PlgBtn primary\"type=button>"), Ve = /* @__PURE__ */ V("<div class=InternalLinkDialog-content>"), He = /* @__PURE__ */ V("<div class=ILPreview><div class=ILPreview-title></div><button class=\"PlgBtn outlined iconBtn\"type=button>"); async function Ue({ value: e, getLanguage: t, service: n }) { let [r, i] = v(), { t: a } = Q(t), [o, s] = v(!!e()); b(async () => { let t = e(); if (!t) return; let r = await n.getDocument(t); if (!r) return; let { title: a, typeName: o } = r; i({ title: a, typeName: o }); }); let c = (() => { var t = Fe(), n = t.firstChild; return U(t, (() => { var t = z(() => !!(e() && !o())); return () => t() && (() => { var e = Ie(); return e.$$click = () => { s(!0); }, e.innerHTML = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m12 19-7-7 7-7\"/><path d=\"M19 12H5\"/></svg>\n", e; })(); })(), n), U(n, () => a("InternalLink.dialog.title")), t; })(), l = (() => { var t = Le(); return U(t, (() => { var t = z(() => !!o()); return () => t() ? (() => { var t = Re(), n = t.firstChild; return U(t, (() => { var t = z(() => !!e()); return () => t() && [(() => { var e = ze(); return e.$$click = () => u.close("remove"), U(e, () => a("InternalLink.dialog.removeLink")), e; })(), (() => { var e = Ie(); return e.$$click = () => s(!1), U(e, () => a("InternalLink.dialog.changeLink")), e; })()]; })(), n), n.$$click = () => u.close(), U(n, () => a("InternalLink.dialog.ok")), t; })() : (() => { var e = Be(); return e.$$click = () => u.close(), U(e, () => a("InternalLink.dialog.ok")), e; })(); })()), t; })(), u = n.createModalDialog({ content: (() => { var i = Ve(); return U(i, (() => { var i = z(() => !!(o() && e())); return () => i() ? (() => { var t = He(), i = t.firstChild, a = i.nextSibling; return U(i, () => r()?.title), a.$$click = () => { let t = e(), i = r()?.typeName; !t || !i || (u.close(), n.openDocumentEdition(t, i)); }, a.innerHTML = Y, t; })() : L(Te, { service: n, language: t, value: e, setValue: (e) => u.close(e) }); })()), i; })(), header: c, footer: l }); return await u.open(); } H(["click"]); //#endregion //#region src/main.tsx var We = { create: Je, init: qe }; function Ge(e) { e.executeHook("htmlEditorServiceProvider").forEach((t) => { t.registerInternalLinkPlugin(Ke(e)); }); } function Ke(e) { return { async getDocumentTitle(t) { return (await e.getDocument(t))?.title; }, async openDialog(t, n) { let r = await Ue({ value: () => t, getLanguage: n.getLanguage, service: e }); if (r) return r === "remove" ? { documentId: void 0 } : { documentId: r }; } }; } function qe({ pluginBaseUrl: e, addAfterInitListener: t }) { let n = `${e}/admin-ui-plugin.css`, r = document.createElement("link"); r.rel = "stylesheet", r.href = n, document.head.appendChild(r), t(Ge); } function Je(e) { let { fieldType: t, initialValue: n } = e; if (t.dataType !== "string") throw Error(`field type '${t.name}' is incompatible with internal-link plugin, needs data type 'string'`); if (n !== void 0 && typeof n != "string") throw Error(`field type '${t.name}' is incompatible, should be a string, got '${typeof n}'`); return ee((t) => { let [r, i] = v(n ?? ""), [a, o] = v(e.language); return { element: L(Pe, { language: a, value: r, setValue: (t) => { i(t ?? ""), e.setModifiedValue(t ?? null); }, service: e }), setLanguage: o, setValue: i, getValue() { return r(); }, dispose: t }; }); } //#endregion export { We as default };