UNPKG

@blocknote/core

Version:

A "Notion-style" block-based extensible text editor built on top of Prosemirror and Tiptap.

2 lines 1.65 kB
const e=require("./BlockNoteExtension-BJCLnwrE.cjs");let t=require("prosemirror-state"),n=require("prosemirror-view");var r=new t.PluginKey(`blocknote-show-selection`),i=e.t(({editor:i})=>{let a=e.n({enabledSet:new Set},{onUpdate(){i.transact(e=>e.setMeta(r,{}))}});return{key:`showSelection`,store:a,prosemirrorPlugins:[new t.Plugin({key:r,props:{decorations:e=>{let{doc:t,selection:r}=e;if(a.state.enabledSet.size===0)return n.DecorationSet.empty;let i=n.Decoration.inline(r.from,r.to,{"data-show-selection":`true`});return n.DecorationSet.create(t,[i])}}})],showSelection(e,t){a.setState({enabledSet:e?new Set([...a.state.enabledSet,t]):new Set([...a.state.enabledSet].filter(e=>e!==t))})}}});function a(t){if(!t)throw Error(`resolveUsers is required to create a user store`);let n=e.n(new Map),r=new Set,i={store:n,async loadUsers(e){await a(e.filter(e=>!n.state.has(e)&&!r.has(e)))},async refetchUsers(e){await a(e.filter(e=>!r.has(e)))},getUser(e){return n.state.get(e)},setUser(e){let t=Array.isArray(e)?e:[e];n.setState(e=>{let n=new Map(e);for(let e of t)n.set(e.id,e);return n})}};async function a(e){if(e.length!==0){for(let t of e)r.add(t);try{let r=await t(e,i);r.length>0&&n.setState(e=>{let t=new Map(e);for(let e of r)t.set(e.id,e);return t})}finally{for(let t of e)r.delete(t)}}}return i}function o(e){return typeof e==`function`?a(e):e??a(async()=>[])}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}}); //# sourceMappingURL=UserStore-mj3fXW4D.cjs.map