@paroicms/internal-link-plugin
Version:
Internal link plugin for ParoiCMS
937 lines (936 loc) • 29.5 kB
JavaScript
//#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 };