1import{r as n,j as R,ao as b}from"./auth-CNBE6tUp.js";import{b$ as N,c0 as A,c1 as _,c2 as L,c3 as G,c4 as k,c5 as w,c6 as $,c7 as o,c8 as j,c9 as T,ca as y,cb as O,cc as P,cd as F,ce as H}from"./main-BonzYWBe.js";import{u as U,$ as B}from"./percentages-BXMCSKIN-CRCi4y3e.js";import"./client-CUuP--no.js";import"./LexicalHtml.prod-CSOqFUku.js";import"./emoji-list-BKAN29gn.js";const h=N("RIGHT_CLICK_IMAGE_COMMAND"),J="application/lexical-selected-image";function Q({src:c,altText:v,nodeKey:g}){const i=n.useRef(null),d=n.useRef(null),[l,u,C]=U(g),[t]=A(),x=n.useRef(null),[D,S]=n.useState(!1),m=t.isEditable(),M=!!c&&(c.toLowerCase().endsWith(".svg")||c.includes("image/svg+xml")),f=n.useCallback(r=>{const e=_();return l&&L(e)&&(r.preventDefault(),e.getNodes().forEach(a=>{a.__type==="image"&&a.remove()})),!1},[l]),I=n.useCallback(r=>d.current===r.target||i.current===r.target?(G(null),t.update(()=>{u(!0);const e=t.getRootElement();e!==null&&e.focus()}),!0):!1,[t,u]),E=n.useCallback(r=>{const e=r,a=d.current===e.target||d.current?.parentElement===e.target,s=i.current===e.target||i.current?.parentElement===e.target;return a||s?(e.shiftKey?u(!l):(C(),u(!0),m||S(!0)),!0):!1},[l,u,C,m]),p=n.useCallback(r=>{t.getEditorState().read(()=>{const e=_();r.target.tagName==="IMG"&&k(e)&&e.getNodes().length===1&&t.dispatchCommand(h,r)})},[t]);return n.useEffect(()=>{const r=t.getRootElement(),e=w(t.registerCommand(P,(a,s)=>(x.current=s,!1),o),t.registerCommand(O,a=>a.target===i.current?(a.preventDefault(),!0):!1,o),t.registerCommand(y,E,o),t.registerCommand(h,E,o),t.registerCommand(T,f,o),t.registerCommand(j,f,o),t.registerCommand($,I,o));return r?.addEventListener("contextmenu",p),()=>{e(),r?.removeEventListener("contextmenu",p)}},[f,I,t,p,E]),R.jsx("div",{className:b("rounded-lg overflow-hidden mt-2 group",l&&m&&"outline-solid outline-primary",!m&&"cursor-pointer"),onDragStart:r=>{r.dataTransfer.setData(J,JSON.stringify({type:"lexical-image",id:g,src:c}))},children:R.jsx(F,{src:c,altText:v,setFullScreen:S,fullScreen:D,isEditable:m,ref:i,isSvg:M,onSaveToForgemaster:r=>{const e=r?.uri;e&&t.update(()=>{const a=H(g);if(B(a)){const s=new URL(e,window.location.origin);s.searchParams.delete("_cache"),s.searchParams.set("_cache",Date.now().toString()),a.setSrc(s.toString())}})}})})}export{h as RIGHT_CLICK_IMAGE_COMMAND,Q as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.