UNPKG

@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
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