@lobehub/editor
Version:
A powerful and extensible rich text editor built on Meta's Lexical framework, providing a modern editing experience with React integration.
1,887 lines (1,886 loc) • 194 kB
JavaScript
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
function t(t, ...e) {
const n = new URL('https://lexical.dev/docs/error'),
r = new URLSearchParams();
r.append('code', t);
for (const t of e) r.append('v', t);
throw (
(n.search = r.toString()),
Error(
`Minified Lexical error #${t}; visit ${n.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`,
)
);
}
function e(t, ...e) {
const n = new URL('https://lexical.dev/docs/error'),
r = new URLSearchParams();
r.append('code', t);
for (const t of e) r.append('v', t);
((n.search = r.toString()),
console.warn(
`Minified Lexical warning #${t}; visit ${n.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`,
));
}
const n =
'undefined' != typeof window &&
void 0 !== window.document &&
void 0 !== window.document.createElement,
r = n && 'documentMode' in document ? document.documentMode : null,
i = n && /Mac|iPod|iPhone|iPad/.test(navigator.platform),
o = n && /^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent),
s =
!(!n || !('InputEvent' in window) || r) && 'getTargetRanges' in new window.InputEvent('input'),
l = n && /Version\/[\d.]+.*Safari/.test(navigator.userAgent),
c = n && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream,
a = n && /Android/.test(navigator.userAgent),
u = n && /^(?=.*Chrome).*/i.test(navigator.userAgent),
f = n && a && u,
d = n && /AppleWebKit\/[\d.]+/.test(navigator.userAgent) && i && !u;
function h(...t) {
const e = [];
for (const n of t) if (n && 'string' == typeof n) for (const [t] of n.matchAll(/\S+/g)) e.push(t);
return e;
}
const g = 0,
_ = 1,
p = 2,
y = 1,
m = 2,
x = 4,
C = 8,
S = 16,
v = 32,
k = 64,
T = 128,
N = 2047,
b = 1,
w = 2,
E = 3,
O = 4,
M = 5,
A = 6,
P = l || c || d ? ' ' : '',
D = '\n\n',
F = o ? ' ' : P,
L = '֑-߿יִ-﷽ﹰ-ﻼ',
I = 'A-Za-zÀ-ÖØ-öø-ʸ̀-ࠀ-Ⰰ-︀--',
K = new RegExp('^[^' + I + ']*[' + L + ']'),
z = new RegExp('^[^' + L + ']*[' + I + ']'),
R = {
bold: 1,
capitalize: 1024,
code: 16,
highlight: T,
italic: 2,
lowercase: 256,
strikethrough: 4,
subscript: 32,
superscript: 64,
underline: 8,
uppercase: 512,
},
B = { directionless: 1, unmergeable: 2 },
W = { center: 2, end: 6, justify: 4, left: 1, right: 3, start: 5 },
J = { [w]: 'center', [A]: 'end', [O]: 'justify', [b]: 'left', [E]: 'right', [M]: 'start' },
j = { normal: 0, segmented: 2, token: 1 },
$ = { [g]: 'normal', [p]: 'segmented', [_]: 'token' },
U = '$',
V = '$config';
function Y(t, e, n, r, i, o) {
let s = t.getFirstChild();
for (; null !== s; ) {
const t = s.__key;
(s.__parent === e && (Mi(s) && Y(s, t, n, r, i, o), n.has(t) || o.delete(t), i.push(t)),
(s = s.getNextSibling()));
}
}
let q = !1,
H = 0;
function G(t) {
H = t.timeStamp;
}
function X(t, e, n) {
const r = 'BR' === t.nodeName,
i = e.__lexicalLineBreak;
return (i && (t === i || (r && t.previousSibling === i))) || (r && void 0 !== Mo(t, n));
}
function Q(t, e, n) {
const r = Ns(_s(n));
let i = null,
o = null;
null !== r && r.anchorNode === t && ((i = r.anchorOffset), (o = r.focusOffset));
const s = t.nodeValue;
null !== s && jo(e, s, i, o, !1);
}
function Z(t, e, n) {
if (br(t)) {
const e = t.anchor.getNode();
if (e.is(n) && t.format !== e.getFormat()) return !1;
}
return mo(e) && n.isAttached();
}
function tt(t, e, n, r) {
for (let i = t; i && !js(i); i = cs(i)) {
const t = Mo(i, e);
if (void 0 !== t) {
const e = Eo(t, n);
if (e) return Di(e) || !Os(i) ? void 0 : [i, e];
} else if (i === r) return [r, Lo(n)];
}
}
function et(t, e, n) {
q = !0;
const r = performance.now() - H > 100;
try {
bi(t, () => {
const i =
$r() ||
(function (t) {
return t.getEditorState().read(() => {
const t = $r();
return null !== t ? t.clone() : null;
});
})(t),
s = new Map(),
l = t.getRootElement(),
c = t._editorState,
a = t._blockCursorElement;
let u = !1,
f = '';
for (let n = 0; n < e.length; n++) {
const d = e[n],
h = d.type,
g = d.target,
_ = tt(g, t, c, l);
if (!_) continue;
const [p, y] = _;
if ('characterData' === h) r && pr(y) && mo(g) && Z(i, g, y) && Q(g, y, t);
else if ('childList' === h) {
u = !0;
const e = d.addedNodes;
for (let n = 0; n < e.length; n++) {
const r = e[n],
i = Oo(r),
s = r.parentNode;
if (null != s && r !== a && null === i && !X(r, s, t)) {
if (o) {
const t = (Os(r) ? r.innerText : null) || r.nodeValue;
t && (f += t);
}
s.removeChild(r);
}
}
const n = d.removedNodes,
r = n.length;
if (r > 0) {
let e = 0;
for (let i = 0; i < r; i++) {
const r = n[i];
(X(r, g, t) || a === r) && (g.appendChild(r), e++);
}
r !== e && s.set(p, y);
}
}
}
if (s.size > 0) for (const [e, n] of s) n.reconcileObservedMutation(e, t);
const d = n.takeRecords();
if (d.length > 0) {
for (let e = 0; e < d.length; e++) {
const n = d[e],
r = n.addedNodes,
i = n.target;
for (let e = 0; e < r.length; e++) {
const n = r[e],
o = n.parentNode;
null == o || 'BR' !== n.nodeName || X(n, i, t) || o.removeChild(n);
}
}
n.takeRecords();
}
null !== i && (u && Io(i), o && is(t) && i.insertRawText(f));
});
} finally {
q = !1;
}
}
function nt(t) {
const e = t._observer;
if (null !== e) {
et(t, e.takeRecords(), e);
}
}
function rt(t) {
(!(function (t) {
0 === H && _s(t).addEventListener('textInput', G, !0);
})(t),
(t._observer = new MutationObserver((e, n) => {
et(t, e, n);
})));
}
class it {
key;
parse;
unparse;
isEqual;
defaultValue;
constructor(t, e) {
((this.key = t),
(this.parse = e.parse.bind(e)),
(this.unparse = (e.unparse || gt).bind(e)),
(this.isEqual = (e.isEqual || Object.is).bind(e)),
(this.defaultValue = this.parse(void 0)));
}
}
function ot(t, e) {
return new it(t, e);
}
function st(t, e, n = 'latest') {
const r = ('latest' === n ? t.getLatest() : t).__state;
return r ? r.getValue(e) : e.defaultValue;
}
function lt(t, e, n) {
const r = st(t, n, 'direct'),
i = st(e, n, 'direct');
return n.isEqual(r, i) ? null : [r, i];
}
function ct(t, e, n) {
let r;
if ((ui(), 'function' == typeof n)) {
const i = t.getLatest(),
o = st(i, e);
if (((r = n(o)), e.isEqual(o, r))) return i;
} else r = n;
const i = t.getWritable();
return (ft(i).updateFromKnown(e, r), i);
}
function at(t) {
const e = new Map(),
n = new Set();
for (
let r = 'function' == typeof t ? t : t.replace;
r.prototype && void 0 !== r.prototype.getType;
r = Object.getPrototypeOf(r)
) {
const { ownNodeConfig: t } = Us(r);
if (t && t.stateConfigs)
for (const r of t.stateConfigs) {
let t;
('stateConfig' in r ? ((t = r.stateConfig), r.flat && n.add(t.key)) : (t = r),
e.set(t.key, t));
}
}
return { flatKeys: n, sharedConfigMap: e };
}
class ut {
node;
knownState;
unknownState;
sharedNodeState;
size;
constructor(t, e, n = void 0, r = new Map(), i = void 0) {
((this.node = t), (this.sharedNodeState = e), (this.unknownState = n), (this.knownState = r));
const { sharedConfigMap: o } = this.sharedNodeState,
s =
void 0 !== i
? i
: (function (t, e, n) {
let r = n.size;
if (e)
for (const i in e) {
const e = t.get(i);
(e && n.has(e)) || r++;
}
return r;
})(o, n, r);
this.size = s;
}
getValue(t) {
const e = this.knownState.get(t);
if (void 0 !== e) return e;
this.sharedNodeState.sharedConfigMap.set(t.key, t);
let n = t.defaultValue;
if (this.unknownState && t.key in this.unknownState) {
const e = this.unknownState[t.key];
(void 0 !== e && (n = t.parse(e)), this.updateFromKnown(t, n));
}
return n;
}
getInternalState() {
return [this.unknownState, this.knownState];
}
toJSON() {
const t = { ...this.unknownState },
e = {};
for (const [e, n] of this.knownState)
e.isEqual(n, e.defaultValue) ? delete t[e.key] : (t[e.key] = e.unparse(n));
for (const n of this.sharedNodeState.flatKeys) n in t && ((e[n] = t[n]), delete t[n]);
return (ht(t) && (e.$ = t), e);
}
getWritable(t) {
if (this.node === t) return this;
const { sharedNodeState: e, unknownState: n } = this,
r = new Map(this.knownState);
return new ut(
t,
e,
(function (t, e, n) {
let r;
if (n)
for (const [i, o] of Object.entries(n)) {
const n = t.get(i);
n ? e.has(n) || e.set(n, n.parse(o)) : ((r = r || {}), (r[i] = o));
}
return r;
})(e.sharedConfigMap, r, n),
r,
this.size,
);
}
updateFromKnown(t, e) {
const n = t.key;
this.sharedNodeState.sharedConfigMap.set(n, t);
const { knownState: r, unknownState: i } = this;
(r.has(t) || (i && n in i) || (i && (delete i[n], (this.unknownState = ht(i))), this.size++),
r.set(t, e));
}
updateFromUnknown(t, e) {
const n = this.sharedNodeState.sharedConfigMap.get(t);
n
? this.updateFromKnown(n, n.parse(e))
: ((this.unknownState = this.unknownState || {}),
t in this.unknownState || this.size++,
(this.unknownState[t] = e));
}
updateFromJSON(t) {
const { knownState: e } = this;
for (const t of e.keys()) e.set(t, t.defaultValue);
if (((this.size = e.size), (this.unknownState = void 0), t))
for (const [e, n] of Object.entries(t)) this.updateFromUnknown(e, n);
}
}
function ft(t) {
const e = t.getWritable(),
n = e.__state ? e.__state.getWritable(e) : new ut(e, dt(e));
return ((e.__state = n), n);
}
function dt(t) {
return t.__state ? t.__state.sharedNodeState : oo(Ls(), t.getType()).sharedNodeState;
}
function ht(t) {
if (t) for (const e in t) return t;
}
function gt(t) {
return t;
}
function _t(t, e, n) {
for (const [r, i] of e.knownState) {
if (t.has(r.key)) continue;
t.add(r.key);
const e = n ? n.getValue(r) : r.defaultValue;
if (e !== i && !r.isEqual(e, i)) return !0;
}
return !1;
}
function pt(t, e, n) {
const { unknownState: r } = e,
i = n ? n.unknownState : void 0;
if (r)
for (const [e, n] of Object.entries(r)) {
if (t.has(e)) continue;
t.add(e);
if (n !== (i ? i[e] : void 0)) return !0;
}
return !1;
}
function yt(t, e) {
const n = t.__state;
return n && n.node === t ? n.getWritable(e) : n;
}
function mt(t, e) {
const n = t.__mode,
r = t.__format,
i = t.__style,
o = e.__mode,
s = e.__format,
l = e.__style,
c = t.__state,
a = e.__state;
return (
(null === n || n === o) &&
(null === r || r === s) &&
(null === i || i === l) &&
(null === t.__state ||
c === a ||
(function (t, e) {
if (t === e) return !0;
if (t && e && t.size !== e.size) return !1;
const n = new Set();
return !(
(t && _t(n, t, e)) ||
(e && _t(n, e, t)) ||
(t && pt(n, t, e)) ||
(e && pt(n, e, t))
);
})(c, a))
);
}
function xt(t, e) {
const n = t.mergeWithSibling(e),
r = hi()._normalizedNodes;
return (r.add(t.__key), r.add(e.__key), n);
}
function Ct(t) {
let e,
n,
r = t;
if ('' !== r.__text || !r.isSimpleText() || r.isUnmergeable()) {
for (
;
null !== (e = r.getPreviousSibling()) && pr(e) && e.isSimpleText() && !e.isUnmergeable();
) {
if ('' !== e.__text) {
if (mt(e, r)) {
r = xt(e, r);
break;
}
break;
}
e.remove();
}
for (; null !== (n = r.getNextSibling()) && pr(n) && n.isSimpleText() && !n.isUnmergeable(); ) {
if ('' !== n.__text) {
if (mt(r, n)) {
r = xt(r, n);
break;
}
break;
}
n.remove();
}
} else r.remove();
}
function St(t) {
return (vt(t.anchor), vt(t.focus), t);
}
function vt(t) {
for (; 'element' === t.type; ) {
const e = t.getNode(),
n = t.offset;
let r, i;
if (
(n === e.getChildrenSize()
? ((r = e.getChildAtIndex(n - 1)), (i = !0))
: ((r = e.getChildAtIndex(n)), (i = !1)),
pr(r))
) {
t.set(r.__key, i ? r.getTextContentSize() : 0, 'text', !0);
break;
}
if (!Mi(r)) break;
t.set(r.__key, i ? r.getChildrenSize() : 0, 'element', !0);
}
}
let kt,
Tt,
Nt,
bt,
wt,
Et,
Ot,
Mt,
At,
Pt,
Dt = '',
Ft = null,
Lt = null,
It = '',
Kt = !1,
zt = !1;
function Rt(t, e) {
const n = Ot.get(t);
if (null !== e) {
const n = ne(t);
n.parentNode === e && e.removeChild(n);
}
if ((Mt.has(t) || Tt._keyToDOMMap.delete(t), Mi(n))) {
const t = Xt(n, Ot);
Bt(t, 0, t.length - 1, null);
}
void 0 !== n && ts(Pt, Nt, bt, n, 'destroyed');
}
function Bt(t, e, n, r) {
let i = e;
for (; i <= n; ++i) {
const e = t[i];
void 0 !== e && Rt(e, r);
}
}
function Wt(t, e) {
t.setProperty('text-align', e);
}
const Jt = '40px';
function jt(t, e) {
const n = kt.theme.indent;
if ('string' == typeof n) {
const r = t.classList.contains(n);
e > 0 && !r ? t.classList.add(n) : e < 1 && r && t.classList.remove(n);
}
const r = getComputedStyle(t).getPropertyValue('--lexical-indent-base-value') || Jt;
t.style.setProperty('padding-inline-start', 0 === e ? '' : `calc(${e} * ${r})`);
}
function $t(t, e) {
const n = t.style;
0 === e
? Wt(n, '')
: 1 === e
? Wt(n, 'left')
: 2 === e
? Wt(n, 'center')
: 3 === e
? Wt(n, 'right')
: 4 === e
? Wt(n, 'justify')
: 5 === e
? Wt(n, 'start')
: 6 === e && Wt(n, 'end');
}
function Ut(t, e) {
const n = (function (t) {
const e = t.__dir;
if (null !== e) return e;
if (Li(t)) return null;
const n = t.getParentOrThrow();
return Li(n) && null === n.__dir ? 'auto' : null;
})(e);
null !== n ? (t.dir = n) : t.removeAttribute('dir');
}
function Vt(e, n) {
const r = Mt.get(e);
void 0 === r && t(60);
const i = r.createDOM(kt, Tt);
if (
((function (t, e, n) {
const r = n._keyToDOMMap;
((function (t, e, n) {
const r = `__lexicalKey_${e._key}`;
t[r] = n;
})(e, n, t),
r.set(t, e));
})(e, i, Tt),
pr(r)
? i.setAttribute('data-lexical-text', 'true')
: Di(r) && i.setAttribute('data-lexical-decorator', 'true'),
Mi(r))
) {
const t = r.__indent,
e = r.__size;
if ((Ut(i, r), 0 !== t && jt(i, t), 0 !== e)) {
const t = e - 1;
Yt(Xt(r, Mt), r, 0, t, r.getDOMSlot(i));
}
const n = r.__format;
(0 !== n && $t(i, n), r.isInline() || Ht(null, r, i), ss(r) && ((Dt += D), (It += D)));
} else {
const t = r.getTextContent();
if (Di(r)) {
const t = r.decorate(Tt, kt);
(null !== t && Zt(e, t), (i.contentEditable = 'false'));
}
((Dt += t), (It += t));
}
return (null !== n && n.insertChild(i), ts(Pt, Nt, bt, r, 'created'), i);
}
function Yt(t, e, n, r, i) {
const o = Dt;
Dt = '';
let s = n;
for (; s <= r; ++s) {
Vt(t[s], i);
const e = Mt.get(t[s]);
null !== e && pr(e) && null === Ft && ((Ft = e.getFormat()), (Lt = e.getStyle()));
}
ss(e) && (Dt += D);
((i.element.__lexicalTextContent = Dt), (Dt = o + Dt));
}
function qt(t, e) {
if (t) {
const n = t.__last;
if (n) {
const t = e.get(n);
if (t) return Qn(t) ? 'line-break' : Di(t) && t.isInline() ? 'decorator' : null;
}
return 'empty';
}
return null;
}
function Ht(t, e, n) {
const r = qt(t, Ot),
i = qt(e, Mt);
r !== i && e.getDOMSlot(n).setManagedLineBreak(i);
}
function Gt(e, n, r) {
var i;
((Ft = null),
(Lt = null),
(function (e, n, r) {
const i = Dt,
o = e.__size,
s = n.__size;
Dt = '';
const l = r.element;
if (1 === o && 1 === s) {
const t = e.__first,
r = n.__first;
if (t === r) Qt(t, l);
else {
const e = ne(t),
n = Vt(r, null);
try {
l.replaceChild(n, e);
} catch (i) {
if ('object' == typeof i && null != i) {
const o = `${i.toString()} Parent: ${l.tagName}, new child: {tag: ${n.tagName} key: ${r}}, old child: {tag: ${e.tagName}, key: ${t}}.`;
throw new Error(o);
}
throw i;
}
Rt(t, null);
}
const i = Mt.get(r);
pr(i) && null === Ft && ((Ft = i.getFormat()), (Lt = i.getStyle()));
} else {
const i = Xt(e, Ot),
c = Xt(n, Mt);
if ((i.length !== o && t(227), c.length !== s && t(228), 0 === o))
0 !== s && Yt(c, n, 0, s - 1, r);
else if (0 === s) {
if (0 !== o) {
const t = null == r.after && null == r.before && null == r.element.__lexicalLineBreak;
(Bt(i, 0, o - 1, t ? null : l), t && (l.textContent = ''));
}
} else
!(function (t, e, n, r, i, o) {
const s = r - 1,
l = i - 1;
let c,
a,
u = o.getFirstChild(),
f = 0,
d = 0;
for (; f <= s && d <= l; ) {
const t = e[f],
r = n[d];
if (t === r) ((u = te(Qt(r, o.element))), f++, d++);
else {
(void 0 === c && (c = new Set(e)), void 0 === a && (a = new Set(n)));
const i = a.has(t),
s = c.has(r);
if (i)
if (s) {
const t = ls(Tt, r);
(t === u
? (u = te(Qt(r, o.element)))
: (o.withBefore(u).insertChild(t), Qt(r, o.element)),
f++,
d++);
} else (Vt(r, o.withBefore(u)), d++);
else ((u = te(ne(t))), Rt(t, o.element), f++);
}
const i = Mt.get(r);
null !== i && pr(i) && null === Ft && ((Ft = i.getFormat()), (Lt = i.getStyle()));
}
const h = f > s,
g = d > l;
if (h && !g) {
const e = n[l + 1],
r = void 0 === e ? null : Tt.getElementByKey(e);
Yt(n, t, d, l, o.withBefore(r));
} else g && !h && Bt(e, f, s, o.element);
})(n, i, c, o, s, r);
}
ss(n) && (Dt += D);
((l.__lexicalTextContent = Dt), (Dt = i + Dt));
})(e, n, n.getDOMSlot(r)),
(i = n),
null == Ft || Ft === i.__textFormat || zt || i.setTextFormat(Ft),
(function (t) {
null == Lt || Lt === t.__textStyle || zt || t.setTextStyle(Lt);
})(n));
}
function Xt(e, n) {
const r = [];
let i = e.__first;
for (; null !== i; ) {
const e = n.get(i);
(void 0 === e && t(101), r.push(i), (i = e.__next));
}
return r;
}
function Qt(e, n) {
const r = Ot.get(e);
let i = Mt.get(e);
(void 0 !== r && void 0 !== i) || t(61);
const o = Kt || Et.has(e) || wt.has(e),
s = ls(Tt, e);
if (r === i && !o) {
if (Mi(r)) {
const t = s.__lexicalTextContent;
void 0 !== t && ((Dt += t), (It += t));
} else {
const t = r.getTextContent();
((It += t), (Dt += t));
}
return s;
}
if ((r !== i && o && ts(Pt, Nt, bt, i, 'updated'), i.updateDOM(r, s, kt))) {
const r = Vt(e, null);
return (null === n && t(62), n.replaceChild(r, s), Rt(e, null), r);
}
if (Mi(r) && Mi(i)) {
const t = i.__indent;
(Kt || t !== r.__indent) && jt(s, t);
const e = i.__format;
if (
((Kt || e !== r.__format) && $t(s, e),
o && (Gt(r, i, s), Li(i) || i.isInline() || Ht(r, i, s)),
ss(i) && ((Dt += D), (It += D)),
(Kt || i.__dir !== r.__dir) && (Ut(s, i), Li(i) && !Kt))
)
for (const t of i.getChildren())
if (Mi(t)) {
Ut(ls(Tt, t.getKey()), t);
}
} else {
const t = i.getTextContent();
if (Di(i)) {
const t = i.decorate(Tt, kt);
null !== t && Zt(e, t);
}
((Dt += t), (It += t));
}
if (!zt && Li(i) && i.__cachedText !== It) {
const t = i.getWritable();
((t.__cachedText = It), (i = t));
}
return s;
}
function Zt(t, e) {
let n = Tt._pendingDecorators;
const r = Tt._decorators;
if (null === n) {
if (r[t] === e) return;
n = Po(Tt);
}
n[t] = e;
}
function te(t) {
let e = t.nextSibling;
return (null !== e && e === Tt._blockCursorElement && (e = e.nextSibling), e);
}
function ee(t, e, n, r, i, o) {
((Dt = ''),
(It = ''),
(Kt = 2 === r),
(Tt = n),
(kt = n._config),
(Nt = n._nodes),
(bt = Tt._listeners.mutation),
(wt = i),
(Et = o),
(Ot = t._nodeMap),
(Mt = e._nodeMap),
(zt = e._readOnly),
(At = new Map(n._keyToDOMMap)));
const s = new Map();
return (
(Pt = s),
Qt('root', null),
(Tt = void 0),
(Nt = void 0),
(wt = void 0),
(Et = void 0),
(Ot = void 0),
(Mt = void 0),
(kt = void 0),
(At = void 0),
(Pt = void 0),
s
);
}
function ne(e) {
const n = At.get(e);
return (void 0 === n && t(75, e), n);
}
function re(t) {
return { type: t };
}
const ie = re('SELECTION_CHANGE_COMMAND'),
oe = re('SELECTION_INSERT_CLIPBOARD_NODES_COMMAND'),
se = re('CLICK_COMMAND'),
le = re('BEFORE_INPUT_COMMAND'),
ce = re('INPUT_COMMAND'),
ae = re('COMPOSITION_START_COMMAND'),
ue = re('COMPOSITION_END_COMMAND'),
fe = re('DELETE_CHARACTER_COMMAND'),
de = re('INSERT_LINE_BREAK_COMMAND'),
he = re('INSERT_PARAGRAPH_COMMAND'),
ge = re('CONTROLLED_TEXT_INSERTION_COMMAND'),
_e = re('PASTE_COMMAND'),
pe = re('REMOVE_TEXT_COMMAND'),
ye = re('DELETE_WORD_COMMAND'),
me = re('DELETE_LINE_COMMAND'),
xe = re('FORMAT_TEXT_COMMAND'),
Ce = re('UNDO_COMMAND'),
Se = re('REDO_COMMAND'),
ve = re('KEYDOWN_COMMAND'),
ke = re('KEY_ARROW_RIGHT_COMMAND'),
Te = re('MOVE_TO_END'),
Ne = re('KEY_ARROW_LEFT_COMMAND'),
be = re('MOVE_TO_START'),
we = re('KEY_ARROW_UP_COMMAND'),
Ee = re('KEY_ARROW_DOWN_COMMAND'),
Oe = re('KEY_ENTER_COMMAND'),
Me = re('KEY_SPACE_COMMAND'),
Ae = re('KEY_BACKSPACE_COMMAND'),
Pe = re('KEY_ESCAPE_COMMAND'),
De = re('KEY_DELETE_COMMAND'),
Fe = re('KEY_TAB_COMMAND'),
Le = re('INSERT_TAB_COMMAND'),
Ie = re('INDENT_CONTENT_COMMAND'),
Ke = re('OUTDENT_CONTENT_COMMAND'),
ze = re('DROP_COMMAND'),
Re = re('FORMAT_ELEMENT_COMMAND'),
Be = re('DRAGSTART_COMMAND'),
We = re('DRAGOVER_COMMAND'),
Je = re('DRAGEND_COMMAND'),
je = re('COPY_COMMAND'),
$e = re('CUT_COMMAND'),
Ue = re('SELECT_ALL_COMMAND'),
Ve = re('CLEAR_EDITOR_COMMAND'),
Ye = re('CLEAR_HISTORY_COMMAND'),
qe = re('CAN_REDO_COMMAND'),
He = re('CAN_UNDO_COMMAND'),
Ge = re('FOCUS_COMMAND'),
Xe = re('BLUR_COMMAND'),
Qe = re('KEY_MODIFIER_COMMAND'),
Ze = Object.freeze({}),
tn = [
[
'keydown',
function (t, e) {
if (((en = t.timeStamp), (nn = t.key), e.isComposing())) return;
os(e, ve, t);
},
],
[
'pointerdown',
function (t, e) {
const n = t.target,
r = t.pointerType;
Ms(n) &&
'touch' !== r &&
'pen' !== r &&
0 === t.button &&
bi(e, () => {
co(n) || (an = !0);
});
},
],
[
'compositionstart',
function (t, e) {
os(e, ae, t);
},
],
[
'compositionend',
function (t, e) {
o ? (fn = !0) : c || (!l && !d) ? os(e, ue, t) : ((dn = !0), (hn = t.data));
},
],
[
'input',
function (t, e) {
(t.stopPropagation(),
bi(
e,
() => {
e.dispatchCommand(ce, t);
},
{ event: t },
),
(on = null));
},
],
[
'click',
function (t, e) {
bi(e, () => {
const n = $r(),
r = Ns(_s(e)),
i = Ur();
if (r)
if (br(n)) {
const e = n.anchor,
o = e.getNode();
if (
'element' === e.type &&
0 === e.offset &&
n.isCollapsed() &&
!Li(o) &&
1 === Fo().getChildrenSize() &&
o.getTopLevelElementOrThrow().isEmpty() &&
null !== i &&
n.is(i)
)
(r.removeAllRanges(), (n.dirty = !0));
else if (3 === t.detail && !n.isCollapsed()) {
if (o !== n.focus.getNode()) {
const t = Ys(o, (t) => Mi(t) && !t.isInline());
Mi(t) && t.select(0);
}
}
} else if ('touch' === t.pointerType || 'pen' === t.pointerType) {
const n = r.anchorNode;
if (Os(n) || mo(n)) {
Io(jr(i, r, e, t));
}
}
os(e, se, t);
});
},
],
['cut', Ze],
['copy', Ze],
['dragstart', Ze],
['dragover', Ze],
['dragend', Ze],
['paste', Ze],
['focus', Ze],
['blur', Ze],
['drop', Ze],
];
s &&
tn.push([
'beforeinput',
(t, e) =>
(function (t, e) {
const n = t.inputType;
if ('deleteCompositionText' === n || (o && is(e))) return;
if ('insertCompositionText' === n) return;
os(e, le, t);
})(t, e),
]);
let en = 0,
nn = null,
rn = 0,
on = null;
const sn = new WeakMap(),
ln = new WeakMap();
let cn = !1,
an = !1,
un = !1,
fn = !1,
dn = !1,
hn = '',
gn = null,
_n = [0, '', 0, 'root', 0];
function pn(t, e, n, r, i) {
const o = t.anchor,
l = t.focus,
c = o.getNode(),
a = hi(),
u = Ns(_s(a)),
f = null !== u ? u.anchorNode : null,
d = o.key,
h = a.getElementByKey(d),
g = n.length;
return (
d !== l.key ||
!pr(c) ||
(((!i && (!s || rn < r + 50)) || (c.isDirty() && g < 2) || zo(n)) &&
o.offset !== l.offset &&
!c.isComposing()) ||
yo(c) ||
(c.isDirty() && g > 1) ||
((i || !s) && null !== h && !c.isComposing() && f !== Co(h)) ||
(null !== u &&
null !== e &&
(!e.collapsed || e.startContainer !== u.anchorNode || e.startOffset !== u.anchorOffset)) ||
c.getFormat() !== t.format ||
c.getStyle() !== t.style ||
(function (t, e) {
if (e.isSegmented()) return !0;
if (!t.isCollapsed()) return !1;
const n = t.anchor.offset,
r = e.getParentOrThrow(),
i = po(e);
return 0 === n
? !e.canInsertTextBefore() ||
(!r.canInsertTextBefore() && !e.isComposing()) ||
i ||
(function (t) {
const e = t.getPreviousSibling();
return (pr(e) || (Mi(e) && e.isInline())) && !e.canInsertTextAfter();
})(e)
: n === e.getTextContentSize() &&
(!e.canInsertTextAfter() || (!r.canInsertTextAfter() && !e.isComposing()) || i);
})(t, c)
);
}
function yn(t, e) {
return mo(t) && null !== t.nodeValue && 0 !== e && e !== t.nodeValue.length;
}
function mn(e, n, r) {
const { anchorNode: i, anchorOffset: o, focusNode: s, focusOffset: l } = e;
(cn && ((cn = !1), yn(i, o) && yn(s, l) && !gn)) ||
bi(n, () => {
if (!r) return void Io(null);
if (!uo(n, i, s)) return;
let c = $r();
if (gn && br(c) && c.isCollapsed()) {
const t = c.anchor,
e = gn.anchor;
((t.key === e.key && t.offset === e.offset + 1) ||
(1 === t.offset && e.getNode().is(t.getNode().getPreviousSibling()))) &&
((c = gn.clone()), Io(c));
}
if (((gn = null), br(c))) {
const r = c.anchor,
i = r.getNode();
if (c.isCollapsed()) {
'Range' === e.type && e.anchorNode === e.focusNode && (c.dirty = !0);
const o = _s(n).event,
s = o ? o.timeStamp : performance.now(),
[l, a, u, f, d] = _n,
h = Fo(),
g = !1 === n.isComposing() && '' === h.getTextContent();
if (s < d + 200 && r.offset === u && r.key === f) xn(c, l, a);
else if ('text' === r.type) (pr(i) || t(141), Cn(c, i));
else if ('element' === r.type && !g) {
Mi(i) || t(259);
const e = r.getNode();
e.isEmpty()
? (function (t, e) {
const n = e.getTextFormat(),
r = e.getTextStyle();
xn(t, n, r);
})(c, e)
: xn(c, 0, '');
}
} else {
const t = r.key,
e = c.focus.key,
n = c.getNodes(),
i = n.length,
s = c.isBackward(),
a = s ? l : o,
u = s ? o : l,
f = s ? e : t,
d = s ? t : e;
let h = 2047,
g = !1;
for (let t = 0; t < i; t++) {
const e = n[t],
r = e.getTextContentSize();
if (
pr(e) &&
0 !== r &&
!(
(0 === t && e.__key === f && a === r) ||
(t === i - 1 && e.__key === d && 0 === u)
) &&
((g = !0), (h &= e.getFormat()), 0 === h)
)
break;
}
c.format = g ? h : 0;
}
}
os(n, ie, void 0);
});
}
function xn(t, e, n) {
(t.format === e && t.style === n) || ((t.format = e), (t.style = n), (t.dirty = !0));
}
function Cn(t, e) {
xn(t, e.getFormat(), e.getStyle());
}
function Sn(t) {
if (!t.getTargetRanges) return null;
const e = t.getTargetRanges();
return 0 === e.length ? null : e[0];
}
function vn(e) {
const n = e.inputType,
r = Sn(e),
i = hi(),
o = $r();
if ('deleteContentBackward' === n) {
if (null === o) {
const t = Ur();
if (!br(t)) return !0;
Io(t.clone());
}
if (br(o)) {
const n = o.anchor.key === o.focus.key;
if (((s = e.timeStamp), 'MediaLast' === nn && s < en + 30 && i.isComposing() && n)) {
if (
(bo(null),
(en = 0),
setTimeout(() => {
bi(i, () => {
bo(null);
});
}, 30),
br(o))
) {
const e = o.anchor.getNode();
(e.markDirty(), pr(e) || t(142), Cn(o, e));
}
} else {
(bo(null), e.preventDefault());
const t = o.anchor.getNode(),
r = t.getTextContent(),
s = t.canInsertTextAfter(),
l = 0 === o.anchor.offset && o.focus.offset === r.length;
let c = f && n && !l && s;
if ((c && o.isCollapsed() && (c = !Di(rs(o.anchor, !0))), !c)) {
os(i, fe, !0);
const t = $r();
f && br(t) && t.isCollapsed() && ((gn = t), setTimeout(() => (gn = null)));
}
}
return !0;
}
}
var s;
if (!br(o)) return !0;
const l = e.data;
(null !== on && Jo(!1, i, on),
(o.dirty && null === on) ||
!o.isCollapsed() ||
Li(o.anchor.getNode()) ||
null === r ||
o.applyDOMRange(r),
(on = null));
const a = o.anchor,
u = o.focus,
d = a.getNode(),
h = u.getNode();
if ('insertText' === n || 'insertTranspose' === n) {
if ('\n' === l) (e.preventDefault(), os(i, de, !1));
else if (l === D) (e.preventDefault(), os(i, he, void 0));
else if (null == l && e.dataTransfer) {
const t = e.dataTransfer.getData('text/plain');
(e.preventDefault(), o.insertRawText(t));
} else
null != l && pn(o, r, l, e.timeStamp, !0) ? (e.preventDefault(), os(i, ge, l)) : (on = l);
return ((rn = e.timeStamp), !0);
}
switch ((e.preventDefault(), n)) {
case 'insertFromYank':
case 'insertFromDrop':
case 'insertReplacementText':
os(i, ge, e);
break;
case 'insertFromComposition':
(bo(null), os(i, ge, e));
break;
case 'insertLineBreak':
(bo(null), os(i, de, !1));
break;
case 'insertParagraph':
(bo(null), un && !c ? ((un = !1), os(i, de, !1)) : os(i, he, void 0));
break;
case 'insertFromPaste':
case 'insertFromPasteAsQuotation':
os(i, _e, e);
break;
case 'deleteByComposition':
(function (t, e) {
return t !== e || Mi(t) || Mi(e) || !po(t) || !po(e);
})(d, h) && os(i, pe, e);
break;
case 'deleteByDrag':
case 'deleteByCut':
os(i, pe, e);
break;
case 'deleteContent':
os(i, fe, !1);
break;
case 'deleteWordBackward':
os(i, ye, !0);
break;
case 'deleteWordForward':
os(i, ye, !1);
break;
case 'deleteHardLineBackward':
case 'deleteSoftLineBackward':
os(i, me, !0);
break;
case 'deleteContentForward':
case 'deleteHardLineForward':
case 'deleteSoftLineForward':
os(i, me, !1);
break;
case 'formatStrikeThrough':
os(i, xe, 'strikethrough');
break;
case 'formatBold':
os(i, xe, 'bold');
break;
case 'formatItalic':
os(i, xe, 'italic');
break;
case 'formatUnderline':
os(i, xe, 'underline');
break;
case 'historyUndo':
os(i, Ce, void 0);
break;
case 'historyRedo':
os(i, Se, void 0);
}
return !0;
}
function kn(t) {
if (Os(t.target) && co(t.target)) return !0;
const e = hi(),
n = $r(),
r = t.data,
i = Sn(t);
if (null != r && br(n) && pn(n, i, r, t.timeStamp, !1)) {
fn && (bn(e, r), (fn = !1));
const i = n.anchor.getNode(),
a = Ns(_s(e));
if (null === a) return !0;
const u = n.isBackward(),
f = u ? n.anchor.offset : n.focus.offset,
h = u ? n.focus.offset : n.anchor.offset;
(s &&
!n.isCollapsed() &&
pr(i) &&
null !== a.anchorNode &&
i.getTextContent().slice(0, f) + r + i.getTextContent().slice(f + h) === Wo(a.anchorNode)) ||
os(e, ge, r);
const g = r.length;
(o &&
g > 1 &&
'insertCompositionText' === t.inputType &&
!e.isComposing() &&
(n.anchor.offset -= g),
l || c || d || !e.isComposing() || ((en = 0), bo(null)));
} else {
(Jo(!1, e, null !== r ? r : void 0), fn && (bn(e, r || void 0), (fn = !1)));
}
return (
(function () {
ui();
const t = hi();
nt(t);
})(),
!0
);
}
function Tn(t) {
const e = hi(),
n = $r();
if (br(n) && !e.isComposing()) {
const r = n.anchor,
i = n.anchor.getNode();
(bo(r.key),
(t.timeStamp < en + 30 ||
'element' === r.type ||
!n.isCollapsed() ||
i.getFormat() !== n.format ||
(pr(i) && i.getStyle() !== n.style)) &&
os(e, ge, F));
}
return !0;
}
function Nn(t) {
return (bn(hi(), t.data), !0);
}
function bn(t, e) {
const n = t._compositionKey;
if ((bo(null), null !== n && null != e)) {
if ('' === e) {
const e = Eo(n),
r = Co(t.getElementByKey(n));
return void (
null !== r &&
null !== r.nodeValue &&
pr(e) &&
jo(e, r.nodeValue, null, null, !0)
);
}
if ('\n' === e[e.length - 1]) {
const e = $r();
if (br(e)) {
const n = e.focus;
return (e.anchor.set(n.key, n.offset, n.type), void os(t, Oe, null));
}
}
}
Jo(!0, t, e);
}
function wn(t) {
const e = hi();
if (null == t.key) return !0;
if (dn && Go(t))
return (
bi(e, () => {
bn(e, hn);
}),
(dn = !1),
(hn = ''),
!0
);
if (
(function (t) {
return Yo(t, 'ArrowRight', { shiftKey: 'any' });
})(t)
)
os(e, ke, t);
else if (
(function (t) {
return Yo(t, 'ArrowRight', qo);
})(t)
)
os(e, Te, t);
else if (
(function (t) {
return Yo(t, 'ArrowLeft', { shiftKey: 'any' });
})(t)
)
os(e, Ne, t);
else if (
(function (t) {
return Yo(t, 'ArrowLeft', qo);
})(t)
)
os(e, be, t);
else if (
(function (t) {
return Yo(t, 'ArrowUp', { altKey: 'any', shiftKey: 'any' });
})(t)
)
os(e, we, t);
else if (
(function (t) {
return Yo(t, 'ArrowDown', { altKey: 'any', shiftKey: 'any' });
})(t)
)
os(e, Ee, t);
else if (
(function (t) {
return Yo(t, 'Enter', { altKey: 'any', ctrlKey: 'any', metaKey: 'any', shiftKey: !0 });
})(t)
)
((un = !0), os(e, Oe, t));
else if (
(function (t) {
return ' ' === t.key;
})(t)
)
os(e, Me, t);
else if (
(function (t) {
return i && Yo(t, 'o', { ctrlKey: !0 });
})(t)
)
(t.preventDefault(), (un = !0), os(e, de, !0));
else if (
(function (t) {
return Yo(t, 'Enter', { altKey: 'any', ctrlKey: 'any', metaKey: 'any' });
})(t)
)
((un = !1), os(e, Oe, t));
else if (
(function (t) {
return Yo(t, 'Backspace', { shiftKey: 'any' }) || (i && Yo(t, 'h', { ctrlKey: !0 }));
})(t)
)
Go(t) ? os(e, Ae, t) : (t.preventDefault(), os(e, fe, !0));
else if (
(function (t) {
return 'Escape' === t.key;
})(t)
)
os(e, Pe, t);
else if (
(function (t) {
return Yo(t, 'Delete', {}) || (i && Yo(t, 'd', { ctrlKey: !0 }));
})(t)
)
!(function (t) {
return 'Delete' === t.key;
})(t)
? (t.preventDefault(), os(e, fe, !1))
: os(e, De, t);
else if (
(function (t) {
return Yo(t, 'Backspace', Ho);
})(t)
)
(t.preventDefault(), os(e, ye, !0));
else if (
(function (t) {
return Yo(t, 'Delete', Ho);
})(t)
)
(t.preventDefault(), os(e, ye, !1));
else if (
(function (t) {
return i && Yo(t, 'Backspace', { metaKey: !0 });
})(t)
)
(t.preventDefault(), os(e, me, !0));
else if (
(function (t) {
return i && (Yo(t, 'Delete', { metaKey: !0 }) || Yo(t, 'k', { ctrlKey: !0 }));
})(t)
)
(t.preventDefault(), os(e, me, !1));
else if (
(function (t) {
return Yo(t, 'b', qo);
})(t)
)
(t.preventDefault(), os(e, xe, 'bold'));
else if (
(function (t) {
return Yo(t, 'u', qo);
})(t)
)
(t.preventDefault(), os(e, xe, 'underline'));
else if (
(function (t) {
return Yo(t, 'i', qo);
})(t)
)
(t.preventDefault(), os(e, xe, 'italic'));
else if (
(function (t) {
return Yo(t, 'Tab', { shiftKey: 'any' });
})(t)
)
os(e, Fe, t);
else if (
(function (t) {
return Yo(t, 'z', qo);
})(t)
)
(t.preventDefault(), os(e, Ce, void 0));
else if (
(function (t) {
if (i) return Yo(t, 'z', { metaKey: !0, shiftKey: !0 });
return Yo(t, 'y', { ctrlKey: !0 }) || Yo(t, 'z', { ctrlKey: !0, shiftKey: !0 });
})(t)
)
(t.preventDefault(), os(e, Se, void 0));
else {
const n = e._editorState._selection;
null === n || br(n)
? Xo(t) && (t.preventDefault(), os(e, Ue, t))
: !(function (t) {
return Yo(t, 'c', qo);
})(t)
? !(function (t) {
return Yo(t, 'x', qo);
})(t)
? Xo(t) && (t.preventDefault(), os(e, Ue, t))
: (t.preventDefault(), os(e, $e, t))
: (t.preventDefault(), os(e, je, t));
}
return (
(function (t) {
return t.ctrlKey || t.shiftKey || t.altKey || t.metaKey;
})(t) && e.dispatchCommand(Qe, t),
!0
);
}
function En(t) {
let e = t.__lexicalEventHandles;
return (void 0 === e && ((e = []), (t.__lexicalEventHandles = e)), e);
}
const On = new Map();
function Mn(t) {
const e = bs(t.target);
if (null === e) return;
const n = ho(e.anchorNode);
if (null === n) return;
an &&
((an = !1),
bi(n, () => {
const r = Ur(),
i = e.anchorNode;
if (Os(i) || mo(i)) {
Io(jr(r, e, n, t));
}
}));
const r = Ro(n),
i = r[r.length - 1],
o = i._key,
s = On.get(o),
l = s || i;
(l !== n && mn(e, l, !1), mn(e, n, !0), n !== i ? On.set(o, n) : s && On.delete(o));
}
function An(t) {
t._lexicalHandled = !0;
}
function Pn(t) {
return !0 === t._lexicalHandled;
}
const Dn = () => {};
function Fn(e) {
const n = sn.get(e);
if (void 0 === n) return void Dn();
const r = ln.get(n);
if (void 0 === r) return void Dn();
const i = r - 1;
(i >= 0 || t(164),
sn.delete(e),
ln.set(n, i),
0 === i && n.removeEventListener('selectionchange', Mn));
const o = go(e);
fo(o)
? (!(function (t) {
if (null !== t._parentEditor) {
const e = Ro(t),
n = e[e.length - 1]._key;
On.get(n) === t && On.delete(n);
} else On.delete(t._key);
})(o),
(e.__lexicalEditor = null))
: o && t(198);
const s = En(e);
for (let t = 0; t < s.length; t++) s[t]();
e.__lexicalEventHandles = [];
}
function Ln(t, e, n) {
ui();
const r = t.__key,
i = t.getParent();
if (null === i) return;
const o = (function (t) {
const e = $r();
if (!br(e) || !Mi(t)) return e;
const { anchor: n, focus: r } = e,
i = n.getNode(),
o = r.getNode();
hs(i, t) && n.set(t.__key, 0, 'element');
hs(o, t) && r.set(t.__key, 0, 'element');
return e;
})(t);
let s = !1;
if (br(o) && e) {
const e = o.anchor,
n = o.focus;
(e.key === r && (qr(e, t, i, t.getPreviousSibling(), t.getNextSibling()), (s = !0)),
n.key === r && (qr(n, t, i, t.getPreviousSibling(), t.getNextSibling()), (s = !0)));
} else Er(o) && e && t.isSelected() && t.selectPrevious();
if (br(o) && e && !s) {
const e = t.getIndexWithinParent();
(To(t), Vr(o, i, e, -1));
} else To(t);
(n || ms(i) || i.canBeEmpty() || !i.isEmpty() || Ln(i, e),
e && o && Li(i) && i.isEmpty() && i.selectEnd());
}
function In(t) {
return t;
}
const Kn = Symbol.for('ephemeral');
function zn(t) {
return t[Kn] || !1;
}
class Rn {
__type;
__key;
__parent;
__prev;
__next;
__state;
static getType() {
const { ownNodeType: e } = Us(this);
return (void 0 === e && t(64, this.name), e);
}
static clone(e) {
t(65, this.name);
}
$config() {
return {};
}
config(t, e) {
const n = e.extends || Object.getPrototypeOf(this.constructor);
return (Object.assign(e, { extends: n, type: t }), { [t]: e });
}
afterCloneFrom(t) {
this.__key === t.__key
? ((this.__parent = t.__parent),
(this.__next = t.__next),
(this.__prev = t.__prev),
(this.__state = t.__state))
: t.__state && (this.__state = t.__state.getWritable(this));
}
static importDOM;
constructor(t) {
((this.__type = this.constructor.getType()),
(this.__parent = null),
(this.__prev = null),
(this.__next = null),
Object.defineProperty(this, '__state', {
configurable: !0,
enumerable: !1,
value: void 0,
writable: !0,
}),
ko(this, t));
}
getType() {
return this.__type;
}
isInline() {
t(137, this.constructor.name);
}
isAttached() {
let t = this.__key;
for (; null !== t; ) {
if ('root' === t) return !0;
const e = Eo(t);
if (null === e) break;
t = e.__parent;
}
return !1;
}
isSelected(t) {
const e = t || $r();
if (null == e) return !1;
const n = e.getNodes().some((t) => t.__key === this.__key);
if (pr(this)) return n;
if (br(e) && 'element' === e.anchor.type && 'element' === e.focus.type) {
if (e.isCollapsed()) return !1;
const t = this.getParent();
if (Di(this) && this.isInline() && t) {
const n = e.isBackward() ? e.focus : e.anchor;
if (t.is(n.getNode()) && n.offset === t.getChildrenSize() && this.is(t.getLastChild()))
return !1;
}
}
return n;
}
getKey() {
return this.__key;
}
getIndexWithinParent() {
const t = this.getParent();
if (null === t) return -1;
let e = t.getFirstChild(),
n = 0;
for (; null !== e; ) {
if (this.is(e)) return n;
(n++, (e = e.getNextSibling()));
}
return -1;
}
getParent() {
const t = this.getLatest().__parent;
return null === t ? null : Eo(t);
}
getParentOrThrow() {
const e = this.getParent();
return (null === e && t(66, this.__key), e);
}
getTopLevelElement() {
let e = this;
for (; null !== e; ) {
const n = e.getParent();
if (ms(n)) return (Mi(e) || (e === this && Di(e)) || t(194), e);
e = n;
}
return null;
}
getTopLevelElementOrThrow() {
const e = this.getTopLevelElement();
return (null === e && t(67, this.__key), e);
}
getParents() {
const t = [];
let e = this.getParent();
for (; null !== e; ) (t.push(e), (e = e.getParent()));
return t;
}
getParentKeys() {
const t = [];
let e = this.getParent();
for (; null !== e; ) (t.push(e.__key), (e = e.getParent()));
return t;
}
getPreviousSibling() {
const t = this.getLatest().__prev;
return null === t ? null : Eo(t);
}
getPreviousSiblings() {
const t = [],
e = this.getParent();
if (null === e) return t;
let n = e.getFirstChild();
for (; null !== n && !n.is(this); ) (t.push(n), (n = n.getNextSibling()));
return t;
}
getNextSibling() {
const t = this.getLatest().__next;
return null === t ? null : Eo(t);
}
getNextSiblings() {
const t = [];
let e = this.getNextSibling();
for (; null !== e; ) (t.push(e), (e = e.getNextSibling()));
return t;
}
getCommonAncestor(t) {
const e = Mi(this) ? this : this.getParent(),
n = Mi(t) ? t : t.getParent(),
r = e && n ? wl(e, n) : null;
return r ? r.commonAncestor : null;
}
is(t) {
return null != t && this.__key === t.__key;
}
isBefore(e) {
const n = wl(this, e);
return (
null !== n &&
('descendant' === n.type ||
('branch' === n.type
? -1 === Tl(n)
: ('same' !== n.type && 'ancestor' !== n.type && t(279), !1)))
);
}
isParentOf(t) {
const e = wl(this, t);
return null !== e && 'ancestor' === e.type;
}
getNodesBetween(e) {
const n = this.isBefore(e),
r = [],
i = new Set();
let o = this;
for (; null !== o; ) {
const s = o.__key;
if ((i.has(s) || (i.add(s), r.push(o)), o === e)) break;
const l = Mi(o) ? (n ? o.getFirstChild() : o.getLastChild()) : null;
if (null !== l) {
o = l;
continue;
}
const c = n ? o.getNextSibling() : o.getPreviousSibling();
if (null !== c) {
o = c;
continue;
}
const a = o.getParentOrThrow();
if ((i.has(a.__key) || r.push(a), a === e)) break;
let u = null,
f = a;
do {
if (
(null === f && t(68),
(u = n ? f.getNextSibling() : f.getPreviousSibling()),
(f = f.getParent()),
null === f)
)
break;
null !== u || i.has(f.__key) || r.push(f);
} while (null === u);
o = u;
}
return (n || r.reverse(), r);
}
isDirty() {
const t = hi()._dirtyLeaves;
return null !== t && t.has(this.__key);
}
getLatest() {
if (zn(this)) return this;
const e = Eo(this.__key);
return (null === e && t(113), e);
}
getWritable() {
if (zn(this)) return this;
ui();
const t = di(),
e = hi(),
n = t._nodeMap,
r = this.__key,
i = this.getLatest(),
o = e._cloneNotNeeded,
s = $r();
if ((null !== s && s.setCachedNodes(null), o.has(r))) return (No(i), i);
const l = Rs(i);
return (o.add(r), No(l), n.set(r, l), l);
}
getTextContent() {
return '';
}
getTextContentSize() {
return this.getTextContent().length;
}
createDOM(e, n) {
t(70);
}
updateDOM(e, n, r) {
t(71);
}
exportDOM(t) {
return { element: this.createDOM(t._config, t) };
}
exportJSON() {
const t = this.__state ? this.__state.toJSON() : void 0;
return { type: this.__type, version: 1, ...t };
}
static importJSON(e) {
t(18, this.name);
}
updateFromJSON(t) {
return (function (t, e) {
const n = t.getWritable(),
r = e.$;
let i = r;
for (const t of dt(n).flatKeys)
t in e && ((void 0 !== i && i !== r) || (i = { ...r }), (i[t] = e[t]));
return ((n.__state || i) && ft(t).updateFromJSON(i), n);
})(this, t);
}
static transform() {
return null;
}
remove(t) {
Ln(this, !0, t);
}
replace(e, n) {
ui();
let r = $r();
(null !== r && (r = r.clone()), Ss(this, e));
const i = this.getLatest(),
o = this.__key,
s = e.__key,
l = e.getWritable(),
c = this.getParentOrThrow().getWritable(),
a = c.__size;
To(l);
const u = i.getPreviousSibling(),
f = i.getNextSibling(),
d = i.__prev,
h = i.__next,
g = i.__parent;
if ((Ln(i, !1, !0), null === u)) c.__first = s;
else {
u.getWritable().__next