@eigenpal/docx-editor-react 1.0.1 → 1.0.3
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.
- package/README.md +1 -1
- package/dist/index.js +7 -7
- package/dist/index.mjs +7 -7
- package/dist/styles.css +1 -1
- package/package.json +5 -5
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {h,d,g as g$1,F,i,o,E,C,A}from'./chunk-SW2JOSQG.mjs';import {a as a$1}from'./chunk-K5DD2LSK.mjs';import {a,g,c,b as b$4}from'./chunk-6AX4I76A.mjs';import {b as b$1}from'./chunk-TN5C2ZYV.mjs';import {b as b$3}from'./chunk-IVFYCMAM.mjs';import'./chunk-AJ2BNSGR.mjs';import {b as b$2,a as a$2}from'./chunk-OHNO4NRQ.mjs';import {m}from'./chunk-ICVBXT6V.mjs';import {b,a as a$3}from'./chunk-ZFZJRL2R.mjs';export{a as LocaleProvider,b as useTranslation}from'./chunk-ZFZJRL2R.mjs';import {b as b$5}from'./chunk-BMBP5UFA.mjs';import
|
|
1
|
+
import {h,d,g as g$1,F,i,o,E,C,A}from'./chunk-SW2JOSQG.mjs';import {a as a$1}from'./chunk-K5DD2LSK.mjs';import {a,g,c,b as b$4}from'./chunk-6AX4I76A.mjs';import {b as b$1}from'./chunk-TN5C2ZYV.mjs';import {b as b$3}from'./chunk-IVFYCMAM.mjs';import'./chunk-AJ2BNSGR.mjs';import {b as b$2,a as a$2}from'./chunk-OHNO4NRQ.mjs';import {m}from'./chunk-ICVBXT6V.mjs';import {b,a as a$3}from'./chunk-ZFZJRL2R.mjs';export{a as LocaleProvider,b as useTranslation}from'./chunk-ZFZJRL2R.mjs';import {b as b$5}from'./chunk-BMBP5UFA.mjs';import Rl,{lazy,forwardRef,useRef,useCallback,useEffect,useImperativeHandle,memo,useState,useMemo,useLayoutEffect,createContext,Suspense,useSyncExternalStore,Component}from'react';import {onFontsLoaded,collectHeadings,findWordBoundaries,pixelsToEmu,loadDocumentFonts,readDocxFileFromInput,resolveColorToHex,twipsToPixels,pixelsToTwips,formatPx}from'@eigenpal/docx-editor-core/utils';import {createStyleResolver,schema,extractSelectionState,findStartPosForParaId,addRowBelow,addColumnRight,getTableContext,setCellFillColor,setTableBorderColor,setTableBorderWidth,setCellBorder,setCellVerticalAlign,setCellMargins,setCellTextDirection,toggleNoWrap,setRowHeight,toggleHeaderRow,distributeColumns,autoFitContents,applyTableStyle,removeTableBorders,setInsideTableBorders,setOutsideTableBorders,setAllTableBorders,mergeCells,selectColumn,selectRow,selectTable,deleteTable,deleteColumn,deleteRow,addColumnLeft,addRowAbove,getSelectedText as getSelectedText$1,getHyperlinkAttrs as getHyperlinkAttrs$1}from'@eigenpal/docx-editor-core/prosemirror';import {parseDocx,injectReplyRangeMarkers,injectTCReplyRangeMarkers}from'@eigenpal/docx-editor-core/docx';import {ExtensionManager,createStarterKit,hasUntrackedChanges,hasStructuralChanges,getChangedParagraphIds,clearTrackedChanges}from'@eigenpal/docx-editor-core/prosemirror/extensions';import {rejectChange,acceptChange,setImageWrapType,getSplitCellDialogConfig,splitActiveTableCell,toggleBold,toggleItalic,toggleUnderline,toggleStrike,toggleSuperscript,toggleSubscript,toggleBulletList,toggleNumberedList,increaseListLevel,increaseIndent,decreaseListLevel,decreaseIndent,clearFormatting,setRtl,setLtr,getSelectedText,getHyperlinkAttrs,applyStyle,setLineSpacing,setFontFamily,setFontSize,setHighlight,setTextColor,clearTextColor,setAlignment,insertTable,insertPageBreak,generateTOC,insertHyperlink,setHyperlink,removeHyperlink,findHyperlinkRangeAt,setIndentLeft,setIndentRight,setIndentFirstLine,removeTabStop,setTableProperties}from'@eigenpal/docx-editor-core/prosemirror/commands';import {toast,Toaster}from'sonner';import {DocumentAgent,executeCommand}from'@eigenpal/docx-editor-core/agent';import {NodeSelection,TextSelection,EditorState}from'prosemirror-state';import {LayoutPainter,renderPages,findImageElement,hitTestImage,captureInlinePositionEmu,toolbarValueToLayoutTarget,deriveLayoutChoice,IMAGE_LAYOUT_OPTIONS,isImageLayoutOptionEnabled}from'@eigenpal/docx-editor-core/layout-painter';import {DEFAULT_PAGE_HEIGHT_PX,getPageSize,getMargins,toFlowBlocks,collectFootnoteRefs,convertHeaderFooterToContent,buildFootnoteContentMap,stabilizeFootnoteLayout,buildFootnoteRenderItems,getCaretPosition,selectionToRects,findBodyPmAnchor,clickToPositionDom,hitTestFragment,hitTestTableCell,clickToPosition,detectTableInsertHover,TABLE_INSERT_HIDE_DELAY_MS,resolveHeaderFooter,measureBlocksWithFloats,findBodyPmSpans,findBodyEmptyRuns,resetCanvasContext,clearAllCaches,findBodyPmAnchors,measureParagraph,measureTableBlock,getCachedParagraphMeasure,setCachedParagraphMeasure,getPageTop}from'@eigenpal/docx-editor-core/layout-bridge';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {headerFooterToProseDoc,proseDocToBlocks,toProseDoc,createEmptyDoc,fromProseDoc}from'@eigenpal/docx-editor-core/prosemirror/conversion';import {en as en$1}from'@eigenpal/docx-editor-i18n';import {redo,undo,redoDepth,undoDepth}from'prosemirror-history';import {createPortal}from'react-dom';import {CellSelection}from'prosemirror-tables';import {EditorView}from'prosemirror-view';import'prosemirror-view/style/prosemirror.css';import'@eigenpal/docx-editor-core/prosemirror/editor.css';import {LayoutSelectionGate}from'@eigenpal/docx-editor-core/prosemirror/utils/LayoutSelectionGate';import {SIDEBAR_DOCUMENT_SHIFT,SIDEBAR_WIDTH,SIDEBAR_PAGE_GAP}from'@eigenpal/docx-editor-core/utils/sidebarConstants';import {layoutDocument,findPageIndexContainingPmPos,collectSectionConfigs,assertExhaustiveFlowBlock,DEFAULT_TEXTBOX_MARGINS,DEFAULT_TEXTBOX_WIDTH}from'@eigenpal/docx-editor-core/layout-engine';import {findVerticalScrollParentOrRoot}from'@eigenpal/docx-editor-core/utils/findVerticalScrollParent';import {resolveItemPositions}from'@eigenpal/docx-editor-core/plugin-api/resolveItemPositions';import {ErrorManager}from'@eigenpal/docx-editor-core';export{createDocumentWithText,createEmptyDocument}from'@eigenpal/docx-editor-core';import {AgentPanel}from'@eigenpal/docx-editor-agents/react';import {getInitials,formatDate,getCommentText,truncateText,getAvatarColor}from'@eigenpal/docx-editor-core/utils/comments';import {CARD_STYLE_EXPANDED,CARD_STYLE_COLLAPSED}from'@eigenpal/docx-editor-core/utils/cardStyles';import {extractTrackedChanges}from'@eigenpal/docx-editor-core/prosemirror/utils/extractTrackedChanges';import {createSuggestionModePlugin,setSuggestionMode}from'@eigenpal/docx-editor-core/prosemirror/plugins';import {createRoot}from'react-dom/client';function ii({showOutlineProp:e,pagedEditorRef:t,scrollContainerRef:o,isLoading:r}){let[n,d]=useState(e),s=useRef(false);s.current=n;let[i,u]=useState([]);useEffect(()=>{if(d(e),e){let h=t.current?.getView();h&&u(collectHeadings(h.state.doc));}},[e,t]);let l=useRef(null),p=useRef(null),[f,a]=useState(0),S=useCallback(h=>{if(p.current=h,l.current&&(l.current.disconnect(),l.current=null),!h){a(0);return}a(h.offsetHeight);let R=new ResizeObserver(()=>{a(h.offsetHeight);});R.observe(h),l.current=R;},[]);useEffect(()=>()=>{l.current?.disconnect();},[]);let[m,g]=useState(0);return useEffect(()=>{let h=o.current;if(!h)return;let R=0,b=()=>{R=0,g(h.scrollLeft);},c=()=>{R===0&&(R=requestAnimationFrame(b));};return b(),h.addEventListener("scroll",c,{passive:true}),()=>{h.removeEventListener("scroll",c),R!==0&&cancelAnimationFrame(R);}},[r,o]),{showOutline:n,setShowOutline:d,showOutlineRef:s,outlineHeadings:i,setHeadingInfos:u,toolbarHeight:f,toolbarRefCallback:S,editorScrollLeft:m}}function ai({pagedEditorRef:e,disableFindReplaceShortcuts:t,findReplace:o,hyperlinkDialog:r,tableSelection:n}){useEffect(()=>{let d=s=>{let u=navigator.platform.toUpperCase().indexOf("MAC")>=0?s.metaKey:s.ctrlKey;if(!u&&!s.shiftKey&&!s.altKey&&(s.key==="Delete"||s.key==="Backspace")){let l=e.current?.getView();if(l){let p=l.state.selection;if("$anchorCell"in p&&typeof p.forEachCell=="function"){let a=getTableContext(l.state);if(a.isInTable&&a.table){let S=0;a.table.descendants(g=>{(g.type.name==="tableCell"||g.type.name==="tableHeader")&&(S+=1);});let m=0;if(p.forEachCell(()=>{m+=1;}),S>0&&m>=S){s.preventDefault(),deleteTable(l.state,l.dispatch);return}}}}if(n.state.tableIndex!==null){s.preventDefault(),n.handleAction("deleteTable");return}}if(u&&!s.shiftKey&&!s.altKey){if(s.key.toLowerCase()==="f"){if(t)return;s.preventDefault();let l=window.getSelection(),p=l&&!l.isCollapsed?l.toString():"";o.openFind(p);}else if(s.key.toLowerCase()==="h"){if(t)return;s.preventDefault();let l=window.getSelection(),p=l&&!l.isCollapsed?l.toString():"";o.openReplace(p);}else if(s.key.toLowerCase()==="k"){s.preventDefault();let l=e.current?.getView();if(l){let p=getSelectedText$1(l.state),f=getHyperlinkAttrs$1(l.state);f?r.openEdit({url:f.href,displayText:p,tooltip:f.tooltip}):r.openInsert(p);}}}};return document.addEventListener("keydown",d),()=>{document.removeEventListener("keydown",d);}},[e,t,o,r,n]);}function li({agentRef:e,pagedEditorRef:t,containerRef:o,comments:r,documentName:n,onSave:d,onError:s,onPrint:i,onDocumentNameChange:u,loadBuffer:l,getActiveEditorView:p,focusActiveEditor:f}){let a=useRef(null),S=useRef(null),m=useCallback(async C=>{if(!e.current)return null;try{let y=e.current.getDocument(),w=t.current?.getDocument();w?.package?.document&&(y.package.document.content=w.package.document.content),y.package.document.comments=r,injectReplyRangeMarkers(y.package.document.content,r),injectTCReplyRangeMarkers(y.package.document.content,r);let P=C?.selective!==!1,x=t.current?.getView(),E;if(P&&x){let I=x.state,k=r.some(L=>L.parentId!=null);E={selective:{changedParaIds:getChangedParagraphIds(I),structuralChange:hasStructuralChanges(I)||k,hasUntrackedChanges:hasUntrackedChanges(I)}};}let T=await e.current.toBuffer(E);return x&&x.dispatch(clearTrackedChanges(x.state)),d?.(T),T}catch(y){return s?.(y instanceof Error?y:new Error("Failed to save document")),null}},[e,t,r,d,s]),g=useCallback(()=>{let C=o.current?.querySelector(".paged-editor__pages");if(!C){window.print(),i?.();return}let y=window.open("","_blank");if(!y){window.print(),i?.();return}let w=[];for(let x of Array.from(document.styleSheets))try{for(let E of Array.from(x.cssRules))E instanceof CSSFontFaceRule&&w.push(E.cssText);}catch{}let P=C.cloneNode(true);P.style.cssText="display: block; margin: 0; padding: 0;";for(let x of Array.from(P.querySelectorAll(".layout-page"))){let E=x;E.style.boxShadow="none",E.style.margin="0";}y.document.write(`<!DOCTYPE html>
|
|
2
2
|
<html><head><title>Print</title>
|
|
3
3
|
<style>
|
|
4
4
|
${w.join(`
|
|
@@ -9,8 +9,8 @@ body { background: white; }
|
|
|
9
9
|
.layout-page:last-child { break-after: auto; }
|
|
10
10
|
@page { margin: 0; size: auto; }
|
|
11
11
|
</style>
|
|
12
|
-
</head><body>${P.outerHTML}</body></html>`),y.document.close(),y.onload=()=>{y.print(),y.close();},setTimeout(()=>{y.closed||(y.print(),y.close());},1e3),i?.();},[o,i]),g=useCallback(async()=>{let x=await m();if(!x)return;let y=new Blob([x],{type:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}),w=URL.createObjectURL(y),P=window.document.createElement("a");P.href=w,P.download=`${(n?.trim()||"document").replace(/\.docx$/i,"")}.docx`,P.click(),setTimeout(()=>URL.revokeObjectURL(w),0);},[m,n]),S=useCallback(()=>{C.current?.click();},[]),b=useCallback(async x=>{try{let y=await readDocxFileFromInput(x.nativeEvent);if(!y)return;await l(y.buffer),d?.(y.name);}catch(y){s?.(y instanceof Error?y:new Error("Failed to open document"));}},[l,d,s]),u=useCallback(()=>{a.current?.click();},[]),v=useCallback(x=>{let y=x.target.files?.[0];if(!y)return;let w=p();if(!w)return;let P=new FileReader;P.onload=()=>{let R=P.result,E=new Image;E.onload=()=>{let T=E.naturalWidth,I=E.naturalHeight,k=612;if(T>k){let _=k/T;T=k,I=Math.round(I*_);}let F=`rId_img_${Date.now()}`,B=w.state.schema.nodes.image.create({src:R,alt:y.name,width:T,height:I,rId:F,wrapType:"inline",displayMode:"inline"}),{from:A}=w.state.selection,j=w.state.tr.insert(A,B);w.dispatch(j.scrollIntoView()),f();},E.src=R;},P.readAsDataURL(y),x.target.value="";},[p,f]);return {imageInputRef:a,docxInputRef:C,handleSave:m,handleDirectPrint:h,handleDownloadDocument:g,handleOpenDocument:S,handleDocxFileChange:b,handleInsertImageClick:u,handleImageFileChange:v}}function ui({document:e,readOnly:t,handleDocumentChange:o,getActiveEditorView:r}){let[n,c]=useState(false),s=useCallback(()=>c(true),[]),i=useCallback(S=>b=>{if(!e||t)return;let u={...e,package:{...e.package,document:{...e.package.document,finalSectionProperties:{...e.package.document.finalSectionProperties,[S]:b}}}};o(u);},[e,t,o]),d=useMemo(()=>i("marginLeft"),[i]),l=useMemo(()=>i("marginRight"),[i]),p=useMemo(()=>i("marginTop"),[i]),f=useMemo(()=>i("marginBottom"),[i]),a=useCallback(S=>{if(!e||t)return;let b={...e,package:{...e.package,document:{...e.package.document,finalSectionProperties:{...e.package.document.finalSectionProperties,...S}}}};o(b);},[e,t,o]),C=useCallback(S=>{let b=r();b&&setIndentLeft(S)(b.state,b.dispatch);},[r]),m=useCallback(S=>{let b=r();b&&setIndentRight(S)(b.state,b.dispatch);},[r]),h=useCallback(S=>{let b=r();b&&(S<0?setIndentFirstLine(-S,true)(b.state,b.dispatch):setIndentFirstLine(S,false)(b.state,b.dispatch));},[r]),g=useCallback(S=>{let b=r();b&&removeTabStop(S)(b.state,b.dispatch);},[r]);return {showPageSetup:n,setShowPageSetup:c,handleOpenPageSetup:s,handleLeftMarginChange:d,handleRightMarginChange:l,handleTopMarginChange:p,handleBottomMarginChange:f,handlePageSetupApply:a,handleIndentLeftChange:C,handleIndentRightChange:m,handleFirstLineIndentChange:h,handleTabStopRemove:g}}function fi({hyperlinkDialog:e,getActiveEditorView:t,focusActiveEditor:o}){let[r,n]=useState(null),c=useCallback(m=>{let h=t();if(!h)return;let g=m.url||"",S=m.tooltip,{empty:b}=h.state.selection;b&&m.displayText?insertHyperlink(m.displayText,g,S)(h.state,h.dispatch):b?m.displayText&&insertHyperlink(m.displayText,g,S)(h.state,h.dispatch):setHyperlink(g,S)(h.state,h.dispatch),e.close(),o();},[e,t,o]),s=useCallback(()=>{let m=t();m&&(removeHyperlink(m.state,m.dispatch),o());},[t,o]),i=useCallback(()=>{s(),e.close();},[e,s]),d=useCallback(m=>n(m),[]),l=useCallback(m=>{window.open(m,"_blank","noopener,noreferrer");},[]),p=useCallback(m=>{navigator.clipboard.writeText(m).catch(()=>{let h=document.createElement("textarea");h.value=m,h.style.position="fixed",h.style.opacity="0",document.body.appendChild(h),h.select(),document.execCommand("copy"),document.body.removeChild(h);});},[]),f=useCallback((m,h)=>{let g=t();if(!g)return;let S=findHyperlinkRangeAt(g.state);if(S){let b=g.state.schema.marks.hyperlink,{$from:u}=g.state.selection,v=b.create({href:h,tooltip:S.mark.attrs.tooltip}),x=g.state.schema.text(m,[...u.marks().filter(w=>w.type!==b),v]),y=g.state.tr.replaceWith(S.start,S.end,x);g.dispatch(y.scrollIntoView());}n(null),o();},[t,o]),a=useCallback(()=>{let m=t();if(!m)return;let h=findHyperlinkRangeAt(m.state,r?.href);if(!h)return;let g=m.state.schema.marks.hyperlink;m.dispatch(m.state.tr.removeMark(h.start,h.end,g).scrollIntoView()),n(null),o(),toast("Link removed");},[t,o,r]),C=useCallback(()=>{n(null);},[]);return {hyperlinkPopupData:r,setHyperlinkPopupData:n,handleHyperlinkSubmit:c,handleHyperlinkRemove:i,handleHyperlinkClick:d,handleHyperlinkPopupNavigate:l,handleHyperlinkPopupCopy:p,handleHyperlinkPopupEdit:f,handleHyperlinkPopupRemove:a,handleHyperlinkPopupClose:C}}function hi({document:e,containerRef:t,findReplace:o,handleDocumentChange:r}){let n=useRef(null),c=useCallback((p,f)=>{if(!e||!p.trim())return n.current=null,null;let a=(0, a$2.findInDocument)(e,p,f),C={matches:a,totalCount:a.length,currentIndex:0};return n.current=C,o.setMatches(a,0),a.length>0&&t.current&&(0, a$2.scrollToMatch)(t.current,a[0]),C},[e,t,o]),s=useCallback(()=>{if(!n.current||n.current.matches.length===0)return null;let p=o.goToNextMatch(),f=n.current.matches[p];return f&&t.current&&(0, a$2.scrollToMatch)(t.current,f),f||null},[t,o]),i=useCallback(()=>{if(!n.current||n.current.matches.length===0)return null;let p=o.goToPreviousMatch(),f=n.current.matches[p];return f&&t.current&&(0, a$2.scrollToMatch)(t.current,f),f||null},[t,o]),d=useCallback(p=>{if(!e||!n.current||n.current.matches.length===0)return false;let f=n.current.matches[n.current.currentIndex];if(!f)return false;try{let a=executeCommand(e,{type:"replaceText",range:{start:{paragraphIndex:f.paragraphIndex,offset:f.startOffset},end:{paragraphIndex:f.paragraphIndex,offset:f.endOffset}},text:p});return r(a),!0}catch(a){return console.error("Replace failed:",a),false}},[e,r]),l=useCallback((p,f,a)=>{if(!e||!p.trim())return 0;let C=(0, a$2.findInDocument)(e,p,a);if(C.length===0)return 0;let m=e,h=[...C].sort((g,S)=>g.paragraphIndex!==S.paragraphIndex?S.paragraphIndex-g.paragraphIndex:S.startOffset-g.startOffset);for(let g of h)try{m=executeCommand(m,{type:"replaceText",range:{start:{paragraphIndex:g.paragraphIndex,offset:g.startOffset},end:{paragraphIndex:g.paragraphIndex,offset:g.endOffset}},text:f});}catch(S){console.error("Replace failed for match:",g,S);}return r(m),n.current=null,o.setMatches([],0),C.length},[e,r,o]);return {findResultRef:n,handleFind:c,handleFindNext:s,handleFindPrevious:i,handleReplace:d,handleReplaceAll:l}}function vi({getActiveEditorView:e,focusActiveEditor:t,pagedEditorRef:o,lastSelectionRef:r,hyperlinkDialog:n,historyStateRef:c,getCachedStyleResolver:s}){let i=useCallback(f=>{let a=e();if(!a)return;a.focus();let C=a===o.current?.getView(),{from:m,to:h}=a.state.selection,g=r.current;if(C&&g&&(m!==g.from||h!==g.to))try{let S=a.state.tr.setSelection(TextSelection.create(a.state.doc,g.from,g.to));a.dispatch(S);}catch(S){console.warn("Could not restore selection:",S);}if(f==="bold")return void toggleBold(a.state,a.dispatch);if(f==="italic")return void toggleItalic(a.state,a.dispatch);if(f==="underline")return void toggleUnderline(a.state,a.dispatch);if(f==="strikethrough")return void toggleStrike(a.state,a.dispatch);if(f==="superscript")return void toggleSuperscript(a.state,a.dispatch);if(f==="subscript")return void toggleSubscript(a.state,a.dispatch);if(f==="bulletList")return void toggleBulletList(a.state,a.dispatch);if(f==="numberedList")return void toggleNumberedList(a.state,a.dispatch);if(f==="indent"){increaseListLevel(a.state,a.dispatch)||increaseIndent()(a.state,a.dispatch);return}if(f==="outdent"){decreaseListLevel(a.state,a.dispatch)||decreaseIndent()(a.state,a.dispatch);return}if(f==="clearFormatting")return void clearFormatting(a.state,a.dispatch);if(f==="setRtl")return void setRtl(a.state,a.dispatch);if(f==="setLtr")return void setLtr(a.state,a.dispatch);if(f==="insertLink"){let S=getSelectedText(a.state),b=getHyperlinkAttrs(a.state);b?n.openEdit({url:b.href,displayText:S,tooltip:b.tooltip}):n.openInsert(S);return}if(typeof f=="object")switch(f.type){case "alignment":setAlignment(f.value)(a.state,a.dispatch);break;case "textColor":{let S=f.value;typeof S=="string"?setTextColor({rgb:S.replace("#","")})(a.state,a.dispatch):S.auto?clearTextColor(a.state,a.dispatch):setTextColor(S)(a.state,a.dispatch);break}case "highlightColor":{let S=f.value?g$1(f.value):"";setHighlight(S||f.value)(a.state,a.dispatch);break}case "fontSize":setFontSize(d(f.value))(a.state,a.dispatch);break;case "fontFamily":setFontFamily(f.value)(a.state,a.dispatch);break;case "lineSpacing":setLineSpacing(f.value)(a.state,a.dispatch);break;case "applyStyle":{let S=c.current,b=S?.package.styles?s(S.package.styles):null;if(b){let u=b.resolveParagraphStyle(f.value);applyStyle(f.value,{paragraphFormatting:u.paragraphFormatting,runFormatting:u.runFormatting})(a.state,a.dispatch);}else applyStyle(f.value)(a.state,a.dispatch);break}}},[e,o,r,n,c,s]),d$1=useCallback((f,a)=>{let C=e();C&&(insertTable(f,a)(C.state,C.dispatch),t());},[e,t]),l=useCallback(()=>{let f=e();f&&(insertPageBreak(f.state,f.dispatch),t());},[e,t]),p=useCallback(()=>{let f=e();f&&(generateTOC(f.state,f.dispatch),t());},[e,t]);return {handleFormat:i,handleInsertTable:d$1,handleInsertPageBreak:l,handleInsertTOC:p}}function Ci({document:e,pmImageContext:t,zoom:o,getActiveEditorView:r,focusActiveEditor:n,pushDocument:c}){let[s,i]=useState(false),[d,l]=useState(false),[p,f]=useState(false),a=useCallback(b=>{let u=r();if(!u||!t)return;let v=t.pos,x=u.state.doc.nodeAt(v);if(!x||x.type.name!=="image")return;let y=toolbarValueToLayoutTarget(b);if(!y)return;let w;if(x.attrs.wrapType==="inline"&&y!=="inline"){let P=window.document.querySelector(`.layout-run-image[data-pm-start="${v}"]`),R=P?captureInlinePositionEmu(P,o):void 0;R&&(w={initialPositionEmu:R});}setImageWrapType(v,y,w)(u.state,u.dispatch),n();},[r,n,t,o]),C=useCallback(b=>{let u=r();if(!u||!t)return;let v=t.pos,x=u.state.doc.nodeAt(v);if(!x||x.type.name!=="image")return;let y=x.attrs.transform||"",w=y.match(/rotate\((-?\d+(?:\.\d+)?)deg\)/),P=w?parseFloat(w[1]):0,R=/scaleX\(-1\)/.test(y),E=/scaleY\(-1\)/.test(y);switch(b){case "rotateCW":P=(P+90)%360;break;case "rotateCCW":P=(P-90+360)%360;break;case "flipH":R=!R;break;case "flipV":E=!E;break}let T=[];P!==0&&T.push(`rotate(${P}deg)`),R&&T.push("scaleX(-1)"),E&&T.push("scaleY(-1)");let I=T.length>0?T.join(" "):null,k=u.state.tr.setNodeMarkup(v,void 0,{...x.attrs,transform:I});u.dispatch(k.scrollIntoView()),n();},[r,n,t]),m=useCallback(b=>{let u=r();if(!u||!t)return;let v=t.pos,x=u.state.doc.nodeAt(v);if(!x||x.type.name!=="image")return;let y=u.state.tr.setNodeMarkup(v,void 0,{...x.attrs,position:{horizontal:b.horizontal,vertical:b.vertical},distTop:b.distTop??x.attrs.distTop,distBottom:b.distBottom??x.attrs.distBottom,distLeft:b.distLeft??x.attrs.distLeft,distRight:b.distRight??x.attrs.distRight});u.dispatch(y.scrollIntoView()),n();},[r,n,t]),h=useCallback(()=>{l(true);},[]),g=useCallback(b=>{let u=r();if(!u||!t)return;let v=t.pos,x=u.state.doc.nodeAt(v);if(!x||x.type.name!=="image")return;let y=u.state.tr.setNodeMarkup(v,void 0,{...x.attrs,alt:b.alt??null,borderWidth:b.borderWidth??null,borderColor:b.borderColor??null,borderStyle:b.borderStyle??null,width:b.width??null,height:b.height??null});u.dispatch(y.scrollIntoView()),n();},[r,n,t]),S=useCallback((b,u)=>{if(!e?.package)return;let v={...e.package.document,finalSectionProperties:{...e.package.document.finalSectionProperties,footnotePr:b,endnotePr:u}};c({...e,package:{...e.package,document:v}});},[e,c]);return {imagePositionOpen:s,setImagePositionOpen:i,imagePropsOpen:d,setImagePropsOpen:l,footnotePropsOpen:p,setFootnotePropsOpen:f,handleImageWrapType:a,handleImageTransform:C,handleApplyImagePosition:m,handleOpenImageProperties:h,handleApplyImageProperties:g,handleApplyFootnoteProperties:S}}function Qo(e,t,o){if(!e||!t)return null;let r=e.querySelector(".paged-editor__pages");if(!r)return null;for(let n of findBodyPmAnchors(r)){let c=Number(n.dataset.pmStart),s=Number(n.dataset.pmEnd);if(o>=c&&o<=s)return n.getBoundingClientRect().top-t.getBoundingClientRect().top}return null}function xi(e){let t=e?.package?.document;return t?.sections?.[0]?.properties??t?.finalSectionProperties}function go(e,t){if(!t||!t.trim())return null;let o=null;return e.descendants((r,n)=>o!==null?false:r.isTextblock&&r.attrs?.paraId===t?(o={from:n,to:n+r.nodeSize},false):true),o}function $n(e){let t=[];return e.descendants(o=>!o.isText||!o.text?true:o.marks.some(r=>r.type.name==="insertion")?false:(t.push(o.text),true)),t.join("")}function Jo(e,t,o){if(t>=o)return "";let r=[];return e.nodesBetween(t,o,(n,c)=>{if(!n.isText||!n.text||n.marks.some(d=>d.type.name==="insertion"))return;let s=Math.max(t,c),i=Math.min(o,c+n.text.length);s<i&&r.push(n.text.slice(s-c,i-c));}),r.join("")}function en(e,t,o,r){if(!r)return null;let n="",c=[];e.nodesBetween(t,o,(f,a)=>{!f.isText||!f.text||f.marks.some(C=>C.type.name==="insertion")||(c.push({pos:a,len:f.text.length}),n+=f.text);});let s=n.indexOf(r);if(s===-1||n.indexOf(r,s+1)!==-1)return null;let d=0,l=t,p=t;for(let f of c){let a=d+f.len;if(d<=s&&s<a&&(l=f.pos+(s-d)),d<=s+r.length&&s+r.length<=a){p=f.pos+(s+r.length-d);break}d=a;}return {from:l,to:p}}var Yn=1,ct=-1,tn=new Map;function Gn(){return Yn++}function Si(e){e>=Yn&&(Yn=e+1);}function _t(e,t,o){return {id:Gn(),author:t,date:new Date().toISOString(),content:[{type:"paragraph",formatting:{},content:[{type:"run",formatting:{},content:[{type:"text",text:e}]}]}],...o!==void 0&&{parentId:o}}}function Pi({ref:e,agentRef:t,document:o,historyStateRef:r,pagedEditorRef:n,handleSave:c,handleDirectPrint:s,zoom:i,setZoom:d$1,scrollPageInfo:l,loadParsedDocument:p,loadBuffer:f,comments:a,setComments:C,setShowCommentsSidebar:m,contentChangeSubscribersRef:h,selectionChangeSubscribersRef:g,getCachedStyleResolver:S}){useImperativeHandle(e,()=>({getAgent:()=>t.current,getDocument:()=>o,getEditorRef:()=>n.current,save:c,setZoom:d$1,getZoom:()=>i,focus:()=>{n.current?.focus();},getCurrentPage:()=>l.currentPage,getTotalPages:()=>l.totalPages,scrollToPage:b=>{n.current?.scrollToPage(b);},scrollToPosition:b=>{n.current?.scrollToPosition(b);},openPrintPreview:s,print:s,loadDocument:p,loadDocumentBuffer:f,addComment:b=>{let u=n.current?.getView();if(!u)return null;let{schema:v}=u.state;if(!v.marks.comment)return null;let x=go(u.state.doc,b.paraId);if(!x)return null;let y=x.from,w=x.to;if(b.search){let E=en(u.state.doc,x.from,x.to,b.search);if(!E)return null;y=E.from,w=E.to;}let P=_t(b.text,b.author),R=v.marks.comment.create({commentId:P.id});return u.dispatch(u.state.tr.addMark(y,w,R)),C(E=>[...E,P]),m(true),P.id},replyToComment:(b,u,v)=>{if(!a.some(y=>y.id===b))return null;let x=_t(u,v,b);return C(y=>[...y,x]),x.id},resolveComment:b=>{C(u=>u.map(v=>v.id===b?{...v,done:true}:v));},proposeChange:b=>{let u=n.current?.getView();if(!u)return false;let{schema:v}=u.state;if(!v.marks.deletion||!v.marks.insertion)return false;let x=go(u.state.doc,b.paraId);if(!x)return false;let y=b.search==="",w=b.replaceWith==="",P,R;if(y)P=x.to-1,R=x.to-1;else {let A=en(u.state.doc,x.from,x.to,b.search);if(!A)return false;P=A.from,R=A.to;}let E=false;if(P<R&&(u.state.doc.nodesBetween(P,R,A=>{for(let j of A.marks)if(j.type===v.marks.insertion||j.type===v.marks.deletion)return E=true,false;return true}),E))return false;let T=Gn(),I=new Date().toISOString(),k=v.marks.deletion.create({revisionId:T,author:b.author,date:I}),F=v.marks.insertion.create({revisionId:T,author:b.author,date:I}),B=u.state.tr;if(y||(B=B.addMark(P,R,k)),!w){let A=v.text(b.replaceWith,[F]);B=B.insert(R,A);}return y&&w?false:(u.dispatch(B),m(true),true)},applyFormatting:b=>{let u=n.current?.getView();if(!u)return false;let{schema:v}=u.state,x=go(u.state.doc,b.paraId);if(!x)return false;let y=x.from+1,w=x.to-1;if(b.search){let E=en(u.state.doc,x.from,x.to,b.search);if(!E)return false;y=E.from,w=E.to;}if(y>=w)return true;let P=u.state.tr,R=b.marks;if(R.bold!==void 0&&v.marks.bold&&(P=R.bold?P.addMark(y,w,v.marks.bold.create()):P.removeMark(y,w,v.marks.bold)),R.italic!==void 0&&v.marks.italic&&(P=R.italic?P.addMark(y,w,v.marks.italic.create()):P.removeMark(y,w,v.marks.italic)),R.underline!==void 0&&v.marks.underline)if(R.underline){let E=typeof R.underline=="object"?R.underline.style:void 0;P=P.addMark(y,w,v.marks.underline.create({style:E??"single"}));}else P=P.removeMark(y,w,v.marks.underline);if(R.strike!==void 0&&v.marks.strike&&(P=R.strike?P.addMark(y,w,v.marks.strike.create()):P.removeMark(y,w,v.marks.strike)),R.color!==void 0&&v.marks.textColor&&(R.color&&(R.color.rgb||R.color.themeColor)?P=P.addMark(y,w,v.marks.textColor.create({rgb:R.color.rgb??null,themeColor:R.color.themeColor??null})):P=P.removeMark(y,w,v.marks.textColor)),R.highlight!==void 0&&v.marks.highlight)if(R.highlight){let E=g$1(R.highlight);P=P.addMark(y,w,v.marks.highlight.create({color:E||R.highlight}));}else P=P.removeMark(y,w,v.marks.highlight);return R.fontSize!==void 0&&v.marks.fontSize&&(R.fontSize>0?P=P.addMark(y,w,v.marks.fontSize.create({size:d(R.fontSize)})):P=P.removeMark(y,w,v.marks.fontSize)),R.fontFamily!==void 0&&v.marks.fontFamily&&(R.fontFamily&&(R.fontFamily.ascii||R.fontFamily.hAnsi)?P=P.addMark(y,w,v.marks.fontFamily.create({ascii:R.fontFamily.ascii??null,hAnsi:R.fontFamily.hAnsi??R.fontFamily.ascii??null})):P=P.removeMark(y,w,v.marks.fontFamily)),u.dispatch(P),true},setParagraphStyle:b=>{let u=n.current?.getView();if(!u)return false;let v=go(u.state.doc,b.paraId);if(!v)return false;let x=r.current,y=x?.package?.styles?S(x.package.styles):null;if(y&&!y.hasParagraphStyle(b.styleId))return false;let w=u.state.doc.resolve(v.from+1),P=u.state.doc.resolve(v.to-1),R=TextSelection.between(w,P),E=u.state.apply(u.state.tr.setSelection(R)),T=y?(()=>{let k=y.resolveParagraphStyle(b.styleId);return applyStyle(b.styleId,{paragraphFormatting:k.paragraphFormatting,runFormatting:k.runFormatting})})():applyStyle(b.styleId),I=false;return T(E,k=>{I=true,k.setSelection(u.state.selection.map(k.doc,k.mapping)),u.dispatch(k);}),I},getPageContent:b=>{let u=n.current?.getLayout();if(!u)return null;let v=u.pages[b-1];if(!v)return null;let x=n.current?.getView();if(!x)return null;let y=x.state.doc,w=new Set,P=[];for(let E of v.fragments){if(E.kind!=="paragraph")continue;let T=E.pmStart;if(T==null)continue;let I=y.nodeAt(T);if(!I||!I.isTextblock)continue;let k=I.attrs?.paraId;!k||w.has(k)||(w.add(k),P.push({paraId:k,text:$n(I),styleId:I.attrs?.styleId??void 0}));}let R=P.map(E=>`[${E.paraId}] ${E.text}`).join(`
|
|
13
|
-
`);return {pageNumber:b,text:R,paragraphs:P}},scrollToParaId:b=>n.current?.scrollToParaId(b)??false,findInDocument:(b,u)=>{let v=n.current?.getView();if(!v||!b)return [];let x=u?.caseSensitive??false,y=u?.limit??20,w=x?b:b.toLowerCase(),P=[];return v.state.doc.descendants(R=>{if(P.length>=y)return false;if(!R.isTextblock)return true;let E=R.attrs?.paraId;if(!E)return false;let T=$n(R),I=x?T:T.toLowerCase(),k=I.indexOf(w);if(k===-1||I.indexOf(w,k+1)!==-1)return false;let F=T.slice(k,k+b.length),B=40;return P.push({paraId:E,match:F,before:T.slice(Math.max(0,k-B),k),after:T.slice(k+b.length,k+b.length+B)}),false}),P},getSelectionInfo:()=>{let b=n.current?.getView();if(!b)return null;let{selection:u,doc:v}=b.state,x=u.$from,y=x.depth;for(;y>0&&!x.node(y).isTextblock;)y--;let w=y>0?x.node(y):null;if(!w)return null;let P=w.attrs?.paraId??null,R=x.start(y),E=R+w.content.size,T=Jo(v,R,u.from),I=Jo(v,u.from,u.to),k=Jo(v,u.to,E);return {paraId:P,selectedText:I,paragraphText:T+I+k,before:T,after:k}},getComments:()=>a,onContentChange:b=>(h.current.add(b),()=>{h.current.delete(b);}),onSelectionChange:b=>(g.current.add(b),()=>{g.current.delete(b);})}),[o,i,l,c,s,p,f,a]);}var Y=e=>({style:"single",size:4,color:{rgb:e}}),bu=[{id:"TableNormal",name:"Normal Table",look:{firstRow:false,lastRow:false,noHBand:true,noVBand:true}},{id:"TableGrid",name:"Table Grid",tableBorders:{top:Y("000000"),bottom:Y("000000"),left:Y("000000"),right:Y("000000"),insideH:Y("000000"),insideV:Y("000000")},look:{firstRow:false,lastRow:false,noHBand:true,noVBand:true}},{id:"TableGridLight",name:"Grid Table Light",tableBorders:{top:Y("BFBFBF"),bottom:Y("BFBFBF"),left:Y("BFBFBF"),right:Y("BFBFBF"),insideH:Y("BFBFBF"),insideV:Y("BFBFBF")},look:{firstRow:true,lastRow:false,noHBand:true,noVBand:true},conditionals:{firstRow:{bold:true,borders:{bottom:Y("000000")}}}},{id:"PlainTable1",name:"Plain Table 1",tableBorders:{top:Y("BFBFBF"),bottom:Y("BFBFBF"),insideH:Y("BFBFBF")},look:{firstRow:true,lastRow:false,noHBand:true,noVBand:true},conditionals:{firstRow:{bold:true}}},{id:"PlainTable2",name:"Plain Table 2",look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,borders:{bottom:Y("7F7F7F")}},band1Horz:{backgroundColor:"#F2F2F2"}}},{id:"PlainTable3",name:"Plain Table 3",look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#A5A5A5"},band1Horz:{backgroundColor:"#E7E7E7"}}},{id:"PlainTable4",name:"Plain Table 4",look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#000000"},band1Horz:{backgroundColor:"#F2F2F2"}}},{id:"GridTable1Light-Accent1",name:"Grid Table 1 Light",tableBorders:{top:Y("B4C6E7"),bottom:Y("B4C6E7"),left:Y("B4C6E7"),right:Y("B4C6E7"),insideH:Y("B4C6E7"),insideV:Y("B4C6E7")},look:{firstRow:true,lastRow:false,noHBand:true,noVBand:true},conditionals:{firstRow:{bold:true,borders:{bottom:Y("4472C4")}}}},{id:"GridTable4-Accent1",name:"Grid Table 4 Accent 1",tableBorders:{top:Y("4472C4"),bottom:Y("4472C4"),left:Y("4472C4"),right:Y("4472C4"),insideH:Y("4472C4"),insideV:Y("4472C4")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#4472C4"},band1Horz:{backgroundColor:"#D6E4F0"}}},{id:"GridTable5Dark-Accent1",name:"Grid Table 5 Dark",tableBorders:{top:Y("FFFFFF"),bottom:Y("FFFFFF"),left:Y("FFFFFF"),right:Y("FFFFFF"),insideH:Y("FFFFFF"),insideV:Y("FFFFFF")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#4472C4"},band1Horz:{backgroundColor:"#D6E4F0"},band2Horz:{backgroundColor:"#B4C6E7"}}},{id:"ListTable3-Accent2",name:"List Table 3 Accent 2",tableBorders:{top:Y("ED7D31"),bottom:Y("ED7D31")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#ED7D31"},band1Horz:{backgroundColor:"#FBE4D5"}}},{id:"ListTable4-Accent3",name:"List Table 4 Accent 3",tableBorders:{top:Y("A5A5A5"),bottom:Y("A5A5A5"),insideH:Y("A5A5A5")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#A5A5A5"},band1Horz:{backgroundColor:"#EDEDED"}}},{id:"GridTable4-Accent5",name:"Grid Table 4 Accent 5",tableBorders:{top:Y("5B9BD5"),bottom:Y("5B9BD5"),left:Y("5B9BD5"),right:Y("5B9BD5"),insideH:Y("5B9BD5"),insideV:Y("5B9BD5")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#5B9BD5"},band1Horz:{backgroundColor:"#DEEAF6"}}},{id:"GridTable4-Accent6",name:"Grid Table 4 Accent 6",tableBorders:{top:Y("70AD47"),bottom:Y("70AD47"),left:Y("70AD47"),right:Y("70AD47"),insideH:Y("70AD47"),insideV:Y("70AD47")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#70AD47"},band1Horz:{backgroundColor:"#E2EFDA"}}}];function Ti(e){return bu.find(t=>t.id===e)}function Ei({getActiveEditorView:e,focusActiveEditor:t,tableSelection:o,borderSpecRef:r,historyStateRef:n,getCachedStyleResolver:c}){let[s,i]=useState(false),[d,l]=useState({isOpen:false,initialRows:1,initialCols:2,minRows:1,minCols:1,source:null,capturedCellRow:null,capturedCellCol:null}),p=useCallback(()=>{let m=e(),h=m?getSplitCellDialogConfig(m.state):null,g=h?null:o.getSplitCellConfig(),S=h??g;S&&l({isOpen:true,...S,source:h?"pm":"legacy",capturedCellRow:h?.capturedCellRow??null,capturedCellCol:h?.capturedCellCol??null});},[e,o]),f=useCallback(m=>{let h=e();if(!h){m==="splitCell"?p():typeof m!="object"&&o.handleAction(m);return}switch(m){case "addRowAbove":addRowAbove(h.state,h.dispatch);break;case "addRowBelow":addRowBelow(h.state,h.dispatch);break;case "addColumnLeft":addColumnLeft(h.state,h.dispatch);break;case "addColumnRight":addColumnRight(h.state,h.dispatch);break;case "deleteRow":deleteRow(h.state,h.dispatch);break;case "deleteColumn":deleteColumn(h.state,h.dispatch);break;case "deleteTable":deleteTable(h.state,h.dispatch);break;case "selectTable":selectTable(h.state,h.dispatch);break;case "selectRow":selectRow(h.state,h.dispatch);break;case "selectColumn":selectColumn(h.state,h.dispatch);break;case "mergeCells":mergeCells(h.state,h.dispatch);break;case "splitCell":p();break;case "borderAll":setAllTableBorders(h.state,h.dispatch,r.current);break;case "borderOutside":setOutsideTableBorders(h.state,h.dispatch,r.current);break;case "borderInside":setInsideTableBorders(h.state,h.dispatch,r.current);break;case "borderNone":removeTableBorders(h.state,h.dispatch);break;case "borderTop":setCellBorder("top",r.current,true)(h.state,h.dispatch);break;case "borderBottom":setCellBorder("bottom",r.current,true)(h.state,h.dispatch);break;case "borderLeft":setCellBorder("left",r.current,true)(h.state,h.dispatch);break;case "borderRight":setCellBorder("right",r.current,true)(h.state,h.dispatch);break;default:if(typeof m=="object"){if(m.type==="cellFillColor")setCellFillColor(m.color)(h.state,h.dispatch);else if(m.type==="borderColor"){let g=m.color.replace(/^#/,"");r.current={...r.current,color:{rgb:g}},setTableBorderColor(m.color)(h.state,h.dispatch);}else if(m.type==="borderWidth")r.current={...r.current,size:m.size},setTableBorderWidth(m.size)(h.state,h.dispatch);else if(m.type==="cellBorder")setCellBorder(m.side,{style:m.style,size:m.size,color:{rgb:m.color.replace(/^#/,"")}})(h.state,h.dispatch);else if(m.type==="cellVerticalAlign")setCellVerticalAlign(m.align)(h.state,h.dispatch);else if(m.type==="cellMargins")setCellMargins(m.margins)(h.state,h.dispatch);else if(m.type==="cellTextDirection")setCellTextDirection(m.direction)(h.state,h.dispatch);else if(m.type==="toggleNoWrap")toggleNoWrap()(h.state,h.dispatch);else if(m.type==="rowHeight")setRowHeight(m.height,m.rule)(h.state,h.dispatch);else if(m.type==="toggleHeaderRow")toggleHeaderRow()(h.state,h.dispatch);else if(m.type==="distributeColumns")distributeColumns()(h.state,h.dispatch);else if(m.type==="autoFitContents")autoFitContents()(h.state,h.dispatch);else if(m.type==="openTableProperties")i(true);else if(m.type==="applyTableStyle"){let g=Ti(m.styleId),S=n.current;if(!g&&S?.package.styles){let u=c(S.package.styles).getStyle(m.styleId);if(u){if(g={id:u.styleId,name:u.name??u.styleId},u.tblPr?.borders){let v=u.tblPr.borders;g.tableBorders={};for(let x of ["top","bottom","left","right","insideH","insideV"]){let y=v[x];y&&(g.tableBorders[x]={style:y.style,size:y.size,color:y.color?.rgb?{rgb:y.color.rgb}:void 0});}}if(u.tblStylePr){g.conditionals={};for(let v of u.tblStylePr){let x={};if(v.tcPr?.shading?.fill&&(x.backgroundColor=`#${v.tcPr.shading.fill}`),v.tcPr?.borders){let y={};for(let w of ["top","bottom","left","right"]){let P=v.tcPr.borders[w];P&&(y[w]={style:P.style,size:P.size,color:P.color?.rgb?{rgb:P.color.rgb}:void 0});}x.borders=y;}v.rPr?.bold&&(x.bold=true),v.rPr?.color?.rgb&&(x.color=`#${v.rPr.color.rgb}`),g.conditionals[v.type]=x;}}g.look={firstRow:true,lastRow:false,noHBand:false,noVBand:true};}}g&&applyTableStyle({styleId:g.id,tableBorders:g.tableBorders,conditionals:g.conditionals,look:g.look})(h.state,h.dispatch);}}else o.handleAction(m);}t();},[o,e,t,p,r,n,c]),a=useCallback(()=>{l(m=>({...m,isOpen:false,source:null,capturedCellRow:null,capturedCellCol:null}));},[]),C=useCallback((m,h)=>{if(d.source==="legacy"){o.applySplitCell(m,h),t();return}let g=e();g&&(splitActiveTableCell(g.state,g.dispatch,m,h,d.capturedCellRow??void 0,d.capturedCellCol??void 0),t());},[t,e,d.source,d.capturedCellRow,d.capturedCellCol,o]);return {tablePropsOpen:s,setTablePropsOpen:i,splitCellDialogState:d,openSplitCellDialog:p,handleTableAction:f,handleSplitCellDialogClose:a,handleSplitCellDialogApply:C}}function Ii({document:e,pushDocument:t,hfEditorRef:o,containerRef:r,initialSectionProperties:n,finalSectionProperties:c,hfEditPosition:s,setHfEditPosition:i,hfEditIsFirstPage:d,setHfEditIsFirstPage:l}){let{headerContent:p,footerContent:f,firstPageHeaderContent:a,firstPageFooterContent:C}=useMemo(()=>{let{header:u,footer:v,firstHeader:x,firstFooter:y}=resolveHeaderFooter(e??null,c??n);return {headerContent:u,footerContent:v,firstPageHeaderContent:x,firstPageFooterContent:y}},[e,n,c]),m=useCallback((u,v)=>{let y=e?.package?.document?.finalSectionProperties?.titlePg===true&&(v??1)===1,w=y?u==="header"?a:C:u==="header"?p:f;if(l(y),w){i(u);return}if(!e?.package)return;let P=e.package,R=P.document?.finalSectionProperties;if(!R)return;let E=y?"first":"default",T=`rId_new_${u}_${E}`,I={type:u==="header"?"header":"footer",hdrFtrType:E,content:[{type:"paragraph",content:[]}]},k=u==="header"?"headers":"footers",F=new Map(P[k]??[]);F.set(T,I);let B=u==="header"?"headerReferences":"footerReferences",A=R[B]??[],j={type:E,rId:T},_=P.relationships,V=new Set;for(let ne of _?.values()??[])ne.target&&V.add(ne.target);let oe=1;for(;V.has(`${u}${oe}.xml`);)oe++;let ie=u==="header"?"http://schemas.openxmlformats.org/officeDocument/2006/relationships/header":"http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer",Q=new Map(_);Q.set(T,{id:T,type:ie,target:`${u}${oe}.xml`});let ae={...e,package:{...P,[k]:F,relationships:Q,document:P.document?{...P.document,finalSectionProperties:{...R,[B]:[...A,j]}}:P.document}};t(ae),i(u);},[p,f,a,C,e,t,i,l]),h=useCallback(u=>{if(!s||!e?.package){i(null);return}let v=e.package,x=v.document?.finalSectionProperties,y=s==="header"?x?.headerReferences:x?.footerReferences,w=d?"first":"default",P=y?.find(T=>T.type===w)??y?.find(T=>T.type==="default")??y?.find(T=>T.type==="first")??y?.[0],R=s==="header"?"headers":"footers",E=v[R];if(P?.rId&&E){let T=E.get(P.rId),I={type:s,hdrFtrType:P.type,...T,content:u},k=new Map(E);k.set(P.rId,I);let F={...e,package:{...v,[R]:k}};t(F);}i(null);},[s,d,e,t,i]),g=useCallback(()=>{if(!s)return;let u=o.current?.getView();if(u){let v=proseDocToBlocks(u.state.doc);h(v);}else i(null);},[s,h,o,i]),S=useCallback(()=>{if(!s||!e?.package){i(null);return}let u=e.package,v=u.document?.finalSectionProperties,x=s==="header"?"headerReferences":"footerReferences",y=s==="header"?"headers":"footers",w=v?.[x],P=d?"first":"default",R=w?.find(E=>E.type===P)??w?.find(E=>E.type==="default")??w?.find(E=>E.type==="first")??w?.[0];if(R?.rId){let E=new Map(u[y]??[]);E.delete(R.rId);let T=(w??[]).filter(k=>k.rId!==R.rId),I={...e,package:{...u,[y]:E,document:u.document?{...u.document,finalSectionProperties:{...v,[x]:T}}:u.document}};t(I);}i(null);},[s,d,e,t,i]),b=useCallback(u=>{let v=r.current?.querySelector(".paged-editor__pages");if(!v)return null;let x=u==="header"?".layout-page-header":".layout-page-footer";return v.querySelector(x)},[r]);return {headerContent:p,footerContent:f,firstPageHeaderContent:a,firstPageFooterContent:C,handleHeaderFooterDoubleClick:m,handleHeaderFooterSave:h,handleBodyClick:g,handleRemoveHeaderFooter:S,getHfTargetElement:b}}function Mi({documentBuffer:e,initialDocument:t,externalContent:o,history:r,agentRef:n,pagedEditorRef:c,setLoadingState:s,setComments:i,setShowCommentsSidebar:d,onError:l,resetForNewDocument:p,commentsLoadedRef:f}){let a=useRef(0),C=useCallback(h=>{p(),r.reset(h),s({isLoading:false,parseError:null}),loadDocumentFonts(h).catch(g=>{console.warn("Failed to load document fonts:",g);});},[p,r,s]),m=useCallback(async h=>{let g=++a.current;p(),s({isLoading:true,parseError:null});try{let S=await parseDocx(h);if(a.current!==g)return;C(S);}catch(S){if(a.current!==g)return;let b=S instanceof Error?S.message:"Failed to parse document";s({isLoading:false,parseError:b}),l?.(S instanceof Error?S:new Error(b));}},[p,C,l,s]);return useEffect(()=>{if(!o){if(!e){t&&C(t);return}m(e);}},[e,t,o]),useEffect(()=>{r.state?n.current=new DocumentAgent(r.state):n.current=null;},[r.state,n]),useEffect(()=>{if(f.current)return;let h=r.state;if(!h)return;let g=h.package?.document?.comments;if(g&&g.length>0){i(g),d(true),f.current=true;let S=g.reduce((u,v)=>Math.max(u,v.id),0),b=c.current?.getView();b&&b.state.doc.descendants(u=>{for(let v of u.marks)v.attrs.revisionId!=null&&(S=Math.max(S,v.attrs.revisionId));}),Si(S);}},[r.state,c,i,d,f]),{loadParsedDocument:C,loadBuffer:m}}var np={inline:"wrap_text",squareLeft:"format_image_left",squareRight:"format_image_right",behind:"flip_to_back",inFront:"flip_to_front"},yo=18,Li=({isOpen:e,position:t,currentWrapType:o,currentCssFloat:r,onApplyLayout:n,textActions:c,onTextAction:s,onOpenProperties:i,onClose:d})=>{let{t:l}=b(),p=useRef(null),[f,a]=useState(0),C=useMemo(()=>deriveLayoutChoice(o,r),[o,r]),m=useMemo(()=>IMAGE_LAYOUT_OPTIONS.filter(u=>isImageLayoutOptionEnabled(u,o)),[o]),h$1=useMemo(()=>(c??[]).filter(u=>!u.disabled),[c]),g=i?1:0,S=g+m.length+h$1.length;useEffect(()=>{if(!e)return;let u=x=>{p.current&&!p.current.contains(x.target)&&d();},v=setTimeout(()=>{document.addEventListener("mousedown",u);},0);return ()=>{clearTimeout(v),document.removeEventListener("mousedown",u);}},[e,d]),useEffect(()=>{if(!e)return;let u=v=>{if(v.key==="Escape"){v.preventDefault(),d();return}let x=Math.max(1,S);if(v.key==="ArrowDown")v.preventDefault(),a(y=>(y+1)%x);else if(v.key==="ArrowUp")v.preventDefault(),a(y=>(y-1+x)%x);else if(v.key==="Enter"){if(v.preventDefault(),g&&f===0)i?.(),d();else if(f<g+m.length)n(m[f-g].choice),d();else if(s){let y=h$1[f-g-m.length];y&&(s(y.action),d());}}};return document.addEventListener("keydown",u),()=>document.removeEventListener("keydown",u)},[e,f,m,h$1,S,g,n,i,s,d]),useEffect(()=>{if(!e)return;let u=C?m.findIndex(v=>v.choice===C):-1;a(u>=0?g+u:0);},[e,C,m,g]);let b$2=useCallback(()=>{let v=IMAGE_LAYOUT_OPTIONS.length,x=c?.length??0,y=v*36+x*32+(x>0?9:0)+16,w=t.x,P=t.y;return typeof window<"u"&&(w+260>window.innerWidth&&(w=window.innerWidth-260-10),P+y>window.innerHeight&&(P=window.innerHeight-y-10),w<10&&(w=10),P<10&&(P=10)),{position:"fixed",top:P,left:w,minWidth:260,background:"white",border:"1px solid var(--doc-border-light, #e0e0e0)",borderRadius:"8px",boxShadow:"0 2px 10px rgba(0, 0, 0, 0.15)",zIndex:h.contextMenu,padding:"4px 0",overflow:"hidden"}},[t,c]);return e?jsxs("div",{ref:p,className:"docx-image-context-menu",style:b$2(),role:"menu","aria-label":l("imageWrap.menu.ariaLabel"),"data-testid":"image-context-menu",children:[i&&jsxs(Fragment,{children:[jsxs("button",{type:"button",role:"menuitem","data-action":"open-properties",onClick:()=>{i(),d();},onMouseEnter:()=>a(0),style:{display:"flex",alignItems:"center",gap:"10px",width:"100%",padding:"8px 12px",border:"none",background:f===0?"var(--doc-primary-light, #eef4ff)":"transparent",cursor:"pointer",fontSize:"13px",color:"var(--doc-text, #222)",textAlign:"left"},children:[jsx("span",{style:{display:"flex",color:"var(--doc-text-muted, #666)",width:yo},children:jsx(b$1,{name:"settings",size:yo})}),jsx("span",{style:{flex:1},children:l("imageWrap.menu.imageProperties")})]}),jsx("div",{style:{height:1,background:"var(--doc-border-light, #e0e0e0)",margin:"4px 0"},role:"separator"})]}),IMAGE_LAYOUT_OPTIONS.map(u=>{let v=u.choice===C,x=isImageLayoutOptionEnabled(u,o),y=x?g+m.findIndex(R=>R.choice===u.choice):-1,w=y>=0&&y===f,P=l(`imageWrap.menuDesc.${u.i18nDescKey}`);return jsxs("button",{type:"button",role:"menuitem","data-wrap-type":u.choice,"data-current":v?"true":"false","data-disabled":x?"false":"true",disabled:!x,onClick:()=>{x&&(n(u.choice),d());},onMouseEnter:()=>{y>=0&&a(y);},title:P,style:{display:"flex",alignItems:"center",gap:"10px",width:"100%",padding:"8px 12px",border:"none",background:w?"var(--doc-primary-light, #eef4ff)":"transparent",cursor:x?"pointer":"not-allowed",fontSize:"13px",color:x?"var(--doc-text, #222)":"var(--doc-text-placeholder, #999)",textAlign:"left",opacity:x?1:.55},children:[jsx("span",{style:{display:"flex",color:v?"var(--doc-primary, #2563eb)":"var(--doc-text-muted, #666)",width:yo},children:jsx(b$1,{name:np[u.iconHint],size:yo})}),jsx("span",{style:{flex:1},children:l(`imageWrap.menu.${u.i18nLabelKey}`)}),v&&jsx("span",{style:{fontSize:"11px",color:"var(--doc-primary, #2563eb)"},"aria-label":l("toolbar.imageWrap.current"),children:"\u25CF"})]},u.choice)}),c&&c.length>0&&jsxs(Fragment,{children:[jsx("div",{style:{height:1,background:"var(--doc-border-light, #e0e0e0)",margin:"4px 0"},role:"separator"}),c.map((u,v)=>{let x=u.disabled?-1:g+m.length+h$1.findIndex(w=>w.action===u.action),y=x===f&&!u.disabled;return jsxs(wl.Fragment,{children:[jsxs("button",{type:"button",role:"menuitem","data-action":u.action,"data-disabled":u.disabled?"true":"false",disabled:u.disabled,onClick:()=>{u.disabled||!s||(s(u.action),d());},onMouseEnter:()=>{x>=0&&a(x);},style:{display:"flex",alignItems:"center",gap:"10px",width:"100%",padding:"7px 12px",border:"none",background:y?"var(--doc-primary-light, #eef4ff)":"transparent",cursor:u.disabled?"not-allowed":"pointer",fontSize:"13px",color:u.disabled?"var(--doc-text-placeholder, #999)":"var(--doc-text, #222)",textAlign:"left",opacity:u.disabled?.55:1},children:[jsx("span",{style:{width:yo},"aria-hidden":"true"}),jsx("span",{style:{flex:1},children:u.label}),u.shortcut&&jsx("span",{style:{fontSize:"11px",color:"var(--doc-text-muted, #888)",fontFamily:"monospace"},children:u.shortcut})]}),u.dividerAfter&&jsx("div",{style:{height:1,background:"var(--doc-border-light, #e0e0e0)",margin:"4px 0"},role:"separator"})]},`${u.action}-${v}`)})]})]}):null};function Hi(){let[e,t]=useState(false),[o,r]=useState({x:0,y:0}),[n,c]=useState("inline"),[s,i]=useState(null),[d,l]=useState(null),[p,f]=useState(null),a=useCallback(m=>{r({x:m.x,y:m.y}),c(m.wrapType),i(m.cssFloat??null),l(m.pos),f(m.inlinePositionEmu??null),t(true);},[]),C=useCallback(()=>{t(false),l(null),f(null);},[]);return {isOpen:e,position:o,currentWrapType:n,currentCssFloat:s,imagePos:d,inlinePositionEmu:p,openForImage:a,closeMenu:C}}function Ni({getActiveEditorView:e,focusActiveEditor:t,openSplitCellDialog:o,scrollContainerRef:r,editorContentRef:n,i18n:c,onAddComment:s}){let{t:i}=b(),[d,l]=useState({isOpen:false,position:{x:0,y:0},hasSelection:false,cursorInTable:false,tableContext:null}),p=Hi(),f=useCallback(b=>{let u=b.target;if(u?.closest(".paged-editor__pages")&&!u.closest(".hf-inline-editor"))return;b.preventDefault(),b.stopPropagation();let v=e(),x=v?getTableContext(v.state):{isInTable:false},{from:y,to:w}=v?.state.selection??{from:0,to:0},P=y!==w;l({isOpen:true,position:{x:b.clientX,y:b.clientY},hasSelection:P,cursorInTable:x.isInTable,tableContext:x.isInTable?x:null});},[e]),a=useCallback(b=>{if(b.image){p.openForImage({x:b.x,y:b.y,wrapType:b.image.wrapType,cssFloat:b.image.cssFloat,pos:b.image.pos,inlinePositionEmu:b.image.inlinePositionEmu});return}let u=e(),v=u?getTableContext(u.state):{isInTable:false};l({isOpen:true,position:b,hasSelection:b.hasSelection,cursorInTable:v.isInTable,tableContext:v.isInTable?v:null});},[e,p]),C=useCallback(b=>{let u=e();if(!u||p.imagePos===null)return;let v=p.inlinePositionEmu?{initialPositionEmu:p.inlinePositionEmu}:void 0;setImageWrapType(p.imagePos,b,v)(u.state,u.dispatch);},[e,p.imagePos,p.inlinePositionEmu]),m=useMemo(()=>[{action:"cut",label:i("contextMenu.cut"),shortcut:a$1(i("contextMenu.cutShortcut"))},{action:"copy",label:i("contextMenu.copy"),shortcut:a$1(i("contextMenu.copyShortcut"))},{action:"paste",label:i("contextMenu.paste"),shortcut:a$1(i("contextMenu.pasteShortcut")),dividerAfter:true},{action:"delete",label:i("contextMenu.delete"),shortcut:a$1(i("contextMenu.deleteShortcut"))}],[i]),h=useCallback(()=>{l({isOpen:false,position:{x:0,y:0},hasSelection:false,cursorInTable:false,tableContext:null});},[]),g=useMemo(()=>{let b=[{action:"cut",label:i("contextMenu.cut"),shortcut:a$1(i("contextMenu.cutShortcut"))},{action:"copy",label:i("contextMenu.copy"),shortcut:a$1(i("contextMenu.copyShortcut"))},{action:"paste",label:i("contextMenu.paste"),shortcut:a$1(i("contextMenu.pasteShortcut"))},{action:"pasteAsPlainText",label:i("contextMenu.pastePlainText"),shortcut:a$1(i("contextMenu.pastePlainTextShortcut")),dividerAfter:true},{action:"delete",label:i("contextMenu.delete"),shortcut:a$1(i("contextMenu.deleteShortcut")),dividerAfter:!d.hasSelection&&!d.cursorInTable}];return d.hasSelection&&b.push({action:"addComment",label:"Comment",dividerAfter:!d.cursorInTable}),d.cursorInTable&&b.push({action:"addRowAbove",label:"Insert row above"},{action:"addRowBelow",label:"Insert row below"},{action:"deleteRow",label:"Delete row",dividerAfter:true},{action:"addColumnLeft",label:"Insert column left"},{action:"addColumnRight",label:"Insert column right"},{action:"deleteColumn",label:"Delete column"},{action:"mergeCells",label:c?.table?.mergeCells??en$1.table.mergeCells,disabled:!d.tableContext?.hasMultiCellSelection},{action:"splitCell",label:c?.table?.splitCell??en$1.table.splitCell,disabled:!d.tableContext?.canSplitCell,dividerAfter:true}),b.push({action:"selectAll",label:i("contextMenu.selectAll"),shortcut:a$1(i("contextMenu.selectAllShortcut"))}),b},[d.hasSelection,d.cursorInTable,d.tableContext,c,i]),S=useCallback(async b=>{let u=e();if(u)switch(t(),b){case "cut":document.execCommand("cut");break;case "copy":document.execCommand("copy");break;case "paste":{try{let v=await navigator.clipboard.read(),x="",y="";for(let R of v)R.types.includes("text/html")&&(x=await(await R.getType("text/html")).text()),R.types.includes("text/plain")&&(y=await(await R.getType("text/plain")).text());let w=new DataTransfer;x&&w.items.add(x,"text/html"),y&&w.items.add(y,"text/plain");let P=new ClipboardEvent("paste",{clipboardData:w,bubbles:!0,cancelable:!0});u.dom.dispatchEvent(P);}catch{try{let v=await navigator.clipboard.readText();v&&u.dispatch(u.state.tr.insertText(v));}catch{}}break}case "pasteAsPlainText":try{let v=await navigator.clipboard.readText();v&&u.dispatch(u.state.tr.insertText(v));}catch{}break;case "delete":{let{from:v,to:x}=u.state.selection;v!==x&&u.dispatch(u.state.tr.deleteRange(v,x));break}case "selectAll":u.dispatch(u.state.tr.setSelection(TextSelection.create(u.state.doc,0,u.state.doc.content.size)));break;case "addRowAbove":addRowAbove(u.state,u.dispatch);break;case "addRowBelow":addRowBelow(u.state,u.dispatch);break;case "deleteRow":deleteRow(u.state,u.dispatch);break;case "addColumnLeft":addColumnLeft(u.state,u.dispatch);break;case "addColumnRight":addColumnRight(u.state,u.dispatch);break;case "deleteColumn":deleteColumn(u.state,u.dispatch);break;case "mergeCells":mergeCells(u.state,u.dispatch);break;case "splitCell":o();break;case "addComment":{let{from:v,to:x}=u.state.selection;if(v===x)break;let y=Qo(r.current,n.current,v),w=u.state.schema.marks.comment.create({commentId:ct}),P=u.state.tr.addMark(v,x,w);P.setSelection(TextSelection.create(P.doc,x)),u.dispatch(P),s({from:v,to:x,yPos:y});break}}},[e,t,o,r,n,s]);return {contextMenu:d,imageContextMenu:p,handleEditorContextMenu:f,handleContextMenu:a,handleContextMenuClose:h,handleImageWrapApply:C,imageContextMenuTextActions:m,contextMenuItems:g,handleContextMenuAction:S}}function Wi({commentsProp:e,onCommentDelete:t,onCommentsChange:o,pagedEditorRef:r}){let[n,c]=useState([]),s=e!==void 0,i=s?e:n,[d,l]=useState(false),[p,f]=useState(null),[a,C]=useState(null),[m,h]=useState(null),g=useRef(null),S=useRef(i);S.current=i;let b=useRef(d);b.current=d;let u=useRef(t);u.current=t;let v=useRef(o);v.current=o;let x=useCallback(w=>{let P=typeof w=="function"?w(S.current):w;P!==S.current&&(s||(S.current=P,c(P)),v.current?.(P));},[s]),y=useCallback(()=>{if(b.current)return;let w=r.current?.getView();if(!w)return;let{doc:P,schema:R}=w.state,E=R.marks.comment;if(!E)return;let T=new Set;P.descendants(F=>{for(let B of F.marks)if(B.type===E){let A=B.attrs.commentId;A!==ct&&T.add(A);}});let I=S.current,k=new Set;for(let F of I)F.parentId==null&&!T.has(F.id)&&k.add(F.id);if(k.size!==0){for(let F of I)k.has(F.id)&&u.current?.(F);x(F=>F.filter(B=>!k.has(B.id)&&!k.has(B.parentId)));}},[r,x]);return useEffect(()=>()=>{g.current&&clearTimeout(g.current);},[]),{comments:i,setComments:x,isAddingComment:d,setIsAddingComment:l,isAddingCommentRef:b,commentSelectionRange:p,setCommentSelectionRange:f,addCommentYPosition:a,setAddCommentYPosition:C,floatingCommentBtn:m,setFloatingCommentBtn:h,cleanOrphanedCommentsTimerRef:g,cleanOrphanedComments:y}}function Ui({commentToRevision:e,setComments:t,pmState:o,isLoading:r,trackedChangesCount:n,setShowCommentsSidebar:c,trackedChangesLoadedRef:s}){useEffect(()=>{e.size!==0&&t(i=>{let d=false,l=i.map(p=>{if(p.parentId!=null)return p;let f=e.get(p.id);return f!=null?(d=true,{...p,parentId:f}):p});return d?l:i});},[e,t]),useEffect(()=>{s.current||r||!o||(s.current=true,n>0&&c(true));},[o,r,n,c,s]);}function Yi({getActiveEditorView:e,lastSelectionRef:t,borderSpecRef:o,theme:r,historyStateRef:n,getCachedStyleResolver:c,setFloatingCommentBtn:s,applySelectionDelta:i,recomputeFloatingCommentBtn:d,onSelectionChange:l,selectionChangeSubscribersRef:p}){return {handleSelectionChange:useCallback(a=>{let C=e();if(C){let{from:R,to:E}=C.state.selection;t.current={from:R,to:E};}let m=null;if(C&&(m=getTableContext(C.state),m.isInTable||(m=null)),m?.cellBorderColor){let R=resolveColorToHex(m.cellBorderColor,r??void 0);R&&(o.current={...o.current,color:{rgb:R}});}let h=null;if(C){let R=C.state.selection,E=R.node;E?.type.name==="image"&&(h={pos:R.from,wrapType:E.attrs.wrapType??"inline",displayMode:E.attrs.displayMode??"inline",cssFloat:E.attrs.cssFloat??null,transform:E.attrs.transform??null,alt:E.attrs.alt??null,borderWidth:E.attrs.borderWidth??null,borderColor:E.attrs.borderColor??null,borderStyle:E.attrs.borderStyle??null,width:E.attrs.width??null,height:E.attrs.height??null});}if(!a){s(null),i({selectionFormatting:{},pmTableContext:m,pmImageContext:h});return}let{textFormatting:g,paragraphFormatting:S}=a,b=g.fontFamily?.ascii||g.fontFamily?.hAnsi,u=g.fontSize;if(!b||!u){let R=n.current,E=a.styleId;if(R?.package.styles&&E){let I=c(R.package.styles).resolveParagraphStyle(E);!b&&I.runFormatting?.fontFamily&&(b=I.runFormatting.fontFamily.ascii||I.runFormatting.fontFamily.hAnsi),!u&&I.runFormatting?.fontSize&&(u=I.runFormatting.fontSize);}}let v=resolveColorToHex(g.color,r??void 0),x=v?`#${v}`:void 0,y=S.numPr,w=y?{type:y.numId===1?"bullet":"numbered",level:y.ilvl??0,isInList:true,numId:y.numId}:void 0,P={bold:g.bold,italic:g.italic,underline:!!g.underline,strike:g.strike,superscript:g.vertAlign==="superscript",subscript:g.vertAlign==="subscript",fontFamily:b,fontSize:u,color:x,highlight:g.highlight,alignment:S.alignment,lineSpacing:S.lineSpacing,listState:w,styleId:a.styleId??void 0,indentLeft:S.indentLeft,bidi:!!S.bidi};i({selectionFormatting:P,paragraphIndentLeft:S.indentLeft??0,paragraphIndentRight:S.indentRight??0,paragraphFirstLineIndent:S.indentFirstLine??0,paragraphHangingIndent:S.hangingIndent??false,paragraphTabs:S.tabs??null,pmTableContext:m,pmImageContext:h}),d(),l?.(a);for(let R of p.current)try{R(a);}catch(E){console.error("selectionChange subscriber threw:",E);}},[e,t,o,r,n,c,s,i,d,l,p])}}function Ki({pagedEditorRef:e,scrollContainerRef:t,editorContentRef:o,isAddingCommentRef:r,setFloatingCommentBtn:n,readOnly:c,isLoading:s,zoom:i}){let d=useRef(false);d.current=c;let l=useCallback(()=>{let p=e.current?.getView();if(!p)return;if(r.current||d.current){n(null);return}let{from:f,to:a}=p.state.selection;if(f===a){n(null);return}let C=t.current,m=o.current;if(!C||!m)return;let h=Qo(C,m,f);if(h==null)return;let S=C.querySelector(".paged-editor__pages")?.querySelector(".layout-page"),b=S?S.getBoundingClientRect().right-m.getBoundingClientRect().left:m.getBoundingClientRect().width/2+408;n({top:h,left:b});},[e,t,o,r,n]);return useEffect(()=>{let p=t.current;if(!p)return;let f=new ResizeObserver(()=>l());f.observe(p);let a=()=>l();return window.addEventListener("resize",a),()=>{f.disconnect(),window.removeEventListener("resize",a);}},[s,l,t]),useEffect(()=>{l();},[i,l]),{recomputeFloatingCommentBtn:l}}function ji({hfEditPosition:e,hfEditorRef:t,pagedEditorRef:o}){let r=useCallback(()=>e&&t.current?t.current.getView():o.current?.getView(),[e,t,o]),n=useCallback(()=>{e&&t.current?t.current.focus():o.current?.focus();},[e,t,o]),c=useCallback(()=>{e&&t.current?t.current.undo():o.current?.undo();},[e,t,o]),s=useCallback(()=>{e&&t.current?t.current.redo():o.current?.redo();},[e,t,o]);return {getActiveEditorView:r,focusActiveEditor:n,undoActiveEditor:c,redoActiveEditor:s}}function Xi({scrollContainerRef:e,pagedEditorRef:t}){let[o,r]=useState({currentPage:1,totalPages:1,visible:false}),n=useRef(null),c=e.current;return useEffect(()=>{if(!c)return;let s=()=>{let i=t.current?.getLayout();if(!i||i.pages.length===0)return;let d=c.scrollTop,l=i.pages.length,p=24,f=24,a=d+c.clientHeight/2,C=f,m=1;for(let h=0;h<i.pages.length;h++){let g=i.pages[h].size.h,S=C+g;if(a<S){m=h+1;break}C=S+p,m=h+2;}m=Math.min(m,l),r({currentPage:m,totalPages:l,visible:true}),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{r(h=>({...h,visible:false}));},600);};return c.addEventListener("scroll",s,{passive:true}),()=>{c.removeEventListener("scroll",s),n.current&&clearTimeout(n.current);}},[c,t]),{scrollPageInfo:o,setScrollPageInfo:r}}function qi({contextMenu:e,contextMenuItems:t,onContextMenuAction:o,onContextMenuClose:r,imageContextMenu:n,onImageWrapApply:c,imageContextMenuTextActions:s,onOpenImageProperties:i$1,readOnly:d}){return jsxs(Fragment,{children:[jsx(i,{isOpen:e.isOpen,position:e.position,hasSelection:e.hasSelection,isEditable:!d,items:t,onAction:o,onClose:r}),jsx(Li,{isOpen:n.isOpen,position:n.position,currentWrapType:n.currentWrapType,currentCssFloat:n.currentCssFloat,onApplyLayout:c,textActions:s,onTextAction:o,onOpenProperties:i$1,onClose:n.closeMenu}),jsx(Toaster,{position:"bottom-right"})]})}var wp=lazy(()=>import('./FindReplaceDialog-6D74QA4V.mjs')),Ep=lazy(()=>import('./HyperlinkDialog-PSJ6P3E3.mjs')),Ip=lazy(()=>import('./TablePropertiesDialog-3QNCWNEG.mjs').then(e=>({default:e.TablePropertiesDialog}))),kp=lazy(()=>import('./SplitCellDialog-NPGW4JGQ.mjs')),Mp=lazy(()=>import('./ImagePositionDialog-FKBG2MSL.mjs').then(e=>({default:e.ImagePositionDialog}))),Dp=lazy(()=>import('./ImagePropertiesDialog-T77XMKJF.mjs').then(e=>({default:e.ImagePropertiesDialog}))),Fp=lazy(()=>import('./FootnotePropertiesDialog-INLVLE26.mjs').then(e=>({default:e.FootnotePropertiesDialog}))),Lp=lazy(()=>import('./PageSetupDialog-CCJAZEIN.mjs').then(e=>({default:e.PageSetupDialog})));function Zi({findReplace:e,findResultRef:t,onFind:o,onFindNext:r,onFindPrevious:n,onReplace:c,onReplaceAll:s,hyperlinkDialog:i,onHyperlinkSubmit:d,onHyperlinkRemove:l,tablePropsOpen:p,onTablePropsClose:f,pmTableContext:a,getActiveEditorView:C,splitCellDialogState:m,onSplitCellDialogClose:h,onSplitCellDialogApply:g,imagePositionOpen:S,onImagePositionClose:b,onApplyImagePosition:u,imagePropsOpen:v,onImagePropsClose:x,onApplyImageProperties:y,pmImageContext:w,showPageSetup:P,onPageSetupClose:R,onPageSetupApply:E,document:T,footnotePropsOpen:I,onFootnotePropsClose:k,onApplyFootnoteProperties:F}){return jsxs(Suspense,{fallback:null,children:[e.state.isOpen&&jsx(wp,{isOpen:e.state.isOpen,onClose:e.close,onFind:o,onFindNext:r,onFindPrevious:n,onReplace:c,onReplaceAll:s,initialSearchText:e.state.searchText,replaceMode:e.state.replaceMode,currentResult:t.current}),i.state.isOpen&&jsx(Ep,{isOpen:i.state.isOpen,onClose:i.close,onSubmit:d,onRemove:i.state.isEditing?l:void 0,initialData:i.state.initialData,selectedText:i.state.selectedText,isEditing:i.state.isEditing}),p&&jsx(Ip,{isOpen:p,onClose:f,onApply:B=>{let A=C();A&&setTableProperties(B)(A.state,A.dispatch);},currentProps:a?.table?.attrs}),m.isOpen&&jsx(kp,{isOpen:m.isOpen,onClose:h,onApply:g,initialRows:m.initialRows,initialCols:m.initialCols,minRows:m.minRows,minCols:m.minCols}),S&&jsx(Mp,{isOpen:S,onClose:b,onApply:u}),v&&jsx(Dp,{isOpen:v,onClose:x,onApply:y,currentData:w?{alt:w.alt??void 0,borderWidth:w.borderWidth??void 0,borderColor:w.borderColor??void 0,borderStyle:w.borderStyle??void 0,width:w.width??void 0,height:w.height??void 0}:void 0}),P&&jsx(Lp,{isOpen:P,onClose:R,onApply:E,currentProps:T?.package.document?.finalSectionProperties}),I&&jsx(Fp,{isOpen:I,onClose:k,onApply:F,footnotePr:T?.package.document?.finalSectionProperties?.footnotePr,endnotePr:T?.package.document?.finalSectionProperties?.endnotePr})]})}function Ji({active:e,onClick:t}){let{t:o}=b(),r=o("editor.toggleCommentsSidebar");return jsx(A,{onClick:t,active:e,title:r,ariaLabel:r,children:jsx(b$1,{name:"comment",size:20})})}var Jn=[{value:"editing",labelKey:"editor.editing",icon:"edit_note",descKey:"editor.editingDescription"},{value:"suggesting",labelKey:"editor.suggesting",icon:"rate_review",descKey:"editor.suggestingDescription"},{value:"viewing",labelKey:"editor.viewing",icon:"visibility",descKey:"editor.viewingDescription"}];function ta({mode:e,onModeChange:t}){let{t:o}=b(),[r,n]=useState(false),[c,s]=useState(false),i=useRef(null),d=useRef(null),[l,p]=useState({top:0,left:0}),f=Jn.find(a=>a.value===e);return useEffect(()=>{let a=window.matchMedia("(max-width: 1400px)");s(a.matches);let C=m=>s(m.matches);return a.addEventListener("change",C),()=>a.removeEventListener("change",C)},[]),useEffect(()=>{if(!r||!i.current)return;let a=i.current.getBoundingClientRect();p({top:a.bottom+2,left:a.right-220});},[r]),useEffect(()=>{if(!r)return;let a=m=>{!i.current?.contains(m.target)&&!d.current?.contains(m.target)&&n(false);},C=m=>{m.key==="Escape"&&n(false);};return document.addEventListener("mousedown",a),document.addEventListener("keydown",C),()=>{document.removeEventListener("mousedown",a),document.removeEventListener("keydown",C);}},[r]),jsxs("div",{style:{position:"relative"},children:[jsxs("button",{ref:i,type:"button",onMouseDown:a=>a.preventDefault(),onClick:()=>n(!r),title:`${o(f.labelKey)} (Ctrl+Shift+E)`,style:{display:"flex",alignItems:"center",gap:c?0:4,padding:c?"2px 4px":"2px 6px 2px 4px",border:"none",background:r?"var(--doc-hover, #f3f4f6)":"transparent",borderRadius:4,cursor:"pointer",fontSize:13,fontWeight:400,color:"var(--doc-text, #374151)",whiteSpace:"nowrap",height:28},children:[jsx(b$1,{name:f.icon,size:18}),!c&&jsx("span",{children:o(f.labelKey)}),jsx(b$1,{name:"arrow_drop_down",size:16})]}),r&&jsx("div",{ref:d,onMouseDown:a=>a.preventDefault(),style:{position:"fixed",top:l.top,left:l.left,backgroundColor:"white",border:"1px solid var(--doc-border, #d1d5db)",borderRadius:8,boxShadow:"0 4px 12px rgba(0, 0, 0, 0.12)",padding:"4px 0",zIndex:1e4,minWidth:220},children:Jn.map(a=>jsxs("button",{type:"button",onMouseDown:C=>C.preventDefault(),onClick:()=>{t(a.value),n(false);},onMouseOver:C=>{C.currentTarget.style.backgroundColor="var(--doc-hover, #f3f4f6)";},onMouseOut:C=>{C.currentTarget.style.backgroundColor="transparent";},style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",border:"none",background:"transparent",cursor:"pointer",fontSize:13,color:"var(--doc-text, #374151)",width:"100%",textAlign:"left"},children:[jsx(b$1,{name:a.icon,size:20}),jsxs("span",{style:{display:"flex",flexDirection:"column",alignItems:"flex-start"},children:[jsx("span",{style:{fontWeight:500},children:o(a.labelKey)}),jsx("span",{style:{fontSize:11,color:"var(--doc-text-muted, #9ca3af)"},children:o(a.descKey)})]}),a.value===e&&jsx(b$1,{name:"check",size:18,style:{marginLeft:"auto",color:"#1a73e8"}})]},a.value))})]})}function oa({active:e,onClick:t,badge:o}){let{t:r}=b(),n=r("agentPanel.toggle");return jsx(A,{onClick:t,active:e,title:n,ariaLabel:n,children:jsxs("span",{style:{position:"relative",display:"inline-flex"},children:[jsx(b$1,{name:"agent-sparkle",size:20}),o!=null&&jsx("span",{"data-testid":"agent-panel-toggle-badge",style:{position:"absolute",top:-4,right:-6,display:"inline-flex",alignItems:"center",justifyContent:"center",minWidth:14,height:14,padding:"0 3px",borderRadius:7,fontSize:10,fontWeight:600,background:"#ef4444",color:"#fff",lineHeight:1},children:o})]})})}function na({toolbarRefCallback:e,agentPanelOpen:t,setAgentPanelOpen:o,document:r,theme:n,pmState:c,selectionFormatting:s,tableContext:i,imageContext:d,readOnly:l,editingMode:p,setEditingMode:f,setShowCommentsSidebar:a,setExpandedSidebarItem:C$1,showCommentsSidebar:m,agentPanel:h,renderLogo:g,documentName:S,onDocumentNameChange:b,documentNameEditable:u,renderTitleBarRight:v,toolbarExtra:x,fontFamilies:y,zoom:w,showZoomControl:P,onFormat:R,onUndo:E$1,onRedo:T,onPrint:I,onOpen:k,onSave:F,onZoomChange:B,onRefocusEditor:A,onInsertTable:j,onInsertImage:_,onInsertPageBreak:V,onInsertTOC:oe,onImageWrapType:ie,onImageTransform:Q,onOpenImageProperties:ae,onPageSetup:ne,onTableAction:ge}){return jsx("div",{ref:e,className:"z-50 flex flex-col gap-0 flex-shrink-0",children:jsxs(E,{className:t?"rounded-br-2xl":void 0,style:{transition:"border-radius 220ms cubic-bezier(0.4, 0, 0.2, 1)"},currentFormatting:s,onFormat:R,onUndo:E$1,onRedo:T,canUndo:c?undoDepth(c)>0:false,canRedo:c?redoDepth(c)>0:false,disabled:l,documentStyles:r?.package.styles?.styles,theme:r?.package.theme||n,fontFamilies:y,onPrint:I,onOpen:k,onSave:F,showZoomControl:P,zoom:w,onZoomChange:B,onRefocusEditor:A,onInsertTable:j,showTableInsert:true,onInsertImage:_,onInsertPageBreak:V,onInsertTOC:oe,imageContext:d,onImageWrapType:ie,onImageTransform:Q,onOpenImageProperties:ae,onPageSetup:ne,tableContext:i,onTableAction:ge,children:[jsxs(E.TitleBar,{children:[g&&jsx(E.Logo,{children:g()}),S!==void 0&&jsx(E.DocumentName,{value:S,onChange:b,editable:u}),v&&jsx(E.TitleBarRight,{children:v()}),jsx(E.MenuBar,{})]}),jsxs(E.Toolbar,{children:[jsx(C,{}),jsx(Ji,{active:m,onClick:()=>{a(J=>!J),C$1(null);}}),jsx(C,{}),jsx(ta,{mode:p,onModeChange:J=>{f(J),J==="suggesting"&&a(true);}}),h&&h.showToolbarButton!==false&&jsxs(Fragment,{children:[jsx(C,{}),jsx(oa,{active:t,badge:h.toolbarBadge,onClick:()=>o(!t)})]}),x]})]})})}var ca=4,sa=false;function Qp(e){if(!sa){sa=true;try{let t=e.scrollIntoView();(typeof t.updated!="number"||(t.updated&ca)===0)&&console.warn("[HiddenProseMirror] prosemirror-state UPDATED_SCROLL bit shape changed; paginated scroll suppression may be stale. Update PM_UPDATED_SCROLL.");}catch{}}}var Jp={position:"fixed",left:"-9999px",top:"0",opacity:0,zIndex:-1,pointerEvents:"none",userSelect:"none",overflowAnchor:"none"};function la(e,t,o,r=[]){let n=o?.getSchema()??schema,c=e?toProseDoc(e,{styles:t??void 0}):createEmptyDoc(),s=[...r,...o?.getPlugins()??[]];return EditorState.create({doc:c,schema:n,plugins:s})}function em(e,t){return t?fromProseDoc(e.doc,t):null}var tm=forwardRef(function(t,o){let{document:r,styles:n,theme:c,widthPx:s=612,readOnly:i=false,onTransaction:d,onSelectionChange:l,externalPlugins:p=[],extensionManager:f,onEditorViewReady:a,onEditorViewDestroy:C,onKeyDown:m}=t,h=useRef(null),g=useRef(null),S=useRef(r),b=useRef(false),u=useRef(null),v=useRef(false),x=useRef(d),y=useRef(l),w=useRef(a),P=useRef(C),R=useRef(m);x.current=d,y.current=l,w.current=a,P.current=C,R.current=m,S.current=r;let E=A=>{if(!A)return "empty";let j=A.package?.properties;return `${j?.created||""}-${j?.modified||""}-${j?.title||""}`},T=useCallback(()=>{if(!h.current||b.current)return;let j={state:la(r,n,f,p),editable:()=>!i,attributes:{style:"overflow-anchor: none"},dispatchTransaction(V){if(b.current)return;g.current||(g.current=this),Qp(this.state.tr);let oe=V;typeof oe.updated=="number"&&(oe.updated&=~ca);let ie=this.state.apply(V);this.updateState(ie),x.current?.(V,ie),(V.selectionSet||V.docChanged)&&y.current?.(ie);},handleKeyDown:(V,oe)=>R.current?.(V,oe)??false,handleScrollToSelection:()=>true,handleDOMEvents:{focus:()=>false,blur:()=>false}};g.current=new EditorView(h.current,j);let _=g.current.dom;_.style.overflowAnchor="none",v.current=true,u.current=E(r),w.current?.(g.current);},[r,n,p,f,i]),I=useCallback(()=>{g.current&&!b.current&&(b.current=true,P.current?.(),g.current.destroy(),g.current=null,b.current=false);},[]);useEffect(()=>(T(),()=>I()),[]),useEffect(()=>{if(!g.current||b.current)return;let A=E(r);if(v.current&&A===u.current)return;v.current=true,u.current=A;let j=la(r,n,f,p);g.current.updateState(j),y.current?.(j);},[r,n,f,p]),useEffect(()=>{g.current;},[i]),useImperativeHandle(o,()=>({getState(){return g.current?.state??null},getView(){return g.current??null},getDocument(){return g.current?em(g.current.state,S.current):null},focus(){g.current?.focus();},blur(){g.current?.hasFocus()&&g.current.dom.blur();},isFocused(){return g.current?.hasFocus()??false},dispatch(A){g.current&&!b.current&&g.current.dispatch(A);},executeCommand(A){return g.current?A(g.current.state,g.current.dispatch,g.current):false},undo(){return g.current?undo(g.current.state,g.current.dispatch):false},redo(){return g.current?redo(g.current.state,g.current.dispatch):false},canUndo(){return g.current?undo(g.current.state):false},canRedo(){return g.current?redo(g.current.state):false},setSelection(A,j){if(!g.current)return;let{state:_,dispatch:V}=g.current,oe=_.doc.resolve(A),ie=j!==void 0?_.doc.resolve(j):oe,Q=TextSelection.between(oe,ie);V(_.tr.setSelection(Q));},setNodeSelection(A){if(!g.current)return;let{state:j,dispatch:_}=g.current;try{let V=NodeSelection.create(j.doc,A);_(j.tr.setSelection(V));}catch{this.setSelection(A);}},setCellSelection(A,j){if(!g.current)return;let{state:_,dispatch:V}=g.current;try{let oe=CellSelection.create(_.doc,A,j);V(_.tr.setSelection(oe));}catch{this.setSelection(A,j);}},scrollToSelection(){}}),[]);let k=jsx("div",{ref:h,className:"paged-editor__hidden-pm",style:{...Jp,width:s>0?`${s}px`:void 0}}),F=globalThis.document,B=F&&"body"in F&&F.body!=null?F.body:null;return B?createPortal(k,B):k}),da=memo(tm);var im="#000",am="rgba(66, 133, 244, 0.3)",sm=2,lm=530,cm={position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:10,overflow:"hidden"},dm=(e,t,o,r)=>({position:"absolute",left:e.x,top:e.y,width:o,height:e.height,backgroundColor:t,opacity:r?1:0,transition:"opacity 0.05s ease-out",pointerEvents:"none"}),um=(e,t)=>({position:"absolute",left:e.x,top:e.y,width:e.width,height:e.height,backgroundColor:t,pointerEvents:"none"}),pm=({position:e,color:t,width:o,blinkInterval:r,isFocused:n})=>{let[c,s]=useState(n),i=useRef(null);return useEffect(()=>(i.current&&(window.clearInterval(i.current),i.current=null),n&&r>0?(s(true),i.current=window.setInterval(()=>{s(d=>!d);},r)):s(false),()=>{i.current&&window.clearInterval(i.current);}),[n,r]),useEffect(()=>{if(n)return s(true),i.current&&window.clearInterval(i.current),r>0&&(i.current=window.setInterval(()=>{s(d=>!d);},r)),()=>{i.current&&window.clearInterval(i.current);}},[e.x,e.y,n,r]),jsx("div",{style:dm(e,t,o,c),"data-testid":"caret"})},mm=({rect:e,color:t,index:o})=>jsx("div",{style:um(e,t),"data-testid":`selection-rect-${o}`,"data-page-index":e.pageIndex}),pa=({selectionRects:e,caretPosition:t,isFocused:o,readOnly:r=false,caretColor:n=im,selectionColor:c=am,caretWidth:s=sm,blinkInterval:i=lm})=>{if(r)return null;let d=e.length>0,l=t!==null&&!d;return jsxs("div",{style:cm,"data-testid":"selection-overlay",children:[d&&e.map((p,f)=>jsx(mm,{rect:p,color:c,index:f},`sel-${p.pageIndex}-${p.x}-${p.y}-${f}`)),l&&t&&jsx(pm,{position:t,color:n,width:s,blinkInterval:i,isFocused:o})]})};var ir=10,Rt=ir/2,Ro=2,ha="#2563eb",fa={position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:15,overflow:"visible"},gm={position:"absolute",border:`${Ro}px solid ${ha}`,pointerEvents:"none",boxSizing:"border-box"},hm={position:"absolute",width:`${ir}px`,height:`${ir}px`,backgroundColor:ha,border:"1px solid white",boxShadow:"0 1px 3px rgba(0, 0, 0, 0.3)",boxSizing:"border-box",pointerEvents:"auto",zIndex:16},bm={position:"absolute",backgroundColor:"rgba(0, 0, 0, 0.75)",color:"white",fontSize:"11px",fontFamily:"system-ui, sans-serif",padding:"2px 8px",borderRadius:"3px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:20,transform:"translateX(-50%)"},ym={nw:"nw-resize",ne:"ne-resize",se:"se-resize",sw:"sw-resize"};function vm(e,t,o,r,n,c){let s=e.includes("w")?-1:1,i=e.includes("n")?-1:1,d=r+t*s,l=n+o*i;if(c){let p=Math.max(d/r,l/n);d=r*p,l=n*p;}return {width:Math.max(20,Math.min(2e3,d)),height:Math.max(20,Math.min(2e3,l))}}function ba({imageInfo:e,zoom:t,isFocused:o,onResize:r,onResizeStart:n,onResizeEnd:c,onDragMove:s,onDragStart:i,onDragEnd:d,onContextMenu:l}){let[p,f]=useState(false),[a,C]=useState(false),[m,h]=useState(0),[g,S]=useState(0),[b,u]=useState(null),v=useRef(null),x=useRef(null),y=useRef(r),w=useRef(n),P=useRef(c),R=useRef(s),E=useRef(i),T=useRef(d);y.current=r,w.current=n,P.current=c,R.current=s,E.current=i,T.current=d;let I=useRef(e),k=useRef(t);I.current=e,k.current=t;let F=useCallback(()=>{if(!e||!x.current){u(null);return}let Q=x.current.offsetParent;if(!Q){u(null);return}let ae=Q.getBoundingClientRect(),ne=e.element.getBoundingClientRect();u({left:(ne.left-ae.left)/t,top:(ne.top-ae.top)/t,width:ne.width/t,height:ne.height/t});},[e,t]);useEffect(()=>{F();},[F]),useEffect(()=>{if(!e)return;let Q=x.current?.closest('[style*="overflow"]')??x.current?.closest(".paged-editor__container");if(!Q)return;let ae=()=>{v.current&&cancelAnimationFrame(v.current),v.current=requestAnimationFrame(F);};return Q.addEventListener("scroll",ae,{passive:true}),window.addEventListener("resize",ae,{passive:true}),()=>{Q.removeEventListener("scroll",ae),window.removeEventListener("resize",ae),v.current&&cancelAnimationFrame(v.current);}},[e,F]);let B=useCallback((Q,ae)=>{if(!e||!b)return;ae.preventDefault(),ae.stopPropagation();let ne=b.width,ge=b.height,he=ae.clientX,J=ae.clientY,D=Math.round(ne),L=Math.round(ge);f(true),h(D),S(L),w.current?.();let z=H=>{let U=k.current,q=(H.clientX-he)/U,re=(H.clientY-J)/U,Z=!H.shiftKey,te=vm(Q,q,re,ne,ge,Z);D=Math.round(te.width),L=Math.round(te.height),h(D),S(L),u(G=>{if(!G)return G;let O={...G};return Q.includes("w")&&(O.left=G.left+(G.width-te.width)),Q.includes("n")&&(O.top=G.top+(G.height-te.height)),O.width=te.width,O.height=te.height,O});},W=()=>{window.removeEventListener("mousemove",z),window.removeEventListener("mouseup",W),f(false);let H=I.current;H&&y.current?.(H.pmPos,D,L),P.current?.();};window.addEventListener("mousemove",z),window.addEventListener("mouseup",W);},[e,b]),A=useCallback(Q=>{if(!e||!b)return;Q.preventDefault(),Q.stopPropagation();let ae=4,ne=Q.clientX,ge=Q.clientY,he=false,J=null,D=z=>{let W=z.clientX-ne,H=z.clientY-ge;!he&&Math.sqrt(W*W+H*H)<ae||(he||(he=true,C(true),E.current?.(),J=document.createElement("div"),J.style.cssText="position: fixed; pointer-events: none; z-index: 10000; opacity: 0.5; border: 2px dashed #2563eb; border-radius: 4px; background: rgba(37, 99, 235, 0.1);",J.style.width=`${b.width}px`,J.style.height=`${b.height}px`,document.body.appendChild(J)),J&&(J.style.left=`${z.clientX-b.width/2}px`,J.style.top=`${z.clientY-b.height/2}px`));},L=z=>{if(window.removeEventListener("mousemove",D),window.removeEventListener("mouseup",L),J&&(J.remove(),J=null),C(false),he){let W=I.current;W&&R.current?.(W.pmPos,z.clientX,z.clientY),T.current?.();}};window.addEventListener("mousemove",D),window.addEventListener("mouseup",L);},[e,b]);if(!!!(e&&b&&o))return jsx("div",{ref:x,style:{...fa,visibility:"hidden"},className:"image-selection-overlay"});let{left:_,top:V,width:oe,height:ie}=b;return jsxs("div",{ref:x,style:fa,className:"image-selection-overlay",children:[jsx("div",{style:{...gm,left:_-Ro,top:V-Ro,width:oe+Ro*2,height:ie+Ro*2}}),jsx("div",{style:{position:"absolute",left:_,top:V,width:oe,height:ie,cursor:a?"grabbing":"grab",pointerEvents:"auto",zIndex:15},onMouseDown:A,onContextMenu:l}),jsx(ln,{handle:"nw",style:{left:_-Rt,top:V-Rt},onMouseDown:B}),jsx(ln,{handle:"ne",style:{left:_+oe-Rt,top:V-Rt},onMouseDown:B}),jsx(ln,{handle:"se",style:{left:_+oe-Rt,top:V+ie-Rt},onMouseDown:B}),jsx(ln,{handle:"sw",style:{left:_-Rt,top:V+ie-Rt},onMouseDown:B}),p&&jsxs("div",{style:{...bm,left:_+oe/2,top:V+ie+12},children:[m," \xD7 ",g]})]})}function ln({handle:e,style:t,onMouseDown:o}){return jsx("div",{style:{...hm,...t,cursor:ym[e]},onMouseDown:r=>o(e,r),"data-handle":e})}var xm={position:"absolute",inset:0,pointerEvents:"none",zIndex:11};function Ca({getView:e,getPagesContainer:t,zoom:o,decorationSyncToken:r,syncCoordinator:n}){let c=useRef(null),s=useRef(null),[i,d]=useState(0);return useEffect(()=>n.onRender(()=>d(l=>l+1)),[n]),useEffect(()=>(s.current!==null&&cancelAnimationFrame(s.current),s.current=requestAnimationFrame(()=>{s.current=null;let l=e(),p=t(),f=c.current;!l||!p||!f||n.isSafeToRender()&&Sm(l,p,f,o);}),()=>{s.current!==null&&(cancelAnimationFrame(s.current),s.current=null);}),[o,r,i]),jsx("div",{ref:c,className:"paged-editor__decoration-overlay",style:xm,"aria-hidden":"true"})}function Sm(e,t,o,r){let n=Rm(e.state);if(n.length===0){o.firstChild&&o.replaceChildren();return}let c=b$3(t,r),s=c.getContainerOffset(),i=document.createDocumentFragment();for(let{decoration:d,from:l,to:p}of n){if(l===p){let C=Pm(d,e);if(!C)continue;let m=c.getCoordinatesForPosition(l);if(!m)continue;let h=document.createElement("div");h.style.cssText=`position:absolute;left:${m.x+s.x}px;top:${m.y+s.y}px;height:${m.height}px;`,h.appendChild(C),i.appendChild(h);continue}let f=Tm(d);if(!f)continue;let a=c.getRectsForRange(l,p);for(let C of a){let m=document.createElement("div");for(let[g,S]of Object.entries(f))g!=="nodeName"&&m.setAttribute(g,S);let h=`position:absolute;left:${C.x+s.x}px;top:${C.y+s.y}px;width:${C.width}px;height:${C.height}px;`;m.style.cssText=h+(f.style??""),i.appendChild(m);}}o.replaceChildren(i);}function Rm(e){let t=[];for(let o of e.plugins){let r=o.props.decorations;if(!r)continue;let n=r.call(o,e);n&&n.forEachSet(c=>{c.find().forEach(s=>{s.spec?.noOverlay||t.push({decoration:s,from:s.from,to:s.to});});});}return t}function Pm(e,t){let o=e.type;if(!o)return null;let r=o.toDOM;return typeof r=="function"?r(t,()=>e.from):r instanceof HTMLElement?r.cloneNode(true):null}function Tm(e){return e.type?.attrs??null}var Pa=[];var Ta={position:"relative",width:"100%",minHeight:"100%",overflow:"visible",backgroundColor:"var(--doc-bg, #f8f9fa)"},wa={position:"relative",display:"flex",flexDirection:"column",alignItems:"center",paddingTop:24,paddingBottom:24,overflowAnchor:"none"},Ea={position:"relative",display:"flex",flexDirection:"column",alignItems:"center",overflowAnchor:"none"},Ia={position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",overflow:"visible",zIndex:8};function cn(e,t,o){let r=t.getBoundingClientRect(),n=e.getBoundingClientRect(),c=n.top+n.height/2,s=r.top+r.height/2,i=c-s,d=Math.max(0,t.scrollHeight-t.clientHeight),l=Math.max(0,Math.min(d,t.scrollTop+i));t.scrollTop=l;}function dn(e,t){if(t.aborted)return;let o=requestAnimationFrame(()=>{if(t.aborted)return;let r=requestAnimationFrame(()=>{if(t.aborted)return;let n=requestAnimationFrame(()=>{t.aborted||e();});t.addEventListener("abort",()=>cancelAnimationFrame(n),{once:true});});t.addEventListener("abort",()=>cancelAnimationFrame(r),{once:true});});t.addEventListener("abort",()=>cancelAnimationFrame(o),{once:true});}function Ma(e,t){let o=null,r=findBodyPmAnchors(e);for(let n=0;n<r.length;n++){let c=r[n].dataset.pmStart;if(c==null)continue;let s=Number(c);Number.isNaN(s)||s<=t&&(o===null||s>o)&&(o=s);}return o}function un(e,t){let o=e.pages.length;return e.pages.reduce((n,c)=>n+c.size.h,0)+Math.max(0,o-1)*t+24+24}function Da(e,t,o,r,n){let c=new Map;if(!e?.state)return c;let{doc:s,schema:i}=e.state,d=i.marks.comment,l=i.marks.insertion,p=i.marks.deletion;if(!d&&!l&&!p)return c;let f=new Set,a=24+n;return s.descendants((C,m)=>{if(C.isText)for(let h of C.marks){let g=null;if(d&&h.type===d?g=`comment-${h.attrs.commentId}`:(l&&h.type===l||p&&h.type===p)&&(g=`revision-${h.attrs.revisionId}`),!g||f.has(g))continue;f.add(g);let S=getCaretPosition(t,o,r,m);if(S){c.set(g,S.y+a);continue}for(let b=0;b<t.pages.length;b++){let u=t.pages[b],v=false;for(let x of u.fragments){let y=x.pmStart??0,w=x.pmEnd??y;if(m<y||m>w)continue;let P=x.kind==="table"?Mm(o,r,x,m):0;c.set(g,x.y+P+getPageTop(t,b)+a),v=true;break}if(v)break}}}),c}function Mm(e,t,o,r){let n=e.findIndex(d=>d.id===o.blockId);if(n===-1)return 0;let c=e[n],s=t[n];if(c.kind!=="table"||s.kind!=="table")return 0;let i=0;for(let d=o.fromRow;d<o.toRow;d++){let l=c.rows[d];if(!l||l.cells.some(f=>f.blocks.some(a=>{let C=a.pmStart??0,m=a.pmEnd??C;return r>=C&&r<=m})))break;i+=s.rows[d]?.height??0;}return i}function pn(e){return Math.round(e/1440*96)}function sr(e){let t=e?.columnCount??1;if(t<=1)return;let o=pn(e?.columnSpace??720);return {count:t,gap:o,equalWidth:e?.equalWidth??true,separator:e?.separator}}function Fm(e){let t=e.pageSize.w-e.margins.left-e.margins.right,o=e.columns;return !o||o.count<=1?t:Math.floor((t-(o.count-1)*o.gap)/o.count)}function Fa(e,t,o){let{configs:r,breakIndices:n}=collectSectionConfigs(e,t,o),c=0,s=[];for(let i=0;i<e.length;i++)s.push(Fm(r[c]??t)),c<n.length&&i===n[c]&&c++;return s}function zm(e,t){let o=[];for(let r=0;r<e.length;r++){let n=e[r];if(n.kind!=="paragraph")continue;let c=n;for(let s of c.runs){if(s.kind!=="image")continue;let i=s;if(!isTextWrappingFloatingImageRun(i))continue;let d=0,l=i.position,p=i.distTop??0,f=i.distBottom??0,a=i.distLeft??12,C=i.distRight??12;if(l?.vertical){let S=l.vertical;S.align==="top"&&S.relativeTo==="margin"?d=0:S.posOffset!==void 0&&(d=emuToPixels(S.posOffset));}let m=d+i.height,h=0,g=0;if(l?.horizontal){let S=l.horizontal;if(S.align==="left")h=i.width+C;else if(S.align==="right")g=i.width+a;else if(S.posOffset!==void 0){let b=emuToPixels(S.posOffset);b<t/2?h=b+i.width+C:g=t-b+a;}}else i.cssFloat==="left"?h=i.width+C:i.cssFloat==="right"&&(g=i.width+a);if({leftMargin:h,rightMargin:g}=clampFloatingWrapMargins(h,g,t),h>0||g>0){let S=l?.vertical?.relativeTo==="margin"||l?.vertical?.relativeTo==="page";o.push({leftMargin:h,rightMargin:g,topY:d-p,bottomY:m+f,anchorBlockIndex:r,isMarginRelative:S});}}}for(let r=0;r<e.length;r++){let n=e[r];if(n.kind!=="table")continue;let c=n,s=c.floating;if(!s)continue;let i=measureTableBlock(c,t,lr),d=i.totalWidth,l=i.totalHeight,p=s.leftFromText??12,f=s.rightFromText??12,a=s.topFromText??0,C=s.bottomFromText??0,m=0,h=0,g=0;s.tblpX!==void 0?g=s.tblpX:s.tblpXSpec?s.tblpXSpec==="left"||s.tblpXSpec==="inside"?g=0:s.tblpXSpec==="right"||s.tblpXSpec==="outside"?g=t-d:s.tblpXSpec==="center"&&(g=(t-d)/2):c.justification==="center"?g=(t-d)/2:c.justification==="right"&&(g=t-d),g<t/2?m=g+d+f:h=t-g+p,{leftMargin:m,rightMargin:h}=clampFloatingWrapMargins(m,h,t);let S=s.tblpY??0,b=S+l;o.push({leftMargin:m,rightMargin:h,topY:S-a,bottomY:b+C,anchorBlockIndex:r});}return o}function lr(e,t,o,r){switch(e.kind){case "paragraph":{let n=e;if(!o||o.length===0){let s=getCachedParagraphMeasure(n,t);if(s)return s}let c=measureParagraph(n,t,{floatingZones:o,paragraphYOffset:r??0});return (!o||o.length===0)&&setCachedParagraphMeasure(n,t,c),c}case "table":return measureTableBlock(e,t,lr);case "image":{let n=e;return {kind:"image",width:n.width??100,height:n.height??100}}case "textBox":{let n=e,c=n.margins??DEFAULT_TEXTBOX_MARGINS,s=(n.width??DEFAULT_TEXTBOX_WIDTH)-c.left-c.right,i=n.content.map(p=>measureParagraph(p,s)),d=i.reduce((p,f)=>p+f.totalHeight,0),l=n.height??d+c.top+c.bottom;return {kind:"textBox",width:n.width??DEFAULT_TEXTBOX_WIDTH,height:l,innerMeasures:i}}case "pageBreak":return {kind:"pageBreak"};case "columnBreak":return {kind:"columnBreak"};case "sectionBreak":return {kind:"sectionBreak"};default:assertExhaustiveFlowBlock(e,"react PagedEditor measureBlock");}}function mn(e,t){let o=Array.isArray(t)?t[0]??0:t,r=zm(e,o),n=r.filter(a=>a.isMarginRelative),c=r.filter(a=>!a.isMarginRelative),s=new Map;for(let a of n){let C=s.get(a.topY)??[];C.push(a),s.set(a.topY,C);}let i=[...c];for(let a of s.values()){let C=Math.min(...a.map(m=>m.anchorBlockIndex));for(let m of a)i.push({...m,anchorBlockIndex:C});}let d=new Map;for(let a of i){let C=d.get(a.anchorBlockIndex)??[];C.push({leftMargin:a.leftMargin,rightMargin:a.rightMargin,topY:a.topY,bottomY:a.bottomY}),d.set(a.anchorBlockIndex,C);}let l=new Set(i.map(a=>a.anchorBlockIndex)),p=0,f=[];return e.map((a,C)=>{l.has(C)&&(p=0,f=d.get(C)??[]);let m=f.length>0?f:void 0;try{let h=performance.now(),g=Array.isArray(t)?t[C]??o:t,S=lr(a,g,m,p),b=performance.now()-h;return b>500&&console.warn(`[measureBlocks] Block ${C} (${a.kind}) took ${Math.round(b)}ms`),"totalHeight"in S&&(a.kind==="table"&&a.floating||(p+=S.totalHeight)),S}catch(h){return console.error(`[measureBlocks] Error measuring block ${C} (${a.kind}):`,h),{totalHeight:20}}})}function Na(e,t,o){t.style.overflowAnchor||t.style.setProperty("overflow-anchor","none");let r=Math.max(1,t.scrollHeight-t.clientHeight),n=t.scrollTop/r,c=Ma(e,o),s=0;if(c!=null){let i=findBodyPmAnchor(e,c);if(i){let d=i.getBoundingClientRect(),l=t.getBoundingClientRect();s=d.top-l.top;}else c=null;}return {scrollRestoreRatioPre:n,domAnchorPmStart:c,domAnchorOffsetInScroller:s}}function _a(e,t,o){let r=o.scrollRestoreRatioPre;if(e==="incremental"){let c=Math.max(1,t.scrollHeight-t.clientHeight);r=t.scrollTop/c;}let n=e==="incremental"?t.scrollTop:null;return {renderKind:e,ratio:r,scrollTopSnapshot:n,domAnchorPmStart:o.domAnchorPmStart,domAnchorOffsetInScroller:o.domAnchorOffsetInScroller}}function cr(e,t,o){let{renderKind:r,ratio:n,scrollTopSnapshot:c,domAnchorPmStart:s,domAnchorOffsetInScroller:i}=e;if(r==="incremental"&&c!=null){let l=Math.max(1,o.scrollHeight-o.clientHeight);o.scrollTop=Math.min(Math.max(0,c),l);return}if(r!=="incremental"&&s!=null){let l=findBodyPmAnchor(t,s);if(l){let p=o.getBoundingClientRect(),f=l.getBoundingClientRect().top-p.top;o.scrollTop+=i-f;return}}let d=Math.max(1,o.scrollHeight-o.clientHeight);o.scrollTop=n*d;}function Wa(e,t,o,r){if(e?.renderKind!=="incremental"||e.scrollTopSnapshot==null||r&&o>32||!t?.isConnected)return;let n=Math.max(1,t.scrollHeight-t.clientHeight),c=Math.min(Math.max(0,e.scrollTopSnapshot),n);Math.abs(t.scrollTop-c)>.5&&(t.scrollTop=c);}function Ga(e){let{document:t,styles:o,theme:r,sectionProperties:n,finalSectionProperties:c,headerContent:s,footerContent:i,firstPageHeaderContent:d,firstPageFooterContent:l,pageGap:p,zoom:f,resolvedCommentIds:a,pagesContainerRef:C,viewportLayoutRef:m,hiddenPMRef:h,syncCoordinator:g,getScrollContainer:S,onTotalPagesChange:b,onAnchorPositionsChange:u,onRenderedDomContextReady:v}=e,[x,y]=useState(null),[w,P]=useState([]),[R,E]=useState([]),[T,I]=useState(0),k=useCallback(()=>I(H=>H+1),[]),F=useRef(b),B=useRef(u),A=useRef(v);F.current=b,B.current=u,A.current=v;let j=useRef(0);useEffect(()=>{let H=x?.pages.length??0;H!==j.current&&(j.current=H,F.current?.(H));},[x]);let _=useMemo(()=>getPageSize(n),[n]),V=useMemo(()=>getMargins(n),[n]),oe=useMemo(()=>sr(n),[n]),{finalPageSize:ie,finalMargins:Q,finalColumns:ae}=useMemo(()=>{let H=c??n;return {finalPageSize:getPageSize(H),finalMargins:getMargins(H),finalColumns:sr(H)}},[c,n]),ne=_.w-V.left-V.right,ge=useMemo(()=>new LayoutPainter({pageGap:p,showShadow:true,pageBackground:"#fff"}),[p]),he=useRef(null);he.current=ge;let J=useRef(null),D=useRef(0),L=useCallback(H=>{let U=performance.now(),q=g.getStateSeq();g.onLayoutStart();let re=Z=>{let te=C.current,G=te?S()??findVerticalScrollParentOrRoot(te):null,O=performance.now()-D.current;Wa(J.current,G,O,Z);};re(true);try{let Z=performance.now(),te=_.h-V.top-V.bottom,G=toFlowBlocks(H.doc,{theme:r,pageContentHeight:te}),O=performance.now()-Z;O>500&&console.warn(`[PagedEditor] toFlowBlocks took ${Math.round(O)}ms (${G.length} blocks)`),P(G),Z=performance.now();let xe=Fa(G,{pageSize:_,margins:V,columns:oe},{pageSize:ie,margins:Q,columns:ae}),ce=mn(G,xe);O=performance.now()-Z,O>1e3&&console.warn(`[PagedEditor] measureBlocks took ${Math.round(O)}ms (${G.length} blocks)`),E(ce);let Ne=collectFootnoteRefs(G),fe=Ne.length>0&&t?.package?.footnotes,ve={section:"header",pageSize:_,margins:V},Re={section:"footer",pageSize:_,margins:V},ye={styles:o,theme:r,measureBlocks:mn},De=convertHeaderFooterToContent(s,ne,ve,ye),Ee=convertHeaderFooterToContent(i,ne,Re,ye),se=n?.titlePg===!0,Ie=se?convertHeaderFooterToContent(d,ne,ve,ye):void 0,Te=se?convertHeaderFooterToContent(l,ne,Re,ye):void 0,kt=V.header??48,Ge=V.footer??48,nt=V.top-kt,ft=V.bottom-Ge,Ke=pe=>pe?pe.visualBottom??pe.height:0,Mt=pe=>pe?Math.max((pe.visualBottom??pe.height)-(pe.visualTop??0),pe.height):0,je=Math.max(Ke(De),Ke(Ie)),Kt=Math.max(Mt(Ee),Mt(Te)),Xe=je>nt,rt=Kt>ft,Dt=V,it=Q;if(Xe||rt){let pe=be=>{let ke={...be};return Xe&&(ke.top=Math.max(be.top,kt+je)),rt&&(ke.bottom=Math.max(be.bottom,Ge+Kt)),ke};Dt=pe(V),it=pe(Q);for(let be of G){if(be.kind!=="sectionBreak")continue;let ke=be;ke.margins&&(ke.margins=pe(ke.margins));}}Z=performance.now();let Fe,Le=new Map,Ft=new Map,so=c?.sectionStart,gt={pageSize:_,margins:Dt,finalPageSize:ie,finalMargins:it,columns:ae,bodyBreakType:so,pageGap:p};if(fe){let pe=layoutDocument(G,ce,gt);Ft=buildFootnoteContentMap(t.package.footnotes,Ne,ne,{styles:o??void 0,theme:r??null,measureBlocks:mn});let be=stabilizeFootnoteLayout({blocks:G,measures:ce,layoutOpts:gt,footnoteRefs:Ne,footnoteContentMap:Ft,initialLayout:pe});Fe=be.layout,Le=be.pageFootnoteMap;}else Fe=layoutDocument(G,ce,gt);if(O=performance.now()-Z,O>500&&console.warn(`[PagedEditor] layoutDocument took ${Math.round(O)}ms (${Fe.pages.length} pages)`),y(Fe),C.current&&he.current){Z=performance.now(),J.current=null,D.current=0;let pe=C.current,be=S()??findVerticalScrollParentOrRoot(pe),ke=be?.isConnected?Na(pe,be,H.selection.head):null,He=new Map;for(let Se=0;Se<G.length;Se++){let ht=G[Se],Lt=ce[Se];ht&&Lt&&He.set(String(ht.id),{block:ht,measure:Lt});}he.current.setBlockLookup(He);let Xt=fe?buildFootnoteRenderItems(Le,Ft,t):void 0,lo=renderPages(Fe.pages,C.current,{pageGap:p,showShadow:!0,pageBackground:"#fff",blockLookup:He,headerContent:De,footerContent:Ee,firstPageHeaderContent:Ie,firstPageFooterContent:Te,titlePg:se,headerDistance:n?.headerDistance?pn(n.headerDistance):void 0,footerDistance:n?.footerDistance?pn(n.footerDistance):void 0,pageBorders:n?.pageBorders,theme:r,footnotesByPage:Xt?.size?Xt:void 0,resolvedCommentIds:a}),qe=m.current;if(qe){let Se=un(Fe,p);qe.style.minHeight=`${Se}px`,f!==1?qe.style.marginBottom=`${Se*(f-1)}px`:qe.style.marginBottom="";}if(be?.isConnected&&ke){let Se=_a(lo,be,ke);J.current=Se,Se.renderKind==="incremental"&&Se.scrollTopSnapshot!=null&&(D.current=performance.now());}if(O=performance.now()-Z,O>500&&console.warn(`[PagedEditor] renderPages took ${Math.round(O)}ms`),A.current){let Se=b$3(C.current,f);A.current(Se);}}else J.current=null,D.current=0;if(B.current){let pe=Da(h.current?.getView()??null,Fe,G,ce,p);B.current(pe);}re(!1);let jt=performance.now()-U;jt>2e3&&console.warn(`[PagedEditor] Layout pipeline took ${Math.round(jt)}ms total (${G.length} blocks, ${ce.length} measures)`);}catch(Z){console.error("[PagedEditor] Layout pipeline error:",Z);}g.onLayoutComplete(q),re(false);},[ne,oe,_,V,ie,Q,ae,p,f,g,s,i,d,l,n,c,t,a,S,h,C,o,r,m]);useLayoutEffect(()=>{let H=J.current;if(!H)return;J.current=null,D.current=0;let U=C.current,q=S()??(U?findVerticalScrollParentOrRoot(U):null);if(!U||!q?.isConnected)return;cr(H,U,q);let re=requestAnimationFrame(()=>{q.isConnected&&cr(H,U,q);});return ()=>cancelAnimationFrame(re)},[x,S,C]);let z=useRef(null),W=useCallback(H=>{if(z.current){z.current.state=H;return}let U=requestAnimationFrame(()=>{let q=z.current;z.current=null,q&&L(q.state);});z.current={rafId:U,state:H};},[L]);return useEffect(()=>()=>{z.current&&(cancelAnimationFrame(z.current.rafId),z.current=null);},[]),{layout:x,blocks:w,measures:R,decorationSyncToken:T,notifyDecorationLayer:k,contentWidth:ne,runLayoutPipeline:L,scheduleLayout:W}}function ja(e,t,o){let r=e.parentElement?.querySelector('[data-testid="selection-overlay"]');if(!r)return null;let n=r.getBoundingClientRect(),c=findBodyPmSpans(e);for(let i of c){let d=Number(i.dataset.pmStart),l=Number(i.dataset.pmEnd);if(i.classList.contains("layout-run-tab")){if(t>=d&&t<l){let p=i.getBoundingClientRect(),f=i.closest(".layout-page"),a=f?Number(f.dataset.pageNumber)-1:0,C=i.closest(".layout-line"),m=C?C.offsetHeight:16;return {x:(p.left-n.left)/o,y:(p.top-n.top)/o,height:m,pageIndex:a}}continue}if(t>=d&&t<=l&&i.firstChild?.nodeType===Node.TEXT_NODE){let p=i.firstChild,f=Math.min(t-d,p.length),a=i.ownerDocument;if(!a)continue;let C=a.createRange();C.setStart(p,f),C.setEnd(p,f);let m=C.getBoundingClientRect(),h=i.closest(".layout-page"),g=h?Number(h.dataset.pageNumber)-1:0,S=i.closest(".layout-line"),b=S?S.offsetHeight:16;return {x:(m.left-n.left)/o,y:(m.top-n.top)/o,height:b,pageIndex:g}}}let s=findBodyEmptyRuns(e);for(let i of s){let d=i.closest(".layout-paragraph");if(!d)continue;let l=Number(d.dataset.pmStart),p=Number(d.dataset.pmEnd);if(t>=l&&t<=p){let f=i.getBoundingClientRect(),a=d.closest(".layout-page"),C=a?Number(a.dataset.pageNumber)-1:0,m=i.closest(".layout-line"),h=m?m.offsetHeight:16;return {x:(f.left-n.left)/o,y:(f.top-n.top)/o,height:h,pageIndex:C}}}return null}function Xa(e,t,o,r,n){let c=[],s=findBodyPmSpans(e);for(let i of s){let d=Number(i.dataset.pmStart);if(Number(i.dataset.pmEnd)<=o||d>=r)continue;if(i.classList.contains("layout-run-tab")){let g=i.getBoundingClientRect(),S=i.closest(".layout-page"),b=S?Number(S.dataset.pageNumber)-1:0;c.push({x:(g.left-t.left)/n,y:(g.top-t.top)/n,width:g.width/n,height:g.height/n,pageIndex:b});continue}let p=null;if(i.firstChild?.nodeType===Node.TEXT_NODE?p=i.firstChild:i.firstChild?.nodeType===Node.ELEMENT_NODE&&i.firstChild.tagName==="A"&&i.firstChild.firstChild?.nodeType===Node.TEXT_NODE&&(p=i.firstChild.firstChild),!p)continue;let f=i.ownerDocument;if(!f)continue;let a=Math.max(0,o-d),C=Math.min(p.length,r-d);if(a>=C)continue;let m=f.createRange();m.setStart(p,a),m.setEnd(p,C);let h=m.getClientRects();for(let g of Array.from(h)){let S=i.closest(".layout-page"),b=S?Number(S.dataset.pageNumber)-1:0;c.push({x:(g.left-t.left)/n,y:(g.top-t.top)/n,width:g.width/n,height:g.height/n,pageIndex:b});}}return c}function qa(e,t){let o=e.querySelectorAll(".layout-table-cell-selected");for(let i of Array.from(o))i.classList.remove("layout-table-cell-selected");let r=t.selection;if(!("$anchorCell"in r&&typeof r.forEachCell=="function")||!r.forEachCell)return;let c=[];r.forEachCell((i,d)=>{c.push([d,d+i.nodeSize]);});let s=e.querySelectorAll(".layout-table-cell");for(let i of Array.from(s)){let d=i,l=d.dataset.pmStart;if(l===void 0)continue;let p=Number(l);for(let[f,a]of c)if(p>=f&&p<a){d.classList.add("layout-table-cell-selected");break}}}function Ja(e){let{layout:t,blocks:o,measures:r,zoom:n,containerRef:c,pagesContainerRef:s,hiddenPMRef:i,syncCoordinator:d,isImageInteractingRef:l,onSelectionChangeRef:p}=e,[f,a]=useState([]),[C,m]=useState(null),[h,g]=useState(null),S=useRef(null),b=useCallback((x,y)=>{let w=x.tagName==="IMG"?x:x.querySelector("img"),P=(w??x).getBoundingClientRect();return {element:w??x,pmPos:y,width:Math.round(P.width/n),height:Math.round(P.height/n)}},[n]),u=useCallback(x=>{let{from:y,to:w}=x.selection;S.current!==x&&(S.current=x,p.current?.(y,w));let P=s.current;if(P&&qa(P,x),!(!t||o.length===0))if(y===w){let R=P?ja(P,y,n):null;if(R)m(R);else {let E=s.current?.parentElement?.querySelector('[data-testid="selection-overlay"]'),T=s.current?.querySelector(".layout-page");if(E&&T){let I=E.getBoundingClientRect(),k=T.getBoundingClientRect(),F=getCaretPosition(t,o,r,y);m(F?{...F,x:F.x+(k.left-I.left)/n,y:F.y+(k.top-I.top)/n}:null);}else m(null);}a([]);}else {let R=s.current?.parentElement?.querySelector('[data-testid="selection-overlay"]');if(R&&s.current){let E=R.getBoundingClientRect(),T=Xa(s.current,E,y,w,n);if(T.length>0)a(T);else {let I=s.current.querySelector(".layout-page");if(I){let k=I.getBoundingClientRect(),F=(k.left-E.left)/n,B=(k.top-E.top)/n,j=selectionToRects(t,o,r,y,w).map(_=>({..._,x:_.x+F,y:_.y+B}));a(j);}else a([]);}}else a([]);m(null);}},[t,o,r,n,p,s]),v=useCallback(x=>{let{selection:y}=x;y instanceof NodeSelection&&y.node.type.name==="image"?(a([]),m(null)):d.isSafeToRender()&&u(x),requestAnimationFrame(()=>{let w=i.current?.getView();if(!w){g(null);return}let{selection:P}=w.state;if(P instanceof NodeSelection&&P.node.type.name==="image"){let R=P.from,E=s.current?findBodyPmAnchor(s.current,R):null;if(E){g(b(E,R));return}}l.current||g(null);});},[u,b,d,i,l,s]);return useEffect(()=>{let x=c.current;if(!x)return;let y=new ResizeObserver(()=>{let w=i.current?.getState();w&&u(w);});return y.observe(x),()=>y.disconnect()},[u,c,i]),useEffect(()=>{let x=i.current?.getState();t&&x&&u(x);},[t,u,i]),{selectionRects:f,caretPosition:C,selectedImageInfo:h,setSelectionRects:a,setCaretPosition:m,setSelectedImageInfo:g,buildImageSelectionInfo:b,updateSelectionOverlay:u,handleSelectionChange:v}}function ts(e){let{pagesContainerRef:t,hiddenPMRef:o,zoom:r,isImageInteractingRef:n,getPositionFromMouse:c}=e,s=useCallback((a,C,m)=>{let h=o.current?.getView();if(h)try{let g=h.state.doc.nodeAt(a);if(!g||g.type.name!=="image")return;let S=h.state.tr.setNodeMarkup(a,void 0,{...g.attrs,width:C,height:m});h.dispatch(S),o.current?.setNodeSelection(a);}catch{}},[o]),i=useCallback(()=>{n.current=true;},[n]),d=useCallback(()=>{n.current=false;},[n]),l=useCallback((a,C,m)=>{let h=o.current?.getView();if(h)try{let g=h.state.doc.nodeAt(a);if(!g||g.type.name!=="image")return;if(g.attrs.displayMode==="float"||g.attrs.wrapType&&["square","tight","through"].includes(g.attrs.wrapType)){let b=t.current?.querySelectorAll(".layout-page");if(!b||b.length===0)return;let u=null;for(let T of b){let I=T.getBoundingClientRect();if(m>=I.top&&m<=I.bottom){u=T.querySelector(".layout-page-content");break}}if(u||(u=b[b.length-1].querySelector(".layout-page-content")),!u)return;let v=u.getBoundingClientRect(),x=(C-v.left)/r,y=(m-v.top)/r,w=pixelsToEmu(x),P=pixelsToEmu(y),R={horizontal:{posOffset:w,relativeTo:"margin"},vertical:{posOffset:P,relativeTo:"margin"}},E=h.state.tr.setNodeMarkup(a,void 0,{...g.attrs,position:R});h.dispatch(E),o.current?.setNodeSelection(a);}else {let b=c(C,m);if(b===null||b===a||b===a+1)return;let u=h.state.tr;if(b<=a)u=u.delete(a,a+g.nodeSize),u=u.insert(b,g),o.current?.setNodeSelection(b);else {u=u.delete(a,a+g.nodeSize);let v=b-g.nodeSize;u=u.insert(Math.min(v,u.doc.content.size),g),o.current?.setNodeSelection(Math.min(v,u.doc.content.size-1));}h.dispatch(u);}}catch{}},[c,r,o,t]),p=useCallback(()=>{n.current=true;},[n]),f=useCallback(()=>{n.current=false;},[n]);return {handleImageResize:s,handleImageResizeStart:i,handleImageResizeEnd:d,handleImageDragMove:l,handleImageDragStart:p,handleImageDragEnd:f}}function rs(e){let{layout:t,blocks:o,measures:r,pagesContainerRef:n,hiddenPMRef:c,getScrollContainer:s}=e,i=useRef(null);useEffect(()=>()=>{i.current?.abort(),i.current=null;},[]);let d=useCallback((f,a=false)=>{if(!Number.isInteger(f)||f<0)return;let C=n.current;if(!C)return;i.current?.abort();let m=new AbortController;i.current=m;let{signal:h}=m,g=()=>findBodyPmAnchor(C,f);if(!a){let E={block:"center",inline:"nearest",behavior:"smooth"},T=g();if(T){T.scrollIntoView(E);return}let I=t,k=o,F=r;if(!I||k.length===0||F.length!==k.length)return;let B=null,A=getCaretPosition(I,k,F,f);if(A?B=A.pageIndex:B=findPageIndexContainingPmPos(I,f),B==null)return;let _=C.querySelectorAll(".layout-page")[B];if(!_)return;_.scrollIntoView(E),dn(()=>{if(!C.isConnected)return;let V=g();V&&V.scrollIntoView(E);},h);return}let S=s()??findVerticalScrollParentOrRoot(C),b=()=>{let E=g();return E?(cn(E,S),true):false};if(b())return;let u=t,v=o,x=r;if(!u||v.length===0||x.length!==v.length)return;let y=null,w=getCaretPosition(u,v,x,f);if(w?y=w.pageIndex:y=findPageIndexContainingPmPos(u,f),y==null)return;let R=C.querySelectorAll(".layout-page")[y];R&&(cn(R,S),dn(()=>{if(!C.isConnected)return;let E=g();E?cn(E,S):b();},h));},[t,o,r,s,n]),l=useCallback(f=>{if(!Number.isInteger(f)||f<1||!t||f>t.pages.length)return;let a=t.pages[f-1];for(let m of a.fragments)if(typeof m.pmStart=="number"){d(m.pmStart,true);return}n.current?.querySelectorAll(".layout-page")[f-1]?.scrollIntoView({block:"center",inline:"nearest"});},[t,d,n]),p=useCallback(f=>{let a=c.current?.getState();if(!a)return false;let C=findStartPosForParaId(a.doc,f);if(C==null||C<0)return false;d(C,true);let m=i.current?.signal;if(!m)return true;let h=a.doc.nodeAt(C),g=h?.isTextblock===true?Math.min(C+1+h.content.size,a.doc.content.size):Math.min(C+1,a.doc.content.size);return dn(()=>{c.current&&(c.current.setSelection(g),c.current.focus());},m),true},[d,c]);return {scrollToPositionImpl:d,scrollToPageImpl:l,scrollToParaIdImpl:p}}function eo(e,t){try{let o=e.state.doc.resolve(t+1);for(let r=o.depth;r>=0;r--){let n=o.node(r);if(n.type.name==="table")return {node:n,tablePos:o.before(r)}}}catch{}return null}function is(e,t,o){let r=eo(e,t);if(!r)return null;let n=r.node.attrs.columnWidths;return !n||n[o]===void 0||n[o+1]===void 0?null:{left:n[o],right:n[o+1]}}function as(e,t,o){let r=eo(e,t);if(!r)return null;let n=null,c=0;return r.node.forEach(s=>{if(c===o){let i=s.attrs.height;i&&(n=i);}c++;}),n}function ss(e,t,o){let r=eo(e,t);if(!r)return null;let n=r.node.attrs.columnWidths;return !n||n[o]===void 0?null:n[o]}function ls(e,t){let{pmStart:o,colIdx:r,newLeft:n,newRight:c}=t,s=eo(e,o);if(!s)return;let{node:i,tablePos:d}=s,l=e.state.tr,p=[...i.attrs.columnWidths??[]];p[r]=n,p[r+1]=c,l.setNodeMarkup(d,void 0,{...i.attrs,columnWidths:p});let f=d+1;i.forEach(a=>{let C=f+1,m=0;a.forEach(h=>{let g=h.attrs.colspan||1;if(m===r||m===r+1){let S=m===r?n:c;l.setNodeMarkup(l.mapping.map(C),void 0,{...h.attrs,width:S,widthType:"dxa",colwidth:null});}C+=h.nodeSize,m+=g;}),f+=a.nodeSize;}),e.dispatch(l);}function cs(e,t){let{pmStart:o,rowIdx:r,newHeight:n}=t,c=eo(e,o);if(!c)return;let{node:s,tablePos:i}=c,d=e.state.tr,l=i+1,p=0;s.forEach(f=>{p===r&&d.setNodeMarkup(d.mapping.map(l),void 0,{...f.attrs,height:n,heightRule:"atLeast"}),l+=f.nodeSize,p++;}),e.dispatch(d);}function ds(e,t){let{pmStart:o,colIdx:r,newWidth:n}=t,c=eo(e,o);if(!c)return;let{node:s,tablePos:i}=c,d=e.state.tr,l=[...s.attrs.columnWidths??[]];l[r]=n,d.setNodeMarkup(i,void 0,{...s.attrs,columnWidths:l});let p=i+1;s.forEach(f=>{let a=p+1,C=0;f.forEach(m=>{let h=m.attrs.colspan||1;C===r&&d.setNodeMarkup(d.mapping.map(a),void 0,{...m.attrs,width:n,widthType:"dxa",colwidth:null}),a+=m.nodeSize,C+=h;}),p+=f.nodeSize;}),e.dispatch(d);}var bn=15,gr=300,nf=200;function us(e){let{hiddenPMRef:t}=e,o=useRef(false),r=useRef(0),n=useRef(0),c=useRef(0),s=useRef({left:0,right:0}),i=useRef(null),d=useRef(false),l=useRef(0),p=useRef(0),f=useRef(0),a=useRef(0),C=useRef(null),m=useRef(false),h=useRef(false),g=useRef(0),S=useRef(0),b=useRef(0),u=useRef(0),v=useRef(null),x=useCallback((R,E)=>{if(R.classList.contains("layout-table-resize-handle")){E.preventDefault(),E.stopPropagation(),o.current=true,r.current=E.clientX,i.current=R,R.classList.add("dragging");let T=parseInt(R.dataset.columnIndex??"0",10);n.current=T,c.current=parseInt(R.dataset.tablePmStart??"0",10);let I=t.current?.getView();if(I){let k=is(I,c.current,T);k&&(s.current=k);}return true}if(R.classList.contains("layout-table-row-resize-handle")||R.classList.contains("layout-table-edge-handle-bottom")){E.preventDefault(),E.stopPropagation(),d.current=true,l.current=E.clientY,C.current=R,m.current=R.dataset.isEdge==="bottom",R.classList.add("dragging");let T=parseInt(R.dataset.rowIndex??"0",10);p.current=T,f.current=parseInt(R.dataset.tablePmStart??"0",10);let I=t.current?.getView();if(I){let k=as(I,f.current,T);if(k!=null)a.current=k;else {let B=R.closest(".layout-table")?.querySelector(`[data-row-index="${T}"]`),A=B?B.getBoundingClientRect().height:30;a.current=Math.round(A*bn);}}return true}if(R.classList.contains("layout-table-edge-handle-right")){E.preventDefault(),E.stopPropagation(),h.current=true,g.current=E.clientX,v.current=R,R.classList.add("dragging");let T=parseInt(R.dataset.columnIndex??"0",10);S.current=T,b.current=parseInt(R.dataset.tablePmStart??"0",10);let I=t.current?.getView();if(I){let k=ss(I,b.current,T);k!=null&&(u.current=k);}return true}return false},[t]),y=useCallback(R=>{if(o.current){R.preventDefault();let E=R.clientX-r.current;if(i.current){let T=parseFloat(i.current.style.left);i.current.style.left=`${T+E}px`,r.current=R.clientX;let I=Math.round(E*bn),k=s.current.left+I,F=s.current.right-I;k>=gr&&F>=gr&&(s.current={left:k,right:F});}return true}if(d.current){R.preventDefault();let E=R.clientY-l.current;if(C.current){let T=parseFloat(C.current.style.top);C.current.style.top=`${T+E}px`,l.current=R.clientY;let I=Math.round(E*bn),k=a.current+I;k>=nf&&(a.current=k);}return true}if(h.current){R.preventDefault();let E=R.clientX-g.current;if(v.current){let T=parseFloat(v.current.style.left);v.current.style.left=`${T+E}px`,g.current=R.clientX;let I=Math.round(E*bn),k=u.current+I;k>=gr&&(u.current=k);}return true}return false},[]),w=useCallback(()=>{if(o.current){o.current=false,i.current&&(i.current.classList.remove("dragging"),i.current=null);let R=t.current?.getView();if(R){let{left:E,right:T}=s.current;ls(R,{pmStart:c.current,colIdx:n.current,newLeft:E,newRight:T});}return true}if(d.current){d.current=false,C.current&&(C.current.classList.remove("dragging"),C.current=null);let R=t.current?.getView();return R&&cs(R,{pmStart:f.current,rowIdx:p.current,newHeight:a.current}),true}if(h.current){h.current=false,v.current&&(v.current.classList.remove("dragging"),v.current=null);let R=t.current?.getView();return R&&ds(R,{pmStart:b.current,colIdx:S.current,newWidth:u.current}),true}return false},[t]),P=useCallback(()=>o.current||d.current||h.current,[]);return {tryStartFromMouseDown:x,handleMouseMoveUpdate:y,tryCommit:w,isAnyResizeActive:P}}var yf=5;function gs(e){let{pagesContainerRef:t,hiddenPMRef:o,layout:r,blocks:n,measures:c,zoom:s,readOnly:i,hfEditMode:d,onBodyClick:l,onContextMenu:p,onHyperlinkClick:f,onHeaderFooterDoubleClick:a,setSelectedImageInfo:C,setSelectionRects:m,setCaretPosition:h,buildImageSelectionInfo:g,setIsFocused:S,scrollToPositionImpl:b}=e,u=useRef(false),v=useRef(null),x=us({hiddenPMRef:o}),y=useRef(false),w=useRef(null),P=useRef(null),R=useRef(null),[E,T]=useState(null),I=useRef(null),k=useCallback(()=>{I.current&&(clearTimeout(I.current),I.current=null);},[]);useEffect(()=>()=>{I.current&&clearTimeout(I.current);},[]);let F=useRef(()=>{}),B=useCallback((D,L)=>{F.current(D,L);},[]),{updateMousePosition:A,stopAutoScroll:j}=b$4({pagesContainerRef:t,onScrollExtendSelection:B}),_=useCallback((D,L)=>{if(!t.current||!r)return null;let z=clickToPositionDom(t.current,D,L,s);if(z!==null)return z;let W=t.current.querySelectorAll(".layout-page"),H=-1,U=null;for(let O=0;O<W.length;O++){let ce=W[O].getBoundingClientRect();if(D>=ce.left&&D<=ce.right&&L>=ce.top&&L<=ce.bottom){H=O,U=ce;break}}if(H<0||!U)return null;let q=(D-U.left)/s,re=(L-U.top)/s,Z=r.pages[H];if(!Z)return null;let te={pageIndex:H,page:Z,pageY:re},G=hitTestFragment(te,n,c,{x:q,y:re});if(!G)return null;if(G.fragment.kind==="table"){let O=hitTestTableCell(te,n,c,{x:q,y:re});return clickToPosition(G,O)}return clickToPosition(G)},[r,n,c,s,t]),V=useCallback(D=>{let L=o.current?.getView();if(!L)return null;try{let z=L.state.doc.resolve(D);for(let W=z.depth;W>0;W--){let H=z.node(W);if(H.type.name==="tableCell"||H.type.name==="tableHeader")return z.before(W)}}catch{}return null},[o]),oe=useCallback(D=>{if(!o.current)return;if(D.button===2){D.preventDefault();return}if(D.button!==0||(T(null),k(),D.target.closest("a[href]")&&D.preventDefault(),i))return;if(d&&l){let U=D.target;if(!(U.closest(".layout-page-header")||U.closest(".layout-page-footer")||U.closest(".hf-inline-editor"))){D.preventDefault(),D.stopPropagation(),l();return}}if(!d){let U=D.target;if(U.closest(".layout-page-header")||U.closest(".layout-page-footer")){D.preventDefault(),o.current.setSelection(0),o.current.focus(),S(true);return}}let z=D.target;if(x.tryStartFromMouseDown(z,D))return;let W=findImageElement(z);if(W){D.preventDefault(),D.stopPropagation();let U=W.dataset.pmStart;if(U!==void 0){let q=parseInt(U,10);o.current.setNodeSelection(q),C(g(W,q)),m([]),h(null);}o.current.focus(),S(true);return}C(null),D.preventDefault();let H=_(D.clientX,D.clientY);if(H!==null){let U=V(H);w.current=U,y.current=false,P.current=null,R.current=null,u.current=true,v.current=H,o.current.setSelection(H);}else {w.current=null,y.current=false;let U=o.current.getView();if(U){let q=Math.max(0,U.state.doc.content.size-1);o.current.setSelection(q),v.current=q,u.current=true;}}o.current.focus(),S(true);},[o,i,d,l,_,V,k,C,m,h,g,S]);F.current=(D,L)=>{if(!u.current||v.current===null||!o.current)return;let z=_(D,L);z!==null&&o.current.setSelection(v.current,z);};let ie=useCallback(D=>{if(x.handleMouseMoveUpdate(D)||!u.current||v.current===null||!o.current||!t.current)return;A(D.clientX,D.clientY);let L=_(D.clientX,D.clientY);if(L===null)return;if(w.current!==null){if(y.current){let H=V(L);if(H!==null){o.current.setCellSelection(w.current,H);return}}let W=V(L);if(W!==null&&W!==w.current){y.current=true,o.current.setCellSelection(w.current,W),R.current=null;return}if(P.current!==null&&L===P.current){if(R.current===null)R.current=D.clientX;else if(Math.abs(D.clientX-R.current)>=yf){y.current=true,o.current.setCellSelection(w.current,w.current),R.current=null;return}}else R.current=null,P.current=L;}let z=v.current;o.current.setSelection(z,L);},[_,V,A,o,t]),Q=useCallback(()=>{x.tryCommit()||(u.current=false,y.current=false,P.current=null,R.current=null,j());},[j,x]);useEffect(()=>(window.addEventListener("mousemove",ie),window.addEventListener("mouseup",Q),()=>{window.removeEventListener("mousemove",ie),window.removeEventListener("mouseup",Q);}),[ie,Q]);let ae=useCallback(D=>{if(i||u.current||y.current||x.isAnyResizeActive())return;let L=t.current;if(!L)return;let z=detectTableInsertHover({mouseX:D.clientX,mouseY:D.clientY,pagesContainer:L,target:D.target,hfEditMode:d??null});if(!z){I.current||(I.current=setTimeout(()=>{T(null),I.current=null;},TABLE_INSERT_HIDE_DELAY_MS));return}let W=L.parentElement;if(!W)return;let H=W.getBoundingClientRect();T({type:z.type,x:z.clientX-H.left,y:z.clientY-H.top,cellPmPos:z.cellPmPos}),k();},[i,k,d,t]),ne=useCallback(D=>{if(D.preventDefault(),D.stopPropagation(),!E||!o.current)return;let L=o.current.getView();if(!L)return;let{type:z,cellPmPos:W}=E,H=L.state.tr.setSelection(TextSelection.create(L.state.doc,W+1));L.dispatch(H),z==="row"?addRowBelow(L.state,L.dispatch):addColumnRight(L.state,L.dispatch),T(null),o.current.focus();},[E,o]),ge=useCallback(D=>{let L=D.target.closest("a[href]");if(L){D.preventDefault();let z=L.getAttribute("href")||"";if(z.startsWith("#")){let W=z.substring(1);if(W&&o.current){let H=o.current.getView();if(H){let U=null;H.state.doc.descendants((q,re)=>{if(U!==null)return false;if(q.type.name==="paragraph"&&q.attrs.bookmarks?.some(te=>te.name===W))return U=re,false}),U!==null&&(b(U),o.current.setSelection(U+1));}}}else if(f){let W=o.current?.getView();if(!(W&&W.state.selection.from!==W.state.selection.to)){let U=L.textContent||"",q=L.getAttribute("title")||void 0,re=L.closest(".ep-root.paged-editor");if(re){let Z=re.getBoundingClientRect(),te=L.getBoundingClientRect(),G={top:te.bottom-Z.top+4,left:te.left-Z.left};f({href:z,displayText:U,tooltip:q,position:G});}}}return}if(D.detail===2&&a){let z=D.target,W=z.closest(".layout-page-header"),H=z.closest(".layout-page-footer");if(W||H){let U=z.closest("[data-page-number]"),q=U?Number(U.dataset.pageNumber):1;if(W){D.preventDefault(),D.stopPropagation(),a("header",q);return}if(H){D.preventDefault(),D.stopPropagation(),a("footer",q);return}}}if(D.detail===2&&o.current){let z=_(D.clientX,D.clientY);if(z!==null){let W=V(z);if(W!==null){D.preventDefault(),D.stopPropagation(),o.current.setCellSelection(W,W);return}let H=o.current.getView();if(H){let{doc:U}=H.state,q=U.resolve(z),re=q.parent;if(re.isTextblock){let Z=re.textContent,te=q.parentOffset,[G,O]=findWordBoundaries(Z,te),xe=q.start()+G,ce=q.start()+O;xe<ce&&o.current.setSelection(xe,ce);}}}}if(D.detail===3&&o.current){let z=_(D.clientX,D.clientY);if(z!==null){let W=o.current.getView();if(W){let{doc:H}=W.state,U=H.resolve(z),q=U.start(U.depth),re=U.end(U.depth);o.current.setSelection(q,re);}}}},[_,a,f,o,V,b]),he=useCallback(D=>{if(!p)return;D.preventDefault();let L=o.current?.getView();if(!L)return;let z=G=>{let O=L.state.doc.nodeAt(G);if(!O||O.type.name!=="image")return null;let xe=O.attrs.wrapType??"inline",ce=O.attrs.cssFloat;return {pos:G,wrapType:xe,cssFloat:ce}},W=null,H=hitTestImage(D.target);if(H&&(W=z(H.pos),W&&(W.inlinePositionEmu=captureInlinePositionEmu(H.imageEl,s))),!W){let G=L.state.selection;if(G instanceof NodeSelection&&G.node.type.name==="image"&&(W=z(G.from),W)){let O=t.current?.querySelector(`.layout-run-image[data-pm-start="${G.from}"]`);O&&(W.inlinePositionEmu=captureInlinePositionEmu(O,s));}}let{from:U,to:q}=L.state.selection,re=_(D.clientX,D.clientY);re!==null&&(U===q||re<U||re>q)&&(o.current?.setSelection(re),o.current?.focus(),S(true));let Z=o.current?.getState(),te=Z?Z.selection.from!==Z.selection.to:false;p({x:D.clientX,y:D.clientY,hasSelection:te,image:W});},[p,_,s,o,t,S]),J=useCallback(()=>T(null),[]);return {handlePagesMouseDown:oe,handlePagesMouseMove:ae,handlePagesClick:ge,handlePagesContextMenu:he,handleTableInsertClick:ne,tableInsertButton:E,clearTableInsertTimer:k,hideTableInsertButton:J,getPositionFromMouse:_}}function hs(e){let{hiddenPMRef:t,layout:o,runLayoutPipeline:r,scrollToPositionImpl:n,scrollToParaIdImpl:c,scrollToPageImpl:s,setIsFocused:i}=e;return {getDocument:()=>t.current?.getDocument()??null,getState:()=>t.current?.getState()??null,getView:()=>t.current?.getView()??null,focus:()=>{t.current?.focus(),i(true);},blur:()=>{t.current?.blur(),i(false);},isFocused:()=>t.current?.isFocused()??false,dispatch:d=>t.current?.dispatch(d),undo:()=>t.current?.undo()??false,redo:()=>t.current?.redo()??false,setSelection:(d,l)=>t.current?.setSelection(d,l),getLayout:()=>o,relayout:()=>{let d=t.current?.getState();d&&r(d);},scrollToPosition:n,scrollToParaId:c,scrollToPage:s}}function bs(e){let{ref:t,hiddenPMRef:o,layout:r,runLayoutPipeline:n,scrollToPositionImpl:c,scrollToParaIdImpl:s,scrollToPageImpl:i,setIsFocused:d,onReadyRef:l}=e;useImperativeHandle(t,()=>hs({hiddenPMRef:o,layout:r,runLayoutPipeline:n,scrollToPositionImpl:c,scrollToParaIdImpl:s,scrollToPageImpl:i,setIsFocused:d}),[r,n,c,s,i]),useEffect(()=>{l.current&&o.current&&l.current(hs({hiddenPMRef:o,layout:r,runLayoutPipeline:n,scrollToPositionImpl:c,scrollToParaIdImpl:s,scrollToPageImpl:i,setIsFocused:d}));},[r,n,s,i]);}function vs(e){let{hiddenPMRef:t,runLayoutPipeline:o,updateSelectionOverlay:r,headerContent:n,footerContent:c,firstPageHeaderContent:s,firstPageFooterContent:i}=e;useEffect(()=>{let l=()=>{let p=t.current?.getView();p&&(resetCanvasContext(),clearAllCaches(),o(p.state),r(p.state));};return window.document.fonts.addEventListener("loadingdone",l),()=>{window.document.fonts.removeEventListener("loadingdone",l);}},[]);let d=useRef(0);useEffect(()=>{if(d.current===0){d.current=1;return}let l=t.current?.getView();l&&o(l.state);},[n,c,s,i,o,t]);}function Cs({type:e,x:t,y:o,onMouseDown:r,onMouseEnter:n,onMouseLeave:c}){let s=e==="row"?"Insert row below":"Insert column to the right";return jsx("button",{type:"button",onMouseDown:r,onMouseEnter:n,onMouseLeave:c,style:{position:"absolute",left:t,top:o,width:20,height:20,borderRadius:"4px",border:"1px solid #dadce0",backgroundColor:"#f8f9fa",color:"#5f6368",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:200,padding:0,boxShadow:"none"},title:s,"aria-label":s,children:jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:jsx("path",{d:"M6 1v10M1 6h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})}var Ps={position:"absolute",zIndex:1e4,background:"white",borderRadius:"8px",boxShadow:"0 1px 3px rgba(0,0,0,0.12), 0 4px 12px rgba(0,0,0,0.08)",border:"1px solid #dadce0",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontSize:"14px"},Tf={...Ps,padding:"8px 12px",display:"flex",alignItems:"center",gap:"8px",maxWidth:"400px"},wf={...Ps,padding:"12px",width:"320px"},yr={width:"20px",height:"20px",flexShrink:0,color:"#5f6368",display:"flex",alignItems:"center",justifyContent:"center"},Ef={color:"#1a73e8",textDecoration:"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"220px",fontSize:"14px",lineHeight:"20px",cursor:"pointer"},If={width:"28px",height:"28px",display:"flex",alignItems:"center",justifyContent:"center",border:"none",background:"none",borderRadius:"4px",cursor:"pointer",color:"#5f6368",padding:0,flexShrink:0},kf={width:"1px",height:"20px",background:"#dadce0",flexShrink:0},Ss={display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"},Rs={flex:1,padding:"6px 8px",border:"1px solid #dadce0",borderRadius:"4px",fontSize:"14px",outline:"none",lineHeight:"20px"},Mf={color:"#1a73e8",fontWeight:600,fontSize:"14px",border:"none",background:"none",cursor:"pointer",padding:"6px 12px",borderRadius:"4px",flexShrink:0},to={width:18,height:18,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};function Df(){return jsxs("svg",{...to,children:[jsx("circle",{cx:"12",cy:"12",r:"10"}),jsx("path",{d:"M2 12h20"}),jsx("path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"})]})}function Ff(){return jsxs("svg",{...to,children:[jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})}function Lf(){return jsx("svg",{...to,children:jsx("path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})})}function Hf(){return jsxs("svg",{...to,children:[jsx("path",{d:"M18.84 12.25l1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71"}),jsx("path",{d:"M5.17 11.75l-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71"}),jsx("line",{x1:"8",y1:"2",x2:"8",y2:"5"}),jsx("line",{x1:"2",y1:"8",x2:"5",y2:"8"}),jsx("line",{x1:"16",y1:"19",x2:"16",y2:"22"}),jsx("line",{x1:"19",y1:"16",x2:"22",y2:"16"})]})}function Af(){return jsxs("svg",{...to,children:[jsx("line",{x1:"4",y1:"9",x2:"20",y2:"9"}),jsx("line",{x1:"4",y1:"15",x2:"20",y2:"15"}),jsx("line",{x1:"10",y1:"3",x2:"8",y2:"21"}),jsx("line",{x1:"16",y1:"3",x2:"14",y2:"21"})]})}function Of(){return jsxs("svg",{...to,children:[jsx("path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}),jsx("path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"})]})}function vr({title:e,onClick:t,children:o}){return jsx("button",{type:"button",className:"ep-hyperlink-popup__icon-btn",style:If,title:e,onClick:t,children:o})}function Ts({data:e,onNavigate:t,onCopy:o,onEdit:r,onRemove:n,onClose:c,readOnly:s}){let{t:i}=b(),[d,l]=useState("view"),[p,f]=useState(""),[a,C]=useState(""),m=useRef(null),h=useRef(null);useEffect(()=>{e&&(l("view"),f(e.displayText),C(e.href));},[e]),useEffect(()=>{d==="edit"&&requestAnimationFrame(()=>{h.current?.focus(),h.current?.select();});},[d]),useEffect(()=>{if(!e)return;let y=false,w=R=>{m.current&&!m.current.contains(R.target)&&c();},P=setTimeout(()=>{y||document.addEventListener("mousedown",w);},0);return ()=>{y=true,clearTimeout(P),document.removeEventListener("mousedown",w);}},[e,c]),useEffect(()=>{if(!e)return;let y=w=>{w.key==="Escape"&&(d==="edit"?l("view"):c());};return document.addEventListener("keydown",y),()=>document.removeEventListener("keydown",y)},[e,d,c]);let g=useCallback(()=>{e&&(o(e.href),toast("Link copied to clipboard"));},[e,o]),S=useCallback(()=>{e&&(f(e.displayText),C(e.href),l("edit"));},[e]),b$1=useCallback(()=>{let y=a.trim();y&&r(p.trim()||y,y);},[p,a,r]),u=useCallback(y=>{y.key==="Enter"&&(y.preventDefault(),b$1());},[b$1]);if(!e)return null;let v=e.position.top,x=e.position.left;return d==="edit"?jsxs("div",{ref:m,className:"ep-hyperlink-popup ep-hyperlink-popup--edit",style:{...wf,top:v,left:x},onMouseDown:y=>y.stopPropagation(),children:[jsxs("div",{style:Ss,children:[jsx("span",{style:yr,children:jsx(Af,{})}),jsx("input",{ref:h,type:"text",style:Rs,value:p,onChange:y=>f(y.target.value),onKeyDown:u,placeholder:i("hyperlinkPopup.displayTextPlaceholder"),onFocus:y=>y.target.style.borderColor="#1a73e8",onBlur:y=>y.target.style.borderColor="#dadce0"})]}),jsxs("div",{style:{...Ss,marginBottom:0},children:[jsx("span",{style:yr,children:jsx(Of,{})}),jsx("input",{type:"text",style:Rs,value:a,onChange:y=>C(y.target.value),onKeyDown:u,placeholder:i("hyperlinkPopup.urlPlaceholder"),onFocus:y=>y.target.style.borderColor="#1a73e8",onBlur:y=>y.target.style.borderColor="#dadce0"}),jsx("button",{type:"button",style:{...Mf,opacity:a.trim()?1:.5,cursor:a.trim()?"pointer":"default"},onClick:b$1,disabled:!a.trim(),children:i("common.apply")})]})]}):jsxs("div",{ref:m,className:"ep-hyperlink-popup",style:{...Tf,top:v,left:x},onMouseDown:y=>y.stopPropagation(),children:[jsx("span",{style:yr,children:jsx(Df,{})}),jsx("a",{href:e.href,style:Ef,title:e.href,target:"_blank",rel:"noopener noreferrer",onClick:y=>{y.preventDefault(),t(e.href);},children:e.href}),jsx("span",{style:kf}),jsx(vr,{title:i("hyperlinkPopup.copyLink"),onClick:g,children:jsx(Ff,{})}),!s&&jsxs(Fragment,{children:[jsx(vr,{title:i("hyperlinkPopup.editLink"),onClick:S,children:jsx(Lf,{})}),jsx(vr,{title:i("hyperlinkPopup.removeLink"),onClick:n,children:jsx(Hf,{})})]})]})}var Uf=forwardRef(function(t,o){let{document:r,styles:n,theme:c,sectionProperties:s,finalSectionProperties:i,headerContent:d,footerContent:l,firstPageHeaderContent:p,firstPageFooterContent:f,readOnly:a$1=false,pageGap:C=24,zoom:m=1,onDocumentChange:h,onSelectionChange:g,externalPlugins:S=Pa,extensionManager:b,onReady:u,onRenderedDomContextReady:v,pluginOverlays:x,onHeaderFooterDoubleClick:y,hfEditMode:w,onBodyClick:P,className:R,style:E,commentsSidebarOpen:T=false,sidebarOverlay:I,scrollContainerRef:k,onHyperlinkClick:F,onContextMenu:B,onAnchorPositionsChange:A,onTotalPagesChange:j,resolvedCommentIds:_,hyperlinkPopupData:V,onHyperlinkPopupNavigate:oe,onHyperlinkPopupCopy:ie,onHyperlinkPopupEdit:Q,onHyperlinkPopupRemove:ae,onHyperlinkPopupClose:ne}=t,ge=useCallback(()=>k&&typeof k=="object"?k.current:he.current,[k]),he=useRef(null),J=useRef(null),D=useRef(null),L=useRef(null),{handlePMKeyDown:z}=a({pagesContainerRef:J}),W=useRef(g),H=useRef(h),U=useRef(u),q=useRef(v);W.current=g,H.current=h,U.current=u,q.current=v;let[re,Z]=useState(false),te=useRef(false),G=useMemo(()=>new LayoutSelectionGate,[]),{layout:O,blocks:xe,measures:ce,decorationSyncToken:Ne,notifyDecorationLayer:fe,contentWidth:ve,runLayoutPipeline:Re,scheduleLayout:ye}=Ga({document:r,styles:n,theme:c,sectionProperties:s,finalSectionProperties:i,headerContent:d,footerContent:l,firstPageHeaderContent:p,firstPageFooterContent:f,pageGap:C,zoom:m,resolvedCommentIds:_,pagesContainerRef:J,viewportLayoutRef:D,hiddenPMRef:L,syncCoordinator:G,getScrollContainer:ge,onTotalPagesChange:j,onAnchorPositionsChange:A,onRenderedDomContextReady:v}),{selectionRects:De,caretPosition:Ee,selectedImageInfo:se,setSelectionRects:Ie,setCaretPosition:Te,setSelectedImageInfo:kt,buildImageSelectionInfo:Ge,updateSelectionOverlay:nt,handleSelectionChange:ft}=Ja({layout:O,blocks:xe,measures:ce,zoom:m,containerRef:he,pagesContainerRef:J,hiddenPMRef:L,syncCoordinator:G,isImageInteractingRef:te,onSelectionChangeRef:W}),Ke=useCallback(($,ue)=>{if(fe(),$.docChanged){G.incrementStateSeq(),ye(ue);let Ht=L.current?.getDocument();Ht&&H.current?.(Ht);}G.requestRender(),$.docChanged||nt(ue);},[ye,nt,G,fe]),{scrollToPositionImpl:Mt,scrollToPageImpl:je,scrollToParaIdImpl:Kt}=rs({layout:O,blocks:xe,measures:ce,pagesContainerRef:J,hiddenPMRef:L,getScrollContainer:ge}),{handlePagesMouseDown:Xe,handlePagesMouseMove:rt,handlePagesClick:Dt,handlePagesContextMenu:it,handleTableInsertClick:Fe,tableInsertButton:Le,clearTableInsertTimer:Ft,hideTableInsertButton:so,getPositionFromMouse:gt}=gs({pagesContainerRef:J,hiddenPMRef:L,layout:O,blocks:xe,measures:ce,zoom:m,readOnly:a$1,hfEditMode:w,onBodyClick:P,onContextMenu:B,onHyperlinkClick:F,onHeaderFooterDoubleClick:y,setSelectedImageInfo:kt,setSelectionRects:Ie,setCaretPosition:Te,buildImageSelectionInfo:Ge,setIsFocused:Z,scrollToPositionImpl:Mt}),jt=useCallback($=>{if(a$1)return;let ue=$.target;ue.closest(".docx-comments-sidebar")||ue.closest(".docx-unified-sidebar")||(L.current?.focus(),Z(true));},[a$1]),pe=useCallback($=>{let ue=$.relatedTarget;ue&&he.current?.contains(ue)||ue?.closest('[role="toolbar"], [data-radix-popper-content-wrapper], [data-radix-select-content], .docx-table-options-dropdown')||Z(false);},[]),{handleImageResize:be,handleImageResizeStart:ke,handleImageResizeEnd:He,handleImageDragMove:Xt,handleImageDragStart:lo,handleImageDragEnd:qe}=ts({pagesContainerRef:J,hiddenPMRef:L,zoom:m,isImageInteractingRef:te,getPositionFromMouse:gt}),Se=useCallback($=>{if(!a$1){if(L.current?.isFocused()||(L.current?.focus(),Z(true)),$.key===" "&&!$.ctrlKey&&!$.metaKey&&!$.nativeEvent.isComposing){$.preventDefault();let ue=L.current?.getView();if(ue){let{from:Ht,to:Hn}=ue.state.selection;ue.someProp("handleTextInput",co=>co(ue,Ht,Hn," "))||ue.dispatch(ue.state.tr.insertText(" "));}return}if(["PageUp","PageDown"].includes($.key)&&!$.metaKey&&$.ctrlKey,$.key==="Home"&&($.metaKey||$.ctrlKey)){let ue=ge();ue&&(ue.scrollTop=0);}if($.key==="End"&&($.metaKey||$.ctrlKey)){let ue=ge();ue&&(ue.scrollTop=ue.scrollHeight);}}},[a$1,ge]),ht=useCallback($=>{a$1||$.target.closest(".docx-comments-sidebar")||$.target.closest(".docx-unified-sidebar")||L.current?.isFocused()||(L.current?.focus(),Z(true));},[a$1]),Lt=useCallback($=>{Re($.state),nt($.state),a$1||requestAnimationFrame(()=>{$.focus(),Z(true);});},[Re,nt,a$1]);vs({hiddenPMRef:L,runLayoutPipeline:Re,updateSelectionOverlay:nt,headerContent:d,footerContent:l,firstPageHeaderContent:p,firstPageFooterContent:f}),bs({ref:o,hiddenPMRef:L,layout:O,runLayoutPipeline:Re,scrollToPositionImpl:Mt,scrollToParaIdImpl:Kt,scrollToPageImpl:je,setIsFocused:Z,onReadyRef:U});let qt=useMemo(()=>O?un(O,C):DEFAULT_PAGE_HEIGHT_PX+24+24,[O,C]);return jsxs("div",{ref:he,className:`ep-root paged-editor ${R??""}`,style:{...Ta,...E},tabIndex:0,onFocus:jt,onBlur:pe,onKeyDown:Se,onMouseDown:ht,children:[jsx(da,{ref:L,document:r,styles:n,widthPx:ve,readOnly:a$1,onTransaction:Ke,onSelectionChange:ft,externalPlugins:S,extensionManager:b,onEditorViewReady:Lt,onKeyDown:z}),jsxs("div",{ref:D,style:{...wa,minHeight:qt,marginBottom:m!==1?qt*(m-1):void 0,transform:(()=>{let $=[];return T&&$.push(`translateX(-${SIDEBAR_DOCUMENT_SHIFT}px)`),m!==1&&$.push(`scale(${m})`),$.length>0?$.join(" "):void 0})(),transformOrigin:"top center",transition:"transform 0.2s ease"},children:[jsx("div",{ref:J,className:`paged-editor__pages${a$1?" paged-editor--readonly":""}${w?` paged-editor--hf-editing paged-editor--editing-${w}`:""}`,style:Ea,onMouseDown:Xe,onMouseMove:rt,onClick:Dt,onContextMenu:it,"aria-hidden":"true"}),jsx(pa,{selectionRects:De,caretPosition:Ee,isFocused:re,pageGap:C,readOnly:a$1}),jsx(ba,{imageInfo:se,zoom:m,isFocused:re,onResize:be,onResizeStart:ke,onResizeEnd:He,onDragMove:Xt,onDragStart:lo,onDragEnd:qe,onContextMenu:it}),Le&&jsx(Cs,{type:Le.type,x:Le.x,y:Le.y,onMouseDown:Fe,onMouseEnter:Ft,onMouseLeave:so}),x&&jsx("div",{className:"paged-editor__plugin-overlays",style:Ia,children:x}),jsx(Ca,{getView:()=>L.current?.getView()??null,getPagesContainer:()=>J.current,zoom:m,decorationSyncToken:Ne,syncCoordinator:G})]}),I&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,height:qt*m,pointerEvents:"none",overflow:"visible"},children:jsx("div",{style:{pointerEvents:"auto"},children:I})}),V&&oe&&ie&&Q&&ae&&ne&&jsx(Ts,{data:V,onNavigate:oe,onCopy:ie,onEdit:Q,onRemove:ae,onClose:ne,readOnly:a$1})]})}),ks=memo(Uf);var Fs={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"2px 0",fontSize:11,color:"#4285f4",userSelect:"none"},Ls={fontWeight:500,letterSpacing:.3},ng={background:"none",border:"none",color:"#4285f4",cursor:"pointer",fontSize:11,padding:"2px 6px",borderRadius:3},rg={position:"absolute",right:0,top:"100%",background:"white",border:"1px solid #dadce0",borderRadius:4,boxShadow:"0 2px 6px rgba(0,0,0,0.15)",zIndex:h.dropdown,minWidth:160,padding:"4px 0"},xn={display:"block",width:"100%",padding:"6px 12px",border:"none",background:"none",textAlign:"left",cursor:"pointer",fontSize:12,color:"#3c4043"},Os=forwardRef(function({headerFooter:t,position:o,styles:r,targetElement:n,parentElement:c,onSave:s,onClose:i,onSelectionChange:d,onRemove:l},p){let f=useRef(null),a=useRef(null),[C,m]=useState(false),h$1=useRef(d);h$1.current=d;let g=useMemo(()=>{if(!r)return 11;let I=createStyleResolver(r).resolveParagraphStyle(void 0);return I.runFormatting?.fontSize?I.runFormatting.fontSize/2:11},[r]),[S,b$1]=useState(false),u=useRef(null),[v,x]=useState(null);useLayoutEffect(()=>{let T=()=>{let k=c.getBoundingClientRect(),F=n.getBoundingClientRect();x({top:F.top-k.top+c.scrollTop,left:F.left-k.left+c.scrollLeft,width:F.width});};T();let I=c.closest('[style*="overflow"]')||c;return I.addEventListener("scroll",T),window.addEventListener("resize",T),()=>{I.removeEventListener("scroll",T),window.removeEventListener("resize",T);}},[n,c]),useEffect(()=>{if(!f.current||a.current)return;let T=headerFooterToProseDoc(t.content,{styles:r||void 0}),I=new ExtensionManager(createStarterKit());I.buildSchema(),I.initializeRuntime();let k=I.getPlugins(),F=EditorState.create({doc:T,schema:schema,plugins:k}),B=new EditorView(f.current,{state:F,dispatchTransaction(A){let j=B.state.apply(A);if(B.updateState(j),A.docChanged&&m(true),A.selectionSet||A.docChanged){let _=extractSelectionState(j);h$1.current?.(_);}}});return a.current=B,requestAnimationFrame(()=>{B.focus();let A=extractSelectionState(B.state);h$1.current?.(A);}),()=>{B.destroy(),a.current=null;}},[v]);let y=useCallback(()=>{if(!a.current)return;let T=proseDocToBlocks(a.current.state.doc);s(T);},[s]),w=useCallback(()=>{C?y():i();},[C,y,i]);useEffect(()=>{function T(I){I.key==="Escape"&&(I.preventDefault(),I.stopPropagation(),w());}return document.addEventListener("keydown",T,true),()=>document.removeEventListener("keydown",T,true)},[w]),useEffect(()=>{if(!S)return;function T(I){u.current&&!u.current.contains(I.target)&&b$1(false);}return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[S]),useImperativeHandle(p,()=>({getView:()=>a.current,focus:()=>a.current?.focus(),undo:()=>{let T=a.current;return T?undo(T.state,T.dispatch):false},redo:()=>{let T=a.current;return T?redo(T.state,T.dispatch):false}}));let{t:P}=b(),R=P(o==="header"?"headerFooter.header":"headerFooter.footer");if(!v)return null;let E={position:"absolute",top:v.top,left:v.left,width:v.width,zIndex:h.hfInlineEditor};return jsxs("div",{className:"hf-inline-editor",style:E,onMouseDown:T=>{T.stopPropagation();},children:[o==="footer"&&jsxs("div",{className:"hf-separator-bar",style:Fs,children:[jsx("span",{style:Ls,children:R}),jsx(Hs,{label:R,showOptions:S,setShowOptions:b$1,optionsRef:u,onRemove:l,onClose:w,viewRef:a})]}),jsx("div",{ref:f,className:"hf-editor-pm prosemirror-editor",style:{minHeight:40,outline:"none",fontSize:`${g}pt`}}),o==="header"&&jsxs("div",{className:"hf-separator-bar",style:Fs,children:[jsx("span",{style:Ls,children:R}),jsx(Hs,{label:R,showOptions:S,setShowOptions:b$1,optionsRef:u,onRemove:l,onClose:w,viewRef:a})]})]})});function Hs({label:e,showOptions:t,setShowOptions:o,optionsRef:r,onRemove:n,onClose:c,viewRef:s}){let{t:i}=b(),d=l=>{let p=s.current;if(!p)return;let{$from:f,from:a}=p.state.selection,C=p.state.storedMarks||f.marks(),m=schema.nodes.field.create({fieldType:l,instruction:` ${l} \\* MERGEFORMAT `,fieldKind:"simple",dirty:true}),h=p.state.tr.insert(a,m.mark(C));p.dispatch(h),p.focus();};return jsxs("div",{style:{position:"relative"},ref:r,children:[jsxs("button",{type:"button",style:ng,onClick:l=>{l.stopPropagation(),o(p=>!p);},onMouseDown:l=>l.stopPropagation(),children:[i("headerFooter.options")," \u25BE"]}),t&&jsxs("div",{style:rg,children:[jsx("button",{type:"button",style:xn,onClick:()=>{o(false),d("PAGE");},onMouseOver:l=>{l.target.style.backgroundColor="#f1f3f4";},onMouseOut:l=>{l.target.style.backgroundColor="transparent";},children:i("headerFooter.insertPageNumber")}),jsx("button",{type:"button",style:xn,onClick:()=>{o(false),d("NUMPAGES");},onMouseOver:l=>{l.target.style.backgroundColor="#f1f3f4";},onMouseOut:l=>{l.target.style.backgroundColor="transparent";},children:i("headerFooter.insertTotalPages")}),jsx("div",{style:{borderTop:"1px solid #e8eaed",margin:"4px 0"}}),n&&jsx("button",{type:"button",style:xn,onClick:()=>{o(false),n();},onMouseOver:l=>{l.target.style.backgroundColor="#f1f3f4";},onMouseOut:l=>{l.target.style.backgroundColor="transparent";},children:i("headerFooter.remove",{label:e.toLowerCase()})}),jsx("button",{type:"button",style:xn,onClick:()=>{o(false),c();},onMouseOver:l=>{l.target.style.backgroundColor="#f1f3f4";},onMouseOut:l=>{l.target.style.backgroundColor="transparent";},children:i("headerFooter.closeEditing",{label:e.toLowerCase()})})]})]})}var Bs=resolveItemPositions;function _s({items:e,anchorPositions:t,renderedDomContext:o,pageWidth:r,zoom:n,editorContainerRef:c,onExpandedItemChange:s,activeItemId:i}){let{t:d}=b(),l=i??null,p=useRef(l);p.current=l;let[f,a]=useState(false),C=useRef(new Map),m=useRef(new Map),h=useRef(new Set),g=useRef(null),S=useRef(new Map),b$1=useRef(new Map),[u,v]=useState(0),x=useMemo(()=>Bs(e,t,o,n,C.current,m.current),[e,t,o,n,u]),y=x.length>0,w=useMemo(()=>{let T=new Map;for(let I of x)T.set(I.item.id,I.y);return T},[x]);useEffect(()=>{for(let T of x)h.current.add(T.item.id);},[x]);let P=useCallback(()=>{let T=false;for(let[I,k]of S.current){let F=k.offsetHeight;C.current.get(I)!==F&&(C.current.set(I,F),T=true);}T&&v(I=>I+1);},[]);useEffect(()=>{let T=requestAnimationFrame(P),I=setTimeout(()=>{P(),a(true);},400);return ()=>{cancelAnimationFrame(T),clearTimeout(I);}},[e.length,P]),useEffect(()=>{let T=c?.current;if(!T)return;let I=new ResizeObserver(()=>{requestAnimationFrame(()=>v(k=>k+1));});return I.observe(T),()=>I.disconnect()},[c]),useEffect(()=>{let T=requestAnimationFrame(P);return ()=>cancelAnimationFrame(T)},[l,P]),useEffect(()=>{if(!l)return;let T=S.current.get(l);if(!T){let F=requestAnimationFrame(()=>v(B=>B+1));return ()=>cancelAnimationFrame(F)}let I,k=new ResizeObserver(()=>{cancelAnimationFrame(I),I=requestAnimationFrame(()=>{C.current.set(l,T.offsetHeight),v(F=>F+1);});});return k.observe(T),()=>{cancelAnimationFrame(I),k.disconnect();}},[l]);let R=useCallback(T=>{let I=b$1.current.get(T);return I||(I=k=>{k?(S.current.set(T,k),C.current.set(T,k.offsetHeight)):(S.current.delete(T),C.current.delete(T));},b$1.current.set(T,I)),I},[]),E=useCallback(T=>{s?.(p.current===T?null:T);},[s]);return e.length===0?null:jsx("aside",{ref:g,className:"docx-unified-sidebar",role:"complementary","aria-label":d("sidebar.ariaLabel"),style:{position:"absolute",top:0,left:`calc(50% - ${SIDEBAR_DOCUMENT_SHIFT}px + ${r*n/2+SIDEBAR_PAGE_GAP}px)`,width:SIDEBAR_WIDTH,fontFamily:"'Google Sans', Roboto, Arial, sans-serif",zIndex:40,backgroundColor:"transparent",overflowY:"visible",overflowX:"visible",opacity:y?1:0,transition:"opacity 0.15s ease"},onMouseDown:T=>T.stopPropagation(),children:jsx("div",{style:{position:"relative"},children:e.map(T=>{let I=w.get(T.id),k=l===T.id,B=!h.current.has(T.id)&&I!==void 0,A=y&&!w.has(T.id),j=y?I!==void 0?{position:"absolute",top:I,left:0,right:0,opacity:1}:{position:"absolute",top:0,left:0,right:0,opacity:0,visibility:"hidden"}:{marginBottom:6},_=A?"none":B||T.isTemporary?"opacity 0.2s ease":f?"opacity 0.2s ease, top 0.15s ease":"none";return jsx("div",{style:{...j,transition:_},children:T.render({isExpanded:k,onToggleExpand:()=>E(T.id),measureRef:R(T.id)})},T.id)})})})}function Ws({comments:e,anchorPositions:t,zoom:o,pageWidth:r,sidebarOpen:n,resolvedCommentIds:c,onMarkerClick:s}){let{t:i}=b(),l=e.filter(p=>p.parentId==null).map(p=>{let f=c.has(p.id);if(!f&&n||f&&n)return null;let a=t.get(`comment-${p.id}`);return a==null?null:{comment:p,isResolved:f,y:a}}).filter(Boolean);return l.length===0?null:jsx("div",{className:"docx-comment-margin-markers",style:{position:"absolute",top:0,left:`calc(50% + ${r*o/2+6}px)`,zIndex:30,pointerEvents:"none"},onMouseDown:p=>p.stopPropagation(),children:l.map(({comment:p,isResolved:f,y:a})=>jsx("button",{onClick:()=>s(p.id),title:i(f?"commentMarkers.resolvedComment":"commentMarkers.comment"),style:{position:"absolute",top:a*o,left:0,width:24,height:24,display:"flex",alignItems:"center",justifyContent:"center",border:"none",borderRadius:4,background:"transparent",cursor:"pointer",pointerEvents:"auto",color:"#5f6368",padding:0,fontFamily:"inherit"},onMouseOver:C=>{C.currentTarget.style.opacity="0.7";},onMouseOut:C=>{C.currentTarget.style.opacity="1";},children:jsx(b$1,{name:f?"chat_bubble_check":"chat_bubble_outline",size:18})},p.id))})}function $s({pagedEditorRef:e,hfEditorRef:t,scrollContainerRef:o$1,editorContentRef:r,document:n,theme:c,initialSectionProperties:s,finalSectionProperties:i,headerContent:d,footerContent:l,firstPageHeaderContent:p,firstPageFooterContent:f,hfEditPosition:a,setHfEditPosition:C,hfEditIsFirstPage:m,onHeaderFooterDoubleClick:h,onHeaderFooterSave:g,onRemoveHeaderFooter:S,onBodyClick:b,getHfTargetElement:u,zoom:v,readOnly:x,extensionManager:y,externalPlugins:w,onDocumentChange:P,onSelectionChange:R,onPagedSelectionChange:E,onReady:T,onEditorViewReady:I,onRenderedDomContextReady:k,pluginOverlays:F,onHyperlinkClick:B,hyperlinkPopupData:A,onHyperlinkPopupNavigate:j,onHyperlinkPopupCopy:_,onHyperlinkPopupEdit:V,onHyperlinkPopupRemove:oe,onHyperlinkPopupClose:ie,onContextMenu:Q,sidebarOpen:ae,sidebarItems:ne,anchorPositions:ge,onAnchorPositionsChange:he,pluginRenderedDomContext:J,pageWidthPx:D,expandedSidebarItem:L,setExpandedSidebarItem:z,comments:W,resolvedCommentIds:H,resolvedIdsForRender:U,setShowCommentsSidebar:q,onTotalPagesChange:re,floatingCommentBtn:Z,isAddingComment:te,setCommentSelectionRange:G,setAddCommentYPosition:O,setIsAddingComment:xe,setFloatingCommentBtn:ce}){let Ne=a?m?a==="header"?p:f:a==="header"?d:l:null;return jsxs(Fragment,{children:[jsx(ks,{ref:e,document:n,styles:n?.package.styles,theme:n?.package.theme||c,sectionProperties:s,finalSectionProperties:i,headerContent:d,footerContent:l,firstPageHeaderContent:p,firstPageFooterContent:f,onHeaderFooterDoubleClick:h,hfEditMode:a,onBodyClick:b,zoom:v,readOnly:x,extensionManager:y,onDocumentChange:P,onSelectionChange:E,externalPlugins:w,onReady:fe=>{T(fe);let ve=fe.getView();ve&&I?.(ve);},onRenderedDomContextReady:k,pluginOverlays:F,onHyperlinkClick:B,hyperlinkPopupData:A,onHyperlinkPopupNavigate:j,onHyperlinkPopupCopy:_,onHyperlinkPopupEdit:V,onHyperlinkPopupRemove:oe,onHyperlinkPopupClose:ie,onContextMenu:Q,commentsSidebarOpen:ae,onAnchorPositionsChange:he,onTotalPagesChange:re,resolvedCommentIds:U,scrollContainerRef:o$1,sidebarOverlay:jsxs(Fragment,{children:[ne.length>0&&jsx(_s,{items:ne,anchorPositions:ge,renderedDomContext:J??null,pageWidth:D,zoom:v,editorContainerRef:o$1,onExpandedItemChange:z,activeItemId:L}),jsx(Ws,{comments:W,anchorPositions:ge,zoom:v,pageWidth:D,sidebarOpen:ae,resolvedCommentIds:H,onMarkerClick:()=>q(true)})]})}),Z!=null&&!te&&!x&&jsx(o,{content:"Add comment",side:"bottom",delayMs:300,children:jsx("button",{type:"button",onMouseDown:fe=>{fe.preventDefault(),fe.stopPropagation();let ve=e.current?.getView();if(ve){let{from:Re,to:ye}=ve.state.selection;if(Re!==ye){G({from:Re,to:ye});let De=ve.state.schema.marks.comment.create({commentId:ct}),Ee=ve.state.tr.addMark(Re,ye,De);Ee.setSelection(TextSelection.create(Ee.doc,ye)),ve.dispatch(Ee);}}O(Z.top),q(true),xe(true),ce(null);},style:{position:"absolute",top:Z.top,left:Z.left,transform:"translate(-50%, -50%)",zIndex:50,width:28,height:28,borderRadius:6,border:"1px solid rgba(26, 115, 232, 0.3)",backgroundColor:"#fff",color:"#1a73e8",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 1px 3px rgba(60,64,67,0.2)",transition:"background-color 0.15s ease, box-shadow 0.15s ease"},onMouseOver:fe=>{fe.currentTarget.style.backgroundColor="rgba(26, 115, 232, 0.08)",fe.currentTarget.style.boxShadow="0 1px 4px rgba(26, 115, 232, 0.3)";},onMouseOut:fe=>{fe.currentTarget.style.backgroundColor="#fff",fe.currentTarget.style.boxShadow="0 1px 3px rgba(60,64,67,0.2)";},children:jsx(b$1,{name:"add_comment",size:16})})}),a&&Ne&&(()=>{let fe=u(a),ve=r.current;return !fe||!ve?null:jsx(Os,{ref:t,headerFooter:Ne,position:a,styles:n?.package.styles,targetElement:fe,parentElement:ve,onSave:g,onClose:()=>C(null),onSelectionChange:R,onRemove:S})})()]})}function Ys({commentsLoadedRef:e,trackedChangesLoadedRef:t,setComments:o,setHeadingInfos:r,setShowCommentsSidebar:n,setIsAddingComment:c,setCommentSelectionRange:s,setAddCommentYPosition:i,setFloatingCommentBtn:d,setHfEditPosition:l,setHfEditIsFirstPage:p,setAnchorPositions:f,clearFindReplaceMatches:a,cleanOrphanedCommentsTimerRef:C}){return {resetForNewDocument:useCallback(()=>{e.current=false,t.current=false,o([]),r([]),n(false),c(false),s(null),i(null),d(null),l(null),p(false),f(tn),a(),C.current&&(clearTimeout(C.current),C.current=null);},[e,t,o,r,n,c,s,i,d,l,p,f,a,C])}}var mg=createContext(null);function Ks({children:e}){let t=useMemo(()=>new ErrorManager,[]),o=useSyncExternalStore(t.subscribe,t.getSnapshot),r=useCallback((l,p)=>{t.showError(l,p);},[t]),n=useCallback((l,p)=>{t.showWarning(l,p);},[t]),c=useCallback((l,p)=>{t.showInfo(l,p);},[t]),s=useCallback(l=>{t.dismiss(l);},[t]),i=useCallback(()=>{t.clearAll();},[t]),d=useMemo(()=>({notifications:o.notifications,showError:r,showWarning:n,showInfo:c,dismissNotification:s,clearNotifications:i}),[o.notifications,r,n,c,s,i]);return jsxs(mg.Provider,{value:d,children:[e,jsx(fg,{notifications:o.notifications,onDismiss:s})]})}function fg({notifications:e,onDismiss:t}){let o=e.filter(n=>!n.dismissed);return o.length===0?null:jsx("div",{className:"docx-notification-container",style:{position:"fixed",top:"16px",right:"16px",zIndex:10001,display:"flex",flexDirection:"column",gap:"8px",maxWidth:"400px"},children:o.map(n=>jsx(gg,{notification:n,onDismiss:()=>t(n.id)},n.id))})}function gg({notification:e,onDismiss:t}){let{t:o}=b(),[r,n]=useState(false),s=(h=>{switch(h){case "error":return {bg:"var(--doc-error-bg)",border:"#f5c6cb",text:"var(--doc-error)",icon:"var(--doc-error)"};case "warning":return {bg:"var(--doc-warning-bg)",border:"#ffeeba",text:"#856404",icon:"var(--doc-warning)"};case "info":return {bg:"#e8f4fd",border:"#b8daff",text:"#0c5460",icon:"var(--doc-primary)"}}})(e.severity),i={background:s.bg,border:`1px solid ${s.border}`,borderRadius:"8px",padding:"12px 16px",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.15)",animation:"slideIn 0.3s ease-out"},d={display:"flex",alignItems:"flex-start",gap:"8px"},l={color:s.icon,flexShrink:0},p={flex:1,minWidth:0},f={color:s.text,fontSize:"14px",fontWeight:500,wordBreak:"break-word"},a={marginTop:"8px",padding:"8px",background:"rgba(0, 0, 0, 0.05)",borderRadius:"4px",fontSize:"12px",fontFamily:"monospace",whiteSpace:"pre-wrap",wordBreak:"break-word",color:s.text,maxHeight:"200px",overflow:"auto"},C={background:"transparent",border:"none",cursor:"pointer",padding:"4px",borderRadius:"4px",display:"flex",alignItems:"center",justifyContent:"center",color:s.text},m=h=>{switch(h){case "error":return jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[jsx("circle",{cx:"10",cy:"10",r:"8",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M10 6v5M10 13v1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]});case "warning":return jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[jsx("path",{d:"M10 3L18 17H2L10 3z",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),jsx("path",{d:"M10 8v4M10 14v1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]});case "info":return jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[jsx("circle",{cx:"10",cy:"10",r:"8",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M10 9v5M10 6v1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}};return jsxs("div",{className:`docx-notification-toast docx-notification-${e.severity}`,style:i,children:[jsx("style",{children:`
|
|
12
|
+
</head><body>${P.outerHTML}</body></html>`),y.document.close(),y.onload=()=>{y.print(),y.close();},setTimeout(()=>{y.closed||(y.print(),y.close());},1e3),i?.();},[o,i]),h=useCallback(async()=>{let C=await m();if(!C)return;let y=new Blob([C],{type:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}),w=URL.createObjectURL(y),P=window.document.createElement("a");P.href=w,P.download=`${(n?.trim()||"document").replace(/\.docx$/i,"")}.docx`,P.click(),setTimeout(()=>URL.revokeObjectURL(w),0);},[m,n]),R=useCallback(()=>{S.current?.click();},[]),b=useCallback(async C=>{try{let y=await readDocxFileFromInput(C.nativeEvent);if(!y)return;await l(y.buffer),u?.(y.name);}catch(y){s?.(y instanceof Error?y:new Error("Failed to open document"));}},[l,u,s]),c=useCallback(()=>{a.current?.click();},[]),v=useCallback(C=>{let y=C.target.files?.[0];if(!y)return;let w=p();if(!w)return;let P=new FileReader;P.onload=()=>{let x=P.result,E=new Image;E.onload=()=>{let T=E.naturalWidth,I=E.naturalHeight,k=612;if(T>k){let _=k/T;T=k,I=Math.round(I*_);}let L=`rId_img_${Date.now()}`,B=w.state.schema.nodes.image.create({src:x,alt:y.name,width:T,height:I,rId:L,wrapType:"inline",displayMode:"inline"}),{from:A}=w.state.selection,j=w.state.tr.insert(A,B);w.dispatch(j.scrollIntoView()),f();},E.src=x;},P.readAsDataURL(y),C.target.value="";},[p,f]);return {imageInputRef:a,docxInputRef:S,handleSave:m,handleDirectPrint:g,handleDownloadDocument:h,handleOpenDocument:R,handleDocxFileChange:b,handleInsertImageClick:c,handleImageFileChange:v}}function di({document:e,readOnly:t,handleDocumentChange:o,getActiveEditorView:r}){let[n,d]=useState(false),s=useCallback(()=>d(true),[]),i=useCallback(R=>b=>{if(!e||t)return;let c={...e,package:{...e.package,document:{...e.package.document,finalSectionProperties:{...e.package.document.finalSectionProperties,[R]:b}}}};o(c);},[e,t,o]),u=useMemo(()=>i("marginLeft"),[i]),l=useMemo(()=>i("marginRight"),[i]),p=useMemo(()=>i("marginTop"),[i]),f=useMemo(()=>i("marginBottom"),[i]),a=useCallback(R=>{if(!e||t)return;let b={...e,package:{...e.package,document:{...e.package.document,finalSectionProperties:{...e.package.document.finalSectionProperties,...R}}}};o(b);},[e,t,o]),S=useCallback(R=>{let b=r();b&&setIndentLeft(R)(b.state,b.dispatch);},[r]),m=useCallback(R=>{let b=r();b&&setIndentRight(R)(b.state,b.dispatch);},[r]),g=useCallback(R=>{let b=r();b&&(R<0?setIndentFirstLine(-R,true)(b.state,b.dispatch):setIndentFirstLine(R,false)(b.state,b.dispatch));},[r]),h=useCallback(R=>{let b=r();b&&removeTabStop(R)(b.state,b.dispatch);},[r]);return {showPageSetup:n,setShowPageSetup:d,handleOpenPageSetup:s,handleLeftMarginChange:u,handleRightMarginChange:l,handleTopMarginChange:p,handleBottomMarginChange:f,handlePageSetupApply:a,handleIndentLeftChange:S,handleIndentRightChange:m,handleFirstLineIndentChange:g,handleTabStopRemove:h}}function mi({hyperlinkDialog:e,getActiveEditorView:t,focusActiveEditor:o}){let[r,n]=useState(null),d=useCallback(m=>{let g=t();if(!g)return;let h=m.url||"",R=m.tooltip,{empty:b}=g.state.selection;b&&m.displayText?insertHyperlink(m.displayText,h,R)(g.state,g.dispatch):b?m.displayText&&insertHyperlink(m.displayText,h,R)(g.state,g.dispatch):setHyperlink(h,R)(g.state,g.dispatch),e.close(),o();},[e,t,o]),s=useCallback(()=>{let m=t();m&&(removeHyperlink(m.state,m.dispatch),o());},[t,o]),i=useCallback(()=>{s(),e.close();},[e,s]),u=useCallback(m=>n(m),[]),l=useCallback(m=>{window.open(m,"_blank","noopener,noreferrer");},[]),p=useCallback(m=>{navigator.clipboard.writeText(m).catch(()=>{let g=document.createElement("textarea");g.value=m,g.style.position="fixed",g.style.opacity="0",document.body.appendChild(g),g.select(),document.execCommand("copy"),document.body.removeChild(g);});},[]),f=useCallback((m,g)=>{let h=t();if(!h)return;let R=findHyperlinkRangeAt(h.state);if(R){let b=h.state.schema.marks.hyperlink,{$from:c}=h.state.selection,v=b.create({href:g,tooltip:R.mark.attrs.tooltip}),C=h.state.schema.text(m,[...c.marks().filter(w=>w.type!==b),v]),y=h.state.tr.replaceWith(R.start,R.end,C);h.dispatch(y.scrollIntoView());}n(null),o();},[t,o]),a=useCallback(()=>{let m=t();if(!m)return;let g=findHyperlinkRangeAt(m.state,r?.href);if(!g)return;let h=m.state.schema.marks.hyperlink;m.dispatch(m.state.tr.removeMark(g.start,g.end,h).scrollIntoView()),n(null),o(),toast("Link removed");},[t,o,r]),S=useCallback(()=>{n(null);},[]);return {hyperlinkPopupData:r,setHyperlinkPopupData:n,handleHyperlinkSubmit:d,handleHyperlinkRemove:i,handleHyperlinkClick:u,handleHyperlinkPopupNavigate:l,handleHyperlinkPopupCopy:p,handleHyperlinkPopupEdit:f,handleHyperlinkPopupRemove:a,handleHyperlinkPopupClose:S}}function gi({document:e,containerRef:t,findReplace:o,handleDocumentChange:r}){let n=useRef(null),d=useCallback((p,f)=>{if(!e||!p.trim())return n.current=null,null;let a=(0, a$2.findInDocument)(e,p,f),S={matches:a,totalCount:a.length,currentIndex:0};return n.current=S,o.setMatches(a,0),a.length>0&&t.current&&(0, a$2.scrollToMatch)(t.current,a[0]),S},[e,t,o]),s=useCallback(()=>{if(!n.current||n.current.matches.length===0)return null;let p=o.goToNextMatch(),f=n.current.matches[p];return f&&t.current&&(0, a$2.scrollToMatch)(t.current,f),f||null},[t,o]),i=useCallback(()=>{if(!n.current||n.current.matches.length===0)return null;let p=o.goToPreviousMatch(),f=n.current.matches[p];return f&&t.current&&(0, a$2.scrollToMatch)(t.current,f),f||null},[t,o]),u=useCallback(p=>{if(!e||!n.current||n.current.matches.length===0)return false;let f=n.current.matches[n.current.currentIndex];if(!f)return false;try{let a=executeCommand(e,{type:"replaceText",range:{start:{paragraphIndex:f.paragraphIndex,offset:f.startOffset},end:{paragraphIndex:f.paragraphIndex,offset:f.endOffset}},text:p});return r(a),!0}catch(a){return console.error("Replace failed:",a),false}},[e,r]),l=useCallback((p,f,a)=>{if(!e||!p.trim())return 0;let S=(0, a$2.findInDocument)(e,p,a);if(S.length===0)return 0;let m=e,g=[...S].sort((h,R)=>h.paragraphIndex!==R.paragraphIndex?R.paragraphIndex-h.paragraphIndex:R.startOffset-h.startOffset);for(let h of g)try{m=executeCommand(m,{type:"replaceText",range:{start:{paragraphIndex:h.paragraphIndex,offset:h.startOffset},end:{paragraphIndex:h.paragraphIndex,offset:h.endOffset}},text:f});}catch(R){console.error("Replace failed for match:",h,R);}return r(m),n.current=null,o.setMatches([],0),S.length},[e,r,o]);return {findResultRef:n,handleFind:d,handleFindNext:s,handleFindPrevious:i,handleReplace:u,handleReplaceAll:l}}function yi({getActiveEditorView:e,focusActiveEditor:t,pagedEditorRef:o,lastSelectionRef:r,hyperlinkDialog:n,historyStateRef:d$1,getCachedStyleResolver:s}){let i=useCallback(f=>{let a=e();if(!a)return;a.focus();let S=a===o.current?.getView(),{from:m,to:g}=a.state.selection,h=r.current;if(S&&h&&(m!==h.from||g!==h.to))try{let R=a.state.tr.setSelection(TextSelection.create(a.state.doc,h.from,h.to));a.dispatch(R);}catch(R){console.warn("Could not restore selection:",R);}if(f==="bold")return void toggleBold(a.state,a.dispatch);if(f==="italic")return void toggleItalic(a.state,a.dispatch);if(f==="underline")return void toggleUnderline(a.state,a.dispatch);if(f==="strikethrough")return void toggleStrike(a.state,a.dispatch);if(f==="superscript")return void toggleSuperscript(a.state,a.dispatch);if(f==="subscript")return void toggleSubscript(a.state,a.dispatch);if(f==="bulletList")return void toggleBulletList(a.state,a.dispatch);if(f==="numberedList")return void toggleNumberedList(a.state,a.dispatch);if(f==="indent"){increaseListLevel(a.state,a.dispatch)||increaseIndent()(a.state,a.dispatch);return}if(f==="outdent"){decreaseListLevel(a.state,a.dispatch)||decreaseIndent()(a.state,a.dispatch);return}if(f==="clearFormatting")return void clearFormatting(a.state,a.dispatch);if(f==="setRtl")return void setRtl(a.state,a.dispatch);if(f==="setLtr")return void setLtr(a.state,a.dispatch);if(f==="insertLink"){let R=getSelectedText(a.state),b=getHyperlinkAttrs(a.state);b?n.openEdit({url:b.href,displayText:R,tooltip:b.tooltip}):n.openInsert(R);return}if(typeof f=="object")switch(f.type){case "alignment":setAlignment(f.value)(a.state,a.dispatch);break;case "textColor":{let R=f.value;typeof R=="string"?setTextColor({rgb:R.replace("#","")})(a.state,a.dispatch):R.auto?clearTextColor(a.state,a.dispatch):setTextColor(R)(a.state,a.dispatch);break}case "highlightColor":{let R=f.value?g$1(f.value):"";setHighlight(R||f.value)(a.state,a.dispatch);break}case "fontSize":setFontSize(d(f.value))(a.state,a.dispatch);break;case "fontFamily":setFontFamily(f.value)(a.state,a.dispatch);break;case "lineSpacing":setLineSpacing(f.value)(a.state,a.dispatch);break;case "applyStyle":{let R=d$1.current,b=R?.package.styles?s(R.package.styles):null;if(b){let c=b.resolveParagraphStyle(f.value);applyStyle(f.value,{paragraphFormatting:c.paragraphFormatting,runFormatting:c.runFormatting})(a.state,a.dispatch);}else applyStyle(f.value)(a.state,a.dispatch);break}}},[e,o,r,n,d$1,s]),u=useCallback((f,a)=>{let S=e();S&&(insertTable(f,a)(S.state,S.dispatch),t());},[e,t]),l=useCallback(()=>{let f=e();f&&(insertPageBreak(f.state,f.dispatch),t());},[e,t]),p=useCallback(()=>{let f=e();f&&(generateTOC(f.state,f.dispatch),t());},[e,t]);return {handleFormat:i,handleInsertTable:u,handleInsertPageBreak:l,handleInsertTOC:p}}function vi({document:e,pmImageContext:t,zoom:o,getActiveEditorView:r,focusActiveEditor:n,pushDocument:d}){let[s,i]=useState(false),[u,l]=useState(false),[p,f]=useState(false),a=useCallback(b=>{let c=r();if(!c||!t)return;let v=t.pos,C=c.state.doc.nodeAt(v);if(!C||C.type.name!=="image")return;let y=toolbarValueToLayoutTarget(b);if(!y)return;let w;if(C.attrs.wrapType==="inline"&&y!=="inline"){let P=window.document.querySelector(`.layout-run-image[data-pm-start="${v}"]`),x=P?captureInlinePositionEmu(P,o):void 0;x&&(w={initialPositionEmu:x});}setImageWrapType(v,y,w)(c.state,c.dispatch),n();},[r,n,t,o]),S=useCallback(b=>{let c=r();if(!c||!t)return;let v=t.pos,C=c.state.doc.nodeAt(v);if(!C||C.type.name!=="image")return;let y=C.attrs.transform||"",w=y.match(/rotate\((-?\d+(?:\.\d+)?)deg\)/),P=w?parseFloat(w[1]):0,x=/scaleX\(-1\)/.test(y),E=/scaleY\(-1\)/.test(y);switch(b){case "rotateCW":P=(P+90)%360;break;case "rotateCCW":P=(P-90+360)%360;break;case "flipH":x=!x;break;case "flipV":E=!E;break}let T=[];P!==0&&T.push(`rotate(${P}deg)`),x&&T.push("scaleX(-1)"),E&&T.push("scaleY(-1)");let I=T.length>0?T.join(" "):null,k=c.state.tr.setNodeMarkup(v,void 0,{...C.attrs,transform:I});c.dispatch(k.scrollIntoView()),n();},[r,n,t]),m=useCallback(b=>{let c=r();if(!c||!t)return;let v=t.pos,C=c.state.doc.nodeAt(v);if(!C||C.type.name!=="image")return;let y=c.state.tr.setNodeMarkup(v,void 0,{...C.attrs,position:{horizontal:b.horizontal,vertical:b.vertical},distTop:b.distTop??C.attrs.distTop,distBottom:b.distBottom??C.attrs.distBottom,distLeft:b.distLeft??C.attrs.distLeft,distRight:b.distRight??C.attrs.distRight});c.dispatch(y.scrollIntoView()),n();},[r,n,t]),g=useCallback(()=>{l(true);},[]),h=useCallback(b=>{let c=r();if(!c||!t)return;let v=t.pos,C=c.state.doc.nodeAt(v);if(!C||C.type.name!=="image")return;let y=c.state.tr.setNodeMarkup(v,void 0,{...C.attrs,alt:b.alt??null,borderWidth:b.borderWidth??null,borderColor:b.borderColor??null,borderStyle:b.borderStyle??null,width:b.width??null,height:b.height??null});c.dispatch(y.scrollIntoView()),n();},[r,n,t]),R=useCallback((b,c)=>{if(!e?.package)return;let v={...e.package.document,finalSectionProperties:{...e.package.document.finalSectionProperties,footnotePr:b,endnotePr:c}};d({...e,package:{...e.package,document:v}});},[e,d]);return {imagePositionOpen:s,setImagePositionOpen:i,imagePropsOpen:u,setImagePropsOpen:l,footnotePropsOpen:p,setFootnotePropsOpen:f,handleImageWrapType:a,handleImageTransform:S,handleApplyImagePosition:m,handleOpenImageProperties:g,handleApplyImageProperties:h,handleApplyFootnoteProperties:R}}function Qo(e,t,o){if(!e||!t)return null;let r=e.querySelector(".paged-editor__pages");if(!r)return null;for(let n of findBodyPmAnchors(r)){let d=Number(n.dataset.pmStart),s=Number(n.dataset.pmEnd);if(o>=d&&o<=s)return n.getBoundingClientRect().top-t.getBoundingClientRect().top}return null}function Ci(e){let t=e?.package?.document;return t?.sections?.[0]?.properties??t?.finalSectionProperties}function go(e,t){if(!t||!t.trim())return null;let o=null;return e.descendants((r,n)=>o!==null?false:r.isTextblock&&r.attrs?.paraId===t?(o={from:n,to:n+r.nodeSize},false):true),o}function $n(e){let t=[];return e.descendants(o=>!o.isText||!o.text?true:o.marks.some(r=>r.type.name==="insertion")?false:(t.push(o.text),true)),t.join("")}function Jo(e,t,o){if(t>=o)return "";let r=[];return e.nodesBetween(t,o,(n,d)=>{if(!n.isText||!n.text||n.marks.some(u=>u.type.name==="insertion"))return;let s=Math.max(t,d),i=Math.min(o,d+n.text.length);s<i&&r.push(n.text.slice(s-d,i-d));}),r.join("")}function en(e,t,o,r){if(!r)return null;let n="",d=[];e.nodesBetween(t,o,(f,a)=>{!f.isText||!f.text||f.marks.some(S=>S.type.name==="insertion")||(d.push({pos:a,len:f.text.length}),n+=f.text);});let s=n.indexOf(r);if(s===-1||n.indexOf(r,s+1)!==-1)return null;let u=0,l=t,p=t;for(let f of d){let a=u+f.len;if(u<=s&&s<a&&(l=f.pos+(s-u)),u<=s+r.length&&s+r.length<=a){p=f.pos+(s+r.length-u);break}u=a;}return {from:l,to:p}}var Gn=1,lt=-1,tn=new Map;function Kn(){return Gn++}function Si(e){e>=Gn&&(Gn=e+1);}function Wt(e,t,o){return {id:Kn(),author:t,date:new Date().toISOString(),content:[{type:"paragraph",formatting:{},content:[{type:"run",formatting:{},content:[{type:"text",text:e}]}]}],...o!==void 0&&{parentId:o}}}function Ri({ref:e,agentRef:t,document:o,historyStateRef:r,pagedEditorRef:n,handleSave:d$1,handleDirectPrint:s,zoom:i,setZoom:u,scrollPageInfo:l,loadParsedDocument:p,loadBuffer:f,comments:a,setComments:S,setShowCommentsSidebar:m,contentChangeSubscribersRef:g,selectionChangeSubscribersRef:h,getCachedStyleResolver:R}){useImperativeHandle(e,()=>({getAgent:()=>t.current,getDocument:()=>o,getEditorRef:()=>n.current,save:d$1,setZoom:u,getZoom:()=>i,focus:()=>{n.current?.focus();},getCurrentPage:()=>l.currentPage,getTotalPages:()=>l.totalPages,scrollToPage:b=>{n.current?.scrollToPage(b);},scrollToPosition:b=>{n.current?.scrollToPosition(b);},openPrintPreview:s,print:s,loadDocument:p,loadDocumentBuffer:f,addComment:b=>{let c=n.current?.getView();if(!c)return null;let{schema:v}=c.state;if(!v.marks.comment)return null;let C=go(c.state.doc,b.paraId);if(!C)return null;let y=C.from,w=C.to;if(b.search){let E=en(c.state.doc,C.from,C.to,b.search);if(!E)return null;y=E.from,w=E.to;}let P=Wt(b.text,b.author),x=v.marks.comment.create({commentId:P.id});return c.dispatch(c.state.tr.addMark(y,w,x)),S(E=>[...E,P]),m(true),P.id},replyToComment:(b,c,v)=>{if(!a.some(y=>y.id===b))return null;let C=Wt(c,v,b);return S(y=>[...y,C]),C.id},resolveComment:b=>{S(c=>c.map(v=>v.id===b?{...v,done:true}:v));},proposeChange:b=>{let c=n.current?.getView();if(!c)return false;let{schema:v}=c.state;if(!v.marks.deletion||!v.marks.insertion)return false;let C=go(c.state.doc,b.paraId);if(!C)return false;let y=b.search==="",w=b.replaceWith==="",P,x;if(y)P=C.to-1,x=C.to-1;else {let A=en(c.state.doc,C.from,C.to,b.search);if(!A)return false;P=A.from,x=A.to;}let E=false;if(P<x&&(c.state.doc.nodesBetween(P,x,A=>{for(let j of A.marks)if(j.type===v.marks.insertion||j.type===v.marks.deletion)return E=true,false;return true}),E))return false;let T=Kn(),I=new Date().toISOString(),k=v.marks.deletion.create({revisionId:T,author:b.author,date:I}),L=v.marks.insertion.create({revisionId:T,author:b.author,date:I}),B=c.state.tr;if(y||(B=B.addMark(P,x,k)),!w){let A=v.text(b.replaceWith,[L]);B=B.insert(x,A);}return y&&w?false:(c.dispatch(B),m(true),true)},applyFormatting:b=>{let c=n.current?.getView();if(!c)return false;let{schema:v}=c.state,C=go(c.state.doc,b.paraId);if(!C)return false;let y=C.from+1,w=C.to-1;if(b.search){let E=en(c.state.doc,C.from,C.to,b.search);if(!E)return false;y=E.from,w=E.to;}if(y>=w)return true;let P=c.state.tr,x=b.marks;if(x.bold!==void 0&&v.marks.bold&&(P=x.bold?P.addMark(y,w,v.marks.bold.create()):P.removeMark(y,w,v.marks.bold)),x.italic!==void 0&&v.marks.italic&&(P=x.italic?P.addMark(y,w,v.marks.italic.create()):P.removeMark(y,w,v.marks.italic)),x.underline!==void 0&&v.marks.underline)if(x.underline){let E=typeof x.underline=="object"?x.underline.style:void 0;P=P.addMark(y,w,v.marks.underline.create({style:E??"single"}));}else P=P.removeMark(y,w,v.marks.underline);if(x.strike!==void 0&&v.marks.strike&&(P=x.strike?P.addMark(y,w,v.marks.strike.create()):P.removeMark(y,w,v.marks.strike)),x.color!==void 0&&v.marks.textColor&&(x.color&&(x.color.rgb||x.color.themeColor)?P=P.addMark(y,w,v.marks.textColor.create({rgb:x.color.rgb??null,themeColor:x.color.themeColor??null})):P=P.removeMark(y,w,v.marks.textColor)),x.highlight!==void 0&&v.marks.highlight)if(x.highlight){let E=g$1(x.highlight);P=P.addMark(y,w,v.marks.highlight.create({color:E||x.highlight}));}else P=P.removeMark(y,w,v.marks.highlight);return x.fontSize!==void 0&&v.marks.fontSize&&(x.fontSize>0?P=P.addMark(y,w,v.marks.fontSize.create({size:d(x.fontSize)})):P=P.removeMark(y,w,v.marks.fontSize)),x.fontFamily!==void 0&&v.marks.fontFamily&&(x.fontFamily&&(x.fontFamily.ascii||x.fontFamily.hAnsi)?P=P.addMark(y,w,v.marks.fontFamily.create({ascii:x.fontFamily.ascii??null,hAnsi:x.fontFamily.hAnsi??x.fontFamily.ascii??null})):P=P.removeMark(y,w,v.marks.fontFamily)),c.dispatch(P),true},setParagraphStyle:b=>{let c=n.current?.getView();if(!c)return false;let v=go(c.state.doc,b.paraId);if(!v)return false;let C=r.current,y=C?.package?.styles?R(C.package.styles):null;if(y&&!y.hasParagraphStyle(b.styleId))return false;let w=c.state.doc.resolve(v.from+1),P=c.state.doc.resolve(v.to-1),x=TextSelection.between(w,P),E=c.state.apply(c.state.tr.setSelection(x)),T=y?(()=>{let k=y.resolveParagraphStyle(b.styleId);return applyStyle(b.styleId,{paragraphFormatting:k.paragraphFormatting,runFormatting:k.runFormatting})})():applyStyle(b.styleId),I=false;return T(E,k=>{I=true,k.setSelection(c.state.selection.map(k.doc,k.mapping)),c.dispatch(k);}),I},getPageContent:b=>{let c=n.current?.getLayout();if(!c)return null;let v=c.pages[b-1];if(!v)return null;let C=n.current?.getView();if(!C)return null;let y=C.state.doc,w=new Set,P=[];for(let E of v.fragments){if(E.kind!=="paragraph")continue;let T=E.pmStart;if(T==null)continue;let I=y.nodeAt(T);if(!I||!I.isTextblock)continue;let k=I.attrs?.paraId;!k||w.has(k)||(w.add(k),P.push({paraId:k,text:$n(I),styleId:I.attrs?.styleId??void 0}));}let x=P.map(E=>`[${E.paraId}] ${E.text}`).join(`
|
|
13
|
+
`);return {pageNumber:b,text:x,paragraphs:P}},scrollToParaId:b=>n.current?.scrollToParaId(b)??false,findInDocument:(b,c)=>{let v=n.current?.getView();if(!v||!b)return [];let C=c?.caseSensitive??false,y=c?.limit??20,w=C?b:b.toLowerCase(),P=[];return v.state.doc.descendants(x=>{if(P.length>=y)return false;if(!x.isTextblock)return true;let E=x.attrs?.paraId;if(!E)return false;let T=$n(x),I=C?T:T.toLowerCase(),k=I.indexOf(w);if(k===-1||I.indexOf(w,k+1)!==-1)return false;let L=T.slice(k,k+b.length),B=40;return P.push({paraId:E,match:L,before:T.slice(Math.max(0,k-B),k),after:T.slice(k+b.length,k+b.length+B)}),false}),P},getSelectionInfo:()=>{let b=n.current?.getView();if(!b)return null;let{selection:c,doc:v}=b.state,C=c.$from,y=C.depth;for(;y>0&&!C.node(y).isTextblock;)y--;let w=y>0?C.node(y):null;if(!w)return null;let P=w.attrs?.paraId??null,x=C.start(y),E=x+w.content.size,T=Jo(v,x,c.from),I=Jo(v,c.from,c.to),k=Jo(v,c.to,E);return {paraId:P,selectedText:I,paragraphText:T+I+k,before:T,after:k}},getComments:()=>a,onContentChange:b=>(g.current.add(b),()=>{g.current.delete(b);}),onSelectionChange:b=>(h.current.add(b),()=>{h.current.delete(b);})}),[o,i,l,d$1,s,p,f,a]);}var G=e=>({style:"single",size:4,color:{rgb:e}}),fu=[{id:"TableNormal",name:"Normal Table",look:{firstRow:false,lastRow:false,noHBand:true,noVBand:true}},{id:"TableGrid",name:"Table Grid",tableBorders:{top:G("000000"),bottom:G("000000"),left:G("000000"),right:G("000000"),insideH:G("000000"),insideV:G("000000")},look:{firstRow:false,lastRow:false,noHBand:true,noVBand:true}},{id:"TableGridLight",name:"Grid Table Light",tableBorders:{top:G("BFBFBF"),bottom:G("BFBFBF"),left:G("BFBFBF"),right:G("BFBFBF"),insideH:G("BFBFBF"),insideV:G("BFBFBF")},look:{firstRow:true,lastRow:false,noHBand:true,noVBand:true},conditionals:{firstRow:{bold:true,borders:{bottom:G("000000")}}}},{id:"PlainTable1",name:"Plain Table 1",tableBorders:{top:G("BFBFBF"),bottom:G("BFBFBF"),insideH:G("BFBFBF")},look:{firstRow:true,lastRow:false,noHBand:true,noVBand:true},conditionals:{firstRow:{bold:true}}},{id:"PlainTable2",name:"Plain Table 2",look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,borders:{bottom:G("7F7F7F")}},band1Horz:{backgroundColor:"#F2F2F2"}}},{id:"PlainTable3",name:"Plain Table 3",look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#A5A5A5"},band1Horz:{backgroundColor:"#E7E7E7"}}},{id:"PlainTable4",name:"Plain Table 4",look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#000000"},band1Horz:{backgroundColor:"#F2F2F2"}}},{id:"GridTable1Light-Accent1",name:"Grid Table 1 Light",tableBorders:{top:G("B4C6E7"),bottom:G("B4C6E7"),left:G("B4C6E7"),right:G("B4C6E7"),insideH:G("B4C6E7"),insideV:G("B4C6E7")},look:{firstRow:true,lastRow:false,noHBand:true,noVBand:true},conditionals:{firstRow:{bold:true,borders:{bottom:G("4472C4")}}}},{id:"GridTable4-Accent1",name:"Grid Table 4 Accent 1",tableBorders:{top:G("4472C4"),bottom:G("4472C4"),left:G("4472C4"),right:G("4472C4"),insideH:G("4472C4"),insideV:G("4472C4")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#4472C4"},band1Horz:{backgroundColor:"#D6E4F0"}}},{id:"GridTable5Dark-Accent1",name:"Grid Table 5 Dark",tableBorders:{top:G("FFFFFF"),bottom:G("FFFFFF"),left:G("FFFFFF"),right:G("FFFFFF"),insideH:G("FFFFFF"),insideV:G("FFFFFF")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#4472C4"},band1Horz:{backgroundColor:"#D6E4F0"},band2Horz:{backgroundColor:"#B4C6E7"}}},{id:"ListTable3-Accent2",name:"List Table 3 Accent 2",tableBorders:{top:G("ED7D31"),bottom:G("ED7D31")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#ED7D31"},band1Horz:{backgroundColor:"#FBE4D5"}}},{id:"ListTable4-Accent3",name:"List Table 4 Accent 3",tableBorders:{top:G("A5A5A5"),bottom:G("A5A5A5"),insideH:G("A5A5A5")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#A5A5A5"},band1Horz:{backgroundColor:"#EDEDED"}}},{id:"GridTable4-Accent5",name:"Grid Table 4 Accent 5",tableBorders:{top:G("5B9BD5"),bottom:G("5B9BD5"),left:G("5B9BD5"),right:G("5B9BD5"),insideH:G("5B9BD5"),insideV:G("5B9BD5")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#5B9BD5"},band1Horz:{backgroundColor:"#DEEAF6"}}},{id:"GridTable4-Accent6",name:"Grid Table 4 Accent 6",tableBorders:{top:G("70AD47"),bottom:G("70AD47"),left:G("70AD47"),right:G("70AD47"),insideH:G("70AD47"),insideV:G("70AD47")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#70AD47"},band1Horz:{backgroundColor:"#E2EFDA"}}}];function Pi(e){return fu.find(t=>t.id===e)}function wi({getActiveEditorView:e,focusActiveEditor:t,tableSelection:o,borderSpecRef:r,historyStateRef:n,getCachedStyleResolver:d}){let[s,i]=useState(false),[u,l]=useState({isOpen:false,initialRows:1,initialCols:2,minRows:1,minCols:1,source:null,capturedCellRow:null,capturedCellCol:null}),p=useCallback(()=>{let m=e(),g=m?getSplitCellDialogConfig(m.state):null,h=g?null:o.getSplitCellConfig(),R=g??h;R&&l({isOpen:true,...R,source:g?"pm":"legacy",capturedCellRow:g?.capturedCellRow??null,capturedCellCol:g?.capturedCellCol??null});},[e,o]),f=useCallback(m=>{let g=e();if(!g){m==="splitCell"?p():typeof m!="object"&&o.handleAction(m);return}switch(m){case "addRowAbove":addRowAbove(g.state,g.dispatch);break;case "addRowBelow":addRowBelow(g.state,g.dispatch);break;case "addColumnLeft":addColumnLeft(g.state,g.dispatch);break;case "addColumnRight":addColumnRight(g.state,g.dispatch);break;case "deleteRow":deleteRow(g.state,g.dispatch);break;case "deleteColumn":deleteColumn(g.state,g.dispatch);break;case "deleteTable":deleteTable(g.state,g.dispatch);break;case "selectTable":selectTable(g.state,g.dispatch);break;case "selectRow":selectRow(g.state,g.dispatch);break;case "selectColumn":selectColumn(g.state,g.dispatch);break;case "mergeCells":mergeCells(g.state,g.dispatch);break;case "splitCell":p();break;case "borderAll":setAllTableBorders(g.state,g.dispatch,r.current);break;case "borderOutside":setOutsideTableBorders(g.state,g.dispatch,r.current);break;case "borderInside":setInsideTableBorders(g.state,g.dispatch,r.current);break;case "borderNone":removeTableBorders(g.state,g.dispatch);break;case "borderTop":setCellBorder("top",r.current,true)(g.state,g.dispatch);break;case "borderBottom":setCellBorder("bottom",r.current,true)(g.state,g.dispatch);break;case "borderLeft":setCellBorder("left",r.current,true)(g.state,g.dispatch);break;case "borderRight":setCellBorder("right",r.current,true)(g.state,g.dispatch);break;default:if(typeof m=="object"){if(m.type==="cellFillColor")setCellFillColor(m.color)(g.state,g.dispatch);else if(m.type==="borderColor"){let h=m.color.replace(/^#/,"");r.current={...r.current,color:{rgb:h}},setTableBorderColor(m.color)(g.state,g.dispatch);}else if(m.type==="borderWidth")r.current={...r.current,size:m.size},setTableBorderWidth(m.size)(g.state,g.dispatch);else if(m.type==="cellBorder")setCellBorder(m.side,{style:m.style,size:m.size,color:{rgb:m.color.replace(/^#/,"")}})(g.state,g.dispatch);else if(m.type==="cellVerticalAlign")setCellVerticalAlign(m.align)(g.state,g.dispatch);else if(m.type==="cellMargins")setCellMargins(m.margins)(g.state,g.dispatch);else if(m.type==="cellTextDirection")setCellTextDirection(m.direction)(g.state,g.dispatch);else if(m.type==="toggleNoWrap")toggleNoWrap()(g.state,g.dispatch);else if(m.type==="rowHeight")setRowHeight(m.height,m.rule)(g.state,g.dispatch);else if(m.type==="toggleHeaderRow")toggleHeaderRow()(g.state,g.dispatch);else if(m.type==="distributeColumns")distributeColumns()(g.state,g.dispatch);else if(m.type==="autoFitContents")autoFitContents()(g.state,g.dispatch);else if(m.type==="openTableProperties")i(true);else if(m.type==="applyTableStyle"){let h=Pi(m.styleId),R=n.current;if(!h&&R?.package.styles){let c=d(R.package.styles).getStyle(m.styleId);if(c){if(h={id:c.styleId,name:c.name??c.styleId},c.tblPr?.borders){let v=c.tblPr.borders;h.tableBorders={};for(let C of ["top","bottom","left","right","insideH","insideV"]){let y=v[C];y&&(h.tableBorders[C]={style:y.style,size:y.size,color:y.color?.rgb?{rgb:y.color.rgb}:void 0});}}if(c.tblStylePr){h.conditionals={};for(let v of c.tblStylePr){let C={};if(v.tcPr?.shading?.fill&&(C.backgroundColor=`#${v.tcPr.shading.fill}`),v.tcPr?.borders){let y={};for(let w of ["top","bottom","left","right"]){let P=v.tcPr.borders[w];P&&(y[w]={style:P.style,size:P.size,color:P.color?.rgb?{rgb:P.color.rgb}:void 0});}C.borders=y;}v.rPr?.bold&&(C.bold=true),v.rPr?.color?.rgb&&(C.color=`#${v.rPr.color.rgb}`),h.conditionals[v.type]=C;}}h.look={firstRow:true,lastRow:false,noHBand:false,noVBand:true};}}h&&applyTableStyle({styleId:h.id,tableBorders:h.tableBorders,conditionals:h.conditionals,look:h.look})(g.state,g.dispatch);}}else o.handleAction(m);}t();},[o,e,t,p,r,n,d]),a=useCallback(()=>{l(m=>({...m,isOpen:false,source:null,capturedCellRow:null,capturedCellCol:null}));},[]),S=useCallback((m,g)=>{if(u.source==="legacy"){o.applySplitCell(m,g),t();return}let h=e();h&&(splitActiveTableCell(h.state,h.dispatch,m,g,u.capturedCellRow??void 0,u.capturedCellCol??void 0),t());},[t,e,u.source,u.capturedCellRow,u.capturedCellCol,o]);return {tablePropsOpen:s,setTablePropsOpen:i,splitCellDialogState:u,openSplitCellDialog:p,handleTableAction:f,handleSplitCellDialogClose:a,handleSplitCellDialogApply:S}}function Ei({document:e,pushDocument:t,hfEditorRef:o,containerRef:r,initialSectionProperties:n,finalSectionProperties:d,hfEditPosition:s,setHfEditPosition:i,hfEditIsFirstPage:u,setHfEditIsFirstPage:l}){let{headerContent:p,footerContent:f,firstPageHeaderContent:a,firstPageFooterContent:S}=useMemo(()=>{let{header:c,footer:v,firstHeader:C,firstFooter:y}=resolveHeaderFooter(e??null,d??n);return {headerContent:c,footerContent:v,firstPageHeaderContent:C,firstPageFooterContent:y}},[e,n,d]),m=useCallback((c,v)=>{let y=e?.package?.document?.finalSectionProperties?.titlePg===true&&(v??1)===1,w=y?c==="header"?a:S:c==="header"?p:f;if(l(y),w){i(c);return}if(!e?.package)return;let P=e.package,x=P.document?.finalSectionProperties;if(!x)return;let E=y?"first":"default",T=`rId_new_${c}_${E}`,I={type:c==="header"?"header":"footer",hdrFtrType:E,content:[{type:"paragraph",content:[]}]},k=c==="header"?"headers":"footers",L=new Map(P[k]??[]);L.set(T,I);let B=c==="header"?"headerReferences":"footerReferences",A=x[B]??[],j={type:E,rId:T},_=P.relationships,V=new Set;for(let ne of _?.values()??[])ne.target&&V.add(ne.target);let oe=1;for(;V.has(`${c}${oe}.xml`);)oe++;let ie=c==="header"?"http://schemas.openxmlformats.org/officeDocument/2006/relationships/header":"http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer",Q=new Map(_);Q.set(T,{id:T,type:ie,target:`${c}${oe}.xml`});let ae={...e,package:{...P,[k]:L,relationships:Q,document:P.document?{...P.document,finalSectionProperties:{...x,[B]:[...A,j]}}:P.document}};t(ae),i(c);},[p,f,a,S,e,t,i,l]),g=useCallback(c=>{if(!s||!e?.package){i(null);return}let v=e.package,C=v.document?.finalSectionProperties,y=s==="header"?C?.headerReferences:C?.footerReferences,w=u?"first":"default",P=y?.find(T=>T.type===w)??y?.find(T=>T.type==="default")??y?.find(T=>T.type==="first")??y?.[0],x=s==="header"?"headers":"footers",E=v[x];if(P?.rId&&E){let T=E.get(P.rId),I={type:s,hdrFtrType:P.type,...T,content:c},k=new Map(E);k.set(P.rId,I);let L={...e,package:{...v,[x]:k}};t(L);}i(null);},[s,u,e,t,i]),h=useCallback(()=>{if(!s)return;let c=o.current?.getView();if(c){let v=proseDocToBlocks(c.state.doc);g(v);}else i(null);},[s,g,o,i]),R=useCallback(()=>{if(!s||!e?.package){i(null);return}let c=e.package,v=c.document?.finalSectionProperties,C=s==="header"?"headerReferences":"footerReferences",y=s==="header"?"headers":"footers",w=v?.[C],P=u?"first":"default",x=w?.find(E=>E.type===P)??w?.find(E=>E.type==="default")??w?.find(E=>E.type==="first")??w?.[0];if(x?.rId){let E=new Map(c[y]??[]);E.delete(x.rId);let T=(w??[]).filter(k=>k.rId!==x.rId),I={...e,package:{...c,[y]:E,document:c.document?{...c.document,finalSectionProperties:{...v,[C]:T}}:c.document}};t(I);}i(null);},[s,u,e,t,i]),b=useCallback(c=>{let v=r.current?.querySelector(".paged-editor__pages");if(!v)return null;let C=c==="header"?".layout-page-header":".layout-page-footer";return v.querySelector(C)},[r]);return {headerContent:p,footerContent:f,firstPageHeaderContent:a,firstPageFooterContent:S,handleHeaderFooterDoubleClick:m,handleHeaderFooterSave:g,handleBodyClick:h,handleRemoveHeaderFooter:R,getHfTargetElement:b}}function ki({documentBuffer:e,initialDocument:t,externalContent:o,history:r,agentRef:n,pagedEditorRef:d,setLoadingState:s,setComments:i,setShowCommentsSidebar:u,onError:l,resetForNewDocument:p,commentsLoadedRef:f}){let a=useRef(0),S=useCallback(g=>{p(),r.reset(g),s({isLoading:false,parseError:null}),loadDocumentFonts(g).catch(h=>{console.warn("Failed to load document fonts:",h);});},[p,r,s]),m=useCallback(async g=>{let h=++a.current;p(),s({isLoading:true,parseError:null});try{let R=await parseDocx(g);if(a.current!==h)return;S(R);}catch(R){if(a.current!==h)return;let b=R instanceof Error?R.message:"Failed to parse document";s({isLoading:false,parseError:b}),l?.(R instanceof Error?R:new Error(b));}},[p,S,l,s]);return useEffect(()=>{if(!o){if(!e){t&&S(t);return}m(e);}},[e,t,o]),useEffect(()=>{r.state?n.current=new DocumentAgent(r.state):n.current=null;},[r.state,n]),useEffect(()=>{if(f.current)return;let g=r.state;if(!g)return;let h=g.package?.document?.comments;if(h&&h.length>0){i(h),u(true),f.current=true;let R=h.reduce((c,v)=>Math.max(c,v.id),0),b=d.current?.getView();b&&b.state.doc.descendants(c=>{for(let v of c.marks)v.attrs.revisionId!=null&&(R=Math.max(R,v.attrs.revisionId));}),Si(R);}},[r.state,d,i,u,f]),{loadParsedDocument:S,loadBuffer:m}}var ep={inline:"wrap_text",squareLeft:"format_image_left",squareRight:"format_image_right",behind:"flip_to_back",inFront:"flip_to_front"},yo=18,Li=({isOpen:e,position:t,currentWrapType:o,currentCssFloat:r,onApplyLayout:n,textActions:d,onTextAction:s,onOpenProperties:i,onClose:u})=>{let{t:l}=b(),p=useRef(null),[f,a]=useState(0),S=useMemo(()=>deriveLayoutChoice(o,r),[o,r]),m=useMemo(()=>IMAGE_LAYOUT_OPTIONS.filter(c=>isImageLayoutOptionEnabled(c,o)),[o]),g=useMemo(()=>(d??[]).filter(c=>!c.disabled),[d]),h$1=i?1:0,R=h$1+m.length+g.length;useEffect(()=>{if(!e)return;let c=C=>{p.current&&!p.current.contains(C.target)&&u();},v=setTimeout(()=>{document.addEventListener("mousedown",c);},0);return ()=>{clearTimeout(v),document.removeEventListener("mousedown",c);}},[e,u]),useEffect(()=>{if(!e)return;let c=v=>{if(v.key==="Escape"){v.preventDefault(),u();return}let C=Math.max(1,R);if(v.key==="ArrowDown")v.preventDefault(),a(y=>(y+1)%C);else if(v.key==="ArrowUp")v.preventDefault(),a(y=>(y-1+C)%C);else if(v.key==="Enter"){if(v.preventDefault(),h$1&&f===0)i?.(),u();else if(f<h$1+m.length)n(m[f-h$1].choice),u();else if(s){let y=g[f-h$1-m.length];y&&(s(y.action),u());}}};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[e,f,m,g,R,h$1,n,i,s,u]),useEffect(()=>{if(!e)return;let c=S?m.findIndex(v=>v.choice===S):-1;a(c>=0?h$1+c:0);},[e,S,m,h$1]);let b$2=useCallback(()=>{let v=IMAGE_LAYOUT_OPTIONS.length,C=d?.length??0,y=v*36+C*32+(C>0?9:0)+16,w=t.x,P=t.y;return typeof window<"u"&&(w+260>window.innerWidth&&(w=window.innerWidth-260-10),P+y>window.innerHeight&&(P=window.innerHeight-y-10),w<10&&(w=10),P<10&&(P=10)),{position:"fixed",top:P,left:w,minWidth:260,background:"white",border:"1px solid var(--doc-border-light, #e0e0e0)",borderRadius:"8px",boxShadow:"0 2px 10px rgba(0, 0, 0, 0.15)",zIndex:h.contextMenu,padding:"4px 0",overflow:"hidden"}},[t,d]);return e?jsxs("div",{ref:p,className:"docx-image-context-menu",style:b$2(),role:"menu","aria-label":l("imageWrap.menu.ariaLabel"),"data-testid":"image-context-menu",children:[i&&jsxs(Fragment,{children:[jsxs("button",{type:"button",role:"menuitem","data-action":"open-properties",onClick:()=>{i(),u();},onMouseEnter:()=>a(0),style:{display:"flex",alignItems:"center",gap:"10px",width:"100%",padding:"8px 12px",border:"none",background:f===0?"var(--doc-primary-light, #eef4ff)":"transparent",cursor:"pointer",fontSize:"13px",color:"var(--doc-text, #222)",textAlign:"left"},children:[jsx("span",{style:{display:"flex",color:"var(--doc-text-muted, #666)",width:yo},children:jsx(b$1,{name:"settings",size:yo})}),jsx("span",{style:{flex:1},children:l("imageWrap.menu.imageProperties")})]}),jsx("div",{style:{height:1,background:"var(--doc-border-light, #e0e0e0)",margin:"4px 0"},role:"separator"})]}),IMAGE_LAYOUT_OPTIONS.map(c=>{let v=c.choice===S,C=isImageLayoutOptionEnabled(c,o),y=C?h$1+m.findIndex(x=>x.choice===c.choice):-1,w=y>=0&&y===f,P=l(`imageWrap.menuDesc.${c.i18nDescKey}`);return jsxs("button",{type:"button",role:"menuitem","data-wrap-type":c.choice,"data-current":v?"true":"false","data-disabled":C?"false":"true",disabled:!C,onClick:()=>{C&&(n(c.choice),u());},onMouseEnter:()=>{y>=0&&a(y);},title:P,style:{display:"flex",alignItems:"center",gap:"10px",width:"100%",padding:"8px 12px",border:"none",background:w?"var(--doc-primary-light, #eef4ff)":"transparent",cursor:C?"pointer":"not-allowed",fontSize:"13px",color:C?"var(--doc-text, #222)":"var(--doc-text-placeholder, #999)",textAlign:"left",opacity:C?1:.55},children:[jsx("span",{style:{display:"flex",color:v?"var(--doc-primary, #2563eb)":"var(--doc-text-muted, #666)",width:yo},children:jsx(b$1,{name:ep[c.iconHint],size:yo})}),jsx("span",{style:{flex:1},children:l(`imageWrap.menu.${c.i18nLabelKey}`)}),v&&jsx("span",{style:{fontSize:"11px",color:"var(--doc-primary, #2563eb)"},"aria-label":l("toolbar.imageWrap.current"),children:"\u25CF"})]},c.choice)}),d&&d.length>0&&jsxs(Fragment,{children:[jsx("div",{style:{height:1,background:"var(--doc-border-light, #e0e0e0)",margin:"4px 0"},role:"separator"}),d.map((c,v)=>{let C=c.disabled?-1:h$1+m.length+g.findIndex(w=>w.action===c.action),y=C===f&&!c.disabled;return jsxs(Rl.Fragment,{children:[jsxs("button",{type:"button",role:"menuitem","data-action":c.action,"data-disabled":c.disabled?"true":"false",disabled:c.disabled,onClick:()=>{c.disabled||!s||(s(c.action),u());},onMouseEnter:()=>{C>=0&&a(C);},style:{display:"flex",alignItems:"center",gap:"10px",width:"100%",padding:"7px 12px",border:"none",background:y?"var(--doc-primary-light, #eef4ff)":"transparent",cursor:c.disabled?"not-allowed":"pointer",fontSize:"13px",color:c.disabled?"var(--doc-text-placeholder, #999)":"var(--doc-text, #222)",textAlign:"left",opacity:c.disabled?.55:1},children:[jsx("span",{style:{width:yo},"aria-hidden":"true"}),jsx("span",{style:{flex:1},children:c.label}),c.shortcut&&jsx("span",{style:{fontSize:"11px",color:"var(--doc-text-muted, #888)",fontFamily:"monospace"},children:c.shortcut})]}),c.dividerAfter&&jsx("div",{style:{height:1,background:"var(--doc-border-light, #e0e0e0)",margin:"4px 0"},role:"separator"})]},`${c.action}-${v}`)})]})]}):null};function Hi(){let[e,t]=useState(false),[o,r]=useState({x:0,y:0}),[n,d]=useState("inline"),[s,i]=useState(null),[u,l]=useState(null),[p,f]=useState(null),a=useCallback(m=>{r({x:m.x,y:m.y}),d(m.wrapType),i(m.cssFloat??null),l(m.pos),f(m.inlinePositionEmu??null),t(true);},[]),S=useCallback(()=>{t(false),l(null),f(null);},[]);return {isOpen:e,position:o,currentWrapType:n,currentCssFloat:s,imagePos:u,inlinePositionEmu:p,openForImage:a,closeMenu:S}}function Ni({getActiveEditorView:e,focusActiveEditor:t,openSplitCellDialog:o,scrollContainerRef:r,editorContentRef:n,i18n:d,onAddComment:s}){let{t:i}=b(),[u,l]=useState({isOpen:false,position:{x:0,y:0},hasSelection:false,cursorInTable:false,tableContext:null}),p=Hi(),f=useCallback(b=>{let c=b.target;if(c?.closest(".paged-editor__pages")&&!c.closest(".hf-inline-editor"))return;b.preventDefault(),b.stopPropagation();let v=e(),C=v?getTableContext(v.state):{isInTable:false},{from:y,to:w}=v?.state.selection??{from:0,to:0},P=y!==w;l({isOpen:true,position:{x:b.clientX,y:b.clientY},hasSelection:P,cursorInTable:C.isInTable,tableContext:C.isInTable?C:null});},[e]),a=useCallback(b=>{if(b.image){p.openForImage({x:b.x,y:b.y,wrapType:b.image.wrapType,cssFloat:b.image.cssFloat,pos:b.image.pos,inlinePositionEmu:b.image.inlinePositionEmu});return}let c=e(),v=c?getTableContext(c.state):{isInTable:false};l({isOpen:true,position:b,hasSelection:b.hasSelection,cursorInTable:v.isInTable,tableContext:v.isInTable?v:null});},[e,p]),S=useCallback(b=>{let c=e();if(!c||p.imagePos===null)return;let v=p.inlinePositionEmu?{initialPositionEmu:p.inlinePositionEmu}:void 0;setImageWrapType(p.imagePos,b,v)(c.state,c.dispatch);},[e,p.imagePos,p.inlinePositionEmu]),m=useMemo(()=>[{action:"cut",label:i("contextMenu.cut"),shortcut:a$1(i("contextMenu.cutShortcut"))},{action:"copy",label:i("contextMenu.copy"),shortcut:a$1(i("contextMenu.copyShortcut"))},{action:"paste",label:i("contextMenu.paste"),shortcut:a$1(i("contextMenu.pasteShortcut")),dividerAfter:true},{action:"delete",label:i("contextMenu.delete"),shortcut:a$1(i("contextMenu.deleteShortcut"))}],[i]),g=useCallback(()=>{l({isOpen:false,position:{x:0,y:0},hasSelection:false,cursorInTable:false,tableContext:null});},[]),h=useMemo(()=>{let b=[{action:"cut",label:i("contextMenu.cut"),shortcut:a$1(i("contextMenu.cutShortcut"))},{action:"copy",label:i("contextMenu.copy"),shortcut:a$1(i("contextMenu.copyShortcut"))},{action:"paste",label:i("contextMenu.paste"),shortcut:a$1(i("contextMenu.pasteShortcut"))},{action:"pasteAsPlainText",label:i("contextMenu.pastePlainText"),shortcut:a$1(i("contextMenu.pastePlainTextShortcut")),dividerAfter:true},{action:"delete",label:i("contextMenu.delete"),shortcut:a$1(i("contextMenu.deleteShortcut")),dividerAfter:!u.hasSelection&&!u.cursorInTable}];return u.hasSelection&&b.push({action:"addComment",label:"Comment",dividerAfter:!u.cursorInTable}),u.cursorInTable&&b.push({action:"addRowAbove",label:"Insert row above"},{action:"addRowBelow",label:"Insert row below"},{action:"deleteRow",label:"Delete row",dividerAfter:true},{action:"addColumnLeft",label:"Insert column left"},{action:"addColumnRight",label:"Insert column right"},{action:"deleteColumn",label:"Delete column"},{action:"mergeCells",label:d?.table?.mergeCells??en$1.table.mergeCells,disabled:!u.tableContext?.hasMultiCellSelection},{action:"splitCell",label:d?.table?.splitCell??en$1.table.splitCell,disabled:!u.tableContext?.canSplitCell,dividerAfter:true}),b.push({action:"selectAll",label:i("contextMenu.selectAll"),shortcut:a$1(i("contextMenu.selectAllShortcut"))}),b},[u.hasSelection,u.cursorInTable,u.tableContext,d,i]),R=useCallback(async b=>{let c=e();if(c)switch(t(),b){case "cut":document.execCommand("cut");break;case "copy":document.execCommand("copy");break;case "paste":{try{let v=await navigator.clipboard.read(),C="",y="";for(let x of v)x.types.includes("text/html")&&(C=await(await x.getType("text/html")).text()),x.types.includes("text/plain")&&(y=await(await x.getType("text/plain")).text());let w=new DataTransfer;C&&w.items.add(C,"text/html"),y&&w.items.add(y,"text/plain");let P=new ClipboardEvent("paste",{clipboardData:w,bubbles:!0,cancelable:!0});c.dom.dispatchEvent(P);}catch{try{let v=await navigator.clipboard.readText();v&&c.dispatch(c.state.tr.insertText(v));}catch{}}break}case "pasteAsPlainText":try{let v=await navigator.clipboard.readText();v&&c.dispatch(c.state.tr.insertText(v));}catch{}break;case "delete":{let{from:v,to:C}=c.state.selection;v!==C&&c.dispatch(c.state.tr.deleteRange(v,C));break}case "selectAll":c.dispatch(c.state.tr.setSelection(TextSelection.create(c.state.doc,0,c.state.doc.content.size)));break;case "addRowAbove":addRowAbove(c.state,c.dispatch);break;case "addRowBelow":addRowBelow(c.state,c.dispatch);break;case "deleteRow":deleteRow(c.state,c.dispatch);break;case "addColumnLeft":addColumnLeft(c.state,c.dispatch);break;case "addColumnRight":addColumnRight(c.state,c.dispatch);break;case "deleteColumn":deleteColumn(c.state,c.dispatch);break;case "mergeCells":mergeCells(c.state,c.dispatch);break;case "splitCell":o();break;case "addComment":{let{from:v,to:C}=c.state.selection;if(v===C)break;let y=Qo(r.current,n.current,v),w=c.state.schema.marks.comment.create({commentId:lt}),P=c.state.tr.addMark(v,C,w);P.setSelection(TextSelection.create(P.doc,C)),c.dispatch(P),s({from:v,to:C,yPos:y});break}}},[e,t,o,r,n,s]);return {contextMenu:u,imageContextMenu:p,handleEditorContextMenu:f,handleContextMenu:a,handleContextMenuClose:g,handleImageWrapApply:S,imageContextMenuTextActions:m,contextMenuItems:h,handleContextMenuAction:R}}function _i({commentsProp:e,onCommentDelete:t,onCommentsChange:o,pagedEditorRef:r}){let[n,d]=useState([]),s=e!==void 0,i=s?e:n,[u,l]=useState(false),[p,f]=useState(null),[a,S]=useState(null),[m,g]=useState(null),h=useRef(null),R=useRef(i);R.current=i;let b=useRef(u);b.current=u;let c=useRef(t);c.current=t;let v=useRef(o);v.current=o;let C=useCallback(w=>{let P=typeof w=="function"?w(R.current):w;P!==R.current&&(s||(R.current=P,d(P)),v.current?.(P));},[s]),y=useCallback(()=>{if(b.current)return;let w=r.current?.getView();if(!w)return;let{doc:P,schema:x}=w.state,E=x.marks.comment;if(!E)return;let T=new Set;P.descendants(L=>{for(let B of L.marks)if(B.type===E){let A=B.attrs.commentId;A!==lt&&T.add(A);}});let I=R.current,k=new Set;for(let L of I)L.parentId==null&&!T.has(L.id)&&k.add(L.id);if(k.size!==0){for(let L of I)k.has(L.id)&&c.current?.(L);C(L=>L.filter(B=>!k.has(B.id)&&!k.has(B.parentId)));}},[r,C]);return useEffect(()=>()=>{h.current&&clearTimeout(h.current);},[]),{comments:i,setComments:C,isAddingComment:u,setIsAddingComment:l,isAddingCommentRef:b,commentSelectionRange:p,setCommentSelectionRange:f,addCommentYPosition:a,setAddCommentYPosition:S,floatingCommentBtn:m,setFloatingCommentBtn:g,cleanOrphanedCommentsTimerRef:h,cleanOrphanedComments:y}}function Vi({commentToRevision:e,setComments:t,pmState:o,isLoading:r,trackedChangesCount:n,setShowCommentsSidebar:d,trackedChangesLoadedRef:s}){useEffect(()=>{e.size!==0&&t(i=>{let u=false,l=i.map(p=>{if(p.parentId!=null)return p;let f=e.get(p.id);return f!=null?(u=true,{...p,parentId:f}):p});return u?l:i});},[e,t]),useEffect(()=>{s.current||r||!o||(s.current=true,n>0&&d(true));},[o,r,n,d,s]);}function $i({getActiveEditorView:e,lastSelectionRef:t,borderSpecRef:o,theme:r,historyStateRef:n,getCachedStyleResolver:d,setFloatingCommentBtn:s,applySelectionDelta:i,recomputeFloatingCommentBtn:u,onSelectionChange:l,selectionChangeSubscribersRef:p}){return {handleSelectionChange:useCallback(a=>{let S=e();if(S){let{from:x,to:E}=S.state.selection;t.current={from:x,to:E};}let m=null;if(S&&(m=getTableContext(S.state),m.isInTable||(m=null)),m?.cellBorderColor){let x=resolveColorToHex(m.cellBorderColor,r??void 0);x&&(o.current={...o.current,color:{rgb:x}});}let g=null;if(S){let x=S.state.selection,E=x.node;E?.type.name==="image"&&(g={pos:x.from,wrapType:E.attrs.wrapType??"inline",displayMode:E.attrs.displayMode??"inline",cssFloat:E.attrs.cssFloat??null,transform:E.attrs.transform??null,alt:E.attrs.alt??null,borderWidth:E.attrs.borderWidth??null,borderColor:E.attrs.borderColor??null,borderStyle:E.attrs.borderStyle??null,width:E.attrs.width??null,height:E.attrs.height??null});}if(!a){s(null),i({selectionFormatting:{},pmTableContext:m,pmImageContext:g});return}let{textFormatting:h,paragraphFormatting:R}=a,b=h.fontFamily?.ascii||h.fontFamily?.hAnsi,c=h.fontSize;if(!b||!c){let x=n.current,E=a.styleId;if(x?.package.styles&&E){let I=d(x.package.styles).resolveParagraphStyle(E);!b&&I.runFormatting?.fontFamily&&(b=I.runFormatting.fontFamily.ascii||I.runFormatting.fontFamily.hAnsi),!c&&I.runFormatting?.fontSize&&(c=I.runFormatting.fontSize);}}let v=resolveColorToHex(h.color,r??void 0),C=v?`#${v}`:void 0,y=R.numPr,w=y?{type:y.numId===1?"bullet":"numbered",level:y.ilvl??0,isInList:true,numId:y.numId}:void 0,P={bold:h.bold,italic:h.italic,underline:!!h.underline,strike:h.strike,superscript:h.vertAlign==="superscript",subscript:h.vertAlign==="subscript",fontFamily:b,fontSize:c,color:C,highlight:h.highlight,alignment:R.alignment,lineSpacing:R.lineSpacing,listState:w,styleId:a.styleId??void 0,indentLeft:R.indentLeft,bidi:!!R.bidi};i({selectionFormatting:P,paragraphIndentLeft:R.indentLeft??0,paragraphIndentRight:R.indentRight??0,paragraphFirstLineIndent:R.indentFirstLine??0,paragraphHangingIndent:R.hangingIndent??false,paragraphTabs:R.tabs??null,pmTableContext:m,pmImageContext:g}),u(),l?.(a);for(let x of p.current)try{x(a);}catch(E){console.error("selectionChange subscriber threw:",E);}},[e,t,o,r,n,d,s,i,u,l,p])}}function Ki({pagedEditorRef:e,scrollContainerRef:t,editorContentRef:o,isAddingCommentRef:r,setFloatingCommentBtn:n,readOnly:d,isLoading:s,zoom:i}){let u=useRef(false);u.current=d;let l=useCallback(()=>{let p=e.current?.getView();if(!p)return;if(r.current||u.current){n(null);return}let{from:f,to:a}=p.state.selection;if(f===a){n(null);return}let S=t.current,m=o.current;if(!S||!m)return;let g=Qo(S,m,f);if(g==null)return;let R=S.querySelector(".paged-editor__pages")?.querySelector(".layout-page"),b=R?R.getBoundingClientRect().right-m.getBoundingClientRect().left:m.getBoundingClientRect().width/2+408;n({top:g,left:b});},[e,t,o,r,n]);return useEffect(()=>{let p=t.current;if(!p)return;let f=new ResizeObserver(()=>l());f.observe(p);let a=()=>l();return window.addEventListener("resize",a),()=>{f.disconnect(),window.removeEventListener("resize",a);}},[s,l,t]),useEffect(()=>{l();},[i,l]),{recomputeFloatingCommentBtn:l}}function Yi({hfEditPosition:e,hfEditorRef:t,pagedEditorRef:o}){let r=useCallback(()=>e&&t.current?t.current.getView():o.current?.getView(),[e,t,o]),n=useCallback(()=>{e&&t.current?t.current.focus():o.current?.focus();},[e,t,o]),d=useCallback(()=>{e&&t.current?t.current.undo():o.current?.undo();},[e,t,o]),s=useCallback(()=>{e&&t.current?t.current.redo():o.current?.redo();},[e,t,o]);return {getActiveEditorView:r,focusActiveEditor:n,undoActiveEditor:d,redoActiveEditor:s}}function ji({scrollContainerRef:e,pagedEditorRef:t}){let[o,r]=useState({currentPage:1,totalPages:1,visible:false}),n=useRef(null),d=e.current;return useEffect(()=>{if(!d)return;let s=()=>{let i=t.current?.getLayout();if(!i||i.pages.length===0)return;let u=d.scrollTop,l=i.pages.length,p=24,f=24,a=u+d.clientHeight/2,S=f,m=1;for(let g=0;g<i.pages.length;g++){let h=i.pages[g].size.h,R=S+h;if(a<R){m=g+1;break}S=R+p,m=g+2;}m=Math.min(m,l),r({currentPage:m,totalPages:l,visible:true}),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{r(g=>({...g,visible:false}));},600);};return d.addEventListener("scroll",s,{passive:true}),()=>{d.removeEventListener("scroll",s),n.current&&clearTimeout(n.current);}},[d,t]),{scrollPageInfo:o,setScrollPageInfo:r}}function Xi({contextMenu:e,contextMenuItems:t,onContextMenuAction:o,onContextMenuClose:r,imageContextMenu:n,onImageWrapApply:d,imageContextMenuTextActions:s,onOpenImageProperties:i$1,readOnly:u}){return jsxs(Fragment,{children:[jsx(i,{isOpen:e.isOpen,position:e.position,hasSelection:e.hasSelection,isEditable:!u,items:t,onAction:o,onClose:r}),jsx(Li,{isOpen:n.isOpen,position:n.position,currentWrapType:n.currentWrapType,currentCssFloat:n.currentCssFloat,onApplyLayout:d,textActions:s,onTextAction:o,onOpenProperties:i$1,onClose:n.closeMenu}),jsx(Toaster,{position:"bottom-right"})]})}var Rp=lazy(()=>import('./FindReplaceDialog-6D74QA4V.mjs')),Pp=lazy(()=>import('./HyperlinkDialog-PSJ6P3E3.mjs')),Tp=lazy(()=>import('./TablePropertiesDialog-3QNCWNEG.mjs').then(e=>({default:e.TablePropertiesDialog}))),wp=lazy(()=>import('./SplitCellDialog-NPGW4JGQ.mjs')),Ep=lazy(()=>import('./ImagePositionDialog-FKBG2MSL.mjs').then(e=>({default:e.ImagePositionDialog}))),Ip=lazy(()=>import('./ImagePropertiesDialog-T77XMKJF.mjs').then(e=>({default:e.ImagePropertiesDialog}))),kp=lazy(()=>import('./FootnotePropertiesDialog-INLVLE26.mjs').then(e=>({default:e.FootnotePropertiesDialog}))),Mp=lazy(()=>import('./PageSetupDialog-CCJAZEIN.mjs').then(e=>({default:e.PageSetupDialog})));function qi({findReplace:e,findResultRef:t,onFind:o,onFindNext:r,onFindPrevious:n,onReplace:d,onReplaceAll:s,hyperlinkDialog:i,onHyperlinkSubmit:u,onHyperlinkRemove:l,tablePropsOpen:p,onTablePropsClose:f,pmTableContext:a,getActiveEditorView:S,splitCellDialogState:m,onSplitCellDialogClose:g,onSplitCellDialogApply:h,imagePositionOpen:R,onImagePositionClose:b,onApplyImagePosition:c,imagePropsOpen:v,onImagePropsClose:C,onApplyImageProperties:y,pmImageContext:w,showPageSetup:P,onPageSetupClose:x,onPageSetupApply:E,document:T,footnotePropsOpen:I,onFootnotePropsClose:k,onApplyFootnoteProperties:L}){return jsxs(Suspense,{fallback:null,children:[e.state.isOpen&&jsx(Rp,{isOpen:e.state.isOpen,onClose:e.close,onFind:o,onFindNext:r,onFindPrevious:n,onReplace:d,onReplaceAll:s,initialSearchText:e.state.searchText,replaceMode:e.state.replaceMode,currentResult:t.current}),i.state.isOpen&&jsx(Pp,{isOpen:i.state.isOpen,onClose:i.close,onSubmit:u,onRemove:i.state.isEditing?l:void 0,initialData:i.state.initialData,selectedText:i.state.selectedText,isEditing:i.state.isEditing}),p&&jsx(Tp,{isOpen:p,onClose:f,onApply:B=>{let A=S();A&&setTableProperties(B)(A.state,A.dispatch);},currentProps:a?.table?.attrs}),m.isOpen&&jsx(wp,{isOpen:m.isOpen,onClose:g,onApply:h,initialRows:m.initialRows,initialCols:m.initialCols,minRows:m.minRows,minCols:m.minCols}),R&&jsx(Ep,{isOpen:R,onClose:b,onApply:c}),v&&jsx(Ip,{isOpen:v,onClose:C,onApply:y,currentData:w?{alt:w.alt??void 0,borderWidth:w.borderWidth??void 0,borderColor:w.borderColor??void 0,borderStyle:w.borderStyle??void 0,width:w.width??void 0,height:w.height??void 0}:void 0}),P&&jsx(Mp,{isOpen:P,onClose:x,onApply:E,currentProps:T?.package.document?.finalSectionProperties}),I&&jsx(kp,{isOpen:I,onClose:k,onApply:L,footnotePr:T?.package.document?.finalSectionProperties?.footnotePr,endnotePr:T?.package.document?.finalSectionProperties?.endnotePr})]})}function Qi({active:e,onClick:t}){let{t:o}=b(),r=o("editor.toggleCommentsSidebar");return jsx(A,{onClick:t,active:e,title:r,ariaLabel:r,children:jsx(b$1,{name:"comment",size:20})})}var Jn=[{value:"editing",labelKey:"editor.editing",icon:"edit_note",descKey:"editor.editingDescription"},{value:"suggesting",labelKey:"editor.suggesting",icon:"rate_review",descKey:"editor.suggestingDescription"},{value:"viewing",labelKey:"editor.viewing",icon:"visibility",descKey:"editor.viewingDescription"}];function ea({mode:e,onModeChange:t}){let{t:o}=b(),[r,n]=useState(false),[d,s]=useState(false),i=useRef(null),u=useRef(null),[l,p]=useState({top:0,left:0}),f=Jn.find(a=>a.value===e);return useEffect(()=>{let a=window.matchMedia("(max-width: 1400px)");s(a.matches);let S=m=>s(m.matches);return a.addEventListener("change",S),()=>a.removeEventListener("change",S)},[]),useEffect(()=>{if(!r||!i.current)return;let a=i.current.getBoundingClientRect();p({top:a.bottom+2,left:a.right-220});},[r]),useEffect(()=>{if(!r)return;let a=m=>{!i.current?.contains(m.target)&&!u.current?.contains(m.target)&&n(false);},S=m=>{m.key==="Escape"&&n(false);};return document.addEventListener("mousedown",a),document.addEventListener("keydown",S),()=>{document.removeEventListener("mousedown",a),document.removeEventListener("keydown",S);}},[r]),jsxs("div",{style:{position:"relative"},children:[jsxs("button",{ref:i,type:"button",onMouseDown:a=>a.preventDefault(),onClick:()=>n(!r),title:`${o(f.labelKey)} (Ctrl+Shift+E)`,style:{display:"flex",alignItems:"center",gap:d?0:4,padding:d?"2px 4px":"2px 6px 2px 4px",border:"none",background:r?"var(--doc-hover, #f3f4f6)":"transparent",borderRadius:4,cursor:"pointer",fontSize:13,fontWeight:400,color:"var(--doc-text, #374151)",whiteSpace:"nowrap",height:28},children:[jsx(b$1,{name:f.icon,size:18}),!d&&jsx("span",{children:o(f.labelKey)}),jsx(b$1,{name:"arrow_drop_down",size:16})]}),r&&jsx("div",{ref:u,onMouseDown:a=>a.preventDefault(),style:{position:"fixed",top:l.top,left:l.left,backgroundColor:"white",border:"1px solid var(--doc-border, #d1d5db)",borderRadius:8,boxShadow:"0 4px 12px rgba(0, 0, 0, 0.12)",padding:"4px 0",zIndex:1e4,minWidth:220},children:Jn.map(a=>jsxs("button",{type:"button",onMouseDown:S=>S.preventDefault(),onClick:()=>{t(a.value),n(false);},onMouseOver:S=>{S.currentTarget.style.backgroundColor="var(--doc-hover, #f3f4f6)";},onMouseOut:S=>{S.currentTarget.style.backgroundColor="transparent";},style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",border:"none",background:"transparent",cursor:"pointer",fontSize:13,color:"var(--doc-text, #374151)",width:"100%",textAlign:"left"},children:[jsx(b$1,{name:a.icon,size:20}),jsxs("span",{style:{display:"flex",flexDirection:"column",alignItems:"flex-start"},children:[jsx("span",{style:{fontWeight:500},children:o(a.labelKey)}),jsx("span",{style:{fontSize:11,color:"var(--doc-text-muted, #9ca3af)"},children:o(a.descKey)})]}),a.value===e&&jsx(b$1,{name:"check",size:18,style:{marginLeft:"auto",color:"#1a73e8"}})]},a.value))})]})}function ta({active:e,onClick:t,badge:o}){let{t:r}=b(),n=r("agentPanel.toggle");return jsx(A,{onClick:t,active:e,title:n,ariaLabel:n,children:jsxs("span",{style:{position:"relative",display:"inline-flex"},children:[jsx(b$1,{name:"agent-sparkle",size:20}),o!=null&&jsx("span",{"data-testid":"agent-panel-toggle-badge",style:{position:"absolute",top:-4,right:-6,display:"inline-flex",alignItems:"center",justifyContent:"center",minWidth:14,height:14,padding:"0 3px",borderRadius:7,fontSize:10,fontWeight:600,background:"#ef4444",color:"#fff",lineHeight:1},children:o})]})})}function oa({toolbarRefCallback:e,agentPanelOpen:t,setAgentPanelOpen:o,document:r,theme:n,pmState:d,selectionFormatting:s,tableContext:i,imageContext:u,readOnly:l,editingMode:p,setEditingMode:f,setShowCommentsSidebar:a,setExpandedSidebarItem:S,showCommentsSidebar:m,agentPanel:g,renderLogo:h,documentName:R,onDocumentNameChange:b,documentNameEditable:c,renderTitleBarRight:v,toolbarExtra:C$1,fontFamilies:y,zoom:w,showZoomControl:P,onFormat:x,onUndo:E$1,onRedo:T,onPrint:I,onOpen:k,onSave:L,onZoomChange:B,onRefocusEditor:A,onInsertTable:j,onInsertImage:_,onInsertPageBreak:V,onInsertTOC:oe,onImageWrapType:ie,onImageTransform:Q,onOpenImageProperties:ae,onPageSetup:ne,onTableAction:ge}){return jsx("div",{ref:e,className:"z-50 flex flex-col gap-0 flex-shrink-0",children:jsxs(E,{className:t?"rounded-br-2xl":void 0,style:{transition:"border-radius 220ms cubic-bezier(0.4, 0, 0.2, 1)"},currentFormatting:s,onFormat:x,onUndo:E$1,onRedo:T,canUndo:d?undoDepth(d)>0:false,canRedo:d?redoDepth(d)>0:false,disabled:l,documentStyles:r?.package.styles?.styles,theme:r?.package.theme||n,fontFamilies:y,onPrint:I,onOpen:k,onSave:L,showZoomControl:P,zoom:w,onZoomChange:B,onRefocusEditor:A,onInsertTable:j,showTableInsert:true,onInsertImage:_,onInsertPageBreak:V,onInsertTOC:oe,imageContext:u,onImageWrapType:ie,onImageTransform:Q,onOpenImageProperties:ae,onPageSetup:ne,tableContext:i,onTableAction:ge,children:[jsxs(E.TitleBar,{children:[h&&jsx(E.Logo,{children:h()}),R!==void 0&&jsx(E.DocumentName,{value:R,onChange:b,editable:c}),v&&jsx(E.TitleBarRight,{children:v()}),jsx(E.MenuBar,{})]}),jsxs(E.Toolbar,{children:[jsx(C,{}),jsx(Qi,{active:m,onClick:()=>{a(J=>!J),S(null);}}),jsx(C,{}),jsx(ea,{mode:p,onModeChange:J=>{f(J),J==="suggesting"&&a(true);}}),g&&g.showToolbarButton!==false&&jsxs(Fragment,{children:[jsx(C,{}),jsx(ta,{active:t,badge:g.toolbarBadge,onClick:()=>o(!t)})]}),C$1]})]})})}var la=4,aa=false;function Xp(e){if(!aa){aa=true;try{let t=e.scrollIntoView();(typeof t.updated!="number"||(t.updated&la)===0)&&console.warn("[HiddenProseMirror] prosemirror-state UPDATED_SCROLL bit shape changed; paginated scroll suppression may be stale. Update PM_UPDATED_SCROLL.");}catch{}}}var qp={position:"fixed",left:"-9999px",top:"0",opacity:0,zIndex:-1,pointerEvents:"none",userSelect:"none",overflowAnchor:"none"};function sa(e,t,o,r=[]){let n=o?.getSchema()??schema,d=e?toProseDoc(e,{styles:t??void 0}):createEmptyDoc(),s=[...r,...o?.getPlugins()??[]];return EditorState.create({doc:d,schema:n,plugins:s})}function Zp(e,t){return t?fromProseDoc(e.doc,t):null}var Qp=forwardRef(function(t,o){let{document:r,styles:n,theme:d,widthPx:s=612,readOnly:i=false,onTransaction:u,onSelectionChange:l,externalPlugins:p=[],extensionManager:f,onEditorViewReady:a,onEditorViewDestroy:S,onKeyDown:m}=t,g=useRef(null),h=useRef(null),R=useRef(r),b=useRef(false),c=useRef(null),v=useRef(false),C=useRef(u),y=useRef(l),w=useRef(a),P=useRef(S),x=useRef(m);C.current=u,y.current=l,w.current=a,P.current=S,x.current=m,R.current=r;let E=A=>{if(!A)return "empty";let j=A.package?.properties;return `${j?.created||""}-${j?.modified||""}-${j?.title||""}`},T=useCallback(()=>{if(!g.current||b.current)return;let j={state:sa(r,n,f,p),editable:()=>!i,attributes:{style:"overflow-anchor: none"},dispatchTransaction(V){if(b.current)return;h.current||(h.current=this),Xp(this.state.tr);let oe=V;typeof oe.updated=="number"&&(oe.updated&=~la);let ie=this.state.apply(V);this.updateState(ie),C.current?.(V,ie),(V.selectionSet||V.docChanged)&&y.current?.(ie);},handleKeyDown:(V,oe)=>x.current?.(V,oe)??false,handleScrollToSelection:()=>true,handleDOMEvents:{focus:()=>false,blur:()=>false}};h.current=new EditorView(g.current,j);let _=h.current.dom;_.style.overflowAnchor="none",v.current=true,c.current=E(r),w.current?.(h.current);},[r,n,p,f,i]),I=useCallback(()=>{h.current&&!b.current&&(b.current=true,P.current?.(),h.current.destroy(),h.current=null,b.current=false);},[]);useEffect(()=>(T(),()=>I()),[]),useEffect(()=>{if(!h.current||b.current)return;let A=E(r);if(v.current&&A===c.current)return;v.current=true,c.current=A;let j=sa(r,n,f,p);h.current.updateState(j),y.current?.(j);},[r,n,f,p]),useEffect(()=>{h.current;},[i]),useImperativeHandle(o,()=>({getState(){return h.current?.state??null},getView(){return h.current??null},getDocument(){return h.current?Zp(h.current.state,R.current):null},focus(){h.current?.focus();},blur(){h.current?.hasFocus()&&h.current.dom.blur();},isFocused(){return h.current?.hasFocus()??false},dispatch(A){h.current&&!b.current&&h.current.dispatch(A);},executeCommand(A){return h.current?A(h.current.state,h.current.dispatch,h.current):false},undo(){return h.current?undo(h.current.state,h.current.dispatch):false},redo(){return h.current?redo(h.current.state,h.current.dispatch):false},canUndo(){return h.current?undo(h.current.state):false},canRedo(){return h.current?redo(h.current.state):false},setSelection(A,j){if(!h.current)return;let{state:_,dispatch:V}=h.current,oe=_.doc.resolve(A),ie=j!==void 0?_.doc.resolve(j):oe,Q=TextSelection.between(oe,ie);V(_.tr.setSelection(Q));},setNodeSelection(A){if(!h.current)return;let{state:j,dispatch:_}=h.current;try{let V=NodeSelection.create(j.doc,A);_(j.tr.setSelection(V));}catch{this.setSelection(A);}},setCellSelection(A,j){if(!h.current)return;let{state:_,dispatch:V}=h.current;try{let oe=CellSelection.create(_.doc,A,j);V(_.tr.setSelection(oe));}catch{this.setSelection(A,j);}},scrollToSelection(){}}),[]);let k=jsx("div",{ref:g,className:"paged-editor__hidden-pm",style:{...qp,width:s>0?`${s}px`:void 0}}),L=globalThis.document,B=L&&"body"in L&&L.body!=null?L.body:null;return B?createPortal(k,B):k}),ca=memo(Qp);var om="#000",nm="rgba(66, 133, 244, 0.3)",rm=2,im=530,am={position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:10,overflow:"hidden"},sm=(e,t,o,r)=>({position:"absolute",left:e.x,top:e.y,width:o,height:e.height,backgroundColor:t,opacity:r?1:0,transition:"opacity 0.05s ease-out",pointerEvents:"none"}),lm=(e,t)=>({position:"absolute",left:e.x,top:e.y,width:e.width,height:e.height,backgroundColor:t,pointerEvents:"none"}),cm=({position:e,color:t,width:o,blinkInterval:r,isFocused:n})=>{let[d,s]=useState(n),i=useRef(null);return useEffect(()=>(i.current&&(window.clearInterval(i.current),i.current=null),n&&r>0?(s(true),i.current=window.setInterval(()=>{s(u=>!u);},r)):s(false),()=>{i.current&&window.clearInterval(i.current);}),[n,r]),useEffect(()=>{if(n)return s(true),i.current&&window.clearInterval(i.current),r>0&&(i.current=window.setInterval(()=>{s(u=>!u);},r)),()=>{i.current&&window.clearInterval(i.current);}},[e.x,e.y,n,r]),jsx("div",{style:sm(e,t,o,d),"data-testid":"caret"})},dm=({rect:e,color:t,index:o})=>jsx("div",{style:lm(e,t),"data-testid":`selection-rect-${o}`,"data-page-index":e.pageIndex}),ua=({selectionRects:e,caretPosition:t,isFocused:o,readOnly:r=false,caretColor:n=om,selectionColor:d=nm,caretWidth:s=rm,blinkInterval:i=im})=>{if(r)return null;let u=e.length>0,l=t!==null&&!u;return jsxs("div",{style:am,"data-testid":"selection-overlay",children:[u&&e.map((p,f)=>jsx(dm,{rect:p,color:d,index:f},`sel-${p.pageIndex}-${p.x}-${p.y}-${f}`)),l&&t&&jsx(cm,{position:t,color:n,width:s,blinkInterval:i,isFocused:o})]})};var ir=10,xt=ir/2,Ro=2,ga="#2563eb",ma={position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:15,overflow:"visible"},pm={position:"absolute",border:`${Ro}px solid ${ga}`,pointerEvents:"none",boxSizing:"border-box"},mm={position:"absolute",width:`${ir}px`,height:`${ir}px`,backgroundColor:ga,border:"1px solid white",boxShadow:"0 1px 3px rgba(0, 0, 0, 0.3)",boxSizing:"border-box",pointerEvents:"auto",zIndex:16},fm={position:"absolute",backgroundColor:"rgba(0, 0, 0, 0.75)",color:"white",fontSize:"11px",fontFamily:"system-ui, sans-serif",padding:"2px 8px",borderRadius:"3px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:20,transform:"translateX(-50%)"},gm={nw:"nw-resize",ne:"ne-resize",se:"se-resize",sw:"sw-resize"};function hm(e,t,o,r,n,d){let s=e.includes("w")?-1:1,i=e.includes("n")?-1:1,u=r+t*s,l=n+o*i;if(d){let p=Math.max(u/r,l/n);u=r*p,l=n*p;}return {width:Math.max(20,Math.min(2e3,u)),height:Math.max(20,Math.min(2e3,l))}}function ha({imageInfo:e,zoom:t,isFocused:o,onResize:r,onResizeStart:n,onResizeEnd:d,onDragMove:s,onDragStart:i,onDragEnd:u,onContextMenu:l}){let[p,f]=useState(false),[a,S]=useState(false),[m,g]=useState(0),[h,R]=useState(0),[b,c]=useState(null),v=useRef(null),C=useRef(null),y=useRef(r),w=useRef(n),P=useRef(d),x=useRef(s),E=useRef(i),T=useRef(u);y.current=r,w.current=n,P.current=d,x.current=s,E.current=i,T.current=u;let I=useRef(e),k=useRef(t);I.current=e,k.current=t;let L=useCallback(()=>{if(!e||!C.current){c(null);return}let Q=C.current.offsetParent;if(!Q){c(null);return}let ae=Q.getBoundingClientRect(),ne=e.element.getBoundingClientRect();c({left:(ne.left-ae.left)/t,top:(ne.top-ae.top)/t,width:ne.width/t,height:ne.height/t});},[e,t]);useEffect(()=>{L();},[L]),useEffect(()=>{if(!e)return;let Q=C.current?.closest('[style*="overflow"]')??C.current?.closest(".paged-editor__container");if(!Q)return;let ae=()=>{v.current&&cancelAnimationFrame(v.current),v.current=requestAnimationFrame(L);};return Q.addEventListener("scroll",ae,{passive:true}),window.addEventListener("resize",ae,{passive:true}),()=>{Q.removeEventListener("scroll",ae),window.removeEventListener("resize",ae),v.current&&cancelAnimationFrame(v.current);}},[e,L]);let B=useCallback((Q,ae)=>{if(!e||!b)return;ae.preventDefault(),ae.stopPropagation();let ne=b.width,ge=b.height,he=ae.clientX,J=ae.clientY,D=Math.round(ne),H=Math.round(ge);f(true),g(D),R(H),w.current?.();let N=F=>{let U=k.current,q=(F.clientX-he)/U,re=(F.clientY-J)/U,Z=!F.shiftKey,te=hm(Q,q,re,ne,ge,Z);D=Math.round(te.width),H=Math.round(te.height),g(D),R(H),c(K=>{if(!K)return K;let O={...K};return Q.includes("w")&&(O.left=K.left+(K.width-te.width)),Q.includes("n")&&(O.top=K.top+(K.height-te.height)),O.width=te.width,O.height=te.height,O});},W=()=>{window.removeEventListener("mousemove",N),window.removeEventListener("mouseup",W),f(false);let F=I.current;F&&y.current?.(F.pmPos,D,H),P.current?.();};window.addEventListener("mousemove",N),window.addEventListener("mouseup",W);},[e,b]),A=useCallback(Q=>{if(!e||!b)return;Q.preventDefault(),Q.stopPropagation();let ae=4,ne=Q.clientX,ge=Q.clientY,he=false,J=null,D=N=>{let W=N.clientX-ne,F=N.clientY-ge;!he&&Math.sqrt(W*W+F*F)<ae||(he||(he=true,S(true),E.current?.(),J=document.createElement("div"),J.style.cssText="position: fixed; pointer-events: none; z-index: 10000; opacity: 0.5; border: 2px dashed #2563eb; border-radius: 4px; background: rgba(37, 99, 235, 0.1);",J.style.width=`${b.width}px`,J.style.height=`${b.height}px`,document.body.appendChild(J)),J&&(J.style.left=`${N.clientX-b.width/2}px`,J.style.top=`${N.clientY-b.height/2}px`));},H=N=>{if(window.removeEventListener("mousemove",D),window.removeEventListener("mouseup",H),J&&(J.remove(),J=null),S(false),he){let W=I.current;W&&x.current?.(W.pmPos,N.clientX,N.clientY),T.current?.();}};window.addEventListener("mousemove",D),window.addEventListener("mouseup",H);},[e,b]);if(!!!(e&&b&&o))return jsx("div",{ref:C,style:{...ma,visibility:"hidden"},className:"image-selection-overlay"});let{left:_,top:V,width:oe,height:ie}=b;return jsxs("div",{ref:C,style:ma,className:"image-selection-overlay",children:[jsx("div",{style:{...pm,left:_-Ro,top:V-Ro,width:oe+Ro*2,height:ie+Ro*2}}),jsx("div",{style:{position:"absolute",left:_,top:V,width:oe,height:ie,cursor:a?"grabbing":"grab",pointerEvents:"auto",zIndex:15},onMouseDown:A,onContextMenu:l}),jsx(ln,{handle:"nw",style:{left:_-xt,top:V-xt},onMouseDown:B}),jsx(ln,{handle:"ne",style:{left:_+oe-xt,top:V-xt},onMouseDown:B}),jsx(ln,{handle:"se",style:{left:_+oe-xt,top:V+ie-xt},onMouseDown:B}),jsx(ln,{handle:"sw",style:{left:_-xt,top:V+ie-xt},onMouseDown:B}),p&&jsxs("div",{style:{...fm,left:_+oe/2,top:V+ie+12},children:[m," \xD7 ",h]})]})}function ln({handle:e,style:t,onMouseDown:o}){return jsx("div",{style:{...mm,...t,cursor:gm[e]},onMouseDown:r=>o(e,r),"data-handle":e})}var ym={position:"absolute",inset:0,pointerEvents:"none",zIndex:11};function va({getView:e,getPagesContainer:t,zoom:o,decorationSyncToken:r,syncCoordinator:n}){let d=useRef(null),s=useRef(null),[i,u]=useState(0);return useEffect(()=>n.onRender(()=>u(l=>l+1)),[n]),useEffect(()=>(s.current!==null&&cancelAnimationFrame(s.current),s.current=requestAnimationFrame(()=>{s.current=null;let l=e(),p=t(),f=d.current;!l||!p||!f||n.isSafeToRender()&&vm(l,p,f,o);}),()=>{s.current!==null&&(cancelAnimationFrame(s.current),s.current=null);}),[o,r,i]),jsx("div",{ref:d,className:"paged-editor__decoration-overlay",style:ym,"aria-hidden":"true"})}function vm(e,t,o,r){let n=Cm(e.state);if(n.length===0){o.firstChild&&o.replaceChildren();return}let d=b$3(t,r),s=d.getContainerOffset(),i=document.createDocumentFragment();for(let{decoration:u,from:l,to:p}of n){if(l===p){let S=Sm(u,e);if(!S)continue;let m=d.getCoordinatesForPosition(l);if(!m)continue;let g=document.createElement("div");g.style.cssText=`position:absolute;left:${m.x+s.x}px;top:${m.y+s.y}px;height:${m.height}px;`,g.appendChild(S),i.appendChild(g);continue}let f=xm(u);if(!f)continue;let a=d.getRectsForRange(l,p);for(let S of a){let m=document.createElement("div");for(let[h,R]of Object.entries(f))h!=="nodeName"&&m.setAttribute(h,R);let g=`position:absolute;left:${S.x+s.x}px;top:${S.y+s.y}px;width:${S.width}px;height:${S.height}px;`;m.style.cssText=g+(f.style??""),i.appendChild(m);}}o.replaceChildren(i);}function Cm(e){let t=[];for(let o of e.plugins){let r=o.props.decorations;if(!r)continue;let n=r.call(o,e);n&&n.forEachSet(d=>{d.find().forEach(s=>{s.spec?.noOverlay||t.push({decoration:s,from:s.from,to:s.to});});});}return t}function Sm(e,t){let o=e.type;if(!o)return null;let r=o.toDOM;return typeof r=="function"?r(t,()=>e.from):r instanceof HTMLElement?r.cloneNode(true):null}function xm(e){return e.type?.attrs??null}var Ra=[];var Pa={position:"relative",width:"100%",minHeight:"100%",overflow:"visible",backgroundColor:"var(--doc-bg, #f8f9fa)"},Ta={position:"relative",display:"flex",flexDirection:"column",alignItems:"center",paddingTop:24,paddingBottom:24,overflowAnchor:"none"},wa={position:"relative",display:"flex",flexDirection:"column",alignItems:"center",overflowAnchor:"none"},Ea={position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",overflow:"visible",zIndex:8};function cn(e,t,o){let r=t.getBoundingClientRect(),n=e.getBoundingClientRect(),d=n.top+n.height/2,s=r.top+r.height/2,i=d-s,u=Math.max(0,t.scrollHeight-t.clientHeight),l=Math.max(0,Math.min(u,t.scrollTop+i));t.scrollTop=l;}function dn(e,t){if(t.aborted)return;let o=requestAnimationFrame(()=>{if(t.aborted)return;let r=requestAnimationFrame(()=>{if(t.aborted)return;let n=requestAnimationFrame(()=>{t.aborted||e();});t.addEventListener("abort",()=>cancelAnimationFrame(n),{once:true});});t.addEventListener("abort",()=>cancelAnimationFrame(r),{once:true});});t.addEventListener("abort",()=>cancelAnimationFrame(o),{once:true});}function ka(e,t){let o=null,r=findBodyPmAnchors(e);for(let n=0;n<r.length;n++){let d=r[n].dataset.pmStart;if(d==null)continue;let s=Number(d);Number.isNaN(s)||s<=t&&(o===null||s>o)&&(o=s);}return o}function un(e,t){let o=e.pages.length;return e.pages.reduce((n,d)=>n+d.size.h,0)+Math.max(0,o-1)*t+24+24}function Ma(e,t,o,r,n){let d=new Map;if(!e?.state)return d;let{doc:s,schema:i}=e.state,u=i.marks.comment,l=i.marks.insertion,p=i.marks.deletion;if(!u&&!l&&!p)return d;let f=new Set,a=24+n;return s.descendants((S,m)=>{if(S.isText)for(let g of S.marks){let h=null;if(u&&g.type===u?h=`comment-${g.attrs.commentId}`:(l&&g.type===l||p&&g.type===p)&&(h=`revision-${g.attrs.revisionId}`),!h||f.has(h))continue;f.add(h);let R=getCaretPosition(t,o,r,m);if(R){d.set(h,R.y+a);continue}for(let b=0;b<t.pages.length;b++){let c=t.pages[b],v=false;for(let C of c.fragments){let y=C.pmStart??0,w=C.pmEnd??y;if(m<y||m>w)continue;let P=C.kind==="table"?Em(o,r,C,m):0;d.set(h,C.y+P+getPageTop(t,b)+a),v=true;break}if(v)break}}}),d}function Em(e,t,o,r){let n=e.findIndex(u=>u.id===o.blockId);if(n===-1)return 0;let d=e[n],s=t[n];if(d.kind!=="table"||s.kind!=="table")return 0;let i=0;for(let u=o.fromRow;u<o.toRow;u++){let l=d.rows[u];if(!l||l.cells.some(f=>f.blocks.some(a=>{let S=a.pmStart??0,m=a.pmEnd??S;return r>=S&&r<=m})))break;i+=s.rows[u]?.height??0;}return i}function pn(e){return Math.round(e/1440*96)}function sr(e){let t=e?.columnCount??1;if(t<=1)return;let o=pn(e?.columnSpace??720);return {count:t,gap:o,equalWidth:e?.equalWidth??true,separator:e?.separator}}function km(e){let t=e.pageSize.w-e.margins.left-e.margins.right,o=e.columns;return !o||o.count<=1?t:Math.floor((t-(o.count-1)*o.gap)/o.count)}function Da(e,t,o){let{configs:r,breakIndices:n}=collectSectionConfigs(e,t,o),d=0,s=[];for(let i=0;i<e.length;i++)s.push(km(r[d]??t)),d<n.length&&i===n[d]&&d++;return s}function Fa(e,t,o,r){switch(e.kind){case "paragraph":{let n=e;if(!o||o.length===0){let s=getCachedParagraphMeasure(n,t);if(s)return s}let d=measureParagraph(n,t,{floatingZones:o,paragraphYOffset:r??0});return (!o||o.length===0)&&setCachedParagraphMeasure(n,t,d),d}case "table":return measureTableBlock(e,t,Fa);case "image":{let n=e;return {kind:"image",width:n.width??100,height:n.height??100}}case "textBox":{let n=e,d=n.margins??DEFAULT_TEXTBOX_MARGINS,s=(n.width??DEFAULT_TEXTBOX_WIDTH)-d.left-d.right,i=n.content.map(p=>measureParagraph(p,s)),u=i.reduce((p,f)=>p+f.totalHeight,0),l=n.height??u+d.top+d.bottom;return {kind:"textBox",width:n.width??DEFAULT_TEXTBOX_WIDTH,height:l,innerMeasures:i}}case "pageBreak":return {kind:"pageBreak"};case "columnBreak":return {kind:"columnBreak"};case "sectionBreak":return {kind:"sectionBreak"};default:assertExhaustiveFlowBlock(e,"react PagedEditor measureBlock");}}function mn(e,t){return measureBlocksWithFloats(e,t,Fa)}function Oa(e,t,o){t.style.overflowAnchor||t.style.setProperty("overflow-anchor","none");let r=Math.max(1,t.scrollHeight-t.clientHeight),n=t.scrollTop/r,d=ka(e,o),s=0;if(d!=null){let i=findBodyPmAnchor(e,d);if(i){let u=i.getBoundingClientRect(),l=t.getBoundingClientRect();s=u.top-l.top;}else d=null;}return {scrollRestoreRatioPre:n,domAnchorPmStart:d,domAnchorOffsetInScroller:s}}function Ba(e,t,o){let r=o.scrollRestoreRatioPre;if(e==="incremental"){let d=Math.max(1,t.scrollHeight-t.clientHeight);r=t.scrollTop/d;}let n=e==="incremental"?t.scrollTop:null;return {renderKind:e,ratio:r,scrollTopSnapshot:n,domAnchorPmStart:o.domAnchorPmStart,domAnchorOffsetInScroller:o.domAnchorOffsetInScroller}}function lr(e,t,o){let{renderKind:r,ratio:n,scrollTopSnapshot:d,domAnchorPmStart:s,domAnchorOffsetInScroller:i}=e;if(r==="incremental"&&d!=null){let l=Math.max(1,o.scrollHeight-o.clientHeight);o.scrollTop=Math.min(Math.max(0,d),l);return}if(r!=="incremental"&&s!=null){let l=findBodyPmAnchor(t,s);if(l){let p=o.getBoundingClientRect(),f=l.getBoundingClientRect().top-p.top;o.scrollTop+=i-f;return}}let u=Math.max(1,o.scrollHeight-o.clientHeight);o.scrollTop=n*u;}function Na(e,t,o,r){if(e?.renderKind!=="incremental"||e.scrollTopSnapshot==null||r&&o>32||!t?.isConnected)return;let n=Math.max(1,t.scrollHeight-t.clientHeight),d=Math.min(Math.max(0,e.scrollTopSnapshot),n);Math.abs(t.scrollTop-d)>.5&&(t.scrollTop=d);}function Ua(e){let{document:t,styles:o,theme:r,sectionProperties:n,finalSectionProperties:d,headerContent:s,footerContent:i,firstPageHeaderContent:u,firstPageFooterContent:l,pageGap:p,zoom:f,resolvedCommentIds:a,pagesContainerRef:S,viewportLayoutRef:m,hiddenPMRef:g,syncCoordinator:h,getScrollContainer:R,onTotalPagesChange:b,onAnchorPositionsChange:c,onRenderedDomContextReady:v}=e,[C,y]=useState(null),[w,P]=useState([]),[x,E]=useState([]),[T,I]=useState(0),k=useCallback(()=>I(F=>F+1),[]),L=useRef(b),B=useRef(c),A=useRef(v);L.current=b,B.current=c,A.current=v;let j=useRef(0);useEffect(()=>{let F=C?.pages.length??0;F!==j.current&&(j.current=F,L.current?.(F));},[C]);let _=useMemo(()=>getPageSize(n),[n]),V=useMemo(()=>getMargins(n),[n]),oe=useMemo(()=>sr(n),[n]),{finalPageSize:ie,finalMargins:Q,finalColumns:ae}=useMemo(()=>{let F=d??n;return {finalPageSize:getPageSize(F),finalMargins:getMargins(F),finalColumns:sr(F)}},[d,n]),ne=_.w-V.left-V.right,ge=useMemo(()=>new LayoutPainter({pageGap:p,showShadow:true,pageBackground:"#fff"}),[p]),he=useRef(null);he.current=ge;let J=useRef(null),D=useRef(0),H=useCallback(F=>{let U=performance.now(),q=h.getStateSeq();h.onLayoutStart();let re=Z=>{let te=S.current,K=te?R()??findVerticalScrollParentOrRoot(te):null,O=performance.now()-D.current;Na(J.current,K,O,Z);};re(true);try{let Z=performance.now(),te=_.h-V.top-V.bottom,K=toFlowBlocks(F.doc,{theme:r,pageContentHeight:te}),O=performance.now()-Z;O>500&&console.warn(`[PagedEditor] toFlowBlocks took ${Math.round(O)}ms (${K.length} blocks)`),P(K),Z=performance.now();let Se=Da(K,{pageSize:_,margins:V,columns:oe},{pageSize:ie,margins:Q,columns:ae}),ce=mn(K,Se);O=performance.now()-Z,O>1e3&&console.warn(`[PagedEditor] measureBlocks took ${Math.round(O)}ms (${K.length} blocks)`),E(ce);let Be=collectFootnoteRefs(K),fe=Be.length>0&&t?.package?.footnotes,ye={section:"header",pageSize:_,margins:V},Te={section:"footer",pageSize:_,margins:V},ve=F.doc.attrs?.defaultTabStopTwips,Ee={styles:o,theme:r,measureBlocks:mn,defaultTabStopTwips:ve},De=convertHeaderFooterToContent(s,ne,ye,Ee),se=convertHeaderFooterToContent(i,ne,Te,Ee),Ie=n?.titlePg===!0,ke=Ie?convertHeaderFooterToContent(u,ne,ye,Ee):void 0,It=Ie?convertHeaderFooterToContent(l,ne,Te,Ee):void 0,$e=V.header??48,Ge=V.footer??48,mt=V.top-$e,et=V.bottom-Ge,kt=de=>de?de.visualBottom??de.height:0,Ke=de=>de?Math.max((de.visualBottom??de.height)-(de.visualTop??0),de.height):0,jt=Math.max(kt(De),kt(ke)),Ye=Math.max(Ke(se),Ke(It)),tt=jt>mt,Mt=Ye>et,ot=V,ft=Q;if(tt||Mt){let de=Re=>{let be={...Re};return tt&&(be.top=Math.max(Re.top,$e+jt)),Mt&&(be.bottom=Math.max(Re.bottom,Ge+Ye)),be};ot=de(V),ft=de(Q);for(let Re of K){if(Re.kind!=="sectionBreak")continue;let be=Re;be.margins&&(be.margins=de(be.margins));}}Z=performance.now();let xe,Xt=new Map,Dt=new Map,qt=d?.sectionStart,Lt={pageSize:_,margins:ot,finalPageSize:ie,finalMargins:ft,columns:ae,bodyBreakType:qt,pageGap:p};if(fe){let de=layoutDocument(K,ce,Lt);Dt=buildFootnoteContentMap(t.package.footnotes,Be,ne,{styles:o??void 0,theme:r??null,measureBlocks:mn,defaultTabStopTwips:ve});let Re=stabilizeFootnoteLayout({blocks:K,measures:ce,layoutOpts:Lt,footnoteRefs:Be,footnoteContentMap:Dt,initialLayout:de});xe=Re.layout,Xt=Re.pageFootnoteMap;}else xe=layoutDocument(K,ce,Lt);if(O=performance.now()-Z,O>500&&console.warn(`[PagedEditor] layoutDocument took ${Math.round(O)}ms (${xe.pages.length} pages)`),y(xe),S.current&&he.current){Z=performance.now(),J.current=null,D.current=0;let de=S.current,Re=R()??findVerticalScrollParentOrRoot(de),be=Re?.isConnected?Oa(de,Re,F.selection.head):null,Ht=new Map;for(let Pe=0;Pe<K.length;Pe++){let gt=K[Pe],rt=ce[Pe];gt&&rt&&Ht.set(String(gt.id),{block:gt,measure:rt});}he.current.setBlockLookup(Ht);let Qt=fe?buildFootnoteRenderItems(Xt,Dt,t):void 0,Ft=renderPages(xe.pages,S.current,{pageGap:p,showShadow:!0,pageBackground:"#fff",blockLookup:Ht,headerContent:De,footerContent:se,firstPageHeaderContent:ke,firstPageFooterContent:It,titlePg:Ie,headerDistance:n?.headerDistance?pn(n.headerDistance):void 0,footerDistance:n?.footerDistance?pn(n.footerDistance):void 0,pageBorders:n?.pageBorders,theme:r,footnotesByPage:Qt?.size?Qt:void 0,resolvedCommentIds:a}),nt=m.current;if(nt){let Pe=un(xe,p);nt.style.minHeight=`${Pe}px`,f!==1?nt.style.marginBottom=`${Pe*(f-1)}px`:nt.style.marginBottom="";}if(Re?.isConnected&&be){let Pe=Ba(Ft,Re,be);J.current=Pe,Pe.renderKind==="incremental"&&Pe.scrollTopSnapshot!=null&&(D.current=performance.now());}if(O=performance.now()-Z,O>500&&console.warn(`[PagedEditor] renderPages took ${Math.round(O)}ms`),A.current){let Pe=b$3(S.current,f);A.current(Pe);}}else J.current=null,D.current=0;if(B.current){let de=Ma(g.current?.getView()??null,xe,K,ce,p);B.current(de);}re(!1);let Zt=performance.now()-U;Zt>2e3&&console.warn(`[PagedEditor] Layout pipeline took ${Math.round(Zt)}ms total (${K.length} blocks, ${ce.length} measures)`);}catch(Z){console.error("[PagedEditor] Layout pipeline error:",Z);}h.onLayoutComplete(q),re(false);},[ne,oe,_,V,ie,Q,ae,p,f,h,s,i,u,l,n,d,t,a,R,g,S,o,r,m]);useLayoutEffect(()=>{let F=J.current;if(!F)return;J.current=null,D.current=0;let U=S.current,q=R()??(U?findVerticalScrollParentOrRoot(U):null);if(!U||!q?.isConnected)return;lr(F,U,q);let re=requestAnimationFrame(()=>{q.isConnected&&lr(F,U,q);});return ()=>cancelAnimationFrame(re)},[C,R,S]);let N=useRef(null),W=useCallback(F=>{if(N.current){N.current.state=F;return}let U=requestAnimationFrame(()=>{let q=N.current;N.current=null,q&&H(q.state);});N.current={rafId:U,state:F};},[H]);return useEffect(()=>()=>{N.current&&(cancelAnimationFrame(N.current.rafId),N.current=null);},[]),{layout:C,blocks:w,measures:x,decorationSyncToken:T,notifyDecorationLayer:k,contentWidth:ne,runLayoutPipeline:H,scheduleLayout:W}}function Ga(e,t,o){let r=e.parentElement?.querySelector('[data-testid="selection-overlay"]');if(!r)return null;let n=r.getBoundingClientRect(),d=findBodyPmSpans(e);for(let i of d){let u=Number(i.dataset.pmStart),l=Number(i.dataset.pmEnd);if(i.classList.contains("layout-run-tab")){if(t>=u&&t<l){let p=i.getBoundingClientRect(),f=i.closest(".layout-page"),a=f?Number(f.dataset.pageNumber)-1:0,S=i.closest(".layout-line"),m=S?S.offsetHeight:16;return {x:(p.left-n.left)/o,y:(p.top-n.top)/o,height:m,pageIndex:a}}continue}if(t>=u&&t<=l&&i.firstChild?.nodeType===Node.TEXT_NODE){let p=i.firstChild,f=Math.min(t-u,p.length),a=i.ownerDocument;if(!a)continue;let S=a.createRange();S.setStart(p,f),S.setEnd(p,f);let m=S.getBoundingClientRect(),g=i.closest(".layout-page"),h=g?Number(g.dataset.pageNumber)-1:0,R=i.closest(".layout-line"),b=R?R.offsetHeight:16;return {x:(m.left-n.left)/o,y:(m.top-n.top)/o,height:b,pageIndex:h}}}let s=findBodyEmptyRuns(e);for(let i of s){let u=i.closest(".layout-paragraph");if(!u)continue;let l=Number(u.dataset.pmStart),p=Number(u.dataset.pmEnd);if(t>=l&&t<=p){let f=i.getBoundingClientRect(),a=u.closest(".layout-page"),S=a?Number(a.dataset.pageNumber)-1:0,m=i.closest(".layout-line"),g=m?m.offsetHeight:16;return {x:(f.left-n.left)/o,y:(f.top-n.top)/o,height:g,pageIndex:S}}}return null}function Ka(e,t,o,r,n){let d=[],s=findBodyPmSpans(e);for(let i of s){let u=Number(i.dataset.pmStart);if(Number(i.dataset.pmEnd)<=o||u>=r)continue;if(i.classList.contains("layout-run-tab")){let h=i.getBoundingClientRect(),R=i.closest(".layout-page"),b=R?Number(R.dataset.pageNumber)-1:0;d.push({x:(h.left-t.left)/n,y:(h.top-t.top)/n,width:h.width/n,height:h.height/n,pageIndex:b});continue}let p=null;if(i.firstChild?.nodeType===Node.TEXT_NODE?p=i.firstChild:i.firstChild?.nodeType===Node.ELEMENT_NODE&&i.firstChild.tagName==="A"&&i.firstChild.firstChild?.nodeType===Node.TEXT_NODE&&(p=i.firstChild.firstChild),!p)continue;let f=i.ownerDocument;if(!f)continue;let a=Math.max(0,o-u),S=Math.min(p.length,r-u);if(a>=S)continue;let m=f.createRange();m.setStart(p,a),m.setEnd(p,S);let g=m.getClientRects();for(let h of Array.from(g)){let R=i.closest(".layout-page"),b=R?Number(R.dataset.pageNumber)-1:0;d.push({x:(h.left-t.left)/n,y:(h.top-t.top)/n,width:h.width/n,height:h.height/n,pageIndex:b});}}return d}function Ya(e,t){let o=e.querySelectorAll(".layout-table-cell-selected");for(let i of Array.from(o))i.classList.remove("layout-table-cell-selected");let r=t.selection;if(!("$anchorCell"in r&&typeof r.forEachCell=="function")||!r.forEachCell)return;let d=[];r.forEachCell((i,u)=>{d.push([u,u+i.nodeSize]);});let s=e.querySelectorAll(".layout-table-cell");for(let i of Array.from(s)){let u=i,l=u.dataset.pmStart;if(l===void 0)continue;let p=Number(l);for(let[f,a]of d)if(p>=f&&p<a){u.classList.add("layout-table-cell-selected");break}}}function qa(e){let{layout:t,blocks:o,measures:r,zoom:n,containerRef:d,pagesContainerRef:s,hiddenPMRef:i,syncCoordinator:u,isImageInteractingRef:l,onSelectionChangeRef:p}=e,[f,a]=useState([]),[S,m]=useState(null),[g,h]=useState(null),R=useRef(null),b=useCallback((C,y)=>{let w=C.tagName==="IMG"?C:C.querySelector("img"),P=(w??C).getBoundingClientRect();return {element:w??C,pmPos:y,width:Math.round(P.width/n),height:Math.round(P.height/n)}},[n]),c=useCallback(C=>{let{from:y,to:w}=C.selection;R.current!==C&&(R.current=C,p.current?.(y,w));let P=s.current;if(P&&Ya(P,C),!(!t||o.length===0))if(y===w){let x=P?Ga(P,y,n):null;if(x)m(x);else {let E=s.current?.parentElement?.querySelector('[data-testid="selection-overlay"]'),T=s.current?.querySelector(".layout-page");if(E&&T){let I=E.getBoundingClientRect(),k=T.getBoundingClientRect(),L=getCaretPosition(t,o,r,y);m(L?{...L,x:L.x+(k.left-I.left)/n,y:L.y+(k.top-I.top)/n}:null);}else m(null);}a([]);}else {let x=s.current?.parentElement?.querySelector('[data-testid="selection-overlay"]');if(x&&s.current){let E=x.getBoundingClientRect(),T=Ka(s.current,E,y,w,n);if(T.length>0)a(T);else {let I=s.current.querySelector(".layout-page");if(I){let k=I.getBoundingClientRect(),L=(k.left-E.left)/n,B=(k.top-E.top)/n,j=selectionToRects(t,o,r,y,w).map(_=>({..._,x:_.x+L,y:_.y+B}));a(j);}else a([]);}}else a([]);m(null);}},[t,o,r,n,p,s]),v=useCallback(C=>{let{selection:y}=C;y instanceof NodeSelection&&y.node.type.name==="image"?(a([]),m(null)):u.isSafeToRender()&&c(C),requestAnimationFrame(()=>{let w=i.current?.getView();if(!w){h(null);return}let{selection:P}=w.state;if(P instanceof NodeSelection&&P.node.type.name==="image"){let x=P.from,E=s.current?findBodyPmAnchor(s.current,x):null;if(E){h(b(E,x));return}}l.current||h(null);});},[c,b,u,i,l,s]);return useEffect(()=>{let C=d.current;if(!C)return;let y=new ResizeObserver(()=>{let w=i.current?.getState();w&&c(w);});return y.observe(C),()=>y.disconnect()},[c,d,i]),useEffect(()=>{let C=i.current?.getState();t&&C&&c(C);},[t,c,i]),{selectionRects:f,caretPosition:S,selectedImageInfo:g,setSelectionRects:a,setCaretPosition:m,setSelectedImageInfo:h,buildImageSelectionInfo:b,updateSelectionOverlay:c,handleSelectionChange:v}}function Qa(e){let{pagesContainerRef:t,hiddenPMRef:o,zoom:r,isImageInteractingRef:n,getPositionFromMouse:d}=e,s=useCallback((a,S,m)=>{let g=o.current?.getView();if(g)try{let h=g.state.doc.nodeAt(a);if(!h||h.type.name!=="image")return;let R=g.state.tr.setNodeMarkup(a,void 0,{...h.attrs,width:S,height:m});g.dispatch(R),o.current?.setNodeSelection(a);}catch{}},[o]),i=useCallback(()=>{n.current=true;},[n]),u=useCallback(()=>{n.current=false;},[n]),l=useCallback((a,S,m)=>{let g=o.current?.getView();if(g)try{let h=g.state.doc.nodeAt(a);if(!h||h.type.name!=="image")return;if(h.attrs.displayMode==="float"||h.attrs.wrapType&&["square","tight","through"].includes(h.attrs.wrapType)){let b=t.current?.querySelectorAll(".layout-page");if(!b||b.length===0)return;let c=null;for(let T of b){let I=T.getBoundingClientRect();if(m>=I.top&&m<=I.bottom){c=T.querySelector(".layout-page-content");break}}if(c||(c=b[b.length-1].querySelector(".layout-page-content")),!c)return;let v=c.getBoundingClientRect(),C=(S-v.left)/r,y=(m-v.top)/r,w=pixelsToEmu(C),P=pixelsToEmu(y),x={horizontal:{posOffset:w,relativeTo:"margin"},vertical:{posOffset:P,relativeTo:"margin"}},E=g.state.tr.setNodeMarkup(a,void 0,{...h.attrs,position:x});g.dispatch(E),o.current?.setNodeSelection(a);}else {let b=d(S,m);if(b===null||b===a||b===a+1)return;let c=g.state.tr;if(b<=a)c=c.delete(a,a+h.nodeSize),c=c.insert(b,h),o.current?.setNodeSelection(b);else {c=c.delete(a,a+h.nodeSize);let v=b-h.nodeSize;c=c.insert(Math.min(v,c.doc.content.size),h),o.current?.setNodeSelection(Math.min(v,c.doc.content.size-1));}g.dispatch(c);}}catch{}},[d,r,o,t]),p=useCallback(()=>{n.current=true;},[n]),f=useCallback(()=>{n.current=false;},[n]);return {handleImageResize:s,handleImageResizeStart:i,handleImageResizeEnd:u,handleImageDragMove:l,handleImageDragStart:p,handleImageDragEnd:f}}function ts(e){let{layout:t,blocks:o,measures:r,pagesContainerRef:n,hiddenPMRef:d,getScrollContainer:s}=e,i=useRef(null);useEffect(()=>()=>{i.current?.abort(),i.current=null;},[]);let u=useCallback((f,a=false)=>{if(!Number.isInteger(f)||f<0)return;let S=n.current;if(!S)return;i.current?.abort();let m=new AbortController;i.current=m;let{signal:g}=m,h=()=>findBodyPmAnchor(S,f);if(!a){let E={block:"center",inline:"nearest",behavior:"smooth"},T=h();if(T){T.scrollIntoView(E);return}let I=t,k=o,L=r;if(!I||k.length===0||L.length!==k.length)return;let B=null,A=getCaretPosition(I,k,L,f);if(A?B=A.pageIndex:B=findPageIndexContainingPmPos(I,f),B==null)return;let _=S.querySelectorAll(".layout-page")[B];if(!_)return;_.scrollIntoView(E),dn(()=>{if(!S.isConnected)return;let V=h();V&&V.scrollIntoView(E);},g);return}let R=s()??findVerticalScrollParentOrRoot(S),b=()=>{let E=h();return E?(cn(E,R),true):false};if(b())return;let c=t,v=o,C=r;if(!c||v.length===0||C.length!==v.length)return;let y=null,w=getCaretPosition(c,v,C,f);if(w?y=w.pageIndex:y=findPageIndexContainingPmPos(c,f),y==null)return;let x=S.querySelectorAll(".layout-page")[y];x&&(cn(x,R),dn(()=>{if(!S.isConnected)return;let E=h();E?cn(E,R):b();},g));},[t,o,r,s,n]),l=useCallback(f=>{if(!Number.isInteger(f)||f<1||!t||f>t.pages.length)return;let a=t.pages[f-1];for(let m of a.fragments)if(typeof m.pmStart=="number"){u(m.pmStart,true);return}n.current?.querySelectorAll(".layout-page")[f-1]?.scrollIntoView({block:"center",inline:"nearest"});},[t,u,n]),p=useCallback(f=>{let a=d.current?.getState();if(!a)return false;let S=findStartPosForParaId(a.doc,f);if(S==null||S<0)return false;u(S,true);let m=i.current?.signal;if(!m)return true;let g=a.doc.nodeAt(S),h=g?.isTextblock===true?Math.min(S+1+g.content.size,a.doc.content.size):Math.min(S+1,a.doc.content.size);return dn(()=>{d.current&&(d.current.setSelection(h),d.current.focus());},m),true},[u,d]);return {scrollToPositionImpl:u,scrollToPageImpl:l,scrollToParaIdImpl:p}}function oo(e,t){try{let o=e.state.doc.resolve(t+1);for(let r=o.depth;r>=0;r--){let n=o.node(r);if(n.type.name==="table")return {node:n,tablePos:o.before(r)}}}catch{}return null}function os(e,t,o){let r=oo(e,t);if(!r)return null;let n=r.node.attrs.columnWidths;return !n||n[o]===void 0||n[o+1]===void 0?null:{left:n[o],right:n[o+1]}}function ns(e,t,o){let r=oo(e,t);if(!r)return null;let n=null,d=0;return r.node.forEach(s=>{if(d===o){let i=s.attrs.height;i&&(n=i);}d++;}),n}function rs(e,t,o){let r=oo(e,t);if(!r)return null;let n=r.node.attrs.columnWidths;return !n||n[o]===void 0?null:n[o]}function is(e,t){let{pmStart:o,colIdx:r,newLeft:n,newRight:d}=t,s=oo(e,o);if(!s)return;let{node:i,tablePos:u}=s,l=e.state.tr,p=[...i.attrs.columnWidths??[]];p[r]=n,p[r+1]=d,l.setNodeMarkup(u,void 0,{...i.attrs,columnWidths:p});let f=u+1;i.forEach(a=>{let S=f+1,m=0;a.forEach(g=>{let h=g.attrs.colspan||1;if(m===r||m===r+1){let R=m===r?n:d;l.setNodeMarkup(l.mapping.map(S),void 0,{...g.attrs,width:R,widthType:"dxa",colwidth:null});}S+=g.nodeSize,m+=h;}),f+=a.nodeSize;}),e.dispatch(l);}function as(e,t){let{pmStart:o,rowIdx:r,newHeight:n}=t,d=oo(e,o);if(!d)return;let{node:s,tablePos:i}=d,u=e.state.tr,l=i+1,p=0;s.forEach(f=>{p===r&&u.setNodeMarkup(u.mapping.map(l),void 0,{...f.attrs,height:n,heightRule:"atLeast"}),l+=f.nodeSize,p++;}),e.dispatch(u);}function ss(e,t){let{pmStart:o,colIdx:r,newWidth:n}=t,d=oo(e,o);if(!d)return;let{node:s,tablePos:i}=d,u=e.state.tr,l=[...s.attrs.columnWidths??[]];l[r]=n,u.setNodeMarkup(i,void 0,{...s.attrs,columnWidths:l});let p=i+1;s.forEach(f=>{let a=p+1,S=0;f.forEach(m=>{let g=m.attrs.colspan||1;S===r&&u.setNodeMarkup(u.mapping.map(a),void 0,{...m.attrs,width:n,widthType:"dxa",colwidth:null}),a+=m.nodeSize,S+=g;}),p+=f.nodeSize;}),e.dispatch(u);}var bn=15,fr=300,ef=200;function ls(e){let{hiddenPMRef:t}=e,o=useRef(false),r=useRef(0),n=useRef(0),d=useRef(0),s=useRef({left:0,right:0}),i=useRef(null),u=useRef(false),l=useRef(0),p=useRef(0),f=useRef(0),a=useRef(0),S=useRef(null),m=useRef(false),g=useRef(false),h=useRef(0),R=useRef(0),b=useRef(0),c=useRef(0),v=useRef(null),C=useCallback((x,E)=>{if(x.classList.contains("layout-table-resize-handle")){E.preventDefault(),E.stopPropagation(),o.current=true,r.current=E.clientX,i.current=x,x.classList.add("dragging");let T=parseInt(x.dataset.columnIndex??"0",10);n.current=T,d.current=parseInt(x.dataset.tablePmStart??"0",10);let I=t.current?.getView();if(I){let k=os(I,d.current,T);k&&(s.current=k);}return true}if(x.classList.contains("layout-table-row-resize-handle")||x.classList.contains("layout-table-edge-handle-bottom")){E.preventDefault(),E.stopPropagation(),u.current=true,l.current=E.clientY,S.current=x,m.current=x.dataset.isEdge==="bottom",x.classList.add("dragging");let T=parseInt(x.dataset.rowIndex??"0",10);p.current=T,f.current=parseInt(x.dataset.tablePmStart??"0",10);let I=t.current?.getView();if(I){let k=ns(I,f.current,T);if(k!=null)a.current=k;else {let B=x.closest(".layout-table")?.querySelector(`[data-row-index="${T}"]`),A=B?B.getBoundingClientRect().height:30;a.current=Math.round(A*bn);}}return true}if(x.classList.contains("layout-table-edge-handle-right")){E.preventDefault(),E.stopPropagation(),g.current=true,h.current=E.clientX,v.current=x,x.classList.add("dragging");let T=parseInt(x.dataset.columnIndex??"0",10);R.current=T,b.current=parseInt(x.dataset.tablePmStart??"0",10);let I=t.current?.getView();if(I){let k=rs(I,b.current,T);k!=null&&(c.current=k);}return true}return false},[t]),y=useCallback(x=>{if(o.current){x.preventDefault();let E=x.clientX-r.current;if(i.current){let T=parseFloat(i.current.style.left);i.current.style.left=`${T+E}px`,r.current=x.clientX;let I=Math.round(E*bn),k=s.current.left+I,L=s.current.right-I;k>=fr&&L>=fr&&(s.current={left:k,right:L});}return true}if(u.current){x.preventDefault();let E=x.clientY-l.current;if(S.current){let T=parseFloat(S.current.style.top);S.current.style.top=`${T+E}px`,l.current=x.clientY;let I=Math.round(E*bn),k=a.current+I;k>=ef&&(a.current=k);}return true}if(g.current){x.preventDefault();let E=x.clientX-h.current;if(v.current){let T=parseFloat(v.current.style.left);v.current.style.left=`${T+E}px`,h.current=x.clientX;let I=Math.round(E*bn),k=c.current+I;k>=fr&&(c.current=k);}return true}return false},[]),w=useCallback(()=>{if(o.current){o.current=false,i.current&&(i.current.classList.remove("dragging"),i.current=null);let x=t.current?.getView();if(x){let{left:E,right:T}=s.current;is(x,{pmStart:d.current,colIdx:n.current,newLeft:E,newRight:T});}return true}if(u.current){u.current=false,S.current&&(S.current.classList.remove("dragging"),S.current=null);let x=t.current?.getView();return x&&as(x,{pmStart:f.current,rowIdx:p.current,newHeight:a.current}),true}if(g.current){g.current=false,v.current&&(v.current.classList.remove("dragging"),v.current=null);let x=t.current?.getView();return x&&ss(x,{pmStart:b.current,colIdx:R.current,newWidth:c.current}),true}return false},[t]),P=useCallback(()=>o.current||u.current||g.current,[]);return {tryStartFromMouseDown:C,handleMouseMoveUpdate:y,tryCommit:w,isAnyResizeActive:P}}var gf=5;function ps(e){let{pagesContainerRef:t,hiddenPMRef:o,layout:r,blocks:n,measures:d,zoom:s,readOnly:i,hfEditMode:u,onBodyClick:l,onContextMenu:p,onHyperlinkClick:f,onHeaderFooterDoubleClick:a,setSelectedImageInfo:S,setSelectionRects:m,setCaretPosition:g,buildImageSelectionInfo:h,setIsFocused:R,scrollToPositionImpl:b}=e,c=useRef(false),v=useRef(null),C=ls({hiddenPMRef:o}),y=useRef(false),w=useRef(null),P=useRef(null),x=useRef(null),[E,T]=useState(null),I=useRef(null),k=useCallback(()=>{I.current&&(clearTimeout(I.current),I.current=null);},[]);useEffect(()=>()=>{I.current&&clearTimeout(I.current);},[]);let L=useRef(()=>{}),B=useCallback((D,H)=>{L.current(D,H);},[]),{updateMousePosition:A,stopAutoScroll:j}=b$4({pagesContainerRef:t,onScrollExtendSelection:B}),_=useCallback((D,H)=>{if(!t.current||!r)return null;let N=clickToPositionDom(t.current,D,H,s);if(N!==null)return N;let W=t.current.querySelectorAll(".layout-page"),F=-1,U=null;for(let O=0;O<W.length;O++){let ce=W[O].getBoundingClientRect();if(D>=ce.left&&D<=ce.right&&H>=ce.top&&H<=ce.bottom){F=O,U=ce;break}}if(F<0||!U)return null;let q=(D-U.left)/s,re=(H-U.top)/s,Z=r.pages[F];if(!Z)return null;let te={pageIndex:F,page:Z,pageY:re},K=hitTestFragment(te,n,d,{x:q,y:re});if(!K)return null;if(K.fragment.kind==="table"){let O=hitTestTableCell(te,n,d,{x:q,y:re});return clickToPosition(K,O)}return clickToPosition(K)},[r,n,d,s,t]),V=useCallback(D=>{let H=o.current?.getView();if(!H)return null;try{let N=H.state.doc.resolve(D);for(let W=N.depth;W>0;W--){let F=N.node(W);if(F.type.name==="tableCell"||F.type.name==="tableHeader")return N.before(W)}}catch{}return null},[o]),oe=useCallback(D=>{if(!o.current)return;if(D.button===2){D.preventDefault();return}if(D.button!==0||(T(null),k(),D.target.closest("a[href]")&&D.preventDefault(),i))return;if(u&&l){let U=D.target;if(!(U.closest(".layout-page-header")||U.closest(".layout-page-footer")||U.closest(".hf-inline-editor"))){D.preventDefault(),D.stopPropagation(),l();return}}if(!u){let U=D.target;if(U.closest(".layout-page-header")||U.closest(".layout-page-footer")){D.preventDefault(),o.current.setSelection(0),o.current.focus(),R(true);return}}let N=D.target;if(C.tryStartFromMouseDown(N,D))return;let W=findImageElement(N);if(W){D.preventDefault(),D.stopPropagation();let U=W.dataset.pmStart;if(U!==void 0){let q=parseInt(U,10);o.current.setNodeSelection(q),S(h(W,q)),m([]),g(null);}o.current.focus(),R(true);return}S(null),D.preventDefault();let F=_(D.clientX,D.clientY);if(F!==null){let U=V(F);w.current=U,y.current=false,P.current=null,x.current=null,c.current=true,v.current=F,o.current.setSelection(F);}else {w.current=null,y.current=false;let U=o.current.getView();if(U){let q=Math.max(0,U.state.doc.content.size-1);o.current.setSelection(q),v.current=q,c.current=true;}}o.current.focus(),R(true);},[o,i,u,l,_,V,k,S,m,g,h,R]);L.current=(D,H)=>{if(!c.current||v.current===null||!o.current)return;let N=_(D,H);N!==null&&o.current.setSelection(v.current,N);};let ie=useCallback(D=>{if(C.handleMouseMoveUpdate(D)||!c.current||v.current===null||!o.current||!t.current)return;A(D.clientX,D.clientY);let H=_(D.clientX,D.clientY);if(H===null)return;if(w.current!==null){if(y.current){let F=V(H);if(F!==null){o.current.setCellSelection(w.current,F);return}}let W=V(H);if(W!==null&&W!==w.current){y.current=true,o.current.setCellSelection(w.current,W),x.current=null;return}if(P.current!==null&&H===P.current){if(x.current===null)x.current=D.clientX;else if(Math.abs(D.clientX-x.current)>=gf){y.current=true,o.current.setCellSelection(w.current,w.current),x.current=null;return}}else x.current=null,P.current=H;}let N=v.current;o.current.setSelection(N,H);},[_,V,A,o,t]),Q=useCallback(()=>{C.tryCommit()||(c.current=false,y.current=false,P.current=null,x.current=null,j());},[j,C]);useEffect(()=>(window.addEventListener("mousemove",ie),window.addEventListener("mouseup",Q),()=>{window.removeEventListener("mousemove",ie),window.removeEventListener("mouseup",Q);}),[ie,Q]);let ae=useCallback(D=>{if(i||c.current||y.current||C.isAnyResizeActive())return;let H=t.current;if(!H)return;let N=detectTableInsertHover({mouseX:D.clientX,mouseY:D.clientY,pagesContainer:H,target:D.target,hfEditMode:u??null});if(!N){I.current||(I.current=setTimeout(()=>{T(null),I.current=null;},TABLE_INSERT_HIDE_DELAY_MS));return}let W=H.parentElement;if(!W)return;let F=W.getBoundingClientRect();T({type:N.type,x:N.clientX-F.left,y:N.clientY-F.top,cellPmPos:N.cellPmPos}),k();},[i,k,u,t]),ne=useCallback(D=>{if(D.preventDefault(),D.stopPropagation(),!E||!o.current)return;let H=o.current.getView();if(!H)return;let{type:N,cellPmPos:W}=E,F=H.state.tr.setSelection(TextSelection.create(H.state.doc,W+1));H.dispatch(F),N==="row"?addRowBelow(H.state,H.dispatch):addColumnRight(H.state,H.dispatch),T(null),o.current.focus();},[E,o]),ge=useCallback(D=>{let H=D.target.closest("a[href]");if(H){D.preventDefault();let N=H.getAttribute("href")||"";if(N.startsWith("#")){let W=N.substring(1);if(W&&o.current){let F=o.current.getView();if(F){let U=null;F.state.doc.descendants((q,re)=>{if(U!==null)return false;if(q.type.name==="paragraph"&&q.attrs.bookmarks?.some(te=>te.name===W))return U=re,false}),U!==null&&(b(U),o.current.setSelection(U+1));}}}else if(f){let W=o.current?.getView();if(!(W&&W.state.selection.from!==W.state.selection.to)){let U=H.textContent||"",q=H.getAttribute("title")||void 0,re=H.closest(".ep-root.paged-editor");if(re){let Z=re.getBoundingClientRect(),te=H.getBoundingClientRect(),K={top:te.bottom-Z.top+4,left:te.left-Z.left};f({href:N,displayText:U,tooltip:q,position:K});}}}return}if(D.detail===2&&a){let N=D.target,W=N.closest(".layout-page-header"),F=N.closest(".layout-page-footer");if(W||F){let U=N.closest("[data-page-number]"),q=U?Number(U.dataset.pageNumber):1;if(W){D.preventDefault(),D.stopPropagation(),a("header",q);return}if(F){D.preventDefault(),D.stopPropagation(),a("footer",q);return}}}if(D.detail===2&&o.current){let N=_(D.clientX,D.clientY);if(N!==null){let W=V(N);if(W!==null){D.preventDefault(),D.stopPropagation(),o.current.setCellSelection(W,W);return}let F=o.current.getView();if(F){let{doc:U}=F.state,q=U.resolve(N),re=q.parent;if(re.isTextblock){let Z=re.textContent,te=q.parentOffset,[K,O]=findWordBoundaries(Z,te),Se=q.start()+K,ce=q.start()+O;Se<ce&&o.current.setSelection(Se,ce);}}}}if(D.detail===3&&o.current){let N=_(D.clientX,D.clientY);if(N!==null){let W=o.current.getView();if(W){let{doc:F}=W.state,U=F.resolve(N),q=U.start(U.depth),re=U.end(U.depth);o.current.setSelection(q,re);}}}},[_,a,f,o,V,b]),he=useCallback(D=>{if(!p)return;D.preventDefault();let H=o.current?.getView();if(!H)return;let N=K=>{let O=H.state.doc.nodeAt(K);if(!O||O.type.name!=="image")return null;let Se=O.attrs.wrapType??"inline",ce=O.attrs.cssFloat;return {pos:K,wrapType:Se,cssFloat:ce}},W=null,F=hitTestImage(D.target);if(F&&(W=N(F.pos),W&&(W.inlinePositionEmu=captureInlinePositionEmu(F.imageEl,s))),!W){let K=H.state.selection;if(K instanceof NodeSelection&&K.node.type.name==="image"&&(W=N(K.from),W)){let O=t.current?.querySelector(`.layout-run-image[data-pm-start="${K.from}"]`);O&&(W.inlinePositionEmu=captureInlinePositionEmu(O,s));}}let{from:U,to:q}=H.state.selection,re=_(D.clientX,D.clientY);re!==null&&(U===q||re<U||re>q)&&(o.current?.setSelection(re),o.current?.focus(),R(true));let Z=o.current?.getState(),te=Z?Z.selection.from!==Z.selection.to:false;p({x:D.clientX,y:D.clientY,hasSelection:te,image:W});},[p,_,s,o,t,R]),J=useCallback(()=>T(null),[]);return {handlePagesMouseDown:oe,handlePagesMouseMove:ae,handlePagesClick:ge,handlePagesContextMenu:he,handleTableInsertClick:ne,tableInsertButton:E,clearTableInsertTimer:k,hideTableInsertButton:J,getPositionFromMouse:_}}function ms(e){let{hiddenPMRef:t,layout:o,runLayoutPipeline:r,scrollToPositionImpl:n,scrollToParaIdImpl:d,scrollToPageImpl:s,setIsFocused:i}=e;return {getDocument:()=>t.current?.getDocument()??null,getState:()=>t.current?.getState()??null,getView:()=>t.current?.getView()??null,focus:()=>{t.current?.focus(),i(true);},blur:()=>{t.current?.blur(),i(false);},isFocused:()=>t.current?.isFocused()??false,dispatch:u=>t.current?.dispatch(u),undo:()=>t.current?.undo()??false,redo:()=>t.current?.redo()??false,setSelection:(u,l)=>t.current?.setSelection(u,l),getLayout:()=>o,relayout:()=>{let u=t.current?.getState();u&&r(u);},scrollToPosition:n,scrollToParaId:d,scrollToPage:s}}function fs(e){let{ref:t,hiddenPMRef:o,layout:r,runLayoutPipeline:n,scrollToPositionImpl:d,scrollToParaIdImpl:s,scrollToPageImpl:i,setIsFocused:u,onReadyRef:l}=e;useImperativeHandle(t,()=>ms({hiddenPMRef:o,layout:r,runLayoutPipeline:n,scrollToPositionImpl:d,scrollToParaIdImpl:s,scrollToPageImpl:i,setIsFocused:u}),[r,n,d,s,i]),useEffect(()=>{l.current&&o.current&&l.current(ms({hiddenPMRef:o,layout:r,runLayoutPipeline:n,scrollToPositionImpl:d,scrollToParaIdImpl:s,scrollToPageImpl:i,setIsFocused:u}));},[r,n,s,i]);}function hs(e){let{hiddenPMRef:t,runLayoutPipeline:o,updateSelectionOverlay:r,headerContent:n,footerContent:d,firstPageHeaderContent:s,firstPageFooterContent:i}=e;useEffect(()=>{let l=()=>{let p=t.current?.getView();p&&(resetCanvasContext(),clearAllCaches(),o(p.state),r(p.state));};return window.document.fonts.addEventListener("loadingdone",l),()=>{window.document.fonts.removeEventListener("loadingdone",l);}},[]);let u=useRef(0);useEffect(()=>{if(u.current===0){u.current=1;return}let l=t.current?.getView();l&&o(l.state);},[n,d,s,i,o,t]);}function bs({type:e,x:t,y:o,onMouseDown:r,onMouseEnter:n,onMouseLeave:d}){let s=e==="row"?"Insert row below":"Insert column to the right";return jsx("button",{type:"button",onMouseDown:r,onMouseEnter:n,onMouseLeave:d,style:{position:"absolute",left:t,top:o,width:20,height:20,borderRadius:"4px",border:"1px solid #dadce0",backgroundColor:"#f8f9fa",color:"#5f6368",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:200,padding:0,boxShadow:"none"},title:s,"aria-label":s,children:jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:jsx("path",{d:"M6 1v10M1 6h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})}var Ss={position:"absolute",zIndex:1e4,background:"white",borderRadius:"8px",boxShadow:"0 1px 3px rgba(0,0,0,0.12), 0 4px 12px rgba(0,0,0,0.08)",border:"1px solid #dadce0",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontSize:"14px"},xf={...Ss,padding:"8px 12px",display:"flex",alignItems:"center",gap:"8px",maxWidth:"400px"},Rf={...Ss,padding:"12px",width:"320px"},br={width:"20px",height:"20px",flexShrink:0,color:"#5f6368",display:"flex",alignItems:"center",justifyContent:"center"},Pf={color:"#1a73e8",textDecoration:"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"220px",fontSize:"14px",lineHeight:"20px",cursor:"pointer"},Tf={width:"28px",height:"28px",display:"flex",alignItems:"center",justifyContent:"center",border:"none",background:"none",borderRadius:"4px",cursor:"pointer",color:"#5f6368",padding:0,flexShrink:0},wf={width:"1px",height:"20px",background:"#dadce0",flexShrink:0},vs={display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"},Cs={flex:1,padding:"6px 8px",border:"1px solid #dadce0",borderRadius:"4px",fontSize:"14px",outline:"none",lineHeight:"20px"},Ef={color:"#1a73e8",fontWeight:600,fontSize:"14px",border:"none",background:"none",cursor:"pointer",padding:"6px 12px",borderRadius:"4px",flexShrink:0},no={width:18,height:18,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};function If(){return jsxs("svg",{...no,children:[jsx("circle",{cx:"12",cy:"12",r:"10"}),jsx("path",{d:"M2 12h20"}),jsx("path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"})]})}function kf(){return jsxs("svg",{...no,children:[jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})}function Mf(){return jsx("svg",{...no,children:jsx("path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})})}function Df(){return jsxs("svg",{...no,children:[jsx("path",{d:"M18.84 12.25l1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71"}),jsx("path",{d:"M5.17 11.75l-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71"}),jsx("line",{x1:"8",y1:"2",x2:"8",y2:"5"}),jsx("line",{x1:"2",y1:"8",x2:"5",y2:"8"}),jsx("line",{x1:"16",y1:"19",x2:"16",y2:"22"}),jsx("line",{x1:"19",y1:"16",x2:"22",y2:"16"})]})}function Lf(){return jsxs("svg",{...no,children:[jsx("line",{x1:"4",y1:"9",x2:"20",y2:"9"}),jsx("line",{x1:"4",y1:"15",x2:"20",y2:"15"}),jsx("line",{x1:"10",y1:"3",x2:"8",y2:"21"}),jsx("line",{x1:"16",y1:"3",x2:"14",y2:"21"})]})}function Hf(){return jsxs("svg",{...no,children:[jsx("path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}),jsx("path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"})]})}function yr({title:e,onClick:t,children:o}){return jsx("button",{type:"button",className:"ep-hyperlink-popup__icon-btn",style:Tf,title:e,onClick:t,children:o})}function xs({data:e,onNavigate:t,onCopy:o,onEdit:r,onRemove:n,onClose:d,readOnly:s}){let{t:i}=b(),[u,l]=useState("view"),[p,f]=useState(""),[a,S]=useState(""),m=useRef(null),g=useRef(null);useEffect(()=>{e&&(l("view"),f(e.displayText),S(e.href));},[e]),useEffect(()=>{u==="edit"&&requestAnimationFrame(()=>{g.current?.focus(),g.current?.select();});},[u]),useEffect(()=>{if(!e)return;let y=false,w=x=>{m.current&&!m.current.contains(x.target)&&d();},P=setTimeout(()=>{y||document.addEventListener("mousedown",w);},0);return ()=>{y=true,clearTimeout(P),document.removeEventListener("mousedown",w);}},[e,d]),useEffect(()=>{if(!e)return;let y=w=>{w.key==="Escape"&&(u==="edit"?l("view"):d());};return document.addEventListener("keydown",y),()=>document.removeEventListener("keydown",y)},[e,u,d]);let h=useCallback(()=>{e&&(o(e.href),toast("Link copied to clipboard"));},[e,o]),R=useCallback(()=>{e&&(f(e.displayText),S(e.href),l("edit"));},[e]),b$1=useCallback(()=>{let y=a.trim();y&&r(p.trim()||y,y);},[p,a,r]),c=useCallback(y=>{y.key==="Enter"&&(y.preventDefault(),b$1());},[b$1]);if(!e)return null;let v=e.position.top,C=e.position.left;return u==="edit"?jsxs("div",{ref:m,className:"ep-hyperlink-popup ep-hyperlink-popup--edit",style:{...Rf,top:v,left:C},onMouseDown:y=>y.stopPropagation(),children:[jsxs("div",{style:vs,children:[jsx("span",{style:br,children:jsx(Lf,{})}),jsx("input",{ref:g,type:"text",style:Cs,value:p,onChange:y=>f(y.target.value),onKeyDown:c,placeholder:i("hyperlinkPopup.displayTextPlaceholder"),onFocus:y=>y.target.style.borderColor="#1a73e8",onBlur:y=>y.target.style.borderColor="#dadce0"})]}),jsxs("div",{style:{...vs,marginBottom:0},children:[jsx("span",{style:br,children:jsx(Hf,{})}),jsx("input",{type:"text",style:Cs,value:a,onChange:y=>S(y.target.value),onKeyDown:c,placeholder:i("hyperlinkPopup.urlPlaceholder"),onFocus:y=>y.target.style.borderColor="#1a73e8",onBlur:y=>y.target.style.borderColor="#dadce0"}),jsx("button",{type:"button",style:{...Ef,opacity:a.trim()?1:.5,cursor:a.trim()?"pointer":"default"},onClick:b$1,disabled:!a.trim(),children:i("common.apply")})]})]}):jsxs("div",{ref:m,className:"ep-hyperlink-popup",style:{...xf,top:v,left:C},onMouseDown:y=>y.stopPropagation(),children:[jsx("span",{style:br,children:jsx(If,{})}),jsx("a",{href:e.href,style:Pf,title:e.href,target:"_blank",rel:"noopener noreferrer",onClick:y=>{y.preventDefault(),t(e.href);},children:e.href}),jsx("span",{style:wf}),jsx(yr,{title:i("hyperlinkPopup.copyLink"),onClick:h,children:jsx(kf,{})}),!s&&jsxs(Fragment,{children:[jsx(yr,{title:i("hyperlinkPopup.editLink"),onClick:R,children:jsx(Mf,{})}),jsx(yr,{title:i("hyperlinkPopup.removeLink"),onClick:n,children:jsx(Df,{})})]})]})}var _f=forwardRef(function(t,o){let{document:r,styles:n,theme:d,sectionProperties:s,finalSectionProperties:i,headerContent:u,footerContent:l,firstPageHeaderContent:p,firstPageFooterContent:f,readOnly:a$1=false,pageGap:S=24,zoom:m=1,onDocumentChange:g,onSelectionChange:h,externalPlugins:R=Ra,extensionManager:b,onReady:c,onRenderedDomContextReady:v,pluginOverlays:C,onHeaderFooterDoubleClick:y,hfEditMode:w,onBodyClick:P,className:x,style:E,commentsSidebarOpen:T=false,sidebarOverlay:I,scrollContainerRef:k,onHyperlinkClick:L,onContextMenu:B,onAnchorPositionsChange:A,onTotalPagesChange:j,resolvedCommentIds:_,hyperlinkPopupData:V,onHyperlinkPopupNavigate:oe,onHyperlinkPopupCopy:ie,onHyperlinkPopupEdit:Q,onHyperlinkPopupRemove:ae,onHyperlinkPopupClose:ne}=t,ge=useCallback(()=>k&&typeof k=="object"?k.current:he.current,[k]),he=useRef(null),J=useRef(null),D=useRef(null),H=useRef(null),{handlePMKeyDown:N}=a({pagesContainerRef:J}),W=useRef(h),F=useRef(g),U=useRef(c),q=useRef(v);W.current=h,F.current=g,U.current=c,q.current=v;let[re,Z]=useState(false),te=useRef(false),K=useMemo(()=>new LayoutSelectionGate,[]),{layout:O,blocks:Se,measures:ce,decorationSyncToken:Be,notifyDecorationLayer:fe,contentWidth:ye,runLayoutPipeline:Te,scheduleLayout:ve}=Ua({document:r,styles:n,theme:d,sectionProperties:s,finalSectionProperties:i,headerContent:u,footerContent:l,firstPageHeaderContent:p,firstPageFooterContent:f,pageGap:S,zoom:m,resolvedCommentIds:_,pagesContainerRef:J,viewportLayoutRef:D,hiddenPMRef:H,syncCoordinator:K,getScrollContainer:ge,onTotalPagesChange:j,onAnchorPositionsChange:A,onRenderedDomContextReady:v}),{selectionRects:Ee,caretPosition:De,selectedImageInfo:se,setSelectionRects:Ie,setCaretPosition:ke,setSelectedImageInfo:It,buildImageSelectionInfo:$e,updateSelectionOverlay:Ge,handleSelectionChange:mt}=qa({layout:O,blocks:Se,measures:ce,zoom:m,containerRef:he,pagesContainerRef:J,hiddenPMRef:H,syncCoordinator:K,isImageInteractingRef:te,onSelectionChangeRef:W}),et=useCallback(($,pe)=>{if(fe(),$.docChanged){K.incrementStateSeq(),ve(pe);let At=H.current?.getDocument();At&&F.current?.(At);}K.requestRender(),$.docChanged||Ge(pe);},[ve,Ge,K,fe]),{scrollToPositionImpl:kt,scrollToPageImpl:Ke,scrollToParaIdImpl:jt}=ts({layout:O,blocks:Se,measures:ce,pagesContainerRef:J,hiddenPMRef:H,getScrollContainer:ge}),{handlePagesMouseDown:Ye,handlePagesMouseMove:tt,handlePagesClick:Mt,handlePagesContextMenu:ot,handleTableInsertClick:ft,tableInsertButton:xe,clearTableInsertTimer:Xt,hideTableInsertButton:Dt,getPositionFromMouse:qt}=ps({pagesContainerRef:J,hiddenPMRef:H,layout:O,blocks:Se,measures:ce,zoom:m,readOnly:a$1,hfEditMode:w,onBodyClick:P,onContextMenu:B,onHyperlinkClick:L,onHeaderFooterDoubleClick:y,setSelectedImageInfo:It,setSelectionRects:Ie,setCaretPosition:ke,buildImageSelectionInfo:$e,setIsFocused:Z,scrollToPositionImpl:kt}),Lt=useCallback($=>{if(a$1)return;let pe=$.target;pe.closest(".docx-comments-sidebar")||pe.closest(".docx-unified-sidebar")||(H.current?.focus(),Z(true));},[a$1]),Zt=useCallback($=>{let pe=$.relatedTarget;pe&&he.current?.contains(pe)||pe?.closest('[role="toolbar"], [data-radix-popper-content-wrapper], [data-radix-select-content], .docx-table-options-dropdown')||Z(false);},[]),{handleImageResize:de,handleImageResizeStart:Re,handleImageResizeEnd:be,handleImageDragMove:Ht,handleImageDragStart:Qt,handleImageDragEnd:Ft}=Qa({pagesContainerRef:J,hiddenPMRef:H,zoom:m,isImageInteractingRef:te,getPositionFromMouse:qt}),nt=useCallback($=>{if(!a$1){if(H.current?.isFocused()||(H.current?.focus(),Z(true)),$.key===" "&&!$.ctrlKey&&!$.metaKey&&!$.nativeEvent.isComposing){$.preventDefault();let pe=H.current?.getView();if(pe){let{from:At,to:Fn}=pe.state.selection;pe.someProp("handleTextInput",co=>co(pe,At,Fn," "))||pe.dispatch(pe.state.tr.insertText(" "));}return}if(["PageUp","PageDown"].includes($.key)&&!$.metaKey&&$.ctrlKey,$.key==="Home"&&($.metaKey||$.ctrlKey)){let pe=ge();pe&&(pe.scrollTop=0);}if($.key==="End"&&($.metaKey||$.ctrlKey)){let pe=ge();pe&&(pe.scrollTop=pe.scrollHeight);}}},[a$1,ge]),Pe=useCallback($=>{a$1||$.target.closest(".docx-comments-sidebar")||$.target.closest(".docx-unified-sidebar")||H.current?.isFocused()||(H.current?.focus(),Z(true));},[a$1]),gt=useCallback($=>{Te($.state),Ge($.state),a$1||requestAnimationFrame(()=>{$.focus(),Z(true);});},[Te,Ge,a$1]);hs({hiddenPMRef:H,runLayoutPipeline:Te,updateSelectionOverlay:Ge,headerContent:u,footerContent:l,firstPageHeaderContent:p,firstPageFooterContent:f}),fs({ref:o,hiddenPMRef:H,layout:O,runLayoutPipeline:Te,scrollToPositionImpl:kt,scrollToParaIdImpl:jt,scrollToPageImpl:Ke,setIsFocused:Z,onReadyRef:U});let rt=useMemo(()=>O?un(O,S):DEFAULT_PAGE_HEIGHT_PX+24+24,[O,S]);return jsxs("div",{ref:he,className:`ep-root paged-editor ${x??""}`,style:{...Pa,...E},tabIndex:0,onFocus:Lt,onBlur:Zt,onKeyDown:nt,onMouseDown:Pe,children:[jsx(ca,{ref:H,document:r,styles:n,widthPx:ye,readOnly:a$1,onTransaction:et,onSelectionChange:mt,externalPlugins:R,extensionManager:b,onEditorViewReady:gt,onKeyDown:N}),jsxs("div",{ref:D,style:{...Ta,minHeight:rt,marginBottom:m!==1?rt*(m-1):void 0,transform:(()=>{let $=[];return T&&$.push(`translateX(-${SIDEBAR_DOCUMENT_SHIFT}px)`),m!==1&&$.push(`scale(${m})`),$.length>0?$.join(" "):void 0})(),transformOrigin:"top center",transition:"transform 0.2s ease"},children:[jsx("div",{ref:J,className:`paged-editor__pages${a$1?" paged-editor--readonly":""}${w?` paged-editor--hf-editing paged-editor--editing-${w}`:""}`,style:wa,onMouseDown:Ye,onMouseMove:tt,onClick:Mt,onContextMenu:ot,"aria-hidden":"true"}),jsx(ua,{selectionRects:Ee,caretPosition:De,isFocused:re,pageGap:S,readOnly:a$1}),jsx(ha,{imageInfo:se,zoom:m,isFocused:re,onResize:de,onResizeStart:Re,onResizeEnd:be,onDragMove:Ht,onDragStart:Qt,onDragEnd:Ft,onContextMenu:ot}),xe&&jsx(bs,{type:xe.type,x:xe.x,y:xe.y,onMouseDown:ft,onMouseEnter:Xt,onMouseLeave:Dt}),C&&jsx("div",{className:"paged-editor__plugin-overlays",style:Ea,children:C}),jsx(va,{getView:()=>H.current?.getView()??null,getPagesContainer:()=>J.current,zoom:m,decorationSyncToken:Be,syncCoordinator:K})]}),I&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,height:rt*m,pointerEvents:"none",overflow:"visible"},children:jsx("div",{style:{pointerEvents:"auto"},children:I})}),V&&oe&&ie&&Q&&ae&&ne&&jsx(xs,{data:V,onNavigate:oe,onCopy:ie,onEdit:Q,onRemove:ae,onClose:ne,readOnly:a$1})]})}),ws=memo(_f);var ks={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"2px 0",fontSize:11,color:"#4285f4",userSelect:"none"},Ms={fontWeight:500,letterSpacing:.3},eg={background:"none",border:"none",color:"#4285f4",cursor:"pointer",fontSize:11,padding:"2px 6px",borderRadius:3},tg={position:"absolute",right:0,top:"100%",background:"white",border:"1px solid #dadce0",borderRadius:4,boxShadow:"0 2px 6px rgba(0,0,0,0.15)",zIndex:h.dropdown,minWidth:160,padding:"4px 0"},Sn={display:"block",width:"100%",padding:"6px 12px",border:"none",background:"none",textAlign:"left",cursor:"pointer",fontSize:12,color:"#3c4043"},Hs=forwardRef(function({headerFooter:t,position:o,styles:r,targetElement:n,parentElement:d,onSave:s,onClose:i,onSelectionChange:u,onRemove:l},p){let f=useRef(null),a=useRef(null),[S,m]=useState(false),g=useRef(u);g.current=u;let h$1=useMemo(()=>{if(!r)return 11;let I=createStyleResolver(r).resolveParagraphStyle(void 0);return I.runFormatting?.fontSize?I.runFormatting.fontSize/2:11},[r]),[R,b$1]=useState(false),c=useRef(null),[v,C]=useState(null);useLayoutEffect(()=>{let T=()=>{let k=d.getBoundingClientRect(),L=n.getBoundingClientRect();C({top:L.top-k.top+d.scrollTop,left:L.left-k.left+d.scrollLeft,width:L.width});};T();let I=d.closest('[style*="overflow"]')||d;return I.addEventListener("scroll",T),window.addEventListener("resize",T),()=>{I.removeEventListener("scroll",T),window.removeEventListener("resize",T);}},[n,d]),useEffect(()=>{if(!f.current||a.current)return;let T=headerFooterToProseDoc(t.content,{styles:r||void 0}),I=new ExtensionManager(createStarterKit());I.buildSchema(),I.initializeRuntime();let k=I.getPlugins(),L=EditorState.create({doc:T,schema:schema,plugins:k}),B=new EditorView(f.current,{state:L,dispatchTransaction(A){let j=B.state.apply(A);if(B.updateState(j),A.docChanged&&m(true),A.selectionSet||A.docChanged){let _=extractSelectionState(j);g.current?.(_);}}});return a.current=B,requestAnimationFrame(()=>{B.focus();let A=extractSelectionState(B.state);g.current?.(A);}),()=>{B.destroy(),a.current=null;}},[v]);let y=useCallback(()=>{if(!a.current)return;let T=proseDocToBlocks(a.current.state.doc);s(T);},[s]),w=useCallback(()=>{S?y():i();},[S,y,i]);useEffect(()=>{function T(I){I.key==="Escape"&&(I.preventDefault(),I.stopPropagation(),w());}return document.addEventListener("keydown",T,true),()=>document.removeEventListener("keydown",T,true)},[w]),useEffect(()=>{if(!R)return;function T(I){c.current&&!c.current.contains(I.target)&&b$1(false);}return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[R]),useImperativeHandle(p,()=>({getView:()=>a.current,focus:()=>a.current?.focus(),undo:()=>{let T=a.current;return T?undo(T.state,T.dispatch):false},redo:()=>{let T=a.current;return T?redo(T.state,T.dispatch):false}}));let{t:P}=b(),x=P(o==="header"?"headerFooter.header":"headerFooter.footer");if(!v)return null;let E={position:"absolute",top:v.top,left:v.left,width:v.width,zIndex:h.hfInlineEditor};return jsxs("div",{className:"hf-inline-editor",style:E,onMouseDown:T=>{T.stopPropagation();},children:[o==="footer"&&jsxs("div",{className:"hf-separator-bar",style:ks,children:[jsx("span",{style:Ms,children:x}),jsx(Ds,{label:x,showOptions:R,setShowOptions:b$1,optionsRef:c,onRemove:l,onClose:w,viewRef:a})]}),jsx("div",{ref:f,className:"hf-editor-pm prosemirror-editor",style:{minHeight:40,outline:"none",fontSize:`${h$1}pt`}}),o==="header"&&jsxs("div",{className:"hf-separator-bar",style:ks,children:[jsx("span",{style:Ms,children:x}),jsx(Ds,{label:x,showOptions:R,setShowOptions:b$1,optionsRef:c,onRemove:l,onClose:w,viewRef:a})]})]})});function Ds({label:e,showOptions:t,setShowOptions:o,optionsRef:r,onRemove:n,onClose:d,viewRef:s}){let{t:i}=b(),u=l=>{let p=s.current;if(!p)return;let{$from:f,from:a}=p.state.selection,S=p.state.storedMarks||f.marks(),m=schema.nodes.field.create({fieldType:l,instruction:` ${l} \\* MERGEFORMAT `,fieldKind:"simple",dirty:true}),g=p.state.tr.insert(a,m.mark(S));p.dispatch(g),p.focus();};return jsxs("div",{style:{position:"relative"},ref:r,children:[jsxs("button",{type:"button",style:eg,onClick:l=>{l.stopPropagation(),o(p=>!p);},onMouseDown:l=>l.stopPropagation(),children:[i("headerFooter.options")," \u25BE"]}),t&&jsxs("div",{style:tg,children:[jsx("button",{type:"button",style:Sn,onClick:()=>{o(false),u("PAGE");},onMouseOver:l=>{l.target.style.backgroundColor="#f1f3f4";},onMouseOut:l=>{l.target.style.backgroundColor="transparent";},children:i("headerFooter.insertPageNumber")}),jsx("button",{type:"button",style:Sn,onClick:()=>{o(false),u("NUMPAGES");},onMouseOver:l=>{l.target.style.backgroundColor="#f1f3f4";},onMouseOut:l=>{l.target.style.backgroundColor="transparent";},children:i("headerFooter.insertTotalPages")}),jsx("div",{style:{borderTop:"1px solid #e8eaed",margin:"4px 0"}}),n&&jsx("button",{type:"button",style:Sn,onClick:()=>{o(false),n();},onMouseOver:l=>{l.target.style.backgroundColor="#f1f3f4";},onMouseOut:l=>{l.target.style.backgroundColor="transparent";},children:i("headerFooter.remove",{label:e.toLowerCase()})}),jsx("button",{type:"button",style:Sn,onClick:()=>{o(false),d();},onMouseOver:l=>{l.target.style.backgroundColor="#f1f3f4";},onMouseOut:l=>{l.target.style.backgroundColor="transparent";},children:i("headerFooter.closeEditing",{label:e.toLowerCase()})})]})]})}var Fs=resolveItemPositions;function Bs({items:e,anchorPositions:t,renderedDomContext:o,pageWidth:r,zoom:n,editorContainerRef:d,onExpandedItemChange:s,activeItemId:i}){let{t:u}=b(),l=i??null,p=useRef(l);p.current=l;let[f,a]=useState(false),S=useRef(new Map),m=useRef(new Map),g=useRef(new Set),h=useRef(null),R=useRef(new Map),b$1=useRef(new Map),[c,v]=useState(0),C=useMemo(()=>Fs(e,t,o,n,S.current,m.current),[e,t,o,n,c]),y=C.length>0,w=useMemo(()=>{let T=new Map;for(let I of C)T.set(I.item.id,I.y);return T},[C]);useEffect(()=>{for(let T of C)g.current.add(T.item.id);},[C]);let P=useCallback(()=>{let T=false;for(let[I,k]of R.current){let L=k.offsetHeight;S.current.get(I)!==L&&(S.current.set(I,L),T=true);}T&&v(I=>I+1);},[]);useEffect(()=>{let T=requestAnimationFrame(P),I=setTimeout(()=>{P(),a(true);},400);return ()=>{cancelAnimationFrame(T),clearTimeout(I);}},[e.length,P]),useEffect(()=>{let T=d?.current;if(!T)return;let I=new ResizeObserver(()=>{requestAnimationFrame(()=>v(k=>k+1));});return I.observe(T),()=>I.disconnect()},[d]),useEffect(()=>{let T=requestAnimationFrame(P);return ()=>cancelAnimationFrame(T)},[l,P]),useEffect(()=>{if(!l)return;let T=R.current.get(l);if(!T){let L=requestAnimationFrame(()=>v(B=>B+1));return ()=>cancelAnimationFrame(L)}let I,k=new ResizeObserver(()=>{cancelAnimationFrame(I),I=requestAnimationFrame(()=>{S.current.set(l,T.offsetHeight),v(L=>L+1);});});return k.observe(T),()=>{cancelAnimationFrame(I),k.disconnect();}},[l]);let x=useCallback(T=>{let I=b$1.current.get(T);return I||(I=k=>{k?(R.current.set(T,k),S.current.set(T,k.offsetHeight)):(R.current.delete(T),S.current.delete(T));},b$1.current.set(T,I)),I},[]),E=useCallback(T=>{s?.(p.current===T?null:T);},[s]);return e.length===0?null:jsx("aside",{ref:h,className:"docx-unified-sidebar",role:"complementary","aria-label":u("sidebar.ariaLabel"),style:{position:"absolute",top:0,left:`calc(50% - ${SIDEBAR_DOCUMENT_SHIFT}px + ${r*n/2+SIDEBAR_PAGE_GAP}px)`,width:SIDEBAR_WIDTH,fontFamily:"'Google Sans', Roboto, Arial, sans-serif",zIndex:40,backgroundColor:"transparent",overflowY:"visible",overflowX:"visible",opacity:y?1:0,transition:"opacity 0.15s ease"},onMouseDown:T=>T.stopPropagation(),children:jsx("div",{style:{position:"relative"},children:e.map(T=>{let I=w.get(T.id),k=l===T.id,B=!g.current.has(T.id)&&I!==void 0,A=y&&!w.has(T.id),j=y?I!==void 0?{position:"absolute",top:I,left:0,right:0,opacity:1}:{position:"absolute",top:0,left:0,right:0,opacity:0,visibility:"hidden"}:{marginBottom:6},_=A?"none":B||T.isTemporary?"opacity 0.2s ease":f?"opacity 0.2s ease, top 0.15s ease":"none";return jsx("div",{style:{...j,transition:_},children:T.render({isExpanded:k,onToggleExpand:()=>E(T.id),measureRef:x(T.id)})},T.id)})})})}function Ns({comments:e,anchorPositions:t,zoom:o,pageWidth:r,sidebarOpen:n,resolvedCommentIds:d,onMarkerClick:s}){let{t:i}=b(),l=e.filter(p=>p.parentId==null).map(p=>{let f=d.has(p.id);if(!f&&n||f&&n)return null;let a=t.get(`comment-${p.id}`);return a==null?null:{comment:p,isResolved:f,y:a}}).filter(Boolean);return l.length===0?null:jsx("div",{className:"docx-comment-margin-markers",style:{position:"absolute",top:0,left:`calc(50% + ${r*o/2+6}px)`,zIndex:30,pointerEvents:"none"},onMouseDown:p=>p.stopPropagation(),children:l.map(({comment:p,isResolved:f,y:a})=>jsx("button",{onClick:()=>s(p.id),title:i(f?"commentMarkers.resolvedComment":"commentMarkers.comment"),style:{position:"absolute",top:a*o,left:0,width:24,height:24,display:"flex",alignItems:"center",justifyContent:"center",border:"none",borderRadius:4,background:"transparent",cursor:"pointer",pointerEvents:"auto",color:"#5f6368",padding:0,fontFamily:"inherit"},onMouseOver:S=>{S.currentTarget.style.opacity="0.7";},onMouseOut:S=>{S.currentTarget.style.opacity="1";},children:jsx(b$1,{name:f?"chat_bubble_check":"chat_bubble_outline",size:18})},p.id))})}function Ws({pagedEditorRef:e,hfEditorRef:t,scrollContainerRef:o$1,editorContentRef:r,document:n,theme:d,initialSectionProperties:s,finalSectionProperties:i,headerContent:u,footerContent:l,firstPageHeaderContent:p,firstPageFooterContent:f,hfEditPosition:a,setHfEditPosition:S,hfEditIsFirstPage:m,onHeaderFooterDoubleClick:g,onHeaderFooterSave:h,onRemoveHeaderFooter:R,onBodyClick:b,getHfTargetElement:c,zoom:v,readOnly:C,extensionManager:y,externalPlugins:w,onDocumentChange:P,onSelectionChange:x,onPagedSelectionChange:E,onReady:T,onEditorViewReady:I,onRenderedDomContextReady:k,pluginOverlays:L,onHyperlinkClick:B,hyperlinkPopupData:A,onHyperlinkPopupNavigate:j,onHyperlinkPopupCopy:_,onHyperlinkPopupEdit:V,onHyperlinkPopupRemove:oe,onHyperlinkPopupClose:ie,onContextMenu:Q,sidebarOpen:ae,sidebarItems:ne,anchorPositions:ge,onAnchorPositionsChange:he,pluginRenderedDomContext:J,pageWidthPx:D,expandedSidebarItem:H,setExpandedSidebarItem:N,comments:W,resolvedCommentIds:F,resolvedIdsForRender:U,setShowCommentsSidebar:q,onTotalPagesChange:re,floatingCommentBtn:Z,isAddingComment:te,setCommentSelectionRange:K,setAddCommentYPosition:O,setIsAddingComment:Se,setFloatingCommentBtn:ce}){let Be=a?m?a==="header"?p:f:a==="header"?u:l:null;return jsxs(Fragment,{children:[jsx(ws,{ref:e,document:n,styles:n?.package.styles,theme:n?.package.theme||d,sectionProperties:s,finalSectionProperties:i,headerContent:u,footerContent:l,firstPageHeaderContent:p,firstPageFooterContent:f,onHeaderFooterDoubleClick:g,hfEditMode:a,onBodyClick:b,zoom:v,readOnly:C,extensionManager:y,onDocumentChange:P,onSelectionChange:E,externalPlugins:w,onReady:fe=>{T(fe);let ye=fe.getView();ye&&I?.(ye);},onRenderedDomContextReady:k,pluginOverlays:L,onHyperlinkClick:B,hyperlinkPopupData:A,onHyperlinkPopupNavigate:j,onHyperlinkPopupCopy:_,onHyperlinkPopupEdit:V,onHyperlinkPopupRemove:oe,onHyperlinkPopupClose:ie,onContextMenu:Q,commentsSidebarOpen:ae,onAnchorPositionsChange:he,onTotalPagesChange:re,resolvedCommentIds:U,scrollContainerRef:o$1,sidebarOverlay:jsxs(Fragment,{children:[ne.length>0&&jsx(Bs,{items:ne,anchorPositions:ge,renderedDomContext:J??null,pageWidth:D,zoom:v,editorContainerRef:o$1,onExpandedItemChange:N,activeItemId:H}),jsx(Ns,{comments:W,anchorPositions:ge,zoom:v,pageWidth:D,sidebarOpen:ae,resolvedCommentIds:F,onMarkerClick:()=>q(true)})]})}),Z!=null&&!te&&!C&&jsx(o,{content:"Add comment",side:"bottom",delayMs:300,children:jsx("button",{type:"button",onMouseDown:fe=>{fe.preventDefault(),fe.stopPropagation();let ye=e.current?.getView();if(ye){let{from:Te,to:ve}=ye.state.selection;if(Te!==ve){K({from:Te,to:ve});let Ee=ye.state.schema.marks.comment.create({commentId:lt}),De=ye.state.tr.addMark(Te,ve,Ee);De.setSelection(TextSelection.create(De.doc,ve)),ye.dispatch(De);}}O(Z.top),q(true),Se(true),ce(null);},style:{position:"absolute",top:Z.top,left:Z.left,transform:"translate(-50%, -50%)",zIndex:50,width:28,height:28,borderRadius:6,border:"1px solid rgba(26, 115, 232, 0.3)",backgroundColor:"#fff",color:"#1a73e8",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 1px 3px rgba(60,64,67,0.2)",transition:"background-color 0.15s ease, box-shadow 0.15s ease"},onMouseOver:fe=>{fe.currentTarget.style.backgroundColor="rgba(26, 115, 232, 0.08)",fe.currentTarget.style.boxShadow="0 1px 4px rgba(26, 115, 232, 0.3)";},onMouseOut:fe=>{fe.currentTarget.style.backgroundColor="#fff",fe.currentTarget.style.boxShadow="0 1px 3px rgba(60,64,67,0.2)";},children:jsx(b$1,{name:"add_comment",size:16})})}),a&&Be&&(()=>{let fe=c(a),ye=r.current;return !fe||!ye?null:jsx(Hs,{ref:t,headerFooter:Be,position:a,styles:n?.package.styles,targetElement:fe,parentElement:ye,onSave:h,onClose:()=>S(null),onSelectionChange:x,onRemove:R})})()]})}function Vs({commentsLoadedRef:e,trackedChangesLoadedRef:t,setComments:o,setHeadingInfos:r,setShowCommentsSidebar:n,setIsAddingComment:d,setCommentSelectionRange:s,setAddCommentYPosition:i,setFloatingCommentBtn:u,setHfEditPosition:l,setHfEditIsFirstPage:p,setAnchorPositions:f,clearFindReplaceMatches:a,cleanOrphanedCommentsTimerRef:S}){return {resetForNewDocument:useCallback(()=>{e.current=false,t.current=false,o([]),r([]),n(false),d(false),s(null),i(null),u(null),l(null),p(false),f(tn),a(),S.current&&(clearTimeout(S.current),S.current=null);},[e,t,o,r,n,d,s,i,u,l,p,f,a,S])}}var dg=createContext(null);function $s({children:e}){let t=useMemo(()=>new ErrorManager,[]),o=useSyncExternalStore(t.subscribe,t.getSnapshot),r=useCallback((l,p)=>{t.showError(l,p);},[t]),n=useCallback((l,p)=>{t.showWarning(l,p);},[t]),d=useCallback((l,p)=>{t.showInfo(l,p);},[t]),s=useCallback(l=>{t.dismiss(l);},[t]),i=useCallback(()=>{t.clearAll();},[t]),u=useMemo(()=>({notifications:o.notifications,showError:r,showWarning:n,showInfo:d,dismissNotification:s,clearNotifications:i}),[o.notifications,r,n,d,s,i]);return jsxs(dg.Provider,{value:u,children:[e,jsx(ug,{notifications:o.notifications,onDismiss:s})]})}function ug({notifications:e,onDismiss:t}){let o=e.filter(n=>!n.dismissed);return o.length===0?null:jsx("div",{className:"docx-notification-container",style:{position:"fixed",top:"16px",right:"16px",zIndex:10001,display:"flex",flexDirection:"column",gap:"8px",maxWidth:"400px"},children:o.map(n=>jsx(pg,{notification:n,onDismiss:()=>t(n.id)},n.id))})}function pg({notification:e,onDismiss:t}){let{t:o}=b(),[r,n]=useState(false),s=(g=>{switch(g){case "error":return {bg:"var(--doc-error-bg)",border:"#f5c6cb",text:"var(--doc-error)",icon:"var(--doc-error)"};case "warning":return {bg:"var(--doc-warning-bg)",border:"#ffeeba",text:"#856404",icon:"var(--doc-warning)"};case "info":return {bg:"#e8f4fd",border:"#b8daff",text:"#0c5460",icon:"var(--doc-primary)"}}})(e.severity),i={background:s.bg,border:`1px solid ${s.border}`,borderRadius:"8px",padding:"12px 16px",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.15)",animation:"slideIn 0.3s ease-out"},u={display:"flex",alignItems:"flex-start",gap:"8px"},l={color:s.icon,flexShrink:0},p={flex:1,minWidth:0},f={color:s.text,fontSize:"14px",fontWeight:500,wordBreak:"break-word"},a={marginTop:"8px",padding:"8px",background:"rgba(0, 0, 0, 0.05)",borderRadius:"4px",fontSize:"12px",fontFamily:"monospace",whiteSpace:"pre-wrap",wordBreak:"break-word",color:s.text,maxHeight:"200px",overflow:"auto"},S={background:"transparent",border:"none",cursor:"pointer",padding:"4px",borderRadius:"4px",display:"flex",alignItems:"center",justifyContent:"center",color:s.text},m=g=>{switch(g){case "error":return jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[jsx("circle",{cx:"10",cy:"10",r:"8",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M10 6v5M10 13v1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]});case "warning":return jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[jsx("path",{d:"M10 3L18 17H2L10 3z",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),jsx("path",{d:"M10 8v4M10 14v1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]});case "info":return jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[jsx("circle",{cx:"10",cy:"10",r:"8",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M10 9v5M10 6v1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}};return jsxs("div",{className:`docx-notification-toast docx-notification-${e.severity}`,style:i,children:[jsx("style",{children:`
|
|
14
14
|
@keyframes slideIn {
|
|
15
15
|
from {
|
|
16
16
|
opacity: 0;
|
|
@@ -21,13 +21,13 @@ body { background: white; }
|
|
|
21
21
|
transform: translateX(0);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
`}),jsxs("div",{style:
|
|
24
|
+
`}),jsxs("div",{style:u,children:[jsx("span",{style:l,children:m(e.severity)}),jsxs("div",{style:p,children:[jsx("div",{style:f,children:e.message}),e.details&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:()=>n(!r),style:{...S,marginTop:"4px",fontSize:"12px",padding:"2px 8px"},children:o(r?"errors.hideDetails":"errors.showDetails")}),r&&jsx("div",{style:a,children:e.details})]})]}),jsx("button",{type:"button",onClick:t,style:S,title:o("common.dismiss"),children:jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]})]})}var xn=class extends Component{constructor(o){super(o);b$5(this,"resetError",()=>{this.setState({hasError:false,error:null,errorInfo:null});});this.state={hasError:false,error:null,errorInfo:null};}static getDerivedStateFromError(o){return {hasError:true,error:o}}componentDidCatch(o,r){this.setState({errorInfo:r}),console.error("ErrorBoundary caught an error:",o,r),this.props.onError&&this.props.onError(o,r);}render(){if(this.state.hasError){let{fallback:o,showDetails:r=true}=this.props,{error:n,errorInfo:d}=this.state;return o?typeof o=="function"?o(n,this.resetError):o:jsx(mg,{error:n,errorInfo:d,showDetails:r,onReset:this.resetError})}return this.props.children}};function mg({error:e,errorInfo:t,showDetails:o,onReset:r}){let{t:n}=b(),d={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"40px",textAlign:"center",minHeight:"200px",background:"white",borderRadius:"8px",border:"1px solid var(--doc-border)",margin:"20px"},s={color:"var(--doc-error)",marginBottom:"16px"},i={fontSize:"18px",fontWeight:600,color:"var(--doc-text)",marginBottom:"8px"},u={fontSize:"14px",color:"var(--doc-text-muted)",marginBottom:"16px",maxWidth:"400px"},l={width:"100%",maxWidth:"600px",marginBottom:"16px",padding:"12px",background:"var(--doc-error-bg)",borderRadius:"4px",fontSize:"12px",fontFamily:"monospace",textAlign:"left",whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:"200px",overflow:"auto"},p={padding:"10px 20px",background:"var(--doc-primary)",color:"white",border:"none",borderRadius:"4px",fontSize:"14px",cursor:"pointer"};return jsxs("div",{className:"docx-error-fallback",style:d,children:[jsx("div",{style:s,children:jsxs("svg",{width:"48",height:"48",viewBox:"0 0 48 48",fill:"none",children:[jsx("circle",{cx:"24",cy:"24",r:"20",stroke:"currentColor",strokeWidth:"2"}),jsx("path",{d:"M24 14v12M24 30v2",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]})}),jsx("h2",{style:i,children:n("errors.somethingWentWrong")}),jsx("p",{style:u,children:n("errors.errorDescription")}),o&&jsxs("div",{style:l,children:[jsx("strong",{children:n("errors.errorLabel")})," ",e.message,t&&jsxs(Fragment,{children:[`
|
|
25
25
|
|
|
26
|
-
`,jsx("strong",{children:n("errors.componentStack")}),t.componentStack]})]}),jsx("button",{type:"button",onClick:r,style:p,children:n("errors.tryAgain")})]})}var
|
|
26
|
+
`,jsx("strong",{children:n("errors.componentStack")}),t.componentStack]})]}),jsx("button",{type:"button",onClick:r,style:p,children:n("errors.tryAgain")})]})}var bg=15840,Ys=1440,yg=1440,vg=567,Xs=20,Cg="var(--doc-text-muted)",Sg="var(--doc-text-subtle)",xg="var(--doc-primary)",Rg="var(--doc-primary)",Pg="var(--doc-primary-hover)";function qs({sectionProps:e,zoom:t=1,editable:o=false,onTopMarginChange:r,onBottomMarginChange:n,unit:d="inch",className:s="",style:i}){let{t:u}=b(),[l,p]=useState(null),[f,a]=useState(null),S=useRef(null),m=e?.pageHeight??bg,g=e?.marginTop??Ys,h=e?.marginBottom??Ys,R=twipsToPixels(m)*t,b$1=twipsToPixels(g)*t,c=twipsToPixels(h)*t,v=useCallback((x,E)=>{o&&(x.preventDefault(),p(E));},[o]),C=useCallback(x=>{if(!l||!S.current)return;let E=S.current.getBoundingClientRect(),T=x.clientY-E.top,I=pixelsToTwips(T/t);if(l==="topMargin"){let k=m-h-720,L=Math.max(0,Math.min(I,k));r?.(Math.round(L));}else if(l==="bottomMargin"){let k=m-I,L=m-g-720,B=Math.max(0,Math.min(k,L));n?.(Math.round(B));}},[l,t,m,g,h,r,n]),y=useCallback(()=>{p(null);},[]);useEffect(()=>{if(l)return document.addEventListener("mousemove",C),document.addEventListener("mouseup",y),()=>{document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",y);}},[l,C,y]);let w=wg(m,t,d),P={position:"relative",width:Xs,height:formatPx(R),backgroundColor:"transparent",overflow:"visible",userSelect:"none",cursor:l?"ns-resize":"default",...i};return jsxs("div",{ref:S,className:`docx-vertical-ruler ${s}`,style:P,role:"slider","aria-label":u("ruler.vertical"),"aria-orientation":"vertical",children:[jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none"},children:w.map((x,E)=>jsx(Tg,{tick:x},E))}),jsx(js,{type:"topMargin",position:b$1,editable:o,isDragging:l==="topMargin",isHovered:f==="topMargin",onMouseEnter:()=>a("topMargin"),onMouseLeave:()=>a(null),onMouseDown:x=>v(x,"topMargin")}),jsx(js,{type:"bottomMargin",position:R-c,editable:o,isDragging:l==="bottomMargin",isHovered:f==="bottomMargin",onMouseEnter:()=>a("bottomMargin"),onMouseLeave:()=>a(null),onMouseDown:x=>v(x,"bottomMargin")})]})}function Tg({tick:e}){let t={position:"absolute",top:formatPx(e.position),right:0,height:1,width:e.width,backgroundColor:Sg},o={position:"absolute",top:formatPx(e.position),left:2,transform:"translateY(-50%)",fontSize:"9px",color:Cg,fontFamily:"sans-serif",whiteSpace:"nowrap"};return jsxs(Fragment,{children:[jsx("div",{style:t}),e.label&&jsx("div",{style:o,children:e.label})]})}function js({type:e,position:t,editable:o,isDragging:r,isHovered:n,onMouseEnter:d,onMouseLeave:s,onMouseDown:i}){let{t:u}=b(),l=r?Pg:n?Rg:xg,p={position:"absolute",top:formatPx(t-5),right:0,width:Xs,height:10,cursor:o?"ns-resize":"default",zIndex:r?10:1},f={position:"absolute",top:0,right:2,width:0,height:0,borderTop:"5px solid transparent",borderBottom:"5px solid transparent",borderRight:`8px solid ${l}`,transition:"border-right-color 0.1s"};return jsx("div",{className:`docx-ruler-marker docx-ruler-marker-${e}`,style:p,onMouseEnter:d,onMouseLeave:s,onMouseDown:i,role:"slider","aria-label":u(e==="topMargin"?"ruler.topMargin":"ruler.bottomMargin"),"aria-orientation":"vertical",tabIndex:o?0:-1,children:jsx("div",{style:f})})}function wg(e,t,o){let r=[];if(o==="inch"){let n=yg/8,d=Math.ceil(e/n);for(let s=0;s<=d;s++){let i=s*n;if(i>e)break;let u=twipsToPixels(i)*t;if(s%8===0){let l=s/8;r.push({position:u,width:10,label:l>0?String(l):void 0});}else s%4===0?r.push({position:u,width:6}):s%2===0?r.push({position:u,width:4}):r.push({position:u,width:2});}}else {let n=vg/10,d=Math.ceil(e/n);for(let s=0;s<=d;s++){let i=s*n;if(i>e)break;let u=twipsToPixels(i)*t;if(s%10===0){let l=s/10;r.push({position:u,width:10,label:l>0?String(l):void 0});}else s%5===0?r.push({position:u,width:6}):r.push({position:u,width:3});}}return r}var Tr=30,wr=240,Js=16,Dg=24,el=Tr+wr+Js,Er=48,Lg=32,tl=Er+Lg+Js,ol=Rl.memo(function({headings:t,onHeadingClick:o,onClose:r,topOffset:n=0,scrollLeft:d=0}){let{t:s}=b(),[i,u]=useState(false);return useEffect(()=>{requestAnimationFrame(()=>u(true));},[]),jsxs("nav",{className:"docx-outline-nav",role:"navigation","aria-label":s("documentOutline.ariaLabel"),style:{position:"absolute",top:n,left:Tr-d,bottom:0,width:wr,paddingTop:Dg,display:"flex",flexDirection:"column",overflow:"hidden",fontFamily:"'Google Sans', Roboto, Arial, sans-serif",zIndex:40,transform:i?"translateX(0)":`translateX(-${Tr+wr}px)`,transition:"transform 0.15s ease-out"},onMouseDown:l=>l.stopPropagation(),children:[jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"16px 16px 12px"},children:[jsx("button",{onClick:r,"aria-label":s("documentOutline.closeAriaLabel"),style:{background:"none",border:"none",cursor:"pointer",padding:4,borderRadius:"50%",display:"flex",alignItems:"center",color:"#444746"},title:s("documentOutline.closeTitle"),children:jsx(b$1,{name:"arrow_back",size:20})}),jsx("span",{style:{fontWeight:400,fontSize:14,color:"#1f1f1f",letterSpacing:"0.01em"},children:s("documentOutline.title")})]}),jsx("div",{style:{overflowY:"auto",flex:1,paddingLeft:20},children:t.length===0?jsx("div",{style:{padding:"8px 16px",color:"#80868b",fontSize:13,lineHeight:"20px"},children:s("documentOutline.noHeadings")}):t.map((l,p)=>jsx("div",{style:{marginLeft:l.level*12},children:jsx("button",{className:"docx-outline-heading-btn",onClick:()=>o(l.pmPos),style:{display:"block",width:"100%",textAlign:"left",background:"none",border:"none",cursor:"pointer",padding:"5px 12px",fontSize:13,fontWeight:400,color:"#1f1f1f",lineHeight:"18px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",borderRadius:0,letterSpacing:"0.01em"},title:l.text,children:l.text})},`${l.pmPos}-${p}`))})]})});function rl({onClick:e,topPx:t,scrollLeft:o=0}){let{t:r}=b();return jsx("button",{className:"docx-outline-nav",onClick:e,onMouseDown:n=>n.stopPropagation(),title:r("editor.showDocumentOutline"),style:{position:"absolute",left:Er-o,top:t,zIndex:50,background:"transparent",border:"none",borderRadius:"50%",padding:6,cursor:"pointer",display:"flex",alignItems:"center"},children:jsx(b$1,{name:"format_list_bulleted",size:20,style:{color:"#444746"}})})}function il({currentPage:e,totalPages:t,visible:o}){let{t:r}=b();return jsx("div",{style:{position:"absolute",right:24,top:"50%",transform:"translateY(-50%)",backgroundColor:"rgba(0, 0, 0, 0.7)",color:"white",padding:"6px 12px",borderRadius:"4px",fontSize:"12px",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontWeight:500,whiteSpace:"nowrap",pointerEvents:"none",zIndex:1e3,opacity:o?1:0,transition:"opacity 0.3s ease",userSelect:"none"},"aria-live":"polite",role:"status",children:r("viewer.pageIndicator",{current:e,total:t})})}function al({agentPanel:e,closed:t,onClose:o}){let{t:r}=b();return jsx(AgentPanel,{title:e.title??r("agentPanel.defaultTitle"),icon:e.icon,closeLabel:r("agentPanel.close"),resizeHandleLabel:r("agentPanel.resizeHandle"),defaultWidth:e.defaultWidth,minWidth:e.minWidth,maxWidth:e.maxWidth,onClose:o,closed:t,children:e.render({close:o})})}function sl({i18n:e,onEditorError:t,containerRef:o,scrollContainerRef:r,editorContentRef:n,className:d,containerStyle:s,mainContentStyle:i,editorContainerStyle:u,showRuler:l,readOnlyProp:p,showOutline:f,showOutlineButton:a,sidebarOpen:S,minLayoutWidth:m,toolbarHeight:g,editorScrollLeft:h$1,expandedSidebarItem:R,trackedChanges:b,onScrollContainerMouseDown:c,onEditorBgMouseDown:v,onEditorContextMenu:C,horizontalRulerProps:y,verticalRulerProps:w,outlineProps:P,onToggleOutline:x,scrollPageInfo:E,agentPanel:T,agentPanelOpen:I,onAgentPanelClose:k,toolbar:L,pagedArea:B,overlays:A,dialogs:j,fileInputs:_}){return jsx(a$3,{i18n:e,children:jsx($s,{children:jsx(xn,{onError:t,children:jsxs("div",{ref:o,className:`ep-root docx-editor ${d??""}`,style:s,"data-testid":"docx-editor",children:[jsxs("div",{style:i,children:[jsxs("div",{style:{position:"relative",flex:1,minHeight:0,minWidth:0,display:"flex",flexDirection:"column"},children:[L,jsxs("div",{ref:r,style:u,onMouseDown:c,children:[l&&jsx("div",{className:"flex justify-center py-1 flex-shrink-0 bg-doc-bg",style:{position:"sticky",top:0,zIndex:h.ruler,paddingLeft:20,paddingRight:20+(S?SIDEBAR_DOCUMENT_SHIFT*2:0),minWidth:m,transition:"padding 0.2s ease"},children:jsx(F,{...y})}),jsx("div",{style:{display:"flex",flex:1,minHeight:0,position:"relative",minWidth:m},children:jsxs("div",{ref:n,style:{position:"relative",flex:1,minWidth:0},onMouseDown:v,onContextMenu:C,children:[l&&!p&&jsx("div",{style:{position:"absolute",left:0,top:0,zIndex:h.ruler,paddingTop:48},children:jsx(qs,{...w})}),R&&R.startsWith("comment-")&&jsx("style",{children:`.paged-editor__pages [data-comment-id="${R.replace("comment-","")}"] { background-color: rgba(255, 212, 0, 0.35) !important; border-bottom: 2px solid rgba(255, 212, 0, 0.7) !important; }`}),R?.startsWith("tc-")&&(()=>{let V=R.split("-")[1],ie=b.find(Q=>String(Q.revisionId)===V)?.insertionRevisionId;return jsx("style",{children:`
|
|
27
27
|
.paged-editor__pages .docx-insertion[data-revision-id="${ie??V}"] { background-color: rgba(52, 168, 83, 0.2) !important; border-bottom: 2px solid #2e7d32 !important; }
|
|
28
28
|
.paged-editor__pages .docx-deletion[data-revision-id="${V}"] { background-color: rgba(211, 47, 47, 0.2) !important; text-decoration-thickness: 2px !important; }
|
|
29
|
-
`})})(),B]})})]}),E.totalPages>1&&jsx(ll,{currentPage:E.currentPage,totalPages:E.totalPages,visible:E.visible}),f&&jsx(il,{...P}),a&&!f&&jsx(sl,{onClick:R,topPx:h$1+(l?30:0)+48,scrollLeft:g})]}),T&&jsx(cl,{agentPanel:T,closed:!I,onClose:k})]}),A,j,_]})})})})}var no={background:"none",border:"none",cursor:"pointer",padding:4,color:"#5f6368",display:"flex",borderRadius:"50%"},Pn={padding:"6px 16px",fontSize:14,border:"none",background:"none",color:"#1a73e8",cursor:"pointer",fontWeight:500,fontFamily:"inherit"};function ro(e,t=32){return {width:t,height:t,borderRadius:"50%",backgroundColor:getAvatarColor(e),color:"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:t===32?13:11,fontWeight:500,flexShrink:0}}function Tn(e){return {padding:"6px 16px",fontSize:14,border:"none",borderRadius:20,background:e?"#1a73e8":"#f1f3f4",color:e?"#fff":"#80868b",cursor:e?"pointer":"default",fontWeight:500,fontFamily:"inherit"}}function kn({replies:e,isExpanded:t}){let{t:o}=b();if(e.length===0)return null;let r=t?e:e.slice(-1),n=t?0:e.length-1;return jsxs("div",{style:{marginTop:8},children:[n>0&&jsx("div",{style:{fontSize:12,fontWeight:500,color:"#1a73e8",paddingTop:6,paddingBottom:6,borderTop:"1px solid #e8eaed"},children:o("comments.replyCount",{count:n})}),r.map(c=>jsxs("div",{style:{marginBottom:t?8:0,paddingTop:8,borderTop:"1px solid #e8eaed"},children:[jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[jsx("div",{style:ro(c.author||"U",28),children:getInitials(c.author||"U")}),jsxs("div",{style:{flex:1,minWidth:0},children:[jsx("div",{style:{fontSize:13,fontWeight:600,color:"#202124"},children:c.author||o("comments.unknown")}),jsx("div",{style:{fontSize:11,color:"#5f6368"},children:formatDate(c.date)})]})]}),jsx("div",{style:{fontSize:13,color:"#202124",lineHeight:"20px",marginTop:4,...t?{}:{overflow:"hidden",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical"}},children:getCommentText(c.content)})]},c.id))]})}var _g={width:"100%",border:"1px solid #1a73e8",borderRadius:20,outline:"none",fontSize:14,padding:"8px 16px",fontFamily:"inherit",boxSizing:"border-box",color:"#202124"},Wg={width:"100%",border:"1px solid #dadce0",borderRadius:20,outline:"none",fontSize:14,padding:"8px 16px",fontFamily:"inherit",color:"#80868b",cursor:"text",backgroundColor:"#fff",boxSizing:"border-box"};function Mn({onSubmit:e}){let[t,o]=useState(false),[r,n]=useState(""),{t:c}=b();if(!t)return jsx("div",{onClick:i=>i.stopPropagation(),style:{marginTop:12},children:jsx("input",{readOnly:true,onMouseDown:i=>i.stopPropagation(),onClick:i=>{i.stopPropagation(),o(true);},placeholder:c("comments.replyPlaceholder"),style:Wg})});let s=r.trim();return jsxs("div",{onClick:i=>i.stopPropagation(),style:{marginTop:12},children:[jsx("input",{ref:i=>i?.focus({preventScroll:true}),type:"text",value:r,onChange:i=>n(i.target.value),onMouseDown:i=>i.stopPropagation(),onKeyDown:i=>{i.stopPropagation(),i.key==="Enter"&&(i.preventDefault(),s&&e(s),n(""),o(false)),i.key==="Escape"&&(o(false),n(""));},placeholder:c("comments.replyPlaceholder"),style:_g}),jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:8},children:[jsx("button",{onClick:i=>{i.stopPropagation(),o(false),n("");},style:Pn,children:c("common.cancel")}),jsx("button",{onClick:i=>{i.stopPropagation(),s&&e(s),n(""),o(false);},disabled:!s,style:Tn(!!s),children:c("common.reply")})]})]})}var Dn=CARD_STYLE_COLLAPSED,Fn=CARD_STYLE_EXPANDED;function ml({comment:e,replies:t,isExpanded:o,onToggleExpand:r,measureRef:n,onReply:c,onResolve:s,onUnresolve:i,onDelete:d}){let[l,p]=useState(false),{t:f}=b();return jsxs("div",{ref:n,"data-comment-id":e.id,className:"docx-comment-card",onClick:r,onMouseDown:a=>a.stopPropagation(),style:{...o?Fn:Dn},children:[e.done&&jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",marginBottom:8,fontSize:11,fontWeight:500,color:"#188038",backgroundColor:"#e6f4ea",borderRadius:10},children:[jsx(b$1,{name:"check",size:12}),f("comments.resolved")]}),jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[jsx("div",{style:ro(e.author||"U"),children:getInitials(e.author||"U")}),jsxs("div",{style:{flex:1,minWidth:0},children:[jsx("div",{style:{fontSize:13,fontWeight:600,color:"#202124"},children:e.author||f("comments.unknown")}),jsx("div",{style:{fontSize:11,color:"#5f6368"},children:formatDate(e.date)})]}),o&&jsxs("div",{style:{display:"flex",gap:4,marginTop:2,position:"relative"},children:[jsx("button",{onClick:a=>{a.stopPropagation(),e.done?i?.(e.id):s?.(e.id);},title:e.done?f("comments.reopen"):f("comments.resolve"),style:no,children:jsx(b$1,{name:e.done?"undo":"check",size:20})}),jsx("button",{onClick:a=>{a.stopPropagation(),p(!l);},title:f("comments.moreOptions"),style:no,children:jsx(b$1,{name:"more_vert",size:20})}),l&&jsx("div",{onClick:a=>a.stopPropagation(),onMouseDown:a=>a.stopPropagation(),style:{position:"absolute",top:32,right:0,background:"#fff",borderRadius:8,boxShadow:"0 2px 6px rgba(60,64,67,0.3), 0 1px 2px rgba(60,64,67,0.15)",zIndex:100,minWidth:120,padding:"4px 0"},children:jsx("button",{onClick:()=>{p(false),d?.(e.id);},style:{display:"block",width:"100%",padding:"8px 16px",border:"none",background:"none",textAlign:"left",fontSize:14,color:"#202124",cursor:"pointer",fontFamily:"inherit"},onMouseOver:a=>{a.target.style.backgroundColor="#f1f3f4";},onMouseOut:a=>{a.target.style.backgroundColor="transparent";},children:f("common.delete")})})]})]}),jsx("div",{style:{fontSize:13,color:"#202124",lineHeight:"20px",marginTop:6},children:getCommentText(e.content)}),jsx(kn,{replies:t,isExpanded:o}),o&&!e.done&&jsx(Mn,{onSubmit:a=>c?.(e.id,a)})]})}function gl({change:e,replies:t,isExpanded:o,onToggleExpand:r,measureRef:n,onAccept:c,onReject:s,onReply:i}){let{t:d}=b(),l=e.author||d("trackedChanges.unknown");return jsxs("div",{ref:n,className:"docx-tracked-change-card",onClick:()=>r(),onMouseDown:p=>p.stopPropagation(),style:o?Fn:Dn,children:[jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[jsx("div",{style:ro(l),children:getInitials(l)}),jsxs("div",{style:{flex:1,minWidth:0},children:[jsx("div",{style:{fontSize:13,fontWeight:600,color:"#202124"},children:l}),e.date&&jsx("div",{style:{fontSize:11,color:"#5f6368"},children:formatDate(e.date)})]}),o&&jsxs("div",{style:{display:"flex",gap:4,marginTop:2},children:[jsx("button",{onClick:p=>{p.stopPropagation(),c?.(e.from,e.to);},title:d("common.accept"),style:no,children:jsx(b$1,{name:"check",size:20})}),jsx("button",{onClick:p=>{p.stopPropagation(),s?.(e.from,e.to);},title:d("common.reject"),style:no,children:jsx(b$1,{name:"close",size:20})})]})]}),jsx("div",{style:{fontSize:13,lineHeight:"20px",color:"#202124",marginTop:6},children:e.type==="replacement"?jsxs(Fragment,{children:[d("trackedChanges.replaced")," ",jsxs("span",{style:{color:"#c5221f",fontWeight:500},children:['"',truncateText(e.deletedText||""),'"']})," ",d("trackedChanges.with")," ",jsxs("span",{style:{color:"#137333",fontWeight:500},children:['"',truncateText(e.text),'"']})]}):jsxs(Fragment,{children:[e.type==="insertion"?d("trackedChanges.added"):d("trackedChanges.deleted")," ",jsxs("span",{style:{color:e.type==="insertion"?"#137333":"#c5221f",fontWeight:500},children:['"',truncateText(e.text),'"']})]})}),jsx(kn,{replies:t,isExpanded:o}),o&&jsx(Mn,{onSubmit:p=>i?.(e.revisionId,p)})]})}function bl({measureRef:e,onSubmit:t,onCancel:o}){let[r,n]=useState(""),{t:c}=b(),s=()=>{r.trim()&&(t?.(r.trim()),n(""));};return jsxs("div",{ref:e,onMouseDown:i=>i.stopPropagation(),style:{padding:12,borderRadius:8,backgroundColor:"#fff",boxShadow:"0 1px 3px rgba(60,64,67,0.3), 0 4px 8px 3px rgba(60,64,67,0.15)",zIndex:50},children:[jsx("textarea",{ref:i=>i?.focus({preventScroll:true}),value:r,onChange:i=>n(i.target.value),onMouseDown:i=>i.stopPropagation(),onKeyDown:i=>{i.stopPropagation(),i.key==="Enter"&&!i.shiftKey&&(i.preventDefault(),s()),i.key==="Escape"&&(o?.(),n(""));},placeholder:c("comments.addComment"),style:{width:"100%",border:"1px solid #1a73e8",borderRadius:20,outline:"none",resize:"none",fontSize:14,lineHeight:"20px",padding:"8px 16px",fontFamily:"inherit",minHeight:40,boxSizing:"border-box",color:"#202124"}}),jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:8},children:[jsx("button",{onClick:()=>{o?.(),n("");},style:Pn,children:c("common.cancel")}),jsx("button",{onClick:s,disabled:!r.trim(),style:Tn(!!r.trim()),children:c("common.comment")})]})]})}function vl({comment:e,measureRef:t,onToggleExpand:o}){return jsx("div",{ref:t,"data-comment-id":e.id,"data-comment-resolved":"true",onClick:o,onMouseDown:r=>r.stopPropagation(),style:{display:"inline-flex",alignItems:"center",cursor:"pointer",color:"#5f6368",padding:2},onMouseOver:r=>{r.currentTarget.style.opacity="0.7";},onMouseOut:r=>{r.currentTarget.style.opacity="1";},children:jsx(b$1,{name:"chat_bubble_check",size:20})})}function Cl({comments:e,trackedChanges:t,callbacks:o,showResolved:r=false,isAddingComment:n=false,addCommentYPosition:c=null}){let s=useMemo(()=>e.filter(d=>!(d.parentId!=null||d.done&&!r)),[e,r]),i=useMemo(()=>{let d=new Map;for(let l of e)if(l.parentId!=null){let p=d.get(l.parentId);p?p.push(l):d.set(l.parentId,[l]);}return d},[e]);return useMemo(()=>{let d=[];n&&c!=null&&d.push({id:"new-comment-input",anchorPos:0,fixedY:c,priority:-1e3,isTemporary:true,estimatedHeight:120,render:l=>jsx(bl,{...l,onSubmit:o.onAddComment,onCancel:o.onCancelAddComment})});for(let l of s){let p=i.get(l.id)??[];d.push({id:`comment-${l.id}`,anchorPos:0,anchorKey:`comment-${l.id}`,priority:0,estimatedHeight:l.done?28:80,render:f=>l.done&&!f.isExpanded?jsx(vl,{...f,comment:l}):jsx(ml,{...f,comment:l,replies:p,onReply:o.onCommentReply,onResolve:o.onCommentResolve,onUnresolve:o.onCommentUnresolve,onDelete:o.onCommentDelete})});}return t.forEach((l,p)=>{let f=i.get(l.revisionId)??[];d.push({id:`tc-${l.revisionId}-${p}`,anchorPos:l.from,anchorKey:`revision-${l.revisionId}`,priority:1,estimatedHeight:80,render:a=>jsx(gl,{...a,change:l,replies:f,onAccept:o.onAcceptChange,onReject:o.onRejectChange,onReply:o.onTrackedChangeReply})});}),d},[s,t,i,o,n,c])}function xl(e){return useMemo(()=>extractTrackedChanges(e),[e])}function Sl(){let{t:e}=b();return jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",gap:"20px",color:"var(--doc-text-muted)"},children:[jsx("div",{style:{width:"36px",height:"36px",border:"3px solid var(--doc-border)",borderTopColor:"var(--doc-primary)",borderRadius:"50%",animation:"docx-spin 0.8s linear infinite"}}),jsx("style",{children:`
|
|
29
|
+
`})})(),B]})})]}),E.totalPages>1&&jsx(il,{currentPage:E.currentPage,totalPages:E.totalPages,visible:E.visible}),f&&jsx(ol,{...P}),a&&!f&&jsx(rl,{onClick:x,topPx:g+(l?30:0)+48,scrollLeft:h$1})]}),T&&jsx(al,{agentPanel:T,closed:!I,onClose:k})]}),A,j,_]})})})})}var io={background:"none",border:"none",cursor:"pointer",padding:4,color:"#5f6368",display:"flex",borderRadius:"50%"},Pn={padding:"6px 16px",fontSize:14,border:"none",background:"none",color:"#1a73e8",cursor:"pointer",fontWeight:500,fontFamily:"inherit"};function ao(e,t=32){return {width:t,height:t,borderRadius:"50%",backgroundColor:getAvatarColor(e),color:"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:t===32?13:11,fontWeight:500,flexShrink:0}}function Tn(e){return {padding:"6px 16px",fontSize:14,border:"none",borderRadius:20,background:e?"#1a73e8":"#f1f3f4",color:e?"#fff":"#80868b",cursor:e?"pointer":"default",fontWeight:500,fontFamily:"inherit"}}function kn({replies:e,isExpanded:t}){let{t:o}=b();if(e.length===0)return null;let r=t?e:e.slice(-1),n=t?0:e.length-1;return jsxs("div",{style:{marginTop:8},children:[n>0&&jsx("div",{style:{fontSize:12,fontWeight:500,color:"#1a73e8",paddingTop:6,paddingBottom:6,borderTop:"1px solid #e8eaed"},children:o("comments.replyCount",{count:n})}),r.map(d=>jsxs("div",{style:{marginBottom:t?8:0,paddingTop:8,borderTop:"1px solid #e8eaed"},children:[jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[jsx("div",{style:ao(d.author||"U",28),children:getInitials(d.author||"U")}),jsxs("div",{style:{flex:1,minWidth:0},children:[jsx("div",{style:{fontSize:13,fontWeight:600,color:"#202124"},children:d.author||o("comments.unknown")}),jsx("div",{style:{fontSize:11,color:"#5f6368"},children:formatDate(d.date)})]})]}),jsx("div",{style:{fontSize:13,color:"#202124",lineHeight:"20px",marginTop:4,...t?{}:{overflow:"hidden",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical"}},children:getCommentText(d.content)})]},d.id))]})}var Bg={width:"100%",border:"1px solid #1a73e8",borderRadius:20,outline:"none",fontSize:14,padding:"8px 16px",fontFamily:"inherit",boxSizing:"border-box",color:"#202124"},Ng={width:"100%",border:"1px solid #dadce0",borderRadius:20,outline:"none",fontSize:14,padding:"8px 16px",fontFamily:"inherit",color:"#80868b",cursor:"text",backgroundColor:"#fff",boxSizing:"border-box"};function Mn({onSubmit:e}){let[t,o]=useState(false),[r,n]=useState(""),{t:d}=b();if(!t)return jsx("div",{onClick:i=>i.stopPropagation(),style:{marginTop:12},children:jsx("input",{readOnly:true,onMouseDown:i=>i.stopPropagation(),onClick:i=>{i.stopPropagation(),o(true);},placeholder:d("comments.replyPlaceholder"),style:Ng})});let s=r.trim();return jsxs("div",{onClick:i=>i.stopPropagation(),style:{marginTop:12},children:[jsx("input",{ref:i=>i?.focus({preventScroll:true}),type:"text",value:r,onChange:i=>n(i.target.value),onMouseDown:i=>i.stopPropagation(),onKeyDown:i=>{i.stopPropagation(),i.key==="Enter"&&(i.preventDefault(),s&&e(s),n(""),o(false)),i.key==="Escape"&&(o(false),n(""));},placeholder:d("comments.replyPlaceholder"),style:Bg}),jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:8},children:[jsx("button",{onClick:i=>{i.stopPropagation(),o(false),n("");},style:Pn,children:d("common.cancel")}),jsx("button",{onClick:i=>{i.stopPropagation(),s&&e(s),n(""),o(false);},disabled:!s,style:Tn(!!s),children:d("common.reply")})]})]})}var Dn=CARD_STYLE_COLLAPSED,Ln=CARD_STYLE_EXPANDED;function dl({comment:e,replies:t,isExpanded:o,onToggleExpand:r,measureRef:n,onReply:d,onResolve:s,onUnresolve:i,onDelete:u}){let[l,p]=useState(false),{t:f}=b();return jsxs("div",{ref:n,"data-comment-id":e.id,className:"docx-comment-card",onClick:r,onMouseDown:a=>a.stopPropagation(),style:{...o?Ln:Dn},children:[e.done&&jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",marginBottom:8,fontSize:11,fontWeight:500,color:"#188038",backgroundColor:"#e6f4ea",borderRadius:10},children:[jsx(b$1,{name:"check",size:12}),f("comments.resolved")]}),jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[jsx("div",{style:ao(e.author||"U"),children:getInitials(e.author||"U")}),jsxs("div",{style:{flex:1,minWidth:0},children:[jsx("div",{style:{fontSize:13,fontWeight:600,color:"#202124"},children:e.author||f("comments.unknown")}),jsx("div",{style:{fontSize:11,color:"#5f6368"},children:formatDate(e.date)})]}),o&&jsxs("div",{style:{display:"flex",gap:4,marginTop:2,position:"relative"},children:[jsx("button",{onClick:a=>{a.stopPropagation(),e.done?i?.(e.id):s?.(e.id);},title:e.done?f("comments.reopen"):f("comments.resolve"),style:io,children:jsx(b$1,{name:e.done?"undo":"check",size:20})}),jsx("button",{onClick:a=>{a.stopPropagation(),p(!l);},title:f("comments.moreOptions"),style:io,children:jsx(b$1,{name:"more_vert",size:20})}),l&&jsx("div",{onClick:a=>a.stopPropagation(),onMouseDown:a=>a.stopPropagation(),style:{position:"absolute",top:32,right:0,background:"#fff",borderRadius:8,boxShadow:"0 2px 6px rgba(60,64,67,0.3), 0 1px 2px rgba(60,64,67,0.15)",zIndex:100,minWidth:120,padding:"4px 0"},children:jsx("button",{onClick:()=>{p(false),u?.(e.id);},style:{display:"block",width:"100%",padding:"8px 16px",border:"none",background:"none",textAlign:"left",fontSize:14,color:"#202124",cursor:"pointer",fontFamily:"inherit"},onMouseOver:a=>{a.target.style.backgroundColor="#f1f3f4";},onMouseOut:a=>{a.target.style.backgroundColor="transparent";},children:f("common.delete")})})]})]}),jsx("div",{style:{fontSize:13,color:"#202124",lineHeight:"20px",marginTop:6},children:getCommentText(e.content)}),jsx(kn,{replies:t,isExpanded:o}),o&&!e.done&&jsx(Mn,{onSubmit:a=>d?.(e.id,a)})]})}function pl({change:e,replies:t,isExpanded:o,onToggleExpand:r,measureRef:n,onAccept:d,onReject:s,onReply:i}){let{t:u}=b(),l=e.author||u("trackedChanges.unknown");return jsxs("div",{ref:n,className:"docx-tracked-change-card",onClick:()=>r(),onMouseDown:p=>p.stopPropagation(),style:o?Ln:Dn,children:[jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[jsx("div",{style:ao(l),children:getInitials(l)}),jsxs("div",{style:{flex:1,minWidth:0},children:[jsx("div",{style:{fontSize:13,fontWeight:600,color:"#202124"},children:l}),e.date&&jsx("div",{style:{fontSize:11,color:"#5f6368"},children:formatDate(e.date)})]}),o&&jsxs("div",{style:{display:"flex",gap:4,marginTop:2},children:[jsx("button",{onClick:p=>{p.stopPropagation(),d?.(e.from,e.to);},title:u("common.accept"),style:io,children:jsx(b$1,{name:"check",size:20})}),jsx("button",{onClick:p=>{p.stopPropagation(),s?.(e.from,e.to);},title:u("common.reject"),style:io,children:jsx(b$1,{name:"close",size:20})})]})]}),jsx("div",{style:{fontSize:13,lineHeight:"20px",color:"#202124",marginTop:6},children:e.type==="replacement"?jsxs(Fragment,{children:[u("trackedChanges.replaced")," ",jsxs("span",{style:{color:"#c5221f",fontWeight:500},children:['"',truncateText(e.deletedText||""),'"']})," ",u("trackedChanges.with")," ",jsxs("span",{style:{color:"#137333",fontWeight:500},children:['"',truncateText(e.text),'"']})]}):jsxs(Fragment,{children:[e.type==="insertion"?u("trackedChanges.added"):u("trackedChanges.deleted")," ",jsxs("span",{style:{color:e.type==="insertion"?"#137333":"#c5221f",fontWeight:500},children:['"',truncateText(e.text),'"']})]})}),jsx(kn,{replies:t,isExpanded:o}),o&&jsx(Mn,{onSubmit:p=>i?.(e.revisionId,p)})]})}function fl({measureRef:e,onSubmit:t,onCancel:o}){let[r,n]=useState(""),{t:d}=b(),s=()=>{r.trim()&&(t?.(r.trim()),n(""));};return jsxs("div",{ref:e,onMouseDown:i=>i.stopPropagation(),style:{padding:12,borderRadius:8,backgroundColor:"#fff",boxShadow:"0 1px 3px rgba(60,64,67,0.3), 0 4px 8px 3px rgba(60,64,67,0.15)",zIndex:50},children:[jsx("textarea",{ref:i=>i?.focus({preventScroll:true}),value:r,onChange:i=>n(i.target.value),onMouseDown:i=>i.stopPropagation(),onKeyDown:i=>{i.stopPropagation(),i.key==="Enter"&&!i.shiftKey&&(i.preventDefault(),s()),i.key==="Escape"&&(o?.(),n(""));},placeholder:d("comments.addComment"),style:{width:"100%",border:"1px solid #1a73e8",borderRadius:20,outline:"none",resize:"none",fontSize:14,lineHeight:"20px",padding:"8px 16px",fontFamily:"inherit",minHeight:40,boxSizing:"border-box",color:"#202124"}}),jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:8},children:[jsx("button",{onClick:()=>{o?.(),n("");},style:Pn,children:d("common.cancel")}),jsx("button",{onClick:s,disabled:!r.trim(),style:Tn(!!r.trim()),children:d("common.comment")})]})]})}function hl({comment:e,measureRef:t,onToggleExpand:o}){return jsx("div",{ref:t,"data-comment-id":e.id,"data-comment-resolved":"true",onClick:o,onMouseDown:r=>r.stopPropagation(),style:{display:"inline-flex",alignItems:"center",cursor:"pointer",color:"#5f6368",padding:2},onMouseOver:r=>{r.currentTarget.style.opacity="0.7";},onMouseOut:r=>{r.currentTarget.style.opacity="1";},children:jsx(b$1,{name:"chat_bubble_check",size:20})})}function bl({comments:e,trackedChanges:t,callbacks:o,showResolved:r=false,isAddingComment:n=false,addCommentYPosition:d=null}){let s=useMemo(()=>e.filter(u=>!(u.parentId!=null||u.done&&!r)),[e,r]),i=useMemo(()=>{let u=new Map;for(let l of e)if(l.parentId!=null){let p=u.get(l.parentId);p?p.push(l):u.set(l.parentId,[l]);}return u},[e]);return useMemo(()=>{let u=[];n&&d!=null&&u.push({id:"new-comment-input",anchorPos:0,fixedY:d,priority:-1e3,isTemporary:true,estimatedHeight:120,render:l=>jsx(fl,{...l,onSubmit:o.onAddComment,onCancel:o.onCancelAddComment})});for(let l of s){let p=i.get(l.id)??[];u.push({id:`comment-${l.id}`,anchorPos:0,anchorKey:`comment-${l.id}`,priority:0,estimatedHeight:l.done?28:80,render:f=>l.done&&!f.isExpanded?jsx(hl,{...f,comment:l}):jsx(dl,{...f,comment:l,replies:p,onReply:o.onCommentReply,onResolve:o.onCommentResolve,onUnresolve:o.onCommentUnresolve,onDelete:o.onCommentDelete})});}return t.forEach((l,p)=>{let f=i.get(l.revisionId)??[];u.push({id:`tc-${l.revisionId}-${p}`,anchorPos:l.from,anchorKey:`revision-${l.revisionId}`,priority:1,estimatedHeight:80,render:a=>jsx(pl,{...a,change:l,replies:f,onAccept:o.onAcceptChange,onReject:o.onRejectChange,onReply:o.onTrackedChangeReply})});}),u},[s,t,i,o,n,d])}function yl(e){return useMemo(()=>extractTrackedChanges(e),[e])}function vl(){let{t:e}=b();return jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",gap:"20px",color:"var(--doc-text-muted)"},children:[jsx("div",{style:{width:"36px",height:"36px",border:"3px solid var(--doc-border)",borderTopColor:"var(--doc-primary)",borderRadius:"50%",animation:"docx-spin 0.8s linear infinite"}}),jsx("style",{children:`
|
|
30
30
|
@keyframes docx-spin {
|
|
31
31
|
to { transform: rotate(360deg); }
|
|
32
32
|
}
|
|
33
|
-
`}),jsx("div",{style:{fontSize:"14px"},children:e("errors.loadingDocument")})]})}function Rl(){let{t:e}=b();return jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",color:"var(--doc-text-placeholder)"},children:[jsxs("svg",{width:"64",height:"64",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),jsx("polyline",{points:"14 2 14 8 20 8"})]}),jsx("div",{style:{marginTop:"16px"},children:e("errors.noDocumentLoaded")})]})}function Pl({message:e}){let{t}=b();return jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",padding:"20px",textAlign:"center"},children:[jsx("div",{style:{color:"var(--doc-error)",marginBottom:"16px"},children:jsxs("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsx("circle",{cx:"12",cy:"12",r:"10"}),jsx("path",{d:"M12 8v4M12 16v.01"})]})}),jsx("h3",{style:{color:"var(--doc-error)",marginBottom:"8px"},children:t("errors.failedToLoad")}),jsx("p",{style:{color:"var(--doc-text-muted)",maxWidth:"400px"},children:e})]})}var Fr=forwardRef(function({documentBuffer:t,document:o,onSave:r,author:n="User",onChange:c$1,onSelectionChange:s,onError:i,onFontsLoaded:d,theme:l,showToolbar:p=true,showZoomControl:f=true,showMarginGuides:a=false,marginGuideColor:C,showRuler:m$1=false,rulerUnit:h="inch",initialZoom:g$1=1,readOnly:S=false,disableFindReplaceShortcuts:b=false,toolbarExtra:u,className:v="",style:x,placeholder:y,loadingIndicator:w,showOutline:P=false,showOutlineButton:R=true,fontFamilies:E,printOptions:T,onPrint:I,onCopy:k,onCut:F,onPaste:B,mode:A,onModeChange:j,onCommentAdd:_,onCommentResolve:V,onCommentDelete:oe,onCommentReply:ie,comments:Q,onCommentsChange:ae,externalPlugins:ne,externalContent:ge=false,onEditorViewReady:he,onRenderedDomContextReady:J,pluginOverlays:D,pluginSidebarItems:L,pluginRenderedDomContext:z,renderLogo:W,documentName:H,onDocumentNameChange:U,documentNameEditable:q=true,renderTitleBarRight:re,i18n:Z,agentPanel:te},G){let[O,xe]=useState({isLoading:!!t&&!ge,parseError:null,zoom:g$1,selectionFormatting:{},paragraphIndentLeft:0,paragraphIndentRight:0,paragraphFirstLineIndent:0,paragraphHangingIndent:false,paragraphTabs:null,pmTableContext:null,pmImageContext:null}),[ce,Ne]=useState(null),[fe,ve]=useState(false),[Re,ye]=useState(false),[De,Ee]=useState(null),se=useRef(null),{comments:Ie,setComments:Te,isAddingComment:kt,setIsAddingComment:Ge,isAddingCommentRef:nt,commentSelectionRange:ft,setCommentSelectionRange:Ke,addCommentYPosition:Mt,setAddCommentYPosition:je,floatingCommentBtn:Kt,setFloatingCommentBtn:Xe,cleanOrphanedCommentsTimerRef:rt,cleanOrphanedComments:Dt}=Wi({commentsProp:Q,onCommentDelete:oe,onCommentsChange:ae,pagedEditorRef:se}),[it,Fe]=useState(null),{entries:Le,commentToRevision:Ft}=xl(it),[so,gt]=useState(tn),[jt,pe]=useState(A??"editing"),be=A??jt,ke=M=>{A||pe(M),j?.(M);},He=S||be==="viewing",[Xt,lo]=useState(false),qe=te?.open!==void 0,Se=te?qe?!!te.open:Xt:false,ht=useCallback(M=>{te?.onOpenChange?.(M),qe||lo(M);},[te,qe]),Lt=useRef(new Set),qt=useRef(new Set),$=g(o||null,{maxEntries:100,groupingInterval:500,enableKeyboardShortcuts:true}),ue=useMemo(()=>{let M=new ExtensionManager(createStarterKit());return M.buildSchema(),M.initializeRuntime(),M},[]),Ht=useMemo(()=>createSuggestionModePlugin(be==="suggesting",n),[]),Hn=useMemo(()=>[Ht,...ne??[]],[Ht,ne]),Lo=useRef(null),co=useRef(null),Ho=useRef(null),Lr=useRef(null),Ao=useRef(null),Zt=useRef(null),{showOutline:Hr,setShowOutline:Ar,showOutlineRef:El,outlineHeadings:Il,setHeadingInfos:An,toolbarHeight:Or,toolbarRefCallback:kl,editorScrollLeft:Br}=ai({showOutlineProp:P,pagedEditorRef:se,scrollContainerRef:Zt,isLoading:O.isLoading}),uo=useRef($.state);uo.current=$.state;let zr=useRef({style:"single",size:4,color:{rgb:"000000"}}),Nr=useRef(null),Oo=useCallback(M=>{let N=Nr.current;if(N&&N.styles===M)return N.resolver;let K=createStyleResolver(M);return Nr.current={styles:M,resolver:K},K},[]),{getActiveEditorView:at,focusActiveEditor:At,undoActiveEditor:Ml,redoActiveEditor:Dl}=ji({hfEditPosition:ce,hfEditorRef:Lo,pagedEditorRef:se}),po=b$2(),Bo=m(),_r=useRef(false),Wr=useRef(false),{resetForNewDocument:Fl}=Ys({commentsLoadedRef:_r,trackedChangesLoadedRef:Wr,setComments:Te,setHeadingInfos:An,setShowCommentsSidebar:ye,setIsAddingComment:Ge,setCommentSelectionRange:Ke,setAddCommentYPosition:je,setFloatingCommentBtn:Xe,setHfEditPosition:Ne,setHfEditIsFirstPage:ve,setAnchorPositions:gt,clearFindReplaceMatches:useCallback(()=>po.setMatches([],0),[po]),cleanOrphanedCommentsTimerRef:rt}),{loadParsedDocument:Ll,loadBuffer:Vr}=Mi({documentBuffer:t,initialDocument:o,externalContent:ge,history:$,agentRef:co,pagedEditorRef:se,setLoadingState:useCallback(M=>{xe(N=>({...N,isLoading:M.isLoading,parseError:M.parseError}));},[]),setComments:Te,setShowCommentsSidebar:ye,onError:i,resetForNewDocument:Fl,commentsLoadedRef:_r}),{imageInputRef:Hl,docxInputRef:Al,handleSave:Ol,handleDirectPrint:Ur,handleDownloadDocument:Bl,handleOpenDocument:zl,handleDocxFileChange:Nl,handleInsertImageClick:_l,handleImageFileChange:Wl}=ci({agentRef:co,pagedEditorRef:se,containerRef:Ho,comments:Ie,documentName:H,onSave:r,onError:i,onPrint:I,onDocumentNameChange:U,loadBuffer:Vr,getActiveEditorView:at,focusActiveEditor:At});useEffect(()=>{if(O.isLoading||!$.state)return;let M=se.current?.getView();M&&Fe(M.state);},[O.isLoading,$.state]),Ui({commentToRevision:Ft,setComments:Te,pmState:it,isLoading:O.isLoading,trackedChangesCount:Le.length,setShowCommentsSidebar:ye,trackedChangesLoadedRef:Wr}),useEffect(()=>onFontsLoaded(()=>{d?.();}),[d]),useEffect(()=>{let M=se.current?.getView();M&&setSuggestionMode(be==="suggesting",M.state,M.dispatch,n);},[be,n]);let zo=useCallback(M=>($.push(M),M),[$]),No=useCallback(M=>{zo(M),c$1?.(M);for(let K of Lt.current)try{K(M);}catch(me){console.error("contentChange subscriber threw:",me);}if(El.current){let K=se.current?.getView();K&&An(collectHeadings(K.state.doc));}let N=se.current?.getView();N&&Fe(N.state),rt.current&&clearTimeout(rt.current),rt.current=setTimeout(Dt,300);},[c$1,zo,Dt]),{recomputeFloatingCommentBtn:Vl}=Ki({pagedEditorRef:se,scrollContainerRef:Zt,editorContentRef:Ao,isAddingCommentRef:nt,setFloatingCommentBtn:Xe,readOnly:He,isLoading:O.isLoading,zoom:O.zoom}),{handleSelectionChange:_o}=Yi({getActiveEditorView:at,lastSelectionRef:Lr,borderSpecRef:zr,theme:l,historyStateRef:uo,getCachedStyleResolver:Oo,setFloatingCommentBtn:Xe,applySelectionDelta:useCallback(M=>xe(N=>({...N,...M})),[]),recomputeFloatingCommentBtn:Vl,onSelectionChange:s,selectionChangeSubscribersRef:qt}),$r=c({document:$.state,onChange:No,onSelectionChange:M=>{}});si({pagedEditorRef:se,disableFindReplaceShortcuts:b,findReplace:po,hyperlinkDialog:Bo,tableSelection:$r});let Ul=useCallback(()=>{Ar(M=>{if(!M){let N=se.current?.getView();N&&An(collectHeadings(N.state.doc));}return !M});},[]),$l=useCallback(M=>{se.current?.scrollToPosition(M),se.current?.setSelection(M+1),se.current?.focus();},[]),{imagePositionOpen:Yl,setImagePositionOpen:Gl,imagePropsOpen:Kl,setImagePropsOpen:jl,footnotePropsOpen:Xl,setFootnotePropsOpen:ql,handleImageWrapType:Zl,handleImageTransform:Ql,handleApplyImagePosition:Jl,handleOpenImageProperties:Yr,handleApplyImageProperties:ec,handleApplyFootnoteProperties:tc}=Ci({document:$.state,pmImageContext:O.pmImageContext,zoom:O.zoom,getActiveEditorView:at,focusActiveEditor:At,pushDocument:zo}),{tablePropsOpen:oc,setTablePropsOpen:nc,splitCellDialogState:rc,openSplitCellDialog:ic,handleTableAction:ac,handleSplitCellDialogClose:sc,handleSplitCellDialogApply:lc}=Ei({getActiveEditorView:at,focusActiveEditor:At,tableSelection:$r,borderSpecRef:zr,historyStateRef:uo,getCachedStyleResolver:Oo}),{handleFormat:cc,handleInsertTable:dc,handleInsertPageBreak:uc,handleInsertTOC:pc}=vi({getActiveEditorView:at,focusActiveEditor:At,pagedEditorRef:se,lastSelectionRef:Lr,hyperlinkDialog:Bo,historyStateRef:uo,getCachedStyleResolver:Oo}),mc=useCallback(M=>{xe(N=>({...N,zoom:M}));},[]),{hyperlinkPopupData:fc,handleHyperlinkSubmit:gc,handleHyperlinkRemove:hc,handleHyperlinkClick:bc,handleHyperlinkPopupNavigate:yc,handleHyperlinkPopupCopy:vc,handleHyperlinkPopupEdit:Cc,handleHyperlinkPopupRemove:xc,handleHyperlinkPopupClose:Sc}=fi({hyperlinkDialog:Bo,getActiveEditorView:at,focusActiveEditor:At}),{contextMenu:Rc,imageContextMenu:Pc,handleEditorContextMenu:Tc,handleContextMenu:wc,handleContextMenuClose:Ec,handleImageWrapApply:Ic,imageContextMenuTextActions:kc,contextMenuItems:Mc,handleContextMenuAction:Dc}=Ni({getActiveEditorView:at,focusActiveEditor:At,openSplitCellDialog:ic,scrollContainerRef:Zt,editorContentRef:Ao,i18n:Z,onAddComment:useCallback(({from:M,to:N,yPos:K})=>{Ke({from:M,to:N}),je(K),ye(true),Ge(true),Xe(null);},[])}),{showPageSetup:Fc,setShowPageSetup:Lc,handleOpenPageSetup:Hc,handleLeftMarginChange:Ac,handleRightMarginChange:Oc,handleTopMarginChange:Bc,handleBottomMarginChange:zc,handlePageSetupApply:Nc,handleIndentLeftChange:_c,handleIndentRightChange:Wc,handleFirstLineIndentChange:Vc,handleTabStopRemove:Uc}=ui({document:$.state,readOnly:He,handleDocumentChange:No,getActiveEditorView:at}),{scrollPageInfo:Gr,setScrollPageInfo:$c}=Xi({scrollContainerRef:Zt,pagedEditorRef:se}),Yc=useCallback(M=>{i?.(M);},[i]),{findResultRef:Gc,handleFind:Kc,handleFindNext:jc,handleFindPrevious:Xc,handleReplace:qc,handleReplaceAll:Zc}=hi({document:$.state,containerRef:Ho,findReplace:po,handleDocumentChange:No});Pi({ref:G,agentRef:co,document:$.state,historyStateRef:uo,pagedEditorRef:se,handleSave:Ol,handleDirectPrint:Ur,zoom:O.zoom,setZoom:M=>xe(N=>({...N,zoom:M})),scrollPageInfo:Gr,loadParsedDocument:Ll,loadBuffer:Vr,comments:Ie,setComments:Te,setShowCommentsSidebar:ye,contentChangeSubscribersRef:Lt,selectionChangeSubscribersRef:qt,getCachedStyleResolver:Oo});let On=useMemo(()=>xi($.state),[$.state]),Kr=$.state?.package.document?.finalSectionProperties,{headerContent:Qc,footerContent:Jc,firstPageHeaderContent:ed,firstPageFooterContent:td,handleHeaderFooterDoubleClick:od,handleHeaderFooterSave:nd,handleBodyClick:rd,handleRemoveHeaderFooter:id,getHfTargetElement:ad}=Ii({document:$.state,pushDocument:zo,hfEditorRef:Lo,containerRef:Ho,initialSectionProperties:On,finalSectionProperties:Kr,hfEditPosition:ce,setHfEditPosition:Ne,hfEditIsFirstPage:fe,setHfEditIsFirstPage:ve}),Wo={display:"flex",flexDirection:"column",height:"100%",width:"100%",backgroundColor:"var(--doc-bg)",...x},sd={display:"flex",flex:1,minHeight:0,minWidth:0,flexDirection:"row"},Ze=useRef({});Ze.current={onCommentReply:(M,N)=>{let K=_t(N,n,M),me=Ie.find(Pe=>Pe.id===M);Te(Pe=>[...Pe,K]),me&&ie?.(K,me);},onCommentResolve:M=>{let N=Ie.find(K=>K.id===M);Te(K=>K.map(me=>me.id===M?{...me,done:true}:me)),De===`comment-${M}`&&Ee(null),N&&V?.({...N,done:true});},onCommentUnresolve:M=>{Te(N=>N.map(K=>K.id===M?{...K,done:void 0}:K));},onCommentDelete:M=>{let N=Ie.find(me=>me.id===M);Te(me=>me.filter(Pe=>Pe.id!==M&&Pe.parentId!==M));let K=se.current?.getView();if(K){let me=K.state.schema.marks.comment?.create({commentId:M});if(me){let Pe=K.state.tr.removeMark(0,K.state.doc.content.size,me);Pe.docChanged&&K.dispatch(Pe);}}N&&oe?.(N);},onAddComment:M=>{let N=_t(M,n),K=se.current?.getView();if(K&&ft){let{from:me,to:Pe}=ft,st=K.state.schema.marks.comment.create({commentId:ct}),Ot=K.state.schema.marks.comment.create({commentId:N.id}),Nn=K.state.tr.removeMark(me,Pe,st).addMark(me,Pe,Ot);K.dispatch(Nn);}Te(me=>[...me,N]),Ge(false),Ke(null),je(null),_?.(N);},onCancelAddComment:()=>{let M=se.current?.getView();if(M&&ft){let{from:N,to:K}=ft,me=M.state.schema.marks.comment.create({commentId:ct});M.dispatch(M.state.tr.removeMark(N,K,me));}Ge(false),Ke(null),je(null);},onAcceptChange:(M,N)=>{let K=se.current?.getView();K&&acceptChange(M,N)(K.state,K.dispatch);},onRejectChange:(M,N)=>{let K=se.current?.getView();K&&rejectChange(M,N)(K.state,K.dispatch);},onTrackedChangeReply:(M,N)=>{Te(K=>[...K,_t(N,n,M)]);}};let ld=useMemo(()=>({onCommentReply:(...M)=>Ze.current.onCommentReply?.(...M),onCommentResolve:(...M)=>Ze.current.onCommentResolve?.(...M),onCommentUnresolve:(...M)=>Ze.current.onCommentUnresolve?.(...M),onCommentDelete:(...M)=>Ze.current.onCommentDelete?.(...M),onAddComment:(...M)=>Ze.current.onAddComment?.(...M),onCancelAddComment:(...M)=>Ze.current.onCancelAddComment?.(...M),onAcceptChange:(...M)=>Ze.current.onAcceptChange?.(...M),onRejectChange:(...M)=>Ze.current.onRejectChange?.(...M),onTrackedChangeReply:(...M)=>Ze.current.onTrackedChangeReply?.(...M)}),[]),mo=Cl({comments:Ie,trackedChanges:Le,callbacks:ld,showResolved:Re,isAddingComment:Re?kt:false,addCommentYPosition:Mt}),jr=useMemo(()=>{let M=[];return Re&&M.push(...mo),L&&M.push(...L),M},[Re,mo,L]),Bn=useMemo(()=>{let M=new Map;return Le.forEach((N,K)=>{N.type==="replacement"&&N.insertionRevisionId!=null&&M.set(String(N.insertionRevisionId),`tc-${N.revisionId}-${K}`);}),M},[Le]),zn=jr.length>0,cd=2*(Hr?nl:R?rl:20)+816+(zn?SIDEBAR_DOCUMENT_SHIFT*2:0),Xr=$.state?.package?.document?.finalSectionProperties?.pageWidth,dd=Xr?Math.round(Xr/15):816,bt=useMemo(()=>{let M=new Set;for(let N of Ie)N.done&&N.parentId==null&&M.add(N.id);return M},[Ie]),ud=useCallback(()=>{let M=se.current?.getView();if(!M){_o(null);return}let N=extractSelectionState(M.state);_o(N);let K=M.state.selection.$from,me=[...M.state.storedMarks??[],...K.nodeAfter?.marks??[],...K.nodeBefore?.marks??[],...K.marks()],Pe=null;for(let st of me){if(st.type.name==="comment"&&st.attrs.commentId!=null){let Ot=st.attrs.commentId;if(bt.has(Ot))continue;Pe=`comment-${Ot}`;break}if((st.type.name==="insertion"||st.type.name==="deletion")&&st.attrs.revisionId!=null){let Ot=String(st.attrs.revisionId),Nn=`tc-${Ot}-`,Vo=mo.find(Uo=>Uo.id.startsWith(Nn));if(!Vo&&Bn){let Uo=Bn.get(Ot);Uo&&(Vo=mo.find(fd=>fd.id===Uo));}if(Vo){Pe=Vo.id;break}}}Pe&&ye(true),Ee(Pe);},[_o,bt,mo,Bn]),pd=useMemo(()=>{if(!De?.startsWith("comment-"))return bt;let M=parseInt(De.slice(8),10);if(isNaN(M)||!bt.has(M))return bt;let N=new Set(bt);return N.delete(M),N},[bt,De]),md={flex:1,minHeight:0,minWidth:0,overflow:"auto",position:"relative",overflowAnchor:"none"};return O.isLoading?jsx("div",{className:`ep-root docx-editor docx-editor-loading ${v}`,style:Wo,"data-testid":"docx-editor",children:w||jsx(Sl,{})}):O.parseError?jsx("div",{className:`ep-root docx-editor docx-editor-error ${v}`,style:Wo,"data-testid":"docx-editor",children:jsx(Pl,{message:O.parseError})}):$.state?jsx(dl,{i18n:Z,onEditorError:Yc,containerRef:Ho,scrollContainerRef:Zt,editorContentRef:Ao,className:v,containerStyle:Wo,mainContentStyle:sd,editorContainerStyle:md,showRuler:m$1,readOnlyProp:S,showOutline:Hr,showOutlineButton:R,sidebarOpen:zn,minLayoutWidth:cd,toolbarHeight:Or,editorScrollLeft:Br,expandedSidebarItem:De,trackedChanges:Le,onScrollContainerMouseDown:M=>{let N=M.target;N.closest(".paged-editor__pages")||N.closest(".docx-unified-sidebar")||N.closest(".docx-comment-margin-markers")||Ee(null);},onEditorBgMouseDown:M=>{M.target===M.currentTarget&&(M.preventDefault(),se.current?.focus());},onEditorContextMenu:Tc,horizontalRulerProps:{sectionProps:$.state?.package.document?.finalSectionProperties,zoom:O.zoom,unit:h,editable:!He,onLeftMarginChange:Ac,onRightMarginChange:Oc,indentLeft:O.paragraphIndentLeft,indentRight:O.paragraphIndentRight,onIndentLeftChange:_c,onIndentRightChange:Wc,firstLineIndent:O.paragraphFirstLineIndent,hangingIndent:O.paragraphHangingIndent,onFirstLineIndentChange:Vc,tabStops:O.paragraphTabs,onTabStopRemove:Uc},verticalRulerProps:{sectionProps:On,zoom:O.zoom,unit:h,editable:!He,onTopMarginChange:Bc,onBottomMarginChange:zc},outlineProps:{headings:Il,onHeadingClick:$l,onClose:()=>Ar(false),topOffset:Or,scrollLeft:Br},onToggleOutline:Ul,scrollPageInfo:Gr,agentPanel:te,agentPanelOpen:Se,onAgentPanelClose:()=>ht(false),toolbar:p&&!S?jsx(na,{toolbarRefCallback:kl,agentPanelOpen:Se,setAgentPanelOpen:ht,document:$.state,theme:l,pmState:it,selectionFormatting:O.selectionFormatting,tableContext:O.pmTableContext,imageContext:O.pmImageContext,readOnly:He,editingMode:be,setEditingMode:ke,setShowCommentsSidebar:ye,setExpandedSidebarItem:Ee,showCommentsSidebar:Re,agentPanel:te,renderLogo:W,documentName:H,onDocumentNameChange:U,documentNameEditable:q,renderTitleBarRight:re,toolbarExtra:u,fontFamilies:E,zoom:O.zoom,showZoomControl:f,onFormat:cc,onUndo:Ml,onRedo:Dl,onPrint:Ur,onOpen:zl,onSave:Bl,onZoomChange:mc,onRefocusEditor:At,onInsertTable:dc,onInsertImage:_l,onInsertPageBreak:uc,onInsertTOC:pc,onImageWrapType:Zl,onImageTransform:Ql,onOpenImageProperties:Yr,onPageSetup:Hc,onTableAction:ac}):null,pagedArea:jsx($s,{pagedEditorRef:se,hfEditorRef:Lo,scrollContainerRef:Zt,editorContentRef:Ao,document:$.state,theme:l,initialSectionProperties:On,finalSectionProperties:Kr,headerContent:Qc,footerContent:Jc,firstPageHeaderContent:ed,firstPageFooterContent:td,hfEditPosition:ce,setHfEditPosition:Ne,hfEditIsFirstPage:fe,onHeaderFooterDoubleClick:od,onHeaderFooterSave:nd,onRemoveHeaderFooter:id,onBodyClick:rd,getHfTargetElement:ad,zoom:O.zoom,readOnly:He,extensionManager:ue,externalPlugins:Hn,onDocumentChange:No,onSelectionChange:_o,onPagedSelectionChange:ud,onReady:M=>{let N=M.getView();N&&Fe(N.state);},onEditorViewReady:he,onRenderedDomContextReady:J,pluginOverlays:D,onHyperlinkClick:bc,hyperlinkPopupData:fc,onHyperlinkPopupNavigate:yc,onHyperlinkPopupCopy:vc,onHyperlinkPopupEdit:Cc,onHyperlinkPopupRemove:xc,onHyperlinkPopupClose:Sc,onContextMenu:wc,sidebarOpen:zn,sidebarItems:jr,anchorPositions:so,onAnchorPositionsChange:gt,pluginRenderedDomContext:z,pageWidthPx:dd,expandedSidebarItem:De,setExpandedSidebarItem:Ee,comments:Ie,resolvedCommentIds:bt,resolvedIdsForRender:pd,setShowCommentsSidebar:ye,onTotalPagesChange:M=>{$c(N=>N.totalPages===M?N:{...N,totalPages:M});},floatingCommentBtn:Kt,isAddingComment:kt,setCommentSelectionRange:Ke,setAddCommentYPosition:je,setIsAddingComment:Ge,setFloatingCommentBtn:Xe}),overlays:jsx(qi,{contextMenu:Rc,contextMenuItems:Mc,onContextMenuAction:Dc,onContextMenuClose:Ec,imageContextMenu:Pc,onImageWrapApply:Ic,imageContextMenuTextActions:kc,onOpenImageProperties:Yr,readOnly:He}),dialogs:jsx(Zi,{findReplace:po,findResultRef:Gc,onFind:Kc,onFindNext:jc,onFindPrevious:Xc,onReplace:qc,onReplaceAll:Zc,hyperlinkDialog:Bo,onHyperlinkSubmit:gc,onHyperlinkRemove:hc,tablePropsOpen:oc,onTablePropsClose:()=>nc(false),pmTableContext:O.pmTableContext,getActiveEditorView:at,splitCellDialogState:rc,onSplitCellDialogClose:sc,onSplitCellDialogApply:lc,imagePositionOpen:Yl,onImagePositionClose:()=>Gl(false),onApplyImagePosition:Jl,imagePropsOpen:Kl,onImagePropsClose:()=>jl(false),onApplyImageProperties:ec,pmImageContext:O.pmImageContext,showPageSetup:Fc,onPageSetupClose:()=>Lc(false),onPageSetupApply:Nc,document:$.state,footnotePropsOpen:Xl,onFootnotePropsClose:()=>ql(false),onApplyFootnoteProperties:tc}),fileInputs:jsxs(Fragment,{children:[jsx("input",{ref:Hl,type:"file",accept:"image/*",style:{display:"none"},onChange:Wl}),jsx("input",{ref:Al,type:"file",accept:".docx,application/vnd.openxmlformats-officedocument.wordprocessingml.document",style:{display:"none"},onChange:Nl})]})}):jsx("div",{className:`ep-root docx-editor docx-editor-empty ${v}`,style:Wo,"data-testid":"docx-editor",children:y||jsx(Rl,{})})});function sh(e,t,o={}){return new Promise((r,n)=>{let c=wl.createRef(),s=null;try{s=createRoot(t);}catch(p){n(p);return}let i={save:async()=>{let p=await(c.current?.save()??Promise.resolve(null));return p?new Blob([p],{type:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}):null},getDocument:()=>c.current?.getDocument()??null,focus:()=>c.current?.focus(),setZoom:p=>c.current?.setZoom(p),scrollToParaId:p=>c.current?.scrollToParaId(p)??false,scrollToPosition:p=>c.current?.scrollToPosition(p),destroy:()=>{s?.unmount(),s=null;}},d=false,l=wl.createElement(Fr,{...o,documentBuffer:e,onError:p=>{o.onError?.(p),d||(d=true,n(p));},onChange:p=>{o.onChange?.(p),d||(d=true,r(i));},ref:c});s.render(l);})}var HP="0.0.2";export{Fr as DocxEditor,HP as VERSION,sh as renderAsync};
|
|
33
|
+
`}),jsx("div",{style:{fontSize:"14px"},children:e("errors.loadingDocument")})]})}function Cl(){let{t:e}=b();return jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",color:"var(--doc-text-placeholder)"},children:[jsxs("svg",{width:"64",height:"64",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),jsx("polyline",{points:"14 2 14 8 20 8"})]}),jsx("div",{style:{marginTop:"16px"},children:e("errors.noDocumentLoaded")})]})}function Sl({message:e}){let{t}=b();return jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",padding:"20px",textAlign:"center"},children:[jsx("div",{style:{color:"var(--doc-error)",marginBottom:"16px"},children:jsxs("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsx("circle",{cx:"12",cy:"12",r:"10"}),jsx("path",{d:"M12 8v4M12 16v.01"})]})}),jsx("h3",{style:{color:"var(--doc-error)",marginBottom:"8px"},children:t("errors.failedToLoad")}),jsx("p",{style:{color:"var(--doc-text-muted)",maxWidth:"400px"},children:e})]})}var Dr=forwardRef(function({documentBuffer:t,document:o,onSave:r,author:n="User",onChange:d,onSelectionChange:s,onError:i,onFontsLoaded:u,theme:l,showToolbar:p=true,showZoomControl:f=true,showMarginGuides:a=false,marginGuideColor:S,showRuler:m$1=false,rulerUnit:g$1="inch",initialZoom:h=1,readOnly:R=false,disableFindReplaceShortcuts:b=false,toolbarExtra:c$1,className:v="",style:C,placeholder:y,loadingIndicator:w,showOutline:P=false,showOutlineButton:x=true,fontFamilies:E,printOptions:T,onPrint:I,onCopy:k,onCut:L,onPaste:B,mode:A,onModeChange:j,onCommentAdd:_,onCommentResolve:V,onCommentDelete:oe,onCommentReply:ie,comments:Q,onCommentsChange:ae,externalPlugins:ne,externalContent:ge=false,onEditorViewReady:he,onRenderedDomContextReady:J,pluginOverlays:D,pluginSidebarItems:H,pluginRenderedDomContext:N,renderLogo:W,documentName:F,onDocumentNameChange:U,documentNameEditable:q=true,renderTitleBarRight:re,i18n:Z,agentPanel:te},K){let[O,Se]=useState({isLoading:!!t&&!ge,parseError:null,zoom:h,selectionFormatting:{},paragraphIndentLeft:0,paragraphIndentRight:0,paragraphFirstLineIndent:0,paragraphHangingIndent:false,paragraphTabs:null,pmTableContext:null,pmImageContext:null}),[ce,Be]=useState(null),[fe,ye]=useState(false),[Te,ve]=useState(false),[Ee,De]=useState(null),se=useRef(null),{comments:Ie,setComments:ke,isAddingComment:It,setIsAddingComment:$e,isAddingCommentRef:Ge,commentSelectionRange:mt,setCommentSelectionRange:et,addCommentYPosition:kt,setAddCommentYPosition:Ke,floatingCommentBtn:jt,setFloatingCommentBtn:Ye,cleanOrphanedCommentsTimerRef:tt,cleanOrphanedComments:Mt}=_i({commentsProp:Q,onCommentDelete:oe,onCommentsChange:ae,pagedEditorRef:se}),[ot,ft]=useState(null),{entries:xe,commentToRevision:Xt}=yl(ot),[Dt,qt]=useState(tn),[Lt,Zt]=useState(A??"editing"),de=A??Lt,Re=M=>{A||Zt(M),j?.(M);},be=R||de==="viewing",[Ht,Qt]=useState(false),Ft=te?.open!==void 0,nt=te?Ft?!!te.open:Ht:false,Pe=useCallback(M=>{te?.onOpenChange?.(M),Ft||Qt(M);},[te,Ft]),gt=useRef(new Set),rt=useRef(new Set),$=g(o||null,{maxEntries:100,groupingInterval:500,enableKeyboardShortcuts:true}),pe=useMemo(()=>{let M=new ExtensionManager(createStarterKit());return M.buildSchema(),M.initializeRuntime(),M},[]),At=useMemo(()=>createSuggestionModePlugin(de==="suggesting",n),[]),Fn=useMemo(()=>[At,...ne??[]],[At,ne]),Ho=useRef(null),co=useRef(null),Fo=useRef(null),Lr=useRef(null),Ao=useRef(null),Jt=useRef(null),{showOutline:Hr,setShowOutline:Fr,showOutlineRef:Pl,outlineHeadings:Tl,setHeadingInfos:An,toolbarHeight:Ar,toolbarRefCallback:wl,editorScrollLeft:Or}=ii({showOutlineProp:P,pagedEditorRef:se,scrollContainerRef:Jt,isLoading:O.isLoading}),uo=useRef($.state);uo.current=$.state;let Br=useRef({style:"single",size:4,color:{rgb:"000000"}}),Nr=useRef(null),Oo=useCallback(M=>{let z=Nr.current;if(z&&z.styles===M)return z.resolver;let Y=createStyleResolver(M);return Nr.current={styles:M,resolver:Y},Y},[]),{getActiveEditorView:it,focusActiveEditor:Ot,undoActiveEditor:El,redoActiveEditor:Il}=Yi({hfEditPosition:ce,hfEditorRef:Ho,pagedEditorRef:se}),po=b$2(),Bo=m(),zr=useRef(false),_r=useRef(false),{resetForNewDocument:kl}=Vs({commentsLoadedRef:zr,trackedChangesLoadedRef:_r,setComments:ke,setHeadingInfos:An,setShowCommentsSidebar:ve,setIsAddingComment:$e,setCommentSelectionRange:et,setAddCommentYPosition:Ke,setFloatingCommentBtn:Ye,setHfEditPosition:Be,setHfEditIsFirstPage:ye,setAnchorPositions:qt,clearFindReplaceMatches:useCallback(()=>po.setMatches([],0),[po]),cleanOrphanedCommentsTimerRef:tt}),{loadParsedDocument:Ml,loadBuffer:Wr}=ki({documentBuffer:t,initialDocument:o,externalContent:ge,history:$,agentRef:co,pagedEditorRef:se,setLoadingState:useCallback(M=>{Se(z=>({...z,isLoading:M.isLoading,parseError:M.parseError}));},[]),setComments:ke,setShowCommentsSidebar:ve,onError:i,resetForNewDocument:kl,commentsLoadedRef:zr}),{imageInputRef:Dl,docxInputRef:Ll,handleSave:Hl,handleDirectPrint:Vr,handleDownloadDocument:Fl,handleOpenDocument:Al,handleDocxFileChange:Ol,handleInsertImageClick:Bl,handleImageFileChange:Nl}=li({agentRef:co,pagedEditorRef:se,containerRef:Fo,comments:Ie,documentName:F,onSave:r,onError:i,onPrint:I,onDocumentNameChange:U,loadBuffer:Wr,getActiveEditorView:it,focusActiveEditor:Ot});useEffect(()=>{if(O.isLoading||!$.state)return;let M=se.current?.getView();M&&ft(M.state);},[O.isLoading,$.state]),Vi({commentToRevision:Xt,setComments:ke,pmState:ot,isLoading:O.isLoading,trackedChangesCount:xe.length,setShowCommentsSidebar:ve,trackedChangesLoadedRef:_r}),useEffect(()=>onFontsLoaded(()=>{u?.();}),[u]),useEffect(()=>{let M=se.current?.getView();M&&setSuggestionMode(de==="suggesting",M.state,M.dispatch,n);},[de,n]);let No=useCallback(M=>($.push(M),M),[$]),zo=useCallback(M=>{No(M),d?.(M);for(let Y of gt.current)try{Y(M);}catch(me){console.error("contentChange subscriber threw:",me);}if(Pl.current){let Y=se.current?.getView();Y&&An(collectHeadings(Y.state.doc));}let z=se.current?.getView();z&&ft(z.state),tt.current&&clearTimeout(tt.current),tt.current=setTimeout(Mt,300);},[d,No,Mt]),{recomputeFloatingCommentBtn:zl}=Ki({pagedEditorRef:se,scrollContainerRef:Jt,editorContentRef:Ao,isAddingCommentRef:Ge,setFloatingCommentBtn:Ye,readOnly:be,isLoading:O.isLoading,zoom:O.zoom}),{handleSelectionChange:_o}=$i({getActiveEditorView:it,lastSelectionRef:Lr,borderSpecRef:Br,theme:l,historyStateRef:uo,getCachedStyleResolver:Oo,setFloatingCommentBtn:Ye,applySelectionDelta:useCallback(M=>Se(z=>({...z,...M})),[]),recomputeFloatingCommentBtn:zl,onSelectionChange:s,selectionChangeSubscribersRef:rt}),Ur=c({document:$.state,onChange:zo,onSelectionChange:M=>{}});ai({pagedEditorRef:se,disableFindReplaceShortcuts:b,findReplace:po,hyperlinkDialog:Bo,tableSelection:Ur});let _l=useCallback(()=>{Fr(M=>{if(!M){let z=se.current?.getView();z&&An(collectHeadings(z.state.doc));}return !M});},[]),Wl=useCallback(M=>{se.current?.scrollToPosition(M),se.current?.setSelection(M+1),se.current?.focus();},[]),{imagePositionOpen:Vl,setImagePositionOpen:Ul,imagePropsOpen:$l,setImagePropsOpen:Gl,footnotePropsOpen:Kl,setFootnotePropsOpen:Yl,handleImageWrapType:jl,handleImageTransform:Xl,handleApplyImagePosition:ql,handleOpenImageProperties:$r,handleApplyImageProperties:Zl,handleApplyFootnoteProperties:Ql}=vi({document:$.state,pmImageContext:O.pmImageContext,zoom:O.zoom,getActiveEditorView:it,focusActiveEditor:Ot,pushDocument:No}),{tablePropsOpen:Jl,setTablePropsOpen:ec,splitCellDialogState:tc,openSplitCellDialog:oc,handleTableAction:nc,handleSplitCellDialogClose:rc,handleSplitCellDialogApply:ic}=wi({getActiveEditorView:it,focusActiveEditor:Ot,tableSelection:Ur,borderSpecRef:Br,historyStateRef:uo,getCachedStyleResolver:Oo}),{handleFormat:ac,handleInsertTable:sc,handleInsertPageBreak:lc,handleInsertTOC:cc}=yi({getActiveEditorView:it,focusActiveEditor:Ot,pagedEditorRef:se,lastSelectionRef:Lr,hyperlinkDialog:Bo,historyStateRef:uo,getCachedStyleResolver:Oo}),dc=useCallback(M=>{Se(z=>({...z,zoom:M}));},[]),{hyperlinkPopupData:uc,handleHyperlinkSubmit:pc,handleHyperlinkRemove:mc,handleHyperlinkClick:fc,handleHyperlinkPopupNavigate:gc,handleHyperlinkPopupCopy:hc,handleHyperlinkPopupEdit:bc,handleHyperlinkPopupRemove:yc,handleHyperlinkPopupClose:vc}=mi({hyperlinkDialog:Bo,getActiveEditorView:it,focusActiveEditor:Ot}),{contextMenu:Cc,imageContextMenu:Sc,handleEditorContextMenu:xc,handleContextMenu:Rc,handleContextMenuClose:Pc,handleImageWrapApply:Tc,imageContextMenuTextActions:wc,contextMenuItems:Ec,handleContextMenuAction:Ic}=Ni({getActiveEditorView:it,focusActiveEditor:Ot,openSplitCellDialog:oc,scrollContainerRef:Jt,editorContentRef:Ao,i18n:Z,onAddComment:useCallback(({from:M,to:z,yPos:Y})=>{et({from:M,to:z}),Ke(Y),ve(true),$e(true),Ye(null);},[])}),{showPageSetup:kc,setShowPageSetup:Mc,handleOpenPageSetup:Dc,handleLeftMarginChange:Lc,handleRightMarginChange:Hc,handleTopMarginChange:Fc,handleBottomMarginChange:Ac,handlePageSetupApply:Oc,handleIndentLeftChange:Bc,handleIndentRightChange:Nc,handleFirstLineIndentChange:zc,handleTabStopRemove:_c}=di({document:$.state,readOnly:be,handleDocumentChange:zo,getActiveEditorView:it}),{scrollPageInfo:Gr,setScrollPageInfo:Wc}=ji({scrollContainerRef:Jt,pagedEditorRef:se}),Vc=useCallback(M=>{i?.(M);},[i]),{findResultRef:Uc,handleFind:$c,handleFindNext:Gc,handleFindPrevious:Kc,handleReplace:Yc,handleReplaceAll:jc}=gi({document:$.state,containerRef:Fo,findReplace:po,handleDocumentChange:zo});Ri({ref:K,agentRef:co,document:$.state,historyStateRef:uo,pagedEditorRef:se,handleSave:Hl,handleDirectPrint:Vr,zoom:O.zoom,setZoom:M=>Se(z=>({...z,zoom:M})),scrollPageInfo:Gr,loadParsedDocument:Ml,loadBuffer:Wr,comments:Ie,setComments:ke,setShowCommentsSidebar:ve,contentChangeSubscribersRef:gt,selectionChangeSubscribersRef:rt,getCachedStyleResolver:Oo});let On=useMemo(()=>Ci($.state),[$.state]),Kr=$.state?.package.document?.finalSectionProperties,{headerContent:Xc,footerContent:qc,firstPageHeaderContent:Zc,firstPageFooterContent:Qc,handleHeaderFooterDoubleClick:Jc,handleHeaderFooterSave:ed,handleBodyClick:td,handleRemoveHeaderFooter:od,getHfTargetElement:nd}=Ei({document:$.state,pushDocument:No,hfEditorRef:Ho,containerRef:Fo,initialSectionProperties:On,finalSectionProperties:Kr,hfEditPosition:ce,setHfEditPosition:Be,hfEditIsFirstPage:fe,setHfEditIsFirstPage:ye}),Wo={display:"flex",flexDirection:"column",height:"100%",width:"100%",backgroundColor:"var(--doc-bg)",...C},rd={display:"flex",flex:1,minHeight:0,minWidth:0,flexDirection:"row"},je=useRef({});je.current={onCommentReply:(M,z)=>{let Y=Wt(z,n,M),me=Ie.find(we=>we.id===M);ke(we=>[...we,Y]),me&&ie?.(Y,me);},onCommentResolve:M=>{let z=Ie.find(Y=>Y.id===M);ke(Y=>Y.map(me=>me.id===M?{...me,done:true}:me)),Ee===`comment-${M}`&&De(null),z&&V?.({...z,done:true});},onCommentUnresolve:M=>{ke(z=>z.map(Y=>Y.id===M?{...Y,done:void 0}:Y));},onCommentDelete:M=>{let z=Ie.find(me=>me.id===M);ke(me=>me.filter(we=>we.id!==M&&we.parentId!==M));let Y=se.current?.getView();if(Y){let me=Y.state.schema.marks.comment?.create({commentId:M});if(me){let we=Y.state.tr.removeMark(0,Y.state.doc.content.size,me);we.docChanged&&Y.dispatch(we);}}z&&oe?.(z);},onAddComment:M=>{let z=Wt(M,n),Y=se.current?.getView();if(Y&&mt){let{from:me,to:we}=mt,at=Y.state.schema.marks.comment.create({commentId:lt}),Bt=Y.state.schema.marks.comment.create({commentId:z.id}),zn=Y.state.tr.removeMark(me,we,at).addMark(me,we,Bt);Y.dispatch(zn);}ke(me=>[...me,z]),$e(false),et(null),Ke(null),_?.(z);},onCancelAddComment:()=>{let M=se.current?.getView();if(M&&mt){let{from:z,to:Y}=mt,me=M.state.schema.marks.comment.create({commentId:lt});M.dispatch(M.state.tr.removeMark(z,Y,me));}$e(false),et(null),Ke(null);},onAcceptChange:(M,z)=>{let Y=se.current?.getView();Y&&acceptChange(M,z)(Y.state,Y.dispatch);},onRejectChange:(M,z)=>{let Y=se.current?.getView();Y&&rejectChange(M,z)(Y.state,Y.dispatch);},onTrackedChangeReply:(M,z)=>{ke(Y=>[...Y,Wt(z,n,M)]);}};let id=useMemo(()=>({onCommentReply:(...M)=>je.current.onCommentReply?.(...M),onCommentResolve:(...M)=>je.current.onCommentResolve?.(...M),onCommentUnresolve:(...M)=>je.current.onCommentUnresolve?.(...M),onCommentDelete:(...M)=>je.current.onCommentDelete?.(...M),onAddComment:(...M)=>je.current.onAddComment?.(...M),onCancelAddComment:(...M)=>je.current.onCancelAddComment?.(...M),onAcceptChange:(...M)=>je.current.onAcceptChange?.(...M),onRejectChange:(...M)=>je.current.onRejectChange?.(...M),onTrackedChangeReply:(...M)=>je.current.onTrackedChangeReply?.(...M)}),[]),mo=bl({comments:Ie,trackedChanges:xe,callbacks:id,showResolved:Te,isAddingComment:Te?It:false,addCommentYPosition:kt}),Yr=useMemo(()=>{let M=[];return Te&&M.push(...mo),H&&M.push(...H),M},[Te,mo,H]),Bn=useMemo(()=>{let M=new Map;return xe.forEach((z,Y)=>{z.type==="replacement"&&z.insertionRevisionId!=null&&M.set(String(z.insertionRevisionId),`tc-${z.revisionId}-${Y}`);}),M},[xe]),Nn=Yr.length>0,ad=2*(Hr?el:x?tl:20)+816+(Nn?SIDEBAR_DOCUMENT_SHIFT*2:0),jr=$.state?.package?.document?.finalSectionProperties?.pageWidth,sd=jr?Math.round(jr/15):816,ht=useMemo(()=>{let M=new Set;for(let z of Ie)z.done&&z.parentId==null&&M.add(z.id);return M},[Ie]),ld=useCallback(()=>{let M=se.current?.getView();if(!M){_o(null);return}let z=extractSelectionState(M.state);_o(z);let Y=M.state.selection.$from,me=[...M.state.storedMarks??[],...Y.nodeAfter?.marks??[],...Y.nodeBefore?.marks??[],...Y.marks()],we=null;for(let at of me){if(at.type.name==="comment"&&at.attrs.commentId!=null){let Bt=at.attrs.commentId;if(ht.has(Bt))continue;we=`comment-${Bt}`;break}if((at.type.name==="insertion"||at.type.name==="deletion")&&at.attrs.revisionId!=null){let Bt=String(at.attrs.revisionId),zn=`tc-${Bt}-`,Vo=mo.find(Uo=>Uo.id.startsWith(zn));if(!Vo&&Bn){let Uo=Bn.get(Bt);Uo&&(Vo=mo.find(ud=>ud.id===Uo));}if(Vo){we=Vo.id;break}}}we&&ve(true),De(we);},[_o,ht,mo,Bn]),cd=useMemo(()=>{if(!Ee?.startsWith("comment-"))return ht;let M=parseInt(Ee.slice(8),10);if(isNaN(M)||!ht.has(M))return ht;let z=new Set(ht);return z.delete(M),z},[ht,Ee]),dd={flex:1,minHeight:0,minWidth:0,overflow:"auto",position:"relative",overflowAnchor:"none"};return O.isLoading?jsx("div",{className:`ep-root docx-editor docx-editor-loading ${v}`,style:Wo,"data-testid":"docx-editor",children:w||jsx(vl,{})}):O.parseError?jsx("div",{className:`ep-root docx-editor docx-editor-error ${v}`,style:Wo,"data-testid":"docx-editor",children:jsx(Sl,{message:O.parseError})}):$.state?jsx(sl,{i18n:Z,onEditorError:Vc,containerRef:Fo,scrollContainerRef:Jt,editorContentRef:Ao,className:v,containerStyle:Wo,mainContentStyle:rd,editorContainerStyle:dd,showRuler:m$1,readOnlyProp:R,showOutline:Hr,showOutlineButton:x,sidebarOpen:Nn,minLayoutWidth:ad,toolbarHeight:Ar,editorScrollLeft:Or,expandedSidebarItem:Ee,trackedChanges:xe,onScrollContainerMouseDown:M=>{let z=M.target;z.closest(".paged-editor__pages")||z.closest(".docx-unified-sidebar")||z.closest(".docx-comment-margin-markers")||De(null);},onEditorBgMouseDown:M=>{M.target===M.currentTarget&&(M.preventDefault(),se.current?.focus());},onEditorContextMenu:xc,horizontalRulerProps:{sectionProps:$.state?.package.document?.finalSectionProperties,zoom:O.zoom,unit:g$1,editable:!be,onLeftMarginChange:Lc,onRightMarginChange:Hc,indentLeft:O.paragraphIndentLeft,indentRight:O.paragraphIndentRight,onIndentLeftChange:Bc,onIndentRightChange:Nc,firstLineIndent:O.paragraphFirstLineIndent,hangingIndent:O.paragraphHangingIndent,onFirstLineIndentChange:zc,tabStops:O.paragraphTabs,onTabStopRemove:_c},verticalRulerProps:{sectionProps:On,zoom:O.zoom,unit:g$1,editable:!be,onTopMarginChange:Fc,onBottomMarginChange:Ac},outlineProps:{headings:Tl,onHeadingClick:Wl,onClose:()=>Fr(false),topOffset:Ar,scrollLeft:Or},onToggleOutline:_l,scrollPageInfo:Gr,agentPanel:te,agentPanelOpen:nt,onAgentPanelClose:()=>Pe(false),toolbar:p&&!R?jsx(oa,{toolbarRefCallback:wl,agentPanelOpen:nt,setAgentPanelOpen:Pe,document:$.state,theme:l,pmState:ot,selectionFormatting:O.selectionFormatting,tableContext:O.pmTableContext,imageContext:O.pmImageContext,readOnly:be,editingMode:de,setEditingMode:Re,setShowCommentsSidebar:ve,setExpandedSidebarItem:De,showCommentsSidebar:Te,agentPanel:te,renderLogo:W,documentName:F,onDocumentNameChange:U,documentNameEditable:q,renderTitleBarRight:re,toolbarExtra:c$1,fontFamilies:E,zoom:O.zoom,showZoomControl:f,onFormat:ac,onUndo:El,onRedo:Il,onPrint:Vr,onOpen:Al,onSave:Fl,onZoomChange:dc,onRefocusEditor:Ot,onInsertTable:sc,onInsertImage:Bl,onInsertPageBreak:lc,onInsertTOC:cc,onImageWrapType:jl,onImageTransform:Xl,onOpenImageProperties:$r,onPageSetup:Dc,onTableAction:nc}):null,pagedArea:jsx(Ws,{pagedEditorRef:se,hfEditorRef:Ho,scrollContainerRef:Jt,editorContentRef:Ao,document:$.state,theme:l,initialSectionProperties:On,finalSectionProperties:Kr,headerContent:Xc,footerContent:qc,firstPageHeaderContent:Zc,firstPageFooterContent:Qc,hfEditPosition:ce,setHfEditPosition:Be,hfEditIsFirstPage:fe,onHeaderFooterDoubleClick:Jc,onHeaderFooterSave:ed,onRemoveHeaderFooter:od,onBodyClick:td,getHfTargetElement:nd,zoom:O.zoom,readOnly:be,extensionManager:pe,externalPlugins:Fn,onDocumentChange:zo,onSelectionChange:_o,onPagedSelectionChange:ld,onReady:M=>{let z=M.getView();z&&ft(z.state);},onEditorViewReady:he,onRenderedDomContextReady:J,pluginOverlays:D,onHyperlinkClick:fc,hyperlinkPopupData:uc,onHyperlinkPopupNavigate:gc,onHyperlinkPopupCopy:hc,onHyperlinkPopupEdit:bc,onHyperlinkPopupRemove:yc,onHyperlinkPopupClose:vc,onContextMenu:Rc,sidebarOpen:Nn,sidebarItems:Yr,anchorPositions:Dt,onAnchorPositionsChange:qt,pluginRenderedDomContext:N,pageWidthPx:sd,expandedSidebarItem:Ee,setExpandedSidebarItem:De,comments:Ie,resolvedCommentIds:ht,resolvedIdsForRender:cd,setShowCommentsSidebar:ve,onTotalPagesChange:M=>{Wc(z=>z.totalPages===M?z:{...z,totalPages:M});},floatingCommentBtn:jt,isAddingComment:It,setCommentSelectionRange:et,setAddCommentYPosition:Ke,setIsAddingComment:$e,setFloatingCommentBtn:Ye}),overlays:jsx(Xi,{contextMenu:Cc,contextMenuItems:Ec,onContextMenuAction:Ic,onContextMenuClose:Pc,imageContextMenu:Sc,onImageWrapApply:Tc,imageContextMenuTextActions:wc,onOpenImageProperties:$r,readOnly:be}),dialogs:jsx(qi,{findReplace:po,findResultRef:Uc,onFind:$c,onFindNext:Gc,onFindPrevious:Kc,onReplace:Yc,onReplaceAll:jc,hyperlinkDialog:Bo,onHyperlinkSubmit:pc,onHyperlinkRemove:mc,tablePropsOpen:Jl,onTablePropsClose:()=>ec(false),pmTableContext:O.pmTableContext,getActiveEditorView:it,splitCellDialogState:tc,onSplitCellDialogClose:rc,onSplitCellDialogApply:ic,imagePositionOpen:Vl,onImagePositionClose:()=>Ul(false),onApplyImagePosition:ql,imagePropsOpen:$l,onImagePropsClose:()=>Gl(false),onApplyImageProperties:Zl,pmImageContext:O.pmImageContext,showPageSetup:kc,onPageSetupClose:()=>Mc(false),onPageSetupApply:Oc,document:$.state,footnotePropsOpen:Kl,onFootnotePropsClose:()=>Yl(false),onApplyFootnoteProperties:Ql}),fileInputs:jsxs(Fragment,{children:[jsx("input",{ref:Dl,type:"file",accept:"image/*",style:{display:"none"},onChange:Nl}),jsx("input",{ref:Ll,type:"file",accept:".docx,application/vnd.openxmlformats-officedocument.wordprocessingml.document",style:{display:"none"},onChange:Ol})]})}):jsx("div",{className:`ep-root docx-editor docx-editor-empty ${v}`,style:Wo,"data-testid":"docx-editor",children:y||jsx(Cl,{})})});function rh(e,t,o={}){return new Promise((r,n)=>{let d=Rl.createRef(),s=null;try{s=createRoot(t);}catch(p){n(p);return}let i={save:async()=>{let p=await(d.current?.save()??Promise.resolve(null));return p?new Blob([p],{type:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}):null},getDocument:()=>d.current?.getDocument()??null,focus:()=>d.current?.focus(),setZoom:p=>d.current?.setZoom(p),scrollToParaId:p=>d.current?.scrollToParaId(p)??false,scrollToPosition:p=>d.current?.scrollToPosition(p),destroy:()=>{s?.unmount(),s=null;}},u=false,l=Rl.createElement(Dr,{...o,documentBuffer:e,onError:p=>{o.onError?.(p),u||(u=true,n(p));},onChange:p=>{o.onChange?.(p),u||(u=true,r(i));},ref:d});s.render(l);})}var kP="0.0.2";export{Dr as DocxEditor,kP as VERSION,rh as renderAsync};
|