bridgerte 0.9.19 → 0.9.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +0,0 @@
1
- "use strict";var Ln=Object.defineProperty;var Rn=(e,t,n)=>t in e?Ln(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var De=(e,t,n)=>Rn(e,typeof t!="symbol"?t+"":t,n);const Ie=require("./bridge.cjs"),J=require("./index-GaS65GL0.cjs"),d=require("lexical"),Q=require("@lexical/rich-text"),F=require("@lexical/code"),K=require("@lexical/list"),O=require("@lexical/table"),z=require("@lexical/link"),Kt=require("@lexical/history"),Qe=require("@lexical/html"),X=require("@lexical/selection"),Pe=require("@lexical/utils"),W=require("./native-spec.cjs"),jt=require("./index-DF8OhKI4.cjs"),q=require("@floating-ui/dom"),j=require("@lexical/code-shiki"),gt="bridgerte-media",Gt="Loading",mt=(e,t)=>`${e}:${t}`,se=e=>typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):void 0,ht=e=>typeof e=="number"&&Number.isFinite(e)?Math.min(Math.max(e,0),100):void 0,In=e=>e===20||e===50||e===100,pt=e=>In(e)?e:void 0,ft=e=>e==="center"||e==="right"?e:void 0,Pn=e=>e.status==="error"?e.errorMessage??"媒体加载失败":Gt,$n=(e,t)=>!t||e.status===void 0||e.status==="success",Oe=(e,t,n)=>{n&&e.setAttribute(t,n)},bt=(e,t,n)=>{n!==void 0&&e.setAttribute(t,String(n))};class ce extends d.DecoratorNode{constructor(n,r){super(r);De(this,"__payload");this.__payload={...n,assetId:n.assetId??mt(n.mediaType,n.url),width:se(n.width),height:se(n.height),duration:se(n.duration),progress:ht(n.progress),displayWidthPercent:pt(n.displayWidthPercent),align:ft(n.align)},this.__payload.displayWidthPercent===void 0&&delete this.__payload.displayWidthPercent,this.__payload.align===void 0&&delete this.__payload.align}static getType(){return gt}static clone(n){return new ce(n.__payload,n.__key)}createDOM(n){return this.createMediaElement(!0)}updateDOM(n,r){if(n.__payload===this.__payload)return!1;const o=this.createMediaElement(!0);return r.replaceWith(o),!0}exportDOM(n){return{element:this.createMediaElement(!1)}}static importDOM(){return{img:()=>({conversion:An,priority:1}),video:()=>({conversion:Bn,priority:1})}}static importJSON(n){return de(n).updateFromJSON(n)}exportJSON(){return{...super.exportJSON(),...this.__payload,type:gt}}getTextContent(){return this.__payload.title??this.__payload.alt??this.__payload.url}isInline(){return!1}getAsset(){const n=this.__payload,r={id:n.assetId??mt(n.mediaType,n.url),type:n.mediaType,url:n.url,status:n.status,progress:n.progress,poster:n.poster,width:n.width,height:n.height,duration:n.duration,mimeType:n.mimeType,size:n.size,errorMessage:n.errorMessage,external:!0};return n.displayWidthPercent!==void 0&&(r.displayWidthPercent=n.displayWidthPercent),n.align!==void 0&&(r.align=n.align),r}updatePayload(n){const r=this.getWritable();r.__payload={...r.__payload,...n,width:se(n.width??r.__payload.width),height:se(n.height??r.__payload.height),duration:se(n.duration??r.__payload.duration),progress:ht(n.progress??r.__payload.progress),displayWidthPercent:Object.prototype.hasOwnProperty.call(n,"displayWidthPercent")?pt(n.displayWidthPercent):r.__payload.displayWidthPercent,align:Object.prototype.hasOwnProperty.call(n,"align")?ft(n.align):r.__payload.align},r.__payload.displayWidthPercent===void 0&&delete r.__payload.displayWidthPercent,r.__payload.align===void 0&&delete r.__payload.align}createMediaElement(n){const r=this.__payload,o=document.createElement("figure"),a=r.mediaType==="image"?document.createElement("img"):document.createElement("video"),s=()=>{o.dataset.loadState="loaded"};o.className=`bridgerte__media bridgerte__media--${r.mediaType}`,o.contentEditable="false",o.dataset.assetId=r.assetId,o.dataset.mediaType=r.mediaType,o.dataset.status=r.status??"success",n&&(o.dataset.loadState=r.status==="error"?"error":"loading"),r.progress!==void 0&&(o.dataset.progress=String(r.progress)),r.align!==void 0&&(o.dataset.align=r.align),r.displayWidthPercent!==void 0&&(o.dataset.displayWidthPercent=String(r.displayWidthPercent),o.style.setProperty("--bridgerte-media-display-width",`${r.displayWidthPercent}%`)),r.width!==void 0&&r.height!==void 0&&o.style.setProperty("--bridgerte-media-aspect-ratio",`${r.width} / ${r.height}`),a.className="bridgerte__media-element",n&&(a.addEventListener(r.mediaType==="image"?"load":"loadedmetadata",s,{once:!0}),a.addEventListener("error",()=>{o.dataset.loadState="error"},{once:!0}));const l=$n(r,n);if(r.mediaType==="image"?(l&&a.setAttribute("src",r.url),a.setAttribute("loading","lazy"),Oe(a,"alt",r.alt??r.title)):(l&&a.setAttribute("src",r.url),a.setAttribute("controls","true"),a.setAttribute("preload","metadata"),Oe(a,"poster",r.poster)),Oe(a,"title",r.title),bt(a,"width",r.width),bt(a,"height",r.height),n){const u=document.createElement("div"),i=document.createElement("span"),h=document.createElement("span");u.className="bridgerte__media-placeholder",u.setAttribute("aria-hidden","true"),i.className="bridgerte__media-placeholder-icon",i.textContent=r.mediaType==="image"?"IMG":"VIDEO",h.className="bridgerte__media-placeholder-text",h.textContent=Pn(r),u.append(i,h),o.append(u)}if(o.append(a),r.status==="uploading"||r.status==="error"){const u=document.createElement("figcaption");u.className="bridgerte__media-status",u.textContent=r.status==="error"?r.errorMessage??"上传失败":Gt,o.append(u)}return o}}const An=e=>{const t=e instanceof HTMLImageElement?e:null;return{node:t!=null&&t.src?de({mediaType:"image",url:t.src,alt:t.alt,title:t.title,width:t.width,height:t.height,status:"success"}):null}},Bn=e=>{const t=e instanceof HTMLVideoElement?e:null;return{node:t!=null&&t.src?de({mediaType:"video",url:t.src,poster:t.poster,title:t.title,width:t.videoWidth||t.width,height:t.videoHeight||t.height,status:"success"}):null}},de=e=>d.$applyNodeReplacement(new ce(e)),Dn=e=>de({mediaType:"image",url:e.url,alt:e.alt,title:e.title,width:e.width,height:e.height,displayWidthPercent:e.displayWidthPercent,align:e.align,assetId:e.assetId,status:"success"}),On=e=>de({mediaType:"video",url:e.url,poster:e.poster,title:e.title,width:e.width,height:e.height,displayWidthPercent:e.displayWidthPercent,align:e.align,assetId:e.assetId,status:"success"}),Yt=e=>e instanceof ce,he=e=>{const t=n=>{if(Yt(n)&&n.getAsset().id===e)return n;if(!d.$isElementNode(n))return null;for(const r of n.getChildren()){const o=t(r);if(o)return o}return null};return t(d.$getRoot())},Xt={root:{type:"root",version:1,children:[]}};function Ue(e={}){return{html:e.html??"",json:e.json??Xt,plainText:e.plainText??"",assets:e.assets??[],version:e.version??J.BRIDGERTE_CONTENT_VERSION}}const Hn=e=>e.toJSON(),Fn=e=>{var t;return((t=e.root.children)==null?void 0:t.length)===0},zn=e=>e.read(()=>{const t=new Map,n=r=>{d.$isElementNode(r)&&r.getChildren().forEach(o=>{if(Yt(o)){const a=o.getAsset();t.set(a.id,a);return}d.$isElementNode(o)&&n(o)})};return n(d.$getRoot()),[...t.values()]}),Jt=(e,t)=>{const n=t.read(()=>Qe.$generateHtmlFromNodes(t)),r=e.read(()=>d.$getRoot().getTextContent()),o=zn(e);return{html:n,json:Hn(e),plainText:r,assets:o,version:J.BRIDGERTE_CONTENT_VERSION}},Wn=(e,t)=>{const n=Ue(t);return Qt(e,n),Jt(e.getEditorState(),e)},Qt=(e,t)=>{if(t.json!==Xt&&!Fn(t.json)){const o=t.json;e.setEditorState(e.parseEditorState(o));return}if(!t.html){e.update(()=>{const o=d.$getRoot();o.clear(),o.append(d.$createParagraphNode())},{discrete:!0});return}const r=new DOMParser().parseFromString(t.html,"text/html");e.update(()=>{const o=d.$getRoot(),a=Qe.$generateNodesFromDOM(e,r);o.clear(),o.append(...a)},{discrete:!0})},Vn="bridgerte-divider",Zt=e=>(e==null?void 0:e.getType())===Vn,qn=(e,t,n)=>{const r=d.$getRoot();if(r.getChildrenSize()===0){const o=d.$createParagraphNode();r.append(o),o.selectStart();return}if(n){e==null||e.selectEnd(),e||t==null||t.selectStart();return}t==null||t.selectStart(),t||e==null||e.selectEnd()},Un=(e,t)=>{const n=e.getPreviousSibling(),r=e.getNextSibling();e.remove(),qn(n,r,t)},Kn=()=>{const e=d.$getSelection();if(!d.$isNodeSelection(e))return null;const t=e.getNodes();return t.length===1&&Zt(t[0])?t[0]:null},jn=e=>e.getKey()==="root"?null:e.getTopLevelElement(),Gn=e=>{const t=d.$getSelection();if(!d.$isRangeSelection(t)||!t.isCollapsed())return null;const n=t.anchor,r=n.getNode(),o=jn(r);if(!o||!d.$isElementNode(o))return null;if(d.$isElementNode(r)){const l=r.isEmpty()&&n.offset===0,u=r===o&&n.offset===0,i=r===o&&n.offset===o.getChildrenSize();return l||(e?u:i)?o:null}if(!(r instanceof d.TextNode))return null;const a=e?o.getFirstDescendant():o.getLastDescendant(),s=e?0:r.getTextContentSize();return a===r&&n.offset===s?o:null},Yn=e=>{const t=Gn(e),n=e?t==null?void 0:t.getPreviousSibling():t==null?void 0:t.getNextSibling();return Zt(n)?n:null},Xn=(e,t)=>{const n=o=>{if(t())return!1;const a=Kn()??Yn(o);return a?(Un(a,o),!0):!1},r=(o,a)=>{const s=n(a);return s&&o.preventDefault(),s};return[e.registerCommand(d.KEY_BACKSPACE_COMMAND,o=>r(o,!0),d.COMMAND_PRIORITY_HIGH),e.registerCommand(d.KEY_DELETE_COMMAND,o=>r(o,!1),d.COMMAND_PRIORITY_HIGH),e.registerCommand(d.DELETE_CHARACTER_COMMAND,o=>n(o),d.COMMAND_PRIORITY_HIGH)]};class pe extends d.DecoratorNode{static getType(){return"bridgerte-divider"}static clone(t){return new pe(t.__key)}constructor(t){super(t)}createDOM(t){const n=document.createElement("hr");return n.className="bridgerte__divider",n}updateDOM(){return!1}exportDOM(t){const n=document.createElement("hr");return n.className="bridgerte__divider",{element:n}}static importDOM(){return{hr:()=>({conversion:Jn,priority:0})}}static importJSON(t){return Ze().updateFromJSON(t)}exportJSON(){return{...super.exportJSON(),type:pe.getType()}}getTextContent(){return`
2
- `}isInline(){return!1}}const Jn=e=>({node:Ze()}),Ze=()=>d.$applyNodeReplacement(new pe),yt="bridgerte-mention",et="mention",en=e=>e.label.startsWith("@")?e.label:`@${e.label}`,Qn=e=>{const t=document.createElement("span");return t.className="bridgerte__mention",t.dataset.type=et,t.dataset.id=e.id,t.dataset.value=e.value,t.contentEditable="false",t.textContent=en(e),e.description&&(t.dataset.description=e.description),t};class ye extends d.TextNode{constructor(n,r=en(n),o){super(r,o);De(this,"__item");this.__item=n}static getType(){return yt}static clone(n){return new ye(n.__item,n.__text,n.__key)}createDOM(n){const r=super.createDOM(n);return r.className="bridgerte__mention",r.dataset.type=et,r.dataset.id=this.__item.id,r.dataset.value=this.__item.value,r.contentEditable="false",this.__item.description&&(r.dataset.description=this.__item.description),r}updateDOM(n,r,o){return super.updateDOM(n,r,o)?!0:(r.dataset.id=this.__item.id,r.dataset.value=this.__item.value,this.__item.description?r.dataset.description=this.__item.description:delete r.dataset.description,!1)}exportDOM(n){return{element:Qn(this.__item)}}static importDOM(){return{span:()=>({conversion:Zn,priority:2})}}static importJSON(n){return tt(n).updateFromJSON(n)}exportJSON(){return{...super.exportJSON(),...this.__item,type:yt}}isTextEntity(){return!0}isToken(){return!0}getMentionItem(){return this.__item}}const Zn=e=>{var a;const t=e instanceof HTMLElement?e:null;if(!t||t.dataset.type!==et)return{node:null};const n=((a=t.textContent)==null?void 0:a.replace(/^@/,""))||t.dataset.value||"",r=t.dataset.id||t.dataset.value||n,o=t.dataset.value||r;return!n||!r||!o?{node:null}:{node:tt({id:r,label:n,value:o,description:t.dataset.description})}},tt=e=>d.$applyNodeReplacement(new ye(e).setMode("token")),vt=e=>e instanceof ye,er="请输入内容",tr=()=>{const t=d.$getRoot().getChildren();if(t.length===0)return!0;if(t.length>1)return!1;const n=t[0];return d.$isParagraphNode(n)&&n.getChildrenSize()===0},nr=({editor:e,contentElement:t})=>{const n=e.getEditorState().read(tr);t.dataset.empty=String(n)},rr=({editor:e,contentElement:t,isReadonly:n})=>{const r=o=>{n()||t.dataset.empty!=="true"||o.button===0&&(o.preventDefault(),e.focus(()=>{e.update(()=>{d.$getRoot().selectStart()})}))};return t.addEventListener("pointerdown",r),()=>{t.removeEventListener("pointerdown",r)}},or=[{command:"format.bold",format:"bold"},{command:"format.italic",format:"italic"},{command:"format.underline",format:"underline"},{command:"format.strike",format:"strikethrough"},{command:"format.inlineCode",format:"code"},{command:"format.superscript",format:"superscript"},{command:"format.subscript",format:"subscript"}],ar=[{command:"format.color",property:"color"},{command:"format.backgroundColor",property:"background-color"},{command:"format.fontSize",property:"font-size"},{command:"format.fontFamily",property:"font-family"},{command:"format.lineHeight",property:"line-height"}],sr=[{command:"list.ordered",listType:"ordered"},{command:"list.unordered",listType:"unordered"},{command:"list.todo",listType:"todo"}],ir=["media.pickImage","media.pickVideo"],tn=()=>{const e=d.$getSelection();if(!d.$isRangeSelection(e))return null;const t=e.anchor.getNode();return t.getKey()==="root"?t:t.getTopLevelElementOrThrow()},lr=()=>{const e=tn();if(!e)return null;if(Q.$isHeadingNode(e)){const t=Number(e.getTag().replace("h",""));return{command:"block.heading",value:Number.isNaN(t)?void 0:t}}if(Q.$isQuoteNode(e))return{command:"block.quote"};if(F.$isCodeNode(e)){const t=e.getLatest();return{command:"block.code",value:F.$isCodeNode(t)?t.getLanguage()??"":""}}return{command:"block.paragraph"}},cr=()=>{const e=tn();if(!e||!("getFormatType"in e))return;const t=e.getFormatType();return t===""?void 0:t},dr=()=>{const e=d.$getSelection();if(!d.$isRangeSelection(e))return null;const t=e.anchor.getNode(),n=K.$isListNode(t)?t:Pe.$getNearestNodeOfType(t,K.ListNode);return n?n.getListType()==="check"?"todo":n.getTag()==="ol"?"ordered":"unordered":null},ur=e=>{const t=d.$getSelection();if(!d.$isRangeSelection(t))return;const n=X.$getSelectionStyleValueForProperty(t,e);return n===""?void 0:n},gr=()=>{const e=d.$getSelection();if(!d.$isRangeSelection(e))return!1;const t=e.anchor.getNode(),n=t.getParent();return z.$isLinkNode(t)||z.$isLinkNode(n)},mr=e=>{const t=d.$getSelection(),n=d.$isRangeSelection(t),r=lr(),o=dr(),a=cr(),s=gr(),l=e.readonly||!n,u=or.map(y=>({command:y.command,active:n&&t.hasFormat(y.format),disabled:l})),i=ar.map(y=>{const N=ur(y.property);return{command:y.command,active:N!==void 0,disabled:l,value:N}}),h=sr.map(y=>({command:y.command,active:o===y.listType,disabled:l})),C=ir.map(y=>({command:y,active:!1,disabled:e.readonly||!e.canUploadMedia}));return[...u,{command:"format.clear",active:!1,disabled:l},...i,{command:"block.heading",active:(r==null?void 0:r.command)==="block.heading",disabled:l,value:(r==null?void 0:r.command)==="block.heading"?r.value:void 0},{command:"block.paragraph",active:(r==null?void 0:r.command)==="block.paragraph",disabled:l},{command:"block.quote",active:(r==null?void 0:r.command)==="block.quote",disabled:l},{command:"block.divider",active:!1,disabled:e.readonly},{command:"block.code",active:(r==null?void 0:r.command)==="block.code",disabled:e.readonly,value:(r==null?void 0:r.command)==="block.code"?r.value:void 0},...h,{command:"align",active:a!==void 0,disabled:l,value:a},{command:"link.set",active:s,disabled:l},{command:"link.unset",active:!1,disabled:l||!s},{command:"link.open",active:!1,disabled:e.readonly||!s},{command:"indent.increase",active:!1,disabled:l},{command:"indent.decrease",active:!1,disabled:l},{command:"history.undo",active:!1,disabled:e.readonly||!e.canUndo},{command:"history.redo",active:!1,disabled:e.readonly||!e.canRedo},{command:"content.clear",active:!1,disabled:e.readonly},...C,{command:"table.insert",active:!1,disabled:e.readonly},{command:"fullscreen.toggle",active:!1,disabled:!1}]},hr=(e,t)=>e.length===t.length&&e.every((n,r)=>{const o=t[r];return o!==void 0&&n.command===o.command&&n.active===o.active&&n.disabled===o.disabled&&n.value===o.value}),G=(e,t,n,r)=>{var o;try{(o=e.onError)==null||o.call(e,{code:t,message:n,cause:r})}catch(a){console.error("[BridgeRTE] onError callback failed.",a)}},pr=(e,t)=>{var n;try{(n=e.onChange)==null||n.call(e,t)}catch(r){G(e,"callback.onChange","onChange callback failed.",r)}},fr=(e,t)=>{var n;try{(n=e.onContentChange)==null||n.call(e,t)}catch(r){G(e,"callback.onContentChange","onContentChange callback failed.",r)}},br=(e,t)=>{var n;try{(n=e.onCommandStateChange)==null||n.call(e,[...t])}catch(r){G(e,"callback.onCommandStateChange","onCommandStateChange callback failed.",r)}},yr=e=>{var t;try{(t=e.onFocus)==null||t.call(e)}catch(n){G(e,"callback.onFocus","onFocus callback failed.",n)}},vr=e=>{var t;try{(t=e.onBlur)==null||t.call(e)}catch(n){G(e,"callback.onBlur","onBlur callback failed.",n)}},Cr=(e,t)=>{var n;try{(n=e.onReady)==null||n.call(e,t)}catch(r){G(e,"callback.onReady","onReady callback failed.",r)}},wr=({lexicalEditor:e,options:t,isDestroyed:n,canUploadMedia:r,isReadonly:o})=>{let a=!1,s=!1,l=[];const u=new Set,i=()=>{const C=[...l];u.forEach(y=>{try{y(C)}catch(N){G(t,"callback.commandStateSubscriber","Command state subscriber failed.",N)}})},h=(C=!0)=>{if(n())return;const y=l;e.getEditorState().read(()=>{l=mr({canUndo:a,canRedo:s,readonly:o(),canUploadMedia:r()})}),C&&!hr(y,l)&&(br(t,l),i())};return{refreshCommandStates:h,getCommandStates(){return h(!1),[...l]},subscribeCommandStateChange(C){return n()?()=>{}:(u.add(C),C([...l]),()=>{u.delete(C)})},setCanUndo(C){a=C,h()},setCanRedo(C){s=C,h()},setHistoryAvailability(C,y){a=C,s=y,h()},destroy(){u.clear()}}},_r=e=>`upload:${e}:${Date.now()}:${Math.random().toString(36).slice(2)}`,Er=e=>typeof URL.createObjectURL=="function"?URL.createObjectURL(e):e.name,ve=e=>{typeof URL.revokeObjectURL=="function"&&e.startsWith("blob:")&&URL.revokeObjectURL(e)},Ct=e=>({name:e.name,mimeType:e.type||void 0,size:e.size,data:e}),kr=e=>typeof DOMException<"u"&&e instanceof DOMException&&e.name==="AbortError",Mr=e=>new Promise(t=>{const n=new Image,r=()=>{n.onload=null,n.onerror=null};n.onload=()=>{const o={width:n.naturalWidth||void 0,height:n.naturalHeight||void 0};r(),t(o)},n.onerror=()=>{r(),t({})},n.src=e}),xr=e=>new Promise(t=>{const n=document.createElement("video"),r=()=>{n.removeAttribute("src"),n.load(),n.onloadedmetadata=null,n.onerror=null};n.preload="metadata",n.onloadedmetadata=()=>{const o={width:n.videoWidth||void 0,height:n.videoHeight||void 0,duration:Number.isFinite(n.duration)?n.duration:void 0};r(),t(o)},n.onerror=()=>{r(),t({})},n.src=e,n.load()}),Tr=(e,t)=>t.startsWith("blob:")?e==="image"?Mr(t):xr(t):Promise.resolve({}),Nr=(e,t)=>({...e,width:e.width??t.width,height:e.height??t.height,duration:e.duration??t.duration}),Sr=({container:e,lexicalEditor:t,options:n,isDestroyed:r})=>{const o=new Map;let a=0;const s=(g,f)=>{t.update(()=>{var M;(M=he(g))==null||M.updatePayload(f)})},l=g=>{let f=null;return t.update(()=>{const M=he(g);if(!M)return;const E=M.getAsset();f={mediaType:E.type,url:E.url,assetId:E.id,status:E.status,progress:E.progress,poster:E.poster,width:E.width,height:E.height,duration:E.duration,mimeType:E.mimeType,size:E.size,displayWidthPercent:E.displayWidthPercent,align:E.align,errorMessage:E.errorMessage},M.remove()}),f},u=(g,f)=>{const M=o.get(g);return(M==null?void 0:M.runId)===f},i=g=>{var f;(f=g.abortController)==null||f.abort()},h=(g,f)=>{const M=o.get(g);return M?(i(M),ve(M.previewUrl),o.delete(g),!0):!1},C=(g,f,M,E)=>{t.update(()=>{const B=de({mediaType:g,url:E,assetId:M,status:"uploading",progress:0,title:f.name,mimeType:f.type||void 0,size:f.size}),D=d.$createParagraphNode();d.$getSelection()||d.$getRoot().selectEnd(),d.$insertNodes([B,D]),D.selectStart()},{discrete:!0})},y=(g,f,M,E)=>{s(f,{mediaType:g,url:E.url,poster:E.poster,width:E.width,height:E.height,duration:E.duration,mimeType:E.mimeType,size:E.size,status:"success",progress:100,errorMessage:void 0}),ve(M)},N=(g,f,M)=>{var E;kr(M)||(s(f,{mediaType:g,status:"error",errorMessage:"上传失败"}),(E=n.onUploadError)==null||E.call(n,{assetId:f,type:g,cause:M}))},b=g=>{const f=n.uploadAdapter;if(!f)return;const M=typeof AbortController=="function"?new AbortController:null,E=a+1;a=E,g.runId=E,g.abortController=M,o.set(g.assetId,g);const B={assetId:g.assetId,signal:M==null?void 0:M.signal,onProgress:c=>{!u(g.assetId,E)||r()||s(g.assetId,{mediaType:g.type,status:"uploading",progress:c})}};let D={};const P=Tr(g.type,g.previewUrl);let w;try{w=g.type==="image"?f.uploadImage(Ct(g.file),B):f.uploadVideo(Ct(g.file),B)}catch(c){u(g.assetId,E)&&N(g.type,g.assetId,c);return}P.then(c=>{D=c,!(r()||!u(g.assetId,E))&&(c.width===void 0&&c.height===void 0||s(g.assetId,{mediaType:g.type,width:c.width,height:c.height,duration:c.duration}))}),w.then(c=>{r()||!u(g.assetId,E)||(y(g.type,g.assetId,g.previewUrl,Nr(c,D)),o.delete(g.assetId))}).catch(c=>{r()||!u(g.assetId,E)||N(g.type,g.assetId,c)})},v=(g,f)=>{if(!n.uploadAdapter)return;const M=_r(g),E=Er(f),B={assetId:M,type:g,file:f,previewUrl:E,runId:0,abortController:null};C(g,f,M,E),b(B)};return{pickMediaFile:g=>{if(!n.uploadAdapter)return;const f=e.ownerDocument.createElement("input");f.type="file",f.accept=g==="image"?"image/*":"video/*",f.style.display="none",f.addEventListener("change",()=>{var E;const M=(E=f.files)==null?void 0:E[0];f.remove(),M&&v(g,M)},{once:!0}),e.append(f),f.click()},uploadMediaFile:v,removeMedia(g){const f=l(g);!h(g)&&(f!=null&&f.url.startsWith("blob:"))&&ve(f.url)},retryMedia(g){const f=o.get(g);!f||!n.uploadAdapter||(i(f),s(g,{mediaType:f.type,url:f.previewUrl,status:"uploading",progress:0,errorMessage:void 0}),b(f))},destroy(){o.forEach(g=>{i(g),ve(g.previewUrl)}),o.clear()}}},nn=e=>F.$createCodeNode(e),Lr={1:"h1",2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"},Rr={code:"bridgerte__code-block",codeHighlight:{attr:"bridgerte__code-token bridgerte__code-token--attr","attr-name":"bridgerte__code-token bridgerte__code-token--attr-name","attr-value":"bridgerte__code-token bridgerte__code-token--attr-value",boolean:"bridgerte__code-token bridgerte__code-token--boolean",builtin:"bridgerte__code-token bridgerte__code-token--builtin","class-name":"bridgerte__code-token bridgerte__code-token--class-name",comment:"bridgerte__code-token bridgerte__code-token--comment",constant:"bridgerte__code-token bridgerte__code-token--constant",deleted:"bridgerte__code-token bridgerte__code-token--deleted",function:"bridgerte__code-token bridgerte__code-token--function",inserted:"bridgerte__code-token bridgerte__code-token--inserted",keyword:"bridgerte__code-token bridgerte__code-token--keyword",namespace:"bridgerte__code-token bridgerte__code-token--namespace",number:"bridgerte__code-token bridgerte__code-token--number",operator:"bridgerte__code-token bridgerte__code-token--operator",prefix:"bridgerte__code-token bridgerte__code-token--prefix",property:"bridgerte__code-token bridgerte__code-token--property",punctuation:"bridgerte__code-token bridgerte__code-token--punctuation",regex:"bridgerte__code-token bridgerte__code-token--regex",selector:"bridgerte__code-token bridgerte__code-token--selector",string:"bridgerte__code-token bridgerte__code-token--string",tag:"bridgerte__code-token bridgerte__code-token--tag",unchanged:"bridgerte__code-token bridgerte__code-token--unchanged",url:"bridgerte__code-token bridgerte__code-token--url",variable:"bridgerte__code-token bridgerte__code-token--variable"},heading:{h1:"bridgerte__heading bridgerte__heading--h1",h2:"bridgerte__heading bridgerte__heading--h2",h3:"bridgerte__heading bridgerte__heading--h3",h4:"bridgerte__heading bridgerte__heading--h4",h5:"bridgerte__heading bridgerte__heading--h5",h6:"bridgerte__heading bridgerte__heading--h6"},list:{checklist:"bridgerte__list bridgerte__list--todo",ol:"bridgerte__list",ul:"bridgerte__list",listitem:"bridgerte__list-item",listitemChecked:"bridgerte__list-item bridgerte__list-item--checked",listitemUnchecked:"bridgerte__list-item bridgerte__list-item--unchecked"},paragraph:"bridgerte__paragraph",quote:"bridgerte__quote",root:"bridgerte__content-root",text:{bold:"bridgerte__text--bold",code:"bridgerte__code",italic:"bridgerte__text--italic",strikethrough:"bridgerte__text--strike",underline:"bridgerte__text--underline",underlineStrikethrough:"bridgerte__text--underline-strike"},table:"bridgerte__table",tableCell:"bridgerte__table-cell",tableCellHeader:"bridgerte__table-cell bridgerte__table-cell--header",tableRow:"bridgerte__table-row",tableScrollableWrapper:"bridgerte__table-wrapper"},Ir=e=>({setBlockHeading:i=>{e.update(()=>{const h=d.$getSelection();d.$isRangeSelection(h)&&X.$setBlocksType(h,()=>Q.$createHeadingNode(Lr[i]))})},setParagraphBlock:()=>{e.update(()=>{const i=d.$getSelection();d.$isRangeSelection(i)&&X.$setBlocksType(i,()=>d.$createParagraphNode())})},setQuoteBlock:()=>{e.update(()=>{const i=d.$getSelection();d.$isRangeSelection(i)&&X.$setBlocksType(i,()=>Q.$createQuoteNode())})},insertDividerBlock:()=>{e.update(()=>{const i=d.$createParagraphNode();d.$insertNodes([Ze(),i]),i.selectStart()})},insertCodeBlock:i=>{e.update(()=>{const h=nn(i),C=d.$createParagraphNode();d.$insertNodes([h,C]),h.selectEnd()})},setSelectedCodeBlockLanguage:i=>{e.update(()=>{const h=d.$getSelection();if(!d.$isRangeSelection(h))return;const C=h.anchor.getNode(),y=C.getKey()==="root"?C:C.getTopLevelElementOrThrow();F.$isCodeNode(y)&&y.setLanguage(i)})},clearContent:()=>{e.update(()=>{const i=d.$getRoot();i.clear(),i.append(d.$createParagraphNode())})},formatAlign:i=>{e.dispatchCommand(d.FORMAT_ELEMENT_COMMAND,i)}}),Pr=e=>({setLink:(o,a)=>{e.update(()=>{const s=d.$getSelection(),l=z.formatUrl(o),u=(a==null?void 0:a.trim())||o.trim();if(!(!d.$isRangeSelection(s)||!o.trim())){if(s.isCollapsed()){const i=z.$createLinkNode(l,{rel:"noreferrer noopener",target:"_blank"});i.append(d.$createTextNode(u)),d.$insertNodes([i]);return}z.$toggleLink(l,{rel:"noreferrer noopener",target:"_blank"})}})},unsetLink:()=>{e.update(()=>{z.$toggleLink(null)})},openSelectedLink:()=>{if(typeof window>"u")return;const o=e.getEditorState().read(()=>{const a=d.$getSelection();if(!d.$isRangeSelection(a))return null;const s=a.anchor.getNode(),l=z.$isLinkNode(s)?s:Pe.$findMatchingParent(s,z.$isLinkNode);return l?{target:l.getTarget()??"_blank",url:l.sanitizeUrl(l.getURL())}:null});o&&window.open(o.url,o.target,"noopener,noreferrer")}}),$r=e=>({insertImage:s=>{s.url.trim()&&e.update(()=>{const l=d.$createParagraphNode();d.$insertNodes([Dn(s),l]),l.selectStart()})},insertVideo:s=>{s.url.trim()&&e.update(()=>{const l=d.$createParagraphNode();d.$insertNodes([On(s),l]),l.selectStart()})},resizeMedia:s=>{e.update(()=>{var l;(l=he(s.assetId))==null||l.updatePayload({displayWidthPercent:s.widthPercent})})},resetMediaSize:s=>{e.update(()=>{var l;(l=he(s))==null||l.updatePayload({displayWidthPercent:void 0})})},alignMedia:s=>{e.update(()=>{var l;(l=he(s.assetId))==null||l.updatePayload({align:s.value==="left"?void 0:s.value})})}}),Ar=e=>({insertMention:n=>{e.update(()=>{const r=d.$getSelection();d.$isRangeSelection(r)&&d.$insertNodes([tt(n),d.$createTextNode(" ")])})}}),Br=e=>({clearSelectionFormat:()=>{e.update(()=>{const r=d.$getSelection();d.$isRangeSelection(r)&&(r.setFormat(0),X.$patchStyleText(r,{color:null,"background-color":null,"font-size":null,"font-family":null,"line-height":null}))})},setSelectionStyle:(r,o)=>{e.update(()=>{const a=d.$getSelection();d.$isRangeSelection(a)&&X.$patchStyleText(a,{[r]:o===""?null:o})})}}),Dr=20,wt=(e,t)=>Number.isFinite(e)&&e>0?Math.min(Math.floor(e),t):1,Ce=e=>Number.isFinite(e)&&(e??0)>0?Math.min(Math.floor(e??1),Dr):1,we=()=>{const e=d.$getSelection();return!d.$isRangeSelection(e)&&!O.$isTableSelection(e)?!1:O.$findCellNode(e.anchor.getNode())!==null},Or=e=>({insertTable:(l,u)=>{const i=wt(l,J.BRIDGERTE_TABLE_INSERT_MAX_ROWS),h=wt(u,J.BRIDGERTE_TABLE_INSERT_MAX_COLS);e.dispatchCommand(O.INSERT_TABLE_COMMAND,{rows:String(i),columns:String(h),includeHeaders:{rows:!0,columns:!1}})},insertTableRow:l=>{e.update(()=>{if(!we())return;const u=Ce(l.count);for(let i=0;i<u;i+=1)O.$insertTableRowAtSelection(l.direction!=="before")})},insertTableColumn:l=>{e.update(()=>{if(!we())return;const u=Ce(l.count);for(let i=0;i<u;i+=1)O.$insertTableColumnAtSelection(l.direction!=="before")})},deleteTableRow:l=>{e.update(()=>{const u=Ce(l.count);for(let i=0;i<u;i+=1){if(!we())return;O.$deleteTableRowAtSelection()}})},deleteTableColumn:l=>{e.update(()=>{const u=Ce(l.count);for(let i=0;i<u;i+=1){if(!we())return;O.$deleteTableColumnAtSelection()}})},deleteTable:()=>{e.update(()=>{const l=d.$getSelection();if(!d.$isRangeSelection(l)&&!O.$isTableSelection(l))return;const u=O.$findTableNode(l.anchor.getNode());if(!u)return;const i=d.$createParagraphNode();u.insertAfter(i),u.remove(),i.selectStart()})}}),Hr=e=>{const t=Or(e);return{insertTable:n=>{t.insertTable(n.rows,n.cols)},insertTableRow:n=>{t.insertTableRow(n)},insertTableColumn:n=>{t.insertTableColumn(n)},deleteTableRow:n=>{t.deleteTableRow(n)},deleteTableColumn:n=>{t.deleteTableColumn(n)},deleteTable:()=>{t.deleteTable()}}},Fr={"format.bold":"bold","format.italic":"italic","format.underline":"underline","format.strike":"strikethrough","format.inlineCode":"code","format.superscript":"superscript","format.subscript":"subscript"},zr={"list.ordered":K.INSERT_ORDERED_LIST_COMMAND,"list.unordered":K.INSERT_UNORDERED_LIST_COMMAND,"list.todo":K.INSERT_CHECK_LIST_COMMAND},Wr={"indent.increase":d.INDENT_CONTENT_COMMAND,"indent.decrease":d.OUTDENT_CONTENT_COMMAND,"history.undo":d.UNDO_COMMAND,"history.redo":d.REDO_COMMAND},Vr={"format.color":"color","format.backgroundColor":"background-color","format.fontSize":"font-size","format.fontFamily":"font-family","format.lineHeight":"line-height"},qr=({container:e,lexicalEditor:t,options:n,isDestroyed:r,isReadonly:o,reportError:a})=>{const s=Sr({container:e,lexicalEditor:t,options:n,isDestroyed:r}),l=Ir(t),u=Pr(t),i=$r(t),h=Ar(t),C=Br(t),y=Hr(t),N=()=>{var x,g;if(document.fullscreenElement){(x=document.exitFullscreen)==null||x.call(document).catch(f=>{a(n,"fullscreen.exit","Exit fullscreen failed.",f)});return}(g=e.requestFullscreen)==null||g.call(e).catch(f=>{a(n,"fullscreen.enter","Enter fullscreen failed.",f)})},b=(v=>{if(r()||o())return;const x=Fr[v.type];if(x){t.dispatchCommand(d.FORMAT_TEXT_COMMAND,x);return}const g=zr[v.type];if(g){t.dispatchCommand(g,void 0);return}const f=Wr[v.type];if(f){t.dispatchCommand(f,void 0);return}const M=Vr[v.type];if(M&&"value"in v){C.setSelectionStyle(M,v.value);return}switch(v.type){case"format.clear":C.clearSelectionFormat();return;case"block.heading":l.setBlockHeading(v.level);return;case"block.paragraph":l.setParagraphBlock();return;case"block.quote":l.setQuoteBlock();return;case"block.divider":l.insertDividerBlock();return;case"block.code":l.insertCodeBlock(v.language);return;case"block.setCodeLanguage":l.setSelectedCodeBlockLanguage(v.language);return;case"align":l.formatAlign(v.value);return;case"link.set":u.setLink(v.href,v.text);return;case"link.unset":u.unsetLink();return;case"link.open":u.openSelectedLink();return;case"mention.insert":h.insertMention(v.item);return;case"content.clear":l.clearContent();return;case"table.insert":y.insertTable(v);return;case"table.insertRow":y.insertTableRow(v);return;case"table.insertColumn":y.insertTableColumn(v);return;case"table.deleteRow":y.deleteTableRow(v);return;case"table.deleteColumn":y.deleteTableColumn(v);return;case"table.delete":y.deleteTable();return;case"media.insertImage":i.insertImage(v);return;case"media.insertVideo":i.insertVideo(v);return;case"media.pickImage":s.pickMediaFile("image");return;case"media.pickVideo":s.pickMediaFile("video");return;case"media.retry":s.retryMedia(v.assetId);return;case"media.remove":s.removeMedia(v.assetId);return;case"media.resize":i.resizeMedia(v);return;case"media.align":i.alignMedia(v);return;case"media.resetSize":i.resetMediaSize(v.assetId);return;case"fullscreen.toggle":N();return}});return b.uploadMediaFile=s.uploadMediaFile,b.destroy=()=>{s.destroy()},b},Ur=300,Kr="BridgeRTE",_t=({editor:e,overflowLength:t})=>{if(t<=0)return!1;const n=d.$getSelection();if(d.$isRangeSelection(n))return X.$trimTextContentFromAnchor(e,n.anchor,t),!0;d.$getRoot().selectEnd();const r=d.$getSelection();return d.$isRangeSelection(r)?(X.$trimTextContentFromAnchor(e,r.anchor,t),!0):!1},jr=({lexicalEditor:e,options:t,isDestroyed:n,setContent:r,syncPlaceholder:o})=>{let a=0,s=null;const l=()=>{s&&(clearTimeout(s),s=null)},u=g=>{if(n())return;const f=Jt(e.getEditorState(),e);r(f),g&&pr(t,f)},i=g=>{const f=t.maxLength!==void 0&&t.maxLength>=0?t.maxLength:void 0;return{dirty:!0,plainTextLength:g,version:J.BRIDGERTE_CONTENT_VERSION,maxLength:f,isOverMaxLength:f===void 0?!1:g>f}},h=g=>{fr(t,i(g))},C=()=>{t.onChange&&(l(),s=setTimeout(()=>{u(!0)},Ie.BRIDGE_CONTENT_CHANGE_DEBOUNCE_MS))},y=g=>{if(a>0){a-=1;return}h(g),C()},N=()=>e.getEditorState().read(()=>d.$getRoot().getTextContent().length),b=g=>t.maxLength===void 0||t.maxLength<0?0:g-t.maxLength,v=g=>g<=0?!1:(e.update(()=>{_t({editor:e,overflowLength:g})},{discrete:!0}),!0);return{clearContentChangeTimer:l,enforceCurrentMaxLength:()=>{t.maxLength===void 0||t.maxLength<0||e.update(()=>{const g=d.$getRoot().getTextContent().length-(t.maxLength??0);_t({editor:e,overflowLength:g})},{discrete:!0})},syncContent:u,suppressNextChange(){a+=1},syncAfterEditorUpdate(){const g=N();if(v(b(g))){o();return}o(),y(g)}}},$e="data-language",rn="纯文本",Gr="language",Yr=new Set(["plain","plaintext","text","txt"]),Xr=new Set(j.getCodeLanguageOptions().map(([e])=>e)),Jr=[$e,"data-lang","data-code-language","data-highlight-language","lang","language"],Qr=/^[a-z][a-z0-9_+#.-]{0,31}$/i,Zr=/^(?:language|lang)-([a-z][a-z0-9_+#.-]{0,31})$/i,eo=/^brush:\s*([a-z][a-z0-9_+#.-]{0,31})$/i,to=new Map([["dockerfile","docker"],["shell","shellscript"],["sh","shellscript"],["bash","shellscript"],["js","javascript"],["jsx","jsx"],["py","python"],["rb","ruby"],["rs","rust"],["ts","typescript"],["tsx","tsx"],["yml","yaml"]]),no=e=>e.type==="select",Et=e=>e.find(t=>t.name===Gr&&no(t)),oe=e=>{const t=e==null?void 0:e.trim().toLowerCase();if(!t||!Qr.test(t))return null;if(Yr.has(t))return"";const n=to.get(t)??j.normalizeCodeLanguage(t);return Xr.has(n)?n:null},ro=e=>{for(const t of Jr){const n=oe(e.getAttribute(t));if(n)return n}return null},oo=e=>{const[,t]=e.match(eo)??[],n=oe(t);if(n)return n;for(const r of e.split(/\s+/)){const[,o]=r.match(Zr)??[],a=oe(o);if(a)return a}return null},on=(e=W.codeBlockLanguagePanel)=>{var t,n;return((t=Et(e.fields))==null?void 0:t.options)??((n=Et(W.codeBlockLanguagePanel.fields))==null?void 0:n.options)??[{label:rn,value:""}]},an=(e,t)=>{var n,r,o;return((n=e.find(a=>a.value===t))==null?void 0:n.label)??((r=e.find(a=>oe(a.value)===oe(t)))==null?void 0:r.label)??((o=e[0])==null?void 0:o.label)??rn};on();const ao=e=>{[...e.querySelectorAll("pre,code")].forEach(t=>{const n=ro(t)??oo(t.className),r=t.tagName==="PRE"?t:t.closest("pre");r&&n&&r.setAttribute($e,n)})},so=e=>{e.querySelectorAll("pre").forEach(t=>{[...t.children].forEach(r=>{r.tagName==="CODE"&&r.replaceWith(...r.childNodes)})})},io=(e,t)=>{const n=[...t.querySelectorAll("pre[data-language]")];let r=0;e.forEach(o=>{if(!F.$isCodeNode(o))return;const a=n[r];if(r+=1,!a)return;const s=a.getAttribute($e);s&&!o.getLanguage()&&o.setLanguage(s)})},sn="one-light",ee={keyword:"#a626a4",function:"#4078f2",operator:"#0184bc",tag:"#c18401",property:"#e45649",string:"#50a14f",attrName:"#986801"},lo={[ee.keyword]:"keyword",[ee.function]:"function",[ee.operator]:"operator",[ee.tag]:"tag",[ee.property]:"property",[ee.string]:"string",[ee.attrName]:"attr-name"},co=e=>{const[,t]=e.match(/(?:^|;)color:\s*(#[0-9a-f]{3,8})/i)??[];return t?lo[t.toLowerCase()]:void 0},uo={...j.ShikiTokenizer,defaultLanguage:null,defaultTheme:sn,$tokenize(e,t){const n=j.ShikiTokenizer.$tokenize.call(this,e,t);return e.getStyle()&&e.setStyle(""),n.map(r=>F.$isCodeHighlightNode(r)?F.$createCodeHighlightNode(r.getTextContent(),co(r.getStyle())):r)}},go=1200,fe=new Set,Ne=new Set,Ke=new Set,Se=[];let te=0,ie=null,_e=!1,Ee=null,kt=!1;const mo=e=>"requestIdleCallback"in window?{id:window.requestIdleCallback(e,{timeout:go}),kind:"idle"}:{id:globalThis.setTimeout(()=>{e({didTimeout:!0,timeRemaining:()=>0})},0),kind:"timeout"},ho=e=>{if(e.kind==="idle"){window.cancelIdleCallback(e.id);return}globalThis.clearTimeout(e.id)},po=e=>e.map(t=>t.value).filter(t=>t!==""),fo=e=>{po(e).forEach(t=>{if(fe.has(t)||Ne.has(t)||Ke.has(t)||j.isCodeLanguageLoaded(t)){fe.add(t);return}Ke.add(t),Se.push(t)})},bo=()=>{for(;Se.length>0;){const e=Se.shift();if(e&&(Ke.delete(e),!(fe.has(e)||Ne.has(e)))){if(j.isCodeLanguageLoaded(e)){fe.add(e);continue}return e}}},yo=async()=>{if(!kt){if(!Ee){const e=j.loadCodeTheme(sn);Ee=Promise.resolve(e??void 0).then(()=>{kt=!0}).catch(()=>{}).finally(()=>{Ee=null})}await Ee}},vo=e=>{te+=1,fo(e);const t=async()=>{if(!(te<=0||_e)){_e=!0;try{if(await yo(),te<=0)return;const r=bo();if(!r)return;Ne.add(r),await Promise.resolve(j.loadCodeLanguage(r)??void 0).then(()=>{fe.add(r)}).catch(()=>{}).finally(()=>{Ne.delete(r)})}finally{_e=!1,n()}}},n=()=>{te<=0||ie!==null||_e||Se.length===0||(ie=mo(()=>{ie=null,t()}))};return n(),()=>{te=Math.max(0,te-1),te===0&&ie!==null&&(ho(ie),ie=null)}},U=12,Co=6,Le=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n)),ln=()=>{const e=window.visualViewport;return{left:(e==null?void 0:e.offsetLeft)??0,top:(e==null?void 0:e.offsetTop)??0,width:(e==null?void 0:e.width)??window.innerWidth,height:(e==null?void 0:e.height)??window.innerHeight}},wo=(e,t)=>({contextElement:e,getBoundingClientRect:()=>({x:t.x,y:t.y,left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height,width:t.width,height:t.height})}),_o=(e,t)=>{const n=e.getBoundingClientRect(),r=ln(),o=t.getBoundingClientRect(),a=o.left+U,s=o.top+U,l=r.left+U,u=r.top+U,i=r.left+r.width-n.width-U,h=r.top+r.height-n.height-U;return{left:Le(a,l,i),top:Le(s,u,h),viewportHeight:r.height}},Eo=(e,t,n)=>{const r=e.getBoundingClientRect(),o=ln(),a=o.left+U,s=o.top+U,l=o.left+o.width-r.width-U,u=o.top+o.height-r.height-U;return{left:Le(t,a,l),top:Le(n,s,u),viewportHeight:o.height}},cn=e=>{var i,h;const t=document.createElement("div"),n=document.createElement("div"),r=document.createElement("div");let o;const a=()=>{t.dataset.visible="false",n.dataset.visible="false",o=void 0},s=(C,y,N)=>{n.style.left=`${C}px`,n.style.top=`${y}px`,n.style.setProperty("--bridgerte-dialog-visible-height",`${N}px`)},l=async()=>{if(!o){const N=_o(n,e.root);s(N.left,N.top,N.viewportHeight);return}const C=await q.computePosition(wo(e.root,o),n,{placement:"bottom-start",strategy:"fixed",platform:q.platform,middleware:[q.offset(Co),q.flip(),q.shift({padding:U})]}),y=Eo(n,C.x,C.y);s(y.left,y.top,y.viewportHeight)},u=C=>{o=C,C?n.style.setProperty("--bridgerte-dialog-anchor-width",`${C.width}px`):n.style.removeProperty("--bridgerte-dialog-anchor-width"),l(),t.dataset.visible="true",n.dataset.visible="true"};return t.className="bridgerte__dialog-backdrop",t.dataset.visible="false",n.className=`bridgerte__dialog ${e.className}`,n.dataset.visible="false",r.className="bridgerte__dialog-content",n.append(r),e.root.append(t,n),t.addEventListener("click",()=>{var C;(C=e.onBackdropClick)==null||C.call(e),a()}),(i=window.visualViewport)==null||i.addEventListener("resize",l),(h=window.visualViewport)==null||h.addEventListener("scroll",l),window.addEventListener("resize",l),{element:n,content:r,open:u,close:a,destroy(){var C,y;a(),(C=window.visualViewport)==null||C.removeEventListener("resize",l),(y=window.visualViewport)==null||y.removeEventListener("scroll",l),window.removeEventListener("resize",l),t.remove(),n.remove()}}},Re=e=>typeof requestAnimationFrame=="function"?requestAnimationFrame(e):window.setTimeout(e,0),nt=e=>{if(typeof cancelAnimationFrame=="function"){cancelAnimationFrame(e);return}window.clearTimeout(e)},V=(e,t={})=>{let n=null;const r=s=>{const l=n??e;if(!(!s&&!n)){if(s){l.dataset.pressed="true";return}delete l.dataset.pressed,n=null}},o=s=>{if(s.pointerType==="mouse")return;const l=s.target;n=l instanceof HTMLElement&&t.targetSelector?l.closest(t.targetSelector):e,n&&r(!0)},a=()=>{r(!1)};return e.addEventListener("pointerdown",o),e.addEventListener("pointerup",a),e.addEventListener("pointercancel",a),e.addEventListener("lostpointercapture",a),()=>{a(),e.removeEventListener("pointerdown",o),e.removeEventListener("pointerup",a),e.removeEventListener("pointercancel",a),e.removeEventListener("lostpointercapture",a)}},rt=e=>{const t=o=>{const a=e.getBlockFromTarget(o.target);if(a){e.activateBlock(a);return}e.clearBlock()},n=o=>{const a=e.getBlockFromTarget(o.target);a&&e.activateBlock(a)},r=o=>{const a=o.target;a instanceof Node&&e.root.contains(a)||e.clearBlock()};return e.content.addEventListener("pointerdown",t),e.content.addEventListener("focusin",n),document.addEventListener("pointerdown",r),{destroy(){e.content.removeEventListener("pointerdown",t),e.content.removeEventListener("focusin",n),document.removeEventListener("pointerdown",r)}}},ko=(e,t,n)=>{e.update(t,{tag:d.SKIP_SCROLL_INTO_VIEW_TAG,onUpdate:n})},Mt="language",Mo="bridgerte-code-block-language",xt=8,xo=".bridgerte__code-block-controls",Te=".bridgerte__code-block-control-button";let Tt=0;const To=()=>(Tt+=1,`${Mo}-${Tt}`),No=(e,t,n)=>{var o;const r=e.querySelector(".bridgerte__code-block-control-label");e.dataset.language=n??"",(o=e.querySelector(Te))==null||o.setAttribute("data-language",n??""),r&&(r.textContent=an(t,n))},So=(e,t)=>{const n=document.createElement("div"),r=document.createElement("button"),o=document.createElement("span"),a=document.createElement("span");return n.className="bridgerte__code-block-controls",n.contentEditable="false",n.dataset.language=t??"",n.setAttribute("aria-label","代码块操作"),r.type="button",r.className="bridgerte__code-block-control-button",r.dataset.language=t??"",r.setAttribute("aria-label","选择代码块语言"),o.className="bridgerte__code-block-control-label",o.textContent=an(e,t),a.className="bridgerte__code-block-control-arrow",r.append(o,a),n.append(r),n},Lo=e=>{const t=document.createElement("div"),n=e.root.querySelector(".bridgerte__content")??e.root,r=jt.resolvePayloadPanelSchema(e.languagePanel??W.codeBlockLanguagePanel,e.payloadPanelConfig),o=on(r);let a=null,s=null,l=null,u=null,i=null,h=null;const C=()=>{l??(l=vo(o))},y=()=>{a==null||a.close()},N=(T,S)=>{e.isReadonly()||ko(e.editor,()=>{const R=d.$getNodeByKey(T);F.$isCodeNode(R)&&R.setLanguage(S)})},b=(T,S)=>{Re(()=>{N(T,S)})},v=(T,S,R)=>{var $;return(($=e.onRequest)==null?void 0:$.call(e,{id:To(),readonly:e.isReadonly(),menuId:"code-block-language",command:{type:"block.setCodeLanguage",language:R},panel:r,anchorRect:{x:S.left,y:S.top,width:S.width,height:S.height},currentValues:{[Mt]:R},submit:L=>{y(),b(T,L[Mt]??"")},cancel:y}))===!0},x=(T,S)=>{const R=e.root.getBoundingClientRect(),$=S.getBoundingClientRect(),L=$.bottom<R.top||$.top>R.bottom;T.hidden=L;const k=Math.max(8,R.width-T.offsetWidth-8),A=Math.min(Math.max($.left-R.left+xt,8),k),H=Math.max(8,$.top-R.top-T.offsetHeight-xt);T.style.transform=`translate(${A}px, ${H}px)`},g=()=>{i&&(h==null||h(),h=null,i.remove(),i=null)},f=T=>{const S=e.editor.getElementByKey(T);if(!S){u===T&&(u=null,g());return}C(),S.dataset.lexicalKey=T;const R=S.getAttribute("data-language");if(i){No(i,o,R),x(i,S);return}const $=So(o,R);h=V($,{targetSelector:Te}),$.dataset.lexicalKey=T,i=$,t.append($),x($,S)},M=T=>{const S=T.dataset.lexicalKey;!S||u===S||(u!==null&&(y(),g()),u=S,f(S))},E=()=>{u!==null&&(u=null,y(),g())},B=T=>T instanceof HTMLElement?T.closest(".bridgerte__code-block"):null,D=rt({root:e.root,content:n,getBlockFromTarget:B,activateBlock:M,clearBlock:E}),P=(T,S)=>{const R=T.getBoundingClientRect(),$=T.dataset.language??"";if(v(S,R,$))return;if(e.isReadonly()){y();return}a||(a=cn({root:e.root,className:"bridgerte__code-block-menu",onBackdropClick:y}));const L=document.createElement("div");a.content.replaceChildren(),a.element.style.minWidth="180px",L.className="bridgerte__code-block-menu-list",o.forEach(k=>{const A=document.createElement("button");A.type="button",A.className="bridgerte__menu-item bridgerte__code-block-menu-item",A.textContent=k.label,V(A),A.addEventListener("pointerdown",H=>{H.preventDefault()}),A.addEventListener("click",()=>{y(),b(S,k.value)}),L.append(A)}),a.content.append(L),a.open({x:R.left,y:R.top,width:180,height:R.height})},w=T=>{const S=T.target;if(!(S instanceof HTMLElement))return;const R=S.closest(Te);if(!R)return;const $=R.closest(xo);if(!$)return;const L=$.dataset.lexicalKey;L&&(T.preventDefault(),T.stopPropagation(),P($,L))},c=T=>{const S=T.target;S instanceof HTMLElement&&S.closest(Te)&&T.preventDefault()},p=T=>{const S=T.target;if(!(S instanceof HTMLElement))return;if(!S.closest(".bridgerte__code-block")){y();return}const R=S.closest(".bridgerte__code-block");if(!R||R.textContent)return;const $=R.dataset.lexicalKey;$&&(e.editor.update(()=>{const L=d.$getNodeByKey($);F.$isCodeNode(L)&&L.selectEnd()}),e.editor.focus())},m=()=>{s===null&&(s=Re(()=>{s=null,u!==null&&f(u)}))};t.className="bridgerte__code-block-controls-layer",e.root.append(t);const _=e.editor.registerMutationListener(F.CodeNode,T=>{T.forEach((S,R)=>{if(S==="destroyed"){u===R&&E();return}const $=e.editor.getElementByKey(R);$&&($.dataset.lexicalKey=R),u===R&&i&&f(R)})}),I=e.editor.registerUpdateListener(m);return t.addEventListener("pointerdown",c),t.addEventListener("click",w),n.addEventListener("pointerdown",p),n.addEventListener("scroll",m,{passive:!0}),window.addEventListener("resize",m),{destroy(){D.destroy(),_(),I(),l==null||l(),l=null,s!==null&&(nt(s),s=null),t.removeEventListener("pointerdown",c),t.removeEventListener("click",w),n.removeEventListener("pointerdown",p),n.removeEventListener("scroll",m),window.removeEventListener("resize",m),g(),t.remove(),a==null||a.destroy(),a=null}}},Ae=(e,t={})=>e.map(n=>{var a;const r=(a=t.menuLabels)==null?void 0:a[n.id],o=n.payloadPanel?jt.resolvePayloadPanelSchema(n.payloadPanel,t.payloadPanelConfig):void 0;return{...n,...r===void 0?{}:{label:r},...o===void 0?{}:{payloadPanel:o}}}),dn=(e,t)=>{const n=t.find(r=>r.command===e.command.type);return(n==null?void 0:n.value)===void 0?void 0:{value:String(n.value)}},un=(e,t)=>{const n=t.find(o=>W.isCommandStateForCommand(e.command,o)),r=t.find(o=>o.command===e.command.type);return{active:(n==null?void 0:n.active)===!0,disabled:e.payloadPanel?(r==null?void 0:r.disabled)===!0:(n==null?void 0:n.disabled)===!0||(r==null?void 0:r.disabled)===!0}},be=["media-resize-20","media-resize-50","media-resize-100"],Ro=["media-align-left","media-align-center","media-align-right","|",...be,"|","media-remove"],Io=["media-retry","|","media-remove"],Po=[{id:"media-align-left",command:{type:"media.align",assetId:"",value:"left"},label:"左",icon:"align-left"},{id:"media-align-center",command:{type:"media.align",assetId:"",value:"center"},label:"中",icon:"align-center"},{id:"media-align-right",command:{type:"media.align",assetId:"",value:"right"},label:"右",icon:"align-right"},{id:"media-resize-20",command:{type:"media.resize",assetId:"",widthPercent:20},label:"20%",icon:"media-resize-20"},{id:"media-resize-50",command:{type:"media.resize",assetId:"",widthPercent:50},label:"50%",icon:"media-resize-50"},{id:"media-resize-100",command:{type:"media.resize",assetId:"",widthPercent:100},label:"100%",icon:"media-resize-100"},{id:"media-retry",command:{type:"media.retry",assetId:""},label:"重试",icon:"refresh-cw"},{id:"media-remove",command:{type:"media.remove",assetId:""},label:"删除",icon:"trash-2"}],gn=e=>be.includes(e),$o=e=>typeof e=="object"&&Array.isArray(e.menuKeys),Ao=e=>new Set(e.flatMap(t=>t==="|"?[]:typeof t=="string"?[t]:$o(t)?[t.key,...t.menuKeys]:[])),He=e=>typeof e=="string"&&gn(e),Bo=e=>{const t=e.findIndex(r=>r==="media-remove"),n=t===-1?e.length:t;return[...e.slice(0,n),"|",...be,"|",...e.slice(n)]},Do=e=>{const t=Ao(e);if(be.filter(o=>!t.has(o)).length===0)return e;const r=e.findIndex(He);return r===-1?Bo(e):[...e.slice(0,r).filter(o=>!He(o)),...be,...e.slice(r+1).filter(o=>!He(o))]},Oo=e=>{var r;const t=(e==null?void 0:e.toolbarKeys)??Ro;return{...e,toolbarKeys:Do(t),excludeKeys:(r=e==null?void 0:e.excludeKeys)==null?void 0:r.filter(o=>!gn(o))}},Ho=(e,t)=>{switch(e.command.type){case"media.retry":return{...e.command,assetId:t};case"media.remove":return{...e.command,assetId:t};case"media.resize":return{...e.command,assetId:t};case"media.align":return{...e.command,assetId:t};default:return null}},Fo=(e,t,n)=>e.command.type==="media.resize"?e.command.widthPercent===t:e.command.type==="media.align"&&e.command.value===n,mn=(e,t={})=>{const n=Ae(Po,{menuLabels:t.menuLabels}),r=e==="error"?{toolbarKeys:Io}:Oo(t.config);return W.resolveToolbarMenu(r,n)},le=8,ue="bridgerte__media-controls-button",zo=e=>e.querySelector(".bridgerte__content")??e,Wo=e=>e instanceof Element?e.closest(".bridgerte__media"):null,Vo=(e,t=!1)=>{const n=document.createElement("button");return n.type="button",n.className=ue,n.textContent=e.label,n.dataset.menuItemId=e.id,n.dataset.action=e.id.replace(/^media-/,""),t&&(n.dataset.active="true"),n.setAttribute("aria-label",e.label),n},hn=e=>e.flatMap(t=>t.type==="button"?[t.item]:t.type==="group"?t.items:[]),qo=(e,t,n,r)=>{if(t.type==="separator"){const a=document.createElement("span");a.className="bridgerte__media-controls-separator",a.dataset.separatorId=t.key,a.setAttribute("aria-hidden","true"),e.append(a);return}(t.type==="button"?[t.item]:t.items).forEach(a=>{e.append(Vo(a,Fo(a,n,r)))})},Uo=(e,t,n)=>{const r=document.createElement("div"),o=e.dataset.status,a=Number(e.dataset.displayWidthPercent??t),s=e.dataset.align??"left",l=mn(o,{config:n.mediaControlsConfig,menuLabels:n.menuLabels});return r.className="bridgerte__media-controls",r.contentEditable="false",r.setAttribute("aria-label","媒体操作"),r.dataset.status=o??"success",r.dataset.displayWidthPercent=e.dataset.displayWidthPercent??"",r.dataset.align=e.dataset.align??"",r.dataset.menuItemIds=hn(l).map(u=>u.id).join("|"),l.forEach(u=>{qo(r,u,a,s)}),r},Ko=e=>{const t=document.createElement("div"),n=zo(e.root),r=new Map,o=new Map,a=new Map;let s=null,l=null,u=!1,i=null;const h=c=>{var m;const p=r.get(c);p&&((m=o.get(p))==null||m(),o.delete(p),p.remove(),r.delete(c),i===c&&(i=null))},C=(c,p)=>p.dataset.status==="error"||i===c,y=(c,p)=>{const m=e.root.getBoundingClientRect(),_=p.getBoundingClientRect(),I=_.bottom<m.top||_.top>m.bottom,T=Math.max(le,m.width-c.offsetWidth-le),S=Math.min(Math.max(_.left-m.left+le,le),T),R=Math.max(le,_.top-m.top-c.offsetHeight-le);c.hidden=I,c.style.transform=`translate(${S}px, ${R}px)`},N=c=>{const p=e.editor.getElementByKey(c);if(!p){h(c);return}p.dataset.lexicalKey=c,a.set(p,c);const m=r.get(c);if(!C(c,p)){h(c);return}if(m){const T=p.dataset.status==="error",S=m.querySelector('[data-action="retry"]')!==null,R=p.dataset.displayWidthPercent??"",$=p.dataset.align??"";if(T===S&&m.dataset.displayWidthPercent===R&&m.dataset.align===$){y(m,p);return}h(c)}const _=Uo(p,e.defaultWidthPercent,e),I=V(_,{targetSelector:`.${ue}`});_.dataset.lexicalKey=c,_.dataset.assetId=p.dataset.assetId,r.set(c,_),o.set(_,I),t.append(_),y(_,p)},b=()=>{s=null,a.forEach((c,p)=>{e.root.contains(p)||(a.delete(p),h(c))}),e.root.querySelectorAll(".bridgerte__media").forEach(c=>{const p=c.dataset.lexicalKey;p&&(a.set(c,p),N(p))}),r.forEach((c,p)=>{N(p)}),i!==null&&N(i)},v=()=>{s===null&&(s=Re(b))},x=(c,p)=>{const m=p.dataset.assetId,_=hn(mn(p.dataset.status,{config:e.mediaControlsConfig,menuLabels:e.menuLabels})).find(T=>T.id===c.dataset.menuItemId);if(!m||!_)return;const I=Ho(_,m);I&&e.executeCommand(I)},g=c=>{if(!c){const _=i;i=null,_!==null&&N(_);return}const p=c.dataset.lexicalKey?c.dataset.lexicalKey:a.get(c)??null;if(!p||i===p)return;const m=i;i=p,m!==null&&N(m),N(p)},f=c=>{const p=c.target;if(!(p instanceof HTMLElement))return;const m=p.closest(`.${ue}`);m&&(c.preventDefault(),l=c.pointerType==="mouse"?null:m)},M=c=>{if(c.pointerType==="mouse"||!l)return;const p=c.target,m=p instanceof HTMLElement?p.closest(".bridgerte__media-controls"):null,_=p instanceof HTMLElement?p.closest(`.${ue}`):null;_===l&&m&&(c.preventDefault(),c.stopPropagation(),x(_,m),u=!0),l=null},E=()=>{l=null},B=c=>{if(u){u=!1,c.preventDefault(),c.stopPropagation();return}const p=c.target;if(!(p instanceof HTMLElement))return;const m=p.closest(`.${ue}`),_=p.closest(".bridgerte__media-controls");!m||!_||(c.preventDefault(),c.stopPropagation(),x(m,_))},D=e.editor.registerMutationListener(ce,c=>{c.forEach((p,m)=>{if(p==="destroyed"){h(m);return}N(m)})}),P=e.editor.registerUpdateListener(v),w=rt({root:e.root,content:n,getBlockFromTarget:Wo,activateBlock:g,clearBlock:()=>g(null)});return t.className="bridgerte__media-controls-layer",e.root.append(t),t.addEventListener("pointerdown",f),t.addEventListener("pointerup",M),t.addEventListener("pointercancel",E),t.addEventListener("click",B),n.addEventListener("scroll",v,{passive:!0}),window.addEventListener("resize",v),{destroy(){D(),P(),s!==null&&(nt(s),s=null),t.removeEventListener("pointerdown",f),t.removeEventListener("pointerup",M),t.removeEventListener("pointercancel",E),t.removeEventListener("click",B),w.destroy(),n.removeEventListener("scroll",v),window.removeEventListener("resize",v),r.forEach(c=>{var p;(p=o.get(c))==null||p(),c.remove()}),r.clear(),o.clear(),a.clear(),t.remove()}}},jo=["width","height"],Y=(e,t)=>{var r;const n=(r=e[t])==null?void 0:r.trim();return n||void 0},je=(e,t)=>{const n=Number.parseInt(e[t]??"",10);return Number.isFinite(n)&&n>0?n:void 0},Nt=(e,t)=>jo.reduce((n,r)=>{const o=je(t,r);return o===void 0?n:{...n,[r]:o}},e),Go=(e,t)=>{if(e.type==="format.color"||e.type==="format.backgroundColor"||e.type==="format.fontSize"||e.type==="format.fontFamily"||e.type==="format.lineHeight")return t.value!==void 0?{...e,value:t.value}:e;if(e.type==="link.set"){const n=Y(t,"href"),r=Y(t,"text");return n?{...e,href:n,text:r}:null}if(e.type==="block.code")return t.language?{type:"block.code",language:t.language}:e;if(e.type==="block.setCodeLanguage")return t.language!==void 0?{...e,language:t.language}:e;if(e.type==="table.insert"){const n=je(t,"rows"),r=je(t,"cols");return n&&r?{type:"table.insert",rows:n,cols:r}:null}if(e.type==="media.insertImage"){const n=Y(t,"url");return n?Nt({...e,url:n,alt:Y(t,"alt"),title:Y(t,"title")},t):null}if(e.type==="media.insertVideo"){const n=Y(t,"url");return n?Nt({...e,url:n,poster:Y(t,"poster"),title:Y(t,"title")},t):null}return e},ne=e=>Math.min(Math.max(Math.round(e),0),255),Ge=({r:e,g:t,b:n})=>`#${[e,t,n].map(r=>ne(r).toString(16).padStart(2,"0")).join("")}`,pn=e=>{const n=e.trim().match(/^#([0-9a-f]{6})$/i);if(!n)return null;const r=n[1]??"";return{r:Number.parseInt(r.slice(0,2),16),g:Number.parseInt(r.slice(2,4),16),b:Number.parseInt(r.slice(4,6),16)}},Yo=e=>{const t=e.trim().match(/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i);return t?{r:ne(Number(t[1])),g:ne(Number(t[2])),b:ne(Number(t[3]))}:null},Fe=e=>{const t=pn(e)??Yo(e);return t?Ge(t):null},fn=e=>Math.min(Math.max(e,0),1),Xo=({r:e,g:t,b:n})=>{const r=ne(e)/255,o=ne(t)/255,a=ne(n)/255,s=Math.max(r,o,a),l=Math.min(r,o,a),u=s-l;let i=0;return u!==0&&(s===r?i=60*((o-a)/u%6):s===o?i=60*((a-r)/u+2):i=60*((r-o)/u+4)),{h:i<0?i+360:i,s:s===0?0:u/s,v:s}},St=({h:e,s:t,v:n})=>{const r=n*t,o=r*(1-Math.abs(e/60%2-1)),a=n-r;let s=0,l=0,u=0;return e<60?(s=r,l=o):e<120?(s=o,l=r):e<180?(l=r,u=o):e<240?(l=o,u=r):e<300?(s=o,u=r):(s=r,u=o),{r:(s+a)*255,g:(l+a)*255,b:(u+a)*255}},Jo=({h:e,s:t})=>{const n=e*Math.PI/180,r=fn(t)*50;return{x:50+Math.cos(n)*r,y:50+Math.sin(n)*r}},Lt=(e,t)=>{const n=t.getBoundingClientRect(),r=n.left+n.width/2,o=n.top+n.height/2,a=e.clientX-r,s=e.clientY-o,l=Math.min(Math.sqrt(a*a+s*s),n.width/2),u=Math.atan2(s,a)*180/Math.PI;return{h:u<0?u+360:u,s:fn(l/(n.width/2)),v:1}},Qo=["#000000","#ffffff"],Zo=e=>{var t;return(t=e.options)!=null&&t.length?e.options:Qo.map(n=>({label:n,value:n}))},bn=()=>{const e=document.createElement("section");return e.className="bridgerte__payload-panel-field",e},ea=(e,t,n)=>{const r=bn(),o=document.createElement("div");return o.className="bridgerte__payload-panel-option-list",e.options.forEach(a=>{const s=document.createElement("button");s.type="button",s.className="bridgerte__payload-panel-option",s.textContent=a.label,s.dataset.bridgertePayloadOption=a.value,s.dataset.active=t[e.name]===a.value?"true":"false",V(s),s.addEventListener("pointerdown",l=>{l.preventDefault()}),s.addEventListener("click",()=>{n({...t,[e.name]:a.value})}),o.append(s)}),r.append(o),r},ta=(e,t,n)=>{const r=bn(),o=document.createElement("div"),a=document.createElement("div"),s=document.createElement("span"),l=document.createElement("div"),u=document.createElement("div"),i=Zo(e),h=i.length===2;let C={h:0,s:0,v:1},y=null;const N=g=>{const f=Fe(g);return!!(f&&i.some(M=>Fe(M.value)===f))},b=(g,f=!0)=>{const M=Fe(g);if(!M)return;t[e.name]=M,u.style.background=M,C=Xo(pn(M)??{r:255,g:255,b:255});const E=Jo(C);a.dataset.active=f?"true":"false",u.dataset.empty="false",f&&(s.style.left=`${E.x}%`,s.style.top=`${E.y}%`)},v=()=>{const g=t[e.name];g&&n({...t,[e.name]:g})};r.className="bridgerte__payload-panel-field",o.className="bridgerte__payload-panel-color-picker",a.className="bridgerte__payload-panel-color-wheel",a.setAttribute("aria-label",`${e.label}选择区域`),s.className="bridgerte__payload-panel-color-wheel-handle",l.className="bridgerte__payload-panel-color-actions",l.dataset.layout=h?"sides":"grid",u.className="bridgerte__payload-panel-color-preview",u.dataset.empty="true",a.append(s),i.forEach(g=>{const f=document.createElement("button"),M=g.value;f.type="button",f.className="bridgerte__payload-panel-color-swatch",f.dataset.value=M,f.style.background=M,f.setAttribute("aria-label",`选择颜色 ${g.label}`),V(f),f.addEventListener("pointerdown",E=>{E.preventDefault()}),f.addEventListener("click",()=>{b(M,!1),v()}),l.append(f)}),a.addEventListener("pointerdown",g=>{y=g.pointerId,a.setPointerCapture(g.pointerId),C=Lt(g,a),b(Ge(St(C))),g.preventDefault()}),a.addEventListener("pointermove",g=>{y===g.pointerId&&(C=Lt(g,a),b(Ge(St(C))))}),a.addEventListener("pointerup",g=>{y===g.pointerId&&(y=null,a.releasePointerCapture(g.pointerId),v())}),a.addEventListener("pointercancel",g=>{y===g.pointerId&&(y=null,a.releasePointerCapture(g.pointerId))});const x=t[e.name];return x&&b(x,!(h&&N(x))),o.append(a,l),r.append(o,u),r},na=(e,t,n)=>{const r=document.createElement("label"),o=document.createElement("input");return r.className="bridgerte__payload-panel-text-field",r.textContent=e.label,o.type=e.name==="href"||e.name==="url"?"url":"text",o.className="bridgerte__payload-panel-text-input",o.value=t[e.name]??"",o.placeholder=e.placeholder??"",o.spellcheck=!1,o.addEventListener("input",()=>{t[e.name]=o.value}),o.addEventListener("keydown",a=>{a.key==="Enter"&&(a.preventDefault(),n(t))}),r.append(o),r},ra=(e,t,n)=>{const r=document.createElement("label"),o=document.createElement("input");return r.className="bridgerte__payload-panel-text-field",r.textContent=e.label,o.type="number",o.className="bridgerte__payload-panel-text-input",o.value=t[e.name]??"",o.placeholder=e.placeholder??"",e.min!==void 0&&(o.min=String(e.min)),e.max!==void 0&&(o.max=String(e.max)),e.step!==void 0&&(o.step=String(e.step)),o.addEventListener("input",()=>{t[e.name]=o.value}),o.addEventListener("keydown",a=>{a.key==="Enter"&&(a.preventDefault(),n(t))}),r.append(o),r},oa=({field:e,values:t,onSubmit:n})=>e.type==="color"?ta(e,t,n):e.type==="text"?na(e,t,n):e.type==="number"?ra(e,t,n):ea(e,t,n),aa=e=>{var t,n,r;return e.defaultValue??(e.type==="select"?(t=e.options[0])==null?void 0:t.value:void 0)??(e.type==="color"?(r=(n=e.options)==null?void 0:n[0])==null?void 0:r.value:void 0)??""},sa=(e,t)=>(t==null?void 0:t[e.name])??(e.type==="color"?"":aa(e)),Rt=e=>e.some(t=>t.type==="text"||t.type==="number"),ia=e=>{const t=e.querySelector(".bridgerte__payload-panel-text-input");queueMicrotask(()=>{t==null||t.focus(),t==null||t.select()})},la=(e,t,n)=>{const r=document.createElement("div"),o=document.createElement("span"),a=(n==null?void 0:n(e))??null;if(r.className="bridgerte__payload-panel-title",o.textContent=e.panel.title,r.append(o),a){const s=document.createElement("button");s.type="button",s.className="bridgerte__payload-panel-clear",s.textContent="清除",s.setAttribute("aria-label",`清除${e.panel.title}`),V(s),s.addEventListener("pointerdown",l=>{l.preventDefault()}),s.addEventListener("click",()=>{t(a)}),r.append(s)}return r},ca=e=>e==="font-size"||e==="font-family"||e==="line-height"?"180px":"220px",da=3,ua=3,ga=10,yn=10,ma=16,ha=2,pa=24,fa=()=>{var e;return typeof window<"u"&&((e=window.matchMedia)==null?void 0:e.call(window,"(hover: hover) and (pointer: fine)").matches)===!0},ge=(e,t)=>{const n=Number.parseInt(e??"",10);return Number.isFinite(n)?Math.min(Math.max(n,t.min),t.max):t.defaultValue},ba=(e,t)=>e.type==="number"&&e.name===t,It=(e,t)=>typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):t,Pt=(e,t,n,r)=>{const o=e.find(h=>ba(h,t)),a=It(o==null?void 0:o.min,1),s=It(o==null?void 0:o.max,n),l=Math.max(a,s),u=Math.min(Math.max(r,a),l),i=ge(o==null?void 0:o.defaultValue,{min:a,max:l,defaultValue:u});return{min:a,max:l,defaultValue:i}},vn=e=>({rows:Pt(e,"rows",J.BRIDGERTE_TABLE_INSERT_MAX_ROWS,da),cols:Pt(e,"cols",J.BRIDGERTE_TABLE_INSERT_MAX_COLS,ua)}),ya=e=>{const t=Math.min(e.cols.max,yn);return`${t*ma+Math.max(t-1,0)*ha+pa}px`},va=({fields:e,values:t,onSubmit:n})=>{const r=vn(e),o=document.createElement("section"),a=document.createElement("div"),s=document.createElement("div"),l=[],u=fa(),i=Math.min(r.rows.max,ga),h=Math.min(r.cols.max,yn),C={...r.rows,max:i,defaultValue:Math.min(r.rows.defaultValue,i)},y={...r.cols,max:h,defaultValue:Math.min(r.cols.defaultValue,h)};let N=ge(t.rows,C),b=ge(t.cols,y),v=null;const x=(P,w)=>{N=P,b=w,t.rows=String(P),t.cols=String(w),s.textContent=`${P} x ${w}`,l.forEach(c=>{const p=Number.parseInt(c.dataset.rows??"0",10),m=Number.parseInt(c.dataset.cols??"0",10);c.dataset.active=String(p<=P&&m<=w)})},g=P=>{var w;return((w=document.elementFromPoint(P.clientX,P.clientY))==null?void 0:w.closest(".bridgerte__payload-panel-table-cell"))??null},f=P=>{if(!P)return;const w=ge(P.dataset.rows,C),c=ge(P.dataset.cols,y);x(w,c)},M=()=>{n({...t,rows:String(N),cols:String(b)})},E=()=>{v=null},B=()=>{window.setTimeout(E,0)},D=(P,w)=>{if(P.detail>0&&v!==w){P.preventDefault(),P.stopPropagation();return}E(),f(w),M()};for(let P=1;P<=i;P+=1)for(let w=1;w<=h;w+=1){const c=document.createElement("button");c.type="button",c.className="bridgerte__payload-panel-table-cell",c.dataset.rows=String(P),c.dataset.cols=String(w),c.setAttribute("aria-label",`插入 ${P} 行 ${w} 列表格`),V(c),c.addEventListener("pointerdown",p=>{v=c,f(c),p.preventDefault()}),c.addEventListener("pointerup",B),c.addEventListener("pointercancel",E),c.addEventListener("click",p=>{D(p,c)}),u&&c.addEventListener("pointerenter",()=>{f(c)}),l.push(c),a.append(c)}return o.className="bridgerte__payload-panel-field",a.className="bridgerte__payload-panel-table-grid",a.setAttribute("aria-label","选择表格行列"),a.style.setProperty("--bridgerte-payload-panel-table-cols",String(h)),s.className="bridgerte__payload-panel-table-status",s.setAttribute("aria-live","polite"),a.addEventListener("pointermove",P=>{u||f(g(P))}),x(N,b),o.append(a,s),o},Ca="bridgerte-payload-panel";let $t=0;const wa=()=>($t+=1,`${Ca}-${$t}`),ke=e=>e.panel.id==="table-insert",_a=(e,t)=>{const n=document.createElement("button");return n.type="button",n.className="bridgerte__payload-panel-submit",n.textContent="应用",V(n),n.addEventListener("pointerdown",r=>{r.preventDefault()}),n.addEventListener("click",()=>{t(e)}),n},Ea=e=>{let t=null,n={};const r=cn({root:e.editorRoot,className:"bridgerte__payload-panel",onBackdropClick:()=>{o()}});function o(){t=null,n={},r.close(),r.content.replaceChildren()}const a=i=>{var C;if(!t||t.readonly||e.isReadonly())return;const h=Go(t.command,i);h&&((C=e.restoreEditorFocus)==null||C.call(e,()=>{o(),e.isReadonly()||e.executeCommand(h)}))},s=i=>{var h;!t||t.readonly||e.isReadonly()||(h=e.restoreEditorFocus)==null||h.call(e,()=>{o(),e.isReadonly()||e.executeCommand(i)})},l=i=>{n=i.panel.fields.reduce((C,y)=>(C[y.name]=sa(y,i.currentValues),C),{});const h=ke(i)?ya(vn(i.panel.fields)):ca(i.panel.id);r.element.style.width=`min(${h}, calc(100vw - 24px))`,r.content.append(la(i,s,e.getClearCommand)),ke(i)?r.content.append(va({fields:i.panel.fields,values:n,onSubmit:a})):i.panel.fields.forEach(C=>{r.content.append(oa({field:C,values:n,onSubmit:a}))}),!ke(i)&&Rt(i.panel.fields)&&r.content.append(_a(n,a)),r.open(i.anchorRect),!ke(i)&&Rt(i.panel.fields)&&ia(r.content)};return{open:i=>{var y;o();const h={...i,id:wa(),readonly:e.isReadonly(),submit:a,cancel:o};if(t=h,((y=e.onRequest)==null?void 0:y.call(e,h))!==!0){if(h.readonly){o();return}l(i)}},close:o,destroy(){o(),r.destroy()}}},me="bridgerte__table-controls-button",ka=["table-insert-row-after","table-delete-row","table-insert-column-after","table-delete-column","table-delete"],Ma=()=>{const e=new Map(W.defaultMenuSchema.map(t=>[t.id,t]));return ka.map(t=>W.tableHeaderMenuItems.find(n=>n.id===t)??e.get(t)).filter(t=>t!==void 0)},Cn=Ma(),xa=new Map(Cn.map(e=>[e.id,e])),Ta=e=>e.matches(".bridgerte__table")?e:e.querySelector(".bridgerte__table")??e,Na=(e,t)=>e.classList.contains("bridgerte__table-wrapper")?e:t.parentElement instanceof HTMLElement?t.parentElement:t,Sa=e=>e.querySelector(".bridgerte__content")??e,La=e=>e instanceof Element?e.closest(".bridgerte__table-wrapper"):null,Ra=e=>{const t=e.getFirstChild();if(!O.$isTableRowNode(t))return null;const n=t.getFirstChild();return O.$isTableCellNode(n)?n:null},Ia=e=>{const t=document.createElement("button");return t.type="button",t.className=me,t.textContent=e.label,t.dataset.menuItemId=e.id,t.setAttribute("aria-label",e.label),t},Pa=()=>{const e=document.createElement("div");return e.className="bridgerte__table-controls",e.contentEditable="false",e.setAttribute("aria-label","表格操作"),Cn.forEach(t=>{e.append(Ia(t))}),e},$a=e=>{const t=document.createElement("div"),n=Sa(e.root),r=new Map,o=new Map,a=new Map;let s=null,l=null,u=!1,i=null;const h=(m,_)=>{const I=e.root.getBoundingClientRect(),T=_.getBoundingClientRect(),S=T.bottom<I.top||T.top>I.bottom,R=Math.max(8,I.width-m.offsetWidth-8),$=Math.min(Math.max(T.left-I.left+8,8),R),L=Math.max(8,T.top-I.top-m.offsetHeight-8);m.hidden=S,m.style.transform=`translate(${$}px, ${L}px)`},C=m=>i===m,y=m=>{const _=e.editor.getElementByKey(m);if(!_){N(m);return}_.dataset.lexicalKey=m;const I=Ta(_),T=Na(_,I);a.set(T,m);const S=r.get(m);if(!C(m)){N(m);return}if(S){h(S,T);return}const R=Pa(),$=V(R,{targetSelector:`.${me}`});R.dataset.lexicalKey=m,r.set(m,R),o.set(R,$),t.append(R),h(R,T)},N=m=>{var I;const _=r.get(m);_&&((I=o.get(_))==null||I(),o.delete(_),_.remove(),r.delete(m),i===m&&(i=null))},b=()=>{s=null,a.forEach((m,_)=>{e.root.contains(_)||(a.delete(_),N(m))}),e.root.querySelectorAll(".bridgerte__table-wrapper").forEach(m=>{const _=m.dataset.lexicalKey;_&&(a.set(m,_),y(_))}),r.forEach((m,_)=>{y(_)}),i!==null&&y(i)},v=()=>{s===null&&(s=Re(b))},x=m=>{e.editor.update(()=>{var I;const _=d.$getNodeByKey(m);_ instanceof O.TableNode&&((I=Ra(_))==null||I.selectStart())}),e.editor.focus()},g=(m,_)=>{x(m),e.executeCommand(_)},f=(m,_)=>{const I=_.dataset.lexicalKey,T=m.dataset.menuItemId,S=T?xa.get(T):void 0;!I||!S||g(I,S.command)},M=m=>{if(!m){const T=i;i=null,T!==null&&y(T);return}const _=m.dataset.lexicalKey?m.dataset.lexicalKey:a.get(m)??null;if(!_||i===_)return;const I=i;i=_,I!==null&&y(I),y(_)},E=m=>{const _=m.target;if(!(_ instanceof HTMLElement))return;const I=_.closest(`.${me}`);I&&(m.preventDefault(),l=m.pointerType==="mouse"?null:I)},B=m=>{if(m.pointerType==="mouse"||!l)return;const _=m.target,I=_ instanceof HTMLElement?_.closest(".bridgerte__table-controls"):null,T=_ instanceof HTMLElement?_.closest(`.${me}`):null;T===l&&I&&(m.preventDefault(),m.stopPropagation(),f(T,I),u=!0),l=null},D=()=>{l=null},P=m=>{if(u){u=!1,m.preventDefault(),m.stopPropagation();return}const _=m.target;if(!(_ instanceof HTMLElement))return;const I=_.closest(`.${me}`),T=_.closest(".bridgerte__table-controls");!I||!T||(m.preventDefault(),m.stopPropagation(),f(I,T))},w=e.editor.registerMutationListener(O.TableNode,m=>{m.forEach((_,I)=>{if(_==="destroyed"){N(I);return}y(I)})}),c=e.editor.registerUpdateListener(v),p=rt({root:e.root,content:n,getBlockFromTarget:La,activateBlock:M,clearBlock:()=>M(null)});return t.className="bridgerte__table-controls-layer",e.root.append(t),t.addEventListener("pointerdown",E),t.addEventListener("pointerup",B),t.addEventListener("pointercancel",D),t.addEventListener("click",P),n.addEventListener("scroll",v,{passive:!0}),window.addEventListener("resize",v),{destroy(){w(),c(),s!==null&&(nt(s),s=null),t.removeEventListener("pointerdown",E),t.removeEventListener("pointerup",B),t.removeEventListener("pointercancel",D),t.removeEventListener("click",P),p.destroy(),n.removeEventListener("scroll",v),window.removeEventListener("resize",v),r.forEach(m=>{var _;(_=o.get(m))==null||_(),m.remove()}),r.clear(),o.clear(),a.clear(),t.remove()}}},Aa=e=>{const t=Ea({editorRoot:e.editorRoot,isReadonly:e.isReadonly,restoreEditorFocus:e.restoreEditorFocus,executeCommand:e.executeCommand,getClearCommand:e.getClearCommand,onRequest:e.onRequest}),n=Lo({editor:e.lexicalEditor,root:e.editorRoot,isReadonly:e.isReadonly,languagePanel:e.codeBlockLanguagePanel,payloadPanelConfig:e.payloadPanelConfig,onRequest:e.onRequest}),r=$a({editor:e.lexicalEditor,root:e.editorRoot,executeCommand:e.executeCommand}),o=Ko({editor:e.lexicalEditor,root:e.editorRoot,defaultWidthPercent:e.defaultMediaWidthPercent,executeCommand:e.executeCommand,mediaControlsConfig:e.mediaControlsConfig,menuLabels:e.menuLabels});return{payloadPanelController:t,codeBlockController:n,tableHeaderController:r,mediaControlsController:o,destroy(){t.destroy(),n.destroy(),r.destroy(),o.destroy()}}},Ba=(e,t)=>{const n=document.createElement("div"),r=document.createElement("div"),o=document.createElement("div");return e.classList.add("bridgerte"),e.textContent="",n.className="bridgerte__editor",r.className="bridgerte__body",o.className="bridgerte__content",o.dataset.placeholder=t.placeholder,o.setAttribute("role","textbox"),o.setAttribute("aria-multiline","true"),r.append(o),n.append(r),e.append(n),{rootElement:n,bodyElement:r,contentElement:o}},Da=({editor:e})=>{let t=null;return{capture(){e.getEditorState().read(()=>{var n;t=((n=d.$getSelection())==null?void 0:n.clone())??null})},restore(){t&&e.update(()=>{d.$setSelection((t==null?void 0:t.clone())??null)})},clear(){t=null}}},Oa=/((https?:\/\/|www\.)[^\s<>()]+[^\s<>().,;:!?])/i,Ha=/([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,})/i,Fa={changeHandlers:[],excludeParents:[],matchers:[z.createLinkMatcherWithRegExp(Oa,e=>e.startsWith("http://")||e.startsWith("https://")?e:`https://${e}`),z.createLinkMatcherWithRegExp(Ha,e=>`mailto:${e}`)]},za=({editor:e})=>z.registerAutoLink(e,Fa),Wa=[".bridgerte__code-header",".bridgerte__code-block-controls",".bridgerte__code-block-control-button",".bridgerte__code-block-control",".bridgerte__code-block-controls-layer",".bridgerte__code-block-menu",".bridgerte__table-controls-layer",".bridgerte__table-controls",".bridgerte__media-controls-layer",".bridgerte__media-controls",".bridgerte__dialog-backdrop",".bridgerte__dialog",".bridgerte__payload-panel"].join(","),Va=(e,t)=>{const n=e.anchorNode,r=e.focusNode;return n!==null&&r!==null&&t.contains(n)&&t.contains(r)},qa=e=>{e.querySelectorAll(Wa).forEach(t=>{t.remove()}),e.querySelectorAll('[contenteditable="false"]').forEach(t=>{t.classList.contains("bridgerte__media")||t.remove()})},Ua=e=>{const t=e.ownerDocument.getSelection();if(!t||t.rangeCount===0||!Va(t,e))return null;const n=t.getRangeAt(0).cloneContents();qa(n);const r=e.ownerDocument.createElement("div");return r.append(n),{html:r.innerHTML,text:r.textContent??""}},Ka=({target:e,isReadonly:t})=>{const n=o=>{const a=Ua(e);!a||!o.clipboardData||(o.clipboardData.setData("text/html",a.html),o.clipboardData.setData("text/plain",a.text),o.preventDefault(),o.stopImmediatePropagation())},r=o=>{if(t()){n(o);return}n(o)};return e.addEventListener("copy",n,{capture:!0}),e.addEventListener("cut",r,{capture:!0}),()=>{e.removeEventListener("copy",n,{capture:!0}),e.removeEventListener("cut",r,{capture:!0})}},Me=8,ja=()=>{const e=window.visualViewport;return{left:(e==null?void 0:e.offsetLeft)??0,top:(e==null?void 0:e.offsetTop)??0,width:(e==null?void 0:e.width)??window.innerWidth,height:(e==null?void 0:e.height)??window.innerHeight}},At=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n));function ot(e,t,n={}){const r=n.placement??"bottom-start",o=n.offset??8,a=n.shiftPadding??8,s=n.strategy??"absolute";let l=null,u=!1;const i=()=>{t.style.position=s,t.style.left="0px",t.style.top="0px",t.style.opacity="0",t.style.pointerEvents="none"},h=(b,v)=>{const x=ja(),g=t.getBoundingClientRect(),f=x.left+Me,M=x.top+Me,E=x.left+x.width-g.width-Me,B=x.top+x.height-g.height-Me;t.style.left=`${At(b,f,E)}px`,t.style.top=`${At(v,M,B)}px`,t.style.opacity="",t.style.pointerEvents=""},C=async()=>{const b=await q.computePosition(e,t,{placement:r,strategy:s,platform:q.platform,middleware:[q.offset(o),q.flip(),q.shift({padding:a})]});h(b.x,b.y)},y=()=>{l==null||l(),l=null},N=b=>{if(u!==b){if(u=b,y(),u){i(),t.hidden=!1,l=q.autoUpdate(e,t,C),C();return}t.hidden=!0,t.style.opacity="",t.style.pointerEvents=""}};return i(),t.hidden=!0,{update:C,setOpen:N,destroy(){y(),t.hidden=!0}}}const at={"align-center":'<svg aria-hidden="true" class="lucide lucide-align-center" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H3" /> <path d="M17 12H7" /> <path d="M19 19H5" /> </svg>',"align-justify":'<svg aria-hidden="true" class="lucide lucide-align-justify" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 5h18" /> <path d="M3 12h18" /> <path d="M3 19h18" /> </svg>',"align-left":'<svg aria-hidden="true" class="lucide lucide-align-left" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H3" /> <path d="M15 12H3" /> <path d="M17 19H3" /> </svg>',"align-right":'<svg aria-hidden="true" class="lucide lucide-align-right" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H3" /> <path d="M21 12H9" /> <path d="M21 19H7" /> </svg>',"at-sign":'<svg aria-hidden="true" class="lucide lucide-at-sign" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="4" /> <path d="M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8" /> </svg>',bold:'<svg aria-hidden="true" class="lucide lucide-bold" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8" /> </svg>',"case-sensitive":'<svg aria-hidden="true" class="lucide lucide-baseline" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 20h16" /> <path d="m6 16 6-12 6 12" /> <path d="M8 12h8" /> </svg>',code:'<svg aria-hidden="true" class="lucide lucide-code-xml" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m18 16 4-4-4-4" /> <path d="m6 8-4 4 4 4" /> <path d="m14.5 4-5 16" /> </svg>',"columns-minus":'<svg aria-hidden="true" class="lucide lucide-between-vertical-end" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="7" height="13" x="3" y="3" rx="1" /> <path d="m9 22 3-3 3 3" /> <rect width="7" height="13" x="14" y="3" rx="1" /> </svg>',"columns-plus":'<svg aria-hidden="true" class="lucide lucide-between-vertical-start" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="7" height="13" x="3" y="8" rx="1" /> <path d="m15 2-3 3-3-3" /> <rect width="7" height="13" x="14" y="8" rx="1" /> </svg>',"heading-1":'<svg aria-hidden="true" class="lucide lucide-heading-1" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 12h8" /> <path d="M4 18V6" /> <path d="M12 18V6" /> <path d="m17 12 3-2v8" /> </svg>',"heading-2":'<svg aria-hidden="true" class="lucide lucide-heading-2" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 12h8" /> <path d="M4 18V6" /> <path d="M12 18V6" /> <path d="M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1" /> </svg>',"heading-3":'<svg aria-hidden="true" class="lucide lucide-heading-3" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 12h8" /> <path d="M4 18V6" /> <path d="M12 18V6" /> <path d="M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2" /> <path d="M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2" /> </svg>',"heading-4":'<svg aria-hidden="true" class="lucide lucide-heading-4" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 18V6" /> <path d="M17 10v3a1 1 0 0 0 1 1h3" /> <path d="M21 10v8" /> <path d="M4 12h8" /> <path d="M4 18V6" /> </svg>',"heading-5":'<svg aria-hidden="true" class="lucide lucide-heading-5" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 12h8" /> <path d="M4 18V6" /> <path d="M12 18V6" /> <path d="M17 13v-3h4" /> <path d="M17 17.7c.4.2.8.3 1.3.3 1.5 0 2.7-1.1 2.7-2.5S19.8 13 18.3 13H17" /> </svg>',"heading-6":'<svg aria-hidden="true" class="lucide lucide-heading-6" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 12h8" /> <path d="M4 18V6" /> <path d="M12 18V6" /> <circle cx="19" cy="16" r="2" /> <path d="M20 10c-2 2-3 3.5-3 6" /> </svg>',"indent-decrease":'<svg aria-hidden="true" class="lucide lucide-indent-decrease" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H11" /> <path d="M21 12H11" /> <path d="M21 19H11" /> <path d="m7 8-4 4 4 4" /> </svg>',"indent-increase":'<svg aria-hidden="true" class="lucide lucide-indent-increase" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H11" /> <path d="M21 12H11" /> <path d="M21 19H11" /> <path d="m3 8 4 4-4 4" /> </svg>',italic:'<svg aria-hidden="true" class="lucide lucide-italic" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <line x1="19" x2="10" y1="4" y2="4" /> <line x1="14" x2="5" y1="20" y2="20" /> <line x1="15" x2="9" y1="4" y2="20" /> </svg>',"list-ordered":'<svg aria-hidden="true" class="lucide lucide-list-ordered" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M11 5h10" /> <path d="M11 12h10" /> <path d="M11 19h10" /> <path d="M4 4h1v5" /> <path d="M4 9h2" /> <path d="M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02" /> </svg>',"list-plus":'<svg aria-hidden="true" class="lucide lucide-list-plus" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 5H3" /> <path d="M11 12H3" /> <path d="M16 19H3" /> <path d="M18 9v6" /> <path d="M21 12h-6" /> </svg>',"list-todo":'<svg aria-hidden="true" class="lucide lucide-list-todo" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M13 5h8" /> <path d="M13 12h8" /> <path d="M13 19h8" /> <path d="m3 17 2 2 4-4" /> <rect x="3" y="4" width="6" height="6" rx="1" /> </svg>',list:'<svg aria-hidden="true" class="lucide lucide-list" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 5h.01" /> <path d="M3 12h.01" /> <path d="M3 19h.01" /> <path d="M8 5h13" /> <path d="M8 12h13" /> <path d="M8 19h13" /> </svg>',maximize:'<svg aria-hidden="true" class="lucide lucide-maximize" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M8 3H5a2 2 0 0 0-2 2v3" /> <path d="M21 8V5a2 2 0 0 0-2-2h-3" /> <path d="M3 16v3a2 2 0 0 0 2 2h3" /> <path d="M16 21h3a2 2 0 0 0 2-2v-3" /> </svg>',minus:'<svg aria-hidden="true" class="lucide lucide-separator-horizontal" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m16 16-4 4-4-4" /> <path d="M3 12h18" /> <path d="m8 8 4-4 4 4" /> </svg>',"paint-bucket":'<svg aria-hidden="true" class="lucide lucide-paint-bucket" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M11 7 6 2" /> <path d="M18.992 12H2.041" /> <path d="M21.145 18.38A3.34 3.34 0 0 1 20 16.5a3.3 3.3 0 0 1-1.145 1.88c-.575.46-.855 1.02-.855 1.595A2 2 0 0 0 20 22a2 2 0 0 0 2-2.025c0-.58-.285-1.13-.855-1.595" /> <path d="m8.5 4.5 2.148-2.148a1.205 1.205 0 0 1 1.704 0l7.296 7.296a1.205 1.205 0 0 1 0 1.704l-7.592 7.592a3.615 3.615 0 0 1-5.112 0l-3.888-3.888a3.615 3.615 0 0 1 0-5.112L5.67 7.33" /> </svg>',palette:'<svg aria-hidden="true" class="lucide lucide-palette" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z" /> <circle cx="13.5" cy="6.5" r=".5" fill="currentColor" /> <circle cx="17.5" cy="10.5" r=".5" fill="currentColor" /> <circle cx="6.5" cy="12.5" r=".5" fill="currentColor" /> <circle cx="8.5" cy="7.5" r=".5" fill="currentColor" /> </svg>',pilcrow:'<svg aria-hidden="true" class="lucide lucide-pilcrow" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M13 4v16" /> <path d="M17 4v16" /> <path d="M19 4H9.5a4.5 4.5 0 0 0 0 9H13" /> </svg>',quote:'<svg aria-hidden="true" class="lucide lucide-quote" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z" /> <path d="M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z" /> </svg>',redo:'<svg aria-hidden="true" class="lucide lucide-redo" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 7v6h-6" /> <path d="M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7" /> </svg>',"remove-formatting":'<svg aria-hidden="true" class="lucide lucide-eraser" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21" /> <path d="m5.082 11.09 8.828 8.828" /> </svg>',"rows-minus":'<svg aria-hidden="true" class="lucide lucide-between-horizontal-end" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="13" height="7" x="3" y="3" rx="1" /> <path d="m22 15-3-3 3-3" /> <rect width="13" height="7" x="3" y="14" rx="1" /> </svg>',"rows-plus":'<svg aria-hidden="true" class="lucide lucide-between-horizontal-start" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="13" height="7" x="8" y="3" rx="1" /> <path d="m2 9 3 3-3 3" /> <rect width="13" height="7" x="8" y="14" rx="1" /> </svg>',"square-code":'<svg aria-hidden="true" class="lucide lucide-square-code" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m10 9-3 3 3 3" /> <path d="m14 15 3-3-3-3" /> <rect x="3" y="3" width="18" height="18" rx="2" /> </svg>',strikethrough:'<svg aria-hidden="true" class="lucide lucide-strikethrough" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 4H9a3 3 0 0 0-2.83 4" /> <path d="M14 12a4 4 0 0 1 0 8H6" /> <line x1="4" x2="20" y1="12" y2="12" /> </svg>',subscript:'<svg aria-hidden="true" class="lucide lucide-subscript" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m4 5 8 8" /> <path d="m12 5-8 8" /> <path d="M20 19h-4c0-1.5.44-2 1.5-2.5S20 15.33 20 14c0-.47-.17-.93-.48-1.29a2.11 2.11 0 0 0-2.62-.44c-.42.24-.74.62-.9 1.07" /> </svg>',superscript:'<svg aria-hidden="true" class="lucide lucide-superscript" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m4 19 8-8" /> <path d="m12 19-8-8" /> <path d="M20 12h-4c0-1.5.442-2 1.5-2.5S20 8.334 20 7.002c0-.472-.17-.93-.484-1.29a2.105 2.105 0 0 0-2.617-.436c-.42.239-.738.614-.899 1.06" /> </svg>',"table-delete":'<svg aria-hidden="true" class="lucide lucide-table" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 3v18" /> <rect width="18" height="18" x="3" y="3" rx="2" /> <path d="M3 9h18" /> <path d="M3 15h18" /> </svg>',table:'<svg aria-hidden="true" class="lucide lucide-table" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 3v18" /> <rect width="18" height="18" x="3" y="3" rx="2" /> <path d="M3 9h18" /> <path d="M3 15h18" /> </svg>',"trash-2":'<svg aria-hidden="true" class="lucide lucide-trash" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6" /> <path d="M3 6h18" /> <path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" /> </svg>',type:'<svg aria-hidden="true" class="lucide lucide-type" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 4v16" /> <path d="M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2" /> <path d="M9 20h6" /> </svg>',underline:'<svg aria-hidden="true" class="lucide lucide-underline" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M6 4v6a6 6 0 0 0 12 0V4" /> <line x1="4" x2="20" y1="20" y2="20" /> </svg>',undo:'<svg aria-hidden="true" class="lucide lucide-undo" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 7v6h6" /> <path d="M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13" /> </svg>',"upload-image":'<svg aria-hidden="true" class="lucide lucide-image" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="18" height="18" x="3" y="3" rx="2" ry="2" /> <circle cx="9" cy="9" r="2" /> <path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" /> </svg>',"upload-video":'<svg aria-hidden="true" class="lucide lucide-film" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="18" height="18" x="3" y="3" rx="2" /> <path d="M7 3v18" /> <path d="M3 7.5h4" /> <path d="M3 12h18" /> <path d="M3 16.5h4" /> <path d="M17 3v18" /> <path d="M17 7.5h4" /> <path d="M17 16.5h4" /> </svg>',"wrap-text":'<svg aria-hidden="true" class="lucide lucide-wrap-text" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m16 16-3 3 3 3" /> <path d="M3 12h14.5a1 1 0 0 1 0 7H13" /> <path d="M3 19h6" /> <path d="M3 5h18" /> </svg>'},Ga=e=>{const t=document.createElement("span");return t.className="bridgerte__menu-icon-text",t.textContent=e,t},st=(e,t,n)=>{if(t){e.innerHTML=t;return}e.append(Ga(n))},Ye=()=>{const e=window.getSelection(),t=e!=null&&e.rangeCount?e.getRangeAt(0):null,n=t==null?void 0:t.getBoundingClientRect();return!n||n.width===0&&n.height===0?null:n},Ya=160,Xa={toolbarKeys:["bold","italic","underline","strike","inline-code","clear-style","|","color","background-color","font-size","font-family","line-height"]},Ja=()=>{const e=d.$getSelection();return d.$isRangeSelection(e)&&!e.isCollapsed()},Bt=(e,t)=>e.target instanceof Node&&t.contains(e.target),Dt=e=>e instanceof Element?e.closest(".bridgerte__hoverbar-button"):null,Qa=e=>e.flatMap(t=>t.type==="button"?[t.item]:t.type==="group"?t.items:[]),Za=e=>{const t=document.createElement("span");return t.className="bridgerte__hoverbar-separator",t.dataset.separatorId=e.key,t.setAttribute("aria-hidden","true"),t},es=(e,t,n)=>{const r=un(e,t),o=document.createElement("button");return o.type="button",o.className="bridgerte__hoverbar-button",o.dataset.hoverbarItemId=e.id,o.dataset.active=String(r.active),o.disabled=r.disabled,o.setAttribute("aria-label",e.label),o.setAttribute("aria-pressed",String(r.active)),st(o,n[e.icon]??at[e.icon],e.label),o},ts=({editorRoot:e,contentElement:t,editor:n,isReadonly:r,executeCommand:o,requestPayloadPanel:a,getCommandStates:s,menuSchema:l,hoverbarConfig:u,menuLabels:i,payloadPanelConfig:h,icons:C={}})=>{const y=Ae(l??W.defaultMenuSchema,{menuLabels:i,payloadPanelConfig:h}),N=W.resolveToolbarMenu(u??Xa,y),b=Qa(N),v=document.createElement("span"),x=document.createElement("div");let g=null,f=!1,M=null;const E=V(x,{targetSelector:".bridgerte__hoverbar-button"});v.className="bridgerte__hoverbar-anchor",v.setAttribute("aria-hidden","true"),x.className="bridgerte__floating-menu bridgerte__hoverbar",x.setAttribute("role","toolbar"),x.setAttribute("aria-label","BridgeRTE hoverbar"),e.append(v,x),g=ot(v,x,{placement:"top",offset:8,strategy:"fixed"});const B=()=>{M&&(window.clearTimeout(M),M=null)},D=()=>{B(),f=!1,x.replaceChildren(),x.dataset.visible="false",g==null||g.setOpen(!1)},P=()=>{const L=Ye(),k=t.getBoundingClientRect();v.style.left=`${(L==null?void 0:L.left)??k.left}px`,v.style.top=`${(L==null?void 0:L.top)??k.top}px`,v.style.width=`${(L==null?void 0:L.width)||1}px`,v.style.height=`${(L==null?void 0:L.height)||1}px`},w=()=>{const L=s();x.replaceChildren(...N.flatMap(k=>k.type==="separator"?[Za(k)]:(k.type==="button"?[k.item]:k.items).map(H=>es(H,L,C)))),P(),f=!0,x.dataset.visible="true",g==null||g.setOpen(!0),g==null||g.update()},c=()=>r()?!1:n.getEditorState().read(Ja),p=(L=!1)=>{if(B(),!c()){D();return}if(L){w();return}f&&D(),M=window.setTimeout(()=>{M=null,c()&&w()},Ya)},m=L=>{const k=b.find(A=>A.id===L.dataset.hoverbarItemId);if(!(!k||L.disabled)){if(k.payloadPanel){const A=L.getBoundingClientRect();a({menuId:k.id,command:k.command,panel:k.payloadPanel,currentValues:dn(k,s()),anchorRect:{x:A.left,y:A.top,width:A.width,height:A.height}}),p(!0);return}o(k.command),p(!0)}},_=L=>{Dt(L.target)&&L.preventDefault()},I=L=>{const k=Dt(L.target);k&&(L.preventDefault(),m(k))},T=L=>{!f||Bt(L,x)||Bt(L,t)||D()},S=n.registerCommand(d.SELECTION_CHANGE_COMMAND,()=>(p(),!1),d.COMMAND_PRIORITY_LOW),R=n.registerUpdateListener(()=>{p()}),$=n.registerCommand(d.KEY_ESCAPE_COMMAND,L=>f?(L==null||L.preventDefault(),D(),!0):!1,d.COMMAND_PRIORITY_LOW);return x.addEventListener("pointerdown",_),x.addEventListener("click",I),document.addEventListener("pointerdown",T,!0),()=>{B(),S(),R(),$(),x.removeEventListener("pointerdown",_),x.removeEventListener("click",I),document.removeEventListener("pointerdown",T,!0),E(),g==null||g.destroy(),v.remove(),x.remove()}},ns=e=>e.metaKey||e.ctrlKey,rs={b:{type:"format.bold"},i:{type:"format.italic"},u:{type:"format.underline"},"\\":{type:"format.clear"}},os={x:{type:"format.strike"},l:{type:"align",value:"left"},e:{type:"align",value:"center"},r:{type:"align",value:"right"},j:{type:"align",value:"justify"}},as={0:{type:"block.paragraph"},1:{type:"block.heading",level:1},2:{type:"block.heading",level:2},3:{type:"block.heading",level:3},4:{type:"block.heading",level:4},5:{type:"block.heading",level:5},6:{type:"block.heading",level:6}},ss=e=>{const t=e.key.toLowerCase(),n=e.code;if(!e.metaKey&&!e.ctrlKey&&!e.altKey&&!e.shiftKey||!ns(e))return null;if(e.altKey){if(e.shiftKey)return null;if(t==="c"||n==="KeyC")return{type:"block.code"};const r=n.startsWith("Digit")?n.slice(5):t;return as[r]??null}return e.shiftKey?t==="z"?{type:"history.redo"}:t==="."||t===">"||n==="Period"?{type:"block.quote"}:t==="7"||t==="&"||n==="Digit7"?{type:"list.ordered"}:t==="8"||t==="*"||n==="Digit8"?{type:"list.unordered"}:t==="9"||t==="("||n==="Digit9"?{type:"list.todo"}:t==="-"||t==="_"||n==="Minus"?{type:"block.divider"}:os[t]??null:t==="z"?{type:"history.undo"}:t==="y"&&e.ctrlKey&&!e.metaKey?{type:"history.redo"}:t==="`"||t==="~"||n==="Backquote"?{type:"format.inlineCode"}:rs[t]??null},is=({target:e,isReadonly:t,executeCommand:n})=>{const r=o=>{if(t())return;const a=ss(o);a&&(o.preventDefault(),n(a))};return e.addEventListener("keydown",r),()=>{e.removeEventListener("keydown",r)}},ls=(e,t)=>{const n=t.offsetTop,r=n+t.offsetHeight,o=e.scrollTop,a=o+e.clientHeight;if(n<o){e.scrollTop=n;return}r>a&&(e.scrollTop=r-e.clientHeight)},it=(e,t)=>{var n;if(e instanceof Text&&t<=(((n=e.textContent)==null?void 0:n.length)??0))return e;for(const r of Array.from((e==null?void 0:e.childNodes)??[])){const o=it(r,t);if(o)return o}return null},wn=({editorRoot:e,contentElement:t,editor:n,isReadonly:r,menu:o,anchor:a,itemSelector:s,getCurrentTrigger:l,getTriggerRect:u,resolveItems:i,renderItem:h,renderStatus:C,onStateChange:y,onSelect:N})=>{let b=null,v=0;const x=V(o,{targetSelector:s}),g=ot(a,o,{placement:"bottom-start",offset:2,strategy:"fixed"});e.append(a,o);const f=()=>{const k=b?u(b.trigger)??Ye():Ye(),A=t.getBoundingClientRect();return k??A},M=()=>{const k=f();a.style.left=`${k.left}px`,a.style.top=`${k.top}px`,a.style.height=`${k.height||1}px`},E=(k=!0)=>{b=null,o.dataset.visible="false",k&&o.replaceChildren(),g.setOpen(!1)},B=()=>{const k=o.querySelector(`${s}[data-active="true"]`);k&&ls(o,k)},D=(k,A)=>{!b||b.requestId!==A.requestId||(E(),N(k,A.trigger))},P=()=>{if(!b){E();return}const k=b,A=f();if((y==null?void 0:y(k,{anchorRect:A,close:E,selectItem:ae=>D(ae,k)}))===!0){o.replaceChildren(),o.dataset.visible="false",g.setOpen(!1);return}if(k.status==="success")o.replaceChildren(...k.items.map((ae,ut)=>h(ae,ut,ut===k.activeIndex)));else{const ae=C==null?void 0:C(k.status,k.trigger.query,k.error);o.replaceChildren(...ae?[ae]:[])}const Z=o.children.length>0;o.dataset.visible=String(Z),M(),g.setOpen(Z),B(),g.update()},w=async(k,A)=>{let H;try{H=await Promise.resolve(i(k))}catch(Z){(b==null?void 0:b.requestId)===A&&(b={...b,items:[],activeIndex:0,status:"error",error:Z},P());return}!b||A!==b.requestId||(b={...b,items:H,activeIndex:Math.min(b.activeIndex,Math.max(H.length-1,0)),status:H.length>0?"success":"empty",error:void 0},P())},c=()=>{if(r()){E();return}const k=n.getEditorState().read(l);if(!k){E(!1);return}v+=1,b={trigger:k,items:[],activeIndex:0,requestId:v,status:"loading",error:void 0},P(),w(k.query,v)},p=()=>{if(!b||b.status!=="success")return!1;const k=b.items[b.activeIndex],A=b.trigger;return k?(E(),N(k,A),!0):!1},m=k=>!b||b.status!=="success"||b.items.length===0?!1:(b={...b,activeIndex:(b.activeIndex+k+b.items.length)%b.items.length},P(),!0),_=k=>{const A=k.target,H=A instanceof HTMLElement?A.closest(s):null,Z=H!=null&&H.dataset.index?Number.parseInt(H.dataset.index,10):Number.NaN;!b||b.status!=="success"||Number.isNaN(Z)||(b={...b,activeIndex:Z},k.preventDefault(),p())},I=k=>{const A=k.target;A instanceof HTMLElement&&A.closest(s)&&k.preventDefault()},T=n.registerUpdateListener(()=>{c()}),S=n.registerCommand(d.KEY_ARROW_DOWN_COMMAND,k=>m(1)?(k==null||k.preventDefault(),!0):!1,d.COMMAND_PRIORITY_LOW),R=n.registerCommand(d.KEY_ARROW_UP_COMMAND,k=>m(-1)?(k==null||k.preventDefault(),!0):!1,d.COMMAND_PRIORITY_LOW),$=n.registerCommand(d.KEY_ENTER_COMMAND,k=>p()?(k==null||k.preventDefault(),!0):!1,d.COMMAND_PRIORITY_LOW),L=n.registerCommand(d.KEY_ESCAPE_COMMAND,k=>b?(k==null||k.preventDefault(),E(),!0):!1,d.COMMAND_PRIORITY_LOW);return o.addEventListener("click",_),o.addEventListener("pointerdown",I),{close:E,destroy(){T(),S(),R(),$(),L(),o.removeEventListener("click",_),o.removeEventListener("pointerdown",I),x(),g.destroy(),a.remove(),o.remove()}}},cs={labelField:"label",descriptionField:"description",avatarField:"avatar",iconField:"data.icon",showAvatar:!0,showIcon:!0,showDescription:!0,loadingText:"加载中",emptyText:"没有匹配的提及",errorText:"提及加载失败"},ds=e=>({...cs,...e}),us=(e,t)=>{var o;const n=t.slice(5),r=(o=e.data)==null?void 0:o[n];return typeof r=="string"&&r?r:void 0},xe=(e,t)=>{if(t.startsWith("data."))return us(e,t);const n=t==="id"?e.id:t==="label"?e.label:t==="value"?e.value:t==="avatar"?e.avatar:e.description;return typeof n=="string"&&n?n:void 0},gs=e=>e.startsWith("@")?e:`@${e}`,_n=(e,t)=>{const n=xe(e,t.labelField)??e.label??e.value??e.id,r=t.showDescription?xe(e,t.descriptionField)??e.description:void 0,o=t.showAvatar?xe(e,t.avatarField)??e.avatar:void 0,a=t.showIcon&&!o?xe(e,t.iconField):void 0;return{item:e,label:gs(n),...r?{description:r}:{},...o?{avatar:o}:{},...a?{icon:a}:{}}},ms=(e,t)=>e.map(n=>_n(n,t)),Xe=e=>e instanceof d.TextNode&&e.getTextContent().startsWith(" "),hs=e=>{const n=e.getTextContent().slice(1);if(!n){e.remove();return}e.setTextContent(n)},ps=(e,t)=>{const n=e.getPreviousSibling(),r=e.getNextSibling(),o=Xe(r)?r.getNextSibling():r;if(Xe(r)&&hs(r),e.remove(),t){n==null||n.selectEnd();return}o==null||o.selectStart()},fs=e=>{const t=d.$getSelection();if(!d.$isRangeSelection(t)||!t.isCollapsed())return null;const n=t.anchor,r=n.getNode();if(vt(r))return r;if(!(r instanceof d.TextNode))return null;const o=r.getTextContentSize(),a=r.getPreviousSibling(),s=r.getNextSibling(),l=Xe(r)&&n.offset===1,u=e?n.offset===0||l?a:null:n.offset===o?s:null;return vt(u)?u:null},bs=(e,t,n)=>{const r=a=>{if(t())return!1;const s=fs(a);return s?(ps(s,a),n(),!0):!1},o=(a,s)=>{const l=r(s);return l&&a.preventDefault(),l};return[e.registerCommand(d.KEY_BACKSPACE_COMMAND,a=>o(a,!0),d.COMMAND_PRIORITY_HIGH),e.registerCommand(d.KEY_DELETE_COMMAND,a=>o(a,!1),d.COMMAND_PRIORITY_HIGH),e.registerCommand(d.DELETE_CHARACTER_COMMAND,a=>r(a),d.COMMAND_PRIORITY_HIGH)]},ys=/(?:^|\s)@([\p{L}\p{N}_-]*)$/u,Ot=[{id:"bridgerte-team",label:"BridgeRTE Team",value:"bridgerte-team"},{id:"frontend",label:"Frontend",value:"frontend"},{id:"designer",label:"Designer",value:"designer"}],vs=e=>e.trim().toLowerCase(),Cs=e=>[e.label,e.value,e.description].filter(Boolean).join(" ").toLowerCase(),ws=e=>{const t=vs(e);return t?Ot.filter(n=>Cs(n).includes(t)):Ot},_s=()=>{const e=d.$getSelection();if(!d.$isRangeSelection(e)||!e.isCollapsed())return null;const t=e.anchor,n=t.getNode();if(!(n instanceof d.TextNode))return null;const o=n.getTextContent().slice(0,t.offset).match(ys);if(!o)return null;const a=o[1]??"",s=o[0]??"",l=s.startsWith("@")?0:1,u=t.offset-s.length+l;return{query:a,nodeKey:n.getKey(),startOffset:u,endOffset:t.offset}},Es=()=>{const e=document.createElement("div");return e.className="bridgerte__floating-menu bridgerte__mention-menu",e.dataset.visible="false",e},ks=()=>{const e=document.createElement("span");return e.className="bridgerte__mention-anchor",e.setAttribute("aria-hidden","true"),e},Ms=(e,t)=>{var s;const n=e.getElementByKey(t.nodeKey),r=it(n,t.startOffset+1);if(!(r instanceof Text))return null;const o=document.createRange(),a=Math.min(t.startOffset+1,((s=r.textContent)==null?void 0:s.length)??0);return a<=t.startOffset?null:(o.setStart(r,t.startOffset),o.setEnd(r,a),o.getBoundingClientRect())},xs=(e,t,n)=>{const r=document.createElement("button"),o=document.createElement("span");if(r.type="button",r.className="bridgerte__menu-item bridgerte__mention-item",r.dataset.mentionId=e.item.id,r.dataset.index=String(t),r.dataset.active=String(n),e.avatar){const a=document.createElement("img");a.className="bridgerte__mention-item-avatar",a.src=e.avatar,a.alt="",a.setAttribute("aria-hidden","true"),r.append(a)}else if(e.icon){const a=document.createElement("span");a.className="bridgerte__mention-item-icon",a.setAttribute("aria-hidden","true"),a.textContent=e.icon,r.append(a)}if(o.className="bridgerte__mention-item-title",o.textContent=e.label,r.append(o),e.description){const a=document.createElement("span");a.className="bridgerte__mention-item-description",a.textContent=e.description,r.append(a)}return r},Ts=(e,t)=>{const n=document.createElement("div");return n.className="bridgerte__mention-status",n.dataset.status=e,n.textContent=t,n},Ns=(e,t)=>{switch(e){case"loading":return t.loadingText;case"empty":return t.emptyText;case"error":return t.errorText}},Ss=e=>e?{x:e.x,y:e.y,width:e.width,height:e.height}:void 0,Ls=({editorRoot:e,contentElement:t,editor:n,isReadonly:r,executeCommand:o,mentionProvider:a,mentionMenuConfig:s,onMentionMenuRequest:l})=>{const u=Es(),i=ks(),h=ds(s),C=(b,v)=>{n.update(()=>{const x=d.$getNodeByKey(v.nodeKey);x instanceof d.TextNode&&(x.spliceText(v.startOffset,v.endOffset-v.startOffset,""),x.select(v.startOffset,v.startOffset))}),o({type:"mention.insert",item:b})},y=wn({editorRoot:e,contentElement:t,editor:n,isReadonly:r,menu:u,anchor:i,itemSelector:".bridgerte__mention-item",getCurrentTrigger:_s,getTriggerRect:b=>Ms(n,b),resolveItems:async b=>{const v=await Promise.resolve(a?a(b):ws(b));return ms(v,h)},renderItem:xs,renderStatus:b=>Ts(b,Ns(b,h)),onStateChange:l?(b,v)=>l({id:`bridgerte-mention-menu-${b.requestId}`,query:b.trigger.query,status:b.status,items:b.items,config:h,readonly:r(),anchorRect:Ss(v.anchorRect),...b.error?{error:b.error}:{},submit:x=>v.selectItem(_n(x,h)),cancel:v.close}):void 0,onSelect:(b,v)=>C(b.item,v)}),N=d.mergeRegister(...bs(n,r,()=>y.close(!1)));return()=>{N(),y.destroy()}},Rs=["script","style","iframe","object","embed","meta","link","xml","svg","math","canvas","form","input","button","select","textarea"].join(","),Is=[".bridgerte__code-header",".bridgerte__code-block-controls",".bridgerte__code-block-control-button",".bridgerte__code-block-control",".bridgerte__code-block-controls-layer",".bridgerte__code-block-menu",".bridgerte__table-controls-layer",".bridgerte__table-controls",".bridgerte__media-controls-layer",".bridgerte__media-controls",".bridgerte__dialog-backdrop",".bridgerte__dialog",".bridgerte__payload-panel",'[data-bridgerte-clipboard-ui="true"]'].join(","),Ps=new Set(["A","B","BLOCKQUOTE","BR","CODE","DEL","DIV","EM","H1","H2","H3","H4","H5","H6","FONT","I","LI","OL","P","PRE","S","SPAN","STRIKE","STRONG","SUB","SUP","TABLE","TBODY","TFOOT","TD","TH","THEAD","TR","TT","U","UL"]),$s=new Set(["http:","https:","mailto:"]),As="p,div,blockquote,pre,h1,h2,h3,h4,h5,h6,ul,ol,table",Bs="p,blockquote,pre,h1,h2,h3,h4,h5,h6,ul,ol,table",Ds=new Set(["colspan","rowspan"]),Os=new Set(["TD","TH"]),Hs=new Set(["M","O","V","W"]),Fs=new Set(["SPAN"]),zs=new Set(["color","background-color"]),Ws=/^#([\da-f]{3}|[\da-f]{6}|[\da-f]{8})$/i,Ht=new Map([["B","strong"],["DEL","s"],["I","em"],["STRIKE","s"],["TT","code"]]),Vs=e=>{try{const t=new URL(e,window.location.href);return $s.has(t.protocol)}catch{return!1}},lt=e=>{e.replaceWith(...e.childNodes)},ct=(e,t)=>{const n=e.ownerDocument.createElement(t);return n.append(...e.childNodes),e.replaceWith(n),n},qs=e=>{const t=e.tagName.split(":")[0]??"";return e.tagName.includes(":")&&Hs.has(t)},En=e=>{[...e.childNodes].forEach(t=>{if(t.nodeType===Node.COMMENT_NODE){t.remove();return}En(t)})},kn=e=>{[...e.childNodes].forEach(t=>{if(t.nodeType===Node.TEXT_NODE){const n=t.parentElement,r=!!(n!=null&&n.closest("pre,code,textarea")),o=(t.textContent??"").replace(/[\u200B-\u200D\uFEFF]/g,"").replace(/\u00A0/g,r?" ":" ");if(r){t.textContent=o;return}let a=o.replace(/\s+/g," ");t.previousSibling||(a=a.trimStart()),t.nextSibling||(a=a.trimEnd()),t.textContent=a;return}kn(t)})},Us=e=>/^[1-9]\d*$/.test(e.trim()),dt=e=>{const t=e.trim().toLowerCase(),[,n]=t.match(Ws)??[];return n?n.length===8?`#${n.slice(2)}`:t:null},Ks=(e,t)=>{if(!Fs.has(e))return null;const n=t.split(";").flatMap(r=>{const[o,...a]=r.split(":"),s=o==null?void 0:o.trim().toLowerCase(),l=dt(a.join(":"));return!s||!l||!zs.has(s)?[]:[`${s}: ${l}`]});return n.length>0?`${n.join("; ")};`:null},js=e=>{if(qs(e)){e.remove();return}if(!Ps.has(e.tagName)){lt(e);return}[...e.attributes].forEach(t=>{const n=t.name.toLowerCase();if(n.startsWith("on")){e.removeAttribute(t.name);return}if(n==="style"){const r=Ks(e.tagName,t.value);if(r){e.setAttribute(t.name,r);return}e.removeAttribute(t.name);return}if(e.tagName==="A"&&n==="href"){if(Vs(t.value))return;e.removeAttribute(t.name);return}if(!(e.tagName==="A"&&["target","rel","title"].includes(n))){if(e.tagName==="PRE"&&n===$e){const r=oe(t.value);if(r){e.setAttribute(t.name,r);return}e.removeAttribute(t.name);return}if(e.tagName==="FONT"&&n==="color"){if(dt(t.value))return;e.removeAttribute(t.name);return}Os.has(e.tagName)&&Ds.has(n)&&Us(t.value)||e.removeAttribute(t.name)}})},Gs=e=>{[...e.querySelectorAll("font")].forEach(t=>{const n=t.getAttribute("color"),r=n?dt(n):null,o=ct(t,"span");r&&o.setAttribute("style",`color: ${r};`)})},Ys=e=>{[...e.querySelectorAll([...Ht.keys()].join(","))].forEach(t=>{const n=Ht.get(t.tagName);n&&ct(t,n)})},Xs=e=>{[...e.querySelectorAll("div")].reverse().forEach(t=>{if(t.querySelector(Bs)){lt(t);return}ct(t,"p")})},Js=e=>{[...e.querySelectorAll("span")].forEach(t=>{t.attributes.length===0&&lt(t)})},Qs=e=>!["P","DIV","SPAN"].includes(e.tagName)||e.querySelector("br,table,ul,ol")?!1:!(e.textContent??"").trim(),Ft=e=>{[...e.querySelectorAll("p,div,span")].reverse().forEach(t=>{Qs(t)&&t.remove()})},Zs=e=>{var t;return e.nodeType===Node.TEXT_NODE?!!((t=e.textContent)!=null&&t.trim()):e.nodeType!==Node.ELEMENT_NODE?!1:!e.matches(As)},ei=e=>{let t=[];const n=()=>{if(t.length===0)return;const r=e.ownerDocument.createElement("p"),o=t[0];o&&(e.insertBefore(r,o),t.forEach(a=>{r.append(a)}),t=[])};[...e.childNodes].forEach(r=>{var o;if(r.nodeType===Node.TEXT_NODE&&!((o=r.textContent)!=null&&o.trim())){r.remove();return}if(Zs(r)){t.push(r);return}n()}),n()},ti=e=>{const t=document.createElement("template");t.innerHTML=e,t.content.querySelectorAll(Rs).forEach(r=>{r.remove()}),t.content.querySelectorAll(Is).forEach(r=>{r.remove()}),En(t.content),ao(t.content),[...t.content.querySelectorAll("*")].forEach(js),kn(t.content),Gs(t.content),Ys(t.content),Xs(t.content),Js(t.content),Ft(t.content);const n=document.createElement("div");return n.append(t.content.cloneNode(!0)),ei(n),Ft(n),n.innerHTML},ni=/^https?:\/\/[^\s<>"']+\.[^\s<>"']+$/i,ri=/^www\.[^\s<>"']+\.[^\s<>"']+$/i,oi=new RegExp(`^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)+(?:/[^\\s<>"']*)?$`,"i"),ai=/^[^\s@]+@[^\s@]+\.[^\s@]+$/i,si=/^\s*```([a-z0-9_+#.-]+)\s*\n([\s\S]*?)\n?```\s*$/i,ii=e=>e.type.startsWith("image/")?"image":e.type.startsWith("video/")?"video":null,Mn=e=>e?[...e].flatMap(t=>{const n=ii(t);return n?[{type:n,file:t}]:[]}):[],Be=e=>({text:(e==null?void 0:e.getData("text/plain"))??"",html:(e==null?void 0:e.getData("text/html"))??"",files:e!=null&&e.files?[...e.files]:[]}),li=e=>({name:e.name,mimeType:e.type||void 0,size:e.size,data:e}),ci=e=>{const[,t,n]=e.replace(/\r\n/g,`
3
- `).match(si)??[],r=oe(t);return n!==void 0&&r!==null?{code:n,language:r}:null},di=e=>{const t=e.trim();return!t||/\s/.test(t)||t.includes("<")||t.includes(">")||/^[a-z][a-z0-9+.-]*:/i.test(t)&&!/^https?:\/\//i.test(t)||ai.test(t)?!1:ni.test(t)||ri.test(t)||oi.test(t)},xn=(e,{isReadonly:t,executeCommand:n})=>t()||!di(e.text)?!1:(n({type:"link.set",href:e.text.trim()}),!0),Je=(e,{isReadonly:t,canUploadMedia:n,uploadMediaFile:r})=>{if(t()||!n())return!1;const o=Mn(e.files);return o.length===0?!1:(o.forEach(({type:a,file:s})=>{r(a,s)}),!0)},ui=(e,t)=>{const r=new DOMParser().parseFromString(t,"text/html");so(r.body);const o=Qe.$generateNodesFromDOM(e,r);return io(o,r.body),o},gi=(e,t)=>{const n=ui(e,t);if(n.length===0)return!1;if(d.$getSelection()||d.$getRoot().selectEnd(),n.some(F.$isCodeNode)){n.forEach(o=>{Pe.$insertNodeToNearestRoot(o)});const r=n[n.length-1];return r&&F.$isCodeNode(r)&&d.$insertNodes([d.$createParagraphNode()]),!0}return d.$insertNodes(n),!0},mi=(e,{editor:t,isReadonly:n})=>{if(n())return!1;if(!e.html.trim())return pi(e,{editor:t,isReadonly:n});const r=ti(e.html);return r.trim()?(t.update(()=>{gi(t,r)}),!0):!1},hi=(e,{editor:t,isReadonly:n})=>{if(n()||e.html.trim()||!e.text.trim())return!1;const r=ci(e.text);return r?(t.update(()=>{const o=nn(r.language||void 0),a=d.$createParagraphNode();d.$getSelection()||d.$getRoot().selectEnd(),o.append(d.$createTextNode(r.code)),Pe.$insertNodeToNearestRoot(o),d.$insertNodes([a]),a.selectStart()}),!0):!1},pi=(e,{editor:t,isReadonly:n})=>n()||e.html.trim()||!e.text?!1:(t.update(()=>{d.$getSelection()||d.$getRoot().selectEnd(),d.$insertNodes([d.$createTextNode(e.text)])}),!0),Tn=(e,t)=>hi(e,t)||mi(e,t),re=e=>{e.preventDefault(),e.stopImmediatePropagation()},fi=(e,t)=>Je(e,t)||xn(e,t)||Tn(e,t),bi=e=>{const t=n=>{n.defaultPrevented||xn(Be(n.clipboardData),e)&&re(n)};return e.target.addEventListener("paste",t,{capture:!0}),()=>{e.target.removeEventListener("paste",t,{capture:!0})}},yi=e=>{const t=o=>{o.defaultPrevented||Je(Be(o.clipboardData),e)&&re(o)},n=o=>{var s;if(e.isReadonly()||!e.canUploadMedia())return;const a=(s=o.dataTransfer)!=null&&s.files?[...o.dataTransfer.files]:[];Mn(a).length!==0&&(o.preventDefault(),o.dataTransfer&&(o.dataTransfer.dropEffect="copy"))},r=o=>{var s;const a={files:(s=o.dataTransfer)!=null&&s.files?[...o.dataTransfer.files]:[]};Je(a,e)&&re(o)};return e.target.addEventListener("paste",t,{capture:!0}),e.target.addEventListener("dragover",n),e.target.addEventListener("drop",r),()=>{e.target.removeEventListener("paste",t,{capture:!0}),e.target.removeEventListener("dragover",n),e.target.removeEventListener("drop",r)}},vi=e=>{const t=n=>{n.defaultPrevented||!Tn(Be(n.clipboardData),e)||re(n)};return e.target.addEventListener("paste",t,{capture:!0}),()=>{e.target.removeEventListener("paste",t,{capture:!0})}},Ci=({target:e,isReadonly:t,onPaste:n,canUploadMedia:r,uploadMediaFile:o,executeCommand:a,editor:s})=>{const l=(i,h)=>fi({text:h.text??i.text,html:h.html??i.html,files:i.files},{isReadonly:t,canUploadMedia:r,uploadMediaFile:o,executeCommand:a,editor:s}),u=i=>{if(t()||!n)return;const h=Be(i.clipboardData),C=n({text:h.text,html:h.html,files:h.files.map(li)});if(C instanceof Promise){re(i),C.then(y=>{y!==!0&&y&&l(h,y)});return}if(C===!0){re(i);return}C&&(re(i),l(h,C))};return e.addEventListener("paste",u,{capture:!0}),()=>{e.removeEventListener("paste",u,{capture:!0})}},wi=e=>e.getKey()==="root"?null:e.getTopLevelElement(),_i=(e,t,n)=>{const r=e.getLastDescendant();return d.$isElementNode(t)?t===e&&n===e.getChildrenSize():r?t===r&&n===t.getTextContentSize():!0},Ei=e=>{const t=e.getLastChild();return d.$isLineBreakNode(t)},ki=e=>{const t=d.$createParagraphNode(),n=e.getLastChild();d.$isLineBreakNode(n)&&n.remove(),e.insertAfter(t),t.selectStart()},Mi=(e,t)=>{const n=()=>{if(t())return!1;const r=d.$getSelection();if(!d.$isRangeSelection(r)||!r.isCollapsed())return!1;const o=r.anchor,a=o.getNode(),s=wi(a);return!Q.$isQuoteNode(s)||!_i(s,a,o.offset)?!1:Ei(s)?(ki(s),!0):(r.insertLineBreak(),!0)};return[e.registerCommand(d.INSERT_PARAGRAPH_COMMAND,n,d.COMMAND_PRIORITY_HIGH),e.registerCommand(d.INSERT_LINE_BREAK_COMMAND,r=>r?!1:n(),d.COMMAND_PRIORITY_HIGH)]},xi=["paragraph","heading-1","heading-2","heading-3","quote","code-block","ordered-list","unordered-list","todo-list","divider","upload-image","upload-video","table"],Ti={showIcon:!0,loadingText:"加载中",emptyText:"没有匹配的命令",errorText:"命令加载失败"},Ni=e=>({...Ti,...e}),Si=e=>e.flatMap(t=>t.type==="button"?[t.item]:t.type==="group"?t.items:[]),Li=e=>({...e,toolbarKeys:(e==null?void 0:e.toolbarKeys)??xi}),Ri=e=>({id:e.id,label:e.label,command:e.command,icon:e.icon,requiresPayload:e.requiresPayload,payloadPanel:e.payloadPanel,source:"schema"}),Ii=(e,t)=>Si(W.resolveToolbarMenu(Li(t),e)).map(Ri),Nn=e=>({...e,source:"provider"}),Pi=/(?:^|\s)\/([\p{L}\p{N}_-]*)$/u,$i=e=>e.trim().toLowerCase(),Ai=e=>[e.label,e.id,e.description,...e.keywords??[]].filter(Boolean).join(" ").toLowerCase(),Bi=(e,t)=>{const n=$i(t);return n?e.filter(r=>Ai(r).includes(n)):e},Di=async(e,t)=>(await Promise.resolve((t==null?void 0:t(e))??[])).map(Nn),Oi=e=>"source"in e?e:Nn(e),Hi=({menuSchema:e,slashCommandConfig:t})=>e!==void 0||t!==void 0,Fi=()=>{const e=d.$getSelection();if(!d.$isRangeSelection(e)||!e.isCollapsed())return null;const t=e.anchor,n=t.getNode();if(!(n instanceof d.TextNode))return null;const o=n.getTextContent().slice(0,t.offset).match(Pi);if(!o)return null;const a=o[1]??"",s=o[0]??"",l=s.startsWith("/")?0:1,u=t.offset-s.length+l;return{query:a,nodeKey:n.getKey(),startOffset:u,endOffset:t.offset}},zi=()=>{const e=document.createElement("div");return e.className="bridgerte__floating-menu bridgerte__slash-command-menu",e.dataset.visible="false",e},Wi=()=>{const e=document.createElement("span");return e.className="bridgerte__slash-command-anchor",e.setAttribute("aria-hidden","true"),e},zt=(e,t)=>{var s;const n=e.getElementByKey(t.nodeKey),r=it(n,t.startOffset+1);if(!(r instanceof Text))return null;const o=document.createRange(),a=Math.min(t.startOffset+1,((s=r.textContent)==null?void 0:s.length)??0);return a<=t.startOffset?null:(o.setStart(r,t.startOffset),o.setEnd(r,a),o.getBoundingClientRect())},Vi=(e,t,n,r,o)=>{const a=document.createElement("button"),s=document.createElement("span");if(a.type="button",a.className="bridgerte__menu-item bridgerte__slash-command-item",a.dataset.commandId=e.id,a.dataset.index=String(t),a.dataset.active=String(n),r.showIcon&&e.icon){const l=document.createElement("span");l.className="bridgerte__slash-command-item-icon",l.setAttribute("aria-hidden","true"),st(l,o[e.icon]??at[e.icon],e.label),a.append(l)}if(s.className="bridgerte__slash-command-item-title",s.textContent=e.label,a.append(s),e.description){const l=document.createElement("span");l.className="bridgerte__slash-command-item-description",l.textContent=e.description,a.append(l)}return a},qi=(e,t)=>{const n=document.createElement("div");return n.className="bridgerte__slash-command-status",n.dataset.status=e,n.textContent=t,n},Ui=(e,t)=>{switch(e){case"loading":return t.loadingText;case"empty":return t.emptyText;case"error":return t.errorText}},Wt=e=>e?{x:e.x,y:e.y,width:e.width,height:e.height}:void 0,Ki=({editorRoot:e,contentElement:t,editor:n,isReadonly:r,executeCommand:o,requestPayloadPanel:a,menuSchema:s,slashCommandConfig:l,icons:u={},menuLabels:i,payloadPanelConfig:h,slashCommandMenuConfig:C,onSlashCommandMenuRequest:y,slashCommandProvider:N})=>{const b=zi(),v=Wi(),x=Ni(C),g=Ae(s??W.defaultMenuSchema,{menuLabels:i,payloadPanelConfig:h}),f=Ii(g,l),M=new Map(g.map(c=>[c.id,c])),E=Hi({menuSchema:s,slashCommandConfig:l}),B=c=>{n.update(()=>{const p=d.$getNodeByKey(c.nodeKey);p instanceof d.TextNode&&(p.spliceText(c.startOffset,c.endOffset-c.startOffset,""),p.select(c.startOffset,c.startOffset))})};return wn({editorRoot:e,contentElement:t,editor:n,isReadonly:r,menu:b,anchor:v,itemSelector:".bridgerte__slash-command-item",getCurrentTrigger:Fi,getTriggerRect:c=>zt(n,c),resolveItems:async c=>{const p=E||!N?Bi(f,c):[];try{const m=await Di(c,N);return[...p,...m]}catch(m){if(p.length>0)return p;throw m}},renderItem:(c,p,m)=>Vi(c,p,m,x,u),renderStatus:c=>qi(c,Ui(c,x)),onStateChange:y?(c,p)=>y({id:`bridgerte-slash-command-menu-${c.requestId}`,query:c.trigger.query,status:c.status,items:c.items,config:x,readonly:r(),anchorRect:Wt(p.anchorRect),...c.error?{error:c.error}:{},submit:m=>p.selectItem(Oi(m)),cancel:p.close}):void 0,onSelect:(c,p)=>{B(p);const m=c.source==="schema"?M.get(c.id):void 0;if(m!=null&&m.payloadPanel){const _=zt(n,p);a({menuId:m.id,command:m.command,panel:m.payloadPanel,anchorRect:Wt(_??void 0)});return}o(c.command)}}).destroy},Vt=32,ze=e=>{var t;return e instanceof HTMLElement&&e.getAttribute("role")==="checkbox"&&((t=e.parentElement)==null?void 0:t.classList.contains("bridgerte__list--todo"))===!0},We=e=>e instanceof HTMLElement?e.closest('[role="checkbox"]'):null,ji=e=>d.$getNearestNodeFromDOMNode(e),qt=e=>e.button===0,Ve=(e,t)=>{const n=t.getBoundingClientRect();return t.dir==="rtl"?e.clientX>=n.right-Vt&&e.clientX<=n.right:e.clientX>=n.left&&e.clientX<=n.left+Vt},Ut=e=>{e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation()},Gi=({contentElement:e,editor:t,isReadonly:n})=>{let r=0;const o=u=>{if(n()||!qt(u))return;const i=We(u.target);!i||!ze(i)||Ve(u,i)&&Ut(u)},a=(u,i)=>{Ut(u),t.update(()=>{const h=ji(i);K.$isListItemNode(h)&&h.toggleChecked()})},s=u=>{if(n()||!qt(u)||Date.now()-r<700)return;const i=We(u.target);!i||!ze(i)||Ve(u,i)&&a(u,i)},l=u=>{if(n()||u.pointerType!=="touch")return;const i=We(u.target);!i||!ze(i)||Ve(u,i)&&(r=Date.now(),a(u,i))};return e.addEventListener("pointerdown",o,!0),e.addEventListener("pointerup",l,!0),e.addEventListener("click",s,!0),()=>{e.removeEventListener("pointerdown",o,!0),e.removeEventListener("pointerup",l,!0),e.removeEventListener("click",s,!0)}},qe=(e,t)=>{var n;return((n=e.floatingMenus)==null?void 0:n[t])!==!1},Yi=({options:e,lexicalEditor:t,editorRoot:n,contentElement:r,historyState:o,isReadonly:a,executeCommand:s,requestPayloadPanel:l,uploadMediaFile:u,canUploadMedia:i,syncAfterEditorUpdate:h,refreshCommandStates:C,getCommandStates:y,setCanUndo:N,setCanRedo:b,enableKeyboardShortcuts:v})=>{const x=qe(e,"mention"),g=qe(e,"slash"),f=qe(e,"hoverbar"),M=d.mergeRegister(Ci({target:r,isReadonly:a,onPaste:e.onPaste,canUploadMedia:i,uploadMediaFile:u,executeCommand:s,editor:t}),yi({target:r,isReadonly:a,canUploadMedia:i,uploadMediaFile:u}),bi({target:r,isReadonly:a,executeCommand:s}),vi({target:r,editor:t,isReadonly:a}),Ka({target:r,isReadonly:a}),Q.registerRichText(t),j.registerCodeHighlighting(t,uo),Kt.registerHistory(t,o,Ur),K.registerList(t),K.registerCheckList(t),...Mi(t,a),...Xn(t,a),Gi({contentElement:r,editor:t,isReadonly:a}),x?Ls({editorRoot:n,contentElement:r,editor:t,isReadonly:a,executeCommand:s,mentionProvider:e.mentionProvider,mentionMenuConfig:e.mentionMenuConfig,onMentionMenuRequest:e.onMentionMenuRequest}):()=>{},f?ts({editorRoot:n,contentElement:r,editor:t,isReadonly:a,executeCommand:s,requestPayloadPanel:l,getCommandStates:y,menuSchema:e.menuSchema,hoverbarConfig:e.hoverbarConfig,icons:e.icons,menuLabels:e.menuLabels,payloadPanelConfig:e.payloadPanelConfig}):()=>{},O.registerTablePlugin(t),za({editor:t}),g?Ki({editorRoot:n,contentElement:r,editor:t,isReadonly:a,executeCommand:s,requestPayloadPanel:l,menuSchema:e.menuSchema,slashCommandConfig:e.slashCommandConfig,icons:e.icons,menuLabels:e.menuLabels,payloadPanelConfig:e.payloadPanelConfig,slashCommandMenuConfig:e.slashCommandMenuConfig,onSlashCommandMenuRequest:e.onSlashCommandMenuRequest,slashCommandProvider:e.slashCommandProvider}):()=>{},rr({editor:t,contentElement:r,isReadonly:a}),v?is({target:r,isReadonly:a,executeCommand:s}):()=>{},t.registerUpdateListener(()=>{h(),C()}),t.registerCommand(d.SELECTION_CHANGE_COMMAND,()=>(C(),!1),d.COMMAND_PRIORITY_LOW),t.registerCommand(d.CAN_UNDO_COMMAND,E=>(N(E),!1),d.COMMAND_PRIORITY_LOW),t.registerCommand(d.CAN_REDO_COMMAND,E=>(b(E),!1),d.COMMAND_PRIORITY_LOW));return{destroy(){M()}}};function Sn(e,t={}){const n=Kt.createEmptyHistoryState(),r=t.mediaDefaultWidthPercent??50,{contentElement:o}=Ba(e,{placeholder:t.placeholder??er}),a=t.keyboardShortcuts===!0;let s=t.readonly??!1,l=!1,u=Ue(t.value);const i=d.createEditor({namespace:Kr,editable:!s,nodes:[Q.HeadingNode,Q.QuoteNode,F.CodeNode,F.CodeHighlightNode,K.ListNode,K.ListItemNode,O.TableNode,O.TableRowNode,O.TableCellNode,z.LinkNode,z.AutoLinkNode,pe,ce,ye],theme:Rr,onError:c=>{G(t,"lexical.runtime","Lexical runtime error.",c)}});O.setScrollableTablesActive(i,!0);const h=()=>l,C=()=>s,y=()=>{h()||nr({editor:i,contentElement:o})},N=Da({editor:i}),b=jr({lexicalEditor:i,options:t,isDestroyed:h,setContent:c=>{u=c},syncPlaceholder:y}),v=wr({lexicalEditor:i,options:t,isDestroyed:h,canUploadMedia:()=>t.uploadAdapter!==void 0,isReadonly:C}),x=qr({container:e,lexicalEditor:i,options:t,isDestroyed:h,isReadonly:C,reportError:G}),g=()=>{o.contentEditable=String(!s),i.setEditable(!s)},M=Aa({editorRoot:e,lexicalEditor:i,isReadonly:C,restoreEditorFocus:c=>{N.restore(),i.focus(c)},executeCommand:x,getClearCommand:c=>{switch(c.command.type){case"format.color":case"format.backgroundColor":case"format.fontSize":case"format.fontFamily":case"format.lineHeight":return{...c.command,value:""};default:return null}},codeBlockLanguagePanel:t.codeBlockLanguagePanel,payloadPanelConfig:t.payloadPanelConfig,mediaControlsConfig:t.mediaControlsConfig,menuLabels:t.menuLabels,onRequest:t.onPayloadPanelRequest,defaultMediaWidthPercent:r}),E=()=>yr(t),B=()=>vr(t),D=c=>{h()||(N.capture(),M.payloadPanelController.open(c))};e.dataset.readonly=String(s),e.addEventListener("focusin",E),e.addEventListener("focusout",B),e.style.setProperty("--bridgerte-media-display-width",`${r}%`);const P=Yi({options:t,lexicalEditor:i,editorRoot:e,contentElement:o,historyState:n,isReadonly:C,executeCommand:x,requestPayloadPanel:D,uploadMediaFile:x.uploadMediaFile,canUploadMedia:()=>t.uploadAdapter!==void 0,syncAfterEditorUpdate:b.syncAfterEditorUpdate,refreshCommandStates:v.refreshCommandStates,getCommandStates:v.getCommandStates,setCanUndo:v.setCanUndo,setCanRedo:v.setCanRedo,enableKeyboardShortcuts:a});i.setRootElement(o),b.suppressNextChange(),u=Wn(i,t.value),g();const w={getContent(){return h()||(b.clearContentChangeTimer(),b.syncContent(!1)),u},setContent(c){h()||(b.clearContentChangeTimer(),u=Ue(c),b.suppressNextChange(),Qt(i,u),b.enforceCurrentMaxLength(),y(),i.dispatchCommand(d.CLEAR_HISTORY_COMMAND,void 0),v.setHistoryAvailability(!1,!1),b.syncContent(!0))},executeCommand(c){x(c)},requestPayloadPanel:D,getCommandStates:v.getCommandStates,subscribeCommandStateChange:v.subscribeCommandStateChange,setReadonly(c){h()||(s=c,e.dataset.readonly=String(s),g(),v.refreshCommandStates())},focus(){h()||i.focus()},blur(){h()||o.blur()},destroy(){h()||(l=!0,b.clearContentChangeTimer(),M.destroy(),x.destroy(),v.destroy(),N.clear(),P.destroy(),i.setRootElement(null),e.removeEventListener("focusin",E),e.removeEventListener("focusout",B),e.classList.remove("bridgerte"),e.textContent="",delete e.dataset.readonly)}};return b.syncContent(!1),y(),v.refreshCommandStates(),Cr(t,w),w}const Xi=e=>!Ie.isBridgeMessage(e)||!("id"in e)?!1:e.type==="editor.init"||e.type==="editor.executeCommand"||e.type==="editor.setContent"||e.type==="editor.setReadonly"||e.type==="editor.requestContent"||e.type==="editor.payloadPanelResolved"||e.type==="editor.payloadPanelCanceled"||e.type==="editor.uploadResolved"||e.type==="editor.uploadRejected",Ji=e=>({id:e,type:"editor.ready",payload:{menuSchema:W.defaultMenuSchema,eventTiming:Ie.defaultBridgeEventTiming,version:J.BRIDGERTE_CONTENT_VERSION}}),Qi=e=>`native-upload:${e}:${Date.now()}:${Math.random().toString(36).slice(2)}`,Zi=({container:e,transport:t})=>{var P;let n=null,r=!1,o=null,a=null,s=null,l=0;const u=new Map,i=new Map,h=w=>{r||t.postMessage(w)},C=()=>{s&&(clearTimeout(s),s=null)},y=()=>{C(),s=setTimeout(()=>{if(r)return;const w=Math.ceil(e.getBoundingClientRect().height);w!==l&&(l=w,h({type:"editor.heightChange",payload:{height:w}}))},Ie.BRIDGE_HEIGHT_CHANGE_THROTTLE_MS)},N=w=>{if(!n)return;const c=n.getContent();h({id:w,type:"editor.content",payload:c}),h({id:w,type:"editor.contentChange",payload:c})},b=w=>{const c=w.payload,p=u.get(c.assetId);if(p){if(u.delete(c.assetId),p.source==="uploadAdapter"){p.resolve(c.result);return}n==null||n.executeCommand({type:p.type==="image"?"media.insertImage":"media.insertVideo",url:c.result.url,poster:c.result.poster,width:c.result.width,height:c.result.height,displayWidthPercent:50,assetId:c.assetId})}},v=w=>{const c=w.payload,p=u.get(c.assetId);if(p){if(u.delete(c.assetId),p.source==="uploadAdapter"){p.reject(new Error(c.message));return}h({id:w.id,type:"editor.error",payload:{code:"bridge.uploadRejected",message:c.message}})}},x=(w,c)=>new Promise((p,m)=>{u.set(c,{type:w,assetId:c,source:"uploadAdapter",resolve:p,reject:m}),h({type:"editor.uploadRequest",payload:{assetId:c,type:w,accept:w==="image"?"image/*":"video/*"}})}),g=w=>{const c=Qi(w);u.set(c,{type:w,assetId:c,source:"nativePicker"}),h({type:"editor.uploadRequest",payload:{assetId:c,type:w,accept:w==="image"?"image/*":"video/*"}})},f=w=>{const c=i.get(w.payload.requestId);c&&(i.delete(w.payload.requestId),c.request.submit(w.payload.values))},M=w=>{const c=i.get(w.payload.requestId);c&&(i.delete(w.payload.requestId),c.request.cancel())},E=(w,c)=>{n==null||n.destroy(),o==null||o(),u.clear(),i.clear(),n=Sn(e,{...c,uploadAdapter:{uploadImage(p,m){return x("image",m.assetId)},uploadVideo(p,m){return x("video",m.assetId)}},onContentChange:p=>{h({type:"editor.contentChange",payload:p}),y()},onCommandStateChange:p=>{h({type:"editor.commandStateChange",payload:p})},onPayloadPanelRequest:p=>(i.set(p.id,{request:p}),h({type:"editor.payloadPanelRequest",payload:{menuId:p.menuId,command:p.command,panel:p.panel,anchorRect:p.anchorRect,currentValues:p.currentValues,id:p.id,readonly:p.readonly}}),!0),onError:p=>{h({type:"editor.error",payload:p})}}),o=n.subscribeCommandStateChange(p=>{h({type:"editor.commandStateChange",payload:p})}),h(Ji(w)),y()},B=w=>{if(w.type==="media.pickImage"){g("image");return}if(w.type==="media.pickVideo"){g("video");return}n==null||n.executeCommand(w)},D=w=>{if(!(r||!Xi(w)))switch(w.type){case"editor.init":E(w.id,w.payload);return;case"editor.executeCommand":B(w.payload);return;case"editor.setContent":n==null||n.setContent(w.payload);return;case"editor.setReadonly":n==null||n.setReadonly(w.payload.readonly);return;case"editor.requestContent":N(w.id);return;case"editor.payloadPanelResolved":f(w);return;case"editor.payloadPanelCanceled":M(w);return;case"editor.uploadResolved":b(w);return;case"editor.uploadRejected":v(w);return}};return a=((P=t.addMessageListener)==null?void 0:P.call(t,D))??null,{receive:D,destroy(){r||(r=!0,C(),a==null||a(),o==null||o(),u.clear(),i.clear(),n==null||n.destroy(),n=null)}}};exports.appendMenuIcon=st;exports.bindTouchPressedState=V;exports.createFloatingLayer=ot;exports.createRichTextEditor=Sn;exports.createWebViewBridgeRuntime=Zi;exports.defaultMenuIcons=at;exports.getMenuStateForItem=un;exports.getPayloadPanelCurrentValues=dn;exports.resolveMenuSchemaForDom=Ae;
4
- //# sourceMappingURL=index-BkJ7H4Ee.cjs.map