@blocknote/core
Version:
A "Notion-style" block-based extensible text editor built on top of Prosemirror and Tiptap.
80 lines (79 loc) • 1.85 kB
JavaScript
import { getExtensionField as e } from "@tiptap/core";
//#region src/schema/markGroups.ts
var t = "annotation";
function n(n) {
return n && n.options.extensions.some((t) => {
if (t.type !== "mark") return !1;
let n = e(t, "group");
return typeof n == "string" && n.split(" ").includes("annotation");
}) ? t : "";
}
//#endregion
//#region src/util/Store.ts
var r = class {
listeners = /* @__PURE__ */ new Set();
state;
prevState;
options;
constructor(e, t) {
this.prevState = e, this.state = e, this.options = t;
}
subscribe = (e) => (this.listeners.add(e), () => {
this.listeners.delete(e);
});
setState(e) {
this.prevState = this.state, this.state = i(e) ? e(this.prevState) : e, s(this);
}
_notify() {
let e = {
prevVal: this.prevState,
currentVal: this.state
};
for (let t of this.listeners) t(e);
}
};
function i(e) {
return typeof e == "function";
}
var a = !1, o = /* @__PURE__ */ new Set();
function s(e) {
o.add(e);
let t = !a;
a = !0;
try {
if (e.options?.onUpdate?.(e.state, e.prevState), !t) return;
for (; o.size > 0;) {
let e = Array.from(o);
o.clear();
for (let t of e) t._notify();
}
} finally {
t && (a = !1, o.clear());
}
}
//#endregion
//#region src/editor/managers/ExtensionManager/symbol.ts
var c = Symbol("originalFactory");
//#endregion
//#region src/editor/BlockNoteExtension.ts
function l(e) {
if (typeof e == "object" && "key" in e) return function t() {
return e[c] = t, e;
};
if (typeof e != "function") throw Error("factory must be a function");
return function t(n) {
return (r) => {
let i = e({
editor: r.editor,
options: n
});
return i[c] = t, i;
};
};
}
function u(e, t) {
return new r(e, t);
}
//#endregion
export { t as a, r as i, u as n, n as o, c as r, l as t };
//# sourceMappingURL=BlockNoteExtension-CbvDA0F7.js.map