@docx-editor.dev/core 2.20.0 → 2.21.0
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 +11 -32
- package/dist/automation.cjs +1 -1
- package/dist/automation.d.ts +11 -10
- package/dist/automation.js +1 -1
- package/dist/binding.cjs +1 -1
- package/dist/binding.d.ts +9 -9
- package/dist/binding.js +1 -1
- package/dist/chunk-44LQJIKH.cjs +20 -0
- package/dist/chunk-4EHMMSFR.cjs +1 -0
- package/dist/{chunk-D2V4YBWJ.cjs → chunk-AFG7Q622.cjs} +1 -1
- package/dist/chunk-AJCCS53D.js +1 -0
- package/dist/{chunk-3EZO3O6I.js → chunk-AYMSP25Q.js} +3 -3
- package/dist/{chunk-44SIVFJT.cjs → chunk-B4KZSKF7.cjs} +5 -5
- package/dist/chunk-BDAY2ETZ.js +1 -0
- package/dist/chunk-BNZF6DYC.cjs +18 -0
- package/dist/chunk-BQXF2PFF.js +2 -0
- package/dist/chunk-GIHKVXEO.js +2 -0
- package/dist/chunk-ITNK6C5M.cjs +3 -0
- package/dist/chunk-MP3K4LC5.js +1 -0
- package/dist/chunk-MXOO7KRI.cjs +11 -0
- package/dist/chunk-NG6IQ4SI.js +11 -0
- package/dist/{chunk-2HQXLL5L.cjs → chunk-PYXMAUNR.cjs} +1 -1
- package/dist/chunk-Q2B6HX3R.js +1 -0
- package/dist/chunk-Q5JPPUNR.js +5 -0
- package/dist/chunk-S35UK656.cjs +2 -0
- package/dist/chunk-S6J4O5XP.js +1 -0
- package/dist/{chunk-GSEUM6AI.cjs → chunk-TE43S3LX.cjs} +1 -1
- package/dist/chunk-TKQH7BNE.cjs +1 -0
- package/dist/chunk-UKVVUHZL.cjs +1 -0
- package/dist/chunk-VH2DLEZK.js +20 -0
- package/dist/{chunk-OHVJYJOA.js → chunk-VUNFWXHF.js} +1 -1
- package/dist/{chunk-OA6LFCTG.cjs → chunk-WQFNWLNY.cjs} +3 -3
- package/dist/chunk-WZX4UGRQ.js +3 -0
- package/dist/{chunk-CAIWEQLC.js → chunk-X5QNSISI.js} +1 -1
- package/dist/chunk-XS4FOHH6.js +18 -0
- package/dist/{chunk-PIBYJZIH.cjs → chunk-XZY4Q6PJ.cjs} +1 -1
- package/dist/{chunk-WTILOUPG.cjs → chunk-Z2ETEZRU.cjs} +1 -1
- package/dist/collaboration/replication.cjs +1 -1
- package/dist/collaboration/replication.d.ts +13 -4
- package/dist/collaboration/replication.js +1 -1
- package/dist/collaboration.d.ts +4 -3
- package/dist/contracts/document.d.ts +3 -2
- package/dist/contracts/editor.cjs +1 -1
- package/dist/contracts/editor.d.ts +9 -9
- package/dist/contracts/editor.js +1 -1
- package/dist/contracts/interaction.d.ts +2 -2
- package/dist/contracts/modules.cjs +1 -1
- package/dist/contracts/modules.d.ts +9 -7
- package/dist/contracts/modules.js +1 -1
- package/dist/contracts/types.d.ts +2 -1
- package/dist/{custom-node-writes-piokwVR5.d.ts → custom-node-writes-05qS32px.d.ts} +2 -2
- package/dist/{document-protection-C6RvCHx-.d.ts → document-protection-Cr59VKLO.d.ts} +1 -1
- package/dist/{editor-BgtcHulQ.d.ts → editor-BsLSz_7y.d.ts} +28 -29
- package/dist/editor-scope-OHPwVQ5l.d.ts +84 -0
- package/dist/editor.cjs +1 -1
- package/dist/editor.css +1 -1
- package/dist/editor.d.ts +130 -27
- package/dist/editor.js +1 -1
- package/dist/export.cjs +2 -2
- package/dist/export.d.ts +13 -13
- package/dist/export.js +1 -1
- package/dist/{font-resolver-Bv2Z25-J.d.ts → font-resolver-CzwdBJDE.d.ts} +1 -1
- package/dist/{headless-document-view-DHKMN_3Y.d.ts → headless-document-view-B7nAiR7P.d.ts} +2 -2
- package/dist/{image-resources-C51LuAAu.d.ts → image-resources-C4ilLzog.d.ts} +1 -1
- package/dist/{index-3lr8xXF8.d.ts → index-zkvqBQ9o.d.ts} +117 -26
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +18 -18
- package/dist/index.js +1 -1
- package/dist/{layout-shaping-CKBUSaS7.d.ts → layout-shaping-BJKVTI6i.d.ts} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.d.ts +41 -18
- package/dist/layout.js +1 -1
- package/dist/{note-properties-CcXUgqr8.d.ts → note-properties-MNztEj5s.d.ts} +1 -1
- package/dist/{omml-equation-C5P6Ym3v.d.ts → omml-equation-CbnW9yXd.d.ts} +1 -1
- package/dist/output.cjs +1 -1
- package/dist/output.d.ts +8 -7
- package/dist/output.js +1 -1
- package/dist/{protocol-CsawNZkt.d.ts → protocol-Co_r0SZQ.d.ts} +2 -2
- package/dist/{review-paragraph-order-BCIqjopY.d.ts → review-paragraph-order-EFaU7TqH.d.ts} +1 -1
- package/dist/{revision-projection-BcRnC4Yj.d.ts → revision-projection-DEIvpxiq.d.ts} +16 -2
- package/dist/{semantic-cell-selection-R9wrenwR.d.ts → semantic-cell-selection-DXmfnDCw.d.ts} +9 -4
- package/dist/{semantic-interaction-B7beVwH7.d.ts → semantic-interaction-BLu3M6Nn.d.ts} +1 -1
- package/dist/{semantic-paint-CLvHwf8y.d.ts → semantic-paint-CPsihA6k.d.ts} +18 -2
- package/dist/{semantic-records-CbXwnS80.d.ts → semantic-records-CqD0b5Ex.d.ts} +146 -6
- package/dist/store.cjs +1 -1
- package/dist/store.d.ts +462 -427
- package/dist/store.js +1 -1
- package/dist/{note-lifecycle-D4AOFCAt.d.ts → tree-package-fragment-CwJDixNs.d.ts} +183 -143
- package/dist/{tree-session-contract-DTQxw2zL.d.ts → tree-session-contract-D9RRWE0C.d.ts} +8 -8
- package/dist/{types-barrel-CEOy-Jv0.d.ts → types-barrel-DLB11iSY.d.ts} +1470 -1426
- package/package.json +2 -2
- package/dist/chunk-2H4ABRMB.cjs +0 -20
- package/dist/chunk-6UCDHGXI.js +0 -1
- package/dist/chunk-7VMVDRRU.js +0 -2
- package/dist/chunk-CEXC2VHI.cjs +0 -1
- package/dist/chunk-CF3JR35B.js +0 -11
- package/dist/chunk-D5EHDHYV.js +0 -1
- package/dist/chunk-DGSJZMAE.cjs +0 -11
- package/dist/chunk-EHBPYFRE.js +0 -20
- package/dist/chunk-GOEBQ26R.js +0 -1
- package/dist/chunk-H6WDEAOJ.js +0 -18
- package/dist/chunk-I6LSEDUL.cjs +0 -18
- package/dist/chunk-IW35GWJN.js +0 -1
- package/dist/chunk-JRBGCIR2.js +0 -5
- package/dist/chunk-K5HIOS6J.cjs +0 -3
- package/dist/chunk-KLQXP27K.js +0 -3
- package/dist/chunk-MZFFU66H.cjs +0 -2
- package/dist/chunk-MZPNLIP3.js +0 -2
- package/dist/chunk-OHJQ7GPZ.cjs +0 -1
- package/dist/chunk-P4TGGDK3.js +0 -1
- package/dist/chunk-ZKWRCLT2.cjs +0 -1
- package/dist/editor-scope-DZJT4ukT.d.ts +0 -53
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var chunkGSEUM6AI_cjs=require('./chunk-GSEUM6AI.cjs'),chunkI6LSEDUL_cjs=require('./chunk-I6LSEDUL.cjs'),chunk2HQXLL5L_cjs=require('./chunk-2HQXLL5L.cjs'),chunkK5HIOS6J_cjs=require('./chunk-K5HIOS6J.cjs'),chunkDGSJZMAE_cjs=require('./chunk-DGSJZMAE.cjs');function ea(t){let e=[];for(let o of t.pages){let n=o.pageFieldSource?.pageNumber??o.index+1,i=chunkI6LSEDUL_cjs.gc(n,o.pageFieldSource?.format),s=l=>{for(let c of l)if(c.kind==="paragraph")for(let u of c.lines)e.push({...u.range,pageNumber:n,pageNumberText:i});else for(let u of c.rows)for(let m of u.cells)s(m.blocks);};s(o.fragments),o.header&&s(o.header.fragments),o.footer&&s(o.footer.fragments);for(let l of o.footnotes?.notes??[])s(l.fragments);for(let l of o.endnotes?.notes??[])s(l.fragments);}return {pageCount:t.pages.length,ranges:e}}function hi(t,e,o,n){if(!t||!Number.isInteger(t.pageCount)||t.pageCount<1)return null;let i=chunkDGSJZMAE_cjs.Ga(e,o);if(!i||i.kind!=="paragraph")return null;let s=chunkDGSJZMAE_cjs.Pe(i).find(c=>c.node.id===n);if(!s)return null;let l=t.ranges.find(c=>c.paragraphId===o&&c.start<=s.start&&c.end>s.start);return !l||!Number.isInteger(l.pageNumber)||l.pageNumber<1?null:{pageNumber:l.pageNumber,pageNumberText:l.pageNumberText,pageCount:t.pageCount}}function ki(t){return async e=>{let o=chunkGSEUM6AI_cjs.e(e,{measurer:t.measurer,producer:t.producer,displayMode:"proposed"});if(!o.ok)throw new Error("field pagination could not open the document");try{return ea(await o.session.layout())}finally{o.session.dispose();}}}var Se=Object.freeze(["default","first","even"]),Ft=Object.freeze({kind:"body"});function G(t){switch(t.kind){case "body":return "body";case "note":return `note:${t.noteKind}:${String(t.noteId)}`;default:return `${t.kind}:${String(t.sectionIndex)}:${t.variant}`}}function Oo(t){if(typeof t!="object"||t===null)return false;let e=t;return e.kind==="body"?true:e.kind==="note"?(e.noteKind==="footnote"||e.noteKind==="endnote")&&Number.isInteger(e.noteId):e.kind!=="header"&&e.kind!=="footer"?false:Number.isInteger(e.sectionIndex)&&e.sectionIndex>=0&&Se.includes(e.variant)}var Ai=["getTables","getTable","getTableRows","getTableCells","getTableCell","getTableCellProperties","getTableCellBody","getFields","getField","getInlinePictures","getInlinePicture","getChangeTrackingMode","getDocument","getBody","getParagraphs","getRange","getSpanParagraphs","getText","getSpanText","getParagraphId","search","getFont","getParagraphFormat","getStyle","getSections","getPageSetup","getFurniture","getNotes","getNoteBody","getNoteText","getNoteKind","getLists","getListId","getListById","getListParagraphs","getParagraphList","getListLevel","getHyperlink","getBookmarks","getBookmarkName","getBookmarkRange","getComments","getCommentReplies","getCommentId","getCommentAuthor","getCommentDate","getCommentText","getCommentRange","getCommentResolved","getRevisions","getRevisionType","getRevisionAuthor","getRevisionDate","getRevisionRange","getContentControls","getContentControlById","getContentControlsByTag","getContentControlsByTitle","getContentControlTag","getContentControlTitle","getContentControlFileId","getContentControlSubtype","getContentControlLock","getContentControlIsBound","getContentControlPlaceholderShown","getContentControlTemporary","getContentControlText","getContentControlParagraphs","getContentControlRange"],na=["insertTable","updateTable","updateTableCell","setInlinePicture","deleteInlinePicture","insertField","setFieldCode","deleteField","updateFieldResult","insertInlinePicture","insertBreak","setChangeTrackingMode","proposeInsertion","proposeDeletion","proposeReplacement","insertText","replaceSpan","replaceStoryBlocks","insertParagraph","splitParagraph","deleteParagraph","selectSpan","selectBookmark","setFont","setParagraphFormat","setStyle","setPageSetup","deleteNote","setListLevel","startNewList","attachToList","detachFromList","setListLevelFormat","insertListParagraph","setHyperlink","insertComment","setCommentResolved","replyToComment","deleteComment","acceptRevision","rejectRevision","resolveRevisionBatch","acceptAllRevisions","rejectAllRevisions","setContentControlValue","setContentControlProperties","deleteContentControl","insertContentControlText","insertContentControl","insertCustomNode"],oa=["resolveRevisionBatch","insertTable","insertInlinePicture","insertBreak","startNewList","deleteNote","insertComment","setCommentResolved","replyToComment","insertCustomNode"],ra=new Set(oa);function nn(t){return ra.has(t.op)||t.op==="updateTable"&&["addRows","addColumns","deleteRows","deleteColumns","delete"].includes(t.mutation.kind)}var aa=new Set(na);function Wt(t){return aa.has(t.op)}var ia=63360;function Tt(t){return Math.round(chunkDGSJZMAE_cjs.$e(chunkDGSJZMAE_cjs.Ze(t))*100)/100}function sa(t,e){if(typeof t!="number"||!Number.isFinite(t))return null;let o=chunkDGSJZMAE_cjs.af(chunkDGSJZMAE_cjs._e(t));return o>ia||o<0||o===0&&!e?null:o}var la=[["pageWidth","pageWidthTwips",false],["pageHeight","pageHeightTwips",false],["topMargin","marginTopTwips",true],["rightMargin","marginRightTwips",true],["bottomMargin","marginBottomTwips",true],["leftMargin","marginLeftTwips",true]];function Ro(t){if(typeof t!="object"||t===null)return {ok:false,reason:"that is not a page setup",detail:"not-an-object"};let e=t,o={},n=0;for(let[s,l,c]of la){let u=e[s];if(u===void 0)continue;let m=sa(u,c);if(m===null)return {ok:false,reason:`that is not a value for ${s}`,detail:String(u)};o[l]=m,n+=1;}let i=e.orientation;if(i!==void 0){if(i!=="portrait"&&i!=="landscape")return {ok:false,reason:"that is not an orientation",detail:String(i)};o.orientation=i,n+=1;}return n===0?{ok:false,reason:"that page setup names nothing to write",detail:"empty"}:{ok:true,value:o}}function da(t){let e=chunkDGSJZMAE_cjs.Gh(t),o=e.widthTwips>e.heightTwips?"landscape":"portrait";return Object.freeze({pageWidth:Tt(e.widthTwips),pageHeight:Tt(e.heightTwips),orientation:o,topMargin:Tt(e.topTwips),rightMargin:Tt(e.rightTwips),bottomMargin:Tt(e.bottomTwips),leftMargin:Tt(e.leftTwips),headerDistance:Tt(e.headerTwips),footerDistance:Tt(e.footerTwips),gutter:Tt(e.gutterTwips)})}function ua(t,e){if(!e)return null;let o=null,n=(i,s,l)=>{if(o!==null||i.kind==="textValue"||l>64)return;let c=i.kind==="paragraph"?i.id:s;if(i.id===e.id){o=c;return}for(let u of i.children)n(u,c,l+1);};return n(t.root,null,0),o}function So(t,e,o){let n=chunkDGSJZMAE_cjs.Md(e.root);return Object.freeze(n.map((i,s)=>{let l=o[s];return Object.freeze({index:s,markParagraphId:ua(e,i),pageSetup:da(i),titlePage:l?.titlePage??false,evenAndOddHeaders:l?.evenAndOddHeaders??false})}))}var ca=255,pa=Object.freeze({nameOf:()=>null,idOf:()=>null,defaultId:null,present:false});function Co(t){let e=chunkDGSJZMAE_cjs.kf(t);if(!e)return pa;let o=new Map,n=new Map,i=null;for(let s of chunkDGSJZMAE_cjs.jf(e).values())if(s.type==="paragraph"){if(o.set(s.styleId,s.name),s.name!==null){let l=s.name.trim().toLowerCase();n.has(l)||n.set(l,s.styleId);}s.isDefault&&i===null&&(i=s.styleId);}return Object.freeze({nameOf:s=>o.get(s)??null,idOf:s=>n.get(s.trim().toLowerCase())??null,defaultId:i,present:true})}function Ce(t,e,o){let n=chunkDGSJZMAE_cjs.Ga(t,e);if(!n||n.kind!=="paragraph")return null;let i=ma(chunkDGSJZMAE_cjs.Ne(chunkDGSJZMAE_cjs.Le(n),"pStyle"));return i!==null?o.nameOf(i):o.defaultId===null?null:o.nameOf(o.defaultId)}function ma(t){if(!t)return null;for(let e of t.attributes)if(e.localName==="val")return e.value;return null}function we(t,e){if(typeof t!="string"||t.trim().length===0)return {ok:false,detail:"style: not a name"};if(t.length>ca)return {ok:false,detail:"style: name too long"};if(!chunkDGSJZMAE_cjs.O(t))return {ok:false,detail:"style: not valid XML text"};if(!e.present)return {ok:false,detail:"style: this document defines no styles"};let o=e.idOf(t);return o===null?{ok:false,detail:"style: this document defines no paragraph style with that name"}:{ok:true,styleId:o}}function wo(t,e,o){return e>=o?null:{text:t.text.slice(e-t.rawStart,o-t.rawStart),rawStart:e,rawEnd:o}}function fa(t,e){let o=[],n=0;for(let i of t){for(;n<e.length&&e[n].end<=i.rawStart;)n+=1;let s=i.rawEnd-i.rawStart;if(i.text.length!==s){let u=e[n];(!u||u.start>=i.rawEnd)&&o.push(i);continue}let l=i.rawStart;for(;n<e.length;){let u=e[n];if(u.end<=l){n+=1;continue}if(u.start>=i.rawEnd)break;let m=wo(i,l,Math.min(u.start,i.rawEnd));if(m&&o.push(m),l=Math.max(l,u.end),u.end<=i.rawEnd&&(n+=1),l>=i.rawEnd)break}let c=wo(i,l,i.rawEnd);c&&o.push(c);}return o}function Te(t,e,o){if(o==="model")return chunk2HQXLL5L_cjs.b(e);let n=chunk2HQXLL5L_cjs.c(t,e,o);if(o==="allMarkup")return chunk2HQXLL5L_cjs.a(n);let i=ga(t);if(i.length===0)return chunk2HQXLL5L_cjs.a(n);let s=fa(n,i);return chunk2HQXLL5L_cjs.a(s)}function ga(t){let e=chunkDGSJZMAE_cjs.Re(t),o=[],n=(s,l)=>{if(!(l>64||s.kind==="textValue")){if(s.kind==="revisionInsert"||s.kind==="revisionMoveTo"){let c=e.spanOf(s);c&&c.end>c.start&&o.push({start:c.start,end:c.end});return}for(let c of s.children)n(c,l+1);}};n(t,0),o.sort((s,l)=>s.start-l.start||l.end-s.end);let i=[];for(let s of o){let l=i[i.length-1];l&&s.start<=l.end?l.end=Math.max(l.end,s.end):i.push({...s});}return i}var on="\r",ya=Object.freeze({nameOf:()=>null,idOf:()=>null,defaultId:null,present:false}),ha=Object.freeze([]),ka=Object.freeze([]),To=Object.freeze([]),ba=Object.freeze({package:null,body:null,story:()=>null,storyOf:()=>null,sections:()=>ka,furniture:()=>To,noteIds:()=>({ok:true,ids:No}),styles:()=>ya});function xa(t){return t.kind==="textValue"?ha:Object.freeze(t.children.filter(e=>e.kind!=="textValue").map(e=>{let o=[];chunkDGSJZMAE_cjs.Bd([e],o,0);let n=e.kind==="paragraph"?"paragraph":e.kind==="table"?"table":"other",i=e.kind==="paragraph"&&chunkDGSJZMAE_cjs.Ne(chunkDGSJZMAE_cjs.Le(e),"sectPr")!==void 0;return Object.freeze({id:e.id,kind:n,paragraphIds:Object.freeze(o.map(s=>s.id)),removable:n!=="other"&&!i})}))}function Ne(t,e,o,n,i){let s=chunkDGSJZMAE_cjs.Ad(n),l=Object.freeze(s.map(k=>k.id)),c=new Map,u=new Map;s.forEach((k,b)=>{c.set(k.id,b),u.set(k.id,k);});let m=new Map,A=k=>{if(!c.has(k))return null;let b=m.get(k);if(b!==void 0)return b;let v=chunkDGSJZMAE_cjs.ki(e,k)??"";return m.set(k,v),v},g=new Map,x=(k,b="allMarkup")=>{let v=u.get(k);if(!v||v.kind!=="paragraph")return null;let S=`${k}:${b}`,w=g.get(S);if(w)return w;let H=Te(v,A(k)??"",b);return g.set(S,H),H};return {story:t,part:e,root:n,scope:o,paragraphIds:l,blocks:xa(n),has:k=>c.has(k),indexOf:k=>c.get(k)??-1,paragraph(k){let b=u.get(k);return b?{nodeId:k,paraId:chunkDGSJZMAE_cjs.Eb(b),text:x(k)?.text??""}:null},node:k=>u.get(k)??null,rawText:A,paragraphText:(k,b)=>x(k,b)?.text??null,projectedText:x,text:k=>l.map(b=>x(b,k)?.text??"").join(on),styles:i}}function Ee(t,e){let o=Ne(t.story,t.part,t.scope,e,t.styles);return {...o,indexOf:n=>o.has(n)?t.indexOf(n):-1}}function ue(t){let e=t.parts.get(t.mainDocumentPart);if(!e)return ba;let o,n=()=>o??=Co(t),i,s=()=>i??=chunkDGSJZMAE_cjs.Od(t),l,c=new Map,u=new Map,m=b=>{let v=u.get(b);if(v)return v;let S=chunkDGSJZMAE_cjs.Pf(t,b);if(!S){let C={ok:true,ids:No};return u.set(b,C),C}let w=[],H=new Set,E=new Set,j=0,F=false;for(let C of S.root.children){if(chunkDGSJZMAE_cjs.gd(C)!==b)continue;if(j+=1,C.kind!=="note"){F=true;continue}if(!chunkDGSJZMAE_cjs.jd(C))continue;let D=chunkDGSJZMAE_cjs.hd(C);if(D===null){F=true;continue}H.has(D)?E.add(D):(H.add(D),w.push(D));}let K=j>chunkDGSJZMAE_cjs.qd?{ok:false,reason:"truncated"}:F?{ok:false,reason:"malformed"}:E.size>0?{ok:false,reason:"duplicates",duplicateIds:Object.freeze([...E])}:{ok:true,ids:Object.freeze(w)};return u.set(b,K),K},A=b=>{let v=s()[b.sectionIndex];return v?(b.kind==="header"?v.headers:v.footers).get(b.variant)??null:null},g=b=>{if(b.kind==="body"){let S=chunkDGSJZMAE_cjs.zd(e);return S?Ne(b,e,{kind:"body"},S,n):null}if(b.kind==="note"){let S=m(b.noteKind);if(!S.ok||!S.ids.includes(b.noteId))return null;let w=chunkDGSJZMAE_cjs.Pf(t,b.noteKind);if(!w)return null;let H=chunkDGSJZMAE_cjs.ud(w.root,b.noteId);return !H||!chunkDGSJZMAE_cjs.jd(H)?null:Ne(b,w,{kind:"notesPart",noteKind:b.noteKind},H,n)}let v=A(b);return v?Ne(b,v.part,{kind:"headerFooter",rId:v.rId},v.part.root,n):null},x=b=>{let v=G(b);if(c.has(v))return c.get(v)??null;let S=g(b);return c.set(v,S),S};return {package:t,get body(){return x(Ft)},story:x,storyOf:b=>{if(x(Ft)?.has(b))return Ft;for(let[S]of s().entries())for(let w of ["header","footer"])for(let H of Se){let E={kind:w,sectionIndex:S,variant:H};if(x(E)?.has(b))return E}for(let S of ["footnote","endnote"]){let w=m(S);if(w.ok)for(let H of w.ids){let E={kind:"note",noteKind:S,noteId:H};if(x(E)?.has(b))return E}}return null},sections:()=>l??=So(t,e,s()),furniture(b){let v=s()[b];if(!v)return To;let S=[];for(let w of ["header","footer"]){let H=w==="header"?v.headers:v.footers;for(let E of Se){let j=H.get(E);j&&S.push(Object.freeze({kind:w,variant:E,declared:!j.inherited}));}}return Object.freeze(S)},noteIds:m,styles:n}}var No=Object.freeze([]);function Eo(t,e,o){let n=i=>({state:o,step:{ok:false,error:{code:"unsupported-capability",message:i,detail:"changeTrackingMode"}}});return t.op==="getChangeTrackingMode"||t.op==="setChangeTrackingMode"?e?t.op==="getChangeTrackingMode"?{state:o,step:{ok:true,kind:"query",value:{kind:"text",text:o.mode}}}:t.mode!=="Off"&&t.mode!=="TrackMineOnly"?n("TrackAll requires shared tracking enforcement for every peer and is not supported"):t.mode==="TrackMineOnly"&&(typeof t.author!="string"||!t.author.trim()||!chunkDGSJZMAE_cjs.O(t.author))?n("TrackMineOnly requires a non-empty XML-safe runtime author"):{state:{mode:t.mode,...t.mode==="TrackMineOnly"?{author:t.author.trim()}:{}},step:{ok:true,kind:"query",value:{kind:"applied"}}}:n("this host does not support runtime-local change tracking"):o.mode==="Off"||rn(t)?null:n(`${t.op} does not support TrackMineOnly; no permanent edit was applied`)}function rn(t){return !Wt(t)||t.op==="setChangeTrackingMode"||t.op==="insertText"||t.op==="replaceSpan"&&!("body"in t.span)?true:["proposeInsertion","proposeDeletion","proposeReplacement","insertComment","replyToComment","deleteComment","setCommentResolved","acceptRevision","rejectRevision","resolveRevisionBatch","acceptAllRevisions","rejectAllRevisions","selectSpan","selectBookmark"].includes(t.op)}function Aa(){let t=globalThis.crypto,e=t?.getRandomValues;if(typeof e!="function")throw new Error("automation: no secure random source. globalThis.crypto.getRandomValues is required to scope document handles to one host.");let o=e.call(t,new Uint8Array(16)),n="";for(let i of o)n+=i.toString(16).padStart(2,"0");return n}function va(t){return typeof t=="object"&&t!==null&&"kind"in t&&"ref"in t}function Lo(){let t=new Map,e=new Map,o=new Map,n=new Map,i=Aa(),s=null,l=(u,m)=>{let A=(n.get(u)??0)+1;n.set(u,A);let g=`${u}:${i}:${String(A)}`;return t.set(g,m),Object.freeze({kind:u,ref:g})},c=(u,m,A)=>{let g=`${u}\0${m}`,x=o.get(g);if(x)return Object.freeze({kind:u,ref:x});let k=l(u,A);return o.set(g,k.ref),k};return {document(){return s??=l("document",{kind:"document"}),s},body(u,m){return c("body",`${G(u)}:${m??""}`,{kind:"body",story:u,...m?{rootNodeId:m}:{}})},table(u,m){return c("table",`${G(m)}:${u}`,{kind:"table",nodeId:u,story:m})},tableRow(u,m){return c("tableRow",`${G(m)}:${u}`,{kind:"tableRow",nodeId:u,story:m})},tableCell(u,m){return c("tableCell",`${G(m)}:${u}`,{kind:"tableCell",nodeId:u,story:m})},field(u,m,A){return c("field",`${G(A)}:${m}`,{kind:"field",paragraphId:u,fieldNodeId:m,story:A})},inlinePicture(u,m){return c("inlinePicture",`${G(m)}:${u}`,{kind:"inlinePicture",drawingNodeId:u,story:m})},paragraph(u,m){let A=e.get(u);if(A)return Object.freeze({kind:"paragraph",ref:A});let g=l("paragraph",{kind:"paragraph",paragraphId:u,story:m});return e.set(u,g.ref),g},section(u){return c("section",String(u),{kind:"section",index:u})},note(u,m){return c("note",`${u}:${String(m)}`,{kind:"note",noteKind:u,noteId:m})},comment(u,m){return c("comment",`${G(m)}\0${u}`,{kind:"comment",commentId:u,story:m})},revision(u,m){return c("revision",`${G(m)}\0${u}`,{kind:"revision",revisionId:u,story:m})},bookmark(u,m){return c("bookmark",`${G(m)}\0${u}`,{kind:"bookmark",name:u,story:m})},list(u,m){return c("list",`${G(m)}\0${u}`,{kind:"list",numId:u,story:m})},contentControl(u,m){return c("contentControl",`${G(m)}\0${u}`,{kind:"contentControl",nodeId:u,story:m})},retarget(u,m){let A=e.get(u);if(!A||u===m)return;let g=t.get(A);!g||g.kind!=="paragraph"||(e.delete(u),t.set(A,{kind:"paragraph",paragraphId:m,story:g.story}),e.has(m)||e.set(m,A));},resolve(u,m){if(!va(u)||u.kind!==m||typeof u.ref!="string")return null;let A=t.get(u.ref);return !A||A.kind!==m?null:A}}}function bt(t,e){return {ok:false,code:t,detail:e}}function xt(t){return {ok:true,value:t}}function rt(t,e,o,n){let i=o.resolve(t,e);if(!i||i.kind!=="body"&&i.kind!=="paragraph")return bt("invalid-handle",`not-a-${e}-handle`);let s=n.story(i.story);if(!s)return bt("invalid-handle",`no-such-story:${G(i.story)}`);if(i.kind==="body"&&i.rootNodeId){let l=chunkDGSJZMAE_cjs.Ga(s.part,i.rootNodeId);return !l||l.kind!=="tableCell"?bt("invalid-handle","cell no longer exists"):xt(Ee(s,l))}return xt(s)}function pt(t,e,o){let n=e.resolve(t,"paragraph");if(!n||n.kind!=="paragraph")return bt("invalid-handle","not-a-paragraph-handle");let i=o.story(n.story);if(!i)return bt("invalid-handle",`no-such-story:${G(n.story)}`);let s=i.indexOf(n.paragraphId);return s<0?bt("invalid-handle","paragraph-not-in-body"):xt({story:n.story,paragraphId:n.paragraphId,index:s,offset:0})}function Ia(t,e,o){let n=pt(t.paragraph,e,o);if(!n.ok)return n;let s=(o.story(n.value.story)?.rawText(n.value.paragraphId)??"").length,{offset:l}=t;return !Number.isInteger(l)||l<0||l>s?bt("invalid-offset",`offset ${String(l)} outside 0..${String(s)}`):xt({...n.value,offset:l})}function qt(t,e,o){if("paragraph"in t){if(!("at"in t))return Ia(t,e,o);let c=pt(t.paragraph,e,o);if(!c.ok||t.at==="start")return c;let m=(o.story(c.value.story)?.rawText(c.value.paragraphId)??"").length;return xt({...c.value,offset:m})}let n=rt(t.body,"body",e,o);if(!n.ok)return n;let i=n.value.paragraphIds;if(i.length===0)return bt("invalid-offset","empty-story");if(t.at==="start")return xt({story:n.value.story,paragraphId:i[0],index:n.value.indexOf(i[0]),offset:0});let s=i.length-1,l=i[s];return xt({story:n.value.story,paragraphId:l,index:n.value.indexOf(l),offset:(n.value.rawText(l)??"").length})}function Pa(t,e){return t.index<e.index||t.index===e.index&&t.offset<=e.offset}function Oa(t){let e=t.paragraphIds;if(e.length===0)return null;let o=e.length-1,n=e[o];return {start:{story:t.story,paragraphId:e[0],index:t.indexOf(e[0]),offset:0},end:{story:t.story,paragraphId:n,index:t.indexOf(n),offset:(t.rawText(n)??"").length}}}function z(t,e,o){if("body"in t){let s=rt(t.body,"body",e,o);return s.ok?xt(Oa(s.value)):s}if("paragraph"in t){let s=pt(t.paragraph,e,o);if(!s.ok)return s;let c=(o.story(s.value.story)?.rawText(s.value.paragraphId)??"").length;return xt({start:s.value,end:{...s.value,offset:c}})}let n=qt(t.start,e,o);if(!n.ok)return n;let i=qt(t.end,e,o);return i.ok?G(n.value.story)!==G(i.value.story)?bt("invalid-handle","span-crosses-stories"):Pa(n.value,i.value)?xt({start:n.value,end:i.value}):bt("invalid-offset","span-start-after-end"):i}function ot(t,e,o){if("body"in t)return rt(t.body,"body",e,o);if("paragraph"in t)return rt(t.paragraph,"paragraph",e,o);let n=t.start;return "paragraph"in n?rt(n.paragraph,"paragraph",e,o):rt(n.body,"body",e,o)}function Le(t,e,o){if("paragraph"in t)return pt(t.paragraph,e,o);let n=rt(t.body,"body",e,o);if(!n.ok)return n;let i=n.value.paragraphIds;if(i.length===0)return bt("invalid-offset","empty-story");let s=t.at==="first"?0:i.length-1;return xt({story:n.value.story,paragraphId:i[s],index:s,offset:0})}function At(t,e){if(!t)return [];let o=e.paragraphIds,n=o[t.start.index]===t.start.paragraphId?t.start.index:o.indexOf(t.start.paragraphId),i=o[t.end.index]===t.end.paragraphId?t.end.index:o.indexOf(t.end.paragraphId);return n<0||i<n?[]:o.slice(n,i+1)}function Ut(t,e){if(!t)return [];let o=At(t,e),n=o.length-1;return o.map((i,s)=>{let l=(e.rawText(i)??"").length,c=s===0?t.start.offset:0,u=s===n?t.end.offset:l;return {paragraphId:i,start:c,end:u,whole:c===0&&u===l}})}function Ho(t,e,o,n="allMarkup"){if(!t)return "";let i=At(t,e);return i.length===1?e.projectedText(t.start.paragraphId,n)?.sliceRaw(t.start.offset,t.end.offset)??"":i.map((s,l)=>{let c=e.projectedText(s,n);if(!c)return "";let u=(e.rawText(s)??"").length;return l===0?c.sliceRaw(t.start.offset,u):l===i.length-1?c.sliceRaw(0,t.end.offset):c.text}).join(o)}function Nt(t,e){return {start:{paragraph:e.paragraph(t.start.paragraphId,t.start.story),offset:t.start.offset},end:{paragraph:e.paragraph(t.end.paragraphId,t.end.story),offset:t.end.offset}}}function Ra(t){return t?.kind!=="paragraph"?false:t.children.every(e=>e.namespaceUri!==chunkDGSJZMAE_cjs.da?false:e.localName==="pPr"?true:e.kind==="run"&&e.children.every(o=>o.namespaceUri===chunkDGSJZMAE_cjs.da&&(o.localName==="rPr"||o.localName==="t"&&o.children.every(n=>n.kind==="textValue"))))}function an(t,e,o){return Ra(chunkDGSJZMAE_cjs.Ga(t,e))&&chunkDGSJZMAE_cjs.Th(t,e,o)===null}function Fo(t,e,o,n){let i=chunkDGSJZMAE_cjs.Th(t,e,o);if(!i)return null;let s=o===i.offset?chunkDGSJZMAE_cjs.ji(t,{op:"insertText",paragraphId:e,offset:o,text:n}):null;return s?.ok&&chunkDGSJZMAE_cjs.ki(s.part,e)?.slice(o,o+n.length)===n?null:{ok:false,error:{code:"unsupported-capability",message:"insert at the placeholder start or replace the complete prompt",detail:"placeholder-insertion-offset"}}}function Sa(t,e,o){return t.start===t.end?e<t.start&&t.start<o:e===o?t.start<e&&e<t.end:Math.max(t.start,e)<Math.min(t.end,o)}var He=class{#t=new Map;has(e){return this.#t.has(e)}append(e,o,n,i,s=false){let l=this.#t.get(e)??[];if(l.some(g=>Sa(g,o,n)))return null;let c=o,u=n;for(let g of l){let x=g.length-(g.end-g.start);g.end<=o&&!(s&&g.start===o&&g.end===o)&&(c+=x),(g.end<n||g.end===n&&g.start!==g.end)&&(u+=x);}o===n&&(u=c);let m=i-(n-o);for(let g of l)n<=g.start&&!(o===n&&g.start===g.end&&o===g.start&&!s)&&(g.result.start+=m,g.result.end+=m);let A={start:c,end:c+i};return l.push({start:o,end:n,length:i,result:A}),this.#t.set(e,l),{start:c,end:u,result:A}}};function Mo(t,e,o,n,i=false){let s=e.start.paragraphId,l=t.append(s,e.start.offset,e.end.offset,o.length,i);return l?{ok:true,kind:"command",ops:jo(s,l.start,l.end,o),story:e.start.story,answer:()=>({kind:"span",span:Nt({start:{...e.start,offset:l.result.start},end:{...e.start,offset:l.result.end}},n)})}:{ok:false,error:{code:"conflicting-operations",message:"text edits overlap in the batch snapshot",detail:s}}}function jo(t,e,o,n){let i=[];return n.length&&i.push({op:"insertText",paragraphId:t,offset:e,text:n,...o>e?{bias:"right"}:{}}),o>e&&i.push({op:"deleteText",paragraphId:t,start:e+n.length,end:o+n.length}),i}function Do(t,e,o,n){let i=e.start.paragraphId,s=chunkDGSJZMAE_cjs.ki(t,i),l=chunkDGSJZMAE_cjs.Th(t,i,e.start.offset),c=l&&o.length?[{op:"insertText",paragraphId:i,offset:e.start.offset,text:o,bias:"right"}]:jo(i,e.start.offset,e.end.offset,o),u=t;for(let A of c){let g=chunkDGSJZMAE_cjs.ji(u,A);if(!g.ok)return {ok:false,error:{code:"unsupported-content",message:"that replacement cannot preserve the targeted text safely",detail:g.reason}};u=g.part;}let m=chunkDGSJZMAE_cjs.ki(u,i);return s===null||m!==s.slice(0,e.start.offset)+o+s.slice(e.end.offset)?{ok:false,error:{code:l?"unsupported-capability":"unsupported-content",message:l?"replace the complete placeholder prompt to avoid consuming unrelated text":"that replacement changes the expected text positions",detail:i}}:{ok:true,kind:"command",ops:c,story:e.start.story,answer:()=>({kind:"span",span:Nt({start:e.start,end:{...e.start,offset:e.start.offset+o.length}},n)})}}var Bo=/\s/;function _o(t,e){let o=[],n=0;for(;n<t.length;){let i=null;for(let s of e){let l=t.indexOf(s,n);l<0||(!i||l<i.start||l===i.start&&s.length>i.length)&&(i={start:l,length:s.length});}if(!i)break;o.push(i),n=i.start+i.length;}return o}function Vo(t,e,o){let n=e[o]?.markParagraphId??null;if(n!==null)return n;let i=t.paragraphIds,s=i[i.length-1];return s===void 0||new Set(e.map(c=>c.markParagraphId).filter(c=>c!==null)).has(s)?null:s}function Wo(t,e){for(let o of [t.start,t.end]){let n=e.rawText(o.paragraphId);if(n===null||o.offset>n.length)return false}return true}function Uo(t,e,o){let n=e,i=o;for(;n<i&&Bo.test(t[n]);)n+=1;for(;i>n&&Bo.test(t[i-1]);)i-=1;return [n,i]}function Fe(t,e){let o=chunkDGSJZMAE_cjs.Ga(t,e);if(!o||o.kind!=="paragraph")return [];let n=chunkDGSJZMAE_cjs.Pe(o);return chunkDGSJZMAE_cjs.kh(o).flatMap(i=>{let s=n.find(c=>c.node.id===i.fieldNodeId),l=chunkDGSJZMAE_cjs.Ga(t,i.fieldNodeId);return s?[{paragraphId:e,fieldNodeId:i.fieldNodeId,code:i.instruction,start:s.start,end:s.end,rewritable:i.rewritable,locked:!!l&&chunkDGSJZMAE_cjs.he(l,"fldLock")===true}]:[]})}function $o(t){let o=chunkDGSJZMAE_cjs.xa(`<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body><w:p><w:fldSimple w:instr="${t==="PAGE"?"PAGE":"NUMPAGES"}"><w:r><w:t/></w:r></w:fldSimple></w:p></w:body></w:document>`,{name:"/word/document.xml",contentType:"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"});if(!o.ok)throw new Error("could not build a page field");let n=o.part.root.children.find(s=>s.kind==="body"),i=n&&chunkDGSJZMAE_cjs.Ad(n)[0];if(!i||i.kind!=="paragraph")throw new Error("could not build a page field paragraph");return i}var dt=(t,e="unsupported-content")=>({ok:false,error:{code:e,message:t}});function zo(t,e,o,n,i){if(t.op==="getFields"||t.op==="insertField"){let A=z(t.span,e,o),g=ot(t.span,e,o);if(!A.ok||!g.ok)return dt("that field range no longer exists","invalid-handle");let x=g.value;if(t.op==="getFields")return {ok:true,kind:"query",value:{kind:"handles",handles:Ut(A.value,x).flatMap(F=>Fe(x.part,F.paragraphId).filter(K=>K.start>=F.start&&K.end<=F.end)).map(F=>e.field(F.paragraphId,F.fieldNodeId,x.story))}};if(!A.value)return dt("insert a paragraph before inserting a field");if(t.removeFormatting!==void 0&&t.removeFormatting!==false)return dt("removeFormatting is not supported");if(t.text!==void 0&&typeof t.text!="string")return dt("field text must be a string");if(t.fieldType!==void 0&&typeof t.fieldType!="string")return dt("field type must be a string");let k=t.fieldType??"Empty",b=null;if(k==="Page"||k==="NumPages"){if(t.text!==void 0&&t.text.trim()!=="")return dt("field switches are not supported");b=k==="Page"?"PAGE":"NUMPAGES";}else k==="Empty"&&(b=chunkDGSJZMAE_cjs.nh(t.text??""));if(!b)return dt("only PAGE and NUMPAGES fields are supported");let{start:v,end:S}=A.value;if(!["Before","After","Start","End","Replace"].includes(t.location))return dt("unsupported field insert location");if(t.location==="Replace"&&v.paragraphId!==S.paragraphId)return dt("field replacement requires one paragraph");let w=t.location==="After"||t.location==="End"?S:v,H=n(x,w.paragraphId);if(H)return H;let E=[];return t.location==="Replace"&&S.offset>v.offset&&E.push({op:"deleteText",paragraphId:v.paragraphId,start:v.offset,end:S.offset}),E.push({op:"insertFragment",paragraphId:w.paragraphId,offset:w.offset,blocks:[$o(b)],lastMarkCovered:false}),{ok:true,kind:"command",story:x.story,ops:E,answer:j=>{let F=j.story(x.story)?.part,K=F&&Fe(F,w.paragraphId).find(C=>C.start===w.offset);if(!K)throw new Error("inserted field was not committed");return {kind:"handle",handle:e.field(w.paragraphId,K.fieldNodeId,x.story)}}}}let s=e.resolve(t.field,"field");if(!s||s.kind!=="field")return dt("that is not a field handle","invalid-handle");let l=o.story(s.story),c=l&&Fe(l.part,s.paragraphId).find(A=>A.fieldNodeId===s.fieldNodeId);if(!l||!l.has(s.paragraphId)||!c)return dt("that field no longer exists","invalid-handle");if(t.op==="getField")return {ok:true,kind:"query",value:{kind:"field",field:{code:c.code}}};if(c.locked||chunkDGSJZMAE_cjs.He(l.part,s.fieldNodeId).content||chunkDGSJZMAE_cjs.Je(l.part,s.fieldNodeId))return dt("field is protected");let u=n(l,s.paragraphId,t.op==="updateFieldResult");if(u)return u;let m=[];if(t.op==="deleteField")m.push({op:"deleteText",paragraphId:s.paragraphId,start:c.start,end:c.end});else if(t.op==="setFieldCode"){if(!chunkDGSJZMAE_cjs.nh(c.code)||!chunkDGSJZMAE_cjs.nh(t.code))return dt("only PAGE and NUMPAGES code writes are supported");m.push({op:"setFieldCode",paragraphId:s.paragraphId,fieldNodeId:s.fieldNodeId,code:t.code});}else {let A=chunkDGSJZMAE_cjs.nh(c.code);if(!A||!c.rewritable)return dt("this field result cannot be evaluated","unsupported-capability");let g=i?.(l.story,s.paragraphId,s.fieldNodeId);if(!g||!Number.isInteger(g.pageNumber)||g.pageNumber<1||!Number.isInteger(g.pageCount)||g.pageCount<1)return dt("field update requires actual semantic pagination","unsupported-capability");let x=A==="PAGE"?g.pageNumberText??String(g.pageNumber):String(g.pageCount);m.push({op:"refreshFieldResults",updates:[{paragraphId:s.paragraphId,fieldNodeId:s.fieldNodeId,text:x}]});}return {ok:true,kind:"command",story:l.story,ops:m,answer:()=>({kind:"applied"})}}var it=(t,e)=>({ok:false,error:{code:t,message:e,detail:e}}),$t=t=>({ok:true,kind:"query",value:t}),Ca=new Set(["getTables","getTable","getTableRows","getTableCells","getTableCell","getTableCellProperties","getTableCellBody","updateTable","updateTableCell","insertTable"]);function ce(t){let e=new Set,o=[t];for(;o.length;){let n=o.pop();n.kind==="paragraph"&&e.add(n.id),n.kind!=="textValue"&&o.push(...n.children);}return e}function Ko(t,e){let o=ce(t);return [...ce(e)].filter(n=>!o.has(n)).length}function wa(t,e){let o=[{node:t}];for(;o.length;){let{node:n,table:i}=o.pop();if(n.id===e)return i;if(n.kind==="textValue")continue;let s=n.kind==="table"?n:i;for(let l of n.children)o.push({node:l,table:s});}}function Go(t){let e=t.package&&chunkDGSJZMAE_cjs.kf(t.package);return e?[...chunkDGSJZMAE_cjs.jf(e).values()].filter(o=>o.type==="table"):[]}function Xo(t,e){if(!Ca.has(t.op))return null;let{handles:o,reads:n}=e;if(t.op==="getTables"||t.op==="insertTable"){let g=t.op==="getTables"?t.scope:t.span,x=ot(g,o,n);if(!x.ok)return it(x.code,x.detail);let k=z(g,o,n);if(!k.ok)return it(k.code,k.detail);let b=x.value;if(t.op==="getTables"){let E=k.value,j=chunkDGSJZMAE_cjs.li(b.root).filter(F=>{if("body"in g)return true;if(!E)return false;let K=[...ce(F)].sort((Z,et)=>b.indexOf(Z)-b.indexOf(et)),C=K[0],D=K[K.length-1];return !C||!D?false:b.indexOf(C)>=E.start.index&&b.indexOf(D)<=E.end.index});return $t({kind:"handles",handles:j.map(F=>o.table(F.id,b.story))})}if(!k.value)return it("invalid-offset","empty-table-insertion-range");if(!["Before","After"].includes(t.location))return it("unsupported-content","table-insertion-location");let v=t.location==="Before"?k.value.start:k.value.end,S=chunkDGSJZMAE_cjs.pi(b,v.paragraphId,v.offset,t.rowCount,t.columnCount,t.values);if(!S.ok)return it("unsupported-content",S.reason);let w=e.admitWrite(b,Ko(b.part.root,S.resultPart.root),[v.paragraphId]);if(w)return w;let H=new Set(chunkDGSJZMAE_cjs.li(b.root).map(E=>E.id));return {ok:true,kind:"command",story:b.story,ops:[{op:"authorTable",action:{kind:"insert",paragraphId:v.paragraphId,offset:v.offset,rowCount:t.rowCount,columnCount:t.columnCount,...t.values?{values:t.values}:{}}}],answer:E=>{let j=E.story(b.story),F=j&&chunkDGSJZMAE_cjs.li(j.root).find(K=>!H.has(K.id));return F?{kind:"handle",handle:o.table(F.id,b.story)}:{kind:"applied"}}}}let i=t.op==="getTableCells"?"tableRow":"cell"in t?"tableCell":"table",s=t.op==="getTableCells"?t.row:"cell"in t?t.cell:"table"in t?t.table:{kind:"document",ref:""},l=o.resolve(s,i);if(!l||!("nodeId"in l)||!("story"in l))return it("invalid-handle","unknown-table-object");let c=n.story(l.story);if(!c)return it("invalid-handle","missing-table-story");let u=chunkDGSJZMAE_cjs.Ga(c.part,l.nodeId);if(!u||u.kind!==i)return it("invalid-handle","deleted-table-object");let m=i==="table"?u:wa(c.root,l.nodeId);if(!m)return it("invalid-handle","missing-parent-table");let A=chunkDGSJZMAE_cjs.mi(c,m.id);if(!A)return it("unsupported-content","unsupported-table-topology");switch(t.op){case "getTable":return $t({kind:"table",table:{values:A.values,headerRowCount:A.headerRowCount,rowCount:A.rowIds.length,columnCount:A.columnCount,style:Go(n).find(g=>g.styleId===A.styleId)?.name??""}});case "getTableRows":return $t({kind:"handles",handles:A.rowIds.map(g=>o.tableRow(g,c.story))});case "getTableCells":{let g=A.rowIds.indexOf(l.nodeId);return $t({kind:"handles",handles:(A.cellIds[g]??[]).map(x=>o.tableCell(x,c.story))})}case "getTableCell":{if(!Number.isInteger(t.rowIndex)||!Number.isInteger(t.cellIndex))return it("invalid-offset","invalid-cell-index");let g=A.cellIds[t.rowIndex]?.[t.cellIndex];return g?$t({kind:"handle",handle:o.tableCell(g,c.story)}):it("invalid-handle","cell-not-found")}case "getTableCellBody":return $t({kind:"handle",handle:o.body(c.story,l.nodeId)});case "getTableCellProperties":{let g=chunkDGSJZMAE_cjs.ni(c,m.id,l.nodeId);return g?$t({kind:"tableCell",cell:{value:g.value,columnWidth:g.columnWidth,shadingColor:g.shadingColor,verticalAlignment:g.verticalAlignment}}):it("invalid-handle","cell-not-found")}case "updateTable":case "updateTableCell":{let g=t.op==="updateTable"?t.mutation:{...t.properties,kind:"cell",cellId:l.nodeId};if(g.kind==="properties"&&g.styleId!==void 0){let v=g.styleId;if(typeof v!="string"||v.trim().length===0)return it("unsupported-content","invalid-table-style-name");let S=Go(n).find(w=>w.name?.trim().toLowerCase()===v.trim().toLowerCase());if(!S)return it("unsupported-content","table-style-not-defined");g={...g,styleId:S.styleId};}let x=chunkDGSJZMAE_cjs.oi(c,m.id,g);if(!x.ok)return it("unsupported-content",x.reason);let k=e.admitWrite(c,Ko(c.part.root,x.resultPart.root),g.kind==="values"?[...ce(m)]:g.kind==="cell"&&g.value!==void 0?[...ce(u)]:[]);if(k)return k;let b=new Set(A.rowIds);return {ok:true,kind:"command",story:c.story,ops:[{op:"authorTable",action:{kind:"existing",tableId:m.id,mutation:g}}],answer:v=>{if(g.kind!=="addRows")return {kind:"applied"};let S=v.story(c.story);return {kind:"handles",handles:((S&&chunkDGSJZMAE_cjs.mi(S,m.id))?.rowIds??[]).filter(H=>!b.has(H)).map(H=>o.tableRow(H,c.story))}}}}default:return it("unsupported-content","unknown-table-operation")}}var Yo=t=>({ok:false,error:{code:"unsupported-content",message:t}});function Ta(t){if(t.op==="getText")return t.target;if("body"in t)return t.body;if(t.op==="insertText"&&"body"in t.at)return t.at.body;if(t.op==="replaceSpan"&&"body"in t.span)return t.span.body;if(t.op==="insertParagraph"&&"body"in t.anchor)return t.anchor.body}function Jo(t,e,o){let n=Ta(t);if(!n)return null;let i=e.handles.resolve(n,"body");if(!i||i.kind!=="body"||i.story.kind!=="header"&&i.story.kind!=="footer")return null;let s=i.story,l=e.reads.package;if(!l||e.reads.story(s))return null;if(!e.reads.sections()[s.sectionIndex])return Yo("that section no longer exists");if(t.op==="getText")return {ok:true,kind:"query",value:{kind:"text",text:""}};if(t.op==="getParagraphs"||t.op==="getLists")return {ok:true,kind:"query",value:{kind:"handles",handles:[]}};if(t.op!=="insertText"&&t.op!=="replaceSpan"&&t.op!=="insertParagraph")return null;let c=m=>{let A=chunkDGSJZMAE_cjs.yf(m,{op:"createHeaderFooter",sectionIndex:s.sectionIndex,kind:s.kind,variant:s.variant,...s.variant==="first"?{titlePage:true}:{},...s.variant==="even"?{evenAndOddHeaders:true}:{}});if(!A.ok||!A.createdPartName)return null;let g=ue(A.package),x=o(g),k=x.plan(t);if(!k.ok||k.kind!=="command"||k.relate||k.lifecycle||k.packageEdits?.length)return null;let b=A.package.parts.get(A.createdPartName);if(!b)return null;for(let S of k.ops){let w=chunkDGSJZMAE_cjs.ji(b,S);if(!w.ok)return null;b=w.part;}let v=chunkDGSJZMAE_cjs.fc(A.package,b);return x.settle(ue(v)).ok?{pkg:v,planner:x,step:k}:null},u=c(l);return u?{ok:true,kind:"command",story:{kind:"body"},ops:[],solitary:true,packageEdits:[m=>{let A=c(m);if(!A)throw new Error("header/footer creation changed during transaction");return u=A,A.pkg}],answer:m=>u.step.answer(m)}:Yo("cannot create this header or footer with that content")}var Na=20*1024*1024;function Ea(t){if(typeof t!="string"||t.length===0||t.length>Math.ceil(Na/3)*4||t.length%4!==0)return null;let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=t.endsWith("==")?2:t.endsWith("=")?1:0,n=new Uint8Array(t.length/4*3-o),i=0;for(let s=0;s<t.length;s+=4){let l=s+4===t.length,c=l?4-o:4,u=[0,0,0,0];for(let A=0;A<c;A++){let g=e.indexOf(t[s+A]);if(g<0)return null;u[A]=g;}if(l&&(o===2&&(u[1]&15)!==0||o===1&&(u[2]&3)!==0))return null;let m=u[0]<<18|u[1]<<12|u[2]<<6|u[3];i<n.length&&(n[i++]=m>>>16),i<n.length&&(n[i++]=m>>>8),i<n.length&&(n[i++]=m);}return n}function Qo(t,e,o,n,i){let s=Ea(i);if(!s)return {ok:false,detail:"picture: invalid or oversized base64 (20 MiB maximum)"};let l=chunkDGSJZMAE_cjs.tb(s);if(l!=="image/png"&&l!=="image/jpeg")return {ok:false,detail:"picture: only PNG and JPEG are supported"};if(!La(s,l))return {ok:false,detail:"picture: truncated raster container"};let c=chunkDGSJZMAE_cjs.yb(s,l);if(!c||c.pixelWidth*c.pixelHeight>4e7)return {ok:false,detail:"picture: invalid or oversized raster dimensions"};let u=c.pixelWidth*72/(c.dpiX??96),m=c.pixelHeight*72/(c.dpiY??96),A=chunkDGSJZMAE_cjs.Zb(u),g=chunkDGSJZMAE_cjs.Zb(m);if(A===null||g===null)return {ok:false,detail:"picture: invalid physical dimensions"};let x=chunkDGSJZMAE_cjs.Wb(t,e,{bytes:s,mime:l});if(!x.ok)return {ok:false,detail:`picture: ${x.reason}`};let k=chunkDGSJZMAE_cjs._b({docPrId:x.docPrId,lockAspectRatio:true,relationshipId:x.relationshipId,extentEmu:{cx:A,cy:g}});return {ok:true,docPrId:x.docPrId,ops:[{op:"insertDrawing",paragraphId:o,offset:n,drawing:k}],packageEdits:[b=>{let v=chunkDGSJZMAE_cjs.Wb(b,e,{bytes:s,mime:l});if(!v.ok||v.relationshipId!==x.relationshipId||v.docPrId!==x.docPrId||v.partName!==x.partName)throw new Error("picture allocation changed during the batch");return v.pkg}]}}function Zo(t,e){return chunkDGSJZMAE_cjs.mb(t).find(o=>o.drawingNodeId===e&&o.kind==="inline"&&o.picture!==null)??null}function qo(t){return {width:t.extentEmu.cx/chunkDGSJZMAE_cjs.Yb,height:t.extentEmu.cy/chunkDGSJZMAE_cjs.Yb,lockAspectRatio:t.locks.changeAspect,altTextDescription:t.description}}function tr(t,e){let o=new Set(chunkDGSJZMAE_cjs.mb(t).filter(i=>i.kind==="inline"&&i.picture!==null).map(i=>i.drawingNodeId)),n=[];for(let i of e){let s=chunkDGSJZMAE_cjs.Ga(t,i.paragraphId);if(!(!s||s.kind!=="paragraph"))for(let l of chunkDGSJZMAE_cjs.Pe(s))l.start>=i.start&&l.end<=i.end&&o.has(l.node.id)&&n.push(l.node.id);}return n}function er(t,e){let o=[],n=t.drawingNodeId;if(e.lockAspectRatio!==void 0&&typeof e.lockAspectRatio!="boolean")return {ok:false,detail:"lockAspectRatio: not a boolean"};let i=e.lockAspectRatio??t.locks.changeAspect;if(e.lockAspectRatio===false&&o.push({op:"setDrawingLocks",drawingNodeId:n,locks:{changeAspect:false}}),e.width!==void 0||e.height!==void 0){let s=e.width??t.extentEmu.cx/chunkDGSJZMAE_cjs.Yb,l=e.height??t.extentEmu.cy/chunkDGSJZMAE_cjs.Yb;if(i){let m=t.extentEmu.cx/t.extentEmu.cy;if(e.width!==void 0&&e.height!==void 0&&Math.abs(s/l-m)>1e-6)return {ok:false,detail:"picture: width and height disagree with the locked aspect ratio"};e.width!==void 0&&e.height===void 0&&(l=s/m),e.height!==void 0&&e.width===void 0&&(s=l*m);}let c=chunkDGSJZMAE_cjs.Zb(s),u=chunkDGSJZMAE_cjs.Zb(l);if(c===null||u===null)return {ok:false,detail:"picture: dimensions must be finite positive points"};o.push({op:"resizeDrawing",drawingNodeId:n,extentEmu:{cx:c,cy:u}});}if(e.lockAspectRatio===true&&o.push({op:"setDrawingLocks",drawingNodeId:n,locks:{changeAspect:true}}),e.altTextDescription!==void 0){if(typeof e.altTextDescription!="string"||e.altTextDescription.length>32767||!chunkDGSJZMAE_cjs.O(e.altTextDescription))return {ok:false,detail:"altTextDescription: invalid XML text or length"};o.push({op:"setDrawingMetadata",drawingNodeId:n,title:t.title,description:e.altTextDescription});}return o.length?{ok:true,ops:o}:{ok:false,detail:"picture: no properties requested"}}function La(t,e){if(e==="image/jpeg")return t.length>=4&&t[t.length-2]===255&&t[t.length-1]===217;let o=new DataView(t.buffer,t.byteOffset,t.byteLength),n=8,i=false;for(;n+12<=t.length;){let s=o.getUint32(n);if(s>t.length-n-12)return false;let l=String.fromCharCode(t[n+4],t[n+5],t[n+6],t[n+7]);if(l==="IDAT"&&s>0&&(i=true),n+=s+12,l==="IEND")return i&&s===0&&n===t.length}return false}var vt=(t,e="unsupported-content")=>({ok:false,error:{code:e,message:t}});function nr(t,e,o,n){if(t.op==="getInlinePictures"||t.op==="insertInlinePicture"){let A=z(t.span,e,o),g=ot(t.span,e,o);if(!A.ok||!g.ok)return vt("that picture range no longer exists","invalid-handle");let x=g.value;if(t.op==="getInlinePictures")return {ok:true,kind:"query",value:{kind:"handles",handles:tr(x.part,Ut(A.value,x)).map(j=>e.inlinePicture(j,x.story))}};if(!A.value||!o.package)return vt("insert a paragraph before inserting a picture");let{start:k,end:b}=A.value;if(!["Before","After","Start","End","Replace"].includes(t.location))return vt("unsupported picture insert location");if(t.location==="Replace"&&k.paragraphId!==b.paragraphId)return vt("picture replacement requires a single paragraph");let v=t.location==="After"||t.location==="End"?b:k;if(chunkDGSJZMAE_cjs.He(x.part,v.paragraphId).content||chunkDGSJZMAE_cjs.Je(x.part,v.paragraphId))return vt("picture insertion is inside protected content");let S=chunkDGSJZMAE_cjs.Ga(x.part,v.paragraphId);if(S?.kind==="paragraph"){for(let j of chunkDGSJZMAE_cjs.Pe(S))if((t.location==="Replace"?j.start<b.offset&&j.end>k.offset:j.start<v.offset&&j.end>v.offset)&&(chunkDGSJZMAE_cjs.He(x.part,j.node.id).content||chunkDGSJZMAE_cjs.Je(x.part,j.node.id)))return vt("picture insertion touches protected content")}let w=n(x,v.paragraphId);if(w)return w;let H=Qo(o.package,x.part.name,v.paragraphId,v.offset,t.base64);if(!H.ok)return vt(H.detail);let E=[];return t.location==="Replace"&&b.offset>k.offset&&E.push({op:"deleteText",paragraphId:k.paragraphId,start:k.offset,end:b.offset}),E.push(...H.ops),{ok:true,kind:"command",story:x.story,ops:E,packageEdits:H.packageEdits,answer:j=>{let F=j.story(x.story)?.part,K=F&&chunkDGSJZMAE_cjs.mb(F).find(C=>C.docPrId===H.docPrId&&C.kind==="inline");if(!K)throw new Error("inserted picture was not committed");return {kind:"handle",handle:e.inlinePicture(K.drawingNodeId,x.story)}}}}let i=e.resolve(t.picture,"inlinePicture");if(!i||i.kind!=="inlinePicture")return vt("that is not a picture handle","invalid-handle");let s=o.story(i.story),l=s&&Zo(s.part,i.drawingNodeId);if(!s||!l)return vt("that inline picture no longer exists","invalid-handle");if(t.op==="getInlinePicture")return {ok:true,kind:"query",value:{kind:"inlinePicture",picture:qo(l)}};let c=chunkDGSJZMAE_cjs.Ga(s.part,i.drawingNodeId);for(;c&&c.kind!=="paragraph";)c=chunkDGSJZMAE_cjs.Oe(s.part,c.id);if(!c||!s.has(c.id))return vt("picture is outside this story","invalid-handle");let u=n(s,c.id);if(u)return u;let m=t.op==="deleteInlinePicture"?{ok:true,ops:[{op:"deleteDrawing",drawingNodeId:i.drawingNodeId}]}:er(l,t.properties);return m.ok?{ok:true,kind:"command",story:s.story,ops:m.ops,answer:()=>({kind:"applied"})}:vt(m.detail)}function or(t,e,o,n){let i=x=>({ok:false,error:{code:"unsupported-content",message:x}});if(t.breakType!=="Page"&&t.breakType!=="SectionNext")return i("only Page and SectionNext breaks are supported");if(!["Before","After","Start","End","Replace"].includes(t.location))return i("invalid break insertion location");let s=z(t.span,e,o);if(!s.ok)return {ok:false,error:{code:s.code,message:s.detail}};let l=s.value;if(!l)return i("empty story has no break position");let c=t.location==="After"||t.location==="End"?l.end:l.start,u=o.story(c.story);if(!u)return i("missing story");if(t.location==="Replace"&&l.start.paragraphId!==l.end.paragraphId)return i("break replacement must remain in one paragraph");let m=t.breakType==="SectionNext";if(m&&(u.story.kind!=="body"||chunkDGSJZMAE_cjs.Dh(u.part,c.paragraphId)))return i("section breaks require a body paragraph outside a table");let A=n(u,c.paragraphId,m?1:0);if(A)return A;let g=[];return t.location==="Replace"&&l.end.offset>l.start.offset&&g.push({op:"deleteText",paragraphId:c.paragraphId,start:l.start.offset,end:l.end.offset}),m?g.push({op:"splitParagraph",paragraphId:c.paragraphId,offset:c.offset},{op:"setSectionMark",paragraphId:c.paragraphId,breakType:"nextPage"}):g.push({op:"insertPageBreak",paragraphId:c.paragraphId,offset:c.offset}),{ok:true,kind:"command",story:u.story,ops:g,answer:()=>({kind:"applied"})}}var St=(t,e)=>t.children.find(o=>o.kind!=="textValue"&&o.namespaceUri===chunkDGSJZMAE_cjs.da&&o.localName===e),It=(t,e)=>t.attributes.find(o=>o.namespaceUri===chunkDGSJZMAE_cjs.da&&o.localName===e)?.value,Me=t=>t.replaceAll("&","&").replaceAll('"',""").replaceAll("<","<").replaceAll(">",">"),sn=t=>typeof t=="string"&&t.length<=255&&!/[\x00-\x08\x0b\x0c\x0e-\x1f\uFFFE\uFFFF]/.test(t),rr={None:"none",Arabic:"decimal",UpperRoman:"upperRoman",LowerRoman:"lowerRoman",UpperLetter:"upperLetter",LowerLetter:"lowerLetter"},ar={Solid:["\uF0B7","Symbol"],Hollow:["o","Courier New"],Square:["\uF0A7","Wingdings"],Diamonds:["\uF076","Wingdings"],Arrow:["\uF0D8","Wingdings"],Checkmark:["\uF0FC","Wingdings"]};function ln(t){let e=chunkDGSJZMAE_cjs.pf(t,"bullet");if(!e)return null;let o=e.pkg;for(let n=0;n<=8;n+=1)if(!pe(o,e.numId,n)){let i=je(o,e.numId,n,{bullet:n%3===0?"Solid":n%3===1?"Hollow":"Square"});if(!i)return null;o=i;}return {pkg:o,numId:e.numId}}function pe(t,e,o){let n=t.parts.get("/word/numbering.xml")?.root;if(!n)return false;let i=n.children,s=i.find(m=>m.kind!=="textValue"&&m.namespaceUri===chunkDGSJZMAE_cjs.da&&m.localName==="num"&&It(m,"numId")===e);if(!s)return false;let l=s.children.find(m=>m.kind!=="textValue"&&m.namespaceUri===chunkDGSJZMAE_cjs.da&&m.localName==="lvlOverride"&&It(m,"ilvl")===String(o));if(l&&St(l,"lvl"))return true;let c=St(s,"abstractNumId"),u=c&&i.find(m=>m.kind!=="textValue"&&m.namespaceUri===chunkDGSJZMAE_cjs.da&&m.localName==="abstractNum"&&It(m,"abstractNumId")===It(c,"val"));return !!u&&!St(u,"numStyleLink")&&u.children.some(m=>m.kind!=="textValue"&&m.namespaceUri===chunkDGSJZMAE_cjs.da&&m.localName==="lvl"&&It(m,"ilvl")===String(o))}function dn(t,e){if(!Number.isInteger(t)||t<0||t>8||!e||typeof e!="object")return false;if(e.bullet!==void 0){if(e.numbering!==void 0)return false;if(e.bullet==="Custom"){if(!Number.isInteger(e.charCode)||e.charCode<1||e.charCode>65535||e.charCode>=55296&&e.charCode<=57343||!sn(String.fromCharCode(e.charCode)))return false}else if(!Object.hasOwn(ar,e.bullet))return false;if(e.fontName!==void 0&&(!sn(e.fontName)||!e.fontName.trim()))return false}if(e.numbering!==void 0&&!Object.hasOwn(rr,e.numbering)||e.formatString!==void 0&&(!Array.isArray(e.formatString)||e.formatString.length>32||e.formatString.some(n=>typeof n=="number"?!Number.isInteger(n)||n<0||n>t:!sn(n)||/%[1-9]/.test(n)))||e.startingNumber!==void 0&&(!Number.isInteger(e.startingNumber)||e.startingNumber<0||e.startingNumber>2147483647))return false;for(let n of [e.textIndent,e.bulletNumberPictureIndent])if(n!==void 0&&(!Number.isFinite(n)||Math.abs(n)>1584))return false;let o=["bullet","charCode","fontName","numbering","formatString","startingNumber","textIndent","bulletNumberPictureIndent"];return Object.keys(e).some(n=>!o.includes(n))||e.bullet===void 0&&(e.charCode!==void 0||e.fontName!==void 0)||e.numbering===void 0&&e.formatString!==void 0?false:Object.keys(e).length>0}function je(t,e,o,n){if(!dn(o,n))return null;let i=t.parts.get("/word/numbering.xml");if(!i)return null;let s=i.root.children.find(C=>C.kind!=="textValue"&&C.namespaceUri===chunkDGSJZMAE_cjs.da&&C.localName==="num"&&It(C,"numId")===e),l=s&&St(s,"abstractNumId");if(!s||!l)return null;let c=i.root.children.find(C=>C.kind!=="textValue"&&C.namespaceUri===chunkDGSJZMAE_cjs.da&&C.localName==="abstractNum"&&It(C,"abstractNumId")===It(l,"val"));if(!c||St(c,"numStyleLink"))return null;let u=s.children.find(C=>C.kind!=="textValue"&&C.namespaceUri===chunkDGSJZMAE_cjs.da&&C.localName==="lvlOverride"&&It(C,"ilvl")===String(o)),m=(u&&St(u,"lvl"))??c.children.find(C=>C.kind!=="textValue"&&C.namespaceUri===chunkDGSJZMAE_cjs.da&&C.localName==="lvl"&&It(C,"ilvl")===String(o));if(m&&St(m,"lvlPicBulletId"))return null;let A=chunkDGSJZMAE_cjs.Ea(i),g=C=>C.kind==="textValue"?{...C,id:A()}:{...C,id:A(),children:C.children.map(g)},x=C=>{let D=chunkDGSJZMAE_cjs.xa(`<w:numbering xmlns:w="${chunkDGSJZMAE_cjs.da}">${C}</w:numbering>`,{name:i.name,contentType:i.contentType}),Z=D.ok?D.part.root.children[0]:void 0;return Z&&Z.kind!=="textValue"?g(Z):null};if(m??=x(`<w:lvl w:ilvl="${o}"><w:start w:val="1"/><w:numFmt w:val="decimal"/><w:lvlText w:val="%${o+1}."/><w:lvlJc w:val="left"/><w:pPr><w:ind w:left="${720*(o+1)}" w:hanging="360"/></w:pPr></w:lvl>`)??void 0,!m)return null;let k=[...m.children],b=["start","numFmt","lvlRestart","pStyle","isLgl","suff","lvlText","lvlPicBulletId","legacy","lvlJc","pPr","rPr"],v=(C,D)=>{let Z=x(D);if(!Z)return false;let et=k.findIndex(_=>_.kind!=="textValue"&&_.namespaceUri===chunkDGSJZMAE_cjs.da&&_.localName===C);if(et>=0){let _=k[et];k.splice(et,1,{..._,attributes:[..._.attributes.filter(nt=>!Z.attributes.some(at=>at.namespaceUri===nt.namespaceUri&&at.localName===nt.localName)),...Z.attributes]});}else {let _=k.findIndex(nt=>nt.kind!=="textValue"&&nt.namespaceUri===chunkDGSJZMAE_cjs.da&&b.indexOf(nt.localName)>b.indexOf(C));k.splice(_<0?k.length:_,0,Z);}return true};if(n.startingNumber!==void 0&&!v("start",`<w:start w:val="${n.startingNumber}"/>`))return null;if(n.numbering!==void 0){let C=n.formatString?.map(D=>typeof D=="number"?`%${D+1}`:D).join("")??(n.numbering==="None"?"":`%${o+1}.`);if(!v("numFmt",`<w:numFmt w:val="${rr[n.numbering]}"/>`)||!v("lvlText",`<w:lvlText w:val="${Me(C)}"/>`))return null}if(n.numbering!==void 0&&(k=k.map(C=>C.kind!=="textValue"&&C.namespaceUri===chunkDGSJZMAE_cjs.da&&C.localName==="rPr"?{...C,children:C.children.filter(D=>D.kind==="textValue"||D.namespaceUri!==chunkDGSJZMAE_cjs.da||D.localName!=="rFonts")}:C)),n.bullet!==void 0){let[C,D]=n.bullet==="Custom"?[String.fromCharCode(n.charCode),n.fontName??"Symbol"]:ar[n.bullet];if(!v("numFmt",'<w:numFmt w:val="bullet"/>')||!v("lvlText",`<w:lvlText w:val="${Me(C)}"/>`))return null;let Z=St(m,"rPr"),et=x(`<w:rFonts w:ascii="${Me(D)}" w:hAnsi="${Me(D)}"/>`);if(!et)return null;let _=Z?.children.filter(ct=>ct.kind==="textValue"||ct.namespaceUri!==chunkDGSJZMAE_cjs.da||ct.localName!=="rFonts")??[],nt=Z?{...Z,children:[et,..._]}:x("<w:rPr/>");if(!nt)return null;let at=k.findIndex(ct=>ct.kind!=="textValue"&&ct.namespaceUri===chunkDGSJZMAE_cjs.da&&ct.localName==="rPr");at<0?k.push({...nt,children:[et,..._]}):k[at]={...nt,children:[et,..._]};}if(n.textIndent!==void 0||n.bulletNumberPictureIndent!==void 0){let C=St(m,"pPr"),D=C&&St(C,"ind"),Z=D?.attributes.filter(Q=>Q.namespaceUri!==chunkDGSJZMAE_cjs.da||!["left","start","firstLine","hanging"].includes(Q.localName))??[],et=n.textIndent===void 0?It(D??m,"left")??"0":String(Math.round(n.textIndent*20)),_=n.bulletNumberPictureIndent,nt=_===void 0?D?.attributes.filter(Q=>Q.namespaceUri===chunkDGSJZMAE_cjs.da&&["firstLine","hanging"].includes(Q.localName))??[]:[],at=x(`<w:ind w:left="${et}"${_===void 0?"":` w:${_<0?"hanging":"firstLine"}="${Math.abs(Math.round(_*20))}"`}/>`);if(!at)return null;let ct={...at,attributes:[...Z,...nt,...at.attributes]},Mt=C?.children.filter(Q=>Q.kind==="textValue"||Q.namespaceUri!==chunkDGSJZMAE_cjs.da||Q.localName!=="ind")??[],Et=C??x("<w:pPr/>");if(!Et)return null;let ne=D?C.children.indexOf(D):-1,V=[...Mt],Pt=["contextualSpacing","mirrorIndents","suppressOverlap","jc","textDirection","textAlignment","textboxTightWrap","outlineLvl","divId","cnfStyle","rPr","sectPr","pPrChange"],ht=V.findIndex(Q=>Q.kind!=="textValue"&&Q.namespaceUri===chunkDGSJZMAE_cjs.da&&Pt.includes(Q.localName));V.splice(ne>=0?ne:ht>=0?ht:V.length,0,ct);let q={...Et,children:V},gt=k.findIndex(Q=>Q.kind!=="textValue"&&Q.namespaceUri===chunkDGSJZMAE_cjs.da&&Q.localName==="pPr");if(gt>=0)k[gt]=q;else {let Q=k.findIndex(Ot=>Ot.kind!=="textValue"&&Ot.localName==="rPr"&&Ot.namespaceUri===chunkDGSJZMAE_cjs.da);k.splice(Q<0?k.length:Q,0,q);}}let S=g({...m,children:k}),w=u?.children.filter(C=>C.kind==="textValue"||C.namespaceUri!==chunkDGSJZMAE_cjs.da||C.localName!=="lvl"&&(n.startingNumber===void 0||C.localName!=="startOverride"))??[],H=u??x(`<w:lvlOverride w:ilvl="${o}"/>`);if(!H)return null;let E={...H,children:[...w,S]},j=[...s.children],F=u?j.indexOf(u):-1;F>=0?j[F]=E:j.push(E);let K=chunkDGSJZMAE_cjs.La(i,s.id,{...s,children:j});return K.ok?chunkDGSJZMAE_cjs.fc(t,K.part):null}var te=8;function ir(t){if(!t||t.kind==="textValue")return null;for(let e of t.attributes)if(e.namespaceUri===chunkDGSJZMAE_cjs.da&&e.localName==="val")return e.value;return null}function De(t){let e=chunkDGSJZMAE_cjs.Ne(chunkDGSJZMAE_cjs.Le(t),"numPr");if(!e)return null;let o=ir(chunkDGSJZMAE_cjs.Ne(e,"numId"));if(o===null||!/^\d{1,10}$/.test(o)||o==="0")return null;let n=ir(chunkDGSJZMAE_cjs.Ne(e,"ilvl")),i=n===null?0:Number(n);return !Number.isInteger(i)||i<0||i>te?null:{numId:o,level:i}}function zt(t){let e=new Map;for(let o of t.paragraphIds){let n=t.node(o);if(!n)continue;let i=De(n);if(!i)continue;let s=e.get(i.numId);s?s.push(o):e.set(i.numId,[o]);}return Object.freeze([...e].map(([o,n])=>Object.freeze({numId:o,paragraphIds:Object.freeze(n)})))}function me(t,e){let o=t.node(e);return o?De(o):null}var mt=t=>({ok:false,error:{code:"unsupported-content",message:t}});function Ha(t,e){if(t.root.namespaceUri!==chunkDGSJZMAE_cjs.da||t.root.localName!=="styles")return false;let o=[t.root];for(;o.length;){let n=o.pop();if(n.kind!=="textValue"){if(n.namespaceUri===chunkDGSJZMAE_cjs.da&&n.localName==="numId"&&n.attributes.some(i=>i.namespaceUri===chunkDGSJZMAE_cjs.da&&i.localName==="val"&&i.value===e))return true;for(let i of n.children)o.push(i);}}return false}function sr(t,e,o,n){let i=o.package;if(!i)return mt("no document");if(t.op==="setListLevelFormat"){let x=e.resolve(t.list,"list");if(!x||x.kind!=="list")return mt("that is not a list");let k=o.story(x.story),b=k&&zt(k).find(v=>v.numId===x.numId);if(!k||!b)return mt("that list no longer exists");if(!dn(t.level,t.format))return mt("invalid list level format");for(let v of i.parts.values()){if(Ha(v,x.numId))return mt("list is referenced by a style");for(let S of chunkDGSJZMAE_cjs.xd(v))for(let w of chunkDGSJZMAE_cjs.Ad(S.root))if(De(w)?.numId===x.numId&&!k.has(w.id))return mt("list is shared across stories")}for(let v of b.paragraphIds){if(chunkDGSJZMAE_cjs.He(k.part,v).content||chunkDGSJZMAE_cjs.Je(k.part,v))return mt("list contains protected content");let S=n(k,v,{numId:x.numId,level:t.level});if(S)return S}return je(i,x.numId,t.level,t.format)?{ok:true,kind:"command",story:k.story,ops:[],packageEdits:[v=>{let S=je(v,x.numId,t.level,t.format);if(!S)throw new Error("list definition changed during transaction");return S}],answer:()=>({kind:"applied"})}:mt("cannot format this list")}let s=pt(t.paragraph,e,o);if(!s.ok)return {ok:false,error:{code:s.code,message:s.detail}};let l=o.story(s.value.story);if(!l)return mt("missing story");let c=n(l,s.value.paragraphId);if(c)return c;let u=null,m=0,A=[];if(t.op==="startNewList"){let x=ln(i);if(!x)return mt("cannot create numbering definition");let k=s.value.paragraphId;if(!chunkDGSJZMAE_cjs.ji(l.part,{op:"setListNumbering",paragraphId:k,numId:x.numId,level:0}).ok)return mt("cannot number this paragraph");let v=x.numId;return {ok:true,kind:"command",story:l.story,ops:[],packageEdits:[S=>{let w=ln(S),H=w?.pkg.parts.get(l.part.name);if(!w||!H)throw new Error("cannot create numbering definition");let E=chunkDGSJZMAE_cjs.ji(H,{op:"setListNumbering",paragraphId:k,numId:w.numId,level:0});if(!E.ok)throw new Error("cannot number this paragraph");return v=w.numId,chunkDGSJZMAE_cjs.fc(w.pkg,E.part)}],answer:()=>({kind:"handle",handle:e.list(v,l.story)})}}else if(t.op==="attachToList"){if(!Number.isSafeInteger(t.listId)||t.listId<=0||!Number.isInteger(t.level)||t.level<0||t.level>8)return mt("invalid list identity or level");if(u=String(t.listId),m=t.level,!pe(i,u,m))return mt("list level is not defined; configure that level first");if(!zt(l).some(x=>x.numId===u))return mt("that list does not exist in this story")}let g=u;return {ok:true,kind:"command",story:l.story,ops:[{op:"setListNumbering",paragraphId:s.value.paragraphId,numId:t.op==="detachFromList"?"0":u,level:m}],packageEdits:A,answer:()=>g===null?{kind:"applied"}:{kind:"handle",handle:e.list(g,l.story)}}}var un=Object.freeze({None:"none",Single:"single",Word:"words",Double:"double",Thick:"thick",Dotted:"dotted",DottedHeavy:"dottedHeavy",DashLine:"dash",DashLineHeavy:"dashedHeavy",DashLineLong:"dashLong",DashLineLongHeavy:"dashLongHeavy",DotDashLine:"dotDash",DotDashLineHeavy:"dashDotHeavy",TwoDotDashLine:"dotDotDash",TwoDotDashLineHeavy:"dashDotDotHeavy",Wave:"wave",WaveHeavy:"wavyHeavy",WaveDouble:"wavyDouble"}),lr=[["Yellow","yellow","#FFFF00"],["Lime","green","#00FF00"],["Turquoise","cyan","#00FFFF"],["Pink","magenta","#FF00FF"],["Blue","blue","#0000FF"],["Red","red","#FF0000"],["DarkBlue","darkBlue","#000080"],["Teal","darkCyan","#008080"],["Green","darkGreen","#008000"],["Purple","darkMagenta","#800080"],["DarkRed","darkRed","#800000"],["Olive","darkYellow","#808000"],["Gray","darkGray","#808080"],["LightGray","lightGray","#C0C0C0"],["Black","black","#000000"],["White","white","#FFFFFF"]];function dr(t){return Object.entries(un).find(([,e])=>e===t)?.[0]??null}function ur(t){return lr.find(([,e])=>e===t)?.[2]??null}function cr(t){let e=[];if(t.underline!==void 0){let o=typeof t.underline=="string"&&Object.hasOwn(un,t.underline)?un[t.underline]:void 0;if(!o)return {ok:false,detail:"underline: unsupported underline style"};e.push({localName:"u",attributes:{val:o}});}if(t.strikeThrough!==void 0){if(typeof t.strikeThrough!="boolean")return {ok:false,detail:"strikeThrough: not a boolean"};e.push({localName:"strike",attributes:{val:t.strikeThrough?"1":"0"}});}for(let o of ["subscript","superscript"])if(t[o]!==void 0&&typeof t[o]!="boolean")return {ok:false,detail:`${o}: not a boolean`};if(t.subscript===true&&t.superscript===true)return {ok:false,detail:"subscript and superscript are mutually exclusive"};if(t.highlightColor!==void 0){let o=t.highlightColor,n=typeof o=="string"?lr.find(([i,,s])=>i.toLowerCase()===o.toLowerCase()||s===o.toUpperCase()):void 0;if(o!==null&&!n)return {ok:false,detail:"highlightColor: use an exact Word palette color or null to clear"};e.push({localName:"highlight",attributes:{val:n?.[1]??"none"}});}return {ok:true,value:e}}var Fa=31680,Ma=1999,ja=Object.freeze({bold:null,italic:null,underline:null,strikeThrough:null,highlightColor:null,subscript:null,superscript:null,name:null,size:null,color:null});function st(t,e){if(!t)return null;for(let o of t.attributes)if(o.localName===e)return o.value;return null}function _e(t){if(!t)return null;let e=st(t,"val");if(e===null)return true;let o=e.trim().toLowerCase();return !(o==="0"||o==="false"||o==="off"||o==="none")}function Da(t){if(t===null)return null;let e=t.trim();return /^[0-9a-fA-F]{6}$/.test(e)?`#${e.toUpperCase()}`:null}function Ba(t){if(t===null)return null;let e=Number(t.trim());return !Number.isFinite(e)||e<=0?null:e/2}function Kt(t){if(t===null)return null;let e=Number(t.trim());return Number.isFinite(e)?chunkDGSJZMAE_cjs.$e(chunkDGSJZMAE_cjs.Ze(e)):null}function Ct(t){if(t.length===0)return null;let e=t[0];if(e===null)return null;for(let o of t)if(o!==e)return null;return e}function fr(t,e,o=chunkK5HIOS6J_cjs.ja){let n=[];for(let i of e)for(let s of chunkK5HIOS6J_cjs.Ba(t,i.paragraphId,i.start,i.end,o))n.push(chunkDGSJZMAE_cjs.Me(s));return n.length===0?ja:{bold:Ct(n.map(i=>_e(chunkDGSJZMAE_cjs.Ne(i,"b")))),italic:Ct(n.map(i=>_e(chunkDGSJZMAE_cjs.Ne(i,"i")))),underline:Ct(n.map(i=>dr(st(chunkDGSJZMAE_cjs.Ne(i,"u"),"val")))),strikeThrough:Ct(n.map(i=>_e(chunkDGSJZMAE_cjs.Ne(i,"strike")))),highlightColor:Ct(n.map(i=>ur(st(chunkDGSJZMAE_cjs.Ne(i,"highlight"),"val")))),subscript:Ct(n.map(i=>mr(i,"subscript"))),superscript:Ct(n.map(i=>mr(i,"superscript"))),name:Ct(n.map(i=>{let s=chunkDGSJZMAE_cjs.Ne(i,"rFonts"),l=st(s,"ascii");return l===null||l.length===0?null:l})),size:Ct(n.map(i=>Ba(st(chunkDGSJZMAE_cjs.Ne(i,"sz"),"val")))),color:Ct(n.map(i=>Da(st(chunkDGSJZMAE_cjs.Ne(i,"color"),"val"))))}}var _a=Object.freeze({left:"Left",start:"Left",center:"Centered",right:"Right",end:"Right",both:"Justified",distribute:"Justified"}),Va=Object.freeze({Left:"left",Centered:"center",Right:"right",Justified:"both"});function Wa(t){let e=st(chunkDGSJZMAE_cjs.Ne(t,"jc"),"val");return e===null?"Unknown":_a[e.trim().toLowerCase()]??"Unknown"}function gr(t,e,o){let n=chunkDGSJZMAE_cjs.Ga(t,e);if(!n||n.kind!=="paragraph")return null;let i=chunkDGSJZMAE_cjs.Le(n),s=chunkDGSJZMAE_cjs.Ne(i,"spacing"),l=chunkDGSJZMAE_cjs.Ne(i,"ind");return {alignment:Wa(i),style:Ce(t,e,o),firstLineIndent:Ua(l),leftIndent:Kt(st(l,"left")??st(l,"start")),rightIndent:Kt(st(l,"right")??st(l,"end")),lineSpacing:Kt(st(s,"line")),spaceBefore:Kt(st(s,"before")),spaceAfter:Kt(st(s,"after")),widowControl:_e(chunkDGSJZMAE_cjs.Ne(i,"widowControl"))}}function Ua(t){let e=Kt(st(t,"hanging"));if(e!==null&&e>0)return -e;let o=Kt(st(t,"firstLine"));return o!==null?o:e===null?null:-e}function Be(t,e){if(typeof t!="number"||!Number.isFinite(t))return {ok:false,detail:`${e}: not a measurement`};let o=chunkDGSJZMAE_cjs.af(chunkDGSJZMAE_cjs._e(t));return Math.abs(o)>Fa?{ok:false,detail:`${e}: out of range`}:{ok:true,value:o}}function yr(t){let e=cr(t);if(!e.ok)return e;let o=e.value;if(t.bold!==void 0){if(typeof t.bold!="boolean")return {ok:false,detail:"bold: not a boolean"};o.push({localName:"b",...t.bold?{}:{attributes:{val:"0"}}});}if(t.italic!==void 0){if(typeof t.italic!="boolean")return {ok:false,detail:"italic: not a boolean"};o.push({localName:"i",...t.italic?{}:{attributes:{val:"0"}}});}if(t.name!==void 0){let n=t.name;if(typeof n!="string"||n.length===0||n.length>128)return {ok:false,detail:"name: not a font name"};if(!chunkDGSJZMAE_cjs.O(n))return {ok:false,detail:"name: not valid XML text"};o.push({localName:"rFonts",attributes:{ascii:n,hAnsi:n}});}if(t.size!==void 0){let n=t.size;if(typeof n!="number"||!Number.isFinite(n)||n<=0)return {ok:false,detail:"size: not a positive number of points"};let i=Math.round(n*2);if(i<1||i>Ma)return {ok:false,detail:"size: out of range"};o.push({localName:"sz",attributes:{val:String(i)}}),o.push({localName:"szCs",attributes:{val:String(i)}});}if(t.color!==void 0){let n=t.color;if(typeof n!="string"||!/^#[0-9a-fA-F]{6}$/.test(n.trim()))return {ok:false,detail:"color: not a #RRGGBB triplet"};o.push({localName:"color",attributes:{val:n.trim().slice(1).toUpperCase()}});}return o.length===0&&t.subscript===void 0&&t.superscript===void 0?{ok:false,detail:"no formatting was asked for"}:{ok:true,value:o}}function hr(t,e,o,n){let i=chunkDGSJZMAE_cjs.Ga(t,e);if(!i||i.kind!=="paragraph")return {ok:false,detail:"not a paragraph"};let s=chunkDGSJZMAE_cjs.Le(i),l=[];if(o.style!==void 0){let k=we(o.style,n);if(!k.ok)return {ok:false,detail:k.detail};l.push({localName:"pStyle",attributes:{val:k.styleId}});}if(o.alignment!==void 0){let k=Va[o.alignment];if(k===void 0)return {ok:false,detail:`alignment: ${String(o.alignment)}`};l.push({localName:"jc",attributes:{val:k}});}let c=chunkDGSJZMAE_cjs.Ne(s,"ind"),u=pr(c),m=false;if(o.firstLineIndent!==void 0){let k=Be(o.firstLineIndent,"firstLineIndent");if(!k.ok)return k;delete u.firstLine,delete u.hanging,k.value<0?u.hanging=String(-k.value):u.firstLine=String(k.value),m=true;}for(let[k,b,v]of [["leftIndent","left","start"],["rightIndent","right","end"]]){let S=o[k];if(S===void 0)continue;let w=Be(S,k);if(!w.ok)return w;delete u[v],u[b]=String(w.value),m=true;}m&&l.push({localName:"ind",attributes:u});let A=chunkDGSJZMAE_cjs.Ne(s,"spacing"),g=pr(A),x=false;for(let[k,b]of [["spaceBefore","before"],["spaceAfter","after"]]){let v=o[k];if(v===void 0)continue;let S=Be(v,k);if(!S.ok)return S;if(S.value<0)return {ok:false,detail:`${k}: out of range`};g[b]=String(S.value),x=true;}if(o.lineSpacing!==void 0){let k=Be(o.lineSpacing,"lineSpacing");if(!k.ok)return k;if(k.value<=0)return {ok:false,detail:"lineSpacing: out of range"};g.line=String(k.value),g.lineRule??="auto",x=true;}if(x&&l.push({localName:"spacing",attributes:g}),o.widowControl!==void 0){if(typeof o.widowControl!="boolean")return {ok:false,detail:"widowControl: not a boolean"};l.push({localName:"widowControl",...o.widowControl?{}:{attributes:{val:"0"}}});}return l.length===0?{ok:false,detail:"no formatting was asked for"}:{ok:true,value:chunkK5HIOS6J_cjs.ta(chunkK5HIOS6J_cjs.ra(t,e),l)}}function pr(t){let e=Object.create(null);if(!t)return e;for(let o of t.attributes)e[o.localName]=o.value;return e}function cn(t,e){if(e.subscript===void 0&&e.superscript===void 0)return [...t];let o=t.find(i=>i.localName==="vertAlign")?.attributes?.val,n=e.subscript===true?"subscript":e.superscript===true?"superscript":o==="subscript"&&e.subscript===false||o==="superscript"&&e.superscript===false?"baseline":o??"baseline";return chunkK5HIOS6J_cjs.ta(t,[{localName:"vertAlign",attributes:{val:n}}])}function mr(t,e){let o=st(chunkDGSJZMAE_cjs.Ne(t,"vertAlign"),"val");return o===null?null:o===e}function kr(){let t=false,e=false,o=false,n=false;return {conflict(i){let s=Wt(i),l=nn(i),c=i.op==="deleteComment",u=i.op==="updateFieldResult";return s&&(u&&t&&!n||n&&!u)?{message:"field result updates require a batch without other edits; sync document edits before updating fields",detail:i.op}:l&&t||e&&s?{message:"that command commits on its own and cannot share a batch",detail:i.op}:c&&t&&!o||o&&s&&!c?{message:"comment deletions may share a batch only with other comment deletions",detail:i.op}:null},note(i){Wt(i)&&(t=true,nn(i)&&(e=true),i.op==="deleteComment"&&(o=true),i.op==="updateFieldResult"&&(n=true));},get hasCommands(){return t}}}var $a=256,br=1e4;function pn(t,e){if(t.kind!=="textValue"){for(let o of t.attributes)if(o.namespaceUri===chunkDGSJZMAE_cjs.da&&o.localName===e)return o.value}}function za(t){return t.startsWith("_")}function mn(t){let e=new Map,o=[],n=new Set;for(let i of t.paragraphIds){let s=t.node(i);if(s?.kind!=="paragraph")continue;let l=chunkDGSJZMAE_cjs.Re(s),c=u=>{if(u.kind!=="textValue"){if(u.kind==="bookmarkStart"){if(o.length>=br||e.size>=br)return;let m=pn(u,"id"),A=pn(u,"name");if(m===void 0||A===void 0||A.length===0||A.length>$a||za(A)||n.has(A)||e.has(m))return;let g=l.spanOf(u)?.start??0;e.set(m,{name:A,start:{paragraphId:i,offset:g}});return}if(u.kind==="bookmarkEnd"){let m=pn(u,"id");if(m===void 0)return;let A=e.get(m);if(!A)return;e.delete(m),n.add(A.name);let g=l.spanOf(u)?.start??0;o.push(Object.freeze({name:A.name,start:A.start,end:{paragraphId:i,offset:g}}));return}for(let m of u.children)c(m);}};for(let u of s.children)c(u);}return Object.freeze(o)}function fn(t,e){return mn(t).find(o=>o.name===e)??null}function xr(t,e){let o=t.node(e);if(o?.kind!=="paragraph")return Object.freeze([]);let n=chunkDGSJZMAE_cjs.Re(o),i=[],s=(l,c)=>{if(!(l.kind==="textValue"||c>32)){if(chunkDGSJZMAE_cjs.Ya(l)){let u=n.spanOf(l);u&&i.push(Object.freeze({id:l.id,paragraphId:e,start:u.start,end:u.end}));return}for(let u of l.children)s(u,c+1);}};for(let l of o.children)s(l,0);return Object.freeze(i)}function Ar(t,e,o){let n=chunkDGSJZMAE_cjs.$a(o,i=>chunkDGSJZMAE_cjs.tf(t,e,i));if(n.kind==="external")return n.href;if(n.kind==="internal"){let i=chunkDGSJZMAE_cjs.Za(o);return i===void 0||i.length===0?null:`#${i}`}return null}function vr(t,e,o,n,i){let s=Math.min(i?.limit??2e3,2e3),l=[],c=At(e,t),u=c.length-1;for(let[m,A]of c.entries()){if(s<=0)break;let g=t.projectedText(A,i?.projection??"allMarkup");if(!g)continue;let x=g.findOccurrences(n,s,{matchCase:i?.matchCase===true,wholeWord:i?.matchWholeWord===true,...m===0&&e?{from:g.projectedOffset(e.start.offset)}:{},...m===u&&e?{to:g.projectedOffset(e.end.offset)}:{}});for(let k of x.matches){if(m===0&&e&&k.rawStart<e.start.offset||m===u&&e&&k.rawEnd>e.end.offset)continue;let b=o.paragraph(A,t.story);l.push({start:{paragraph:b,offset:k.rawStart},end:{paragraph:b,offset:k.rawEnd}}),s-=1;}}return {ok:true,spans:l}}var Ka={insert:"Insert",delete:"Delete",replace:"Replace",moveFrom:"MovedFrom",moveTo:"MovedTo",format:"Property",paragraphMark:"ParagraphProperty"};function Ga(t){return t.kind==="note"}function Xa(t,e){return e.length===0?!Ga(t.story):e.every(o=>t.has(o.start.paragraphId))}function Ya(t){return Object.freeze(chunkK5HIOS6J_cjs.Oa(t.part).filter(e=>Xa(t,e.ranges)))}function gn(t){let e=[];for(let o of Ya(t)){if(o.readOnly||o.revisionKind==="structural")continue;let n=Ka[o.revisionKind];n!==void 0&&e.push(Object.freeze({id:o.id,type:n,author:o.author,date:o.date??"",item:o}));}return Object.freeze(e)}function Ja(t,e){let o=t;for(let n=0;o!==void 0&&n<=64;n+=1){if(o.parentId===void 0)return o.range!==null;o=e.get(o.parentId);}return false}var Qa=Object.freeze({items:Object.freeze([]),roots:Object.freeze([]),byId:()=>null,textOf:()=>""});function Ir(t,e){let o=t.parts.get(chunkK5HIOS6J_cjs.X(t,e.part.name));if(!o)return Qa;let n=t.parts.get(chunkK5HIOS6J_cjs.Y(t,e.part.name)),i=chunkDGSJZMAE_cjs.rg(o),s=n?chunkDGSJZMAE_cjs.sg(n):new Map,l=chunkDGSJZMAE_cjs.pg(e.part).filter(g=>e.has(g.start.paragraphId)),c=chunkK5HIOS6J_cjs.Pa(i,l,s),u=new Map(c.map(g=>[g.id,g])),m=c.filter(g=>Ja(g,u)),A=new Map(m.map(g=>[g.id,g]));return Object.freeze({items:Object.freeze(m),roots:Object.freeze(m.filter(g=>g.parentId===void 0)),byId:g=>A.get(g)??null,textOf:g=>{let x=A.get(g);return x?chunkK5HIOS6J_cjs.Ca(x.comment):""}})}var Za=/[\r\n\v\f\u2028\u2029]/;function Ve(t,e,o){return {code:t,message:e,detail:o}}function Pr(t,e=false){if(typeof t.author!="string"||!t.author.trim()||!chunkDGSJZMAE_cjs.O(t.author))return Ve("unsupported-content","proposals need a non-empty XML-safe author","author");let o=t.op==="proposeInsertion";return !(t.op==="proposeDeletion")&&(typeof t.text!="string"||!e&&!t.text.length||Za.test(t.text)||!chunkDGSJZMAE_cjs.O(t.text))?Ve("unsupported-content","proposals need non-empty inline XML-safe text","text"):o&&t.where!=="Before"&&t.where!=="After"?Ve("unsupported-content","insertion needs Before or After","where"):null}function Or(t,e,o,n){let i=chunkK5HIOS6J_cjs.Oa(t.part),s=new Set;if(i.some(c=>c.revisionKind==="structural"))for(let c=chunkDGSJZMAE_cjs.Ha(t.part,e);c!==null&&(s.add(c.id),c.id!==t.root.id);c=chunkDGSJZMAE_cjs.Ha(t.part,c.id));return i.some(c=>{if(c.revisionKind==="structural"){let u=chunkK5HIOS6J_cjs.Ea(c),m=0;for(let A of u){let g=chunkDGSJZMAE_cjs.Ha(t.part,A),x=g&&chunkDGSJZMAE_cjs.Ha(t.part,g.id),k=x?.kind==="tableRow"?"trPr":x?.kind==="tableCell"?"tcPr":null;if(!(!x||!k||chunkDGSJZMAE_cjs.Ne(x,k)?.id!==g?.id)){if(s.has(x.id))return true;m+=1;}}if(u.length>0&&m===u.length)return false}return c.ranges.some(u=>{let m=t.indexOf(u.start.paragraphId),A=t.indexOf(u.end.paragraphId),g=t.indexOf(e);if(m<0||A<0||g<m||g>A)return false;let x=g===m?u.start.offset:0,k=g===A?u.end.offset:1/0;return o<=k&&n>=x})})?Ve("unsupported-revision","proposal touches or overlaps a pending revision","span"):null}function Rr(t,e,o,n,i){let s=(F,K,C)=>({ok:false,error:{code:F,message:K,...C===void 0?{}:{detail:C}}}),l=F=>Nt(F,o),c=F=>({ok:true,kind:"query",value:F}),u=Pr(t,e);if(u)return {ok:false,error:u};let m=t.op==="proposeInsertion",A=t.op==="proposeDeletion",g=z(t.span,o,n);if(!g.ok)return s(g.code,"that span is not a place",g.detail);let x=g.value;if(!x||x.start.paragraphId!==x.end.paragraphId)return s("unsupported-content","proposals require a single paragraph range","span");if(!e&&!m&&x.start.offset===x.end.offset)return s("unsupported-content","deletion and replacement need a non-empty range","span");let k=ot(t.span,o,n);if(!k.ok)return s(k.code,"that story is not a place",k.detail);let b=x.start.paragraphId,v=m&&t.where==="After"?x.end.offset:x.start.offset,S=m?v:x.end.offset;if(e&&!A&&v===S&&t.text==="")return c({kind:"span",span:l({start:x.start,end:x.start})});let w=Or(k.value,b,v,S);if(w)return {ok:false,error:w};let H=i(k.value,b);if(H)return H;let E={author:t.author.trim(),date:new Date().toISOString()},j=[];return !m&&S>v&&j.push({op:"deleteText",paragraphId:b,start:v,end:S,revision:E}),!A&&t.text.length>0&&j.push({op:"insertText",paragraphId:b,offset:m?v:S,text:t.text,revision:E}),{ok:true,kind:"command",ops:j,story:k.value.story,answer:()=>{if(!e)return {kind:"applied"};let F={...x.start,offset:m?v:S};return {kind:"span",span:l({start:F,end:{...F,offset:F.offset+(A?0:t.text.length)}})}}}}function yn(t,e,o){if("body"in t){let n=rt(t.body,"body",e,o);return n.ok?{ok:true,reads:n.value}:{ok:false,code:n.code,message:"that handle does not name a body",detail:n.detail}}return e.resolve(t.document,"document")?o.body?{ok:true,reads:o.body}:{ok:false,code:"document-unavailable",message:"this host holds no document"}:{ok:false,code:"invalid-handle",message:"that handle does not name a document",detail:"document"}}function qa(t,e){let o=t.op==="acceptAllRevisions",n=e.story.kind==="note"?{scopeRootId:e.root.id}:{};return [o?{op:"acceptAllRevisions",...n}:{op:"rejectAllRevisions",...n}]}function ti(t,e,o){let n=yn({op:"acceptAllRevisions",body:t.body},e,o);if(!n.ok)return n;if(!["accept","reject"].includes(t.action)||t.revisions!==void 0&&!Array.isArray(t.revisions))return {ok:false,code:"unsupported-content",message:"invalid revision batch"};let i=t.revisions===void 0?void 0:[];for(let l of t.revisions??[]){let c=e.resolve(l,"revision");if(!c||c.kind!=="revision"||G(c.story)!==G(n.reads.story))return {ok:false,code:"invalid-handle",message:"revision does not belong to this story"};i.push(`revision-${c.revisionId}`);}let s=chunkK5HIOS6J_cjs.Za(n.reads.part,t.action,i,n.reads.story.kind==="note"?n.reads.root:void 0);return {ok:true,reads:n.reads,...s}}function ei(t,e,o,n){let i=yn({op:"acceptAllRevisions",body:t},o,n);if(!i.ok)throw new Error("resolved story disappeared");let{part:s,root:l,story:c}=i.reads,u=chunkK5HIOS6J_cjs.Oa(c.kind==="note"&&l.kind!=="textValue"?{...s,root:l}:s).length;return {kind:"revisionBatch",result:{...e,remaining:u}}}function Sr(t,e,o,n){if(t.op==="resolveRevisionBatch"){let l=ti(t,e,o);if(!l.ok)return {ok:false,error:{code:l.code,message:l.message}};let c=n(l.reads);return c||{ok:true,kind:"command",story:l.reads.story,ops:l.ops,answer:u=>ei(t.body,l.result,e,u)}}let i=yn(t,e,o);if(!i.ok)return {ok:false,error:{code:i.code,message:i.message,detail:i.detail}};let s=n(i.reads);return s||{ok:true,kind:"command",story:i.reads.story,ops:qa(t,i.reads),answer:()=>({kind:"applied"})}}var ni=/[\r\n\u2028\u2029]/u,wr=Object.freeze({kind:"applied"});function ee(t,e,o){return {ok:false,error:Object.freeze(o===void 0?{code:t,message:e}:{code:t,message:e,detail:o})}}function hn(t,e){return ee("unsupported-content",t==="author"?"a comment records who wrote it":t==="date"?"a comment date must be a valid ISO-8601 instant":e==="reply"?"a reply says something":"a comment says something",t)}function kn(t){return chunkK5HIOS6J_cjs.P(t.author)?hn("author",t.kind):chunkK5HIOS6J_cjs.Q(t.text)?hn("text",t.kind):typeof t.text=="string"&&ni.test(t.text)?ee("unsupported-content",t.kind==="reply"?"a reply is one paragraph in this slice":"a comment is one paragraph in this slice","text"):chunkK5HIOS6J_cjs.S(t.date)?hn("date",t.kind):null}function bn(t){if(t===void 0)return;let e=chunkK5HIOS6J_cjs.R(t);return e.ok?e.value:void 0}function Cr(t,e){let o=chunkDGSJZMAE_cjs.Ga(t.part,e);for(;o;){if(o.kind==="tableCell"||o.kind!=="textValue"&&o.namespaceUri===chunkDGSJZMAE_cjs.da&&o.localName==="tc")return o.id;o=chunkDGSJZMAE_cjs.Ha(t.part,o.id);}return null}function Tr(t,e,o,n){let i=kn({author:t.author,text:t.text,date:t.date,kind:"comment"});if(i)return i;let s=z(t.span,e,o);if(!s.ok)return ee(s.code,"that span is not a place",s.detail);if(s.value===null)return ee("invalid-handle","an empty story has no comment anchor");let l=ot(t.span,e,o);if(!l.ok)return ee(l.code,"that span is not a place",l.detail);let c=s.value;if(Cr(l.value,c.start.paragraphId)!==Cr(l.value,c.end.paragraphId))return ee("unsupported-content","a comment range cannot cross a table-cell boundary");let u=n(l.value);if(u)return u;let m=bn(t.date);return {ok:true,kind:"commentWrite",write:{kind:"create",anchor:{paragraphId:c.start.paragraphId,start:c.start.offset,end:c.end.offset,...c.end.paragraphId===c.start.paragraphId?{}:{endParagraphId:c.end.paragraphId}},text:t.text,author:t.author,...m===void 0?{}:{date:m}},story:l.value.story,answer:(g,x)=>x===void 0?wr:{kind:"handle",handle:e.comment(x,l.value.story)}}}function Nr(t,e,o){let n=o(e);if(n)return n;let i=e.story;return {ok:true,kind:"commentWrite",write:{kind:"delete",commentId:t.id,...t.parentId===void 0?{}:{parentCommentId:t.parentId},...i.kind==="note"?{noteId:i.noteId}:{}},story:i,answer:()=>wr}}var oi=1e4;function Er(t,e){let o=[],n=e.kind==="contentControl"?chunkDGSJZMAE_cjs.Gc(e):e;if(!n)return o;for(let i of chunkDGSJZMAE_cjs.Kc(n))if(!(i.ancestors.length>0)){if(o.length>=oi)break;o.push(jr(t,i.node));}return o}function Lr(t,e){for(let o of chunkDGSJZMAE_cjs.Kc(t.root))if(o.node.id===e)return jr(t,o.node);return null}function Hr(t,e){for(let o of chunkDGSJZMAE_cjs.Kc(t.root))if(o.node.id===e)return o.node;return null}function Fr(t,e){for(let o of t.paragraphIds){let n=t.node(o);if(!(!n||n.kind!=="paragraph")&&chunkDGSJZMAE_cjs.Kc(n).some(i=>i.node.id===e))return n}return null}function We(t,e){let o=Dr(e);if(o.length>0){let s=o[0],l=o[o.length-1],c=t.rawText(l);return c===null||!t.has(s)?null:{start:{paragraphId:s,offset:0},end:{paragraphId:l,offset:c.length}}}let n=Fr(t,e.id);if(!n)return null;let i=chunkDGSJZMAE_cjs.Re(n).spanOf(e);return i?{start:{paragraphId:n.id,offset:i.start},end:{paragraphId:n.id,offset:i.end}}:null}function ri(t,e,o){let n=Fr(t,e.id),i=chunkDGSJZMAE_cjs.Gc(e);if(!n||!i)return null;let s={...n,children:i.children},l=chunkDGSJZMAE_cjs.Ah(s);return Te(s,l,o).text}function Mr(t,e,o="allMarkup"){if(o==="allMarkup")return chunkDGSJZMAE_cjs.Mc(e);let n=ri(t,e,o);if(n!==null)return n;let i=We(t,e);if(!i)return "";let s=t.indexOf(i.start.paragraphId),l=t.indexOf(i.end.paragraphId);if(s<0||l<s)return "";let c=[];for(let u=s;u<=l;u+=1){let m=t.paragraphIds[u],A=t.projectedText(m,o),g=t.rawText(m);if(!A||g===null)return "";c.push(A.sliceRaw(u===s?i.start.offset:0,u===l?i.end.offset:g.length));}return c.join("\r")}function jr(t,e){return {nodeId:e.id,properties:chunkDGSJZMAE_cjs.Ic(e),lock:chunkDGSJZMAE_cjs.Ph(t.part,e.id),paragraphIds:Dr(e)}}function Dr(t){let e=chunkDGSJZMAE_cjs.Gc(t);if(!e)return [];let o=[];return chunkDGSJZMAE_cjs.Bd(e.children,o,0),o.map(n=>n.id)}function fe(t){let e=t.kind==="contentControl"?chunkDGSJZMAE_cjs.Gc(t):t;return e?chunkDGSJZMAE_cjs.Kc(e).map(o=>o.node):[]}var Br=new Set(["unlocked","sdtLocked","contentLocked","sdtContentLocked"]),_r=new Set(["whole","content","start","end","before","after"]),Vr=new Set(["richText","plainText","dropDownList","comboBox","date"]),ai=4096;function Wr(t){let e=(i,s)=>({ok:false,code:"unsupported-content",message:i,detail:s});if(typeof t!="object"||t===null||!("kind"in t))return e("a control value states its kind","value");let o=t,n=o.kind;if(n==="text"||n==="listItem"){let i=n==="text"?o.text:o.value;return typeof i!="string"?e("that value is not a string",String(n)):i.length>ai?e("that value is too long",String(i.length)):{ok:true,value:n==="text"?{kind:"text",text:i}:{kind:"listItem",value:i}}}if(n==="checkbox"){let i=o.checked;return typeof i!="boolean"?e("a checkbox is checked or not","checked"):{ok:true,value:{kind:"checkbox",checked:i}}}if(n==="date"){let i=o.iso;return typeof i!="string"?e("a date is an ISO-8601 string","iso"):i.length>64?e("that is not a date",String(i.length)):{ok:true,value:{kind:"date",iso:i}}}return e("that is not a value any control accepts",String(n))}var ii=new Set(["unlocked","sdtLocked","contentLocked","sdtContentLocked"]),si=4096,Ur=64;function $r(t){if(t===void 0)return {ok:true,value:null};if(typeof t!="object"||t===null)return {ok:false,field:"payload"};let e=t;for(let o of ["namespaceUri","rootLocalName","nodeId"]){let n=e[o];if(typeof n!="string"||n.length===0||n.length>si)return {ok:false,field:o}}return typeof e.label!="string"||e.label.length>chunkK5HIOS6J_cjs.ba?{ok:false,field:"label"}:typeof e.data!="string"||e.data.length===0||e.data.length>chunkK5HIOS6J_cjs.aa?{ok:false,field:"data"}:{ok:true,value:{namespaceUri:e.namespaceUri,rootLocalName:e.rootLocalName,nodeId:e.nodeId,label:e.label,data:e.data}}}function zr(t){let e=t.at!==void 0,o=t.span!==void 0;return e===o?{message:"a custom node goes at a position or over a span, not both",detail:e?"at+span":"no-place"}:typeof t.tag!="string"||t.tag.length===0?{message:"a custom node carries its identity in its tag",detail:"tag"}:t.tag.length>Ur?{message:`w:tag caps at ${String(Ur)} characters; a longer payload belongs in the store`,detail:"tag"}:typeof t.text!="string"||t.text.length===0?{message:"a custom node shows some text",detail:"text"}:t.lock!==void 0&&!ii.has(t.lock)?{message:"that is not a lock",detail:String(t.lock)}:null}function Kr(t,e,o,n){return {paragraphId:e.paragraphId,offset:e.offset,...o.offset>e.offset?{replaceUntil:o.offset}:{},tag:t.tag,text:t.text,...t.title===void 0?{}:{alias:t.title},...t.lock===void 0||t.lock==="unlocked"?{}:{lock:t.lock},...n===null?{}:{payload:n}}}function Gr(t,e,o){if(t.span){let i=z(t.span,e,o);return i.ok?i.value?i.value.start.paragraphId!==i.value.end.paragraphId?{code:"unsupported-content",message:"a custom node wraps text inside one paragraph",detail:"multi-paragraph"}:{range:i.value}:{code:"invalid-offset",message:"that story holds nothing to wrap",detail:"empty-story"}:{code:i.code,message:"that span is not a place",detail:i.detail}}let n=qt(t.at,e,o);return n.ok?{range:{start:n.value,end:n.value}}:{code:n.code,message:"that is not a place",detail:n.detail}}var ge=/[\r\n\v\f\u2028\u2029]/,li=16,di=64;function ui(t,e,o){return Object.freeze(o===void 0?{code:t,message:e}:{code:t,message:e,detail:o})}function f(t,e,o){return {ok:false,error:ui(t,e,o)}}var tt=Object.freeze({kind:"applied"});function N(t){return {ok:true,kind:"query",value:t}}function xn(t){let{handles:e,capabilities:o}=t,n=t.reads,i=new Map,s=new Map,l=a=>{let p=`${G(a.story)}:${a.root.id}`,y=i.get(p);if(y)return y;let I=new Map,R=a.paragraphIds.map(d=>{let h={id:d};return I.set(d,h),h}),r={externalCreatedCount:0,reads:a,order:R,slotById:I,created:[],restructured:new Set,touched:new Set,textEdits:new He,formatted:new Set,selected:new Set,retargets:[]};return i.set(p,r),r},c=[],u=kr(),m=false,A=null,g=a=>A===null?(A=a,null):A===a?null:f("conflicting-operations","one batch writes into one story",`${G(A.reads.story)} then ${G(a.reads.story)}`),x=a=>g(l(a)),k=a=>{let p=n.package;return p===null?null:Ir(p,a)},b=a=>{let p=e.resolve(a,"comment");if(!p||p.kind!=="comment")return {ok:false,planned:f("invalid-handle","that handle does not name a comment","comment")};let y=n.story(p.story);if(!y)return {ok:false,planned:f("invalid-handle","that story is not in this document")};let R=k(y)?.byId(p.commentId)??null;return R?{ok:true,reads:y,item:R}:{ok:false,planned:f("invalid-handle","this document no longer holds that comment",p.commentId)}},v=a=>{let p=e.resolve(a,"revision");if(!p||p.kind!=="revision")return {ok:false,planned:f("invalid-handle","that handle does not name a tracked change","revision")};let y=n.story(p.story);if(!y)return {ok:false,planned:f("invalid-handle","that story is not in this document")};let I=gn(y).find(R=>R.id===p.revisionId)??null;return I?{ok:true,reads:y,item:I}:{ok:false,planned:f("invalid-handle","this document no longer holds that tracked change",p.revisionId)}},S=(a,p)=>{let y=a.rawText(p.start.paragraphId),I=a.rawText(p.end.paragraphId);if(y===null||I===null)return null;let R={story:a.story,paragraphId:p.start.paragraphId,index:a.indexOf(p.start.paragraphId),offset:Math.min(p.start.offset,y.length)},r={story:a.story,paragraphId:p.end.paragraphId,index:a.indexOf(p.end.paragraphId),offset:Math.min(p.end.offset,I.length)};return C({start:R,end:r})},w=(a,p)=>a.order.indexOf(p),H=(a,p)=>a.selected.has(p)?f("conflicting-operations","this batch selects a paragraph it also edits",p):null,E=(a,p)=>{let y=H(a,p);return y||(a.restructured.has(p)||a.touched.has(p)?f("conflicting-operations","another operation in this batch already changes that paragraph",p):(a.restructured.add(p),a.touched.add(p),null))},j=(a,p)=>{let y=H(a,p);return y||(a.restructured.has(p)||a.textEdits.has(p)?f("conflicting-operations","another operation in this batch restructures that paragraph",p):(a.touched.add(p),null))},F=(a,p,y)=>{let I=`${y}:${p}`;if(a.formatted.has(I))return f("conflicting-operations","another operation in this batch already writes that formatting",p);let R=j(a,p);return R||(a.formatted.add(I),null)},K=(a,p)=>{let y={id:null};return a.order.splice(p,0,y),a.created.push(y),y},C=a=>Nt(a,e),D=a=>a===null?null:n.story(a.start.story),Z=a=>a===void 0||a==="allMarkup"||a==="original"||a==="model",et=(a,p,y,I)=>{if(!Z(I?.projection))return f("unsupported-content","unknown text projection","projection");if(I?.matchWildcards===true)return f("unsupported-capability","wildcard search is not implemented","matchWildcards");if(I?.ignorePunct===true)return f("unsupported-capability","ignoring punctuation is not implemented","ignorePunct");if(I?.ignoreSpace===true)return f("unsupported-capability","ignoring whitespace is not implemented","ignoreSpace");if(!chunkK5HIOS6J_cjs.Xa(y))return f("unsupported-content","that is not a query this host will scan for","text");let R=I?.limit;if(R!==void 0&&(!Number.isInteger(R)||R<0))return f("invalid-offset","limit must be a non-negative integer",String(R));let r=vr(a,p,e,y,I);return N({kind:"spans",spans:r.spans})},_=(a,p,y,I=false)=>{let R=p.start.paragraphId,r=a.textEdits.has(R)?H(a,R):a.touched.has(R)?f("conflicting-operations","text edits cannot share a paragraph with other edits",R):j(a,R);return r||Mo(a.textEdits,p,y,e,I)},nt=(a,p,y,I=false)=>{if(typeof y!="string"||ge.test(y))return f("unsupported-content","insertText needs text without paragraph marks","text");let R=g(a);if(R)return R;let r=t.replacementLanding?.(p.paragraphId,p.offset,p.offset)!=null,d=!r&&Fo(a.reads.part,p.paragraphId,p.offset,y);if(d)return d;if(!r&&an(a.reads.part,p.paragraphId,p.offset))return _(a,{start:p,end:p},y,I);let h=E(a,p.paragraphId);return h||{ok:true,kind:"command",ops:y.length?[{op:"insertText",paragraphId:p.paragraphId,offset:p.offset,text:y}]:[],story:a.reads.story,answer:()=>({kind:"span",span:C({start:p,end:{...p,offset:p.offset+y.length}})})}},at=(a,p,y)=>{let I=a.reads;if(typeof y!="string")return f("unsupported-content","replaceSpan needs text","text");if(ge.test(y))return f("unsupported-content","text carrying a paragraph mark is not written by this host","paragraph-mark-in-text");let R=At(p,I),r=p.start.paragraphId,d=[],h=g(a);if(h)return h;let P=R.length===1?p.end.offset:(I.rawText(r)??"").length,O=t.replacementLanding?.(r,p.start.offset,P);if(R.length===1&&O==null&&an(I.part,r,p.start.offset))return _(a,p,y);if(R.length===1){let X=E(a,r);if(X)return X;if(O==null)return Do(I.part,p,y,e);p.end.offset>p.start.offset&&d.push({op:"deleteText",paragraphId:r,start:p.start.offset,end:p.end.offset});}else {for(let M of R){let B=E(a,M);if(B)return B}let X=p.end.paragraphId,U=(I.rawText(r)??"").length;p.start.offset<U&&d.push({op:"deleteText",paragraphId:r,start:p.start.offset,end:U}),p.end.offset>0&&d.push({op:"deleteText",paragraphId:X,start:0,end:p.end.offset});for(let M of R.slice(1,-1))d.push({op:"deleteBlock",blockId:M});d.push({op:"joinParagraphs",firstId:r,secondId:X});for(let M of R.slice(1)){let B=a.slotById.get(M);B&&a.order.splice(w(a,B),1);}}let T=O??p.start.offset;y.length>0&&d.push({op:"insertText",paragraphId:r,offset:T,text:y});let L={...p.start,paragraphId:r,offset:T},$=()=>({kind:"span",span:C({start:L,end:{...L,offset:L.offset+y.length}})});return {ok:true,kind:"command",ops:d,story:a.reads.story,answer:$}},ct=(a,p)=>{let y=a.reads;if(typeof p!="string")return f("unsupported-content","replaceSpan needs text","text");if(ge.test(p))return f("unsupported-content","text carrying a paragraph mark is not written by this host","paragraph-mark-in-text");let I=y.blocks,R=I.filter(M=>M.removable),r=I.filter(M=>!M.removable).flatMap(M=>M.paragraphIds),d=r.length===0?R.find(M=>M.kind==="paragraph"):void 0;if(!d&&r.length===0)return f("invalid-offset","that story holds no paragraph this host can write into","no-top-level-paragraph");let h=g(a);if(h)return h;for(let M of y.paragraphIds){let B=E(a,M);if(B)return B}let P=[],O=(d?[d.id]:[...r]).sort((M,B)=>y.indexOf(M)-y.indexOf(B)),T=O[0],L=(y.rawText(T)??"").length;for(let M of O){let B=(y.rawText(M)??"").length;B>0&&P.push({op:"deleteText",paragraphId:M,start:0,end:B});}for(let M of R)M.id!==d?.id&&P.push({op:"deleteBlock",blockId:M.id});let $=t.replacementLanding?.(T,0,L)??0;p.length>0&&P.push({op:"insertText",paragraphId:T,offset:$,text:p});for(let M of R)if(M.id!==d?.id)for(let B of M.paragraphIds){let kt=a.slotById.get(B);kt&&a.order.splice(w(a,kt),1);}let X={story:y.story,paragraphId:T,index:y.indexOf(T),offset:$},U=()=>({kind:"span",span:C({start:X,end:{...X,offset:$+p.length}})});return {ok:true,kind:"command",ops:P,story:y.story,answer:U}},Mt=(a,p)=>{if(!Array.isArray(p)||p.length<1||p.length>1e4||p.some(I=>typeof I!="string"||ge.test(I)||!chunkDGSJZMAE_cjs.O(I)))return f("unsupported-content","replaceStoryBlocks needs 1-10000 valid XML text strings without paragraph marks","paragraphs");let y=g(a);if(y)return y;for(let I of a.reads.paragraphIds){let R=E(a,I);if(R)return R}a.order.splice(0,a.order.length);for(let I=0;I<p.length;I+=1)K(a,I);return {ok:true,kind:"command",ops:[{op:"replaceStoryBlocks",storyRootId:a.reads.root.id,paragraphs:p}],story:a.reads.story,answer:()=>tt}},Et=(a,p,y,I)=>{let R=a.reads;if(typeof I!="string")return f("unsupported-content","insertParagraph needs text","text");if(ge.test(I))return f("unsupported-content","a paragraph mark inside a paragraph\u2019s text is not written by this host","paragraph-mark-in-text");let r=g(a);if(r)return r;let d=E(a,p.paragraphId);if(d)return d;let h=a.slotById.get(p.paragraphId);if(!h)return f("invalid-handle","that paragraph is not in the body");let P=(R.rawText(p.paragraphId)??"").length,O=[];y==="after"?(I.length>0&&O.push({op:"insertText",paragraphId:p.paragraphId,offset:P,text:I}),O.push({op:"splitParagraph",paragraphId:p.paragraphId,offset:P})):(I.length>0&&O.push({op:"insertText",paragraphId:p.paragraphId,offset:0,text:I}),O.push({op:"splitParagraph",paragraphId:p.paragraphId,offset:I.length}));let T=K(a,w(a,h)+1);y==="before"&&a.retargets.push({from:p.paragraphId,slot:T});let L=()=>{let $=y==="after"?T.id:p.paragraphId;return $===null?tt:{kind:"handle",handle:e.paragraph($,R.story)}};return {ok:true,kind:"command",ops:O,story:R.story,answer:L}},ne=(a,p,y,I,R)=>{let r=a.reads;if(!Array.isArray(y)||y.length===0)return f("unsupported-content","split needs at least one delimiter","delimiters");if(y.length>li)return f("unsupported-content","too many delimiters",String(y.length));for(let B of y){if(typeof B!="string"||B.length===0)return f("unsupported-content","a delimiter must be a non-empty string","delimiters");if(B.length>di)return f("unsupported-content","that delimiter is too long","delimiters")}let d=g(a);if(d)return d;let h=E(a,p.paragraphId);if(h)return h;let P=a.slotById.get(p.paragraphId);if(!P)return f("invalid-handle","that paragraph is not in the body");let O=r.rawText(p.paragraphId)??"",T=_o(O,y),L=[],$=[],X=[];if(T.length===0)X.push(O);else if(I){for(let lt of [...T].reverse())L.push({op:"deleteText",paragraphId:p.paragraphId,start:lt.start,end:lt.start+lt.length});let B=0,kt=0;for(let lt of T){let $e=lt.start-B;$.push($e),X.push(O.slice(kt,lt.start)),kt=lt.start+lt.length,B+=lt.length;}X.push(O.slice(kt));}else {let B=0;for(let kt of T){let lt=kt.start+kt.length;$.push(lt),X.push(O.slice(B,lt)),B=lt;}X.push(O.slice(B));}$.length>0&&L.push({op:"splitParagraphMany",paragraphId:p.paragraphId,offsets:$});let U=[P];for(let B=0;B<$.length;B+=1)U.push(K(a,w(a,P)+1+B));let M=B=>{let kt=B.story(r.story),lt=[];return U.forEach(($e,Zr)=>{let ze=$e.id;if(ze===null)return;let Ke=kt?.rawText(ze)??X[Zr]??"",[qr,ta]=R?Uo(Ke,0,Ke.length):[0,Ke.length],Pn=e.paragraph(ze,r.story);lt.push({start:{paragraph:Pn,offset:qr},end:{paragraph:Pn,offset:ta}});}),{kind:"spans",spans:lt}};return {ok:true,kind:"command",ops:L,story:r.story,answer:M}},V=(a,p)=>{let y=g(a);if(y)return y;let I=E(a,p.paragraphId);if(I)return I;let R=a.slotById.get(p.paragraphId);return R&&a.order.splice(w(a,R),1),{ok:true,kind:"command",ops:[{op:"deleteBlock",blockId:p.paragraphId}],story:a.reads.story,answer:()=>tt}},Pt=(a,p,y)=>{let I=a.reads,R=I.part,r=g(a);if(r)return r;let d=yr(y??{});if(!d.ok)return f("unsupported-content","that is not formatting this host writes",d.detail);let h=[];for(let P of Ut(p,I)){if(P.end<=P.start&&!P.whole)continue;let O=F(a,P.paragraphId,"runs");if(O)return O;for(let T of chunkK5HIOS6J_cjs.za(R,P.paragraphId,P.start,P.end,d.value.filter(L=>L.localName!=="vertAlign"),t.displayMode))h.push({op:"setRunProperties",paragraphId:P.paragraphId,start:T.start,end:T.end,properties:cn(T.properties,y),...T.targetRunIds?{targetRunIds:T.targetRunIds}:{}});P.whole&&h.push({op:"setParagraphMarkProperties",paragraphId:P.paragraphId,properties:cn(chunkK5HIOS6J_cjs.ya(R,P.paragraphId,d.value.filter(T=>T.localName!=="vertAlign")),y)});}return h.length===0?f("invalid-offset","that range covers no characters to format","collapsed-range"):{ok:true,kind:"command",ops:h,story:I.story,answer:()=>tt}},ht=(a,p,y)=>{let I=a.reads,R=I.part,r=g(a);if(r)return r;let d=we(y,I.styles());if(!d.ok)return f("unsupported-content","that is not a style this document has",d.detail);let h={localName:"pStyle",attributes:{val:d.styleId}},P=[];for(let O of At(p,I)){let T=F(a,O,"paragraph");if(T)return T;P.push({op:"setParagraphProperties",paragraphId:O,properties:chunkK5HIOS6J_cjs.ta(chunkK5HIOS6J_cjs.ra(R,O),h)});}return P.length===0?f("invalid-offset","that story holds no paragraph to style","empty-story"):{ok:true,kind:"command",ops:P,story:I.story,answer:()=>tt}},q=(a,p,y)=>{let I=a.reads,R=I.part,r=g(a);if(r)return r;let d=hr(R,p.paragraphId,y??{},I.styles());if(!d.ok)return f("unsupported-content","that is not paragraph formatting this host writes",d.detail);let h=F(a,p.paragraphId,"paragraph");return h||{ok:true,kind:"command",ops:[{op:"setParagraphProperties",paragraphId:p.paragraphId,properties:d.value}],story:I.story,answer:()=>tt}},gt=(a,p)=>{let y=n.body;if(!y)return f("document-unavailable","this host holds no document right now");let I=n.sections();if(!I[a])return f("invalid-handle","that section is not in this document");let r=Ro(p);if(!r.ok)return f("unsupported-content",r.reason,r.detail);let d=Vo(y,I,a);if(d===null)return f("unsupported-content","that section holds no paragraph to address it by","no-anchor");let h=l(y),P=g(h);return P||{ok:true,kind:"command",ops:[{op:"setSectionProperties",...r.value,anchorParagraphId:d}],story:Ft,answer:()=>tt}},Q=(a,p)=>({ok:true,kind:"command",ops:[{op:"deleteNote",noteKind:a,noteId:p}],story:Ft,lifecycle:true,answer:()=>tt}),Ot=a=>{let p=e.resolve(a,"list");if(!p||p.kind!=="list")return f("invalid-handle","that handle does not name a list","list");let y=n.story(p.story);if(!y)return f("invalid-handle","that story is not in this document");let I=zt(y).find(R=>R.numId===p.numId);return I?{ok:true,plan:l(y),list:I}:f("invalid-handle","this story numbers nothing with that list",p.numId)},Ue=a=>{if(typeof a!="object"||a===null)return f("invalid-handle","that is not a scope a control lives in","scope");let p=a;if("body"in a){let y=rt(p.body,"body",e,n);return y.ok?{reads:y.value,node:y.value.root}:f(y.code,"that handle does not name a body",y.detail)}if("contentControl"in a){let y=Rt(p.contentControl);return "control"in y?{reads:y.reads,node:y.node}:y}return f("invalid-handle","that is not a scope a control lives in","scope")},Rt=a=>{let p=e.resolve(a,"contentControl");if(!p||p.kind!=="contentControl")return f("invalid-handle","that handle does not name a content control","contentControl");let y=n.story(p.story);if(!y)return f("invalid-handle","that story is not in this document");let I=Lr(y,p.nodeId),R=Hr(y,p.nodeId);return !I||!R?f("invalid-handle","this document no longer holds that content control"):{reads:y,control:I,node:R}},Xr=(a,p,y)=>{if(!Number.isInteger(y)||y<0||y>te)return f("invalid-offset",`a list level is 0 to ${String(te)}`,String(y));let I=me(a.reads,p);if(!I)return f("unsupported-content","that paragraph is not in a list",p);if(!n.package||!pe(n.package,I.numId,y))return f("unsupported-content","list level is not defined; configure that level first",p);let R=g(a);if(R)return R;let r=F(a,p,"paragraph");return r||{ok:true,kind:"command",ops:[{op:"setListLevel",paragraphId:p,level:y}],story:a.reads.story,answer:()=>tt}},Yr=(a,p,y,I)=>{if(y!=="start"&&y!=="end")return f("unknown-operation","a list takes an item at its start or its end",String(y));let R=a.reads,r=y==="start"?p.paragraphIds[0]:p.paragraphIds[p.paragraphIds.length-1];if(r===void 0)return f("invalid-handle","that list holds no paragraph");let d={story:R.story,paragraphId:r,index:R.indexOf(r)};return Et(a,d,y==="start"?"before":"after",I)},An=(a,p)=>{if(p.start.paragraphId!==p.end.paragraphId)return null;for(let y of xr(a,p.start.paragraphId))if(y.start<=p.start.offset&&y.end>=p.end.offset)return y;return null},Jr=(a,p,y)=>{if(typeof y!="string")return f("unsupported-content","a hyperlink target is a string","target");let I=a.reads,R=An(I,p),r=p.start.paragraphId===p.end.paragraphId&&p.start.offset===p.end.offset,d=R&&(p.start.offset!==R.start||p.end.offset!==R.end),h=d?{range:{start:p.start.offset,end:p.end.offset}}:{};if(d){let U=I.node(R.paragraphId),M=U?.kind==="paragraph"?U.children.find(B=>B.id===R.id):void 0;if(r||!M||!chunkDGSJZMAE_cjs.ah(M)||U?.kind!=="paragraph"||!U.children.some(B=>B.id===R.id))return f("unsupported-capability","partial hyperlink edits require ordinary text in a paragraph")}if(y.length===0){if(!R)return f("unsupported-content","that text is not a link","no-link");let U=g(a);if(U)return U;let M=j(a,R.paragraphId);return M||{ok:true,kind:"command",ops:[{op:"removeHyperlink",linkId:R.id,...h}],story:I.story,answer:()=>tt}}let P={},O=null;if(y.startsWith("#")){let U=y.slice(1);if(U.length===0||!fn(I,U))return f("unsupported-content","this document declares no such bookmark",y);P={anchor:U};}else {if(chunkDGSJZMAE_cjs.rf(y)===null)return f("unsupported-content","this engine will not author that target","target");O=y;}let T=g(a);if(T)return T;let L=U=>O===null?{ok:true,kind:"command",ops:[U(P)],story:I.story,answer:()=>tt}:{ok:true,kind:"command",ops:[],relate:{url:O,ops:M=>[U({relationshipId:M})]},story:I.story,answer:()=>tt};if(R){let U=j(a,R.paragraphId);return U||L(M=>({op:"setHyperlinkTarget",linkId:R.id,...h,...M}))}if(r)return f("unsupported-content","a link with no text has nothing to click","collapsed");if(p.start.paragraphId!==p.end.paragraphId)return f("unsupported-content","a link lives inside one paragraph","crosses-paragraph-mark");let $=j(a,p.start.paragraphId);if($)return $;let X=I.styles().idOf("hyperlink");return L(U=>({op:"insertHyperlink",paragraphId:p.start.paragraphId,start:p.start.offset,end:p.end.offset,...U,...X===null?{}:{styleId:X}}))},vn=(a,p,y)=>{let I=a.reads;if(!o.selection||!t.select)return f("unsupported-capability","this host has no reader to move","selection");if(y!=="select"&&y!=="start"&&y!=="end")return f("unknown-operation","that is not a selection mode",String(y));let R=At(p,I);for(let r of R)if(a.touched.has(r))return f("conflicting-operations","this batch edits a paragraph the selection covers",r);for(let r of R)a.selected.add(r);return c.push({range:p,mode:y}),{ok:true,kind:"command",ops:[],story:I.story,answer:()=>tt}},In=a=>{let p=e.resolve(a,"bookmark");if(!p||p.kind!=="bookmark")return f("invalid-handle","that handle does not name a bookmark","bookmark");let y=n.story(p.story);if(!y)return f("invalid-handle","that story is not in this document");let I=fn(y,p.name);if(!I)return f("invalid-handle","this document no longer declares that bookmark",p.name);let R=r=>({story:y.story,paragraphId:r.paragraphId,index:y.indexOf(r.paragraphId),offset:r.offset});return {reads:y,range:{start:R(I.start),end:R(I.end)}}},Qr=(a,p)=>{let y=Jo(a,t,r=>xn({...t,reads:r}));if(y)return p&&y.ok&&y.kind==="command"?f("unsupported-content","header/footer creation cannot be tracked"):y;let I=Xo(a,{handles:e,reads:n,admitWrite:(r,d,h)=>{let P=l(r),O=g(P);if(O)return O;for(let T of h){let L=E(P,T);if(L)return L}return P.externalCreatedCount+=d,null}});if(I)return I;let R=p!==void 0;switch(R&&a.op==="insertText"?a={op:"proposeInsertion",span:{start:a.at,end:a.at},text:a.text,where:"Before",author:p}:R&&a.op==="replaceSpan"&&(a={op:"proposeReplacement",span:a.span,text:a.text,author:p}),a.op){case "getFields":case "getField":case "setFieldCode":case "deleteField":case "updateFieldResult":case "insertField":return zo(a,e,n,(r,d,h)=>{let P=l(r);return g(P)??(h?null:E(P,d))},t.fieldPageContext);case "getInlinePictures":case "getInlinePicture":case "setInlinePicture":case "deleteInlinePicture":case "insertInlinePicture":return nr(a,e,n,(r,d)=>{let h=l(r);return g(h)??E(h,d)});case "insertBreak":return or(a,e,n,(r,d,h)=>{let P=l(r),O=g(P)??E(P,d);return O||(P.externalCreatedCount+=h),O});case "startNewList":case "attachToList":case "detachFromList":case "setListLevelFormat":return sr(a,e,n,(r,d,h)=>{let P=l(r);return g(P)??F(P,d,h?`list:${h.numId}:${h.level}`:"paragraph")});case "getDocument":return N({kind:"handle",handle:e.document()});case "getBody":return e.resolve(a.document,"document")?n.body?N({kind:"handle",handle:e.body(Ft)}):f("document-unavailable","this host holds no document right now"):f("invalid-handle","that handle does not name a document","document");case "getParagraphs":{let r=rt(a.body,"body",e,n);return r.ok?N({kind:"handles",handles:r.value.paragraphIds.map(d=>e.paragraph(d,r.value.story))}):f(r.code,"that handle does not name a body",r.detail)}case "getRange":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);if(!r.value)return f("invalid-offset","empty story");if(!["Whole","Content","Start","End"].includes(a.location))return f("unsupported-content","unsupported range location");let d=r.value,h=a.location==="Start"?{start:d.start,end:d.start}:a.location==="End"?{start:d.end,end:d.end}:d;return N({kind:"span",span:Nt(h,e)})}case "getSpanParagraphs":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);let d=ot(a.span,e,n);return d.ok?N({kind:"handles",handles:At(r.value,d.value).map(h=>e.paragraph(h,d.value.story))}):f(d.code,"that span is not a place",d.detail)}case "getText":{if(!Z(a.projection))return f("unsupported-content","unknown text projection","projection");if(e.resolve(a.target,"body")){let P=rt(a.target,"body",e,n);return P.ok?N({kind:"text",text:P.value.text(a.projection??"allMarkup")}):f(P.code,"that handle does not name a body",P.detail)}let d=pt(a.target,e,n);if(!d.ok)return f(d.code,"that handle does not name a body or a paragraph",d.detail);let h=n.story(d.value.story);return N({kind:"text",text:h?.paragraphText(d.value.paragraphId,a.projection??"allMarkup")??""})}case "getSpanText":{if(!Z(a.projection))return f("unsupported-content","unknown text projection","projection");let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);let d=ot(a.span,e,n);return d.ok?N({kind:"text",text:Ho(r.value,d.value,on,a.projection??"allMarkup")}):f(d.code,"that span is not a place",d.detail)}case "getParagraphId":{let r=pt(a.paragraph,e,n);if(!r.ok)return f(r.code,"that handle does not name a paragraph",r.detail);let h=n.story(r.value.story)?.paragraph(r.value.paragraphId);return N({kind:"text",text:h?.paraId??""})}case "search":{let r=z(a.scope,e,n);if(!r.ok)return f(r.code,"that is not a scope to search",r.detail);let d=ot(a.scope,e,n);return d.ok?et(d.value,r.value,a.text,a.options):f(d.code,"that is not a scope to search",d.detail)}case "proposeInsertion":case "proposeDeletion":case "proposeReplacement":return Rr(a,R,e,n,(r,d)=>{let h=l(r);return g(h)??E(h,d)});case "insertText":{let r=qt(a.at,e,n);if(!r.ok)return f(r.code,"that is not a place to insert at",r.detail);let d=n.story(r.value.story);return d?nt(l(d),r.value,a.text,"at"in a.at&&a.at.at==="start"):f("invalid-handle","that story is not in this document")}case "replaceSpan":{if("body"in a.span){let h=rt(a.span.body,"body",e,n);return h.ok?ct(l(h.value),a.text):f(h.code,"that handle does not name a body",h.detail)}let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);if(!r.value)return f("invalid-offset","that story holds no paragraph to write into","empty-story");let d=D(r.value);return d?at(l(d),r.value,a.text):f("invalid-handle","that story is not in this document")}case "replaceStoryBlocks":{let r=rt(a.body,"body",e,n);return r.ok?Mt(l(r.value),a.paragraphs):f(r.code,"that handle does not name a body",r.detail)}case "insertParagraph":{let r=Le(a.anchor,e,n);if(!r.ok)return f(r.code,"that is not a paragraph to insert beside",r.detail);if(a.where!=="before"&&a.where!=="after")return f("unknown-operation","that is not a place to insert",String(a.where));let d=n.story(r.value.story);return d?Et(l(d),r.value,a.where,a.text):f("invalid-handle","that story is not in this document")}case "splitParagraph":{let r=pt(a.paragraph,e,n);if(!r.ok)return f(r.code,"that handle does not name a paragraph",r.detail);let d=n.story(r.value.story);return d?ne(l(d),r.value,a.delimiters,a.trimDelimiters===true,a.trimSpacing===true):f("invalid-handle","that story is not in this document")}case "getFont":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);let d=ot(a.span,e,n);if(!d.ok)return f(d.code,"that span is not a place",d.detail);let h=Ut(r.value,d.value);return N({kind:"font",font:fr(d.value.part,h,t.displayMode)})}case "setFont":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);if(!r.value)return f("invalid-offset","that story holds no paragraph to format","empty-story");let d=D(r.value);return d?Pt(l(d),r.value,a.font):f("invalid-handle","that story is not in this document")}case "getStyle":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);let d=ot(a.span,e,n);if(!d.ok)return f(d.code,"that span is not a place",d.detail);let h=d.value.part,P=d.value.styles(),O=At(r.value,d.value).map(L=>Ce(h,L,P)),T=O.length>0&&O.every(L=>L!==null&&L===O[0])?O[0]:null;return N({kind:"style",name:T})}case "setStyle":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);if(!r.value)return f("invalid-offset","that story holds no paragraph to style","empty-story");let d=D(r.value);return d?ht(l(d),r.value,a.name):f("invalid-handle","that story is not in this document")}case "getParagraphFormat":{let r=Le(a.paragraph,e,n);if(!r.ok)return f(r.code,"that is not a paragraph",r.detail);let d=n.story(r.value.story);if(!d)return f("document-unavailable","this host holds no document right now");let h=gr(d.part,r.value.paragraphId,d.styles());return h?N({kind:"paragraphFormat",format:h}):f("invalid-handle","that handle does not name a paragraph")}case "setParagraphFormat":{let r=Le(a.paragraph,e,n);if(!r.ok)return f(r.code,"that is not a paragraph",r.detail);let d=n.story(r.value.story);return d?q(l(d),r.value,a.format):f("invalid-handle","that story is not in this document")}case "deleteParagraph":{let r=pt(a.paragraph,e,n);if(!r.ok)return f(r.code,"that handle does not name a paragraph",r.detail);let d=n.story(r.value.story);return d?V(l(d),r.value):f("invalid-handle","that story is not in this document")}case "getSections":return e.resolve(a.document,"document")?N({kind:"handles",handles:n.sections().map(r=>e.section(r.index))}):f("invalid-handle","that handle does not name a document","document");case "getPageSetup":{let r=e.resolve(a.section,"section");if(!r||r.kind!=="section")return f("invalid-handle","that handle does not name a section","section");let d=n.sections()[r.index];return d?N({kind:"pageSetup",setup:d.pageSetup}):f("invalid-handle","that section is not in this document")}case "setPageSetup":{let r=e.resolve(a.section,"section");return !r||r.kind!=="section"?f("invalid-handle","that handle does not name a section","section"):gt(r.index,a.setup)}case "getFurniture":{let r=e.resolve(a.section,"section");if(!r||r.kind!=="section")return f("invalid-handle","that handle does not name a section","section");if(a.kind!=="header"&&a.kind!=="footer")return f("unknown-operation","that is not furniture",String(a.kind));let d={kind:a.kind,sectionIndex:r.index,variant:a.variant};return Oo(d)?n.sections()[r.index]?N({kind:"handle",handle:e.body(d)}):f("invalid-handle","that section no longer exists"):f("unknown-operation","that is not a furniture variant",String(a.variant))}case "getNotes":{if(!e.resolve(a.document,"document"))return f("invalid-handle","that handle does not name a document","document");if(a.noteKind!=="footnote"&&a.noteKind!=="endnote")return f("unknown-operation","that is not a kind of note",String(a.noteKind));let r=a.noteKind,d=n.noteIds(r);return d.ok?N({kind:"handles",handles:d.ids.map(h=>e.note(r,h))}):f("ambiguous-document",`${r} identities are not completely and unambiguously enumerable`,d.reason==="duplicates"?d.duplicateIds.join(","):d.reason)}case "getNoteBody":case "getNoteText":{let r=e.resolve(a.note,"note");if(!r||r.kind!=="note")return f("invalid-handle","that handle does not name a note","note");let d=r,h=n.story(d);return h?a.op==="getNoteText"?N({kind:"text",text:h.text(a.projection)}):N({kind:"handle",handle:e.body(d)}):f("invalid-handle","that note is not in this document",G(d))}case "getNoteKind":{let r=e.resolve(a.note,"note");return !r||r.kind!=="note"?f("invalid-handle","that handle does not name a note","note"):N({kind:"text",text:r.noteKind})}case "deleteNote":{let r=e.resolve(a.note,"note");if(!r||r.kind!=="note")return f("invalid-handle","that handle does not name a note","note");let d=n.noteIds(r.noteKind);return d.ok?d.ids.includes(r.noteId)?Q(r.noteKind,r.noteId):f("invalid-handle","that note is not in this document"):f("ambiguous-document",`${r.noteKind} identities are not completely and unambiguously enumerable`,d.reason==="duplicates"?d.duplicateIds.join(","):d.reason)}case "getLists":{let r=rt(a.body,"body",e,n);return r.ok?N({kind:"handles",handles:zt(r.value).map(d=>e.list(d.numId,r.value.story))}):f(r.code,"that handle does not name a body",r.detail)}case "getListId":{let r=Ot(a.list);return "list"in r?N({kind:"number",value:Number(r.list.numId)}):r}case "getListById":{let r=rt(a.body,"body",e,n);if(!r.ok)return f(r.code,"that handle does not name a body",r.detail);if(!Number.isInteger(a.id)||a.id<=0)return f("unsupported-content","a list is numbered from one",String(a.id));let d=String(a.id),h=zt(r.value).find(P=>P.numId===d);return h?N({kind:"handle",handle:e.list(h.numId,r.value.story)}):f("invalid-handle","no list in that story carries that number",d)}case "getListParagraphs":{let r=Ot(a.list);if(!("list"in r))return r;let d=a.level;if(d!==void 0&&(!Number.isInteger(d)||d<0||d>te))return f("invalid-offset",`a list level is 0 to ${String(te)}`,String(d));let h=r.plan.reads,P=d===void 0?r.list.paragraphIds:r.list.paragraphIds.filter(O=>me(h,O)?.level===d);return N({kind:"handles",handles:P.map(O=>e.paragraph(O,h.story))})}case "getParagraphList":{let r=pt(a.paragraph,e,n);if(!r.ok)return f(r.code,"that handle does not name a paragraph",r.detail);let d=n.story(r.value.story);if(!d)return f("invalid-handle","that story is not in this document");let h=me(d,r.value.paragraphId);return h?N({kind:"handle",handle:e.list(h.numId,d.story)}):f("unsupported-content","that paragraph is not in a list",r.value.paragraphId)}case "getListLevel":{let r=pt(a.paragraph,e,n);if(!r.ok)return f(r.code,"that handle does not name a paragraph",r.detail);let d=n.story(r.value.story);if(!d)return f("invalid-handle","that story is not in this document");let h=me(d,r.value.paragraphId);return h?N({kind:"number",value:h.level}):f("unsupported-content","that paragraph is not in a list",r.value.paragraphId)}case "setListLevel":{let r=pt(a.paragraph,e,n);if(!r.ok)return f(r.code,"that handle does not name a paragraph",r.detail);let d=n.story(r.value.story);return d?Xr(l(d),r.value.paragraphId,a.level):f("invalid-handle","that story is not in this document")}case "insertListParagraph":{let r=Ot(a.list);return "list"in r?Yr(r.plan,r.list,a.where,a.text):r}case "getHyperlink":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);let d=ot(a.span,e,n);if(!d.ok)return f(d.code,"that span is not a place",d.detail);let h=n.package;if(!h||!r.value)return N({kind:"text",text:""});let P=An(d.value,r.value);if(!P)return N({kind:"text",text:""});let O=chunkDGSJZMAE_cjs.Ga(d.value.part,P.id),T=O?Ar(h,d.value.part.name,O):null;return N({kind:"text",text:T??""})}case "setHyperlink":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);if(!r.value)return f("invalid-offset","that story holds no text to link","empty-story");let d=D(r.value);return d?Jr(l(d),r.value,a.target):f("invalid-handle","that story is not in this document")}case "getBookmarks":{let r=z(a.scope,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);let d=ot(a.scope,e,n);if(!d.ok)return f(d.code,"that span is not a place",d.detail);let h=d.value,P=r.value,O=P===null?null:new Set(At(P,h)),T=mn(h).filter(L=>{if(!O||!O.has(L.start.paragraphId)&&!O.has(L.end.paragraphId)||P===null)return false;let $=L.start.paragraphId===P.end.paragraphId&&L.start.offset>P.end.offset,X=L.end.paragraphId===P.start.paragraphId&&L.end.offset<P.start.offset;return !$&&!X});return N({kind:"handles",handles:T.map(L=>e.bookmark(L.name,h.story))})}case "getBookmarkName":{let r=e.resolve(a.bookmark,"bookmark");return !r||r.kind!=="bookmark"?f("invalid-handle","that handle does not name a bookmark","bookmark"):N({kind:"text",text:r.name})}case "getBookmarkRange":{let r=In(a.bookmark);return "reads"in r?N({kind:"span",span:C(r.range)}):r}case "getComments":{let r=z(a.scope,e,n);if(!r.ok)return f(r.code,"that scope is not a place",r.detail);let d=ot(a.scope,e,n);if(!d.ok)return f(d.code,"that scope names no story",d.detail);let h=d.value,P=k(h);if(!P)return f("document-unavailable","this host holds no document");let O=r.value,T=P.roots.filter(L=>{if(!O)return true;let $=L.range;if(!$)return false;let X=h.indexOf($.start.paragraphId),U=h.indexOf($.end.paragraphId),M=h.indexOf(O.start.paragraphId),B=h.indexOf(O.end.paragraphId);return U<M||X>B?false:U===M&&X===M&&B===M?$.end.offset>O.start.offset&&$.start.offset<O.end.offset:true});return N({kind:"handles",handles:T.map(L=>e.comment(L.id,h.story))})}case "getCommentReplies":{let r=b(a.comment);return r.ok?N({kind:"handles",handles:r.item.replyIds.map(d=>e.comment(d,r.reads.story))}):r.planned}case "getCommentId":{let r=b(a.comment);return r.ok?N({kind:"text",text:r.item.id}):r.planned}case "getCommentAuthor":{let r=b(a.comment);return r.ok?N({kind:"text",text:r.item.comment.author}):r.planned}case "getCommentDate":{let r=b(a.comment);return r.ok?N({kind:"text",text:r.item.comment.date??""}):r.planned}case "getCommentText":{let r=b(a.comment);if(!r.ok)return r.planned;let d=k(r.reads);return N({kind:"text",text:d?.textOf(r.item.id)??""})}case "getCommentRange":{let r=b(a.comment);if(!r.ok)return r.planned;let d=r.item.range;if(!d||r.item.orphaned)return f("invalid-handle","that comment has no range in this document");let h=S(r.reads,d);return h?N({kind:"span",span:h}):f("invalid-handle","that comment\u2019s range is no longer in the story")}case "getCommentResolved":{let r=b(a.comment);return r.ok?N({kind:"flag",value:r.item.resolved}):r.planned}case "insertComment":return Tr(a,e,n,x);case "setCommentResolved":{let r=b(a.comment);if(!r.ok)return r.planned;if(typeof a.resolved!="boolean")return f("unsupported-content","resolved is a yes or a no",String(a.resolved));let d=g(l(r.reads));return d||{ok:true,kind:"commentWrite",write:{kind:"resolve",commentId:r.item.id,resolved:a.resolved},story:r.reads.story,answer:()=>tt}}case "replyToComment":{let r=b(a.comment);if(!r.ok)return r.planned;let d=kn({author:a.author,text:a.text,date:a.date,kind:"reply"});if(d)return d;let h=r.item.range;if(!h||r.item.orphaned)return f("invalid-handle","that comment has no range to reply over");let P=g(l(r.reads));if(P)return P;let O=r.reads.story,T=bn(a.date);return {ok:true,kind:"commentWrite",write:{kind:"reply",parentCommentId:r.item.id,anchor:{paragraphId:h.start.paragraphId,start:h.start.offset,end:h.end.offset,...h.end.paragraphId===h.start.paragraphId?{}:{endParagraphId:h.end.paragraphId}},text:a.text,author:a.author,...T===void 0?{}:{date:T}},story:r.reads.story,answer:(L,$)=>$===void 0?tt:{kind:"handle",handle:e.comment($,O)}}}case "deleteComment":{let r=b(a.comment);return r.ok?Nr(r.item,r.reads,d=>g(l(d))):r.planned}case "getRevisions":{let r=rt(a.body,"body",e,n);if(!r.ok)return f(r.code,"that handle does not name a body",r.detail);let d=r.value;return N({kind:"handles",handles:gn(d).map(h=>e.revision(h.id,d.story))})}case "getRevisionType":{let r=v(a.revision);return r.ok?N({kind:"text",text:r.item.type}):r.planned}case "getRevisionAuthor":{let r=v(a.revision);return r.ok?N({kind:"text",text:r.item.author}):r.planned}case "getRevisionDate":{let r=v(a.revision);return r.ok?N({kind:"text",text:r.item.date}):r.planned}case "getRevisionRange":{let r=v(a.revision);if(!r.ok)return r.planned;let[d]=r.item.item.ranges;if(!d)return f("invalid-handle","that change covers no characters");let h=S(r.reads,d);return h?N({kind:"span",span:h}):f("invalid-handle","that change\u2019s range is no longer in the story")}case "acceptRevision":case "rejectRevision":{let r=v(a.revision);if(!r.ok)return r.planned;let d=l(r.reads),h=g(d);if(h)return h;let P=a.op==="acceptRevision";return {ok:true,kind:"command",story:r.reads.story,ops:r.item.item.addresses.map(O=>P?{op:"acceptRevision",revision:O}:{op:"rejectRevision",revision:O}),answer:()=>tt}}case "resolveRevisionBatch":case "acceptAllRevisions":case "rejectAllRevisions":return Sr(a,e,n,r=>g(l(r)));case "selectSpan":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);if(!r.value)return f("invalid-offset","that story holds no paragraph to select","empty-story");let d=D(r.value);return d?vn(l(d),r.value,a.mode):f("invalid-handle","that story is not in this document")}case "selectBookmark":{let r=In(a.bookmark);return "reads"in r?vn(l(r.reads),r.range,a.mode):r}case "getContentControls":{let r=Ue(a.scope);return "reads"in r?N({kind:"handles",handles:Er(r.reads,r.node).map(d=>e.contentControl(d.nodeId,r.reads.story))}):r}case "getContentControlById":{let r=Ue(a.scope);if(!("reads"in r))return r;if(!Number.isInteger(a.id))return f("unsupported-content","a control id is a whole number",String(a.id));let d=fe(r.node).find(h=>chunkDGSJZMAE_cjs.Ic(h).id===a.id);return d?N({kind:"handle",handle:e.contentControl(d.id,r.reads.story)}):f("invalid-handle","no control in that scope carries that id",String(a.id))}case "getContentControlsByTag":case "getContentControlsByTitle":{let r=Ue(a.scope);if(!("reads"in r))return r;let d=a.op==="getContentControlsByTag"?a.tag:a.title;if(typeof d!="string"||d.length===0)return f("unsupported-content","a tag or title to match is required",a.op);let h=fe(r.node).filter(P=>{let O=chunkDGSJZMAE_cjs.Ic(P);return a.op==="getContentControlsByTag"?O.tag===d:O.alias===d});return N({kind:"handles",handles:h.map(P=>e.contentControl(P.id,r.reads.story))})}case "getContentControlTag":case "getContentControlTitle":case "getContentControlFileId":case "getContentControlSubtype":case "getContentControlLock":{let r=Rt(a.contentControl);if(!("control"in r))return r;let d=r.control.properties;if(a.op==="getContentControlLock")return N({kind:"text",text:r.control.lock});if(a.op==="getContentControlSubtype")return N({kind:"text",text:d.type});if(a.op==="getContentControlFileId")return N({kind:"text",text:d.id===void 0?"":String(d.id)});let h=a.op==="getContentControlTag"?d.tag:d.alias;return N({kind:"text",text:h??""})}case "getContentControlIsBound":case "getContentControlPlaceholderShown":case "getContentControlTemporary":{let r=Rt(a.contentControl);if(!("control"in r))return r;let d=a.op==="getContentControlIsBound"?r.control.properties.dataBinding!==void 0:a.op==="getContentControlPlaceholderShown"?r.control.properties.showingPlaceholder:r.control.properties.temporary;return N({kind:"flag",value:d})}case "getContentControlText":{let r=Rt(a.contentControl);return "control"in r?N({kind:"text",text:Mr(r.reads,r.node,a.projection)}):r}case "getContentControlParagraphs":{let r=Rt(a.contentControl);return "control"in r?N({kind:"handles",handles:r.control.paragraphIds.map(d=>e.paragraph(d,r.reads.story))}):r}case "getContentControlRange":{let r=Rt(a.contentControl);if(!("control"in r))return r;let d=a.location??"whole";if(!_r.has(d))return f("unsupported-content","that is not a place in a control",d);let h=We(r.reads,r.node);if(!h)return f("unsupported-content","that control holds nothing addressable","empty");let P=d==="start"||d==="before"?h.start:h.end,O=d!=="whole"&&d!=="content",T=L=>({story:r.reads.story,paragraphId:L.paragraphId,index:r.reads.indexOf(L.paragraphId),offset:L.offset});return N({kind:"span",span:Nt(O?{start:T(P),end:T(P)}:{start:T(h.start),end:T(h.end)},e)})}case "setContentControlValue":{let r=Rt(a.contentControl);if(!("control"in r))return r;let d=Wr(a.value);if(!d.ok)return f(d.code,d.message,d.detail);let h=l(r.reads),P=g(h);return P||{ok:true,kind:"command",story:r.reads.story,ops:[{op:"setContentControlValue",controlId:r.control.nodeId,value:d.value}],answer:()=>tt}}case "setContentControlProperties":{let r=Rt(a.contentControl);if(!("control"in r))return r;if(a.tag===void 0&&a.title===void 0&&a.lock===void 0&&a.cannotEdit===void 0&&a.cannotDelete===void 0)return f("unsupported-content","nothing to write","no-properties");if(a.lock!==void 0&&!Br.has(a.lock))return f("unsupported-content","that is not a lock this schema declares",a.lock);for(let O of [a.cannotEdit,a.cannotDelete])if(O!==void 0&&typeof O!="boolean")return f("unsupported-content","lock flags must be boolean");let d=l(r.reads),h=a.lock;if(a.cannotEdit!==void 0||a.cannotDelete!==void 0){let O=h??s.get(d)?.get(r.control.nodeId)??r.control.properties.lock,T=a.cannotEdit??(O==="contentLocked"||O==="sdtContentLocked"),L=a.cannotDelete??(O==="sdtLocked"||O==="sdtContentLocked");h=T?L?"sdtContentLocked":"contentLocked":L?"sdtLocked":"unlocked";}let P=g(d);if(P)return P;if(h!==void 0){let O=s.get(d)??new Map;O.set(r.control.nodeId,h),s.set(d,O);}return {ok:true,kind:"command",story:r.reads.story,ops:[{op:"setContentControlProperties",controlId:r.control.nodeId,...a.tag===void 0?{}:{tag:a.tag},...a.title===void 0?{}:{alias:a.title},...h===void 0?{}:{lock:h}}],answer:()=>tt}}case "insertContentControlText":{let r=Rt(a.contentControl);if(!("control"in r))return r;if(typeof a.text!="string")return f("unsupported-content","text is required","text");if(a.at!=="replace"&&a.at!=="start"&&a.at!=="end")return f("unsupported-content","that is not a place to insert at",String(a.at));let d=l(r.reads),h=g(d);if(h)return h;let P=We(r.reads,r.node);if(!P)return f("unsupported-content","that control holds nothing addressable","empty");let O=a.at==="end"?P.end:P.start,T=()=>({kind:"span",span:C({start:{story:r.reads.story,paragraphId:O.paragraphId,index:r.reads.indexOf(O.paragraphId),offset:O.offset},end:{story:r.reads.story,paragraphId:O.paragraphId,index:r.reads.indexOf(O.paragraphId),offset:O.offset+a.text.length}})});return a.at==="replace"?{ok:true,kind:"command",story:r.reads.story,ops:[{op:"setContentControlValue",controlId:r.control.nodeId,value:{kind:"text",text:a.text}}],answer:T}:{ok:true,kind:"command",story:r.reads.story,ops:a.text.length===0?[]:[{op:"insertText",paragraphId:O.paragraphId,offset:O.offset,text:a.text,inside:r.node.id}],answer:T}}case "deleteContentControl":{let r=Rt(a.contentControl);if(!("control"in r))return r;if(typeof a.keepContent!="boolean")return f("unsupported-content","keepContent is required","keepContent");let d=l(r.reads),h=g(d);return h||{ok:true,kind:"command",story:r.reads.story,ops:[{op:"removeContentControl",controlId:r.control.nodeId,keepContent:a.keepContent}],answer:()=>tt}}case "insertContentControl":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);if(!r.value)return f("invalid-offset","that story holds nothing to wrap","empty-story");let d=D(r.value);if(!d)return f("invalid-handle","that story is not in this document");let h=r.value;if(h.start.paragraphId!==h.end.paragraphId)return f("unsupported-content","wrapping several paragraphs in one control is not supported here","multi-paragraph");if(!Vr.has(a.subtype))return f("unsupported-content","that control type cannot be inserted",a.subtype);let P=new Set(fe(d.root).map($=>$.id)),O=l(d),T=g(O);if(T)return T;let L=E(O,h.start.paragraphId);return L||{ok:true,kind:"command",story:d.story,ops:[{op:"insertContentControl",paragraphId:h.start.paragraphId,start:h.start.offset,end:h.end.offset,type:a.subtype,...a.tag===void 0?{}:{tag:a.tag},...a.title===void 0?{}:{alias:a.title}}],answer:$=>{if(!a.returnHandle)return tt;let X=$.story(d.story),U=X&&fe(X.root).find(M=>!P.has(M.id));if(!U)throw new Error("content control insertion did not create a control");return {kind:"handle",handle:e.contentControl(U.id,d.story)}}}}case "insertCustomNode":{let r=zr(a);if(r)return f("unsupported-content",r.message,r.detail);let d=$r(a.payload);if(!d.ok)return f("unsupported-content","that payload cannot be written",d.field);let h=Gr(a,e,n);if("code"in h)return f(h.code,h.message,h.detail);let{start:P,end:O}=h.range,T=D(h.range);if(!T)return f("invalid-handle","that story is not in this document");let L=g(l(T));return L||{ok:true,kind:"customNodeWrite",story:T.story,write:Kr(a,P,O,d.value),answer:()=>tt}}default:return f("unknown-operation","this host does not implement that operation",String(a.op))}};return {plan(a,p){if(m&&Wt(a))return f("conflicting-operations","header/footer creation must commit alone");let y=u.conflict(a);if(y)return f("conflicting-operations",y.message,y.detail);let I=Qr(a,p);if(I.ok&&I.kind==="command"&&I.solitary){if(u.hasCommands)return f("conflicting-operations","header/footer creation must commit alone");m=true;}return I.ok&&u.note(a),I},get hasCommands(){return u.hasCommands},get writeScope(){return A?.reads.scope??null},settle(a){let p=A;if(p){let y=a.story(p.reads.story),I=y&&chunkDGSJZMAE_cjs.Ga(y.part,p.reads.root.id),R=y&&I&&I.id!==y.root.id?Ee(y,I):y;if(!R)return {ok:false,detail:`the story this batch wrote is gone: ${G(p.reads.story)}`};let r=new Set(p.reads.paragraphIds),d=R.paragraphIds.filter(P=>!r.has(P));if(d.length!==p.created.length+p.externalCreatedCount)return {ok:false,detail:`planned ${String(p.created.length+p.externalCreatedCount)} new paragraphs, the transaction made ${String(d.length)}`};p.order.filter(P=>P.id===null).forEach((P,O)=>{P.id=d[O]??null;});for(let P of p.retargets)P.slot.id&&e.retarget(P.from,P.slot.id);}for(let y of c){let I=a.story(y.range.start.story);!I||!Wo(y.range,I)||t.select?.(y.range,y.mode);}return {ok:true}}}}var ci=Object.freeze({status:"skipped"});function ut(t,e,o){return Object.freeze(o===void 0?{code:t,message:e}:{code:t,message:e,detail:o})}function pi(t){if(t==="review-module-required"||t==="automation-structural-tracking-unsupported")return ut("unsupported-capability","this edit requires a supported review mode",t);let e=t==="unsupported-revision"||t.startsWith("unsupported-revision:");return ut(e?"unsupported-revision":"transaction-refused",e?"that story contains a tracked change this engine cannot resolve":"the document store refused the transaction",t)}function yt(t,e,o,n){return {ok:false,results:t.map((i,s)=>s===e?{status:"error",error:o}:ci),revision:n,changed:false}}function ru(t){let{port:e}=t,o=Object.freeze({...t.capabilities}),n=Lo(),i=new Set,s=false,l={mode:"Off"},c=0,u=null,m=null,A=o.events?e.subscribe(()=>{if(s)return;let b=Object.freeze({revision:e.revision()});if(c>0)u=b;else for(let v of [...i])v(b);}):()=>{},g=b=>{if(m&&m.pkg===b)return m.value;let v=ue(b);return m={pkg:b,value:v},v},x=b=>{let v=Array.isArray(b?.operations)?b.operations:[],S=e.revision();if(s)return yt(v,0,ut("disposed","this host was disposed"),S);if(!o.document)return yt(v,0,ut("unsupported-capability","this host has no document","document"),S);let w=e.currentPackage();if(!w)return yt(v,0,ut("document-unavailable","this host holds no document right now"),S);if(b.expectedRevision!==void 0&&b.expectedRevision!==S)return yt(v,0,ut("stale-revision","the document moved since that revision",`expected ${String(b.expectedRevision)}, at ${S}`),S);let H=xn({handles:n,reads:g(w),capabilities:o,...e.revisionDisplayMode?{displayMode:e.revisionDisplayMode()}:{},...e.replacementLanding?{replacementLanding:e.replacementLanding.bind(e)}:{},...e.fieldPageContext?{fieldPageContext:e.fieldPageContext.bind(e)}:{},...e.select?{select:e.select.bind(e)}:{}}),E=[],j=[],F=null,K=[],C=[],D=null,Z,et=null,_=-1,nt=l;for(let V=0;V<v.length;V+=1){let Pt=v[V];if(e.suggesting?.()&&Pt.op!=="replaceSpan"&&!rn(Pt))return yt(v,V,ut("unsupported-capability","this operation has no supported tracked form in suggesting mode"),S);let ht=Eo(Pt,e.localChangeTracking===true,nt),q=ht?.step??H.plan(Pt,nt.author);if(ht&&(nt=ht.state),!q.ok)return yt(v,V,q.error,S);if(E.push(q),q.kind==="command")if(q.packageEdits&&K.push(...q.packageEdits),_<0&&(_=V),q.lifecycle)F=q.ops[0]??null;else if(q.relate){let gt=q.relate;j.push(Q=>{let Ot=Q(gt.url);return Ot===null?null:gt.ops(Ot)});}else {let{ops:gt}=q;j.push(()=>gt);}else q.kind==="commentWrite"?(_<0&&(_=V),C.push(q.write),D=H.writeScope??{kind:"body"}):q.kind==="customNodeWrite"&&(_<0&&(_=V),et={write:q.write,scope:H.writeScope??{kind:"body"}});}let at=false;if(C.length>0){let V=e.applyCommentWrites(C,D??{kind:"body"});if(!V.ok)return yt(v,_<0?0:_,ut("transaction-refused","the document store refused the comment write",V.reason),S);at=V.changed,Z=V.commentId;}if(et){let V=e.applyCustomNodeWrite(et.write,et.scope);if(!V.ok)return yt(v,_<0?0:_,ut("transaction-refused","the document store refused the custom-node write",V.reason),S);at=V.changed;}if(F){let V=e.applyLifecycle(F);if(!V.ok)return yt(v,_<0?0:_,ut("transaction-refused","the document store refused the transaction",V.reason),S);at=V.changed;}if(j.length>0){let V=e.apply(Pt=>{let ht=[];for(let q of j){let gt=q(Pt);if(gt===null)return null;ht.push(...gt);}return ht},H.writeScope??{kind:"body"},K);if(!V.ok)return yt(v,_<0?0:_,pi(V.reason),S);at=V.changed;}let ct=e.currentPackage();if(!ct)return yt(v,0,ut("document-unavailable","this host holds no document right now"),S);let Mt=g(ct),Et=H.settle(Mt);return Et.ok?(l=nt,{ok:true,results:E.map(V=>({status:"ok",value:V.kind==="query"?V.value:V.kind==="customNodeWrite"?V.answer(Mt):V.answer(Mt,Z)})),revision:e.revision(),changed:at}):yt(v,_<0?0:_,ut("transaction-refused","the transaction did not produce the document the batch planned",Et.detail),e.revision())};return {capabilities:o,revision:()=>e.revision(),execute:b=>{c+=1;try{return x(b)}finally{if(c-=1,c===0&&u){let v=u;u=null;for(let S of [...i])S(v);}}},...e.prepare?{prepare:e.prepare.bind(e)}:{},save(){if(s)return {ok:false,error:ut("disposed","this host was disposed")};if(!o.save)return {ok:false,error:ut("unsupported-capability","this host cannot save","save")};let b=e.save();return b?{ok:true,bytes:b}:{ok:false,error:ut("document-unavailable","this host holds no document right now")}},subscribe(b){return s||!o.events?()=>{}:(i.add(b),()=>{i.delete(b);})},dispose(){s||(s=true,i.clear(),A(),e.dispose(),m=null);}}}
|
|
1
|
+
'use strict';var chunkTE43S3LX_cjs=require('./chunk-TE43S3LX.cjs'),chunkBNZF6DYC_cjs=require('./chunk-BNZF6DYC.cjs'),chunkPYXMAUNR_cjs=require('./chunk-PYXMAUNR.cjs'),chunkITNK6C5M_cjs=require('./chunk-ITNK6C5M.cjs'),chunkMXOO7KRI_cjs=require('./chunk-MXOO7KRI.cjs');function ea(t){let e=[];for(let o of t.pages){let n=o.pageFieldSource?.pageNumber??o.index+1,i=chunkBNZF6DYC_cjs.lc(n,o.pageFieldSource?.format),s=l=>{for(let c of l)if(c.kind==="paragraph")for(let u of c.lines)e.push({...u.range,pageNumber:n,pageNumberText:i});else for(let u of c.rows)for(let m of u.cells)s(m.blocks);};s(o.fragments),o.header&&s(o.header.fragments),o.footer&&s(o.footer.fragments);for(let l of o.footnotes?.notes??[])s(l.fragments);for(let l of o.endnotes?.notes??[])s(l.fragments);}return {pageCount:t.pages.length,ranges:e}}function hi(t,e,o,n){if(!t||!Number.isInteger(t.pageCount)||t.pageCount<1)return null;let i=chunkMXOO7KRI_cjs.Ha(e,o);if(!i||i.kind!=="paragraph")return null;let s=chunkMXOO7KRI_cjs.Se(i).find(c=>c.node.id===n);if(!s)return null;let l=t.ranges.find(c=>c.paragraphId===o&&c.start<=s.start&&c.end>s.start);return !l||!Number.isInteger(l.pageNumber)||l.pageNumber<1?null:{pageNumber:l.pageNumber,pageNumberText:l.pageNumberText,pageCount:t.pageCount}}function ki(t){return async e=>{let o=chunkTE43S3LX_cjs.e(e,{measurer:t.measurer,producer:t.producer,displayMode:"proposed"});if(!o.ok)throw new Error("field pagination could not open the document");try{return ea(await o.session.layout())}finally{o.session.dispose();}}}var Se=Object.freeze(["default","first","even"]),Ft=Object.freeze({kind:"body"});function G(t){switch(t.kind){case "body":return "body";case "note":return `note:${t.noteKind}:${String(t.noteId)}`;default:return `${t.kind}:${String(t.sectionIndex)}:${t.variant}`}}function Oo(t){if(typeof t!="object"||t===null)return false;let e=t;return e.kind==="body"?true:e.kind==="note"?(e.noteKind==="footnote"||e.noteKind==="endnote")&&Number.isInteger(e.noteId):e.kind!=="header"&&e.kind!=="footer"?false:Number.isInteger(e.sectionIndex)&&e.sectionIndex>=0&&Se.includes(e.variant)}var Ai=["getTables","getTable","getTableRows","getTableCells","getTableCell","getTableCellProperties","getTableCellBody","getFields","getField","getInlinePictures","getInlinePicture","getChangeTrackingMode","getDocument","getBody","getParagraphs","getRange","getSpanParagraphs","getText","getSpanText","getParagraphId","search","getFont","getParagraphFormat","getStyle","getSections","getPageSetup","getFurniture","getNotes","getNoteBody","getNoteText","getNoteKind","getLists","getListId","getListById","getListParagraphs","getParagraphList","getListLevel","getHyperlink","getBookmarks","getBookmarkName","getBookmarkRange","getComments","getCommentReplies","getCommentId","getCommentAuthor","getCommentDate","getCommentText","getCommentRange","getCommentResolved","getRevisions","getRevisionType","getRevisionAuthor","getRevisionDate","getRevisionRange","getContentControls","getContentControlById","getContentControlsByTag","getContentControlsByTitle","getContentControlTag","getContentControlTitle","getContentControlFileId","getContentControlSubtype","getContentControlLock","getContentControlIsBound","getContentControlPlaceholderShown","getContentControlTemporary","getContentControlText","getContentControlParagraphs","getContentControlRange"],na=["insertTable","updateTable","updateTableCell","setInlinePicture","deleteInlinePicture","insertField","setFieldCode","deleteField","updateFieldResult","insertInlinePicture","insertBreak","setChangeTrackingMode","proposeInsertion","proposeDeletion","proposeReplacement","insertText","replaceSpan","replaceStoryBlocks","insertParagraph","splitParagraph","deleteParagraph","selectSpan","selectBookmark","setFont","setParagraphFormat","setStyle","setPageSetup","deleteNote","setListLevel","startNewList","attachToList","detachFromList","setListLevelFormat","insertListParagraph","setHyperlink","insertComment","setCommentResolved","replyToComment","deleteComment","acceptRevision","rejectRevision","resolveRevisionBatch","acceptAllRevisions","rejectAllRevisions","setContentControlValue","setContentControlProperties","deleteContentControl","insertContentControlText","insertContentControl","insertCustomNode"],oa=["resolveRevisionBatch","insertTable","insertInlinePicture","insertBreak","startNewList","deleteNote","insertComment","setCommentResolved","replyToComment","insertCustomNode"],ra=new Set(oa);function nn(t){return ra.has(t.op)||t.op==="updateTable"&&["addRows","addColumns","deleteRows","deleteColumns","delete"].includes(t.mutation.kind)}var aa=new Set(na);function Wt(t){return aa.has(t.op)}var ia=63360;function Tt(t){return Math.round(chunkMXOO7KRI_cjs.cf(chunkMXOO7KRI_cjs.af(t))*100)/100}function sa(t,e){if(typeof t!="number"||!Number.isFinite(t))return null;let o=chunkMXOO7KRI_cjs.df(chunkMXOO7KRI_cjs.bf(t));return o>ia||o<0||o===0&&!e?null:o}var la=[["pageWidth","pageWidthTwips",false],["pageHeight","pageHeightTwips",false],["topMargin","marginTopTwips",true],["rightMargin","marginRightTwips",true],["bottomMargin","marginBottomTwips",true],["leftMargin","marginLeftTwips",true]];function Ro(t){if(typeof t!="object"||t===null)return {ok:false,reason:"that is not a page setup",detail:"not-an-object"};let e=t,o={},n=0;for(let[s,l,c]of la){let u=e[s];if(u===void 0)continue;let m=sa(u,c);if(m===null)return {ok:false,reason:`that is not a value for ${s}`,detail:String(u)};o[l]=m,n+=1;}let i=e.orientation;if(i!==void 0){if(i!=="portrait"&&i!=="landscape")return {ok:false,reason:"that is not an orientation",detail:String(i)};o.orientation=i,n+=1;}return n===0?{ok:false,reason:"that page setup names nothing to write",detail:"empty"}:{ok:true,value:o}}function da(t){let e=chunkMXOO7KRI_cjs.Th(t),o=e.widthTwips>e.heightTwips?"landscape":"portrait";return Object.freeze({pageWidth:Tt(e.widthTwips),pageHeight:Tt(e.heightTwips),orientation:o,topMargin:Tt(e.topTwips),rightMargin:Tt(e.rightTwips),bottomMargin:Tt(e.bottomTwips),leftMargin:Tt(e.leftTwips),headerDistance:Tt(e.headerTwips),footerDistance:Tt(e.footerTwips),gutter:Tt(e.gutterTwips)})}function ua(t,e){if(!e)return null;let o=null,n=(i,s,l)=>{if(o!==null||i.kind==="textValue"||l>64)return;let c=i.kind==="paragraph"?i.id:s;if(i.id===e.id){o=c;return}for(let u of i.children)n(u,c,l+1);};return n(t.root,null,0),o}function So(t,e,o){let n=chunkMXOO7KRI_cjs.Nd(e.root);return Object.freeze(n.map((i,s)=>{let l=o[s];return Object.freeze({index:s,markParagraphId:ua(e,i),pageSetup:da(i),titlePage:l?.titlePage??false,evenAndOddHeaders:l?.evenAndOddHeaders??false})}))}var ca=255,pa=Object.freeze({nameOf:()=>null,idOf:()=>null,defaultId:null,present:false});function Co(t){let e=chunkMXOO7KRI_cjs.nf(t);if(!e)return pa;let o=new Map,n=new Map,i=null;for(let s of chunkMXOO7KRI_cjs.mf(e).values())if(s.type==="paragraph"){if(o.set(s.styleId,s.name),s.name!==null){let l=s.name.trim().toLowerCase();n.has(l)||n.set(l,s.styleId);}s.isDefault&&i===null&&(i=s.styleId);}return Object.freeze({nameOf:s=>o.get(s)??null,idOf:s=>n.get(s.trim().toLowerCase())??null,defaultId:i,present:true})}function Ce(t,e,o){let n=chunkMXOO7KRI_cjs.Ha(t,e);if(!n||n.kind!=="paragraph")return null;let i=ma(chunkMXOO7KRI_cjs.Qe(chunkMXOO7KRI_cjs.Oe(n),"pStyle"));return i!==null?o.nameOf(i):o.defaultId===null?null:o.nameOf(o.defaultId)}function ma(t){if(!t)return null;for(let e of t.attributes)if(e.localName==="val")return e.value;return null}function we(t,e){if(typeof t!="string"||t.trim().length===0)return {ok:false,detail:"style: not a name"};if(t.length>ca)return {ok:false,detail:"style: name too long"};if(!chunkMXOO7KRI_cjs.O(t))return {ok:false,detail:"style: not valid XML text"};if(!e.present)return {ok:false,detail:"style: this document defines no styles"};let o=e.idOf(t);return o===null?{ok:false,detail:"style: this document defines no paragraph style with that name"}:{ok:true,styleId:o}}function wo(t,e,o){return e>=o?null:{text:t.text.slice(e-t.rawStart,o-t.rawStart),rawStart:e,rawEnd:o}}function fa(t,e){let o=[],n=0;for(let i of t){for(;n<e.length&&e[n].end<=i.rawStart;)n+=1;let s=i.rawEnd-i.rawStart;if(i.text.length!==s){let u=e[n];(!u||u.start>=i.rawEnd)&&o.push(i);continue}let l=i.rawStart;for(;n<e.length;){let u=e[n];if(u.end<=l){n+=1;continue}if(u.start>=i.rawEnd)break;let m=wo(i,l,Math.min(u.start,i.rawEnd));if(m&&o.push(m),l=Math.max(l,u.end),u.end<=i.rawEnd&&(n+=1),l>=i.rawEnd)break}let c=wo(i,l,i.rawEnd);c&&o.push(c);}return o}function Te(t,e,o){if(o==="model")return chunkPYXMAUNR_cjs.b(e);let n=chunkPYXMAUNR_cjs.c(t,e,o);if(o==="allMarkup")return chunkPYXMAUNR_cjs.a(n);let i=ga(t);if(i.length===0)return chunkPYXMAUNR_cjs.a(n);let s=fa(n,i);return chunkPYXMAUNR_cjs.a(s)}function ga(t){let e=chunkMXOO7KRI_cjs.Ue(t),o=[],n=(s,l)=>{if(!(l>64||s.kind==="textValue")){if(s.kind==="revisionInsert"||s.kind==="revisionMoveTo"){let c=e.spanOf(s);c&&c.end>c.start&&o.push({start:c.start,end:c.end});return}for(let c of s.children)n(c,l+1);}};n(t,0),o.sort((s,l)=>s.start-l.start||l.end-s.end);let i=[];for(let s of o){let l=i[i.length-1];l&&s.start<=l.end?l.end=Math.max(l.end,s.end):i.push({...s});}return i}var on="\r",ya=Object.freeze({nameOf:()=>null,idOf:()=>null,defaultId:null,present:false}),ha=Object.freeze([]),ka=Object.freeze([]),To=Object.freeze([]),ba=Object.freeze({package:null,body:null,story:()=>null,storyOf:()=>null,sections:()=>ka,furniture:()=>To,noteIds:()=>({ok:true,ids:No}),styles:()=>ya});function xa(t){return t.kind==="textValue"?ha:Object.freeze(t.children.filter(e=>e.kind!=="textValue").map(e=>{let o=[];chunkMXOO7KRI_cjs.Cd([e],o,0);let n=e.kind==="paragraph"?"paragraph":e.kind==="table"?"table":"other",i=e.kind==="paragraph"&&chunkMXOO7KRI_cjs.Qe(chunkMXOO7KRI_cjs.Oe(e),"sectPr")!==void 0;return Object.freeze({id:e.id,kind:n,paragraphIds:Object.freeze(o.map(s=>s.id)),removable:n!=="other"&&!i})}))}function Ne(t,e,o,n,i){let s=chunkMXOO7KRI_cjs.Bd(n),l=Object.freeze(s.map(k=>k.id)),c=new Map,u=new Map;s.forEach((k,b)=>{c.set(k.id,b),u.set(k.id,k);});let m=new Map,A=k=>{if(!c.has(k))return null;let b=m.get(k);if(b!==void 0)return b;let v=chunkMXOO7KRI_cjs.Di(e,k)??"";return m.set(k,v),v},g=new Map,x=(k,b="allMarkup")=>{let v=u.get(k);if(!v||v.kind!=="paragraph")return null;let S=`${k}:${b}`,w=g.get(S);if(w)return w;let H=Te(v,A(k)??"",b);return g.set(S,H),H};return {story:t,part:e,root:n,scope:o,paragraphIds:l,blocks:xa(n),has:k=>c.has(k),indexOf:k=>c.get(k)??-1,paragraph(k){let b=u.get(k);return b?{nodeId:k,paraId:chunkMXOO7KRI_cjs.Fb(b),text:x(k)?.text??""}:null},node:k=>u.get(k)??null,rawText:A,paragraphText:(k,b)=>x(k,b)?.text??null,projectedText:x,text:k=>l.map(b=>x(b,k)?.text??"").join(on),styles:i}}function Ee(t,e){let o=Ne(t.story,t.part,t.scope,e,t.styles);return {...o,indexOf:n=>o.has(n)?t.indexOf(n):-1}}function ue(t){let e=t.parts.get(t.mainDocumentPart);if(!e)return ba;let o,n=()=>o??=Co(t),i,s=()=>i??=chunkMXOO7KRI_cjs.Pd(t),l,c=new Map,u=new Map,m=b=>{let v=u.get(b);if(v)return v;let S=chunkMXOO7KRI_cjs.Wf(t,b);if(!S){let C={ok:true,ids:No};return u.set(b,C),C}let w=[],H=new Set,E=new Set,j=0,F=false;for(let C of S.root.children){if(chunkMXOO7KRI_cjs.hd(C)!==b)continue;if(j+=1,C.kind!=="note"){F=true;continue}if(!chunkMXOO7KRI_cjs.kd(C))continue;let D=chunkMXOO7KRI_cjs.id(C);if(D===null){F=true;continue}H.has(D)?E.add(D):(H.add(D),w.push(D));}let K=j>chunkMXOO7KRI_cjs.rd?{ok:false,reason:"truncated"}:F?{ok:false,reason:"malformed"}:E.size>0?{ok:false,reason:"duplicates",duplicateIds:Object.freeze([...E])}:{ok:true,ids:Object.freeze(w)};return u.set(b,K),K},A=b=>{let v=s()[b.sectionIndex];return v?(b.kind==="header"?v.headers:v.footers).get(b.variant)??null:null},g=b=>{if(b.kind==="body"){let S=chunkMXOO7KRI_cjs.Ad(e);return S?Ne(b,e,{kind:"body"},S,n):null}if(b.kind==="note"){let S=m(b.noteKind);if(!S.ok||!S.ids.includes(b.noteId))return null;let w=chunkMXOO7KRI_cjs.Wf(t,b.noteKind);if(!w)return null;let H=chunkMXOO7KRI_cjs.vd(w.root,b.noteId);return !H||!chunkMXOO7KRI_cjs.kd(H)?null:Ne(b,w,{kind:"notesPart",noteKind:b.noteKind},H,n)}let v=A(b);return v?Ne(b,v.part,{kind:"headerFooter",rId:v.rId},v.part.root,n):null},x=b=>{let v=G(b);if(c.has(v))return c.get(v)??null;let S=g(b);return c.set(v,S),S};return {package:t,get body(){return x(Ft)},story:x,storyOf:b=>{if(x(Ft)?.has(b))return Ft;for(let[S]of s().entries())for(let w of ["header","footer"])for(let H of Se){let E={kind:w,sectionIndex:S,variant:H};if(x(E)?.has(b))return E}for(let S of ["footnote","endnote"]){let w=m(S);if(w.ok)for(let H of w.ids){let E={kind:"note",noteKind:S,noteId:H};if(x(E)?.has(b))return E}}return null},sections:()=>l??=So(t,e,s()),furniture(b){let v=s()[b];if(!v)return To;let S=[];for(let w of ["header","footer"]){let H=w==="header"?v.headers:v.footers;for(let E of Se){let j=H.get(E);j&&S.push(Object.freeze({kind:w,variant:E,declared:!j.inherited}));}}return Object.freeze(S)},noteIds:m,styles:n}}var No=Object.freeze([]);function Eo(t,e,o){let n=i=>({state:o,step:{ok:false,error:{code:"unsupported-capability",message:i,detail:"changeTrackingMode"}}});return t.op==="getChangeTrackingMode"||t.op==="setChangeTrackingMode"?e?t.op==="getChangeTrackingMode"?{state:o,step:{ok:true,kind:"query",value:{kind:"text",text:o.mode}}}:t.mode!=="Off"&&t.mode!=="TrackMineOnly"?n("TrackAll requires shared tracking enforcement for every peer and is not supported"):t.mode==="TrackMineOnly"&&(typeof t.author!="string"||!t.author.trim()||!chunkMXOO7KRI_cjs.O(t.author))?n("TrackMineOnly requires a non-empty XML-safe runtime author"):{state:{mode:t.mode,...t.mode==="TrackMineOnly"?{author:t.author.trim()}:{}},step:{ok:true,kind:"query",value:{kind:"applied"}}}:n("this host does not support runtime-local change tracking"):o.mode==="Off"||rn(t)?null:n(`${t.op} does not support TrackMineOnly; no permanent edit was applied`)}function rn(t){return !Wt(t)||t.op==="setChangeTrackingMode"||t.op==="insertText"||t.op==="replaceSpan"&&!("body"in t.span)?true:["proposeInsertion","proposeDeletion","proposeReplacement","insertComment","replyToComment","deleteComment","setCommentResolved","acceptRevision","rejectRevision","resolveRevisionBatch","acceptAllRevisions","rejectAllRevisions","selectSpan","selectBookmark"].includes(t.op)}function Aa(){let t=globalThis.crypto,e=t?.getRandomValues;if(typeof e!="function")throw new Error("automation: no secure random source. globalThis.crypto.getRandomValues is required to scope document handles to one host.");let o=e.call(t,new Uint8Array(16)),n="";for(let i of o)n+=i.toString(16).padStart(2,"0");return n}function va(t){return typeof t=="object"&&t!==null&&"kind"in t&&"ref"in t}function Lo(){let t=new Map,e=new Map,o=new Map,n=new Map,i=Aa(),s=null,l=(u,m)=>{let A=(n.get(u)??0)+1;n.set(u,A);let g=`${u}:${i}:${String(A)}`;return t.set(g,m),Object.freeze({kind:u,ref:g})},c=(u,m,A)=>{let g=`${u}\0${m}`,x=o.get(g);if(x)return Object.freeze({kind:u,ref:x});let k=l(u,A);return o.set(g,k.ref),k};return {document(){return s??=l("document",{kind:"document"}),s},body(u,m){return c("body",`${G(u)}:${m??""}`,{kind:"body",story:u,...m?{rootNodeId:m}:{}})},table(u,m){return c("table",`${G(m)}:${u}`,{kind:"table",nodeId:u,story:m})},tableRow(u,m){return c("tableRow",`${G(m)}:${u}`,{kind:"tableRow",nodeId:u,story:m})},tableCell(u,m){return c("tableCell",`${G(m)}:${u}`,{kind:"tableCell",nodeId:u,story:m})},field(u,m,A){return c("field",`${G(A)}:${m}`,{kind:"field",paragraphId:u,fieldNodeId:m,story:A})},inlinePicture(u,m){return c("inlinePicture",`${G(m)}:${u}`,{kind:"inlinePicture",drawingNodeId:u,story:m})},paragraph(u,m){let A=e.get(u);if(A)return Object.freeze({kind:"paragraph",ref:A});let g=l("paragraph",{kind:"paragraph",paragraphId:u,story:m});return e.set(u,g.ref),g},section(u){return c("section",String(u),{kind:"section",index:u})},note(u,m){return c("note",`${u}:${String(m)}`,{kind:"note",noteKind:u,noteId:m})},comment(u,m){return c("comment",`${G(m)}\0${u}`,{kind:"comment",commentId:u,story:m})},revision(u,m){return c("revision",`${G(m)}\0${u}`,{kind:"revision",revisionId:u,story:m})},bookmark(u,m){return c("bookmark",`${G(m)}\0${u}`,{kind:"bookmark",name:u,story:m})},list(u,m){return c("list",`${G(m)}\0${u}`,{kind:"list",numId:u,story:m})},contentControl(u,m){return c("contentControl",`${G(m)}\0${u}`,{kind:"contentControl",nodeId:u,story:m})},retarget(u,m){let A=e.get(u);if(!A||u===m)return;let g=t.get(A);!g||g.kind!=="paragraph"||(e.delete(u),t.set(A,{kind:"paragraph",paragraphId:m,story:g.story}),e.has(m)||e.set(m,A));},resolve(u,m){if(!va(u)||u.kind!==m||typeof u.ref!="string")return null;let A=t.get(u.ref);return !A||A.kind!==m?null:A}}}function bt(t,e){return {ok:false,code:t,detail:e}}function xt(t){return {ok:true,value:t}}function rt(t,e,o,n){let i=o.resolve(t,e);if(!i||i.kind!=="body"&&i.kind!=="paragraph")return bt("invalid-handle",`not-a-${e}-handle`);let s=n.story(i.story);if(!s)return bt("invalid-handle",`no-such-story:${G(i.story)}`);if(i.kind==="body"&&i.rootNodeId){let l=chunkMXOO7KRI_cjs.Ha(s.part,i.rootNodeId);return !l||l.kind!=="tableCell"?bt("invalid-handle","cell no longer exists"):xt(Ee(s,l))}return xt(s)}function pt(t,e,o){let n=e.resolve(t,"paragraph");if(!n||n.kind!=="paragraph")return bt("invalid-handle","not-a-paragraph-handle");let i=o.story(n.story);if(!i)return bt("invalid-handle",`no-such-story:${G(n.story)}`);let s=i.indexOf(n.paragraphId);return s<0?bt("invalid-handle","paragraph-not-in-body"):xt({story:n.story,paragraphId:n.paragraphId,index:s,offset:0})}function Ia(t,e,o){let n=pt(t.paragraph,e,o);if(!n.ok)return n;let s=(o.story(n.value.story)?.rawText(n.value.paragraphId)??"").length,{offset:l}=t;return !Number.isInteger(l)||l<0||l>s?bt("invalid-offset",`offset ${String(l)} outside 0..${String(s)}`):xt({...n.value,offset:l})}function qt(t,e,o){if("paragraph"in t){if(!("at"in t))return Ia(t,e,o);let c=pt(t.paragraph,e,o);if(!c.ok||t.at==="start")return c;let m=(o.story(c.value.story)?.rawText(c.value.paragraphId)??"").length;return xt({...c.value,offset:m})}let n=rt(t.body,"body",e,o);if(!n.ok)return n;let i=n.value.paragraphIds;if(i.length===0)return bt("invalid-offset","empty-story");if(t.at==="start")return xt({story:n.value.story,paragraphId:i[0],index:n.value.indexOf(i[0]),offset:0});let s=i.length-1,l=i[s];return xt({story:n.value.story,paragraphId:l,index:n.value.indexOf(l),offset:(n.value.rawText(l)??"").length})}function Pa(t,e){return t.index<e.index||t.index===e.index&&t.offset<=e.offset}function Oa(t){let e=t.paragraphIds;if(e.length===0)return null;let o=e.length-1,n=e[o];return {start:{story:t.story,paragraphId:e[0],index:t.indexOf(e[0]),offset:0},end:{story:t.story,paragraphId:n,index:t.indexOf(n),offset:(t.rawText(n)??"").length}}}function z(t,e,o){if("body"in t){let s=rt(t.body,"body",e,o);return s.ok?xt(Oa(s.value)):s}if("paragraph"in t){let s=pt(t.paragraph,e,o);if(!s.ok)return s;let c=(o.story(s.value.story)?.rawText(s.value.paragraphId)??"").length;return xt({start:s.value,end:{...s.value,offset:c}})}let n=qt(t.start,e,o);if(!n.ok)return n;let i=qt(t.end,e,o);return i.ok?G(n.value.story)!==G(i.value.story)?bt("invalid-handle","span-crosses-stories"):Pa(n.value,i.value)?xt({start:n.value,end:i.value}):bt("invalid-offset","span-start-after-end"):i}function ot(t,e,o){if("body"in t)return rt(t.body,"body",e,o);if("paragraph"in t)return rt(t.paragraph,"paragraph",e,o);let n=t.start;return "paragraph"in n?rt(n.paragraph,"paragraph",e,o):rt(n.body,"body",e,o)}function Le(t,e,o){if("paragraph"in t)return pt(t.paragraph,e,o);let n=rt(t.body,"body",e,o);if(!n.ok)return n;let i=n.value.paragraphIds;if(i.length===0)return bt("invalid-offset","empty-story");let s=t.at==="first"?0:i.length-1;return xt({story:n.value.story,paragraphId:i[s],index:s,offset:0})}function At(t,e){if(!t)return [];let o=e.paragraphIds,n=o[t.start.index]===t.start.paragraphId?t.start.index:o.indexOf(t.start.paragraphId),i=o[t.end.index]===t.end.paragraphId?t.end.index:o.indexOf(t.end.paragraphId);return n<0||i<n?[]:o.slice(n,i+1)}function Ut(t,e){if(!t)return [];let o=At(t,e),n=o.length-1;return o.map((i,s)=>{let l=(e.rawText(i)??"").length,c=s===0?t.start.offset:0,u=s===n?t.end.offset:l;return {paragraphId:i,start:c,end:u,whole:c===0&&u===l}})}function Ho(t,e,o,n="allMarkup"){if(!t)return "";let i=At(t,e);return i.length===1?e.projectedText(t.start.paragraphId,n)?.sliceRaw(t.start.offset,t.end.offset)??"":i.map((s,l)=>{let c=e.projectedText(s,n);if(!c)return "";let u=(e.rawText(s)??"").length;return l===0?c.sliceRaw(t.start.offset,u):l===i.length-1?c.sliceRaw(0,t.end.offset):c.text}).join(o)}function Nt(t,e){return {start:{paragraph:e.paragraph(t.start.paragraphId,t.start.story),offset:t.start.offset},end:{paragraph:e.paragraph(t.end.paragraphId,t.end.story),offset:t.end.offset}}}function Ra(t){return t?.kind!=="paragraph"?false:t.children.every(e=>e.namespaceUri!==chunkMXOO7KRI_cjs.da?false:e.localName==="pPr"?true:e.kind==="run"&&e.children.every(o=>o.namespaceUri===chunkMXOO7KRI_cjs.da&&(o.localName==="rPr"||o.localName==="t"&&o.children.every(n=>n.kind==="textValue"))))}function an(t,e,o){return Ra(chunkMXOO7KRI_cjs.Ha(t,e))&&chunkMXOO7KRI_cjs.ii(t,e,o)===null}function Fo(t,e,o,n){let i=chunkMXOO7KRI_cjs.ii(t,e,o);if(!i)return null;let s=o===i.offset?chunkMXOO7KRI_cjs.Ci(t,{op:"insertText",paragraphId:e,offset:o,text:n}):null;return s?.ok&&chunkMXOO7KRI_cjs.Di(s.part,e)?.slice(o,o+n.length)===n?null:{ok:false,error:{code:"unsupported-capability",message:"insert at the placeholder start or replace the complete prompt",detail:"placeholder-insertion-offset"}}}function Sa(t,e,o){return t.start===t.end?e<t.start&&t.start<o:e===o?t.start<e&&e<t.end:Math.max(t.start,e)<Math.min(t.end,o)}var He=class{#t=new Map;has(e){return this.#t.has(e)}append(e,o,n,i,s=false){let l=this.#t.get(e)??[];if(l.some(g=>Sa(g,o,n)))return null;let c=o,u=n;for(let g of l){let x=g.length-(g.end-g.start);g.end<=o&&!(s&&g.start===o&&g.end===o)&&(c+=x),(g.end<n||g.end===n&&g.start!==g.end)&&(u+=x);}o===n&&(u=c);let m=i-(n-o);for(let g of l)n<=g.start&&!(o===n&&g.start===g.end&&o===g.start&&!s)&&(g.result.start+=m,g.result.end+=m);let A={start:c,end:c+i};return l.push({start:o,end:n,length:i,result:A}),this.#t.set(e,l),{start:c,end:u,result:A}}};function Mo(t,e,o,n,i=false){let s=e.start.paragraphId,l=t.append(s,e.start.offset,e.end.offset,o.length,i);return l?{ok:true,kind:"command",ops:jo(s,l.start,l.end,o),story:e.start.story,answer:()=>({kind:"span",span:Nt({start:{...e.start,offset:l.result.start},end:{...e.start,offset:l.result.end}},n)})}:{ok:false,error:{code:"conflicting-operations",message:"text edits overlap in the batch snapshot",detail:s}}}function jo(t,e,o,n){let i=[];return n.length&&i.push({op:"insertText",paragraphId:t,offset:e,text:n,...o>e?{bias:"right"}:{}}),o>e&&i.push({op:"deleteText",paragraphId:t,start:e+n.length,end:o+n.length}),i}function Do(t,e,o,n){let i=e.start.paragraphId,s=chunkMXOO7KRI_cjs.Di(t,i),l=chunkMXOO7KRI_cjs.ii(t,i,e.start.offset),c=l&&o.length?[{op:"insertText",paragraphId:i,offset:e.start.offset,text:o,bias:"right"}]:jo(i,e.start.offset,e.end.offset,o),u=t;for(let A of c){let g=chunkMXOO7KRI_cjs.Ci(u,A);if(!g.ok)return {ok:false,error:{code:"unsupported-content",message:"that replacement cannot preserve the targeted text safely",detail:g.reason}};u=g.part;}let m=chunkMXOO7KRI_cjs.Di(u,i);return s===null||m!==s.slice(0,e.start.offset)+o+s.slice(e.end.offset)?{ok:false,error:{code:l?"unsupported-capability":"unsupported-content",message:l?"replace the complete placeholder prompt to avoid consuming unrelated text":"that replacement changes the expected text positions",detail:i}}:{ok:true,kind:"command",ops:c,story:e.start.story,answer:()=>({kind:"span",span:Nt({start:e.start,end:{...e.start,offset:e.start.offset+o.length}},n)})}}var Bo=/\s/;function _o(t,e){let o=[],n=0;for(;n<t.length;){let i=null;for(let s of e){let l=t.indexOf(s,n);l<0||(!i||l<i.start||l===i.start&&s.length>i.length)&&(i={start:l,length:s.length});}if(!i)break;o.push(i),n=i.start+i.length;}return o}function Vo(t,e,o){let n=e[o]?.markParagraphId??null;if(n!==null)return n;let i=t.paragraphIds,s=i[i.length-1];return s===void 0||new Set(e.map(c=>c.markParagraphId).filter(c=>c!==null)).has(s)?null:s}function Wo(t,e){for(let o of [t.start,t.end]){let n=e.rawText(o.paragraphId);if(n===null||o.offset>n.length)return false}return true}function Uo(t,e,o){let n=e,i=o;for(;n<i&&Bo.test(t[n]);)n+=1;for(;i>n&&Bo.test(t[i-1]);)i-=1;return [n,i]}function Fe(t,e){let o=chunkMXOO7KRI_cjs.Ha(t,e);if(!o||o.kind!=="paragraph")return [];let n=chunkMXOO7KRI_cjs.Se(o);return chunkMXOO7KRI_cjs.uh(o).flatMap(i=>{let s=n.find(c=>c.node.id===i.fieldNodeId),l=chunkMXOO7KRI_cjs.Ha(t,i.fieldNodeId);return s?[{paragraphId:e,fieldNodeId:i.fieldNodeId,code:i.instruction,start:s.start,end:s.end,rewritable:i.rewritable,locked:!!l&&chunkMXOO7KRI_cjs.ie(l,"fldLock")===true}]:[]})}function $o(t){let o=chunkMXOO7KRI_cjs.xa(`<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body><w:p><w:fldSimple w:instr="${t==="PAGE"?"PAGE":"NUMPAGES"}"><w:r><w:t/></w:r></w:fldSimple></w:p></w:body></w:document>`,{name:"/word/document.xml",contentType:"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"});if(!o.ok)throw new Error("could not build a page field");let n=o.part.root.children.find(s=>s.kind==="body"),i=n&&chunkMXOO7KRI_cjs.Bd(n)[0];if(!i||i.kind!=="paragraph")throw new Error("could not build a page field paragraph");return i}var dt=(t,e="unsupported-content")=>({ok:false,error:{code:e,message:t}});function zo(t,e,o,n,i){if(t.op==="getFields"||t.op==="insertField"){let A=z(t.span,e,o),g=ot(t.span,e,o);if(!A.ok||!g.ok)return dt("that field range no longer exists","invalid-handle");let x=g.value;if(t.op==="getFields")return {ok:true,kind:"query",value:{kind:"handles",handles:Ut(A.value,x).flatMap(F=>Fe(x.part,F.paragraphId).filter(K=>K.start>=F.start&&K.end<=F.end)).map(F=>e.field(F.paragraphId,F.fieldNodeId,x.story))}};if(!A.value)return dt("insert a paragraph before inserting a field");if(t.removeFormatting!==void 0&&t.removeFormatting!==false)return dt("removeFormatting is not supported");if(t.text!==void 0&&typeof t.text!="string")return dt("field text must be a string");if(t.fieldType!==void 0&&typeof t.fieldType!="string")return dt("field type must be a string");let k=t.fieldType??"Empty",b=null;if(k==="Page"||k==="NumPages"){if(t.text!==void 0&&t.text.trim()!=="")return dt("field switches are not supported");b=k==="Page"?"PAGE":"NUMPAGES";}else k==="Empty"&&(b=chunkMXOO7KRI_cjs.zh(t.text??""));if(!b)return dt("only PAGE and NUMPAGES fields are supported");let{start:v,end:S}=A.value;if(!["Before","After","Start","End","Replace"].includes(t.location))return dt("unsupported field insert location");if(t.location==="Replace"&&v.paragraphId!==S.paragraphId)return dt("field replacement requires one paragraph");let w=t.location==="After"||t.location==="End"?S:v,H=n(x,w.paragraphId);if(H)return H;let E=[];return t.location==="Replace"&&S.offset>v.offset&&E.push({op:"deleteText",paragraphId:v.paragraphId,start:v.offset,end:S.offset}),E.push({op:"insertFragment",paragraphId:w.paragraphId,offset:w.offset,blocks:[$o(b)],lastMarkCovered:false}),{ok:true,kind:"command",story:x.story,ops:E,answer:j=>{let F=j.story(x.story)?.part,K=F&&Fe(F,w.paragraphId).find(C=>C.start===w.offset);if(!K)throw new Error("inserted field was not committed");return {kind:"handle",handle:e.field(w.paragraphId,K.fieldNodeId,x.story)}}}}let s=e.resolve(t.field,"field");if(!s||s.kind!=="field")return dt("that is not a field handle","invalid-handle");let l=o.story(s.story),c=l&&Fe(l.part,s.paragraphId).find(A=>A.fieldNodeId===s.fieldNodeId);if(!l||!l.has(s.paragraphId)||!c)return dt("that field no longer exists","invalid-handle");if(t.op==="getField")return {ok:true,kind:"query",value:{kind:"field",field:{code:c.code}}};if(c.locked||chunkMXOO7KRI_cjs.Je(l.part,s.fieldNodeId).content||chunkMXOO7KRI_cjs.Me(l.part,s.fieldNodeId))return dt("field is protected");let u=n(l,s.paragraphId,t.op==="updateFieldResult");if(u)return u;let m=[];if(t.op==="deleteField")m.push({op:"deleteText",paragraphId:s.paragraphId,start:c.start,end:c.end});else if(t.op==="setFieldCode"){if(!chunkMXOO7KRI_cjs.zh(c.code)||!chunkMXOO7KRI_cjs.zh(t.code))return dt("only PAGE and NUMPAGES code writes are supported");m.push({op:"setFieldCode",paragraphId:s.paragraphId,fieldNodeId:s.fieldNodeId,code:t.code});}else {let A=chunkMXOO7KRI_cjs.zh(c.code);if(!A||!c.rewritable)return dt("this field result cannot be evaluated","unsupported-capability");let g=i?.(l.story,s.paragraphId,s.fieldNodeId);if(!g||!Number.isInteger(g.pageNumber)||g.pageNumber<1||!Number.isInteger(g.pageCount)||g.pageCount<1)return dt("field update requires actual semantic pagination","unsupported-capability");let x=A==="PAGE"?g.pageNumberText??String(g.pageNumber):String(g.pageCount);m.push({op:"refreshFieldResults",updates:[{paragraphId:s.paragraphId,fieldNodeId:s.fieldNodeId,text:x}]});}return {ok:true,kind:"command",story:l.story,ops:m,answer:()=>({kind:"applied"})}}var it=(t,e)=>({ok:false,error:{code:t,message:e,detail:e}}),$t=t=>({ok:true,kind:"query",value:t}),Ca=new Set(["getTables","getTable","getTableRows","getTableCells","getTableCell","getTableCellProperties","getTableCellBody","updateTable","updateTableCell","insertTable"]);function ce(t){let e=new Set,o=[t];for(;o.length;){let n=o.pop();n.kind==="paragraph"&&e.add(n.id),n.kind!=="textValue"&&o.push(...n.children);}return e}function Ko(t,e){let o=ce(t);return [...ce(e)].filter(n=>!o.has(n)).length}function wa(t,e){let o=[{node:t}];for(;o.length;){let{node:n,table:i}=o.pop();if(n.id===e)return i;if(n.kind==="textValue")continue;let s=n.kind==="table"?n:i;for(let l of n.children)o.push({node:l,table:s});}}function Go(t){let e=t.package&&chunkMXOO7KRI_cjs.nf(t.package);return e?[...chunkMXOO7KRI_cjs.mf(e).values()].filter(o=>o.type==="table"):[]}function Xo(t,e){if(!Ca.has(t.op))return null;let{handles:o,reads:n}=e;if(t.op==="getTables"||t.op==="insertTable"){let g=t.op==="getTables"?t.scope:t.span,x=ot(g,o,n);if(!x.ok)return it(x.code,x.detail);let k=z(g,o,n);if(!k.ok)return it(k.code,k.detail);let b=x.value;if(t.op==="getTables"){let E=k.value,j=chunkMXOO7KRI_cjs.Ei(b.root).filter(F=>{if("body"in g)return true;if(!E)return false;let K=[...ce(F)].sort((Z,et)=>b.indexOf(Z)-b.indexOf(et)),C=K[0],D=K[K.length-1];return !C||!D?false:b.indexOf(C)>=E.start.index&&b.indexOf(D)<=E.end.index});return $t({kind:"handles",handles:j.map(F=>o.table(F.id,b.story))})}if(!k.value)return it("invalid-offset","empty-table-insertion-range");if(!["Before","After"].includes(t.location))return it("unsupported-content","table-insertion-location");let v=t.location==="Before"?k.value.start:k.value.end,S=chunkMXOO7KRI_cjs.Ii(b,v.paragraphId,v.offset,t.rowCount,t.columnCount,t.values);if(!S.ok)return it("unsupported-content",S.reason);let w=e.admitWrite(b,Ko(b.part.root,S.resultPart.root),[v.paragraphId]);if(w)return w;let H=new Set(chunkMXOO7KRI_cjs.Ei(b.root).map(E=>E.id));return {ok:true,kind:"command",story:b.story,ops:[{op:"authorTable",action:{kind:"insert",paragraphId:v.paragraphId,offset:v.offset,rowCount:t.rowCount,columnCount:t.columnCount,...t.values?{values:t.values}:{}}}],answer:E=>{let j=E.story(b.story),F=j&&chunkMXOO7KRI_cjs.Ei(j.root).find(K=>!H.has(K.id));return F?{kind:"handle",handle:o.table(F.id,b.story)}:{kind:"applied"}}}}let i=t.op==="getTableCells"?"tableRow":"cell"in t?"tableCell":"table",s=t.op==="getTableCells"?t.row:"cell"in t?t.cell:"table"in t?t.table:{kind:"document",ref:""},l=o.resolve(s,i);if(!l||!("nodeId"in l)||!("story"in l))return it("invalid-handle","unknown-table-object");let c=n.story(l.story);if(!c)return it("invalid-handle","missing-table-story");let u=chunkMXOO7KRI_cjs.Ha(c.part,l.nodeId);if(!u||u.kind!==i)return it("invalid-handle","deleted-table-object");let m=i==="table"?u:wa(c.root,l.nodeId);if(!m)return it("invalid-handle","missing-parent-table");let A=chunkMXOO7KRI_cjs.Fi(c,m.id);if(!A)return it("unsupported-content","unsupported-table-topology");switch(t.op){case "getTable":return $t({kind:"table",table:{values:A.values,headerRowCount:A.headerRowCount,rowCount:A.rowIds.length,columnCount:A.columnCount,style:Go(n).find(g=>g.styleId===A.styleId)?.name??""}});case "getTableRows":return $t({kind:"handles",handles:A.rowIds.map(g=>o.tableRow(g,c.story))});case "getTableCells":{let g=A.rowIds.indexOf(l.nodeId);return $t({kind:"handles",handles:(A.cellIds[g]??[]).map(x=>o.tableCell(x,c.story))})}case "getTableCell":{if(!Number.isInteger(t.rowIndex)||!Number.isInteger(t.cellIndex))return it("invalid-offset","invalid-cell-index");let g=A.cellIds[t.rowIndex]?.[t.cellIndex];return g?$t({kind:"handle",handle:o.tableCell(g,c.story)}):it("invalid-handle","cell-not-found")}case "getTableCellBody":return $t({kind:"handle",handle:o.body(c.story,l.nodeId)});case "getTableCellProperties":{let g=chunkMXOO7KRI_cjs.Gi(c,m.id,l.nodeId);return g?$t({kind:"tableCell",cell:{value:g.value,columnWidth:g.columnWidth,shadingColor:g.shadingColor,verticalAlignment:g.verticalAlignment}}):it("invalid-handle","cell-not-found")}case "updateTable":case "updateTableCell":{let g=t.op==="updateTable"?t.mutation:{...t.properties,kind:"cell",cellId:l.nodeId};if(g.kind==="properties"&&g.styleId!==void 0){let v=g.styleId;if(typeof v!="string"||v.trim().length===0)return it("unsupported-content","invalid-table-style-name");let S=Go(n).find(w=>w.name?.trim().toLowerCase()===v.trim().toLowerCase());if(!S)return it("unsupported-content","table-style-not-defined");g={...g,styleId:S.styleId};}let x=chunkMXOO7KRI_cjs.Hi(c,m.id,g);if(!x.ok)return it("unsupported-content",x.reason);let k=e.admitWrite(c,Ko(c.part.root,x.resultPart.root),g.kind==="values"?[...ce(m)]:g.kind==="cell"&&g.value!==void 0?[...ce(u)]:[]);if(k)return k;let b=new Set(A.rowIds);return {ok:true,kind:"command",story:c.story,ops:[{op:"authorTable",action:{kind:"existing",tableId:m.id,mutation:g}}],answer:v=>{if(g.kind!=="addRows")return {kind:"applied"};let S=v.story(c.story);return {kind:"handles",handles:((S&&chunkMXOO7KRI_cjs.Fi(S,m.id))?.rowIds??[]).filter(H=>!b.has(H)).map(H=>o.tableRow(H,c.story))}}}}default:return it("unsupported-content","unknown-table-operation")}}var Yo=t=>({ok:false,error:{code:"unsupported-content",message:t}});function Ta(t){if(t.op==="getText")return t.target;if("body"in t)return t.body;if(t.op==="insertText"&&"body"in t.at)return t.at.body;if(t.op==="replaceSpan"&&"body"in t.span)return t.span.body;if(t.op==="insertParagraph"&&"body"in t.anchor)return t.anchor.body}function Jo(t,e,o){let n=Ta(t);if(!n)return null;let i=e.handles.resolve(n,"body");if(!i||i.kind!=="body"||i.story.kind!=="header"&&i.story.kind!=="footer")return null;let s=i.story,l=e.reads.package;if(!l||e.reads.story(s))return null;if(!e.reads.sections()[s.sectionIndex])return Yo("that section no longer exists");if(t.op==="getText")return {ok:true,kind:"query",value:{kind:"text",text:""}};if(t.op==="getParagraphs"||t.op==="getLists")return {ok:true,kind:"query",value:{kind:"handles",handles:[]}};if(t.op!=="insertText"&&t.op!=="replaceSpan"&&t.op!=="insertParagraph")return null;let c=m=>{let A=chunkMXOO7KRI_cjs.Ff(m,{op:"createHeaderFooter",sectionIndex:s.sectionIndex,kind:s.kind,variant:s.variant,...s.variant==="first"?{titlePage:true}:{},...s.variant==="even"?{evenAndOddHeaders:true}:{}});if(!A.ok||!A.createdPartName)return null;let g=ue(A.package),x=o(g),k=x.plan(t);if(!k.ok||k.kind!=="command"||k.relate||k.lifecycle||k.packageEdits?.length)return null;let b=A.package.parts.get(A.createdPartName);if(!b)return null;for(let S of k.ops){let w=chunkMXOO7KRI_cjs.Ci(b,S);if(!w.ok)return null;b=w.part;}let v=chunkMXOO7KRI_cjs.gc(A.package,b);return x.settle(ue(v)).ok?{pkg:v,planner:x,step:k}:null},u=c(l);return u?{ok:true,kind:"command",story:{kind:"body"},ops:[],solitary:true,packageEdits:[m=>{let A=c(m);if(!A)throw new Error("header/footer creation changed during transaction");return u=A,A.pkg}],answer:m=>u.step.answer(m)}:Yo("cannot create this header or footer with that content")}var Na=20*1024*1024;function Ea(t){if(typeof t!="string"||t.length===0||t.length>Math.ceil(Na/3)*4||t.length%4!==0)return null;let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=t.endsWith("==")?2:t.endsWith("=")?1:0,n=new Uint8Array(t.length/4*3-o),i=0;for(let s=0;s<t.length;s+=4){let l=s+4===t.length,c=l?4-o:4,u=[0,0,0,0];for(let A=0;A<c;A++){let g=e.indexOf(t[s+A]);if(g<0)return null;u[A]=g;}if(l&&(o===2&&(u[1]&15)!==0||o===1&&(u[2]&3)!==0))return null;let m=u[0]<<18|u[1]<<12|u[2]<<6|u[3];i<n.length&&(n[i++]=m>>>16),i<n.length&&(n[i++]=m>>>8),i<n.length&&(n[i++]=m);}return n}function Qo(t,e,o,n,i){let s=Ea(i);if(!s)return {ok:false,detail:"picture: invalid or oversized base64 (20 MiB maximum)"};let l=chunkMXOO7KRI_cjs.ub(s);if(l!=="image/png"&&l!=="image/jpeg")return {ok:false,detail:"picture: only PNG and JPEG are supported"};if(!La(s,l))return {ok:false,detail:"picture: truncated raster container"};let c=chunkMXOO7KRI_cjs.zb(s,l);if(!c||c.pixelWidth*c.pixelHeight>4e7)return {ok:false,detail:"picture: invalid or oversized raster dimensions"};let u=c.pixelWidth*72/(c.dpiX??96),m=c.pixelHeight*72/(c.dpiY??96),A=chunkMXOO7KRI_cjs._b(u),g=chunkMXOO7KRI_cjs._b(m);if(A===null||g===null)return {ok:false,detail:"picture: invalid physical dimensions"};let x=chunkMXOO7KRI_cjs.Xb(t,e,{bytes:s,mime:l});if(!x.ok)return {ok:false,detail:`picture: ${x.reason}`};let k=chunkMXOO7KRI_cjs.$b({docPrId:x.docPrId,lockAspectRatio:true,relationshipId:x.relationshipId,extentEmu:{cx:A,cy:g}});return {ok:true,docPrId:x.docPrId,ops:[{op:"insertDrawing",paragraphId:o,offset:n,drawing:k}],packageEdits:[b=>{let v=chunkMXOO7KRI_cjs.Xb(b,e,{bytes:s,mime:l});if(!v.ok||v.relationshipId!==x.relationshipId||v.docPrId!==x.docPrId||v.partName!==x.partName)throw new Error("picture allocation changed during the batch");return v.pkg}]}}function Zo(t,e){return chunkMXOO7KRI_cjs.nb(t).find(o=>o.drawingNodeId===e&&o.kind==="inline"&&o.picture!==null)??null}function qo(t){return {width:t.extentEmu.cx/chunkMXOO7KRI_cjs.Zb,height:t.extentEmu.cy/chunkMXOO7KRI_cjs.Zb,lockAspectRatio:t.locks.changeAspect,altTextDescription:t.description}}function tr(t,e){let o=new Set(chunkMXOO7KRI_cjs.nb(t).filter(i=>i.kind==="inline"&&i.picture!==null).map(i=>i.drawingNodeId)),n=[];for(let i of e){let s=chunkMXOO7KRI_cjs.Ha(t,i.paragraphId);if(!(!s||s.kind!=="paragraph"))for(let l of chunkMXOO7KRI_cjs.Se(s))l.start>=i.start&&l.end<=i.end&&o.has(l.node.id)&&n.push(l.node.id);}return n}function er(t,e){let o=[],n=t.drawingNodeId;if(e.lockAspectRatio!==void 0&&typeof e.lockAspectRatio!="boolean")return {ok:false,detail:"lockAspectRatio: not a boolean"};let i=e.lockAspectRatio??t.locks.changeAspect;if(e.lockAspectRatio===false&&o.push({op:"setDrawingLocks",drawingNodeId:n,locks:{changeAspect:false}}),e.width!==void 0||e.height!==void 0){let s=e.width??t.extentEmu.cx/chunkMXOO7KRI_cjs.Zb,l=e.height??t.extentEmu.cy/chunkMXOO7KRI_cjs.Zb;if(i){let m=t.extentEmu.cx/t.extentEmu.cy;if(e.width!==void 0&&e.height!==void 0&&Math.abs(s/l-m)>1e-6)return {ok:false,detail:"picture: width and height disagree with the locked aspect ratio"};e.width!==void 0&&e.height===void 0&&(l=s/m),e.height!==void 0&&e.width===void 0&&(s=l*m);}let c=chunkMXOO7KRI_cjs._b(s),u=chunkMXOO7KRI_cjs._b(l);if(c===null||u===null)return {ok:false,detail:"picture: dimensions must be finite positive points"};o.push({op:"resizeDrawing",drawingNodeId:n,extentEmu:{cx:c,cy:u}});}if(e.lockAspectRatio===true&&o.push({op:"setDrawingLocks",drawingNodeId:n,locks:{changeAspect:true}}),e.altTextDescription!==void 0){if(typeof e.altTextDescription!="string"||e.altTextDescription.length>32767||!chunkMXOO7KRI_cjs.O(e.altTextDescription))return {ok:false,detail:"altTextDescription: invalid XML text or length"};o.push({op:"setDrawingMetadata",drawingNodeId:n,title:t.title,description:e.altTextDescription});}return o.length?{ok:true,ops:o}:{ok:false,detail:"picture: no properties requested"}}function La(t,e){if(e==="image/jpeg")return t.length>=4&&t[t.length-2]===255&&t[t.length-1]===217;let o=new DataView(t.buffer,t.byteOffset,t.byteLength),n=8,i=false;for(;n+12<=t.length;){let s=o.getUint32(n);if(s>t.length-n-12)return false;let l=String.fromCharCode(t[n+4],t[n+5],t[n+6],t[n+7]);if(l==="IDAT"&&s>0&&(i=true),n+=s+12,l==="IEND")return i&&s===0&&n===t.length}return false}var vt=(t,e="unsupported-content")=>({ok:false,error:{code:e,message:t}});function nr(t,e,o,n){if(t.op==="getInlinePictures"||t.op==="insertInlinePicture"){let A=z(t.span,e,o),g=ot(t.span,e,o);if(!A.ok||!g.ok)return vt("that picture range no longer exists","invalid-handle");let x=g.value;if(t.op==="getInlinePictures")return {ok:true,kind:"query",value:{kind:"handles",handles:tr(x.part,Ut(A.value,x)).map(j=>e.inlinePicture(j,x.story))}};if(!A.value||!o.package)return vt("insert a paragraph before inserting a picture");let{start:k,end:b}=A.value;if(!["Before","After","Start","End","Replace"].includes(t.location))return vt("unsupported picture insert location");if(t.location==="Replace"&&k.paragraphId!==b.paragraphId)return vt("picture replacement requires a single paragraph");let v=t.location==="After"||t.location==="End"?b:k;if(chunkMXOO7KRI_cjs.Je(x.part,v.paragraphId).content||chunkMXOO7KRI_cjs.Me(x.part,v.paragraphId))return vt("picture insertion is inside protected content");let S=chunkMXOO7KRI_cjs.Ha(x.part,v.paragraphId);if(S?.kind==="paragraph"){for(let j of chunkMXOO7KRI_cjs.Se(S))if((t.location==="Replace"?j.start<b.offset&&j.end>k.offset:j.start<v.offset&&j.end>v.offset)&&(chunkMXOO7KRI_cjs.Je(x.part,j.node.id).content||chunkMXOO7KRI_cjs.Me(x.part,j.node.id)))return vt("picture insertion touches protected content")}let w=n(x,v.paragraphId);if(w)return w;let H=Qo(o.package,x.part.name,v.paragraphId,v.offset,t.base64);if(!H.ok)return vt(H.detail);let E=[];return t.location==="Replace"&&b.offset>k.offset&&E.push({op:"deleteText",paragraphId:k.paragraphId,start:k.offset,end:b.offset}),E.push(...H.ops),{ok:true,kind:"command",story:x.story,ops:E,packageEdits:H.packageEdits,answer:j=>{let F=j.story(x.story)?.part,K=F&&chunkMXOO7KRI_cjs.nb(F).find(C=>C.docPrId===H.docPrId&&C.kind==="inline");if(!K)throw new Error("inserted picture was not committed");return {kind:"handle",handle:e.inlinePicture(K.drawingNodeId,x.story)}}}}let i=e.resolve(t.picture,"inlinePicture");if(!i||i.kind!=="inlinePicture")return vt("that is not a picture handle","invalid-handle");let s=o.story(i.story),l=s&&Zo(s.part,i.drawingNodeId);if(!s||!l)return vt("that inline picture no longer exists","invalid-handle");if(t.op==="getInlinePicture")return {ok:true,kind:"query",value:{kind:"inlinePicture",picture:qo(l)}};let c=chunkMXOO7KRI_cjs.Ha(s.part,i.drawingNodeId);for(;c&&c.kind!=="paragraph";)c=chunkMXOO7KRI_cjs.Re(s.part,c.id);if(!c||!s.has(c.id))return vt("picture is outside this story","invalid-handle");let u=n(s,c.id);if(u)return u;let m=t.op==="deleteInlinePicture"?{ok:true,ops:[{op:"deleteDrawing",drawingNodeId:i.drawingNodeId}]}:er(l,t.properties);return m.ok?{ok:true,kind:"command",story:s.story,ops:m.ops,answer:()=>({kind:"applied"})}:vt(m.detail)}function or(t,e,o,n){let i=x=>({ok:false,error:{code:"unsupported-content",message:x}});if(t.breakType!=="Page"&&t.breakType!=="SectionNext")return i("only Page and SectionNext breaks are supported");if(!["Before","After","Start","End","Replace"].includes(t.location))return i("invalid break insertion location");let s=z(t.span,e,o);if(!s.ok)return {ok:false,error:{code:s.code,message:s.detail}};let l=s.value;if(!l)return i("empty story has no break position");let c=t.location==="After"||t.location==="End"?l.end:l.start,u=o.story(c.story);if(!u)return i("missing story");if(t.location==="Replace"&&l.start.paragraphId!==l.end.paragraphId)return i("break replacement must remain in one paragraph");let m=t.breakType==="SectionNext";if(m&&(u.story.kind!=="body"||chunkMXOO7KRI_cjs.Qh(u.part,c.paragraphId)))return i("section breaks require a body paragraph outside a table");let A=n(u,c.paragraphId,m?1:0);if(A)return A;let g=[];return t.location==="Replace"&&l.end.offset>l.start.offset&&g.push({op:"deleteText",paragraphId:c.paragraphId,start:l.start.offset,end:l.end.offset}),m?g.push({op:"splitParagraph",paragraphId:c.paragraphId,offset:c.offset},{op:"setSectionMark",paragraphId:c.paragraphId,breakType:"nextPage"}):g.push({op:"insertPageBreak",paragraphId:c.paragraphId,offset:c.offset}),{ok:true,kind:"command",story:u.story,ops:g,answer:()=>({kind:"applied"})}}var St=(t,e)=>t.children.find(o=>o.kind!=="textValue"&&o.namespaceUri===chunkMXOO7KRI_cjs.da&&o.localName===e),It=(t,e)=>t.attributes.find(o=>o.namespaceUri===chunkMXOO7KRI_cjs.da&&o.localName===e)?.value,Me=t=>t.replaceAll("&","&").replaceAll('"',""").replaceAll("<","<").replaceAll(">",">"),sn=t=>typeof t=="string"&&t.length<=255&&!/[\x00-\x08\x0b\x0c\x0e-\x1f\uFFFE\uFFFF]/.test(t),rr={None:"none",Arabic:"decimal",UpperRoman:"upperRoman",LowerRoman:"lowerRoman",UpperLetter:"upperLetter",LowerLetter:"lowerLetter"},ar={Solid:["\uF0B7","Symbol"],Hollow:["o","Courier New"],Square:["\uF0A7","Wingdings"],Diamonds:["\uF076","Wingdings"],Arrow:["\uF0D8","Wingdings"],Checkmark:["\uF0FC","Wingdings"]};function ln(t){let e=chunkMXOO7KRI_cjs.sf(t,"bullet");if(!e)return null;let o=e.pkg;for(let n=0;n<=8;n+=1)if(!pe(o,e.numId,n)){let i=je(o,e.numId,n,{bullet:n%3===0?"Solid":n%3===1?"Hollow":"Square"});if(!i)return null;o=i;}return {pkg:o,numId:e.numId}}function pe(t,e,o){let n=t.parts.get("/word/numbering.xml")?.root;if(!n)return false;let i=n.children,s=i.find(m=>m.kind!=="textValue"&&m.namespaceUri===chunkMXOO7KRI_cjs.da&&m.localName==="num"&&It(m,"numId")===e);if(!s)return false;let l=s.children.find(m=>m.kind!=="textValue"&&m.namespaceUri===chunkMXOO7KRI_cjs.da&&m.localName==="lvlOverride"&&It(m,"ilvl")===String(o));if(l&&St(l,"lvl"))return true;let c=St(s,"abstractNumId"),u=c&&i.find(m=>m.kind!=="textValue"&&m.namespaceUri===chunkMXOO7KRI_cjs.da&&m.localName==="abstractNum"&&It(m,"abstractNumId")===It(c,"val"));return !!u&&!St(u,"numStyleLink")&&u.children.some(m=>m.kind!=="textValue"&&m.namespaceUri===chunkMXOO7KRI_cjs.da&&m.localName==="lvl"&&It(m,"ilvl")===String(o))}function dn(t,e){if(!Number.isInteger(t)||t<0||t>8||!e||typeof e!="object")return false;if(e.bullet!==void 0){if(e.numbering!==void 0)return false;if(e.bullet==="Custom"){if(!Number.isInteger(e.charCode)||e.charCode<1||e.charCode>65535||e.charCode>=55296&&e.charCode<=57343||!sn(String.fromCharCode(e.charCode)))return false}else if(!Object.hasOwn(ar,e.bullet))return false;if(e.fontName!==void 0&&(!sn(e.fontName)||!e.fontName.trim()))return false}if(e.numbering!==void 0&&!Object.hasOwn(rr,e.numbering)||e.formatString!==void 0&&(!Array.isArray(e.formatString)||e.formatString.length>32||e.formatString.some(n=>typeof n=="number"?!Number.isInteger(n)||n<0||n>t:!sn(n)||/%[1-9]/.test(n)))||e.startingNumber!==void 0&&(!Number.isInteger(e.startingNumber)||e.startingNumber<0||e.startingNumber>2147483647))return false;for(let n of [e.textIndent,e.bulletNumberPictureIndent])if(n!==void 0&&(!Number.isFinite(n)||Math.abs(n)>1584))return false;let o=["bullet","charCode","fontName","numbering","formatString","startingNumber","textIndent","bulletNumberPictureIndent"];return Object.keys(e).some(n=>!o.includes(n))||e.bullet===void 0&&(e.charCode!==void 0||e.fontName!==void 0)||e.numbering===void 0&&e.formatString!==void 0?false:Object.keys(e).length>0}function je(t,e,o,n){if(!dn(o,n))return null;let i=t.parts.get("/word/numbering.xml");if(!i)return null;let s=i.root.children.find(C=>C.kind!=="textValue"&&C.namespaceUri===chunkMXOO7KRI_cjs.da&&C.localName==="num"&&It(C,"numId")===e),l=s&&St(s,"abstractNumId");if(!s||!l)return null;let c=i.root.children.find(C=>C.kind!=="textValue"&&C.namespaceUri===chunkMXOO7KRI_cjs.da&&C.localName==="abstractNum"&&It(C,"abstractNumId")===It(l,"val"));if(!c||St(c,"numStyleLink"))return null;let u=s.children.find(C=>C.kind!=="textValue"&&C.namespaceUri===chunkMXOO7KRI_cjs.da&&C.localName==="lvlOverride"&&It(C,"ilvl")===String(o)),m=(u&&St(u,"lvl"))??c.children.find(C=>C.kind!=="textValue"&&C.namespaceUri===chunkMXOO7KRI_cjs.da&&C.localName==="lvl"&&It(C,"ilvl")===String(o));if(m&&St(m,"lvlPicBulletId"))return null;let A=chunkMXOO7KRI_cjs.Fa(i),g=C=>C.kind==="textValue"?{...C,id:A()}:{...C,id:A(),children:C.children.map(g)},x=C=>{let D=chunkMXOO7KRI_cjs.xa(`<w:numbering xmlns:w="${chunkMXOO7KRI_cjs.da}">${C}</w:numbering>`,{name:i.name,contentType:i.contentType}),Z=D.ok?D.part.root.children[0]:void 0;return Z&&Z.kind!=="textValue"?g(Z):null};if(m??=x(`<w:lvl w:ilvl="${o}"><w:start w:val="1"/><w:numFmt w:val="decimal"/><w:lvlText w:val="%${o+1}."/><w:lvlJc w:val="left"/><w:pPr><w:ind w:left="${720*(o+1)}" w:hanging="360"/></w:pPr></w:lvl>`)??void 0,!m)return null;let k=[...m.children],b=["start","numFmt","lvlRestart","pStyle","isLgl","suff","lvlText","lvlPicBulletId","legacy","lvlJc","pPr","rPr"],v=(C,D)=>{let Z=x(D);if(!Z)return false;let et=k.findIndex(_=>_.kind!=="textValue"&&_.namespaceUri===chunkMXOO7KRI_cjs.da&&_.localName===C);if(et>=0){let _=k[et];k.splice(et,1,{..._,attributes:[..._.attributes.filter(nt=>!Z.attributes.some(at=>at.namespaceUri===nt.namespaceUri&&at.localName===nt.localName)),...Z.attributes]});}else {let _=k.findIndex(nt=>nt.kind!=="textValue"&&nt.namespaceUri===chunkMXOO7KRI_cjs.da&&b.indexOf(nt.localName)>b.indexOf(C));k.splice(_<0?k.length:_,0,Z);}return true};if(n.startingNumber!==void 0&&!v("start",`<w:start w:val="${n.startingNumber}"/>`))return null;if(n.numbering!==void 0){let C=n.formatString?.map(D=>typeof D=="number"?`%${D+1}`:D).join("")??(n.numbering==="None"?"":`%${o+1}.`);if(!v("numFmt",`<w:numFmt w:val="${rr[n.numbering]}"/>`)||!v("lvlText",`<w:lvlText w:val="${Me(C)}"/>`))return null}if(n.numbering!==void 0&&(k=k.map(C=>C.kind!=="textValue"&&C.namespaceUri===chunkMXOO7KRI_cjs.da&&C.localName==="rPr"?{...C,children:C.children.filter(D=>D.kind==="textValue"||D.namespaceUri!==chunkMXOO7KRI_cjs.da||D.localName!=="rFonts")}:C)),n.bullet!==void 0){let[C,D]=n.bullet==="Custom"?[String.fromCharCode(n.charCode),n.fontName??"Symbol"]:ar[n.bullet];if(!v("numFmt",'<w:numFmt w:val="bullet"/>')||!v("lvlText",`<w:lvlText w:val="${Me(C)}"/>`))return null;let Z=St(m,"rPr"),et=x(`<w:rFonts w:ascii="${Me(D)}" w:hAnsi="${Me(D)}"/>`);if(!et)return null;let _=Z?.children.filter(ct=>ct.kind==="textValue"||ct.namespaceUri!==chunkMXOO7KRI_cjs.da||ct.localName!=="rFonts")??[],nt=Z?{...Z,children:[et,..._]}:x("<w:rPr/>");if(!nt)return null;let at=k.findIndex(ct=>ct.kind!=="textValue"&&ct.namespaceUri===chunkMXOO7KRI_cjs.da&&ct.localName==="rPr");at<0?k.push({...nt,children:[et,..._]}):k[at]={...nt,children:[et,..._]};}if(n.textIndent!==void 0||n.bulletNumberPictureIndent!==void 0){let C=St(m,"pPr"),D=C&&St(C,"ind"),Z=D?.attributes.filter(Q=>Q.namespaceUri!==chunkMXOO7KRI_cjs.da||!["left","start","firstLine","hanging"].includes(Q.localName))??[],et=n.textIndent===void 0?It(D??m,"left")??"0":String(Math.round(n.textIndent*20)),_=n.bulletNumberPictureIndent,nt=_===void 0?D?.attributes.filter(Q=>Q.namespaceUri===chunkMXOO7KRI_cjs.da&&["firstLine","hanging"].includes(Q.localName))??[]:[],at=x(`<w:ind w:left="${et}"${_===void 0?"":` w:${_<0?"hanging":"firstLine"}="${Math.abs(Math.round(_*20))}"`}/>`);if(!at)return null;let ct={...at,attributes:[...Z,...nt,...at.attributes]},Mt=C?.children.filter(Q=>Q.kind==="textValue"||Q.namespaceUri!==chunkMXOO7KRI_cjs.da||Q.localName!=="ind")??[],Et=C??x("<w:pPr/>");if(!Et)return null;let ne=D?C.children.indexOf(D):-1,V=[...Mt],Pt=["contextualSpacing","mirrorIndents","suppressOverlap","jc","textDirection","textAlignment","textboxTightWrap","outlineLvl","divId","cnfStyle","rPr","sectPr","pPrChange"],ht=V.findIndex(Q=>Q.kind!=="textValue"&&Q.namespaceUri===chunkMXOO7KRI_cjs.da&&Pt.includes(Q.localName));V.splice(ne>=0?ne:ht>=0?ht:V.length,0,ct);let q={...Et,children:V},gt=k.findIndex(Q=>Q.kind!=="textValue"&&Q.namespaceUri===chunkMXOO7KRI_cjs.da&&Q.localName==="pPr");if(gt>=0)k[gt]=q;else {let Q=k.findIndex(Ot=>Ot.kind!=="textValue"&&Ot.localName==="rPr"&&Ot.namespaceUri===chunkMXOO7KRI_cjs.da);k.splice(Q<0?k.length:Q,0,q);}}let S=g({...m,children:k}),w=u?.children.filter(C=>C.kind==="textValue"||C.namespaceUri!==chunkMXOO7KRI_cjs.da||C.localName!=="lvl"&&(n.startingNumber===void 0||C.localName!=="startOverride"))??[],H=u??x(`<w:lvlOverride w:ilvl="${o}"/>`);if(!H)return null;let E={...H,children:[...w,S]},j=[...s.children],F=u?j.indexOf(u):-1;F>=0?j[F]=E:j.push(E);let K=chunkMXOO7KRI_cjs.Ma(i,s.id,{...s,children:j});return K.ok?chunkMXOO7KRI_cjs.gc(t,K.part):null}var te=8;function ir(t){if(!t||t.kind==="textValue")return null;for(let e of t.attributes)if(e.namespaceUri===chunkMXOO7KRI_cjs.da&&e.localName==="val")return e.value;return null}function De(t){let e=chunkMXOO7KRI_cjs.Qe(chunkMXOO7KRI_cjs.Oe(t),"numPr");if(!e)return null;let o=ir(chunkMXOO7KRI_cjs.Qe(e,"numId"));if(o===null||!/^\d{1,10}$/.test(o)||o==="0")return null;let n=ir(chunkMXOO7KRI_cjs.Qe(e,"ilvl")),i=n===null?0:Number(n);return !Number.isInteger(i)||i<0||i>te?null:{numId:o,level:i}}function zt(t){let e=new Map;for(let o of t.paragraphIds){let n=t.node(o);if(!n)continue;let i=De(n);if(!i)continue;let s=e.get(i.numId);s?s.push(o):e.set(i.numId,[o]);}return Object.freeze([...e].map(([o,n])=>Object.freeze({numId:o,paragraphIds:Object.freeze(n)})))}function me(t,e){let o=t.node(e);return o?De(o):null}var mt=t=>({ok:false,error:{code:"unsupported-content",message:t}});function Ha(t,e){if(t.root.namespaceUri!==chunkMXOO7KRI_cjs.da||t.root.localName!=="styles")return false;let o=[t.root];for(;o.length;){let n=o.pop();if(n.kind!=="textValue"){if(n.namespaceUri===chunkMXOO7KRI_cjs.da&&n.localName==="numId"&&n.attributes.some(i=>i.namespaceUri===chunkMXOO7KRI_cjs.da&&i.localName==="val"&&i.value===e))return true;for(let i of n.children)o.push(i);}}return false}function sr(t,e,o,n){let i=o.package;if(!i)return mt("no document");if(t.op==="setListLevelFormat"){let x=e.resolve(t.list,"list");if(!x||x.kind!=="list")return mt("that is not a list");let k=o.story(x.story),b=k&&zt(k).find(v=>v.numId===x.numId);if(!k||!b)return mt("that list no longer exists");if(!dn(t.level,t.format))return mt("invalid list level format");for(let v of i.parts.values()){if(Ha(v,x.numId))return mt("list is referenced by a style");for(let S of chunkMXOO7KRI_cjs.yd(v))for(let w of chunkMXOO7KRI_cjs.Bd(S.root))if(De(w)?.numId===x.numId&&!k.has(w.id))return mt("list is shared across stories")}for(let v of b.paragraphIds){if(chunkMXOO7KRI_cjs.Je(k.part,v).content||chunkMXOO7KRI_cjs.Me(k.part,v))return mt("list contains protected content");let S=n(k,v,{numId:x.numId,level:t.level});if(S)return S}return je(i,x.numId,t.level,t.format)?{ok:true,kind:"command",story:k.story,ops:[],packageEdits:[v=>{let S=je(v,x.numId,t.level,t.format);if(!S)throw new Error("list definition changed during transaction");return S}],answer:()=>({kind:"applied"})}:mt("cannot format this list")}let s=pt(t.paragraph,e,o);if(!s.ok)return {ok:false,error:{code:s.code,message:s.detail}};let l=o.story(s.value.story);if(!l)return mt("missing story");let c=n(l,s.value.paragraphId);if(c)return c;let u=null,m=0,A=[];if(t.op==="startNewList"){let x=ln(i);if(!x)return mt("cannot create numbering definition");let k=s.value.paragraphId;if(!chunkMXOO7KRI_cjs.Ci(l.part,{op:"setListNumbering",paragraphId:k,numId:x.numId,level:0}).ok)return mt("cannot number this paragraph");let v=x.numId;return {ok:true,kind:"command",story:l.story,ops:[],packageEdits:[S=>{let w=ln(S),H=w?.pkg.parts.get(l.part.name);if(!w||!H)throw new Error("cannot create numbering definition");let E=chunkMXOO7KRI_cjs.Ci(H,{op:"setListNumbering",paragraphId:k,numId:w.numId,level:0});if(!E.ok)throw new Error("cannot number this paragraph");return v=w.numId,chunkMXOO7KRI_cjs.gc(w.pkg,E.part)}],answer:()=>({kind:"handle",handle:e.list(v,l.story)})}}else if(t.op==="attachToList"){if(!Number.isSafeInteger(t.listId)||t.listId<=0||!Number.isInteger(t.level)||t.level<0||t.level>8)return mt("invalid list identity or level");if(u=String(t.listId),m=t.level,!pe(i,u,m))return mt("list level is not defined; configure that level first");if(!zt(l).some(x=>x.numId===u))return mt("that list does not exist in this story")}let g=u;return {ok:true,kind:"command",story:l.story,ops:[{op:"setListNumbering",paragraphId:s.value.paragraphId,numId:t.op==="detachFromList"?"0":u,level:m}],packageEdits:A,answer:()=>g===null?{kind:"applied"}:{kind:"handle",handle:e.list(g,l.story)}}}var un=Object.freeze({None:"none",Single:"single",Word:"words",Double:"double",Thick:"thick",Dotted:"dotted",DottedHeavy:"dottedHeavy",DashLine:"dash",DashLineHeavy:"dashedHeavy",DashLineLong:"dashLong",DashLineLongHeavy:"dashLongHeavy",DotDashLine:"dotDash",DotDashLineHeavy:"dashDotHeavy",TwoDotDashLine:"dotDotDash",TwoDotDashLineHeavy:"dashDotDotHeavy",Wave:"wave",WaveHeavy:"wavyHeavy",WaveDouble:"wavyDouble"}),lr=[["Yellow","yellow","#FFFF00"],["Lime","green","#00FF00"],["Turquoise","cyan","#00FFFF"],["Pink","magenta","#FF00FF"],["Blue","blue","#0000FF"],["Red","red","#FF0000"],["DarkBlue","darkBlue","#000080"],["Teal","darkCyan","#008080"],["Green","darkGreen","#008000"],["Purple","darkMagenta","#800080"],["DarkRed","darkRed","#800000"],["Olive","darkYellow","#808000"],["Gray","darkGray","#808080"],["LightGray","lightGray","#C0C0C0"],["Black","black","#000000"],["White","white","#FFFFFF"]];function dr(t){return Object.entries(un).find(([,e])=>e===t)?.[0]??null}function ur(t){return lr.find(([,e])=>e===t)?.[2]??null}function cr(t){let e=[];if(t.underline!==void 0){let o=typeof t.underline=="string"&&Object.hasOwn(un,t.underline)?un[t.underline]:void 0;if(!o)return {ok:false,detail:"underline: unsupported underline style"};e.push({localName:"u",attributes:{val:o}});}if(t.strikeThrough!==void 0){if(typeof t.strikeThrough!="boolean")return {ok:false,detail:"strikeThrough: not a boolean"};e.push({localName:"strike",attributes:{val:t.strikeThrough?"1":"0"}});}for(let o of ["subscript","superscript"])if(t[o]!==void 0&&typeof t[o]!="boolean")return {ok:false,detail:`${o}: not a boolean`};if(t.subscript===true&&t.superscript===true)return {ok:false,detail:"subscript and superscript are mutually exclusive"};if(t.highlightColor!==void 0){let o=t.highlightColor,n=typeof o=="string"?lr.find(([i,,s])=>i.toLowerCase()===o.toLowerCase()||s===o.toUpperCase()):void 0;if(o!==null&&!n)return {ok:false,detail:"highlightColor: use an exact Word palette color or null to clear"};e.push({localName:"highlight",attributes:{val:n?.[1]??"none"}});}return {ok:true,value:e}}var Fa=31680,Ma=1999,ja=Object.freeze({bold:null,italic:null,underline:null,strikeThrough:null,highlightColor:null,subscript:null,superscript:null,name:null,size:null,color:null});function st(t,e){if(!t)return null;for(let o of t.attributes)if(o.localName===e)return o.value;return null}function _e(t){if(!t)return null;let e=st(t,"val");if(e===null)return true;let o=e.trim().toLowerCase();return !(o==="0"||o==="false"||o==="off"||o==="none")}function Da(t){if(t===null)return null;let e=t.trim();return /^[0-9a-fA-F]{6}$/.test(e)?`#${e.toUpperCase()}`:null}function Ba(t){if(t===null)return null;let e=Number(t.trim());return !Number.isFinite(e)||e<=0?null:e/2}function Kt(t){if(t===null)return null;let e=Number(t.trim());return Number.isFinite(e)?chunkMXOO7KRI_cjs.cf(chunkMXOO7KRI_cjs.af(e)):null}function Ct(t){if(t.length===0)return null;let e=t[0];if(e===null)return null;for(let o of t)if(o!==e)return null;return e}function fr(t,e,o=chunkITNK6C5M_cjs.ja){let n=[];for(let i of e)for(let s of chunkITNK6C5M_cjs.Ba(t,i.paragraphId,i.start,i.end,o))n.push(chunkMXOO7KRI_cjs.Pe(s));return n.length===0?ja:{bold:Ct(n.map(i=>_e(chunkMXOO7KRI_cjs.Qe(i,"b")))),italic:Ct(n.map(i=>_e(chunkMXOO7KRI_cjs.Qe(i,"i")))),underline:Ct(n.map(i=>dr(st(chunkMXOO7KRI_cjs.Qe(i,"u"),"val")))),strikeThrough:Ct(n.map(i=>_e(chunkMXOO7KRI_cjs.Qe(i,"strike")))),highlightColor:Ct(n.map(i=>ur(st(chunkMXOO7KRI_cjs.Qe(i,"highlight"),"val")))),subscript:Ct(n.map(i=>mr(i,"subscript"))),superscript:Ct(n.map(i=>mr(i,"superscript"))),name:Ct(n.map(i=>{let s=chunkMXOO7KRI_cjs.Qe(i,"rFonts"),l=st(s,"ascii");return l===null||l.length===0?null:l})),size:Ct(n.map(i=>Ba(st(chunkMXOO7KRI_cjs.Qe(i,"sz"),"val")))),color:Ct(n.map(i=>Da(st(chunkMXOO7KRI_cjs.Qe(i,"color"),"val"))))}}var _a=Object.freeze({left:"Left",start:"Left",center:"Centered",right:"Right",end:"Right",both:"Justified",distribute:"Justified"}),Va=Object.freeze({Left:"left",Centered:"center",Right:"right",Justified:"both"});function Wa(t){let e=st(chunkMXOO7KRI_cjs.Qe(t,"jc"),"val");return e===null?"Unknown":_a[e.trim().toLowerCase()]??"Unknown"}function gr(t,e,o){let n=chunkMXOO7KRI_cjs.Ha(t,e);if(!n||n.kind!=="paragraph")return null;let i=chunkMXOO7KRI_cjs.Oe(n),s=chunkMXOO7KRI_cjs.Qe(i,"spacing"),l=chunkMXOO7KRI_cjs.Qe(i,"ind");return {alignment:Wa(i),style:Ce(t,e,o),firstLineIndent:Ua(l),leftIndent:Kt(st(l,"left")??st(l,"start")),rightIndent:Kt(st(l,"right")??st(l,"end")),lineSpacing:Kt(st(s,"line")),spaceBefore:Kt(st(s,"before")),spaceAfter:Kt(st(s,"after")),widowControl:_e(chunkMXOO7KRI_cjs.Qe(i,"widowControl"))}}function Ua(t){let e=Kt(st(t,"hanging"));if(e!==null&&e>0)return -e;let o=Kt(st(t,"firstLine"));return o!==null?o:e===null?null:-e}function Be(t,e){if(typeof t!="number"||!Number.isFinite(t))return {ok:false,detail:`${e}: not a measurement`};let o=chunkMXOO7KRI_cjs.df(chunkMXOO7KRI_cjs.bf(t));return Math.abs(o)>Fa?{ok:false,detail:`${e}: out of range`}:{ok:true,value:o}}function yr(t){let e=cr(t);if(!e.ok)return e;let o=e.value;if(t.bold!==void 0){if(typeof t.bold!="boolean")return {ok:false,detail:"bold: not a boolean"};o.push({localName:"b",...t.bold?{}:{attributes:{val:"0"}}});}if(t.italic!==void 0){if(typeof t.italic!="boolean")return {ok:false,detail:"italic: not a boolean"};o.push({localName:"i",...t.italic?{}:{attributes:{val:"0"}}});}if(t.name!==void 0){let n=t.name;if(typeof n!="string"||n.length===0||n.length>128)return {ok:false,detail:"name: not a font name"};if(!chunkMXOO7KRI_cjs.O(n))return {ok:false,detail:"name: not valid XML text"};o.push({localName:"rFonts",attributes:{ascii:n,hAnsi:n}});}if(t.size!==void 0){let n=t.size;if(typeof n!="number"||!Number.isFinite(n)||n<=0)return {ok:false,detail:"size: not a positive number of points"};let i=Math.round(n*2);if(i<1||i>Ma)return {ok:false,detail:"size: out of range"};o.push({localName:"sz",attributes:{val:String(i)}}),o.push({localName:"szCs",attributes:{val:String(i)}});}if(t.color!==void 0){let n=t.color;if(typeof n!="string"||!/^#[0-9a-fA-F]{6}$/.test(n.trim()))return {ok:false,detail:"color: not a #RRGGBB triplet"};o.push({localName:"color",attributes:{val:n.trim().slice(1).toUpperCase()}});}return o.length===0&&t.subscript===void 0&&t.superscript===void 0?{ok:false,detail:"no formatting was asked for"}:{ok:true,value:o}}function hr(t,e,o,n){let i=chunkMXOO7KRI_cjs.Ha(t,e);if(!i||i.kind!=="paragraph")return {ok:false,detail:"not a paragraph"};let s=chunkMXOO7KRI_cjs.Oe(i),l=[];if(o.style!==void 0){let k=we(o.style,n);if(!k.ok)return {ok:false,detail:k.detail};l.push({localName:"pStyle",attributes:{val:k.styleId}});}if(o.alignment!==void 0){let k=Va[o.alignment];if(k===void 0)return {ok:false,detail:`alignment: ${String(o.alignment)}`};l.push({localName:"jc",attributes:{val:k}});}let c=chunkMXOO7KRI_cjs.Qe(s,"ind"),u=pr(c),m=false;if(o.firstLineIndent!==void 0){let k=Be(o.firstLineIndent,"firstLineIndent");if(!k.ok)return k;delete u.firstLine,delete u.hanging,k.value<0?u.hanging=String(-k.value):u.firstLine=String(k.value),m=true;}for(let[k,b,v]of [["leftIndent","left","start"],["rightIndent","right","end"]]){let S=o[k];if(S===void 0)continue;let w=Be(S,k);if(!w.ok)return w;delete u[v],u[b]=String(w.value),m=true;}m&&l.push({localName:"ind",attributes:u});let A=chunkMXOO7KRI_cjs.Qe(s,"spacing"),g=pr(A),x=false;for(let[k,b]of [["spaceBefore","before"],["spaceAfter","after"]]){let v=o[k];if(v===void 0)continue;let S=Be(v,k);if(!S.ok)return S;if(S.value<0)return {ok:false,detail:`${k}: out of range`};g[b]=String(S.value),x=true;}if(o.lineSpacing!==void 0){let k=Be(o.lineSpacing,"lineSpacing");if(!k.ok)return k;if(k.value<=0)return {ok:false,detail:"lineSpacing: out of range"};g.line=String(k.value),g.lineRule??="auto",x=true;}if(x&&l.push({localName:"spacing",attributes:g}),o.widowControl!==void 0){if(typeof o.widowControl!="boolean")return {ok:false,detail:"widowControl: not a boolean"};l.push({localName:"widowControl",...o.widowControl?{}:{attributes:{val:"0"}}});}return l.length===0?{ok:false,detail:"no formatting was asked for"}:{ok:true,value:chunkITNK6C5M_cjs.ta(chunkITNK6C5M_cjs.ra(t,e),l)}}function pr(t){let e=Object.create(null);if(!t)return e;for(let o of t.attributes)e[o.localName]=o.value;return e}function cn(t,e){if(e.subscript===void 0&&e.superscript===void 0)return [...t];let o=t.find(i=>i.localName==="vertAlign")?.attributes?.val,n=e.subscript===true?"subscript":e.superscript===true?"superscript":o==="subscript"&&e.subscript===false||o==="superscript"&&e.superscript===false?"baseline":o??"baseline";return chunkITNK6C5M_cjs.ta(t,[{localName:"vertAlign",attributes:{val:n}}])}function mr(t,e){let o=st(chunkMXOO7KRI_cjs.Qe(t,"vertAlign"),"val");return o===null?null:o===e}function kr(){let t=false,e=false,o=false,n=false;return {conflict(i){let s=Wt(i),l=nn(i),c=i.op==="deleteComment",u=i.op==="updateFieldResult";return s&&(u&&t&&!n||n&&!u)?{message:"field result updates require a batch without other edits; sync document edits before updating fields",detail:i.op}:l&&t||e&&s?{message:"that command commits on its own and cannot share a batch",detail:i.op}:c&&t&&!o||o&&s&&!c?{message:"comment deletions may share a batch only with other comment deletions",detail:i.op}:null},note(i){Wt(i)&&(t=true,nn(i)&&(e=true),i.op==="deleteComment"&&(o=true),i.op==="updateFieldResult"&&(n=true));},get hasCommands(){return t}}}var $a=256,br=1e4;function pn(t,e){if(t.kind!=="textValue"){for(let o of t.attributes)if(o.namespaceUri===chunkMXOO7KRI_cjs.da&&o.localName===e)return o.value}}function za(t){return t.startsWith("_")}function mn(t){let e=new Map,o=[],n=new Set;for(let i of t.paragraphIds){let s=t.node(i);if(s?.kind!=="paragraph")continue;let l=chunkMXOO7KRI_cjs.Ue(s),c=u=>{if(u.kind!=="textValue"){if(u.kind==="bookmarkStart"){if(o.length>=br||e.size>=br)return;let m=pn(u,"id"),A=pn(u,"name");if(m===void 0||A===void 0||A.length===0||A.length>$a||za(A)||n.has(A)||e.has(m))return;let g=l.spanOf(u)?.start??0;e.set(m,{name:A,start:{paragraphId:i,offset:g}});return}if(u.kind==="bookmarkEnd"){let m=pn(u,"id");if(m===void 0)return;let A=e.get(m);if(!A)return;e.delete(m),n.add(A.name);let g=l.spanOf(u)?.start??0;o.push(Object.freeze({name:A.name,start:A.start,end:{paragraphId:i,offset:g}}));return}for(let m of u.children)c(m);}};for(let u of s.children)c(u);}return Object.freeze(o)}function fn(t,e){return mn(t).find(o=>o.name===e)??null}function xr(t,e){let o=t.node(e);if(o?.kind!=="paragraph")return Object.freeze([]);let n=chunkMXOO7KRI_cjs.Ue(o),i=[],s=(l,c)=>{if(!(l.kind==="textValue"||c>32)){if(chunkMXOO7KRI_cjs.Za(l)){let u=n.spanOf(l);u&&i.push(Object.freeze({id:l.id,paragraphId:e,start:u.start,end:u.end}));return}for(let u of l.children)s(u,c+1);}};for(let l of o.children)s(l,0);return Object.freeze(i)}function Ar(t,e,o){let n=chunkMXOO7KRI_cjs.ab(o,i=>chunkMXOO7KRI_cjs.Af(t,e,i));if(n.kind==="external")return n.href;if(n.kind==="internal"){let i=chunkMXOO7KRI_cjs._a(o);return i===void 0||i.length===0?null:`#${i}`}return null}function vr(t,e,o,n,i){let s=Math.min(i?.limit??2e3,2e3),l=[],c=At(e,t),u=c.length-1;for(let[m,A]of c.entries()){if(s<=0)break;let g=t.projectedText(A,i?.projection??"allMarkup");if(!g)continue;let x=g.findOccurrences(n,s,{matchCase:i?.matchCase===true,wholeWord:i?.matchWholeWord===true,...m===0&&e?{from:g.projectedOffset(e.start.offset)}:{},...m===u&&e?{to:g.projectedOffset(e.end.offset)}:{}});for(let k of x.matches){if(m===0&&e&&k.rawStart<e.start.offset||m===u&&e&&k.rawEnd>e.end.offset)continue;let b=o.paragraph(A,t.story);l.push({start:{paragraph:b,offset:k.rawStart},end:{paragraph:b,offset:k.rawEnd}}),s-=1;}}return {ok:true,spans:l}}var Ka={insert:"Insert",delete:"Delete",replace:"Replace",moveFrom:"MovedFrom",moveTo:"MovedTo",format:"Property",paragraphMark:"ParagraphProperty"};function Ga(t){return t.kind==="note"}function Xa(t,e){return e.length===0?!Ga(t.story):e.every(o=>t.has(o.start.paragraphId))}function Ya(t){return Object.freeze(chunkITNK6C5M_cjs.Oa(t.part).filter(e=>Xa(t,e.ranges)))}function gn(t){let e=[];for(let o of Ya(t)){if(o.readOnly||o.revisionKind==="structural")continue;let n=Ka[o.revisionKind];n!==void 0&&e.push(Object.freeze({id:o.id,type:n,author:o.author,date:o.date??"",item:o}));}return Object.freeze(e)}function Ja(t,e){let o=t;for(let n=0;o!==void 0&&n<=64;n+=1){if(o.parentId===void 0)return o.range!==null;o=e.get(o.parentId);}return false}var Qa=Object.freeze({items:Object.freeze([]),roots:Object.freeze([]),byId:()=>null,textOf:()=>""});function Ir(t,e){let o=t.parts.get(chunkITNK6C5M_cjs.X(t,e.part.name));if(!o)return Qa;let n=t.parts.get(chunkITNK6C5M_cjs.Y(t,e.part.name)),i=chunkMXOO7KRI_cjs.zg(o),s=n?chunkMXOO7KRI_cjs.Ag(n):new Map,l=chunkMXOO7KRI_cjs.xg(e.part).filter(g=>e.has(g.start.paragraphId)),c=chunkITNK6C5M_cjs.Pa(i,l,s),u=new Map(c.map(g=>[g.id,g])),m=c.filter(g=>Ja(g,u)),A=new Map(m.map(g=>[g.id,g]));return Object.freeze({items:Object.freeze(m),roots:Object.freeze(m.filter(g=>g.parentId===void 0)),byId:g=>A.get(g)??null,textOf:g=>{let x=A.get(g);return x?chunkITNK6C5M_cjs.Ca(x.comment):""}})}var Za=/[\r\n\v\f\u2028\u2029]/;function Ve(t,e,o){return {code:t,message:e,detail:o}}function Pr(t,e=false){if(typeof t.author!="string"||!t.author.trim()||!chunkMXOO7KRI_cjs.O(t.author))return Ve("unsupported-content","proposals need a non-empty XML-safe author","author");let o=t.op==="proposeInsertion";return !(t.op==="proposeDeletion")&&(typeof t.text!="string"||!e&&!t.text.length||Za.test(t.text)||!chunkMXOO7KRI_cjs.O(t.text))?Ve("unsupported-content","proposals need non-empty inline XML-safe text","text"):o&&t.where!=="Before"&&t.where!=="After"?Ve("unsupported-content","insertion needs Before or After","where"):null}function Or(t,e,o,n){let i=chunkITNK6C5M_cjs.Oa(t.part),s=new Set;if(i.some(c=>c.revisionKind==="structural"))for(let c=chunkMXOO7KRI_cjs.Ia(t.part,e);c!==null&&(s.add(c.id),c.id!==t.root.id);c=chunkMXOO7KRI_cjs.Ia(t.part,c.id));return i.some(c=>{if(c.revisionKind==="structural"){let u=chunkITNK6C5M_cjs.Ea(c),m=0;for(let A of u){let g=chunkMXOO7KRI_cjs.Ia(t.part,A),x=g&&chunkMXOO7KRI_cjs.Ia(t.part,g.id),k=x?.kind==="tableRow"?"trPr":x?.kind==="tableCell"?"tcPr":null;if(!(!x||!k||chunkMXOO7KRI_cjs.Qe(x,k)?.id!==g?.id)){if(s.has(x.id))return true;m+=1;}}if(u.length>0&&m===u.length)return false}return c.ranges.some(u=>{let m=t.indexOf(u.start.paragraphId),A=t.indexOf(u.end.paragraphId),g=t.indexOf(e);if(m<0||A<0||g<m||g>A)return false;let x=g===m?u.start.offset:0,k=g===A?u.end.offset:1/0;return o<=k&&n>=x})})?Ve("unsupported-revision","proposal touches or overlaps a pending revision","span"):null}function Rr(t,e,o,n,i){let s=(F,K,C)=>({ok:false,error:{code:F,message:K,...C===void 0?{}:{detail:C}}}),l=F=>Nt(F,o),c=F=>({ok:true,kind:"query",value:F}),u=Pr(t,e);if(u)return {ok:false,error:u};let m=t.op==="proposeInsertion",A=t.op==="proposeDeletion",g=z(t.span,o,n);if(!g.ok)return s(g.code,"that span is not a place",g.detail);let x=g.value;if(!x||x.start.paragraphId!==x.end.paragraphId)return s("unsupported-content","proposals require a single paragraph range","span");if(!e&&!m&&x.start.offset===x.end.offset)return s("unsupported-content","deletion and replacement need a non-empty range","span");let k=ot(t.span,o,n);if(!k.ok)return s(k.code,"that story is not a place",k.detail);let b=x.start.paragraphId,v=m&&t.where==="After"?x.end.offset:x.start.offset,S=m?v:x.end.offset;if(e&&!A&&v===S&&t.text==="")return c({kind:"span",span:l({start:x.start,end:x.start})});let w=Or(k.value,b,v,S);if(w)return {ok:false,error:w};let H=i(k.value,b);if(H)return H;let E={author:t.author.trim(),date:new Date().toISOString()},j=[];return !m&&S>v&&j.push({op:"deleteText",paragraphId:b,start:v,end:S,revision:E}),!A&&t.text.length>0&&j.push({op:"insertText",paragraphId:b,offset:m?v:S,text:t.text,revision:E}),{ok:true,kind:"command",ops:j,story:k.value.story,answer:()=>{if(!e)return {kind:"applied"};let F={...x.start,offset:m?v:S};return {kind:"span",span:l({start:F,end:{...F,offset:F.offset+(A?0:t.text.length)}})}}}}function yn(t,e,o){if("body"in t){let n=rt(t.body,"body",e,o);return n.ok?{ok:true,reads:n.value}:{ok:false,code:n.code,message:"that handle does not name a body",detail:n.detail}}return e.resolve(t.document,"document")?o.body?{ok:true,reads:o.body}:{ok:false,code:"document-unavailable",message:"this host holds no document"}:{ok:false,code:"invalid-handle",message:"that handle does not name a document",detail:"document"}}function qa(t,e){let o=t.op==="acceptAllRevisions",n=e.story.kind==="note"?{scopeRootId:e.root.id}:{};return [o?{op:"acceptAllRevisions",...n}:{op:"rejectAllRevisions",...n}]}function ti(t,e,o){let n=yn({op:"acceptAllRevisions",body:t.body},e,o);if(!n.ok)return n;if(!["accept","reject"].includes(t.action)||t.revisions!==void 0&&!Array.isArray(t.revisions))return {ok:false,code:"unsupported-content",message:"invalid revision batch"};let i=t.revisions===void 0?void 0:[];for(let l of t.revisions??[]){let c=e.resolve(l,"revision");if(!c||c.kind!=="revision"||G(c.story)!==G(n.reads.story))return {ok:false,code:"invalid-handle",message:"revision does not belong to this story"};i.push(`revision-${c.revisionId}`);}let s=chunkITNK6C5M_cjs._a(n.reads.part,t.action,i,n.reads.story.kind==="note"?n.reads.root:void 0);return {ok:true,reads:n.reads,...s}}function ei(t,e,o,n){let i=yn({op:"acceptAllRevisions",body:t},o,n);if(!i.ok)throw new Error("resolved story disappeared");let{part:s,root:l,story:c}=i.reads,u=chunkITNK6C5M_cjs.Oa(c.kind==="note"&&l.kind!=="textValue"?{...s,root:l}:s).length;return {kind:"revisionBatch",result:{...e,remaining:u}}}function Sr(t,e,o,n){if(t.op==="resolveRevisionBatch"){let l=ti(t,e,o);if(!l.ok)return {ok:false,error:{code:l.code,message:l.message}};let c=n(l.reads);return c||{ok:true,kind:"command",story:l.reads.story,ops:l.ops,answer:u=>ei(t.body,l.result,e,u)}}let i=yn(t,e,o);if(!i.ok)return {ok:false,error:{code:i.code,message:i.message,detail:i.detail}};let s=n(i.reads);return s||{ok:true,kind:"command",story:i.reads.story,ops:qa(t,i.reads),answer:()=>({kind:"applied"})}}var ni=/[\r\n\u2028\u2029]/u,wr=Object.freeze({kind:"applied"});function ee(t,e,o){return {ok:false,error:Object.freeze(o===void 0?{code:t,message:e}:{code:t,message:e,detail:o})}}function hn(t,e){return ee("unsupported-content",t==="author"?"a comment records who wrote it":t==="date"?"a comment date must be a valid ISO-8601 instant":e==="reply"?"a reply says something":"a comment says something",t)}function kn(t){return chunkITNK6C5M_cjs.P(t.author)?hn("author",t.kind):chunkITNK6C5M_cjs.Q(t.text)?hn("text",t.kind):typeof t.text=="string"&&ni.test(t.text)?ee("unsupported-content",t.kind==="reply"?"a reply is one paragraph in this slice":"a comment is one paragraph in this slice","text"):chunkITNK6C5M_cjs.S(t.date)?hn("date",t.kind):null}function bn(t){if(t===void 0)return;let e=chunkITNK6C5M_cjs.R(t);return e.ok?e.value:void 0}function Cr(t,e){let o=chunkMXOO7KRI_cjs.Ha(t.part,e);for(;o;){if(o.kind==="tableCell"||o.kind!=="textValue"&&o.namespaceUri===chunkMXOO7KRI_cjs.da&&o.localName==="tc")return o.id;o=chunkMXOO7KRI_cjs.Ia(t.part,o.id);}return null}function Tr(t,e,o,n){let i=kn({author:t.author,text:t.text,date:t.date,kind:"comment"});if(i)return i;let s=z(t.span,e,o);if(!s.ok)return ee(s.code,"that span is not a place",s.detail);if(s.value===null)return ee("invalid-handle","an empty story has no comment anchor");let l=ot(t.span,e,o);if(!l.ok)return ee(l.code,"that span is not a place",l.detail);let c=s.value;if(Cr(l.value,c.start.paragraphId)!==Cr(l.value,c.end.paragraphId))return ee("unsupported-content","a comment range cannot cross a table-cell boundary");let u=n(l.value);if(u)return u;let m=bn(t.date);return {ok:true,kind:"commentWrite",write:{kind:"create",anchor:{paragraphId:c.start.paragraphId,start:c.start.offset,end:c.end.offset,...c.end.paragraphId===c.start.paragraphId?{}:{endParagraphId:c.end.paragraphId}},text:t.text,author:t.author,...m===void 0?{}:{date:m}},story:l.value.story,answer:(g,x)=>x===void 0?wr:{kind:"handle",handle:e.comment(x,l.value.story)}}}function Nr(t,e,o){let n=o(e);if(n)return n;let i=e.story;return {ok:true,kind:"commentWrite",write:{kind:"delete",commentId:t.id,...t.parentId===void 0?{}:{parentCommentId:t.parentId},...i.kind==="note"?{noteId:i.noteId}:{}},story:i,answer:()=>wr}}var oi=1e4;function Er(t,e){let o=[],n=e.kind==="contentControl"?chunkMXOO7KRI_cjs.Hc(e):e;if(!n)return o;for(let i of chunkMXOO7KRI_cjs.Lc(n))if(!(i.ancestors.length>0)){if(o.length>=oi)break;o.push(jr(t,i.node));}return o}function Lr(t,e){for(let o of chunkMXOO7KRI_cjs.Lc(t.root))if(o.node.id===e)return jr(t,o.node);return null}function Hr(t,e){for(let o of chunkMXOO7KRI_cjs.Lc(t.root))if(o.node.id===e)return o.node;return null}function Fr(t,e){for(let o of t.paragraphIds){let n=t.node(o);if(!(!n||n.kind!=="paragraph")&&chunkMXOO7KRI_cjs.Lc(n).some(i=>i.node.id===e))return n}return null}function We(t,e){let o=Dr(e);if(o.length>0){let s=o[0],l=o[o.length-1],c=t.rawText(l);return c===null||!t.has(s)?null:{start:{paragraphId:s,offset:0},end:{paragraphId:l,offset:c.length}}}let n=Fr(t,e.id);if(!n)return null;let i=chunkMXOO7KRI_cjs.Ue(n).spanOf(e);return i?{start:{paragraphId:n.id,offset:i.start},end:{paragraphId:n.id,offset:i.end}}:null}function ri(t,e,o){let n=Fr(t,e.id),i=chunkMXOO7KRI_cjs.Hc(e);if(!n||!i)return null;let s={...n,children:i.children},l=chunkMXOO7KRI_cjs.Nh(s);return Te(s,l,o).text}function Mr(t,e,o="allMarkup"){if(o==="allMarkup")return chunkMXOO7KRI_cjs.Nc(e);let n=ri(t,e,o);if(n!==null)return n;let i=We(t,e);if(!i)return "";let s=t.indexOf(i.start.paragraphId),l=t.indexOf(i.end.paragraphId);if(s<0||l<s)return "";let c=[];for(let u=s;u<=l;u+=1){let m=t.paragraphIds[u],A=t.projectedText(m,o),g=t.rawText(m);if(!A||g===null)return "";c.push(A.sliceRaw(u===s?i.start.offset:0,u===l?i.end.offset:g.length));}return c.join("\r")}function jr(t,e){return {nodeId:e.id,properties:chunkMXOO7KRI_cjs.Jc(e),lock:chunkMXOO7KRI_cjs.bi(t.part,e.id),paragraphIds:Dr(e)}}function Dr(t){let e=chunkMXOO7KRI_cjs.Hc(t);if(!e)return [];let o=[];return chunkMXOO7KRI_cjs.Cd(e.children,o,0),o.map(n=>n.id)}function fe(t){let e=t.kind==="contentControl"?chunkMXOO7KRI_cjs.Hc(t):t;return e?chunkMXOO7KRI_cjs.Lc(e).map(o=>o.node):[]}var Br=new Set(["unlocked","sdtLocked","contentLocked","sdtContentLocked"]),_r=new Set(["whole","content","start","end","before","after"]),Vr=new Set(["richText","plainText","dropDownList","comboBox","date"]),ai=4096;function Wr(t){let e=(i,s)=>({ok:false,code:"unsupported-content",message:i,detail:s});if(typeof t!="object"||t===null||!("kind"in t))return e("a control value states its kind","value");let o=t,n=o.kind;if(n==="text"||n==="listItem"){let i=n==="text"?o.text:o.value;return typeof i!="string"?e("that value is not a string",String(n)):i.length>ai?e("that value is too long",String(i.length)):{ok:true,value:n==="text"?{kind:"text",text:i}:{kind:"listItem",value:i}}}if(n==="checkbox"){let i=o.checked;return typeof i!="boolean"?e("a checkbox is checked or not","checked"):{ok:true,value:{kind:"checkbox",checked:i}}}if(n==="date"){let i=o.iso;return typeof i!="string"?e("a date is an ISO-8601 string","iso"):i.length>64?e("that is not a date",String(i.length)):{ok:true,value:{kind:"date",iso:i}}}return e("that is not a value any control accepts",String(n))}var ii=new Set(["unlocked","sdtLocked","contentLocked","sdtContentLocked"]),si=4096,Ur=64;function $r(t){if(t===void 0)return {ok:true,value:null};if(typeof t!="object"||t===null)return {ok:false,field:"payload"};let e=t;for(let o of ["namespaceUri","rootLocalName","nodeId"]){let n=e[o];if(typeof n!="string"||n.length===0||n.length>si)return {ok:false,field:o}}return typeof e.label!="string"||e.label.length>chunkITNK6C5M_cjs.ba?{ok:false,field:"label"}:typeof e.data!="string"||e.data.length===0||e.data.length>chunkITNK6C5M_cjs.aa?{ok:false,field:"data"}:{ok:true,value:{namespaceUri:e.namespaceUri,rootLocalName:e.rootLocalName,nodeId:e.nodeId,label:e.label,data:e.data}}}function zr(t){let e=t.at!==void 0,o=t.span!==void 0;return e===o?{message:"a custom node goes at a position or over a span, not both",detail:e?"at+span":"no-place"}:typeof t.tag!="string"||t.tag.length===0?{message:"a custom node carries its identity in its tag",detail:"tag"}:t.tag.length>Ur?{message:`w:tag caps at ${String(Ur)} characters; a longer payload belongs in the store`,detail:"tag"}:typeof t.text!="string"||t.text.length===0?{message:"a custom node shows some text",detail:"text"}:t.lock!==void 0&&!ii.has(t.lock)?{message:"that is not a lock",detail:String(t.lock)}:null}function Kr(t,e,o,n){return {paragraphId:e.paragraphId,offset:e.offset,...o.offset>e.offset?{replaceUntil:o.offset}:{},tag:t.tag,text:t.text,...t.title===void 0?{}:{alias:t.title},...t.lock===void 0||t.lock==="unlocked"?{}:{lock:t.lock},...n===null?{}:{payload:n}}}function Gr(t,e,o){if(t.span){let i=z(t.span,e,o);return i.ok?i.value?i.value.start.paragraphId!==i.value.end.paragraphId?{code:"unsupported-content",message:"a custom node wraps text inside one paragraph",detail:"multi-paragraph"}:{range:i.value}:{code:"invalid-offset",message:"that story holds nothing to wrap",detail:"empty-story"}:{code:i.code,message:"that span is not a place",detail:i.detail}}let n=qt(t.at,e,o);return n.ok?{range:{start:n.value,end:n.value}}:{code:n.code,message:"that is not a place",detail:n.detail}}var ge=/[\r\n\v\f\u2028\u2029]/,li=16,di=64;function ui(t,e,o){return Object.freeze(o===void 0?{code:t,message:e}:{code:t,message:e,detail:o})}function f(t,e,o){return {ok:false,error:ui(t,e,o)}}var tt=Object.freeze({kind:"applied"});function N(t){return {ok:true,kind:"query",value:t}}function xn(t){let{handles:e,capabilities:o}=t,n=t.reads,i=new Map,s=new Map,l=a=>{let p=`${G(a.story)}:${a.root.id}`,y=i.get(p);if(y)return y;let I=new Map,R=a.paragraphIds.map(d=>{let h={id:d};return I.set(d,h),h}),r={externalCreatedCount:0,reads:a,order:R,slotById:I,created:[],restructured:new Set,touched:new Set,textEdits:new He,formatted:new Set,selected:new Set,retargets:[]};return i.set(p,r),r},c=[],u=kr(),m=false,A=null,g=a=>A===null?(A=a,null):A===a?null:f("conflicting-operations","one batch writes into one story",`${G(A.reads.story)} then ${G(a.reads.story)}`),x=a=>g(l(a)),k=a=>{let p=n.package;return p===null?null:Ir(p,a)},b=a=>{let p=e.resolve(a,"comment");if(!p||p.kind!=="comment")return {ok:false,planned:f("invalid-handle","that handle does not name a comment","comment")};let y=n.story(p.story);if(!y)return {ok:false,planned:f("invalid-handle","that story is not in this document")};let R=k(y)?.byId(p.commentId)??null;return R?{ok:true,reads:y,item:R}:{ok:false,planned:f("invalid-handle","this document no longer holds that comment",p.commentId)}},v=a=>{let p=e.resolve(a,"revision");if(!p||p.kind!=="revision")return {ok:false,planned:f("invalid-handle","that handle does not name a tracked change","revision")};let y=n.story(p.story);if(!y)return {ok:false,planned:f("invalid-handle","that story is not in this document")};let I=gn(y).find(R=>R.id===p.revisionId)??null;return I?{ok:true,reads:y,item:I}:{ok:false,planned:f("invalid-handle","this document no longer holds that tracked change",p.revisionId)}},S=(a,p)=>{let y=a.rawText(p.start.paragraphId),I=a.rawText(p.end.paragraphId);if(y===null||I===null)return null;let R={story:a.story,paragraphId:p.start.paragraphId,index:a.indexOf(p.start.paragraphId),offset:Math.min(p.start.offset,y.length)},r={story:a.story,paragraphId:p.end.paragraphId,index:a.indexOf(p.end.paragraphId),offset:Math.min(p.end.offset,I.length)};return C({start:R,end:r})},w=(a,p)=>a.order.indexOf(p),H=(a,p)=>a.selected.has(p)?f("conflicting-operations","this batch selects a paragraph it also edits",p):null,E=(a,p)=>{let y=H(a,p);return y||(a.restructured.has(p)||a.touched.has(p)?f("conflicting-operations","another operation in this batch already changes that paragraph",p):(a.restructured.add(p),a.touched.add(p),null))},j=(a,p)=>{let y=H(a,p);return y||(a.restructured.has(p)||a.textEdits.has(p)?f("conflicting-operations","another operation in this batch restructures that paragraph",p):(a.touched.add(p),null))},F=(a,p,y)=>{let I=`${y}:${p}`;if(a.formatted.has(I))return f("conflicting-operations","another operation in this batch already writes that formatting",p);let R=j(a,p);return R||(a.formatted.add(I),null)},K=(a,p)=>{let y={id:null};return a.order.splice(p,0,y),a.created.push(y),y},C=a=>Nt(a,e),D=a=>a===null?null:n.story(a.start.story),Z=a=>a===void 0||a==="allMarkup"||a==="original"||a==="model",et=(a,p,y,I)=>{if(!Z(I?.projection))return f("unsupported-content","unknown text projection","projection");if(I?.matchWildcards===true)return f("unsupported-capability","wildcard search is not implemented","matchWildcards");if(I?.ignorePunct===true)return f("unsupported-capability","ignoring punctuation is not implemented","ignorePunct");if(I?.ignoreSpace===true)return f("unsupported-capability","ignoring whitespace is not implemented","ignoreSpace");if(!chunkITNK6C5M_cjs.Xa(y))return f("unsupported-content","that is not a query this host will scan for","text");let R=I?.limit;if(R!==void 0&&(!Number.isInteger(R)||R<0))return f("invalid-offset","limit must be a non-negative integer",String(R));let r=vr(a,p,e,y,I);return N({kind:"spans",spans:r.spans})},_=(a,p,y,I=false)=>{let R=p.start.paragraphId,r=a.textEdits.has(R)?H(a,R):a.touched.has(R)?f("conflicting-operations","text edits cannot share a paragraph with other edits",R):j(a,R);return r||Mo(a.textEdits,p,y,e,I)},nt=(a,p,y,I=false)=>{if(typeof y!="string"||ge.test(y))return f("unsupported-content","insertText needs text without paragraph marks","text");let R=g(a);if(R)return R;let r=t.replacementLanding?.(p.paragraphId,p.offset,p.offset)!=null,d=!r&&Fo(a.reads.part,p.paragraphId,p.offset,y);if(d)return d;if(!r&&an(a.reads.part,p.paragraphId,p.offset))return _(a,{start:p,end:p},y,I);let h=E(a,p.paragraphId);return h||{ok:true,kind:"command",ops:y.length?[{op:"insertText",paragraphId:p.paragraphId,offset:p.offset,text:y}]:[],story:a.reads.story,answer:()=>({kind:"span",span:C({start:p,end:{...p,offset:p.offset+y.length}})})}},at=(a,p,y)=>{let I=a.reads;if(typeof y!="string")return f("unsupported-content","replaceSpan needs text","text");if(ge.test(y))return f("unsupported-content","text carrying a paragraph mark is not written by this host","paragraph-mark-in-text");let R=At(p,I),r=p.start.paragraphId,d=[],h=g(a);if(h)return h;let P=R.length===1?p.end.offset:(I.rawText(r)??"").length,O=t.replacementLanding?.(r,p.start.offset,P);if(R.length===1&&O==null&&an(I.part,r,p.start.offset))return _(a,p,y);if(R.length===1){let X=E(a,r);if(X)return X;if(O==null)return Do(I.part,p,y,e);p.end.offset>p.start.offset&&d.push({op:"deleteText",paragraphId:r,start:p.start.offset,end:p.end.offset});}else {for(let M of R){let B=E(a,M);if(B)return B}let X=p.end.paragraphId,U=(I.rawText(r)??"").length;p.start.offset<U&&d.push({op:"deleteText",paragraphId:r,start:p.start.offset,end:U}),p.end.offset>0&&d.push({op:"deleteText",paragraphId:X,start:0,end:p.end.offset});for(let M of R.slice(1,-1))d.push({op:"deleteBlock",blockId:M});d.push({op:"joinParagraphs",firstId:r,secondId:X});for(let M of R.slice(1)){let B=a.slotById.get(M);B&&a.order.splice(w(a,B),1);}}let T=O??p.start.offset;y.length>0&&d.push({op:"insertText",paragraphId:r,offset:T,text:y});let L={...p.start,paragraphId:r,offset:T},$=()=>({kind:"span",span:C({start:L,end:{...L,offset:L.offset+y.length}})});return {ok:true,kind:"command",ops:d,story:a.reads.story,answer:$}},ct=(a,p)=>{let y=a.reads;if(typeof p!="string")return f("unsupported-content","replaceSpan needs text","text");if(ge.test(p))return f("unsupported-content","text carrying a paragraph mark is not written by this host","paragraph-mark-in-text");let I=y.blocks,R=I.filter(M=>M.removable),r=I.filter(M=>!M.removable).flatMap(M=>M.paragraphIds),d=r.length===0?R.find(M=>M.kind==="paragraph"):void 0;if(!d&&r.length===0)return f("invalid-offset","that story holds no paragraph this host can write into","no-top-level-paragraph");let h=g(a);if(h)return h;for(let M of y.paragraphIds){let B=E(a,M);if(B)return B}let P=[],O=(d?[d.id]:[...r]).sort((M,B)=>y.indexOf(M)-y.indexOf(B)),T=O[0],L=(y.rawText(T)??"").length;for(let M of O){let B=(y.rawText(M)??"").length;B>0&&P.push({op:"deleteText",paragraphId:M,start:0,end:B});}for(let M of R)M.id!==d?.id&&P.push({op:"deleteBlock",blockId:M.id});let $=t.replacementLanding?.(T,0,L)??0;p.length>0&&P.push({op:"insertText",paragraphId:T,offset:$,text:p});for(let M of R)if(M.id!==d?.id)for(let B of M.paragraphIds){let kt=a.slotById.get(B);kt&&a.order.splice(w(a,kt),1);}let X={story:y.story,paragraphId:T,index:y.indexOf(T),offset:$},U=()=>({kind:"span",span:C({start:X,end:{...X,offset:$+p.length}})});return {ok:true,kind:"command",ops:P,story:y.story,answer:U}},Mt=(a,p)=>{if(!Array.isArray(p)||p.length<1||p.length>1e4||p.some(I=>typeof I!="string"||ge.test(I)||!chunkMXOO7KRI_cjs.O(I)))return f("unsupported-content","replaceStoryBlocks needs 1-10000 valid XML text strings without paragraph marks","paragraphs");let y=g(a);if(y)return y;for(let I of a.reads.paragraphIds){let R=E(a,I);if(R)return R}a.order.splice(0,a.order.length);for(let I=0;I<p.length;I+=1)K(a,I);return {ok:true,kind:"command",ops:[{op:"replaceStoryBlocks",storyRootId:a.reads.root.id,paragraphs:p}],story:a.reads.story,answer:()=>tt}},Et=(a,p,y,I)=>{let R=a.reads;if(typeof I!="string")return f("unsupported-content","insertParagraph needs text","text");if(ge.test(I))return f("unsupported-content","a paragraph mark inside a paragraph\u2019s text is not written by this host","paragraph-mark-in-text");let r=g(a);if(r)return r;let d=E(a,p.paragraphId);if(d)return d;let h=a.slotById.get(p.paragraphId);if(!h)return f("invalid-handle","that paragraph is not in the body");let P=(R.rawText(p.paragraphId)??"").length,O=[];y==="after"?(I.length>0&&O.push({op:"insertText",paragraphId:p.paragraphId,offset:P,text:I}),O.push({op:"splitParagraph",paragraphId:p.paragraphId,offset:P})):(I.length>0&&O.push({op:"insertText",paragraphId:p.paragraphId,offset:0,text:I}),O.push({op:"splitParagraph",paragraphId:p.paragraphId,offset:I.length}));let T=K(a,w(a,h)+1);y==="before"&&a.retargets.push({from:p.paragraphId,slot:T});let L=()=>{let $=y==="after"?T.id:p.paragraphId;return $===null?tt:{kind:"handle",handle:e.paragraph($,R.story)}};return {ok:true,kind:"command",ops:O,story:R.story,answer:L}},ne=(a,p,y,I,R)=>{let r=a.reads;if(!Array.isArray(y)||y.length===0)return f("unsupported-content","split needs at least one delimiter","delimiters");if(y.length>li)return f("unsupported-content","too many delimiters",String(y.length));for(let B of y){if(typeof B!="string"||B.length===0)return f("unsupported-content","a delimiter must be a non-empty string","delimiters");if(B.length>di)return f("unsupported-content","that delimiter is too long","delimiters")}let d=g(a);if(d)return d;let h=E(a,p.paragraphId);if(h)return h;let P=a.slotById.get(p.paragraphId);if(!P)return f("invalid-handle","that paragraph is not in the body");let O=r.rawText(p.paragraphId)??"",T=_o(O,y),L=[],$=[],X=[];if(T.length===0)X.push(O);else if(I){for(let lt of [...T].reverse())L.push({op:"deleteText",paragraphId:p.paragraphId,start:lt.start,end:lt.start+lt.length});let B=0,kt=0;for(let lt of T){let $e=lt.start-B;$.push($e),X.push(O.slice(kt,lt.start)),kt=lt.start+lt.length,B+=lt.length;}X.push(O.slice(kt));}else {let B=0;for(let kt of T){let lt=kt.start+kt.length;$.push(lt),X.push(O.slice(B,lt)),B=lt;}X.push(O.slice(B));}$.length>0&&L.push({op:"splitParagraphMany",paragraphId:p.paragraphId,offsets:$});let U=[P];for(let B=0;B<$.length;B+=1)U.push(K(a,w(a,P)+1+B));let M=B=>{let kt=B.story(r.story),lt=[];return U.forEach(($e,Zr)=>{let ze=$e.id;if(ze===null)return;let Ke=kt?.rawText(ze)??X[Zr]??"",[qr,ta]=R?Uo(Ke,0,Ke.length):[0,Ke.length],Pn=e.paragraph(ze,r.story);lt.push({start:{paragraph:Pn,offset:qr},end:{paragraph:Pn,offset:ta}});}),{kind:"spans",spans:lt}};return {ok:true,kind:"command",ops:L,story:r.story,answer:M}},V=(a,p)=>{let y=g(a);if(y)return y;let I=E(a,p.paragraphId);if(I)return I;let R=a.slotById.get(p.paragraphId);return R&&a.order.splice(w(a,R),1),{ok:true,kind:"command",ops:[{op:"deleteBlock",blockId:p.paragraphId}],story:a.reads.story,answer:()=>tt}},Pt=(a,p,y)=>{let I=a.reads,R=I.part,r=g(a);if(r)return r;let d=yr(y??{});if(!d.ok)return f("unsupported-content","that is not formatting this host writes",d.detail);let h=[];for(let P of Ut(p,I)){if(P.end<=P.start&&!P.whole)continue;let O=F(a,P.paragraphId,"runs");if(O)return O;for(let T of chunkITNK6C5M_cjs.za(R,P.paragraphId,P.start,P.end,d.value.filter(L=>L.localName!=="vertAlign"),t.displayMode))h.push({op:"setRunProperties",paragraphId:P.paragraphId,start:T.start,end:T.end,properties:cn(T.properties,y),...T.targetRunIds?{targetRunIds:T.targetRunIds}:{}});P.whole&&h.push({op:"setParagraphMarkProperties",paragraphId:P.paragraphId,properties:cn(chunkITNK6C5M_cjs.ya(R,P.paragraphId,d.value.filter(T=>T.localName!=="vertAlign")),y)});}return h.length===0?f("invalid-offset","that range covers no characters to format","collapsed-range"):{ok:true,kind:"command",ops:h,story:I.story,answer:()=>tt}},ht=(a,p,y)=>{let I=a.reads,R=I.part,r=g(a);if(r)return r;let d=we(y,I.styles());if(!d.ok)return f("unsupported-content","that is not a style this document has",d.detail);let h={localName:"pStyle",attributes:{val:d.styleId}},P=[];for(let O of At(p,I)){let T=F(a,O,"paragraph");if(T)return T;P.push({op:"setParagraphProperties",paragraphId:O,properties:chunkITNK6C5M_cjs.ta(chunkITNK6C5M_cjs.ra(R,O),h)});}return P.length===0?f("invalid-offset","that story holds no paragraph to style","empty-story"):{ok:true,kind:"command",ops:P,story:I.story,answer:()=>tt}},q=(a,p,y)=>{let I=a.reads,R=I.part,r=g(a);if(r)return r;let d=hr(R,p.paragraphId,y??{},I.styles());if(!d.ok)return f("unsupported-content","that is not paragraph formatting this host writes",d.detail);let h=F(a,p.paragraphId,"paragraph");return h||{ok:true,kind:"command",ops:[{op:"setParagraphProperties",paragraphId:p.paragraphId,properties:d.value}],story:I.story,answer:()=>tt}},gt=(a,p)=>{let y=n.body;if(!y)return f("document-unavailable","this host holds no document right now");let I=n.sections();if(!I[a])return f("invalid-handle","that section is not in this document");let r=Ro(p);if(!r.ok)return f("unsupported-content",r.reason,r.detail);let d=Vo(y,I,a);if(d===null)return f("unsupported-content","that section holds no paragraph to address it by","no-anchor");let h=l(y),P=g(h);return P||{ok:true,kind:"command",ops:[{op:"setSectionProperties",...r.value,anchorParagraphId:d}],story:Ft,answer:()=>tt}},Q=(a,p)=>({ok:true,kind:"command",ops:[{op:"deleteNote",noteKind:a,noteId:p}],story:Ft,lifecycle:true,answer:()=>tt}),Ot=a=>{let p=e.resolve(a,"list");if(!p||p.kind!=="list")return f("invalid-handle","that handle does not name a list","list");let y=n.story(p.story);if(!y)return f("invalid-handle","that story is not in this document");let I=zt(y).find(R=>R.numId===p.numId);return I?{ok:true,plan:l(y),list:I}:f("invalid-handle","this story numbers nothing with that list",p.numId)},Ue=a=>{if(typeof a!="object"||a===null)return f("invalid-handle","that is not a scope a control lives in","scope");let p=a;if("body"in a){let y=rt(p.body,"body",e,n);return y.ok?{reads:y.value,node:y.value.root}:f(y.code,"that handle does not name a body",y.detail)}if("contentControl"in a){let y=Rt(p.contentControl);return "control"in y?{reads:y.reads,node:y.node}:y}return f("invalid-handle","that is not a scope a control lives in","scope")},Rt=a=>{let p=e.resolve(a,"contentControl");if(!p||p.kind!=="contentControl")return f("invalid-handle","that handle does not name a content control","contentControl");let y=n.story(p.story);if(!y)return f("invalid-handle","that story is not in this document");let I=Lr(y,p.nodeId),R=Hr(y,p.nodeId);return !I||!R?f("invalid-handle","this document no longer holds that content control"):{reads:y,control:I,node:R}},Xr=(a,p,y)=>{if(!Number.isInteger(y)||y<0||y>te)return f("invalid-offset",`a list level is 0 to ${String(te)}`,String(y));let I=me(a.reads,p);if(!I)return f("unsupported-content","that paragraph is not in a list",p);if(!n.package||!pe(n.package,I.numId,y))return f("unsupported-content","list level is not defined; configure that level first",p);let R=g(a);if(R)return R;let r=F(a,p,"paragraph");return r||{ok:true,kind:"command",ops:[{op:"setListLevel",paragraphId:p,level:y}],story:a.reads.story,answer:()=>tt}},Yr=(a,p,y,I)=>{if(y!=="start"&&y!=="end")return f("unknown-operation","a list takes an item at its start or its end",String(y));let R=a.reads,r=y==="start"?p.paragraphIds[0]:p.paragraphIds[p.paragraphIds.length-1];if(r===void 0)return f("invalid-handle","that list holds no paragraph");let d={story:R.story,paragraphId:r,index:R.indexOf(r)};return Et(a,d,y==="start"?"before":"after",I)},An=(a,p)=>{if(p.start.paragraphId!==p.end.paragraphId)return null;for(let y of xr(a,p.start.paragraphId))if(y.start<=p.start.offset&&y.end>=p.end.offset)return y;return null},Jr=(a,p,y)=>{if(typeof y!="string")return f("unsupported-content","a hyperlink target is a string","target");let I=a.reads,R=An(I,p),r=p.start.paragraphId===p.end.paragraphId&&p.start.offset===p.end.offset,d=R&&(p.start.offset!==R.start||p.end.offset!==R.end),h=d?{range:{start:p.start.offset,end:p.end.offset}}:{};if(d){let U=I.node(R.paragraphId),M=U?.kind==="paragraph"?U.children.find(B=>B.id===R.id):void 0;if(r||!M||!chunkMXOO7KRI_cjs.yh(M)||U?.kind!=="paragraph"||!U.children.some(B=>B.id===R.id))return f("unsupported-capability","partial hyperlink edits require ordinary text in a paragraph")}if(y.length===0){if(!R)return f("unsupported-content","that text is not a link","no-link");let U=g(a);if(U)return U;let M=j(a,R.paragraphId);return M||{ok:true,kind:"command",ops:[{op:"removeHyperlink",linkId:R.id,...h}],story:I.story,answer:()=>tt}}let P={},O=null;if(y.startsWith("#")){let U=y.slice(1);if(U.length===0||!fn(I,U))return f("unsupported-content","this document declares no such bookmark",y);P={anchor:U};}else {if(chunkMXOO7KRI_cjs.yf(y)===null)return f("unsupported-content","this engine will not author that target","target");O=y;}let T=g(a);if(T)return T;let L=U=>O===null?{ok:true,kind:"command",ops:[U(P)],story:I.story,answer:()=>tt}:{ok:true,kind:"command",ops:[],relate:{url:O,ops:M=>[U({relationshipId:M})]},story:I.story,answer:()=>tt};if(R){let U=j(a,R.paragraphId);return U||L(M=>({op:"setHyperlinkTarget",linkId:R.id,...h,...M}))}if(r)return f("unsupported-content","a link with no text has nothing to click","collapsed");if(p.start.paragraphId!==p.end.paragraphId)return f("unsupported-content","a link lives inside one paragraph","crosses-paragraph-mark");let $=j(a,p.start.paragraphId);if($)return $;let X=I.styles().idOf("hyperlink");return L(U=>({op:"insertHyperlink",paragraphId:p.start.paragraphId,start:p.start.offset,end:p.end.offset,...U,...X===null?{}:{styleId:X}}))},vn=(a,p,y)=>{let I=a.reads;if(!o.selection||!t.select)return f("unsupported-capability","this host has no reader to move","selection");if(y!=="select"&&y!=="start"&&y!=="end")return f("unknown-operation","that is not a selection mode",String(y));let R=At(p,I);for(let r of R)if(a.touched.has(r))return f("conflicting-operations","this batch edits a paragraph the selection covers",r);for(let r of R)a.selected.add(r);return c.push({range:p,mode:y}),{ok:true,kind:"command",ops:[],story:I.story,answer:()=>tt}},In=a=>{let p=e.resolve(a,"bookmark");if(!p||p.kind!=="bookmark")return f("invalid-handle","that handle does not name a bookmark","bookmark");let y=n.story(p.story);if(!y)return f("invalid-handle","that story is not in this document");let I=fn(y,p.name);if(!I)return f("invalid-handle","this document no longer declares that bookmark",p.name);let R=r=>({story:y.story,paragraphId:r.paragraphId,index:y.indexOf(r.paragraphId),offset:r.offset});return {reads:y,range:{start:R(I.start),end:R(I.end)}}},Qr=(a,p)=>{let y=Jo(a,t,r=>xn({...t,reads:r}));if(y)return p&&y.ok&&y.kind==="command"?f("unsupported-content","header/footer creation cannot be tracked"):y;let I=Xo(a,{handles:e,reads:n,admitWrite:(r,d,h)=>{let P=l(r),O=g(P);if(O)return O;for(let T of h){let L=E(P,T);if(L)return L}return P.externalCreatedCount+=d,null}});if(I)return I;let R=p!==void 0;switch(R&&a.op==="insertText"?a={op:"proposeInsertion",span:{start:a.at,end:a.at},text:a.text,where:"Before",author:p}:R&&a.op==="replaceSpan"&&(a={op:"proposeReplacement",span:a.span,text:a.text,author:p}),a.op){case "getFields":case "getField":case "setFieldCode":case "deleteField":case "updateFieldResult":case "insertField":return zo(a,e,n,(r,d,h)=>{let P=l(r);return g(P)??(h?null:E(P,d))},t.fieldPageContext);case "getInlinePictures":case "getInlinePicture":case "setInlinePicture":case "deleteInlinePicture":case "insertInlinePicture":return nr(a,e,n,(r,d)=>{let h=l(r);return g(h)??E(h,d)});case "insertBreak":return or(a,e,n,(r,d,h)=>{let P=l(r),O=g(P)??E(P,d);return O||(P.externalCreatedCount+=h),O});case "startNewList":case "attachToList":case "detachFromList":case "setListLevelFormat":return sr(a,e,n,(r,d,h)=>{let P=l(r);return g(P)??F(P,d,h?`list:${h.numId}:${h.level}`:"paragraph")});case "getDocument":return N({kind:"handle",handle:e.document()});case "getBody":return e.resolve(a.document,"document")?n.body?N({kind:"handle",handle:e.body(Ft)}):f("document-unavailable","this host holds no document right now"):f("invalid-handle","that handle does not name a document","document");case "getParagraphs":{let r=rt(a.body,"body",e,n);return r.ok?N({kind:"handles",handles:r.value.paragraphIds.map(d=>e.paragraph(d,r.value.story))}):f(r.code,"that handle does not name a body",r.detail)}case "getRange":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);if(!r.value)return f("invalid-offset","empty story");if(!["Whole","Content","Start","End"].includes(a.location))return f("unsupported-content","unsupported range location");let d=r.value,h=a.location==="Start"?{start:d.start,end:d.start}:a.location==="End"?{start:d.end,end:d.end}:d;return N({kind:"span",span:Nt(h,e)})}case "getSpanParagraphs":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);let d=ot(a.span,e,n);return d.ok?N({kind:"handles",handles:At(r.value,d.value).map(h=>e.paragraph(h,d.value.story))}):f(d.code,"that span is not a place",d.detail)}case "getText":{if(!Z(a.projection))return f("unsupported-content","unknown text projection","projection");if(e.resolve(a.target,"body")){let P=rt(a.target,"body",e,n);return P.ok?N({kind:"text",text:P.value.text(a.projection??"allMarkup")}):f(P.code,"that handle does not name a body",P.detail)}let d=pt(a.target,e,n);if(!d.ok)return f(d.code,"that handle does not name a body or a paragraph",d.detail);let h=n.story(d.value.story);return N({kind:"text",text:h?.paragraphText(d.value.paragraphId,a.projection??"allMarkup")??""})}case "getSpanText":{if(!Z(a.projection))return f("unsupported-content","unknown text projection","projection");let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);let d=ot(a.span,e,n);return d.ok?N({kind:"text",text:Ho(r.value,d.value,on,a.projection??"allMarkup")}):f(d.code,"that span is not a place",d.detail)}case "getParagraphId":{let r=pt(a.paragraph,e,n);if(!r.ok)return f(r.code,"that handle does not name a paragraph",r.detail);let h=n.story(r.value.story)?.paragraph(r.value.paragraphId);return N({kind:"text",text:h?.paraId??""})}case "search":{let r=z(a.scope,e,n);if(!r.ok)return f(r.code,"that is not a scope to search",r.detail);let d=ot(a.scope,e,n);return d.ok?et(d.value,r.value,a.text,a.options):f(d.code,"that is not a scope to search",d.detail)}case "proposeInsertion":case "proposeDeletion":case "proposeReplacement":return Rr(a,R,e,n,(r,d)=>{let h=l(r);return g(h)??E(h,d)});case "insertText":{let r=qt(a.at,e,n);if(!r.ok)return f(r.code,"that is not a place to insert at",r.detail);let d=n.story(r.value.story);return d?nt(l(d),r.value,a.text,"at"in a.at&&a.at.at==="start"):f("invalid-handle","that story is not in this document")}case "replaceSpan":{if("body"in a.span){let h=rt(a.span.body,"body",e,n);return h.ok?ct(l(h.value),a.text):f(h.code,"that handle does not name a body",h.detail)}let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);if(!r.value)return f("invalid-offset","that story holds no paragraph to write into","empty-story");let d=D(r.value);return d?at(l(d),r.value,a.text):f("invalid-handle","that story is not in this document")}case "replaceStoryBlocks":{let r=rt(a.body,"body",e,n);return r.ok?Mt(l(r.value),a.paragraphs):f(r.code,"that handle does not name a body",r.detail)}case "insertParagraph":{let r=Le(a.anchor,e,n);if(!r.ok)return f(r.code,"that is not a paragraph to insert beside",r.detail);if(a.where!=="before"&&a.where!=="after")return f("unknown-operation","that is not a place to insert",String(a.where));let d=n.story(r.value.story);return d?Et(l(d),r.value,a.where,a.text):f("invalid-handle","that story is not in this document")}case "splitParagraph":{let r=pt(a.paragraph,e,n);if(!r.ok)return f(r.code,"that handle does not name a paragraph",r.detail);let d=n.story(r.value.story);return d?ne(l(d),r.value,a.delimiters,a.trimDelimiters===true,a.trimSpacing===true):f("invalid-handle","that story is not in this document")}case "getFont":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);let d=ot(a.span,e,n);if(!d.ok)return f(d.code,"that span is not a place",d.detail);let h=Ut(r.value,d.value);return N({kind:"font",font:fr(d.value.part,h,t.displayMode)})}case "setFont":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);if(!r.value)return f("invalid-offset","that story holds no paragraph to format","empty-story");let d=D(r.value);return d?Pt(l(d),r.value,a.font):f("invalid-handle","that story is not in this document")}case "getStyle":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);let d=ot(a.span,e,n);if(!d.ok)return f(d.code,"that span is not a place",d.detail);let h=d.value.part,P=d.value.styles(),O=At(r.value,d.value).map(L=>Ce(h,L,P)),T=O.length>0&&O.every(L=>L!==null&&L===O[0])?O[0]:null;return N({kind:"style",name:T})}case "setStyle":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);if(!r.value)return f("invalid-offset","that story holds no paragraph to style","empty-story");let d=D(r.value);return d?ht(l(d),r.value,a.name):f("invalid-handle","that story is not in this document")}case "getParagraphFormat":{let r=Le(a.paragraph,e,n);if(!r.ok)return f(r.code,"that is not a paragraph",r.detail);let d=n.story(r.value.story);if(!d)return f("document-unavailable","this host holds no document right now");let h=gr(d.part,r.value.paragraphId,d.styles());return h?N({kind:"paragraphFormat",format:h}):f("invalid-handle","that handle does not name a paragraph")}case "setParagraphFormat":{let r=Le(a.paragraph,e,n);if(!r.ok)return f(r.code,"that is not a paragraph",r.detail);let d=n.story(r.value.story);return d?q(l(d),r.value,a.format):f("invalid-handle","that story is not in this document")}case "deleteParagraph":{let r=pt(a.paragraph,e,n);if(!r.ok)return f(r.code,"that handle does not name a paragraph",r.detail);let d=n.story(r.value.story);return d?V(l(d),r.value):f("invalid-handle","that story is not in this document")}case "getSections":return e.resolve(a.document,"document")?N({kind:"handles",handles:n.sections().map(r=>e.section(r.index))}):f("invalid-handle","that handle does not name a document","document");case "getPageSetup":{let r=e.resolve(a.section,"section");if(!r||r.kind!=="section")return f("invalid-handle","that handle does not name a section","section");let d=n.sections()[r.index];return d?N({kind:"pageSetup",setup:d.pageSetup}):f("invalid-handle","that section is not in this document")}case "setPageSetup":{let r=e.resolve(a.section,"section");return !r||r.kind!=="section"?f("invalid-handle","that handle does not name a section","section"):gt(r.index,a.setup)}case "getFurniture":{let r=e.resolve(a.section,"section");if(!r||r.kind!=="section")return f("invalid-handle","that handle does not name a section","section");if(a.kind!=="header"&&a.kind!=="footer")return f("unknown-operation","that is not furniture",String(a.kind));let d={kind:a.kind,sectionIndex:r.index,variant:a.variant};return Oo(d)?n.sections()[r.index]?N({kind:"handle",handle:e.body(d)}):f("invalid-handle","that section no longer exists"):f("unknown-operation","that is not a furniture variant",String(a.variant))}case "getNotes":{if(!e.resolve(a.document,"document"))return f("invalid-handle","that handle does not name a document","document");if(a.noteKind!=="footnote"&&a.noteKind!=="endnote")return f("unknown-operation","that is not a kind of note",String(a.noteKind));let r=a.noteKind,d=n.noteIds(r);return d.ok?N({kind:"handles",handles:d.ids.map(h=>e.note(r,h))}):f("ambiguous-document",`${r} identities are not completely and unambiguously enumerable`,d.reason==="duplicates"?d.duplicateIds.join(","):d.reason)}case "getNoteBody":case "getNoteText":{let r=e.resolve(a.note,"note");if(!r||r.kind!=="note")return f("invalid-handle","that handle does not name a note","note");let d=r,h=n.story(d);return h?a.op==="getNoteText"?N({kind:"text",text:h.text(a.projection)}):N({kind:"handle",handle:e.body(d)}):f("invalid-handle","that note is not in this document",G(d))}case "getNoteKind":{let r=e.resolve(a.note,"note");return !r||r.kind!=="note"?f("invalid-handle","that handle does not name a note","note"):N({kind:"text",text:r.noteKind})}case "deleteNote":{let r=e.resolve(a.note,"note");if(!r||r.kind!=="note")return f("invalid-handle","that handle does not name a note","note");let d=n.noteIds(r.noteKind);return d.ok?d.ids.includes(r.noteId)?Q(r.noteKind,r.noteId):f("invalid-handle","that note is not in this document"):f("ambiguous-document",`${r.noteKind} identities are not completely and unambiguously enumerable`,d.reason==="duplicates"?d.duplicateIds.join(","):d.reason)}case "getLists":{let r=rt(a.body,"body",e,n);return r.ok?N({kind:"handles",handles:zt(r.value).map(d=>e.list(d.numId,r.value.story))}):f(r.code,"that handle does not name a body",r.detail)}case "getListId":{let r=Ot(a.list);return "list"in r?N({kind:"number",value:Number(r.list.numId)}):r}case "getListById":{let r=rt(a.body,"body",e,n);if(!r.ok)return f(r.code,"that handle does not name a body",r.detail);if(!Number.isInteger(a.id)||a.id<=0)return f("unsupported-content","a list is numbered from one",String(a.id));let d=String(a.id),h=zt(r.value).find(P=>P.numId===d);return h?N({kind:"handle",handle:e.list(h.numId,r.value.story)}):f("invalid-handle","no list in that story carries that number",d)}case "getListParagraphs":{let r=Ot(a.list);if(!("list"in r))return r;let d=a.level;if(d!==void 0&&(!Number.isInteger(d)||d<0||d>te))return f("invalid-offset",`a list level is 0 to ${String(te)}`,String(d));let h=r.plan.reads,P=d===void 0?r.list.paragraphIds:r.list.paragraphIds.filter(O=>me(h,O)?.level===d);return N({kind:"handles",handles:P.map(O=>e.paragraph(O,h.story))})}case "getParagraphList":{let r=pt(a.paragraph,e,n);if(!r.ok)return f(r.code,"that handle does not name a paragraph",r.detail);let d=n.story(r.value.story);if(!d)return f("invalid-handle","that story is not in this document");let h=me(d,r.value.paragraphId);return h?N({kind:"handle",handle:e.list(h.numId,d.story)}):f("unsupported-content","that paragraph is not in a list",r.value.paragraphId)}case "getListLevel":{let r=pt(a.paragraph,e,n);if(!r.ok)return f(r.code,"that handle does not name a paragraph",r.detail);let d=n.story(r.value.story);if(!d)return f("invalid-handle","that story is not in this document");let h=me(d,r.value.paragraphId);return h?N({kind:"number",value:h.level}):f("unsupported-content","that paragraph is not in a list",r.value.paragraphId)}case "setListLevel":{let r=pt(a.paragraph,e,n);if(!r.ok)return f(r.code,"that handle does not name a paragraph",r.detail);let d=n.story(r.value.story);return d?Xr(l(d),r.value.paragraphId,a.level):f("invalid-handle","that story is not in this document")}case "insertListParagraph":{let r=Ot(a.list);return "list"in r?Yr(r.plan,r.list,a.where,a.text):r}case "getHyperlink":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);let d=ot(a.span,e,n);if(!d.ok)return f(d.code,"that span is not a place",d.detail);let h=n.package;if(!h||!r.value)return N({kind:"text",text:""});let P=An(d.value,r.value);if(!P)return N({kind:"text",text:""});let O=chunkMXOO7KRI_cjs.Ha(d.value.part,P.id),T=O?Ar(h,d.value.part.name,O):null;return N({kind:"text",text:T??""})}case "setHyperlink":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);if(!r.value)return f("invalid-offset","that story holds no text to link","empty-story");let d=D(r.value);return d?Jr(l(d),r.value,a.target):f("invalid-handle","that story is not in this document")}case "getBookmarks":{let r=z(a.scope,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);let d=ot(a.scope,e,n);if(!d.ok)return f(d.code,"that span is not a place",d.detail);let h=d.value,P=r.value,O=P===null?null:new Set(At(P,h)),T=mn(h).filter(L=>{if(!O||!O.has(L.start.paragraphId)&&!O.has(L.end.paragraphId)||P===null)return false;let $=L.start.paragraphId===P.end.paragraphId&&L.start.offset>P.end.offset,X=L.end.paragraphId===P.start.paragraphId&&L.end.offset<P.start.offset;return !$&&!X});return N({kind:"handles",handles:T.map(L=>e.bookmark(L.name,h.story))})}case "getBookmarkName":{let r=e.resolve(a.bookmark,"bookmark");return !r||r.kind!=="bookmark"?f("invalid-handle","that handle does not name a bookmark","bookmark"):N({kind:"text",text:r.name})}case "getBookmarkRange":{let r=In(a.bookmark);return "reads"in r?N({kind:"span",span:C(r.range)}):r}case "getComments":{let r=z(a.scope,e,n);if(!r.ok)return f(r.code,"that scope is not a place",r.detail);let d=ot(a.scope,e,n);if(!d.ok)return f(d.code,"that scope names no story",d.detail);let h=d.value,P=k(h);if(!P)return f("document-unavailable","this host holds no document");let O=r.value,T=P.roots.filter(L=>{if(!O)return true;let $=L.range;if(!$)return false;let X=h.indexOf($.start.paragraphId),U=h.indexOf($.end.paragraphId),M=h.indexOf(O.start.paragraphId),B=h.indexOf(O.end.paragraphId);return U<M||X>B?false:U===M&&X===M&&B===M?$.end.offset>O.start.offset&&$.start.offset<O.end.offset:true});return N({kind:"handles",handles:T.map(L=>e.comment(L.id,h.story))})}case "getCommentReplies":{let r=b(a.comment);return r.ok?N({kind:"handles",handles:r.item.replyIds.map(d=>e.comment(d,r.reads.story))}):r.planned}case "getCommentId":{let r=b(a.comment);return r.ok?N({kind:"text",text:r.item.id}):r.planned}case "getCommentAuthor":{let r=b(a.comment);return r.ok?N({kind:"text",text:r.item.comment.author}):r.planned}case "getCommentDate":{let r=b(a.comment);return r.ok?N({kind:"text",text:r.item.comment.date??""}):r.planned}case "getCommentText":{let r=b(a.comment);if(!r.ok)return r.planned;let d=k(r.reads);return N({kind:"text",text:d?.textOf(r.item.id)??""})}case "getCommentRange":{let r=b(a.comment);if(!r.ok)return r.planned;let d=r.item.range;if(!d||r.item.orphaned)return f("invalid-handle","that comment has no range in this document");let h=S(r.reads,d);return h?N({kind:"span",span:h}):f("invalid-handle","that comment\u2019s range is no longer in the story")}case "getCommentResolved":{let r=b(a.comment);return r.ok?N({kind:"flag",value:r.item.resolved}):r.planned}case "insertComment":return Tr(a,e,n,x);case "setCommentResolved":{let r=b(a.comment);if(!r.ok)return r.planned;if(typeof a.resolved!="boolean")return f("unsupported-content","resolved is a yes or a no",String(a.resolved));let d=g(l(r.reads));return d||{ok:true,kind:"commentWrite",write:{kind:"resolve",commentId:r.item.id,resolved:a.resolved},story:r.reads.story,answer:()=>tt}}case "replyToComment":{let r=b(a.comment);if(!r.ok)return r.planned;let d=kn({author:a.author,text:a.text,date:a.date,kind:"reply"});if(d)return d;let h=r.item.range;if(!h||r.item.orphaned)return f("invalid-handle","that comment has no range to reply over");let P=g(l(r.reads));if(P)return P;let O=r.reads.story,T=bn(a.date);return {ok:true,kind:"commentWrite",write:{kind:"reply",parentCommentId:r.item.id,anchor:{paragraphId:h.start.paragraphId,start:h.start.offset,end:h.end.offset,...h.end.paragraphId===h.start.paragraphId?{}:{endParagraphId:h.end.paragraphId}},text:a.text,author:a.author,...T===void 0?{}:{date:T}},story:r.reads.story,answer:(L,$)=>$===void 0?tt:{kind:"handle",handle:e.comment($,O)}}}case "deleteComment":{let r=b(a.comment);return r.ok?Nr(r.item,r.reads,d=>g(l(d))):r.planned}case "getRevisions":{let r=rt(a.body,"body",e,n);if(!r.ok)return f(r.code,"that handle does not name a body",r.detail);let d=r.value;return N({kind:"handles",handles:gn(d).map(h=>e.revision(h.id,d.story))})}case "getRevisionType":{let r=v(a.revision);return r.ok?N({kind:"text",text:r.item.type}):r.planned}case "getRevisionAuthor":{let r=v(a.revision);return r.ok?N({kind:"text",text:r.item.author}):r.planned}case "getRevisionDate":{let r=v(a.revision);return r.ok?N({kind:"text",text:r.item.date}):r.planned}case "getRevisionRange":{let r=v(a.revision);if(!r.ok)return r.planned;let[d]=r.item.item.ranges;if(!d)return f("invalid-handle","that change covers no characters");let h=S(r.reads,d);return h?N({kind:"span",span:h}):f("invalid-handle","that change\u2019s range is no longer in the story")}case "acceptRevision":case "rejectRevision":{let r=v(a.revision);if(!r.ok)return r.planned;let d=l(r.reads),h=g(d);if(h)return h;let P=a.op==="acceptRevision";return {ok:true,kind:"command",story:r.reads.story,ops:r.item.item.addresses.map(O=>P?{op:"acceptRevision",revision:O}:{op:"rejectRevision",revision:O}),answer:()=>tt}}case "resolveRevisionBatch":case "acceptAllRevisions":case "rejectAllRevisions":return Sr(a,e,n,r=>g(l(r)));case "selectSpan":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);if(!r.value)return f("invalid-offset","that story holds no paragraph to select","empty-story");let d=D(r.value);return d?vn(l(d),r.value,a.mode):f("invalid-handle","that story is not in this document")}case "selectBookmark":{let r=In(a.bookmark);return "reads"in r?vn(l(r.reads),r.range,a.mode):r}case "getContentControls":{let r=Ue(a.scope);return "reads"in r?N({kind:"handles",handles:Er(r.reads,r.node).map(d=>e.contentControl(d.nodeId,r.reads.story))}):r}case "getContentControlById":{let r=Ue(a.scope);if(!("reads"in r))return r;if(!Number.isInteger(a.id))return f("unsupported-content","a control id is a whole number",String(a.id));let d=fe(r.node).find(h=>chunkMXOO7KRI_cjs.Jc(h).id===a.id);return d?N({kind:"handle",handle:e.contentControl(d.id,r.reads.story)}):f("invalid-handle","no control in that scope carries that id",String(a.id))}case "getContentControlsByTag":case "getContentControlsByTitle":{let r=Ue(a.scope);if(!("reads"in r))return r;let d=a.op==="getContentControlsByTag"?a.tag:a.title;if(typeof d!="string"||d.length===0)return f("unsupported-content","a tag or title to match is required",a.op);let h=fe(r.node).filter(P=>{let O=chunkMXOO7KRI_cjs.Jc(P);return a.op==="getContentControlsByTag"?O.tag===d:O.alias===d});return N({kind:"handles",handles:h.map(P=>e.contentControl(P.id,r.reads.story))})}case "getContentControlTag":case "getContentControlTitle":case "getContentControlFileId":case "getContentControlSubtype":case "getContentControlLock":{let r=Rt(a.contentControl);if(!("control"in r))return r;let d=r.control.properties;if(a.op==="getContentControlLock")return N({kind:"text",text:r.control.lock});if(a.op==="getContentControlSubtype")return N({kind:"text",text:d.type});if(a.op==="getContentControlFileId")return N({kind:"text",text:d.id===void 0?"":String(d.id)});let h=a.op==="getContentControlTag"?d.tag:d.alias;return N({kind:"text",text:h??""})}case "getContentControlIsBound":case "getContentControlPlaceholderShown":case "getContentControlTemporary":{let r=Rt(a.contentControl);if(!("control"in r))return r;let d=a.op==="getContentControlIsBound"?r.control.properties.dataBinding!==void 0:a.op==="getContentControlPlaceholderShown"?r.control.properties.showingPlaceholder:r.control.properties.temporary;return N({kind:"flag",value:d})}case "getContentControlText":{let r=Rt(a.contentControl);return "control"in r?N({kind:"text",text:Mr(r.reads,r.node,a.projection)}):r}case "getContentControlParagraphs":{let r=Rt(a.contentControl);return "control"in r?N({kind:"handles",handles:r.control.paragraphIds.map(d=>e.paragraph(d,r.reads.story))}):r}case "getContentControlRange":{let r=Rt(a.contentControl);if(!("control"in r))return r;let d=a.location??"whole";if(!_r.has(d))return f("unsupported-content","that is not a place in a control",d);let h=We(r.reads,r.node);if(!h)return f("unsupported-content","that control holds nothing addressable","empty");let P=d==="start"||d==="before"?h.start:h.end,O=d!=="whole"&&d!=="content",T=L=>({story:r.reads.story,paragraphId:L.paragraphId,index:r.reads.indexOf(L.paragraphId),offset:L.offset});return N({kind:"span",span:Nt(O?{start:T(P),end:T(P)}:{start:T(h.start),end:T(h.end)},e)})}case "setContentControlValue":{let r=Rt(a.contentControl);if(!("control"in r))return r;let d=Wr(a.value);if(!d.ok)return f(d.code,d.message,d.detail);let h=l(r.reads),P=g(h);return P||{ok:true,kind:"command",story:r.reads.story,ops:[{op:"setContentControlValue",controlId:r.control.nodeId,value:d.value}],answer:()=>tt}}case "setContentControlProperties":{let r=Rt(a.contentControl);if(!("control"in r))return r;if(a.tag===void 0&&a.title===void 0&&a.lock===void 0&&a.cannotEdit===void 0&&a.cannotDelete===void 0)return f("unsupported-content","nothing to write","no-properties");if(a.lock!==void 0&&!Br.has(a.lock))return f("unsupported-content","that is not a lock this schema declares",a.lock);for(let O of [a.cannotEdit,a.cannotDelete])if(O!==void 0&&typeof O!="boolean")return f("unsupported-content","lock flags must be boolean");let d=l(r.reads),h=a.lock;if(a.cannotEdit!==void 0||a.cannotDelete!==void 0){let O=h??s.get(d)?.get(r.control.nodeId)??r.control.properties.lock,T=a.cannotEdit??(O==="contentLocked"||O==="sdtContentLocked"),L=a.cannotDelete??(O==="sdtLocked"||O==="sdtContentLocked");h=T?L?"sdtContentLocked":"contentLocked":L?"sdtLocked":"unlocked";}let P=g(d);if(P)return P;if(h!==void 0){let O=s.get(d)??new Map;O.set(r.control.nodeId,h),s.set(d,O);}return {ok:true,kind:"command",story:r.reads.story,ops:[{op:"setContentControlProperties",controlId:r.control.nodeId,...a.tag===void 0?{}:{tag:a.tag},...a.title===void 0?{}:{alias:a.title},...h===void 0?{}:{lock:h}}],answer:()=>tt}}case "insertContentControlText":{let r=Rt(a.contentControl);if(!("control"in r))return r;if(typeof a.text!="string")return f("unsupported-content","text is required","text");if(a.at!=="replace"&&a.at!=="start"&&a.at!=="end")return f("unsupported-content","that is not a place to insert at",String(a.at));let d=l(r.reads),h=g(d);if(h)return h;let P=We(r.reads,r.node);if(!P)return f("unsupported-content","that control holds nothing addressable","empty");let O=a.at==="end"?P.end:P.start,T=()=>({kind:"span",span:C({start:{story:r.reads.story,paragraphId:O.paragraphId,index:r.reads.indexOf(O.paragraphId),offset:O.offset},end:{story:r.reads.story,paragraphId:O.paragraphId,index:r.reads.indexOf(O.paragraphId),offset:O.offset+a.text.length}})});return a.at==="replace"?{ok:true,kind:"command",story:r.reads.story,ops:[{op:"setContentControlValue",controlId:r.control.nodeId,value:{kind:"text",text:a.text}}],answer:T}:{ok:true,kind:"command",story:r.reads.story,ops:a.text.length===0?[]:[{op:"insertText",paragraphId:O.paragraphId,offset:O.offset,text:a.text,inside:r.node.id}],answer:T}}case "deleteContentControl":{let r=Rt(a.contentControl);if(!("control"in r))return r;if(typeof a.keepContent!="boolean")return f("unsupported-content","keepContent is required","keepContent");let d=l(r.reads),h=g(d);return h||{ok:true,kind:"command",story:r.reads.story,ops:[{op:"removeContentControl",controlId:r.control.nodeId,keepContent:a.keepContent}],answer:()=>tt}}case "insertContentControl":{let r=z(a.span,e,n);if(!r.ok)return f(r.code,"that span is not a place",r.detail);if(!r.value)return f("invalid-offset","that story holds nothing to wrap","empty-story");let d=D(r.value);if(!d)return f("invalid-handle","that story is not in this document");let h=r.value;if(h.start.paragraphId!==h.end.paragraphId)return f("unsupported-content","wrapping several paragraphs in one control is not supported here","multi-paragraph");if(!Vr.has(a.subtype))return f("unsupported-content","that control type cannot be inserted",a.subtype);let P=new Set(fe(d.root).map($=>$.id)),O=l(d),T=g(O);if(T)return T;let L=E(O,h.start.paragraphId);return L||{ok:true,kind:"command",story:d.story,ops:[{op:"insertContentControl",paragraphId:h.start.paragraphId,start:h.start.offset,end:h.end.offset,type:a.subtype,...a.tag===void 0?{}:{tag:a.tag},...a.title===void 0?{}:{alias:a.title}}],answer:$=>{if(!a.returnHandle)return tt;let X=$.story(d.story),U=X&&fe(X.root).find(M=>!P.has(M.id));if(!U)throw new Error("content control insertion did not create a control");return {kind:"handle",handle:e.contentControl(U.id,d.story)}}}}case "insertCustomNode":{let r=zr(a);if(r)return f("unsupported-content",r.message,r.detail);let d=$r(a.payload);if(!d.ok)return f("unsupported-content","that payload cannot be written",d.field);let h=Gr(a,e,n);if("code"in h)return f(h.code,h.message,h.detail);let{start:P,end:O}=h.range,T=D(h.range);if(!T)return f("invalid-handle","that story is not in this document");let L=g(l(T));return L||{ok:true,kind:"customNodeWrite",story:T.story,write:Kr(a,P,O,d.value),answer:()=>tt}}default:return f("unknown-operation","this host does not implement that operation",String(a.op))}};return {plan(a,p){if(m&&Wt(a))return f("conflicting-operations","header/footer creation must commit alone");let y=u.conflict(a);if(y)return f("conflicting-operations",y.message,y.detail);let I=Qr(a,p);if(I.ok&&I.kind==="command"&&I.solitary){if(u.hasCommands)return f("conflicting-operations","header/footer creation must commit alone");m=true;}return I.ok&&u.note(a),I},get hasCommands(){return u.hasCommands},get writeScope(){return A?.reads.scope??null},settle(a){let p=A;if(p){let y=a.story(p.reads.story),I=y&&chunkMXOO7KRI_cjs.Ha(y.part,p.reads.root.id),R=y&&I&&I.id!==y.root.id?Ee(y,I):y;if(!R)return {ok:false,detail:`the story this batch wrote is gone: ${G(p.reads.story)}`};let r=new Set(p.reads.paragraphIds),d=R.paragraphIds.filter(P=>!r.has(P));if(d.length!==p.created.length+p.externalCreatedCount)return {ok:false,detail:`planned ${String(p.created.length+p.externalCreatedCount)} new paragraphs, the transaction made ${String(d.length)}`};p.order.filter(P=>P.id===null).forEach((P,O)=>{P.id=d[O]??null;});for(let P of p.retargets)P.slot.id&&e.retarget(P.from,P.slot.id);}for(let y of c){let I=a.story(y.range.start.story);!I||!Wo(y.range,I)||t.select?.(y.range,y.mode);}return {ok:true}}}}var ci=Object.freeze({status:"skipped"});function ut(t,e,o){return Object.freeze(o===void 0?{code:t,message:e}:{code:t,message:e,detail:o})}function pi(t){if(t==="review-module-required"||t==="automation-structural-tracking-unsupported")return ut("unsupported-capability","this edit requires a supported review mode",t);let e=t==="unsupported-revision"||t.startsWith("unsupported-revision:");return ut(e?"unsupported-revision":"transaction-refused",e?"that story contains a tracked change this engine cannot resolve":"the document store refused the transaction",t)}function yt(t,e,o,n){return {ok:false,results:t.map((i,s)=>s===e?{status:"error",error:o}:ci),revision:n,changed:false}}function ru(t){let{port:e}=t,o=Object.freeze({...t.capabilities}),n=Lo(),i=new Set,s=false,l={mode:"Off"},c=0,u=null,m=null,A=o.events?e.subscribe(()=>{if(s)return;let b=Object.freeze({revision:e.revision()});if(c>0)u=b;else for(let v of [...i])v(b);}):()=>{},g=b=>{if(m&&m.pkg===b)return m.value;let v=ue(b);return m={pkg:b,value:v},v},x=b=>{let v=Array.isArray(b?.operations)?b.operations:[],S=e.revision();if(s)return yt(v,0,ut("disposed","this host was disposed"),S);if(!o.document)return yt(v,0,ut("unsupported-capability","this host has no document","document"),S);let w=e.currentPackage();if(!w)return yt(v,0,ut("document-unavailable","this host holds no document right now"),S);if(b.expectedRevision!==void 0&&b.expectedRevision!==S)return yt(v,0,ut("stale-revision","the document moved since that revision",`expected ${String(b.expectedRevision)}, at ${S}`),S);let H=xn({handles:n,reads:g(w),capabilities:o,...e.revisionDisplayMode?{displayMode:e.revisionDisplayMode()}:{},...e.replacementLanding?{replacementLanding:e.replacementLanding.bind(e)}:{},...e.fieldPageContext?{fieldPageContext:e.fieldPageContext.bind(e)}:{},...e.select?{select:e.select.bind(e)}:{}}),E=[],j=[],F=null,K=[],C=[],D=null,Z,et=null,_=-1,nt=l;for(let V=0;V<v.length;V+=1){let Pt=v[V];if(e.suggesting?.()&&Pt.op!=="replaceSpan"&&!rn(Pt))return yt(v,V,ut("unsupported-capability","this operation has no supported tracked form in suggesting mode"),S);let ht=Eo(Pt,e.localChangeTracking===true,nt),q=ht?.step??H.plan(Pt,nt.author);if(ht&&(nt=ht.state),!q.ok)return yt(v,V,q.error,S);if(E.push(q),q.kind==="command")if(q.packageEdits&&K.push(...q.packageEdits),_<0&&(_=V),q.lifecycle)F=q.ops[0]??null;else if(q.relate){let gt=q.relate;j.push(Q=>{let Ot=Q(gt.url);return Ot===null?null:gt.ops(Ot)});}else {let{ops:gt}=q;j.push(()=>gt);}else q.kind==="commentWrite"?(_<0&&(_=V),C.push(q.write),D=H.writeScope??{kind:"body"}):q.kind==="customNodeWrite"&&(_<0&&(_=V),et={write:q.write,scope:H.writeScope??{kind:"body"}});}let at=false;if(C.length>0){let V=e.applyCommentWrites(C,D??{kind:"body"});if(!V.ok)return yt(v,_<0?0:_,ut("transaction-refused","the document store refused the comment write",V.reason),S);at=V.changed,Z=V.commentId;}if(et){let V=e.applyCustomNodeWrite(et.write,et.scope);if(!V.ok)return yt(v,_<0?0:_,ut("transaction-refused","the document store refused the custom-node write",V.reason),S);at=V.changed;}if(F){let V=e.applyLifecycle(F);if(!V.ok)return yt(v,_<0?0:_,ut("transaction-refused","the document store refused the transaction",V.reason),S);at=V.changed;}if(j.length>0){let V=e.apply(Pt=>{let ht=[];for(let q of j){let gt=q(Pt);if(gt===null)return null;ht.push(...gt);}return ht},H.writeScope??{kind:"body"},K);if(!V.ok)return yt(v,_<0?0:_,pi(V.reason),S);at=V.changed;}let ct=e.currentPackage();if(!ct)return yt(v,0,ut("document-unavailable","this host holds no document right now"),S);let Mt=g(ct),Et=H.settle(Mt);return Et.ok?(l=nt,{ok:true,results:E.map(V=>({status:"ok",value:V.kind==="query"?V.value:V.kind==="customNodeWrite"?V.answer(Mt):V.answer(Mt,Z)})),revision:e.revision(),changed:at}):yt(v,_<0?0:_,ut("transaction-refused","the transaction did not produce the document the batch planned",Et.detail),e.revision())};return {capabilities:o,revision:()=>e.revision(),execute:b=>{c+=1;try{return x(b)}finally{if(c-=1,c===0&&u){let v=u;u=null;for(let S of [...i])S(v);}}},...e.prepare?{prepare:e.prepare.bind(e)}:{},save(){if(s)return {ok:false,error:ut("disposed","this host was disposed")};if(!o.save)return {ok:false,error:ut("unsupported-capability","this host cannot save","save")};let b=e.save();return b?{ok:true,bytes:b}:{ok:false,error:ut("document-unavailable","this host holds no document right now")}},subscribe(b){return s||!o.events?()=>{}:(i.add(b),()=>{i.delete(b);})},dispose(){s||(s=true,i.clear(),A(),e.dispose(),m=null);}}}
|
|
2
2
|
exports.a=ea;exports.b=hi;exports.c=ki;exports.d=Se;exports.e=ue;exports.f=Ai;exports.g=na;exports.h=oa;exports.i=nn;exports.j=Wt;exports.k=ru;
|