@thebase/ui
Version:
CDN-installable Owl and Bootstrap 5 UI component library.
4 lines (3 loc) • 6.85 kB
JavaScript
import{a as I,h as B}from"./chunk-ZGHJJLEG.js";import{d as C,n as N,t as x}from"./chunk-R43NMSZO.js";import{Qa as D,T as z,U as A,_a as w}from"./chunk-XNCXGIZE.js";import{a as p,d as P}from"./chunk-OQJVATGH.js";function h(t,e){return Object.assign(t,{meta:{package:"@milkdown/plugin-streaming",...e}}),t}var y=x({throttleMs:100,scrollFollow:!0,diffReviewOnEnd:!1,ignoreAttrs:{heading:["id"]}},"streamingConfig");h(y,{displayName:"Ctx<streamingConfig>",group:"Streaming"});function G(t,e,n){let r=t.get(w)(n);if(!r)return{tr:e,newDoc:null};let i=t.get(y.key).ignoreAttrs,s=I(e.doc,r,i?{ignoreAttrs:i}:void 0);for(let o=s.length-1;o>=0;o--){let l=s[o],a=r.slice(l.fromB,l.toB);e=e.replace(l.fromA,l.toA,a)}return{tr:e,newDoc:r}}function q(t){if(t.parent.type.spec.code)return{type:"plain-text",preserveNewlines:!0};for(let e=t.depth;e>0;e--)if(t.node(e).type.name==="table")return{type:"plain-text",preserveNewlines:!1};return t.depth>=1?{type:"split-block"}:{type:"block"}}function F(t){if(t.childCount===0)return t;let e=t.lastChild;return e.type.name==="paragraph"&&e.content.size===0?t.cut(0,t.size-e.nodeSize):t}function H(t,e,n){let{insertPos:r,currentEndPos:i}=n,s=n.buffer.replace(/\r\n?/g,`
`);if(!s)return{tr:e,applied:!1,insertEndPos:i};let o=e.doc.content.size,l=Math.max(0,Math.min(r,o)),a=Math.max(l,Math.min(i,o)),u=e.doc.resolve(l),d=(t.get(y.key).insertStrategy??q)(u),m={ctx:t,tr:e,buffer:s,from:l,to:a,resolved:u};switch(d.type){case"plain-text":return J(m,d.preserveNewlines??!1);case"split-block":return U(m);case"block":return V(m)}}function J({tr:t,buffer:e,from:n,to:r},i){let s=i?e:e.replace(/\n/g," "),o=t.doc.type.schema.text(s);return t=t.replaceWith(n,r,o),{tr:t,applied:!0,insertEndPos:n+s.length}}var Q=/[*_~`[\\<]/;function E(t,e,n){if(!n)return p.empty;if(!Q.test(n))return p.from(e.text(n));let r=t.get(w)(n)?.firstChild;if(r?.type.name!=="paragraph"||r.content.size===0)return p.from(e.text(n));let i=!1;if(r.content.forEach(a=>{(!a.isText||a.marks.length>0)&&(i=!0)}),!i)return p.from(e.text(n));let s=r.content,o=/^\s+/.exec(n)?.[0];o&&((s.firstChild?.isText?s.firstChild.text??"":"").startsWith(o)||(s=p.from(e.text(o)).append(s)));let l=/\s+$/.exec(n)?.[0];return l&&((s.lastChild?.isText?s.lastChild.text??"":"").endsWith(l)||(s=s.append(p.from(e.text(l))))),s}function U({ctx:t,tr:e,buffer:n,from:r,to:i,resolved:s}){let o=e.doc.type.schema,l=n.indexOf(`
`);if(l<0){let f=E(t,o,n);return e=e.replaceWith(r,i,f),{tr:e,applied:!0,insertEndPos:r+f.size}}let a=n.substring(0,l),u=n.substring(l+1),d=t.get(w),m=u.trim()?d(u):null,b=m?F(m.content):p.empty;if(b.childCount===0){let f=E(t,o,n.replace(/\n/g," "));return e=e.replaceWith(r,i,f),{tr:e,applied:!0,insertEndPos:r+f.size}}let g=s.depth,S=E(t,o,a);for(let f=g;f>0;f--)S=p.from(s.node(f).copy(S));let T=S.append(b),$=new P(T,g,0),L=e.doc.content.size,v=e.doc.resolve(Math.min(i,L)),M=i;g>0&&v.depth===g&&v.parentOffset===v.parent.content.size&&(M=v.after(g)),e=e.replace(r,M,$);let j=T.size-g;return{tr:e,applied:!0,insertEndPos:r+j}}function V({ctx:t,tr:e,buffer:n,from:r,to:i}){let s=t.get(w)(n);if(!s)return{tr:e,applied:!1,insertEndPos:i};let o=F(s.content);return o.size===0?{tr:e,applied:!1,insertEndPos:i}:(e=e.replace(r,i,new P(o,0,0)),{tr:e,applied:!0,insertEndPos:r+o.size})}function k(t,e,n){if(n.insertPos!=null){let r=n.insertPos,i=H(t,e,{buffer:n.buffer,insertPos:r,currentEndPos:n.insertEndPos??r});return{tr:i.tr,newDoc:i.applied?i.tr.doc:null,insertEndPos:i.insertEndPos}}return G(t,e,n.buffer)}var c=new A("MILKDOWN_STREAMING");function X(t,e){if(!t&&e?.type!=="start")return null;if(!e)return t;switch(e.type){case"start":return{buffer:"",originalDoc:e.originalDoc,active:!0,lastApplyTime:e.lastApplyTime,insertPos:e.insertPos??null,insertEndPos:e.insertEndPos??e.insertPos??null};case"push":return t?{...t,buffer:t.buffer+e.token}:null;case"apply":return t?{...t,lastApplyTime:e.lastApplyTime,insertEndPos:e.insertEndPos??t.insertEndPos}:null;case"end":case"abort":return null;default:return t}}var O=N(t=>{let e=t.get(y.key);return new z({key:c,state:{init:()=>null,apply(n,r){return X(r,n.getMeta(c))}},filterTransaction(n,r){return!c.getState(r)?.active||n.getMeta(c)?!0:!n.docChanged},view(){return Y(t,e)}})});h(O,{displayName:"Prose<streaming>",group:"Streaming"});function Y(t,e){let n=null,r=-1,i=null;function s(){if(!i)return;let l=c.getState(i.state);if(!l?.active||l.buffer.length===r)return;r=l.buffer.length;let a=k(t,i.state.tr,l);if(!a.newDoc)return;let u=a.tr;!u.docChanged&&a.insertEndPos==null||(u=u.setMeta(c,{type:"apply",lastApplyTime:Date.now(),insertEndPos:a.insertEndPos}),e.scrollFollow&&(u=u.scrollIntoView()),i.dispatch(u))}function o(){n!=null&&clearTimeout(n),n=setTimeout(s,e.throttleMs)}return{update(l){i=l;let a=c.getState(l.state);if(!a?.active){n!=null&&(clearTimeout(n),n=null),r=-1;return}a.buffer.length!==r&&(Date.now()-a.lastApplyTime>=e.throttleMs?s():o())},destroy(){n!=null&&(clearTimeout(n),n=null),i=null}}}var R=C("StartStreaming",()=>t=>(e,n)=>{if(c.getState(e)?.active)return!1;if(n){let r,i;if(t?.insertAt!=null)if(t.insertAt==="selection"){if(r=e.selection.from,i=e.selection.to,e.selection.empty){let s=e.doc.resolve(r);s.parent.isTextblock&&!s.parent.type.spec.code&&s.parent.content.size===0&&s.depth===1&&(r=s.before(s.depth),i=s.after(s.depth))}}else{let s=t.insertAt==="cursor"?e.selection.head:t.insertAt;if(!Number.isFinite(s))return!1;r=Math.max(0,Math.min(Math.round(s),e.doc.content.size));let o=e.doc.resolve(r);o.parent.isTextblock&&!o.parent.type.spec.code&&o.parent.content.size===0&&o.depth===1&&(r=o.before(o.depth),i=o.after(o.depth))}n(e.tr.setMeta(c,{type:"start",originalDoc:e.doc,insertPos:r,insertEndPos:i,lastApplyTime:Date.now()}))}return!0});h(R,{displayName:"Command<startStreaming>",group:"Streaming"});var W=C("PushChunk",()=>t=>(e,n)=>t==null||!c.getState(e)?.active?!1:(n&&n(e.tr.setMeta(c,{type:"push",token:t})),!0));h(W,{displayName:"Command<pushChunk>",group:"Streaming"});var K=C("EndStreaming",t=>e=>(n,r)=>{let i=c.getState(n);if(!i?.active)return!1;if(r){let s=t.get(y.key),o=e?.diffReview??s.diffReviewOnEnd,l=k(t,n.tr,i),a=l.tr;if(a=a.setMeta(c,{type:"end"}),o&&l.newDoc){let u=a.doc;a=a.replace(0,a.doc.content.size,new P(i.originalDoc.content,0,0)),r(a);try{t.get(D).call(B.key,u)}catch(d){console.warn("[milkdown/streaming] diff review handoff skipped:",d)}return!0}r(a)}return!0});h(K,{displayName:"Command<endStreaming>",group:"Streaming"});var _=C("AbortStreaming",t=>e=>(n,r)=>{let i=c.getState(n);if(!i?.active)return!1;if(r){let s=e?.keep??!1,o=n.tr;s?o=k(t,o,i).tr:o=o.replace(0,n.doc.content.size,new P(i.originalDoc.content,0,0)),o=o.setMeta(c,{type:"abort"}),r(o)}return!0});h(_,{displayName:"Command<abortStreaming>",group:"Streaming"});var ie=[y,O,R,W,K,_];export{y as a,q as b,c,X as d,O as e,R as f,W as g,K as h,_ as i,ie as j};