@docx-editor.dev/pro 2.16.2 → 2.18.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/dist/chunk-4NIIGM6D.cjs +4 -0
- package/dist/chunk-EFCL3VQI.cjs +4 -0
- package/dist/chunk-HMTYXNMO.js +4 -0
- package/dist/chunk-OZT67MLG.js +4 -0
- package/dist/collaboration/hocuspocus.cjs +1 -1
- package/dist/collaboration/hocuspocus.js +1 -1
- package/dist/collaboration/index.cjs +2 -2
- package/dist/collaboration/index.d.cts +87 -6
- package/dist/collaboration/index.d.ts +87 -6
- package/dist/collaboration/index.js +2 -2
- package/dist/collaboration/webrtc.cjs +1 -1
- package/dist/collaboration/webrtc.js +1 -1
- package/dist/document-session-HHDGRM4Z.js +1 -0
- package/dist/document-session-I2C7MA6E.cjs +1 -0
- package/dist/document-session-OXC3PO7A.js +1 -0
- package/dist/document-session-U4VGKQYC.cjs +1 -0
- package/dist/hocuspocus-KOLAIT7T.cjs +1 -0
- package/dist/hocuspocus-ZBQCCO4G.js +1 -0
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.js +1 -1
- package/dist/vue/hocuspocus.cjs +1 -1
- package/dist/vue/hocuspocus.js +1 -1
- package/dist/vue/index.cjs +1 -1
- package/dist/vue/index.d.cts +3 -3
- package/dist/vue/index.d.ts +3 -3
- package/dist/vue/index.js +1 -1
- package/dist/vue/webrtc.cjs +1 -1
- package/dist/vue/webrtc.js +1 -1
- package/dist/{webrtc-F6OLZU65.cjs → webrtc-6HVF33UP.cjs} +1 -1
- package/dist/{webrtc-O3Y4W4P6.js → webrtc-CUEMY3DZ.js} +1 -1
- package/package.json +4 -4
- package/dist/chunk-3625DZUE.js +0 -3
- package/dist/chunk-54OI2PSM.js +0 -3
- package/dist/chunk-AB6CJLJ4.cjs +0 -3
- package/dist/chunk-DOVUXFIP.cjs +0 -3
- package/dist/document-session-6NLJAJY2.cjs +0 -1
- package/dist/document-session-CULOPWY6.js +0 -1
- package/dist/document-session-JVA7VYPB.cjs +0 -1
- package/dist/document-session-R4ETEHGF.js +0 -1
- package/dist/hocuspocus-AJOJV5NQ.js +0 -1
- package/dist/hocuspocus-TST45TQ6.cjs +0 -1
package/dist/vue/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var chunkQ4YPX2DT_cjs=require('../chunk-Q4YPX2DT.cjs'),store=require('@docx-editor.dev/core/store'),layout=require('@docx-editor.dev/core/layout'),vue=require('vue'),vue$1=require('@docx-editor.dev/vue'),jsxRuntime=require('vue/jsx-runtime'),collaboration=require('@docx-editor.dev/core/collaboration'),editor=require('@docx-editor.dev/core/editor');var Bn=new Set(["__proto__","constructor","prototype"]);function ot(e){if(e.length>64)return null;let t=e.indexOf(":");if(t<=0)return null;let n=e.slice(0,t),o=e.slice(t+1),r=o.indexOf("?"),a=r===-1?o:o.slice(0,r);if(a.length===0)return null;let s=Object.create(null);if(r!==-1)for(let[i,u]of new URLSearchParams(o.slice(r+1))){if(Bn.has(i))return null;s[i]=u;}return {prefix:n,name:a,attrs:s}}function nt(e,t){if(t.length===0)return {ok:false,reason:"malformed",issues:["the node carries no payload"]};if(t.length>262144)return {ok:false,reason:"malformed",issues:[`the payload is ${String(t.length)} characters; the cap is ${String(262144)}`]};let n;try{n=JSON.parse(t);}catch(a){return {ok:false,reason:"malformed",issues:[a instanceof Error?a.message:"the payload is not JSON"]}}let o=Dt(n);if(!e)return {ok:true,value:o};let r=e["~standard"].validate(o);return qn(r)?{ok:false,reason:"async",issues:["the schema validates asynchronously, which the read path cannot await"]}:r.issues?{ok:false,reason:"invalid",issues:r.issues.map(Fn)}:{ok:true,value:r.value}}function qn(e){return typeof e.then=="function"}function Fn(e){let t=(e.path??[]).map(n=>String(typeof n=="object"?n.key:n)).join(".");return t.length>0?`${t}: ${e.message}`:e.message}var jn=new Set(["__proto__","constructor","prototype"]);function Dt(e){if(Array.isArray(e))return e.map(Dt);if(e===null||typeof e!="object")return e;let t=Object.create(null);for(let[n,o]of Object.entries(e))jn.has(n)||(t[n]=Dt(o));return t}function rt(e){return typeof e=="object"&&e!==null&&typeof e.name=="string"&&typeof e.tagPrefix=="string"}var Vt=/^[A-Za-z0-9_.-]+$/;function Gn(e){for(let t of e.children)if(!(t.kind==="textValue"||t.localName!=="sdtPr")){for(let n of t.children)if(!(n.kind==="textValue"||n.localName!=="tag")){for(let o of n.attributes)if(o.localName==="val")return o.value}}}function wo(e){if(e.kind==="textValue")return e.value;let t="";for(let n of e.children)t+=wo(n);return t}function go(e,t,n={}){if(t.length===0)return [];let o=new Map;for(let s of t){let i=`${s.tagPrefix}:${s.name}`;if(o.has(i))throw new Error(`recognizeCustomNodes: duplicate definition for ${JSON.stringify(i)}`);o.set(i,s);}let r=[],a=(s,i)=>{if(!(s.kind==="textValue"||i>64)){if(s.kind==="contentControl"){let u=Gn(s),l=u!==void 0?ot(u):null,d=l?o.get(`${l.prefix}:${l.name}`):void 0;if(l&&d&&u!==void 0){let c=wo(s),m=zn(d,s.id,n.payloads?.get(s.id),store.contentControlPropertiesOf(s).dataBinding!==void 0,n.onDiagnostic),p=d.fromDocx?d.fromDocx({attrs:l.attrs,text:c,...m.present?{data:m.value}:{}}):l.attrs;if(p!==null){r.push({name:d.name,attrs:p,text:c,nodeId:s.id,tag:u,...m.present?{data:m.value}:{}});return}}}for(let u of s.children)a(u,i+1);}};return a(e.root,0),r}function zn(e,t,n,o,r){if(!n)return o&&r?.({code:"payload-missing",name:e.name,nodeId:t,issues:["the control binds a store node this document does not hold"]}),{present:false};let a=nt(e.schema,n.data);return a.ok?{present:true,value:a.value}:(r?.({code:"payload-invalid",name:e.name,nodeId:t,issues:a.issues}),{present:false})}function Co(e,t){let n=store.findNode(e,t);return !n||n.kind!=="paragraph"?[]:store.revisionItemsOf({id:e.id,name:e.name,contentType:e.contentType,root:n})}function er(e,t,n,o){if(t.length===0)return [];let r=go(e,t,{...n===void 0?{}:{payloads:n},...o===void 0?{}:{onDiagnostic:o}});if(r.length===0)return [];let a=store.locateSites(e),s=[];for(let i of r){let u=t.find(c=>c.name===i.name&&i.tag.startsWith(`${c.tagPrefix}:`));if(!u)continue;let l=u.reviewCard?u.reviewCard({attrs:i.attrs,text:i.text,...i.data===void 0?{}:{data:i.data}}):null;if(u.reviewCard&&l===null)continue;let d=a.get(i.nodeId);s.push({kind:"custom",id:i.nodeId,name:i.name,tag:i.tag,attrs:i.attrs,text:i.text,...i.data===void 0?{}:{data:i.data},carded:u.reviewCard!==void 0&&l!==null,title:l?.title??"",...l?.detail!==void 0?{detail:l.detail}:{},...l?.icon!==void 0?{icon:l.icon}:{},range:d?{partName:e.name,start:{paragraphId:d.paragraphId,offset:d.start},end:{paragraphId:d.paragraphId,offset:d.end}}:null});}return s}function bo(e){let t=store.collectReviewItems(e),n=(e.customNodes??[]).filter(rt);if(n.length===0)return t;let o=[e.storyPart],r=new Set([e.storyPart.name]);for(let u of e.furnitureParts??[])r.has(u.name)||(r.add(u.name),o.push(u));let a=[],s=new Map;for(let u of o){a.push(...er(u,n,e.customNodePayloads,e.reportCustomNodeDiagnostic));let l=s.size;for(let[d,c]of store.paragraphOrderOfPart(u))s.has(d)||s.set(d,l+c);}return a.length===0?t:[...t,...a].sort((u,l)=>layout.reviewItemPositionRank(u,s)-layout.reviewItemPositionRank(l,s))}function tr(e={}){return chunkQ4YPX2DT_cjs.a(e.licenseKey),{id:"review",review:{displayModes:["all-markup","proposed","original"],collectReviewItems:bo,revisionItemsOfParagraph:Co}}}function xo(e){return `${e.getReviewRevision()}:${e.getEditingMode()}:${JSON.stringify(e.snapshot().hiddenReviewAuthors??[])}`}var No=Symbol("proEditorRenderRevision");function Io(e){return vue.provide(No,e),e}function pe(){let e=vue.inject(No,null);if(e)return e;let t=vue$1.useDocxEditor(),n=vue.shallowRef("none");return vue.watch(()=>t.value,(o,r,a)=>{if(!o){n.value="none";return}let s=o,i=xo(s);n.value=i;let u=false,l=null,d=()=>{u||l!==null||(l=setTimeout(()=>{if(l=null,u)return;let R=xo(s);R!==i&&(i=R,n.value=R);},0));},c=s.on("change",d),m=s.on("selectionChange",d),p=s.on("error",d);a(()=>{u=true,l!==null&&clearTimeout(l),c(),m(),p();});},{immediate:true,flush:"sync"}),n}function at(e){if(e!==void 0)return typeof e=="function"?e():typeof e=="object"&&e!==null&&"value"in e?e.value:e}function So(e){let t=e.snapshot?.();return `${e.getReviewRevision()}:${e.getEditingMode()}:${JSON.stringify(t?.hiddenReviewAuthors??[])}`}function dr(e){let t=vue$1.useDocxEditor(),n=pe();return $t(t,e,n)}function Lt(e,t){let n=vue$1.useDocxEditor();return $t(n,e,t)}function ur(e,t){return $t(e,t)}function $t(e,t,n){let o=n?null:vue.shallowRef("none"),r=()=>{(n??o)?.value;};n||vue.watch(()=>e.value,(f,g,S)=>{if(!f){o.value="none";return}let P=So(f);o.value=P;let G=false,K=null,ne=()=>{G||K!==null||(K=setTimeout(()=>{if(K=null,G)return;let Ie=So(f);Ie!==P&&(P=Ie,o.value=Ie);},0));},Ot=f.on("change",ne),kt=f.on("selectionChange",ne),Je=f.on("error",ne);S(()=>{G=true,K!==null&&clearTimeout(K),Ot(),kt(),Je();});},{immediate:true,flush:"sync"});let a=vue.computed(()=>{r();let f=e.value,g=at(t);return f?f.getReviewItems(g).filter(S=>S.item.kind!=="custom"||S.item.carded):[]}),s=vue.computed(()=>a.value.find(f=>f.isActive)?.key??null),i=(f,g)=>{let S=e.value;return S?S.setActiveReviewItem(f,g).ok:false},u=f=>{let g=e.value;return !g||f.kind!=="revision"||f.readOnly?false:g.acceptReviewItem(f.key).ok},l=f=>{let g=e.value;return !g||f.kind!=="revision"||f.readOnly?false:g.rejectReviewItem(f.key).ok},d=f=>{let g=e.value;return !g||f.kind!=="comment"?false:g.setCommentResolved(f.key,true).ok},c=f=>{let g=e.value;return !g||f.kind!=="comment"?false:g.setCommentResolved(f.key,false).ok},m=vue.computed(()=>(r(),e.value?.getEditingMode()==="viewing"?"the document is open for viewing":null)),p=f=>{let g=e.value;return !g||f.kind==="custom"||f.kind==="revision"&&f.readOnly?false:g.deleteReviewItem(f.key).ok},R=(f,g,S)=>g.trim().length===0||!e.value?false:e.value.replyToReviewItem(f.key,g,S).ok,y=vue.computed(()=>{r();let f=e.value;return f?f.getSelectionPlacement()?.anchorY??null:null}),x=(f,g)=>f.trim().length===0||!e.value?false:e.value.addComment(f,g).ok,I=vue.computed(()=>{r();let f=e.value;return f?f.isReviewPaneOpen():true}),w=f=>{let g=e.value;!g||g.isReviewPaneOpen()===f||g.exec({type:"toggleReviewPane"});},E=vue.computed(()=>{r();let f=e.value;if(f===null)return false;let g=f.snapshot();return !g.isLoading&&g.parseError===null});return {items:a,activeKey:s,setActive:i,accept:u,reject:l,resolve:d,reopen:c,commentResolutionDisabledReason:m,remove:p,reply:R,selectionAnchorY:y,comment:x,paneOpen:I,setPaneOpen:w,ready:E}}function cr(e,t,n={}){return vue.computed(()=>{let o=at(e)??[],r=at(t)??new Map,a=at(n)??{},s=a.gap??8,i=a.scale??1,u=a.defaultHeight??0,l=new Map,d=Number.NEGATIVE_INFINITY;for(let c of o){let m=c.anchorY===null?Number.isFinite(d)?d:0:Math.max(c.anchorY,d);l.set(c.key,m),d=m+((r.get(c.key)??u)+s)/i;}return l})}var pr=new Set(["List","Markers","AddComment","Draft","Balloon"]),yr=new Set(["Card","Empty"]);function Rr(e){return vue.isVNode(e)}function ke(e,t){let n=t==="root"?pr:yr,o={},r=[],a=s=>{for(let i of s){if(!Rr(i))continue;if(i.type===vue.Fragment){let l=Array.isArray(i.children)?i.children:[];a(l);continue}let u=i.type.docxReviewPart;u&&n.has(u)?o[u]=i:r.push(i);}};return a(e),{parts:o,rest:r}}function it(e,t){if(!t)return e;let n=e.props.class;return vue.cloneVNode(e,{class:`${t}${n?` ${n}`:""}`})}var Ao=e=>e.isLoading||e.parseError!==null||e.pageSetup==null,Te=e=>e.editingMode==="viewing",Oo={scale:96/72,top:0,left:null,compactCardLeft:null},ko=16,Pe=300,To=12,te="\0compose",st=600,lt=8,Po=72,_o=64,Mo=480,Do=30,Vo=Object.freeze({placement:false});function _e(e,t){return e.kind!=="comment"?false:e.parentId!==void 0?t.has(e.parentId):e.parentRevisionId!==void 0?t.has(e.parentRevisionId):false}function Me(e){return new Set(e.map(t=>t.id))}function $(e){let t=e.target?.tagName;t==="INPUT"||t==="SELECT"||t==="TEXTAREA"||e.preventDefault();}function Lo(e){let t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?"?":t.slice(0,2).map(n=>n[0].toUpperCase()).join("")}var dt=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function $o(e){let t={},n=[],o=r=>{if(!r)return;let a=Array.isArray(r)?r:[r];for(let s of a){if(!vue.isVNode(s))continue;if(s.type===vue.Fragment){o(s.children);continue}let i=s.type.docxReviewPart;i?t[i]=s:n.push(s);}};return o(e),n.length>0&&(t.__extra=n),t}function T(e,t){return e.docxReviewPart=t,e}var Ht=Symbol("ReviewContext"),Ut=Symbol("ReviewItemContext"),Nr={items:[],activeKey:null,setActive:()=>false,accept:()=>false,reject:()=>false,resolve:()=>false,reopen:()=>false,commentResolutionDisabledReason:null,remove:()=>false,reply:()=>false,selectionAnchorY:null,comment:()=>false,paneOpen:true,setPaneOpen:()=>{},ready:false},Ir={t:void 0,cardClassName:void 0,readOnly:false,composeTop:null,review:Nr,allItems:[],authorSlots:new Map,authorInfo:new Map,draftAuthor:null,draftAuthorInfo:void 0,draftAuthorSlot:0,byId:new Map,measure:()=>{},beginDraft:()=>{},endDraft:()=>{},expandedResolvedKey:null,setExpandedResolvedKey:()=>{}};function _(){return vue.inject(Ht,vue.computed(()=>Ir))}var Sr=vue.computed(()=>null);function H(){return vue.inject(Ut,Sr)}function Er(e){let t=_();return vue.computed(()=>{let n=vue.toValue(e);return n===void 0?void 0:t.value.authorInfo.get(n)})}function F(){let e=_(),{t}=vue$1.useTranslation();return n=>e.value.t?.(n)??t(n)}function Ar(e){return [e.key,e.isActive?"active":"idle",e.readOnly?"readonly":"editable",e.kind==="comment"&&e.resolved?"resolved":"open",e.text,...e.replyIds].join("\0")}var ut=vue.defineComponent({name:"ReviewItemScope",props:{entry:{type:Object,required:true},measureKey:String,collapsed:Boolean,className:String,testId:String,style:{type:Object,default:void 0}},setup(e,{slots:t}){let n=_(),o=vue.shallowRef(e.entry);vue.watchEffect(()=>{let i=n.value.byId.get(e.entry.id)??e.entry;o.value={...i,replyIds:[...i.replyIds]};}),vue.provide(Ut,o);let r=null,a=null,s=i=>{let u=i instanceof HTMLElement?i:null,l=u&&e.measureKey?e.measureKey:null;r===u&&a===l||(a&&n.value.measure(null,a),r=u,a=l,r&&a&&n.value.measure(r,a));};return vue.onBeforeUnmount(()=>{s(null);}),()=>vue.h("div",{onVnodeMounted:i=>{s(i.el instanceof Element?i.el:null);},onVnodeUpdated:i=>{s(i.el instanceof Element?i.el:null);},onVnodeBeforeUnmount:()=>{s(null);},class:`docx-review__slot${e.className?` ${e.className}`:""}`,...e.testId?{"data-testid":e.testId}:{},style:e.style,...e.collapsed?{"data-collapsed":""}:{}},[vue.h(vue.Fragment,{key:Ar(o.value)},t.default?.())])}}),ct=vue.defineComponent({name:"ReviewReplyScope",props:{entry:{type:Object,required:true}},setup(e,{slots:t}){let n=_(),o=vue.shallowRef(e.entry);return vue.watchEffect(()=>{let r=n.value.byId.get(e.entry.id)??e.entry;o.value={...r,replyIds:[...r.replyIds]};}),vue.provide(Ut,o),()=>t.default?.()}});function jo(e){let t=vue.ref(new WeakMap),n=vue.ref(new Map),o=vue.ref(null),r=(a,s)=>{let i=n.value.get(s);if(!a){i&&(o.value?.unobserve(i),t.value.delete(i),n.value.delete(s));return}typeof ResizeObserver>"u"||(e(s,a.offsetHeight),o.value??=new ResizeObserver(u=>{for(let l of u){let d=t.value.get(l.target);d&&e(d,l.target.offsetHeight);}}),!(i===a&&t.value.get(a)===s)&&(i&&(o.value.unobserve(i),t.value.delete(i)),t.value.set(a,s),n.value.set(s,a),o.value.observe(a)));};return vue.onUnmounted(()=>{o.value?.disconnect(),n.value.clear();}),r}function qt(e,t){return e?.color??`var(--doc-review-author-${t%lt})`}function le(e,t,n){return e?{"--doc-review-author-current":qt(t,n)}:{}}function ye(e,t){return (e?.slot??t)%lt}function Yo(e,t,n,o,r){let a=new Map;for(let i of e)a.set(i.author,i);let s=[...t.map(i=>i.author),o?.getConfiguredAuthor()];for(let i of s){if(!i||a.has(i))continue;let u=n.get(i)??0,l=o?.getReviewAuthorStyle(i),d=l?.color??`var(--doc-review-author-${u%lt})`,c=r.get(i),m=c?.slot===u&&c.color===d&&c.style===l?c:{author:i,slot:u,color:d,...l?{style:l}:{}};r.set(i,m),a.set(i,m);}return a}var Y=e=>vue.h("svg",{viewBox:"0 -960 960 960",width:16,height:16,ariaHidden:true,focusable:false},[vue.h("path",{d:e,fill:"currentColor"})]),zo="M440-400h80v-120h120v-80H520v-120h-80v120H320v80h120v120ZM80-80v-720q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v480q0 33-23.5 56.5T800-240H240L80-80Zm126-240h594v-480H160v525l46-45Zm-46 0v-480 480Z",Go="M240-400h480v-80H240v80Zm0-120h480v-80H240v80Zm0-120h480v-80H240v80ZM880-80 720-240H160q-33 0-56.5-23.5T80-320v-480q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v720ZM160-320h594l46 45v-525H160v480Zm0 0v-480 480Z",kr="M880-80 720-240H160q-33 0-56.5-23.5T80-320v-480q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v720ZM160-320h594l46 45v-525H160v480Zm0 0v-480 480Z",Ve="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z",mt=()=>vue.h("span",{class:"docx-review__resolved-icon"},[vue.h("span",{class:"docx-review__resolved-comment"},[Y(kr)]),vue.h("span",{class:"docx-review__resolved-tick"},[Y(Ve)])]),Zo="M480-160q-134 0-227-93t-93-227q0-134 93-227t227-93q69 0 132 28.5T720-690v-110h80v280H520v-80h168q-32-56-87.5-88T480-720q-100 0-170 70t-70 170q0 100 70 170t170 70q77 0 139-44t87-116h84q-28 106-114 173t-196 67Z",Wo="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z",Jo="M280-120q-33 0-56.5-23.5T200-200v-520h-40v-80h200v-40h240v40h200v80h-40v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM360-280h80v-360h-80v360Zm160 0h80v-360h-80v360ZM280-720v520-520Z",Tr="M200-200h57l391-391-57-57-391 391v57Zm-80 80v-170l528-527q12-11 26.5-17t30.5-6q16 0 31 6t26 18l55 56q12 11 17.5 26t5.5 30q0 16-5.5 30.5T817-647L290-120H120Zm640-584-56-56 56 56Zm-141 85-28-29 57 57-29-28Z",Pr="M486-160q-76 0-135-45t-85-123l88-38q14 48 48.5 78t85.5 30q42 0 76-20t34-64q0-18-7-33t-19-27h112q5 14 7.5 28.5T694-341q0 86-61.5 133.5T486-160ZM80-520v-80h800v80H80Zm402-360q66 0 116 30t74 84l-88 38q-11-28-38.5-47T480-794q-42 0-72 19t-30 51q0 15 6 27t18 22H272q-6-13-9-27t-3-30q0-70 55-114t167-44Z",_r="M360-160q-83 0-141.5-58.5T160-360v-360q0-83 58.5-141.5T360-920q83 0 141.5 58.5T560-720v360q0 83-58.5 141.5T360-160Zm0-80q50 0 85-35t35-85v-360q0-50-35-85t-85-35q-50 0-85 35t-35 85v360q0 50 35 85t85 35Zm300 80q29 0 49.5-20.5T730-230q0-22-12.5-40T684-296l-64-32v-232l100 100q23 23 51.5 35.5T832-412v-80q-17 0-32-6.5T773-517L633-657q-12-12-27.5-17.5T573-680h-13v520h100ZM360-720Z",Mr="M580-360q-25 0-42.5-17.5T520-420v-160q0-25 17.5-42.5T580-640h160q25 0 42.5 17.5T800-580v260q0 66-47 113t-113 47v-80q33 0 56.5-23.5T720-320v-40H580Zm-360 0q-25 0-42.5-17.5T160-420v-160q0-25 17.5-42.5T220-640h160q25 0 42.5 17.5T440-580v260q0 66-47 113t-113 47v-80q33 0 56.5-23.5T360-320v-40H220Z";function Xo(e){if(e.kind==="comment")return Go;if(e.kind==="custom")return e.item.icon??Mr;switch(e.revisionKind){case "insert":case "moveTo":return Tr;case "delete":case "moveFrom":return Pr;case "format":return _r;default:return Go}}function Ft(e,t,n=1){if(e==="paragraphMark"){let o=n>1;return t==="delete"?o?"revisions.paragraphMarksDeleted":"revisions.paragraphMarkDeleted":t==="moveFrom"?o?"revisions.paragraphMarksMovedFrom":"revisions.paragraphMarkMovedFrom":t==="moveTo"?o?"revisions.paragraphMarksMovedTo":"revisions.paragraphMarkMovedTo":o?"revisions.paragraphMarksInserted":"revisions.paragraphMarkInserted"}switch(e){case "insert":return "review.inserted";case "delete":return "review.deleted";case "replace":return "review.replaced";case "moveFrom":return "review.movedFrom";case "moveTo":return "review.movedTo";case "format":return "revisions.runPropertiesChanged";default:return "review.structural"}}function Dr(e){return Ft(e.revisionKind,e.markDirection,e.ranges.length)}function Vr(e){return e.revisionKind==="paragraphMark"&&e.ranges.length>1?` (${e.ranges.length})`:""}function Qo(e,t){let n=`${t(Dr(e))}${Vr(e)}`;if(e.revisionKind!=="format")return n;let r=[...(e.formattingLanguages??[]).map(a=>{try{return new Intl.DisplayNames([t("_lang")],{type:"language"}).of(new Intl.Locale(a).minimize().toString())??a}catch{return a}}),...(e.formattingChanges??[]).map(a=>Lr(a,t))];return r.length?`${n}: ${r.join(", ")}`:n}function Lr(e,t){let{property:n,value:o}=e;if(o!==null&&(n==="bold"||n==="italic"||n==="strike"))return t(`revisions.formattingDetails.${o==="true"?n:{bold:"notBold",italic:"notItalic",strike:"notStrike"}[n]}`);let r=o??t("revisions.formattingDetails.default");return o!==null&&(["fontSize","leftIndent","rightIndent","firstLineIndent","hangingIndent","spaceBefore","spaceAfter"].includes(n)?r=`${o} ${t("revisions.formattingDetails.points")}`:/^(left|center|right|both|start|end|none|single|double|auto)$/.test(o)?r=t(`revisions.formattingDetails.${o}`):n==="color"&&/^[0-9a-f]{6}$/i.test(o)&&(r=`#${o.toUpperCase()}`)),`${t(`revisions.formattingDetails.${n}`)}: ${r}`}function Hr(e,t){return typeof t!="function"?e:typeof e!="function"?t:n=>{e(n),n.defaultPrevented||t(n);}}function Ur(e,t){let n=vue.mergeProps(e,t);for(let o of Object.keys(e))/^on[A-Z]/.test(o)?n[o]=Hr(t[o],e[o]):o==="class"?n[o]=[e[o],t[o]].filter(Boolean).join(" "):o==="style"&&(n[o]={...e[o],...t[o]});return n}function nn(e){return e==="Enter"||e===" "}function Br(e){return nn(e.key)?(e.preventDefault(),e.stopPropagation(),true):false}function tn(e){return e==="button"}function on(e,t){return e==="a"||t.href!=null}var Re=vue.defineComponent({name:"ReviewActionSlot",props:{engineDisabled:{type:Boolean,required:true},disabledReason:{type:String,default:null},slotProps:{type:Object,required:true}},setup(e,{slots:t}){return ()=>{let n=t.default?.()??[];if(n.length!==1)return null;let o=n[0];if(!o||typeof o!="object")return null;let r=o.props??{},a=Ur(e.slotProps,r);if(!e.engineDisabled){if(!tn(o.type)){let s={onClick:i=>{typeof r.onClick=="function"&&r.onClick(i),!i.defaultPrevented&&typeof e.slotProps.onClick=="function"&&e.slotProps.onClick(i),on(o.type,r)&&i.preventDefault();},onKeydown:i=>{typeof r.onKeydown=="function"&&r.onKeydown(i),nn(i.key)&&(!i.defaultPrevented&&typeof e.slotProps.onClick=="function"&&e.slotProps.onClick(i),on(o.type,r)&&i.preventDefault());}};a.onClick=s.onClick,a.onKeydown=s.onKeydown;}return vue.cloneVNode(o,a)}if(tn(o.type))a.disabled=true,delete a["aria-disabled"];else {delete a.disabled,a["aria-disabled"]=true,a["data-disabled"]="",a.tabIndex=-1,a.href=void 0,a.role===void 0&&(a.role="button");let s=a.onKeydown;a.onKeydown=i=>{Br(i)||typeof s=="function"&&s(i);};}return e.disabledReason&&(a.title=e.disabledReason),a.onClick=s=>{s.preventDefault(),s.stopPropagation();},vue.cloneVNode(o,a)}}});function sn(e){let t=T(vue.defineComponent({name:"ReviewResolve",props:{className:String,asChild:Boolean,hidden:Boolean,icon:{type:[Object,String],default:void 0}},setup(o,{slots:r}){let a=e.useRail(),s=e.useItem(),i=e.useLabel(),u=vue$1.useEditorState(Te);return ()=>{let l=s.value;if(o.hidden||!l||l.kind!=="comment"||l.resolved)return null;let d=a.value.review,c=i("comments.resolve"),m=u.value||d.commentResolutionDisabledReason!==null,p=m?i("editingMode.viewingHint"):null,R={type:"button",class:`docx-review__action${o.className?` ${o.className}`:""}`,"data-testid":"review-resolve","aria-label":c,title:p??c,disabled:m,onMousedown:$,onClick:y=>{y.stopPropagation(),!m&&d.resolve(l);}};return o.asChild?vue.h(Re,{engineDisabled:m,disabledReason:p,slotProps:R},r.default):vue.h("button",R,o.icon??r.default?.()??Y(Ve))}}}),"Resolve"),n=T(vue.defineComponent({name:"ReviewReopen",props:{className:String,asChild:Boolean,hidden:Boolean,icon:{type:[Object,String],default:void 0}},setup(o,{slots:r}){let a=e.useRail(),s=e.useItem(),i=e.useLabel(),u=vue$1.useEditorState(Te);return ()=>{let l=s.value;if(o.hidden||!l||l.kind!=="comment"||!l.resolved)return null;let d=a.value.review,c=i("comments.reopen"),m=u.value||d.commentResolutionDisabledReason!==null,p=m?i("editingMode.viewingHint"):null,R={type:"button",class:`docx-review__action${o.className?` ${o.className}`:""}`,"data-testid":"review-reopen","aria-label":c,title:p??c,disabled:m,onMousedown:$,onClick:y=>{y.stopPropagation(),!m&&d.reopen(l);}};return o.asChild?vue.h(Re,{engineDisabled:m,disabledReason:p,slotProps:R},r.default):vue.h("button",R,o.icon??r.default?.()??Y(Zo))}}}),"Reopen");return {ReviewResolve:t,ReviewReopen:n}}var ln=new WeakMap;function Le(e){let t=vue.getCurrentInstance();if(!t)throw new Error("useReviewStableId must run during component setup");let n=t.appContext,o=ln.get(n)??0;return ln.set(n,o+1),`docx-review-${o}-${e}`}function cn(e){let t=T(vue.defineComponent({name:"ReviewDraft",props:{top:{type:Number,default:0},left:{type:Number,default:null},className:String,hidden:Boolean},setup(o){let r=e.useRail(),a=e.useLabel(),s=vue.ref(""),i=vue.ref(false),u=Le("draft"),l=null;vue.onMounted(()=>{let c=vue.getCurrentInstance()?.proxy?.$el;if(c instanceof HTMLElement&&(l=r.value.measure,l(c,te)),r.value.readOnly)return;(c instanceof HTMLElement?c.querySelector('[data-testid="review-draft-input"]'):null)?.focus({preventScroll:true});}),vue.onBeforeUnmount(()=>{l?.(null,te);});let d=()=>{let{review:c,endDraft:m,readOnly:p}=r.value;if(p||s.value.trim().length===0)return;let R=c.comment(s.value.trim());i.value=!R,R&&(s.value="",m());};return ()=>{if(o.hidden)return null;let{readOnly:c,draftAuthor:m,draftAuthorInfo:p,draftAuthorSlot:R}=r.value;return vue.h("div",{class:`docx-review__slot${o.left===null?"":" docx-review__slot--compact"}${o.className?` ${o.className}`:""}`,style:{position:"absolute",top:`${o.top}px`,...o.left===null?{}:{left:`${o.left}px`,width:`${Pe}px`}}},[vue.h("div",{class:"docx-review__card","data-testid":"review-draft","data-draft":"",...m?{"data-review-author":m,"data-review-author-slot":R}:{},style:le(m??void 0,p,R)},[vue.h("form",{class:"docx-review__reply-box",onSubmit:y=>{y.preventDefault(),d();}},[vue.h("label",{class:"docx-editor-sr-only",for:u},a("comments.addComment")),vue.h("input",{id:u,"data-testid":"review-draft-input",class:"docx-review__input",value:s.value,placeholder:a("comments.addComment"),readonly:c,...i.value?{"aria-invalid":true}:{},onInput:y=>{c||(i.value=false,s.value=y.target.value);},onKeydown:y=>{if(y.key==="Escape"){y.preventDefault(),r.value.endDraft();return}c||y.key!=="Enter"||(y.preventDefault(),d());}}),vue.h("div",{class:"docx-review__reply-actions"},[vue.h("button",{type:"button","data-testid":"review-draft-cancel",class:"docx-review__text-button",onMousedown:$,onClick:()=>r.value.endDraft()},a("common.cancel")),vue.h("button",{type:"submit","data-testid":"review-draft-submit",class:"docx-review__submit",disabled:c||s.value.trim().length===0,title:c?a("editingMode.viewingHint"):void 0},a("common.comment"))]),i.value?vue.h("span",{class:"docx-review__refused",role:"alert"},a("review.commentRefused")):null])])])}}}),"Draft"),n=T(vue.defineComponent({name:"ReviewReply",props:{className:String,hidden:Boolean},setup(o,{slots:r}){let a=e.useRail(),s=e.useItem(),i=e.useLabel(),u=vue.ref(""),l=vue.ref(false),d=Le("reply"),c=pe(),m=vue$1.useDocxEditor(),p=R=>{let y=s.value,{review:x,readOnly:I,byId:w}=a.value,E=R?.querySelector('[data-testid="review-reply-input"]'),f=(E?.value??u.value).trim(),g=y?w.get(y.id)??y:null;if(!g||I||f.length===0)return;let S=m.value?.replyToReviewItem(g.key,f).ok??x.reply(g,f);l.value=!S,S&&(u.value="",E&&(E.value=""));};return ()=>{c.value;let R=s.value;if(o.hidden||!R||!R.isActive||R.kind==="comment"&&R.resolved)return null;let{review:y,readOnly:x}=a.value,I=r.default?.();return I?.length?I:jsxRuntime.jsxs("div",{class:`docx-review__reply-box${o.className?` ${o.className}`:""}`,children:[jsxRuntime.jsx("label",{class:"docx-editor-sr-only",for:d,children:i("comments.replyPlaceholder")}),jsxRuntime.jsx("input",{id:d,"data-testid":"review-reply-input",class:"docx-review__input",placeholder:i("comments.replyPlaceholder"),readonly:x,...l.value?{"aria-invalid":true,"data-refused":""}:{},onInput:w=>{x||(l.value=false,u.value=w.target.value);},onClick:w=>w.stopPropagation(),onKeydown:w=>{x||w.key!=="Enter"||(w.preventDefault(),p(w.currentTarget.closest(".docx-review__reply-box")));}}),jsxRuntime.jsxs("div",{class:"docx-review__reply-actions",children:[jsxRuntime.jsx("button",{type:"button","data-testid":"review-reply-cancel",class:"docx-review__text-button",onMousedown:$,onClick:w=>{w.stopPropagation(),u.value="",l.value=false,y.setActive(null);},children:i("common.cancel")}),jsxRuntime.jsx("button",{type:"button","data-testid":"review-reply-submit",class:"docx-review__submit",disabled:x||u.value.trim().length===0,title:x?i("editingMode.viewingHint"):void 0,onClick:w=>{w.preventDefault(),w.stopPropagation(),p(w.currentTarget.closest(".docx-review__reply-box"));},children:i("review.reply")})]}),l.value?jsxRuntime.jsx("span",{class:"docx-review__refused",role:"alert","data-testid":"review-reply-refused",children:i("review.replyRefused")}):null]})}}}),"Reply");return {ReviewDraft:t,ReviewReply:n}}var{ReviewResolve:Yt,ReviewReopen:Gt}=sn({useRail:_,useItem:H,useLabel:F}),{ReviewDraft:zt,ReviewReply:Zt}=cn({useRail:_,useItem:H,useLabel:F});var pt=T(vue.defineComponent({name:"ReviewEmpty",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=F();return ()=>e.hidden?null:jsxRuntime.jsx("div",{class:`docx-review__empty${e.className?` ${e.className}`:""}`,"data-testid":"review-empty",children:t.default?.()??n("review.empty")})}}),"Empty"),we=T(vue.defineComponent({name:"ReviewAvatar",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=H(),o=_();return ()=>{let r=n.value;if(e.hidden||!r)return null;let a=t.default?.();if(a===void 0&&!r.initials)return null;let s={class:`docx-review__avatar${e.className?` ${e.className}`:""}`,"data-testid":"review-avatar","aria-hidden":true};if(e.asChild)return jsxRuntime.jsx(vue$1.Slot,{...s,children:a});let i=o.value.authorInfo.get(r.author)?.style?.avatarUrl,u=a??(i?jsxRuntime.jsx("img",{class:"docx-review__avatar-img",src:i,alt:"",loading:"lazy",decoding:"async",referrerpolicy:"no-referrer"}):void 0)??r.initials;return jsxRuntime.jsx("span",{...s,children:u})}}}),"Avatar"),ge=T(vue.defineComponent({name:"ReviewAuthor",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=H(),o=F();return ()=>{let r=n.value;if(e.hidden||!r)return null;let a=r.author||o("comments.unknown"),s={class:`docx-review__author${e.className?` ${e.className}`:""}`,"data-testid":"review-author"};return e.asChild?jsxRuntime.jsx(vue$1.Slot,{...s,children:t.default?.()}):jsxRuntime.jsx("span",{...s,children:t.default?.()??a})}}}),"Author"),he=T(vue.defineComponent({name:"ReviewTime",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=H();return ()=>{let o=n.value;if(e.hidden||!o)return null;let r=o.date;if(!r)return null;let a=new Date(r);if(Number.isNaN(a.getTime()))return null;let s={class:`docx-review__time${e.className?` ${e.className}`:""}`,"data-testid":"review-time",datetime:r};return e.asChild?jsxRuntime.jsx(vue$1.Slot,{...s,children:t.default?.()}):jsxRuntime.jsx("time",{...s,children:t.default?.()??dt.format(a)})}}}),"Time"),Ce=T(vue.defineComponent({name:"ReviewSummary",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=H(),o=F();return ()=>{let r=n.value;if(e.hidden||!r)return null;let a=r.text,s=r.kind!=="revision"?null:Qo(r.item,o),i=r.kind==="revision"&&r.revisionKind==="replace",u={class:`docx-review__summary${e.className?` ${e.className}`:""}`,"data-testid":"review-summary","data-review-selectable":""};if(e.asChild)return jsxRuntime.jsx(vue$1.Slot,{...u,children:t.default?.()});let l=t.default?.();return l?jsxRuntime.jsx("div",{...u,children:l}):jsxRuntime.jsx("div",{...u,children:i?jsxRuntime.jsxs("span",{class:"docx-review__text",children:[o("review.replaced")," ",jsxRuntime.jsxs("span",{class:"docx-review__removed",children:['"',r.replacedText,'"']})," ",o("review.replacedWith")," ",jsxRuntime.jsxs("span",{class:"docx-review__added",children:['"',a,'"']})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[s?jsxRuntime.jsx("span",{class:"docx-review__label","data-kind":r.kind==="revision"?r.revisionKind:"revision",children:s}):null,a?jsxRuntime.jsx("span",{class:"docx-review__text",children:a}):null]})})}}}),"Summary");function fn(e,t,n,o,r,a,s){return T(vue.defineComponent({name:e,props:{className:String,asChild:Boolean,hidden:Boolean,icon:{type:[Object,String],default:void 0}},setup(i,{slots:u}){let l=_(),d=H(),c=F();return ()=>{let m=d.value,{readOnly:p,review:R}=l.value;if(i.hidden||!m||!s(m))return null;let y=c(o),x=p?c("editingMode.viewingHint"):null,I={type:"button",class:`docx-review__action${i.className?` ${i.className}`:""}`,"data-testid":n,"aria-label":y,title:x??y,disabled:p,onMousedown:$,onClick:w=>{w.stopPropagation(),!p&&a(R,m);}};return i.asChild?jsxRuntime.jsx(Re,{engineDisabled:p,disabledReason:x,slotProps:I,children:u.default?.()}):jsxRuntime.jsx("button",{...I,children:i.icon??u.default?.()??Y(r)})}}}),t)}var Ue=fn("ReviewAccept","Accept","review-accept","review.accept",Ve,(e,t)=>e.accept(t),e=>e.kind==="revision"&&!e.readOnly),Be=fn("ReviewReject","Reject","review-reject","review.reject",Wo,(e,t)=>e.reject(t),e=>e.kind==="revision"&&!e.readOnly),yt=T(vue.defineComponent({name:"ReviewDelete",props:{className:String,asChild:Boolean,hidden:Boolean,icon:{type:[Object,String],default:void 0}},setup(e,{slots:t}){let n=_(),o=H(),{t:r}=vue$1.useTranslation();return ()=>{let a=o.value,{readOnly:s,review:i}=n.value;if(e.hidden||!a||a.kind==="custom"||a.kind==="revision"&&a.readOnly)return null;let u=a.kind==="comment"?r("review.deleteComment"):r("review.discardChange"),l=s?r("editingMode.viewingHint"):null,d={type:"button",class:`docx-review__action${e.className?` ${e.className}`:""}`,"data-testid":"review-delete","aria-label":u,title:l??u,disabled:s,onMousedown:$,onClick:c=>{c.stopPropagation(),!s&&i.remove(a);}};return e.asChild?jsxRuntime.jsx(Re,{engineDisabled:s,disabledReason:l,slotProps:d,children:t.default?.()}):jsxRuntime.jsx("button",{...d,children:e.icon??t.default?.()??Y(Jo)})}}}),"Delete"),Wt=T(vue.defineComponent({name:"ReviewReplies",props:{className:String,hidden:Boolean},setup(e){let t=_(),n=H();return ()=>{let o=n.value;if(e.hidden||!o||o.kind==="custom")return null;let a=(t.value.byId.get(o.id)??o).replyIds.map(s=>t.value.byId.get(s)).filter(s=>s!==void 0);return a.length===0?null:jsxRuntime.jsx("ol",{class:`docx-review__replies${e.className?` ${e.className}`:""}`,children:a.map(s=>jsxRuntime.jsx(ct,{entry:s,children:jsxRuntime.jsxs("li",{class:"docx-review__reply","data-testid":"review-reply",children:[jsxRuntime.jsxs("div",{class:"docx-review__head",children:[jsxRuntime.jsx(we,{}),jsxRuntime.jsxs("div",{class:"docx-review__meta",children:[jsxRuntime.jsx(ge,{}),jsxRuntime.jsx(he,{})]}),jsxRuntime.jsx("div",{class:"docx-review__actions",children:jsxRuntime.jsx(yt,{})})]}),jsxRuntime.jsx(Ce,{})]})},s.key))})}}}),"Replies"),mn=vue.defineComponent({name:"ReviewCardPreset",setup(e,{slots:t}){let n=H(),o=vue.computed(()=>$o(t.default?.()));return ()=>{let r=n.value;if(!r)return null;let a=(i,u)=>i in o.value?o.value[i]:u;if(r.kind==="custom"&&r.item.kind==="custom"){let i=r.item;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{class:"docx-review__head",children:[a("Avatar",null),jsxRuntime.jsx("div",{class:"docx-review__meta",children:a("Author",jsxRuntime.jsx("span",{class:"docx-review__author","data-testid":"review-custom-title",children:i.title}))})]}),a("Summary",i.detail?jsxRuntime.jsx("div",{class:"docx-review__summary","data-testid":"review-summary","data-review-selectable":"",children:jsxRuntime.jsx("span",{class:"docx-review__text",children:i.detail})}):null),o.value.__extra]})}let s=r.kind==="revision"&&!r.readOnly;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{class:"docx-review__head",children:[a("Avatar",jsxRuntime.jsx(we,{})),jsxRuntime.jsxs("div",{class:"docx-review__meta",children:[a("Author",jsxRuntime.jsx(ge,{})),a("Time",jsxRuntime.jsx(he,{}))]}),s||r.kind==="comment"?jsxRuntime.jsxs("div",{class:"docx-review__actions",children:[a("Accept",jsxRuntime.jsx(Ue,{})),a("Reject",jsxRuntime.jsx(Be,{})),a("Resolve",jsxRuntime.jsx(Yt,{})),a("Reopen",jsxRuntime.jsx(Gt,{})),a("Delete",r.kind==="comment"?jsxRuntime.jsx(yt,{}):null)]}):null]}),a("Summary",jsxRuntime.jsx(Ce,{})),a("Replies",jsxRuntime.jsx(Wt,{})),a("Reply",jsxRuntime.jsx(Zt,{})),o.value.__extra]})}}}),qe=T(vue.defineComponent({name:"ReviewCard",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=_(),o=H(),r=Le("card"),a=F(),s=null,i=l=>{s=l.el instanceof HTMLDetailsElement?l.el:s;},u=l=>{s?.open&&l.target instanceof Node&&!s.contains(l.target)&&(n.value.setExpandedResolvedKey(null),n.value.review.setActive(null),s.open=false);};return vue.onMounted(()=>document.addEventListener("pointerdown",u,true)),vue.onBeforeUnmount(()=>document.removeEventListener("pointerdown",u,true)),()=>{let l=o.value;if(e.hidden||!l)return null;let{review:d,authorSlots:c,authorInfo:m,expandedResolvedKey:p,setExpandedResolvedKey:R}=n.value,y=c.get(l.author)??0,x=!e.asChild&&l.kind==="comment"&&l.resolved,I={class:`docx-review__card${e.className?` ${e.className}`:""}`,"data-testid":"review-card",...x?{}:{"aria-labelledby":`${r}-author ${r}-summary`},"data-kind":l.kind==="revision"?l.revisionKind??"revision":l.kind,...l.author?{"data-review-author":l.author,"data-review-author-slot":ye(m.get(l.author),y)}:{},...l.kind==="custom"&&l.item.kind==="custom"?{"data-node-name":l.item.name}:{},...l.isActive?{"data-active":""}:{},...l.kind==="comment"&&l.resolved?{"data-resolved":""}:{},...x?{"data-resolved-miniature":""}:{},style:le(l.author,m.get(l.author),y),...x?{}:{tabIndex:0,role:"button"},id:r,...x?{}:{onMousedown:w=>{w.target?.closest("[data-review-selectable]")||w.currentTarget.focus({preventScroll:true});},onClick:w=>{w.target?.closest("button, input, textarea, .docx-review__reply-box, [data-review-selectable]")||l.isActive||d.setActive(l.key);},onKeydown:w=>{w.target===w.currentTarget&&(w.key!=="Enter"&&w.key!==" "||(w.preventDefault(),d.setActive(l.key)));}}};return e.asChild?jsxRuntime.jsx(vue$1.Slot,{...I,children:t.default?.()}):x?vue.h("details",{...I,open:p===l.key,onVnodeMounted:i,onVnodeUpdated:i,onVnodeBeforeUnmount:()=>{s=null;},onToggle:w=>{let E=w.currentTarget.open;R(E?l.key:null),d.setActive(E?l.key:null);}},[vue.h("summary",{class:"docx-review__resolved-toggle","aria-label":a("review.showResolvedComment")},[vue.h("span",{class:"docx-review__resolved-status"},a("review.resolved")),mt()]),vue.h(mn,null,{default:()=>t.default?.()})]):jsxRuntime.jsx("div",{...I,children:vue.h(mn,null,{default:()=>t.default?.()})})}}}),"Card");function Jt(e,t,n){let o=t.getBoundingClientRect(),r=e.getBoundingClientRect(),a=e.ownerDocument.defaultView?.innerHeight??1/0,s=Number(e.dataset.reviewStart??e.dataset.start),i=Number(e.dataset.reviewEnd??e.dataset.end);return {revisionId:e.dataset.revisionId,...e.dataset.formattingKind?{formattingKind:e.dataset.formattingKind}:{},author:e.dataset.reviewAuthor??"",...e.dataset.revisionDate!==void 0?{date:e.dataset.revisionDate}:{},...e.dataset.revisionKind!==void 0?{kind:e.dataset.revisionKind}:{},structuralSite:n,...e.dataset.paragraphId!==void 0?{paragraphId:e.dataset.paragraphId}:{},...Number.isFinite(s)?{start:s}:{},...Number.isFinite(i)?{end:i}:{},left:r.left-o.left,top:r.top-o.top,bottom:r.bottom-o.top,above:r.bottom+220>a}}function Xr(e){return e==="format"||e==="structural"}function vn(e,t,n){return e.kind!=="revision"||!Xr(e.revisionKind)?false:!(n&&t.some(o=>o.id===e.id))}function pn(e,t){if(t.kind!=="revision"||t.item.kind!=="revision")return null;let n=t.item.addresses;if(n.length===0)return null;let o=new Set(n.map(a=>a.id)),r=t.item.formattingKind;for(let a of e.querySelectorAll("[data-revision-id]")){if(!(a instanceof HTMLElement))continue;let s=a.dataset.revisionId;if(!s||!o.has(s)||!n.some(l=>l.id===s&&l.author===(a.dataset.reviewAuthor??"")&&(l.date??"")===(a.dataset.revisionDate??"")))continue;let u=a.classList.contains("docx-table-row--revision");if(t.revisionKind==="structural"&&u||t.revisionKind==="format"&&a.dataset.revisionKind==="format"&&a.dataset.formattingKind===r)return a}return null}function yn(e,t){let n=null,o=false,r=null,a=false,s=null,i=false;for(let u of t)if(!(u.kind!=="revision"||u.item.kind!=="revision")&&!(e.formattingKind&&u.item.formattingKind!==e.formattingKind)){for(let l of u.item.addresses)if(l.id===e.revisionId){if(l.author===e.author){if(l.date===e.date)return u;n===null?n=u:n!==u&&(o=true);}r===null?r=u:r!==u&&(a=true);}if(!(e.paragraphId===void 0||e.start===void 0||e.end===void 0||u.revisionKind!=="format"&&u.revisionKind!=="structural")){for(let l of u.item.ranges)if(l.start.paragraphId===e.paragraphId&&l.start.offset<e.end&&l.end.offset>e.start){s===null?s=u:s!==u&&(i=true);break}}}return n!==null&&!o?n:r!==null&&!a?r:s!==null&&!i?s:null}var Xt=T(vue.defineComponent({name:"ReviewList",props:{stack:{type:Boolean,default:true},positions:{type:Object,default:void 0},collapsed:{type:Object,default:void 0},scale:{type:Number,default:1},offset:{type:Number,default:0},window:{type:Object,default:null},className:String,hidden:Boolean},setup(e,{slots:t}){let n=_();return ()=>{if(e.hidden)return null;let{review:o,cardClassName:r}=n.value,a=t.default?.()??[],s=t.item,i=s?null:ke(a,"list"),u=Me(o.items),l=o.items.filter(d=>!_e(d,u));return l.length===0?s?null:i?.parts.Empty??jsxRuntime.jsx(pt,{}):vue.h("div",{class:`docx-review__list${e.className?` ${e.className}`:""}`},l.map(d=>{let c=e.stack?e.positions?.get(d.key)??d.anchorY:d.anchorY,m=c==null?null:e.offset+c*e.scale;if(m!==null&&e.window&&(m<e.window.top||m>e.window.bottom))return null;let p=m===null?{}:{position:"absolute",top:`${m}px`};return vue.h(ut,{key:d.key,entry:d,measureKey:d.key,collapsed:e.collapsed?.has(d.key),style:p},()=>s?s({item:d}):i?.parts.Card?it(i.parts.Card,r):vue.h(qe,r?{className:r}:{},()=>i?.rest))}))}}}),"List"),Qt=T(vue.defineComponent({name:"ReviewMarkers",props:{scale:{type:Number,default:1},offset:{type:Number,default:0},window:{type:Object,default:null},className:String,hidden:Boolean,icon:{type:[Object,Function],default:void 0}},setup(e){let t=_(),n=F(),o=vue.computed(()=>{let{review:r}=t.value,a=Me(r.items),s=r.items.filter(l=>!_e(l,a)),i=new Map,u=Number.NEGATIVE_INFINITY;for(let l of s){if(l.anchorY===null)continue;let d=Math.max(e.offset+l.anchorY*e.scale,u);i.set(l.key,d),u=d+Do;}return {roots:s,stackedTops:i}});return ()=>{if(e.hidden)return null;let{review:r,authorSlots:a,authorInfo:s,setExpandedResolvedKey:i}=t.value,{roots:u,stackedTops:l}=o.value;return jsxRuntime.jsx("div",{class:`docx-review__markers${e.className?` ${e.className}`:""}`,children:u.map(d=>{let c=l.get(d.key);return c===void 0||e.window&&(c<e.window.top||c>e.window.bottom)?null:jsxRuntime.jsx("button",{type:"button",class:"docx-review__marker","data-testid":"review-marker","data-kind":d.kind==="revision"?d.revisionKind:d.kind,...d.author?{"data-review-author":d.author,"data-review-author-slot":ye(s.get(d.author),a.get(d.author)??0)}:{},style:{position:"absolute",top:`${c}px`,...d.author?{"--doc-review-author-current":qt(s.get(d.author),a.get(d.author)??0)}:{}},title:d.author?`${d.author}: ${d.text}`:d.text,"aria-label":`${n("review.showPane")}: ${d.author?`${d.author}. `:""}${d.text}`,onMousedown:$,onClick:()=>{d.kind==="comment"&&d.resolved&&i(d.key),r.setPaneOpen(true),r.setActive(d.key);},children:(typeof e.icon=="function"?e.icon(d):e.icon)??(d.kind==="comment"&&d.resolved?mt():Y(Xo(d)))},d.key)})})}}}),"Markers"),eo=T(vue.defineComponent({name:"ReviewAddComment",props:{top:{type:Number,default:null},drafting:{type:Boolean,default:false},className:String,hidden:Boolean},setup(e,{slots:t}){let n=_(),o=F();return ()=>{let{beginDraft:r,composeTop:a,readOnly:s}=n.value;if(e.hidden||e.drafting||a===null||s)return null;let i={type:"button",class:`docx-review__add${e.className?` ${e.className}`:""}`,"data-testid":"review-add-comment",style:{position:"absolute",top:`${a}px`},"aria-label":o("common.comment"),title:o("common.comment"),onMousedown:$,onClick:r},u=t.default?.();return u?.length?vue.h(vue$1.Slot,i,()=>u):vue.h("button",i,Y(zo))}}}),"AddComment"),na=vue.defineComponent({name:"BalloonTime",props:{raw:{type:String,required:true}},setup(e){return ()=>{let t=new Date(e.raw);return Number.isNaN(t.getTime())?null:jsxRuntime.jsx("time",{class:"docx-review__time",datetime:e.raw,children:dt.format(t)})}}}),to=T(vue.defineComponent({name:"ReviewBalloon",props:{className:String,hidden:Boolean},setup(e){let t=vue.getCurrentInstance(),n=_(),o=F(),r=vue.ref(null),a=vue.ref(null),s=vue$1.useEditorState(y=>y.reviewDisplayMode??"all-markup");vue.watch(s,()=>{a.value=null,r.value=null;});let i=vue.ref(false),u=vue.ref(false);vue.watch(r,y=>{i.value=y!==null;});let l;vue.onMounted(()=>{let y=vue.getCurrentInstance()?.proxy?.$el,x=y?.closest(".docx-review"),I=x?.closest(".docx-editor__scroll-container")??x?.offsetParent;if(!y||!x||!I)return;let w=(f,g)=>{a.value=null,r.value=Jt(f,x,g),t?.proxy?.$forceUpdate();},E=f=>{let g=f.target;if(!(g instanceof Element)||y.contains(g))return;let S=g.closest("[data-revision-id]");if(S instanceof HTMLElement&&I.contains(S)){let P=S.classList.contains("docx-table-row--revision");if(S.dataset.revisionKind==="format"||P){w(S,P);return}}i.value&&(a.value=null,r.value=null,t?.proxy?.$forceUpdate());};I.addEventListener("pointerdown",E,true),I.addEventListener("mousedown",E,true),l=()=>{I.removeEventListener("pointerdown",E,true),I.removeEventListener("mousedown",E,true);};}),vue.onUnmounted(()=>l?.());let d=vue.computed(()=>n.value.allItems.find(y=>y.isActive)??null),c=vue.computed(()=>d.value?.key??null),m=vue.computed(()=>d.value!==null&&vn(d.value,n.value.review.items,n.value.review.paneOpen));vue.watch([c,m],([y,x],I,w)=>{let E=d.value,g=t?.proxy?.$el?.closest(".docx-review"),S=g?.closest(".docx-editor__scroll-container")??g?.offsetParent;if(!y||!E){if(a.value===null)return;a.value=null,r.value=null,t?.proxy?.$forceUpdate();return}if(!x){a.value=null,r.value=null,t?.proxy?.$forceUpdate();return}if(!g||!S)return;a.value=E.key,r.value=null;let P=false,G=requestAnimationFrame(()=>{if(P)return;let K=pn(S,E);if(!K){r.value=null,t?.proxy?.$forceUpdate();return}r.value=Jt(K,g,K.classList.contains("docx-table-row--revision")),t?.proxy?.$forceUpdate();});w(()=>{P=true,cancelAnimationFrame(G);});},{flush:"post"});let p=vue.computed(()=>{let y=r.value;return y?yn(y,n.value.allItems):null}),R=vue.computed(()=>{let y=p.value;return y&&(y.revisionKind==="format"||y.revisionKind==="structural")?y:null});return vue.watch(R,y=>{if(y){u.value=true;return}u.value&&(u.value=false,r.value=null);}),()=>{if(e.hidden)return null;let{review:y,authorSlots:x,authorInfo:I}=n.value,w=r.value,E=w?.kind==="format"?"format":"structural",f=R.value,g=w===null||s.value!=="all-markup"||f&&y.items.some(S=>S.id===f.id)&&y.paneOpen?null:vue.h("div",{class:"docx-review__balloon","data-testid":"review-balloon",style:{left:`${w.left}px`,top:`${w.above?w.top-6:w.bottom+6}px`,transform:w.above?"translateY(-100%)":void 0},onMousedown:$},f?vue.h(ct,{entry:f},()=>vue.h("div",{class:"docx-review__card","data-testid":"review-balloon-card","data-kind":f.revisionKind??"revision",...f.author?{"data-review-author":f.author,"data-review-author-slot":ye(I.get(f.author),x.get(f.author)??0)}:{},style:le(f.author,I.get(f.author),x.get(f.author)??0),onClick:()=>y.setActive(f.key)},[vue.h("div",{class:"docx-review__head"},[vue.h(we),vue.h("div",{class:"docx-review__meta"},[vue.h(ge),vue.h(he)]),f.kind==="revision"&&!f.readOnly?vue.h("div",{class:"docx-review__actions"},[vue.h(Ue),vue.h(Be)]):null]),vue.h(Ce)])):vue.h("div",{class:"docx-review__card","data-testid":"review-balloon-card","data-kind":E,...w.author?{"data-review-author":w.author,"data-review-author-slot":ye(I.get(w.author),x.get(w.author)??0)}:{},style:le(w.author,I.get(w.author),x.get(w.author)??0)},[vue.h("div",{class:"docx-review__head"},[vue.h("span",{class:"docx-review__avatar","aria-hidden":true},Lo(w.author)),vue.h("div",{class:"docx-review__meta"},[vue.h("span",{class:"docx-review__author"},w.author||o("comments.unknown")),w.date?vue.h(na,{raw:w.date}):null])]),vue.h("div",{class:"docx-review__summary"},[vue.h("span",{class:"docx-review__label","data-kind":E},o(Ft(E)))])]));return vue.h("div",{class:`docx-review__balloon-root${e.className?` ${e.className}`:""}`},g===null?void 0:[g])}}}),"Balloon");function je(e,t,n){if(!(e in n))return t;let o=n[e];return !vue.isVNode(o)||!vue.isVNode(t)?o:vue.cloneVNode(o,vue.mergeProps(t.props??{},o.props??{}))}var ya=vue.defineComponent({name:"ReviewDraftMount",props:{top:{type:Number,required:true},left:{type:Number,default:null}},setup(e){return ()=>vue.h(zt,{top:e.top,left:e.left})}});function Ra(e,t){return {items:t,activeKey:e.activeKey.value,setActive:e.setActive,accept:e.accept,reject:e.reject,resolve:e.resolve,reopen:e.reopen,commentResolutionDisabledReason:e.commentResolutionDisabledReason.value,remove:e.remove,reply:e.reply,selectionAnchorY:e.selectionAnchorY.value,comment:e.comment,paneOpen:e.paneOpen.value,setPaneOpen:e.setPaneOpen,ready:e.ready.value}}var wa=vue.defineComponent({name:"DocxEditorReview",props:{className:String,asChild:Boolean,hidden:Boolean,t:{type:Function,default:void 0},card:{type:Object,default:void 0},furniture:{type:[Object,Array],default:void 0},preset:{type:Boolean,default:true},stack:{type:Boolean,default:true},gap:{type:Number,default:8},filter:{type:Function,default:void 0},structural:{type:Boolean,default:false},formatting:{type:Boolean,default:false}},setup(e,{slots:t}){let n=vue.getCurrentInstance(),o=vue$1.useDocxEditor(),r=vue$1.useEditorState(Ao),a=vue$1.useEditorState(Te),s=pe(),i=vue.computed(()=>{let v=[];return e.structural||v.push("structural"),e.formatting||v.push("format"),v.length>0?v:void 0}),u=vue.computed(()=>i.value?{excludeRevisionKinds:i.value}:void 0);vue.watch([o,i],()=>{o.value?.setReviewActivationExclusions(i.value??null);},{immediate:true}),vue.onUnmounted(()=>{o.value?.setReviewActivationExclusions(null);}),Io(s);let l=Lt(Vo,s),d=Lt(()=>u.value,s),{t:c}=vue$1.useTranslation(),m=(v,h)=>e.t?.(v,h)??c(v,h),p=vue.shallowRef(null),R=vue.inject(vue$1.ReviewRailContext,vue.shallowRef({mounted:0,register:()=>()=>{},registerCommentDraft:()=>()=>{},requestCommentDraft:()=>false})),y=vue.ref(false),x,I=()=>{if(!y.value||e.hidden){x?.(),x=void 0;return}x??=R.value.register();};vue.onMounted(()=>{y.value=true,I();}),vue.watch(()=>e.hidden,I);let w=vue.computed(()=>d.paneOpen.value),E=vue$1.useReviewGutter(),f=vue.ref(null),g=vue.computed(()=>w.value&&(f.value??E.value.inlineEnd)>0&&(f.value??E.value.inlineEnd)<vue$1.REVIEW_PANE_GUTTER),S=vue.computed(()=>w.value&&!g.value),P=vue.computed(()=>e.filter?d.items.value.filter(v=>e.filter(v)):d.items.value),G=vue.ref(null);vue.watch(P,v=>{let h=G.value;h!==null&&!v.some(C=>C.key===h&&C.kind==="comment"&&C.resolved)&&(G.value=null);},{flush:"sync"});let K=vue$1.useEditorState(()=>o.value?.getConfiguredAuthor()??null),ne=vue.computed(()=>{let v=new Map;for(let h of P.value)h.author&&!v.has(h.author)&&v.set(h.author,v.size);return K.value&&!v.has(K.value)&&v.set(K.value,v.size),v}),Ot=vue$1.useReviewAuthors(),kt=new Map,Je=vue.computed(()=>Yo(Ot.value,P.value,ne.value,o.value,kt)),Ie=vue.computed(()=>{let v=new Map;for(let h of l.items.value)v.set(h.id,h);return v}),Xe=vue.ref(new Map),Dn=jo((v,h)=>{if(h<=0||Xe.value.get(v)===h)return;let C=new Map(Xe.value);C.set(v,h),Xe.value=C;}),M=vue.ref(Oo),Se;vue.watch([o,P,r,()=>e.hidden,p,g],()=>{Se?.(),Se=void 0;let v=p.value,h=o.value;if(!h||!v||r.value||e.hidden)return;let C=v.offsetParent,O=C?.querySelector(".docx-paginated-surface")??null,N=()=>{if(C){let ve=Number.parseFloat(getComputedStyle(C).getPropertyValue("--docx-review-gutter"));f.value=Number.isFinite(ve)?ve:null;}else f.value=null;let L=O&&C?O.getBoundingClientRect():null,ee=L&&C?C.getBoundingClientRect():null,me=L&&ee&&C?L.right-ee.left-C.clientLeft+C.scrollLeft+ko:null,ae={scale:h.getRenderScale(),top:L&&ee&&C?L.top-ee.top-C.clientTop+C.scrollTop:0,left:me,compactCardLeft:me===null||!C?null:C.scrollLeft+C.clientWidth-me-Pe-To},fe=M.value;(fe.scale!==ae.scale||fe.top!==ae.top||fe.left!==ae.left||fe.compactCardLeft!==ae.compactCardLeft)&&(M.value=ae);};N();let k=new ResizeObserver(N);C&&k.observe(C),O&&k.observe(O);let j=C&&typeof MutationObserver<"u"?new MutationObserver(N):null;if(j?.observe(C,{attributes:true,attributeFilter:["style"]}),!g.value||!C){Se=()=>{j?.disconnect(),k.disconnect();};return}let q=0,D=()=>{q===0&&(q=requestAnimationFrame(()=>{q=0,N();}));};C.addEventListener("scroll",D,{passive:true}),Se=()=>{q!==0&&cancelAnimationFrame(q),C.removeEventListener("scroll",D),j?.disconnect(),k.disconnect();};},{flush:"post"}),vue.onUnmounted(()=>Se?.());let Qe;vue.watch([o,r,()=>e.hidden,p],()=>{Qe?.(),Qe=void 0;let v=p.value,h=o.value;if(!h||!v||r.value||e.hidden)return;let C=O=>{let N=O.target;if(!(N instanceof Node)||v.contains(N))return;let k=v.offsetParent;!k||!k.contains(N)||k.querySelector(".docx-paginated-surface")?.contains(N)||h.setActiveReviewItem(null);};document.addEventListener("mousedown",C,true),Qe=()=>document.removeEventListener("mousedown",C,true);},{flush:"post"}),vue.onUnmounted(()=>Qe?.());let ce=vue.ref(null),et;vue.watch([o,r,()=>e.hidden,p],()=>{et?.(),et=void 0;let v=p.value,h=v?.offsetParent;if(!h||r.value||e.hidden)return;let C=0,O=()=>{C=0;let q=h.scrollTop-st,D=h.scrollTop+h.clientHeight+st,L=ce.value;ce.value=L&&L.top===q&&L.bottom===D?L:{top:q,bottom:D};},N=0,k=()=>{C===0&&(C=requestAnimationFrame(O)),v?.setAttribute("data-scrolling",""),window.clearTimeout(N),N=window.setTimeout(()=>v?.removeAttribute("data-scrolling"),150);};O(),h.addEventListener("scroll",k,{passive:true});let j=new ResizeObserver(k);j.observe(h),et=()=>{C!==0&&cancelAnimationFrame(C),window.clearTimeout(N),h.removeEventListener("scroll",k),j.disconnect();};},{flush:"post"}),vue.onUnmounted(()=>et?.());let Q=vue.ref(null),tt=vue.shallowRef(null),Ee=()=>{let v=tt.value;v&&v.editor.releaseSelection(v.pin),tt.value=null,Q.value=null;};vue.watch(()=>o.value,(v,h)=>{h&&h!==v&&tt.value?.editor===h&&Ee();});let mo=()=>{let v=o.value;if(!v||a.value)return;let h=v.getSelectionPlacement()?.anchorY??null;if(h===null)return;Ee();let C=v.retainSelection();C&&(tt.value={editor:v,pin:C},d.setPaneOpen(true),Q.value=h,n?.proxy?.$forceUpdate());},Ae,fo=()=>{if(!y.value||e.hidden){Ae?.(),Ae=void 0;return}Ae??=R.value.registerCommentDraft(mo);};vue.onMounted(fo),vue.watch(()=>e.hidden,fo);let Vn=()=>{Ee(),o.value?.focus(),n?.proxy?.$forceUpdate();};vue.watch(w,v=>{v||Q.value===null||Ee();}),vue.onBeforeUnmount(()=>{y.value=false,x?.(),x=void 0,Ae?.(),Ae=void 0,Ee();});let Tt=vue.computed(()=>Q.value??d.selectionAnchorY.value),re=vue.computed(()=>{let v=Me(P.value);return P.value.filter(h=>!_e(h,v))}),Ln=vue.computed(()=>{let v=Q.value;if(v===null)return re.value;let h=re.value.findIndex(O=>O.anchorY!==null&&O.anchorY>v),C={key:te,anchorY:v};return h===-1?[...re.value,C]:[...re.value.slice(0,h),C,...re.value.slice(h)]}),$n=vue.computed(()=>{let v=new Map(Xe.value);for(let h of re.value){if(v.has(h.key))continue;let C=h.text.length+(h.kind==="revision"?h.replacedText?.length??0:0),O=Math.min(6,Math.max(1,Math.ceil(C/36)));v.set(h.key,64+O*20);}return v}),Pt=vue.computed(()=>{let v=M.value.scale,h=new Map,C=new Set,O=Number.NEGATIVE_INFINITY;for(let N of Ln.value){let k=N.anchorY===null?Number.isFinite(O)?O:0:Math.max(N.anchorY,O);h.set(N.key,k);let j=N.anchorY===null?0:(k-N.anchorY)*v,q="isActive"in N&&N.isActive,D=j>Mo&&!q&&N.key!==te;D&&C.add(N.key);let L=D?_o:$n.value.get(N.key)??Po;O=k+(L+e.gap)/v;}return {stacked:h,collapsedKeys:C}}),Oe=vue.computed(()=>Tt.value===null?null:M.value.top+(g.value?Tt.value:Pt.value.stacked.get(te)??Tt.value)*M.value.scale),Kn=vue.computed(()=>(d.commentResolutionDisabledReason.value,d.selectionAnchorY.value,d.paneOpen.value,d.items.value.length,Ra(d,P.value))),_t=()=>{let v=K.value,h=v?ne.value.get(v)??0:0;return {t:e.t,cardClassName:e.card?.className,readOnly:a.value,composeTop:Oe.value,review:Kn.value,allItems:l.items.value,authorSlots:ne.value,authorInfo:Je.value,draftAuthor:v,draftAuthorInfo:v?Je.value.get(v):void 0,draftAuthorSlot:h,byId:Ie.value,measure:Dn,beginDraft:mo,endDraft:Vn,expandedResolvedKey:G.value,setExpandedResolvedKey:C=>{G.value=C;}}},Mt=vue.shallowRef(_t());return vue.watchEffect(()=>{Mt.value=_t();}),vue.watch(()=>s.value,()=>{Mt.value=_t(),n?.proxy?.$forceUpdate();},{flush:"sync"}),vue.provide(Ht,Mt),()=>{if(e.hidden||r.value)return null;s.value,l.items.value,Q.value,P.value.length,d.selectionAnchorY.value,d.paneOpen.value,d.commentResolutionDisabledReason.value,Oe.value;let v=J=>{p.value=J.el instanceof HTMLElement?J.el:null;},h={onVnodeMounted:v,onVnodeUpdated:v,onVnodeBeforeUnmount:()=>{p.value=null;},class:`docx-review${e.className?` ${e.className}`:""}`,"data-testid":"review-rail","data-count":P.value.length,"data-open":S.value?"":void 0,"data-compact":g.value?"":void 0,role:"complementary","aria-label":m("review.ariaLabel"),onMousedown:$,style:M.value.left===null?void 0:{left:`${M.value.left}px`,right:"auto"}},C=t.default?.()??[],O=e.asChild&&C.length===1&&vue.isVNode(C[0])?C[0]:null,{parts:N,rest:k}=ke(O?[]:C,"root"),j={stack:e.stack,positions:Pt.value.stacked,collapsed:Pt.value.collapsedKeys,scale:M.value.scale,offset:M.value.top,window:ce.value},q=vue.h(Qt,{scale:M.value.scale,offset:M.value.top,window:ce.value}),D=g.value?re.value.find(J=>J.key===d.activeKey.value)??null:null,L=D===null?null:D.anchorY!==null?M.value.top+D.anchorY*M.value.scale:ce.value!==null?ce.value.top+st+24:null,ee=ke(k,"list"),me=D&&t.item?t.item({item:D}):ee.parts.Card?it(ee.parts.Card,e.card?.className):e.preset?vue.h(qe,e.card?.className?{className:e.card.className}:{},()=>ee.rest):null,ae=D&&L!==null&&M.value.compactCardLeft!==null&&me?vue.h(ut,{entry:D,className:"docx-review__slot--compact",testId:"review-compact-card",style:{position:"absolute",top:`${L}px`,left:`${M.value.compactCardLeft}px`,width:`${Pe}px`}},()=>me):null,fe=S.value?e.preset||"List"in N?je("List",vue.h(Xt,j,{...k.length>0?{default:()=>k}:{},...t.item?{item:t.item}:{}}),N):k:e.preset||"Markers"in N?[je("Markers",q,N),ae]:k,ve=[S.value&&e.furniture!==void 0?vue.h("div",{class:"docx-review__furniture","data-testid":"review-furniture"},[e.furniture]):null,fe,...e.preset||"AddComment"in N?[je("AddComment",vue.h(eo,{top:Oe.value,drafting:Q.value!==null}),N)]:[],...Q.value===null||Oe.value===null||!w.value||!e.preset&&!("Draft"in N)?[]:[je("Draft",vue.h(ya,{top:Oe.value??0,left:g.value?M.value.compactCardLeft:null}),N)],...e.preset||"Balloon"in N?[je("Balloon",vue.h(to),N)]:[]],U=O;if(!U)return vue.h("aside",h,ve);let ie=vue.cloneVNode(U,h,true);if(typeof U.type=="string"){let J=Array.isArray(U.children)?U.children:U.children==null?[]:typeof U.children=="string"||typeof U.children=="number"?[U.children]:[];ie.children=[...J,...ve],ie.shapeFlag=ie.shapeFlag&-9|16;}else {let J=U.children&&!Array.isArray(U.children)&&typeof U.children=="object"?U.children:{},vo=J.default;ie.children={...J,default:(...Hn)=>[...vo?[vo(...Hn)]:[],...ve]},ie.shapeFlag=ie.shapeFlag&-25|32;}return ie}}});var ga=Object.assign(wa,{List:Xt,Empty:pt,Card:qe,Avatar:we,Author:ge,Time:he,Summary:Ce,Accept:Ue,Reject:Be,Resolve:Yt,Reopen:Gt,Delete:yt,Replies:Wt,Reply:Zt,Markers:Qt,AddComment:eo,Draft:zt,Balloon:to});function oe(){let e=vue$1.useDocxEditor(),t=vue$1.useEditorState(n=>n.collaborationStatus);return {session:vue.computed(()=>(t.value,e.value?.collaborationSession()??null))}}function Ia(e){let t=oe(),n=vue.shallowRef("inactive"),o=vue.shallowRef(void 0),r=vue.shallowRef(void 0),a=vue.shallowRef(false);return vue.watch(()=>e===void 0?t.session.value:vue.toValue(e),(s,i,u)=>{let l=()=>{if(!s){n.value="inactive",o.value=void 0,r.value=void 0,a.value=false;return}let d=s.statusSnapshot();n.value=d.status,o.value=d.reason,r.value=d.lastFailure,a.value=s.attached??false;};l(),s&&u(s.subscribeStatus(()=>l()));},{immediate:true}),{status:vue.readonly(n),reason:vue.readonly(o),lastFailure:vue.readonly(r),attached:vue.readonly(a),live:vue.computed(()=>n.value==="ready"),diverged:vue.computed(()=>n.value==="error"||n.value==="destroyed")}}var bn=Object.freeze([]);function ka(e,t){if(e===t)return true;if(e.length!==t.length)return false;for(let n=0;n<e.length;n+=1){let o=e[n],r=t[n];if(o.actorId!==r.actorId||o.name!==r.name||o.color!==r.color||o.role!==r.role||o.isLocal!==r.isLocal)return false}return true}function Nt(e){let t=oe(),n=vue.shallowRef(bn);return vue.watch(()=>e===void 0?t.session.value:vue.toValue(e),(o,r,a)=>{let s=()=>{let i=o?o.participants():bn;ka(n.value,i)||(n.value=i);};s(),o&&a(o.subscribeParticipants(()=>s()));},{immediate:true}),{participants:vue.readonly(n)}}var Ma=vue.defineComponent({name:"DocxEditorCollaborationRoot",inheritAttrs:false,props:{collaboration:{type:Object,required:true}},setup(e,{slots:t,attrs:n}){return ()=>{let{document:o,modules:r,session:a}=e.collaboration;if(!o)return t.fallback?.()??null;let s=n.author??a?.identity.name;return vue.h(vue$1.DocxEditorRoot,{...n,key:a?.sessionId??"local",document:o,modules:r,...s!==void 0?{author:s}:{}},t.default?{default:t.default}:void 0)}}});var Va=Symbol("useDocumentCollaboration.createRoom");async function La(e){let{createDocumentCollaboration:t}=await import('../document-session-6NLJAJY2.cjs');return t(e)}function $a(e){return e?.[Va]??La}function Ka(e){return e?`${e.documentId}:${e.bootstrap.kind}:${e.identity.actorId}`:""}function Ha(e){let t=vue.getCurrentInstance(),n=chunkQ4YPX2DT_cjs.d({ownerKey:`vue-document:${String(t?.uid??"anonymous")}`,hookName:"useDocumentCollaboration",createRoomOf:()=>$a(vue.toValue(e)),hostModulesOf:()=>vue.toValue(e)?.modules??chunkQ4YPX2DT_cjs.c,autoRoomOf:()=>vue.toValue(e)?.room??null,autoKeyOf:()=>Ka(vue.toValue(e)?.room),rejoinOptionsOf:o=>({...o,bootstrap:{kind:"join"}}),identityOf:o=>o.identity});return {document:vue.readonly(n.document),modules:vue.readonly(n.modules),session:vue.readonly(n.session),pending:vue.readonly(n.pending),error:vue.readonly(n.error),connect:n.connect,leave:n.leave}}var Ge=8;function xn(e){let t=/^var\(--doc-review-author-(\d{1,2})\)$/.exec(e);return t?Number(t[1])%Ge:null}function Et(e,t,n,o){let r=new Map(e.map(i=>[i.author,i])),a=new Map,s=new Map;for(let i of t){if(s.has(i.actorId))continue;let u=collaboration.safeParticipantColor(o?.(i.name));if(u!==void 0){s.set(i.actorId,{color:u,slot:xn(u)});continue}let l=collaboration.safeParticipantColor(i.color);if(l!==void 0){s.set(i.actorId,{color:l,slot:null});continue}let d=r.get(i.name),c=collaboration.safeParticipantColor(n?.(i.name));if(c!==void 0){s.set(i.actorId,{color:c,slot:xn(c)??(d?d.slot%Ge:null)});continue}if(d!==void 0){let p=d.slot%Ge;s.set(i.actorId,{color:collaboration.safeParticipantColor(d.color)??`var(--doc-review-author-${p})`,slot:p});continue}let m=a.get(i.name);m===void 0&&(m=e.length+a.size,a.set(i.name,m)),s.set(i.actorId,{color:`var(--doc-review-author-${m%Ge})`,slot:m%Ge});}return s}function ro(e,t,n,o){return Et(e,[t],n,o).get(t.actorId)}function ao(e){let t=e.trim().split(/\s+/,2),n="";for(let o of t){let r=[...o][0];r!==void 0&&(n+=r.toUpperCase());}return n}function Nn(e){return [...e].sort((t,n)=>{if(t.isLocal!==n.isLocal)return t.isLocal?-1:1;let o=t.name.localeCompare(n.name);return o!==0?o:t.actorId<n.actorId?-1:t.actorId>n.actorId?1:0})}function At(e,t,n){for(let o of e)if(o.author===t)return o.style?.avatarUrl;return n?.(t)?.avatarUrl}var In=Symbol("docx-collaboration-avatar-accents");function Sn(e){return e!==void 0?{avatarUrl:e}:{}}function za(e,t,n,o){return vue.h("span",{class:`docx-collaboration-avatar${n?` ${n}`:""}`,"data-collaboration-avatar":"",...e.isLocal?{"data-local":""}:{},...t.slot!==null?{"data-collaboration-author-slot":t.slot}:{},title:e.name,role:"img","aria-label":e.name,style:{"--doc-collaboration-accent":t.color}},o)}var En=vue.defineComponent({name:"CollaborationAvatar",props:{participant:{type:Object,required:true},className:{type:String,default:void 0}},setup(e,{slots:t}){let n=vue$1.useDocxEditor(),o=vue$1.useReviewAuthors(),r=vue.inject(In,null);return ()=>{let a=n.value,s=r?.value.get(e.participant.actorId)??ro(o.value,e.participant,a?l=>a.presenceColorFor(l):void 0,a?l=>a.getReviewAuthorStyle(l)?.color:void 0),i=At(o.value,e.participant.name,a?l=>a.getReviewAuthorStyle(l):void 0),u=t.default?.()??(i!==void 0?vue.h("img",{class:"docx-collaboration-avatar__image",src:i,alt:""}):ao(e.participant.name));return za(e.participant,s,e.className,u)}}}),Za=vue.defineComponent({name:"CollaborationAvatars",props:{session:{type:Object,default:void 0},max:{type:Number,default:void 0},className:{type:String,default:void 0}},setup(e,{slots:t}){let n=vue$1.useDocxEditor(),o=oe(),r=vue.computed(()=>e.session===void 0?o.session.value:e.session),{participants:a}=Nt(r),s=vue$1.useReviewAuthors(),{t:i}=vue$1.useTranslation(),u=vue.computed(()=>{let c=n.value;return Et(s.value,a.value,c?m=>c.presenceColorFor(m):void 0,c?m=>c.getReviewAuthorStyle(m)?.color:void 0)}),l=vue.computed(()=>{let c=n.value,m=c?R=>c.getReviewAuthorStyle(R):void 0,p=new Map;for(let R of a.value){if(p.has(R.name))continue;let y=At(s.value,R.name,m);y!==void 0&&p.set(R.name,y);}return p}),d=vue.computed(()=>Nn(a.value));return vue.provide(In,u),()=>{if(d.value.length===0)return null;let c=e.max===void 0?d.value:d.value.slice(0,Math.max(0,e.max)),m=d.value.length-c.length,p=i("collaboration.moreParticipants",{count:m});return vue.h("span",{class:`docx-collaboration-avatars${e.className?` ${e.className}`:""}`,"data-collaboration-avatars":"",role:"group","aria-label":i("collaboration.participants")},[...c.map(R=>t.default?vue.h(vue.Fragment,{key:R.actorId},[t.default({participant:R,color:u.value.get(R.actorId).color,initials:ao(R.name),...Sn(l.value.get(R.name))})]):vue.h(En,{key:R.actorId,participant:R})),m>0?vue.h("span",{class:"docx-collaboration-avatar","data-collaboration-avatar":"","data-overflow":"",title:p,role:"img","aria-label":p},`+${m}`):null])}}}),Wa=vue.defineComponent({name:"CollaborationCaretLabels",props:{session:{type:Object,default:void 0}},setup(e,{slots:t}){let n=vue$1.useDocxEditor(),o=oe(),r=vue.computed(()=>e.session===void 0?o.session.value:e.session),{participants:a}=Nt(r),s=vue$1.useReviewAuthors(),i=vue.shallowRef([]);return vue.watch([n,r],([u,l],d,c)=>{!u||!l||(u.setRemoteCaretLabelHost({publish:m=>{i.value=[...m];}}),c(()=>{u.setRemoteCaretLabelHost(null),i.value=[];}));},{immediate:true}),()=>{if(i.value.length===0)return null;let u=Et(s.value,a.value);return i.value.map(l=>{let{selection:d}=l,c=a.value.find(R=>R.actorId===d.actorId)??null,m=l.element.style.getPropertyValue("--doc-remote-color"),p=m!==""?m:u.get(d.actorId)?.color??ro(s.value,{actorId:d.actorId,name:d.name,...d.color!==void 0?{color:d.color}:{},isLocal:false}).color;return vue.h(vue.Teleport,{to:l.element,key:d.actorId},[t.default?t.default({selection:d,participant:c,color:p,...Sn(At(s.value,d.name,n.value?R=>n.value.getReviewAuthorStyle(R):void 0))}):d.name])})}}}),Ja={CaretLabels:Wa,Avatars:Za,Avatar:En};function Ze(e){let t=vue$1.useDocxEditor();return vue.computed(()=>{let n=vue.toValue(e);return n||(t.value?.getCustomNodeDefinitions()??[]).filter(rt)})}var ni=".docx-content-control-boundary";function xe(e,t){let{node:n,definition:o,controlId:r}=e,a=r?t?.getReviewItems().find(u=>u.kind==="custom"&&u.item.id===r):void 0;if(a?.kind==="custom"){let u=a.item;return {...n,attrs:u.attrs,text:u.text,...u.data===void 0?{}:{data:u.data},...r?{nodeId:r}:{}}}let s=r?ri(t,r,o):void 0,i=o.fromDocx?o.fromDocx({attrs:n.attrs,text:"",...s===void 0?{}:{data:s}}):n.attrs;return i===null?null:{...n,attrs:i,...s===void 0?{}:{data:s},...r?{nodeId:r}:{}}}function ri(e,t,n){let o=e?.surface;if(!o)return;let r=editor.partOfNodeId(o.session,t),a=store.customNodePayloadsByControl(o.session.currentPackage(),(r??o.session.part()).name,o.session.part().name).get(t);if(!a)return;let s=nt(n.schema,a.data);return s.ok?s.value:void 0}function Ne(e,t){let n=e?.closest?.(ni),o=n?.closest(".docx-content-control-chrome"),r=o?.getAttribute("data-tag"),a=r?ot(r):null;if(!n||!a||!r)return null;let s=t.find(i=>i.tagPrefix===a.prefix&&i.name===a.name);return s?{node:{name:a.name,attrs:a.attrs,tag:r,rect:n.getBoundingClientRect()},definition:s,controlId:o?.getAttribute("data-docx-content-control")??null}:null}var uo=".docx-content-control-boundary";function ui(e){if(!Vt.test(e.tagPrefix)||!Vt.test(e.name))return [];let t=`${e.tagPrefix}:${e.name}`;return [`.docx-content-control-chrome[data-tag="${t}"]`,`.docx-content-control-chrome[data-tag^="${t}?"]`]}var ci=vue.defineComponent({name:"CustomNodeChrome",props:{nodes:{type:Array,default:void 0},onNodeClick:{type:Function,default:void 0},onNodeHover:{type:Function,default:void 0}},setup(e){let t=vue$1.useDocxEditor(),n=Ze(()=>e.nodes),o,r=null,a=null,s=d=>Ne(document.elementFromPoint(d.clientX,d.clientY),n.value),i=d=>{let c=d.button===0?s(d):null;r=c?.controlId??null,a=c?.node.tag??null;},u=d=>{let c=r,m=a;if(r=null,a=null,m===null)return;let p=s(d);if(!p||p.node.tag!==m||c!==null&&p.controlId!==c)return;let R=xe(p,t.value);R&&(p.definition.onClick?.(R),e.onNodeClick?.(R));},l=d=>{let c=Ne(d.target,n.value);if(!c||d.relatedTarget?.closest?.(uo)===d.target.closest(uo))return;let p=xe(c,t.value);p&&(c.definition.onHover?.(p),e.onNodeHover?.(p));};return vue.onMounted(()=>{o=vue.watch(n,(d,c,m)=>{let p=document.createElement("style"),R=[];for(let y of d){let x=ui(y);if(x.length===0)continue;let I=y.chrome?.color,w=I!==void 0&&typeof CSS<"u"&&CSS.supports("color",I)?I:"var(--doc-accent)";R.push(`${x.map(E=>`${E} ${uo}`).join(", ")} {`," pointer-events: auto !important;"," opacity: 1;"," border: none;",` background: color-mix(in srgb, ${w} 12%, transparent);`," border-radius: 6px;"," cursor: default;","}");}p.textContent=R.join(`
|
|
1
|
+
'use strict';var chunkQ4YPX2DT_cjs=require('../chunk-Q4YPX2DT.cjs'),store=require('@docx-editor.dev/core/store'),layout=require('@docx-editor.dev/core/layout'),vue=require('vue'),vue$1=require('@docx-editor.dev/vue'),jsxRuntime=require('vue/jsx-runtime'),collaboration=require('@docx-editor.dev/core/collaboration'),editor=require('@docx-editor.dev/core/editor');var Bn=new Set(["__proto__","constructor","prototype"]);function ot(e){if(e.length>64)return null;let t=e.indexOf(":");if(t<=0)return null;let n=e.slice(0,t),o=e.slice(t+1),r=o.indexOf("?"),a=r===-1?o:o.slice(0,r);if(a.length===0)return null;let s=Object.create(null);if(r!==-1)for(let[i,u]of new URLSearchParams(o.slice(r+1))){if(Bn.has(i))return null;s[i]=u;}return {prefix:n,name:a,attrs:s}}function nt(e,t){if(t.length===0)return {ok:false,reason:"malformed",issues:["the node carries no payload"]};if(t.length>262144)return {ok:false,reason:"malformed",issues:[`the payload is ${String(t.length)} characters; the cap is ${String(262144)}`]};let n;try{n=JSON.parse(t);}catch(a){return {ok:false,reason:"malformed",issues:[a instanceof Error?a.message:"the payload is not JSON"]}}let o=Dt(n);if(!e)return {ok:true,value:o};let r=e["~standard"].validate(o);return qn(r)?{ok:false,reason:"async",issues:["the schema validates asynchronously, which the read path cannot await"]}:r.issues?{ok:false,reason:"invalid",issues:r.issues.map(Fn)}:{ok:true,value:r.value}}function qn(e){return typeof e.then=="function"}function Fn(e){let t=(e.path??[]).map(n=>String(typeof n=="object"?n.key:n)).join(".");return t.length>0?`${t}: ${e.message}`:e.message}var jn=new Set(["__proto__","constructor","prototype"]);function Dt(e){if(Array.isArray(e))return e.map(Dt);if(e===null||typeof e!="object")return e;let t=Object.create(null);for(let[n,o]of Object.entries(e))jn.has(n)||(t[n]=Dt(o));return t}function rt(e){return typeof e=="object"&&e!==null&&typeof e.name=="string"&&typeof e.tagPrefix=="string"}var Vt=/^[A-Za-z0-9_.-]+$/;function Gn(e){for(let t of e.children)if(!(t.kind==="textValue"||t.localName!=="sdtPr")){for(let n of t.children)if(!(n.kind==="textValue"||n.localName!=="tag")){for(let o of n.attributes)if(o.localName==="val")return o.value}}}function wo(e){if(e.kind==="textValue")return e.value;let t="";for(let n of e.children)t+=wo(n);return t}function go(e,t,n={}){if(t.length===0)return [];let o=new Map;for(let s of t){let i=`${s.tagPrefix}:${s.name}`;if(o.has(i))throw new Error(`recognizeCustomNodes: duplicate definition for ${JSON.stringify(i)}`);o.set(i,s);}let r=[],a=(s,i)=>{if(!(s.kind==="textValue"||i>64)){if(s.kind==="contentControl"){let u=Gn(s),l=u!==void 0?ot(u):null,d=l?o.get(`${l.prefix}:${l.name}`):void 0;if(l&&d&&u!==void 0){let c=wo(s),m=zn(d,s.id,n.payloads?.get(s.id),store.contentControlPropertiesOf(s).dataBinding!==void 0,n.onDiagnostic),p=d.fromDocx?d.fromDocx({attrs:l.attrs,text:c,...m.present?{data:m.value}:{}}):l.attrs;if(p!==null){r.push({name:d.name,attrs:p,text:c,nodeId:s.id,tag:u,...m.present?{data:m.value}:{}});return}}}for(let u of s.children)a(u,i+1);}};return a(e.root,0),r}function zn(e,t,n,o,r){if(!n)return o&&r?.({code:"payload-missing",name:e.name,nodeId:t,issues:["the control binds a store node this document does not hold"]}),{present:false};let a=nt(e.schema,n.data);return a.ok?{present:true,value:a.value}:(r?.({code:"payload-invalid",name:e.name,nodeId:t,issues:a.issues}),{present:false})}function Co(e,t){let n=store.findNode(e,t);return !n||n.kind!=="paragraph"?[]:store.revisionItemsOf({id:e.id,name:e.name,contentType:e.contentType,root:n})}function er(e,t,n,o){if(t.length===0)return [];let r=go(e,t,{...n===void 0?{}:{payloads:n},...o===void 0?{}:{onDiagnostic:o}});if(r.length===0)return [];let a=store.locateSites(e),s=[];for(let i of r){let u=t.find(c=>c.name===i.name&&i.tag.startsWith(`${c.tagPrefix}:`));if(!u)continue;let l=u.reviewCard?u.reviewCard({attrs:i.attrs,text:i.text,...i.data===void 0?{}:{data:i.data}}):null;if(u.reviewCard&&l===null)continue;let d=a.get(i.nodeId);s.push({kind:"custom",id:i.nodeId,name:i.name,tag:i.tag,attrs:i.attrs,text:i.text,...i.data===void 0?{}:{data:i.data},carded:u.reviewCard!==void 0&&l!==null,title:l?.title??"",...l?.detail!==void 0?{detail:l.detail}:{},...l?.icon!==void 0?{icon:l.icon}:{},range:d?{partName:e.name,start:{paragraphId:d.paragraphId,offset:d.start},end:{paragraphId:d.paragraphId,offset:d.end}}:null});}return s}function bo(e){let t=store.collectReviewItems(e),n=(e.customNodes??[]).filter(rt);if(n.length===0)return t;let o=[e.storyPart],r=new Set([e.storyPart.name]);for(let u of e.furnitureParts??[])r.has(u.name)||(r.add(u.name),o.push(u));let a=[],s=new Map;for(let u of o){a.push(...er(u,n,e.customNodePayloads,e.reportCustomNodeDiagnostic));let l=s.size;for(let[d,c]of store.paragraphOrderOfPart(u))s.has(d)||s.set(d,l+c);}return a.length===0?t:[...t,...a].sort((u,l)=>layout.reviewItemPositionRank(u,s)-layout.reviewItemPositionRank(l,s))}function tr(e={}){return chunkQ4YPX2DT_cjs.a(e.licenseKey),{id:"review",review:{displayModes:["all-markup","proposed","original"],collectReviewItems:bo,revisionItemsOfParagraph:Co}}}function xo(e){return `${e.getReviewRevision()}:${e.getEditingMode()}:${JSON.stringify(e.snapshot().hiddenReviewAuthors??[])}`}var No=Symbol("proEditorRenderRevision");function Io(e){return vue.provide(No,e),e}function pe(){let e=vue.inject(No,null);if(e)return e;let t=vue$1.useDocxEditor(),n=vue.shallowRef("none");return vue.watch(()=>t.value,(o,r,a)=>{if(!o){n.value="none";return}let s=o,i=xo(s);n.value=i;let u=false,l=null,d=()=>{u||l!==null||(l=setTimeout(()=>{if(l=null,u)return;let R=xo(s);R!==i&&(i=R,n.value=R);},0));},c=s.on("change",d),m=s.on("selectionChange",d),p=s.on("error",d);a(()=>{u=true,l!==null&&clearTimeout(l),c(),m(),p();});},{immediate:true,flush:"sync"}),n}function at(e){if(e!==void 0)return typeof e=="function"?e():typeof e=="object"&&e!==null&&"value"in e?e.value:e}function So(e){let t=e.snapshot?.();return `${e.getReviewRevision()}:${e.getEditingMode()}:${JSON.stringify(t?.hiddenReviewAuthors??[])}`}function dr(e){let t=vue$1.useDocxEditor(),n=pe();return $t(t,e,n)}function Lt(e,t){let n=vue$1.useDocxEditor();return $t(n,e,t)}function ur(e,t){return $t(e,t)}function $t(e,t,n){let o=n?null:vue.shallowRef("none"),r=()=>{(n??o)?.value;};n||vue.watch(()=>e.value,(f,g,S)=>{if(!f){o.value="none";return}let P=So(f);o.value=P;let G=false,K=null,ne=()=>{G||K!==null||(K=setTimeout(()=>{if(K=null,G)return;let Ie=So(f);Ie!==P&&(P=Ie,o.value=Ie);},0));},Ot=f.on("change",ne),kt=f.on("selectionChange",ne),Je=f.on("error",ne);S(()=>{G=true,K!==null&&clearTimeout(K),Ot(),kt(),Je();});},{immediate:true,flush:"sync"});let a=vue.computed(()=>{r();let f=e.value,g=at(t);return f?f.getReviewItems(g).filter(S=>S.item.kind!=="custom"||S.item.carded):[]}),s=vue.computed(()=>a.value.find(f=>f.isActive)?.key??null),i=(f,g)=>{let S=e.value;return S?S.setActiveReviewItem(f,g).ok:false},u=f=>{let g=e.value;return !g||f.kind!=="revision"||f.readOnly?false:g.acceptReviewItem(f.key).ok},l=f=>{let g=e.value;return !g||f.kind!=="revision"||f.readOnly?false:g.rejectReviewItem(f.key).ok},d=f=>{let g=e.value;return !g||f.kind!=="comment"?false:g.setCommentResolved(f.key,true).ok},c=f=>{let g=e.value;return !g||f.kind!=="comment"?false:g.setCommentResolved(f.key,false).ok},m=vue.computed(()=>(r(),e.value?.getEditingMode()==="viewing"?"the document is open for viewing":null)),p=f=>{let g=e.value;return !g||f.kind==="custom"||f.kind==="revision"&&f.readOnly?false:g.deleteReviewItem(f.key).ok},R=(f,g,S)=>g.trim().length===0||!e.value?false:e.value.replyToReviewItem(f.key,g,S).ok,y=vue.computed(()=>{r();let f=e.value;return f?f.getSelectionPlacement()?.anchorY??null:null}),x=(f,g)=>f.trim().length===0||!e.value?false:e.value.addComment(f,g).ok,I=vue.computed(()=>{r();let f=e.value;return f?f.isReviewPaneOpen():true}),w=f=>{let g=e.value;!g||g.isReviewPaneOpen()===f||g.exec({type:"toggleReviewPane"});},E=vue.computed(()=>{r();let f=e.value;if(f===null)return false;let g=f.snapshot();return !g.isLoading&&g.parseError===null});return {items:a,activeKey:s,setActive:i,accept:u,reject:l,resolve:d,reopen:c,commentResolutionDisabledReason:m,remove:p,reply:R,selectionAnchorY:y,comment:x,paneOpen:I,setPaneOpen:w,ready:E}}function cr(e,t,n={}){return vue.computed(()=>{let o=at(e)??[],r=at(t)??new Map,a=at(n)??{},s=a.gap??8,i=a.scale??1,u=a.defaultHeight??0,l=new Map,d=Number.NEGATIVE_INFINITY;for(let c of o){let m=c.anchorY===null?Number.isFinite(d)?d:0:Math.max(c.anchorY,d);l.set(c.key,m),d=m+((r.get(c.key)??u)+s)/i;}return l})}var pr=new Set(["List","Markers","AddComment","Draft","Balloon"]),yr=new Set(["Card","Empty"]);function Rr(e){return vue.isVNode(e)}function ke(e,t){let n=t==="root"?pr:yr,o={},r=[],a=s=>{for(let i of s){if(!Rr(i))continue;if(i.type===vue.Fragment){let l=Array.isArray(i.children)?i.children:[];a(l);continue}let u=i.type.docxReviewPart;u&&n.has(u)?o[u]=i:r.push(i);}};return a(e),{parts:o,rest:r}}function it(e,t){if(!t)return e;let n=e.props.class;return vue.cloneVNode(e,{class:`${t}${n?` ${n}`:""}`})}var Ao=e=>e.isLoading||e.parseError!==null||e.pageSetup==null,Te=e=>e.editingMode==="viewing",Oo={scale:96/72,top:0,left:null,compactCardLeft:null},ko=16,Pe=300,To=12,te="\0compose",st=600,lt=8,Po=72,_o=64,Mo=480,Do=30,Vo=Object.freeze({placement:false});function _e(e,t){return e.kind!=="comment"?false:e.parentId!==void 0?t.has(e.parentId):e.parentRevisionId!==void 0?t.has(e.parentRevisionId):false}function Me(e){return new Set(e.map(t=>t.id))}function $(e){let t=e.target?.tagName;t==="INPUT"||t==="SELECT"||t==="TEXTAREA"||e.preventDefault();}function Lo(e){let t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?"?":t.slice(0,2).map(n=>n[0].toUpperCase()).join("")}var dt=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function $o(e){let t={},n=[],o=r=>{if(!r)return;let a=Array.isArray(r)?r:[r];for(let s of a){if(!vue.isVNode(s))continue;if(s.type===vue.Fragment){o(s.children);continue}let i=s.type.docxReviewPart;i?t[i]=s:n.push(s);}};return o(e),n.length>0&&(t.__extra=n),t}function T(e,t){return e.docxReviewPart=t,e}var Ht=Symbol("ReviewContext"),Ut=Symbol("ReviewItemContext"),Nr={items:[],activeKey:null,setActive:()=>false,accept:()=>false,reject:()=>false,resolve:()=>false,reopen:()=>false,commentResolutionDisabledReason:null,remove:()=>false,reply:()=>false,selectionAnchorY:null,comment:()=>false,paneOpen:true,setPaneOpen:()=>{},ready:false},Ir={t:void 0,cardClassName:void 0,readOnly:false,composeTop:null,review:Nr,allItems:[],authorSlots:new Map,authorInfo:new Map,draftAuthor:null,draftAuthorInfo:void 0,draftAuthorSlot:0,byId:new Map,measure:()=>{},beginDraft:()=>{},endDraft:()=>{},expandedResolvedKey:null,setExpandedResolvedKey:()=>{}};function _(){return vue.inject(Ht,vue.computed(()=>Ir))}var Sr=vue.computed(()=>null);function H(){return vue.inject(Ut,Sr)}function Er(e){let t=_();return vue.computed(()=>{let n=vue.toValue(e);return n===void 0?void 0:t.value.authorInfo.get(n)})}function F(){let e=_(),{t}=vue$1.useTranslation();return n=>e.value.t?.(n)??t(n)}function Ar(e){return [e.key,e.isActive?"active":"idle",e.readOnly?"readonly":"editable",e.kind==="comment"&&e.resolved?"resolved":"open",e.text,...e.replyIds].join("\0")}var ut=vue.defineComponent({name:"ReviewItemScope",props:{entry:{type:Object,required:true},measureKey:String,collapsed:Boolean,className:String,testId:String,style:{type:Object,default:void 0}},setup(e,{slots:t}){let n=_(),o=vue.shallowRef(e.entry);vue.watchEffect(()=>{let i=n.value.byId.get(e.entry.id)??e.entry;o.value={...i,replyIds:[...i.replyIds]};}),vue.provide(Ut,o);let r=null,a=null,s=i=>{let u=i instanceof HTMLElement?i:null,l=u&&e.measureKey?e.measureKey:null;r===u&&a===l||(a&&n.value.measure(null,a),r=u,a=l,r&&a&&n.value.measure(r,a));};return vue.onBeforeUnmount(()=>{s(null);}),()=>vue.h("div",{onVnodeMounted:i=>{s(i.el instanceof Element?i.el:null);},onVnodeUpdated:i=>{s(i.el instanceof Element?i.el:null);},onVnodeBeforeUnmount:()=>{s(null);},class:`docx-review__slot${e.className?` ${e.className}`:""}`,...e.testId?{"data-testid":e.testId}:{},style:e.style,...e.collapsed?{"data-collapsed":""}:{}},[vue.h(vue.Fragment,{key:Ar(o.value)},t.default?.())])}}),ct=vue.defineComponent({name:"ReviewReplyScope",props:{entry:{type:Object,required:true}},setup(e,{slots:t}){let n=_(),o=vue.shallowRef(e.entry);return vue.watchEffect(()=>{let r=n.value.byId.get(e.entry.id)??e.entry;o.value={...r,replyIds:[...r.replyIds]};}),vue.provide(Ut,o),()=>t.default?.()}});function jo(e){let t=vue.ref(new WeakMap),n=vue.ref(new Map),o=vue.ref(null),r=(a,s)=>{let i=n.value.get(s);if(!a){i&&(o.value?.unobserve(i),t.value.delete(i),n.value.delete(s));return}typeof ResizeObserver>"u"||(e(s,a.offsetHeight),o.value??=new ResizeObserver(u=>{for(let l of u){let d=t.value.get(l.target);d&&e(d,l.target.offsetHeight);}}),!(i===a&&t.value.get(a)===s)&&(i&&(o.value.unobserve(i),t.value.delete(i)),t.value.set(a,s),n.value.set(s,a),o.value.observe(a)));};return vue.onUnmounted(()=>{o.value?.disconnect(),n.value.clear();}),r}function qt(e,t){return e?.color??`var(--doc-review-author-${t%lt})`}function le(e,t,n){return e?{"--doc-review-author-current":qt(t,n)}:{}}function ye(e,t){return (e?.slot??t)%lt}function Yo(e,t,n,o,r){let a=new Map;for(let i of e)a.set(i.author,i);let s=[...t.map(i=>i.author),o?.getConfiguredAuthor()];for(let i of s){if(!i||a.has(i))continue;let u=n.get(i)??0,l=o?.getReviewAuthorStyle(i),d=l?.color??`var(--doc-review-author-${u%lt})`,c=r.get(i),m=c?.slot===u&&c.color===d&&c.style===l?c:{author:i,slot:u,color:d,...l?{style:l}:{}};r.set(i,m),a.set(i,m);}return a}var Y=e=>vue.h("svg",{viewBox:"0 -960 960 960",width:16,height:16,ariaHidden:true,focusable:false},[vue.h("path",{d:e,fill:"currentColor"})]),zo="M440-400h80v-120h120v-80H520v-120h-80v120H320v80h120v120ZM80-80v-720q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v480q0 33-23.5 56.5T800-240H240L80-80Zm126-240h594v-480H160v525l46-45Zm-46 0v-480 480Z",Go="M240-400h480v-80H240v80Zm0-120h480v-80H240v80Zm0-120h480v-80H240v80ZM880-80 720-240H160q-33 0-56.5-23.5T80-320v-480q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v720ZM160-320h594l46 45v-525H160v480Zm0 0v-480 480Z",kr="M880-80 720-240H160q-33 0-56.5-23.5T80-320v-480q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v720ZM160-320h594l46 45v-525H160v480Zm0 0v-480 480Z",Ve="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z",mt=()=>vue.h("span",{class:"docx-review__resolved-icon"},[vue.h("span",{class:"docx-review__resolved-comment"},[Y(kr)]),vue.h("span",{class:"docx-review__resolved-tick"},[Y(Ve)])]),Zo="M480-160q-134 0-227-93t-93-227q0-134 93-227t227-93q69 0 132 28.5T720-690v-110h80v280H520v-80h168q-32-56-87.5-88T480-720q-100 0-170 70t-70 170q0 100 70 170t170 70q77 0 139-44t87-116h84q-28 106-114 173t-196 67Z",Wo="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z",Jo="M280-120q-33 0-56.5-23.5T200-200v-520h-40v-80h200v-40h240v40h200v80h-40v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM360-280h80v-360h-80v360Zm160 0h80v-360h-80v360ZM280-720v520-520Z",Tr="M200-200h57l391-391-57-57-391 391v57Zm-80 80v-170l528-527q12-11 26.5-17t30.5-6q16 0 31 6t26 18l55 56q12 11 17.5 26t5.5 30q0 16-5.5 30.5T817-647L290-120H120Zm640-584-56-56 56 56Zm-141 85-28-29 57 57-29-28Z",Pr="M486-160q-76 0-135-45t-85-123l88-38q14 48 48.5 78t85.5 30q42 0 76-20t34-64q0-18-7-33t-19-27h112q5 14 7.5 28.5T694-341q0 86-61.5 133.5T486-160ZM80-520v-80h800v80H80Zm402-360q66 0 116 30t74 84l-88 38q-11-28-38.5-47T480-794q-42 0-72 19t-30 51q0 15 6 27t18 22H272q-6-13-9-27t-3-30q0-70 55-114t167-44Z",_r="M360-160q-83 0-141.5-58.5T160-360v-360q0-83 58.5-141.5T360-920q83 0 141.5 58.5T560-720v360q0 83-58.5 141.5T360-160Zm0-80q50 0 85-35t35-85v-360q0-50-35-85t-85-35q-50 0-85 35t-35 85v360q0 50 35 85t85 35Zm300 80q29 0 49.5-20.5T730-230q0-22-12.5-40T684-296l-64-32v-232l100 100q23 23 51.5 35.5T832-412v-80q-17 0-32-6.5T773-517L633-657q-12-12-27.5-17.5T573-680h-13v520h100ZM360-720Z",Mr="M580-360q-25 0-42.5-17.5T520-420v-160q0-25 17.5-42.5T580-640h160q25 0 42.5 17.5T800-580v260q0 66-47 113t-113 47v-80q33 0 56.5-23.5T720-320v-40H580Zm-360 0q-25 0-42.5-17.5T160-420v-160q0-25 17.5-42.5T220-640h160q25 0 42.5 17.5T440-580v260q0 66-47 113t-113 47v-80q33 0 56.5-23.5T360-320v-40H220Z";function Xo(e){if(e.kind==="comment")return Go;if(e.kind==="custom")return e.item.icon??Mr;switch(e.revisionKind){case "insert":case "moveTo":return Tr;case "delete":case "moveFrom":return Pr;case "format":return _r;default:return Go}}function Ft(e,t,n=1){if(e==="paragraphMark"){let o=n>1;return t==="delete"?o?"revisions.paragraphMarksDeleted":"revisions.paragraphMarkDeleted":t==="moveFrom"?o?"revisions.paragraphMarksMovedFrom":"revisions.paragraphMarkMovedFrom":t==="moveTo"?o?"revisions.paragraphMarksMovedTo":"revisions.paragraphMarkMovedTo":o?"revisions.paragraphMarksInserted":"revisions.paragraphMarkInserted"}switch(e){case "insert":return "review.inserted";case "delete":return "review.deleted";case "replace":return "review.replaced";case "moveFrom":return "review.movedFrom";case "moveTo":return "review.movedTo";case "format":return "revisions.runPropertiesChanged";default:return "review.structural"}}function Dr(e){return Ft(e.revisionKind,e.markDirection,e.ranges.length)}function Vr(e){return e.revisionKind==="paragraphMark"&&e.ranges.length>1?` (${e.ranges.length})`:""}function Qo(e,t){let n=`${t(Dr(e))}${Vr(e)}`;if(e.revisionKind!=="format")return n;let r=[...(e.formattingLanguages??[]).map(a=>{try{return new Intl.DisplayNames([t("_lang")],{type:"language"}).of(new Intl.Locale(a).minimize().toString())??a}catch{return a}}),...(e.formattingChanges??[]).map(a=>Lr(a,t))];return r.length?`${n}: ${r.join(", ")}`:n}function Lr(e,t){let{property:n,value:o}=e;if(o!==null&&(n==="bold"||n==="italic"||n==="strike"))return t(`revisions.formattingDetails.${o==="true"?n:{bold:"notBold",italic:"notItalic",strike:"notStrike"}[n]}`);let r=o??t("revisions.formattingDetails.default");return o!==null&&(["fontSize","leftIndent","rightIndent","firstLineIndent","hangingIndent","spaceBefore","spaceAfter"].includes(n)?r=`${o} ${t("revisions.formattingDetails.points")}`:/^(left|center|right|both|start|end|none|single|double|auto)$/.test(o)?r=t(`revisions.formattingDetails.${o}`):n==="color"&&/^[0-9a-f]{6}$/i.test(o)&&(r=`#${o.toUpperCase()}`)),`${t(`revisions.formattingDetails.${n}`)}: ${r}`}function Hr(e,t){return typeof t!="function"?e:typeof e!="function"?t:n=>{e(n),n.defaultPrevented||t(n);}}function Ur(e,t){let n=vue.mergeProps(e,t);for(let o of Object.keys(e))/^on[A-Z]/.test(o)?n[o]=Hr(t[o],e[o]):o==="class"?n[o]=[e[o],t[o]].filter(Boolean).join(" "):o==="style"&&(n[o]={...e[o],...t[o]});return n}function nn(e){return e==="Enter"||e===" "}function Br(e){return nn(e.key)?(e.preventDefault(),e.stopPropagation(),true):false}function tn(e){return e==="button"}function on(e,t){return e==="a"||t.href!=null}var Re=vue.defineComponent({name:"ReviewActionSlot",props:{engineDisabled:{type:Boolean,required:true},disabledReason:{type:String,default:null},slotProps:{type:Object,required:true}},setup(e,{slots:t}){return ()=>{let n=t.default?.()??[];if(n.length!==1)return null;let o=n[0];if(!o||typeof o!="object")return null;let r=o.props??{},a=Ur(e.slotProps,r);if(!e.engineDisabled){if(!tn(o.type)){let s={onClick:i=>{typeof r.onClick=="function"&&r.onClick(i),!i.defaultPrevented&&typeof e.slotProps.onClick=="function"&&e.slotProps.onClick(i),on(o.type,r)&&i.preventDefault();},onKeydown:i=>{typeof r.onKeydown=="function"&&r.onKeydown(i),nn(i.key)&&(!i.defaultPrevented&&typeof e.slotProps.onClick=="function"&&e.slotProps.onClick(i),on(o.type,r)&&i.preventDefault());}};a.onClick=s.onClick,a.onKeydown=s.onKeydown;}return vue.cloneVNode(o,a)}if(tn(o.type))a.disabled=true,delete a["aria-disabled"];else {delete a.disabled,a["aria-disabled"]=true,a["data-disabled"]="",a.tabIndex=-1,a.href=void 0,a.role===void 0&&(a.role="button");let s=a.onKeydown;a.onKeydown=i=>{Br(i)||typeof s=="function"&&s(i);};}return e.disabledReason&&(a.title=e.disabledReason),a.onClick=s=>{s.preventDefault(),s.stopPropagation();},vue.cloneVNode(o,a)}}});function sn(e){let t=T(vue.defineComponent({name:"ReviewResolve",props:{className:String,asChild:Boolean,hidden:Boolean,icon:{type:[Object,String],default:void 0}},setup(o,{slots:r}){let a=e.useRail(),s=e.useItem(),i=e.useLabel(),u=vue$1.useEditorState(Te);return ()=>{let l=s.value;if(o.hidden||!l||l.kind!=="comment"||l.resolved)return null;let d=a.value.review,c=i("comments.resolve"),m=u.value||d.commentResolutionDisabledReason!==null,p=m?i("editingMode.viewingHint"):null,R={type:"button",class:`docx-review__action${o.className?` ${o.className}`:""}`,"data-testid":"review-resolve","aria-label":c,title:p??c,disabled:m,onMousedown:$,onClick:y=>{y.stopPropagation(),!m&&d.resolve(l);}};return o.asChild?vue.h(Re,{engineDisabled:m,disabledReason:p,slotProps:R},r.default):vue.h("button",R,o.icon??r.default?.()??Y(Ve))}}}),"Resolve"),n=T(vue.defineComponent({name:"ReviewReopen",props:{className:String,asChild:Boolean,hidden:Boolean,icon:{type:[Object,String],default:void 0}},setup(o,{slots:r}){let a=e.useRail(),s=e.useItem(),i=e.useLabel(),u=vue$1.useEditorState(Te);return ()=>{let l=s.value;if(o.hidden||!l||l.kind!=="comment"||!l.resolved)return null;let d=a.value.review,c=i("comments.reopen"),m=u.value||d.commentResolutionDisabledReason!==null,p=m?i("editingMode.viewingHint"):null,R={type:"button",class:`docx-review__action${o.className?` ${o.className}`:""}`,"data-testid":"review-reopen","aria-label":c,title:p??c,disabled:m,onMousedown:$,onClick:y=>{y.stopPropagation(),!m&&d.reopen(l);}};return o.asChild?vue.h(Re,{engineDisabled:m,disabledReason:p,slotProps:R},r.default):vue.h("button",R,o.icon??r.default?.()??Y(Zo))}}}),"Reopen");return {ReviewResolve:t,ReviewReopen:n}}var ln=new WeakMap;function Le(e){let t=vue.getCurrentInstance();if(!t)throw new Error("useReviewStableId must run during component setup");let n=t.appContext,o=ln.get(n)??0;return ln.set(n,o+1),`docx-review-${o}-${e}`}function cn(e){let t=T(vue.defineComponent({name:"ReviewDraft",props:{top:{type:Number,default:0},left:{type:Number,default:null},className:String,hidden:Boolean},setup(o){let r=e.useRail(),a=e.useLabel(),s=vue.ref(""),i=vue.ref(false),u=Le("draft"),l=null;vue.onMounted(()=>{let c=vue.getCurrentInstance()?.proxy?.$el;if(c instanceof HTMLElement&&(l=r.value.measure,l(c,te)),r.value.readOnly)return;(c instanceof HTMLElement?c.querySelector('[data-testid="review-draft-input"]'):null)?.focus({preventScroll:true});}),vue.onBeforeUnmount(()=>{l?.(null,te);});let d=()=>{let{review:c,endDraft:m,readOnly:p}=r.value;if(p||s.value.trim().length===0)return;let R=c.comment(s.value.trim());i.value=!R,R&&(s.value="",m());};return ()=>{if(o.hidden)return null;let{readOnly:c,draftAuthor:m,draftAuthorInfo:p,draftAuthorSlot:R}=r.value;return vue.h("div",{class:`docx-review__slot${o.left===null?"":" docx-review__slot--compact"}${o.className?` ${o.className}`:""}`,style:{position:"absolute",top:`${o.top}px`,...o.left===null?{}:{left:`${o.left}px`,width:`${Pe}px`}}},[vue.h("div",{class:"docx-review__card","data-testid":"review-draft","data-draft":"",...m?{"data-review-author":m,"data-review-author-slot":R}:{},style:le(m??void 0,p,R)},[vue.h("form",{class:"docx-review__reply-box",onSubmit:y=>{y.preventDefault(),d();}},[vue.h("label",{class:"docx-editor-sr-only",for:u},a("comments.addComment")),vue.h("input",{id:u,"data-testid":"review-draft-input",class:"docx-review__input",value:s.value,placeholder:a("comments.addComment"),readonly:c,...i.value?{"aria-invalid":true}:{},onInput:y=>{c||(i.value=false,s.value=y.target.value);},onKeydown:y=>{if(y.key==="Escape"){y.preventDefault(),r.value.endDraft();return}c||y.key!=="Enter"||(y.preventDefault(),d());}}),vue.h("div",{class:"docx-review__reply-actions"},[vue.h("button",{type:"button","data-testid":"review-draft-cancel",class:"docx-review__text-button",onMousedown:$,onClick:()=>r.value.endDraft()},a("common.cancel")),vue.h("button",{type:"submit","data-testid":"review-draft-submit",class:"docx-review__submit",disabled:c||s.value.trim().length===0,title:c?a("editingMode.viewingHint"):void 0},a("common.comment"))]),i.value?vue.h("span",{class:"docx-review__refused",role:"alert"},a("review.commentRefused")):null])])])}}}),"Draft"),n=T(vue.defineComponent({name:"ReviewReply",props:{className:String,hidden:Boolean},setup(o,{slots:r}){let a=e.useRail(),s=e.useItem(),i=e.useLabel(),u=vue.ref(""),l=vue.ref(false),d=Le("reply"),c=pe(),m=vue$1.useDocxEditor(),p=R=>{let y=s.value,{review:x,readOnly:I,byId:w}=a.value,E=R?.querySelector('[data-testid="review-reply-input"]'),f=(E?.value??u.value).trim(),g=y?w.get(y.id)??y:null;if(!g||I||f.length===0)return;let S=m.value?.replyToReviewItem(g.key,f).ok??x.reply(g,f);l.value=!S,S&&(u.value="",E&&(E.value=""));};return ()=>{c.value;let R=s.value;if(o.hidden||!R||!R.isActive||R.kind==="comment"&&R.resolved)return null;let{review:y,readOnly:x}=a.value,I=r.default?.();return I?.length?I:jsxRuntime.jsxs("div",{class:`docx-review__reply-box${o.className?` ${o.className}`:""}`,children:[jsxRuntime.jsx("label",{class:"docx-editor-sr-only",for:d,children:i("comments.replyPlaceholder")}),jsxRuntime.jsx("input",{id:d,"data-testid":"review-reply-input",class:"docx-review__input",placeholder:i("comments.replyPlaceholder"),readonly:x,...l.value?{"aria-invalid":true,"data-refused":""}:{},onInput:w=>{x||(l.value=false,u.value=w.target.value);},onClick:w=>w.stopPropagation(),onKeydown:w=>{x||w.key!=="Enter"||(w.preventDefault(),p(w.currentTarget.closest(".docx-review__reply-box")));}}),jsxRuntime.jsxs("div",{class:"docx-review__reply-actions",children:[jsxRuntime.jsx("button",{type:"button","data-testid":"review-reply-cancel",class:"docx-review__text-button",onMousedown:$,onClick:w=>{w.stopPropagation(),u.value="",l.value=false,y.setActive(null);},children:i("common.cancel")}),jsxRuntime.jsx("button",{type:"button","data-testid":"review-reply-submit",class:"docx-review__submit",disabled:x||u.value.trim().length===0,title:x?i("editingMode.viewingHint"):void 0,onClick:w=>{w.preventDefault(),w.stopPropagation(),p(w.currentTarget.closest(".docx-review__reply-box"));},children:i("review.reply")})]}),l.value?jsxRuntime.jsx("span",{class:"docx-review__refused",role:"alert","data-testid":"review-reply-refused",children:i("review.replyRefused")}):null]})}}}),"Reply");return {ReviewDraft:t,ReviewReply:n}}var{ReviewResolve:Yt,ReviewReopen:Gt}=sn({useRail:_,useItem:H,useLabel:F}),{ReviewDraft:zt,ReviewReply:Zt}=cn({useRail:_,useItem:H,useLabel:F});var pt=T(vue.defineComponent({name:"ReviewEmpty",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=F();return ()=>e.hidden?null:jsxRuntime.jsx("div",{class:`docx-review__empty${e.className?` ${e.className}`:""}`,"data-testid":"review-empty",children:t.default?.()??n("review.empty")})}}),"Empty"),we=T(vue.defineComponent({name:"ReviewAvatar",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=H(),o=_();return ()=>{let r=n.value;if(e.hidden||!r)return null;let a=t.default?.();if(a===void 0&&!r.initials)return null;let s={class:`docx-review__avatar${e.className?` ${e.className}`:""}`,"data-testid":"review-avatar","aria-hidden":true};if(e.asChild)return jsxRuntime.jsx(vue$1.Slot,{...s,children:a});let i=o.value.authorInfo.get(r.author)?.style?.avatarUrl,u=a??(i?jsxRuntime.jsx("img",{class:"docx-review__avatar-img",src:i,alt:"",loading:"lazy",decoding:"async",referrerpolicy:"no-referrer"}):void 0)??r.initials;return jsxRuntime.jsx("span",{...s,children:u})}}}),"Avatar"),ge=T(vue.defineComponent({name:"ReviewAuthor",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=H(),o=F();return ()=>{let r=n.value;if(e.hidden||!r)return null;let a=r.author||o("comments.unknown"),s={class:`docx-review__author${e.className?` ${e.className}`:""}`,"data-testid":"review-author"};return e.asChild?jsxRuntime.jsx(vue$1.Slot,{...s,children:t.default?.()}):jsxRuntime.jsx("span",{...s,children:t.default?.()??a})}}}),"Author"),he=T(vue.defineComponent({name:"ReviewTime",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=H();return ()=>{let o=n.value;if(e.hidden||!o)return null;let r=o.date;if(!r)return null;let a=new Date(r);if(Number.isNaN(a.getTime()))return null;let s={class:`docx-review__time${e.className?` ${e.className}`:""}`,"data-testid":"review-time",datetime:r};return e.asChild?jsxRuntime.jsx(vue$1.Slot,{...s,children:t.default?.()}):jsxRuntime.jsx("time",{...s,children:t.default?.()??dt.format(a)})}}}),"Time"),Ce=T(vue.defineComponent({name:"ReviewSummary",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=H(),o=F();return ()=>{let r=n.value;if(e.hidden||!r)return null;let a=r.text,s=r.kind!=="revision"?null:Qo(r.item,o),i=r.kind==="revision"&&r.revisionKind==="replace",u={class:`docx-review__summary${e.className?` ${e.className}`:""}`,"data-testid":"review-summary","data-review-selectable":""};if(e.asChild)return jsxRuntime.jsx(vue$1.Slot,{...u,children:t.default?.()});let l=t.default?.();return l?jsxRuntime.jsx("div",{...u,children:l}):jsxRuntime.jsx("div",{...u,children:i?jsxRuntime.jsxs("span",{class:"docx-review__text",children:[o("review.replaced")," ",jsxRuntime.jsxs("span",{class:"docx-review__removed",children:['"',r.replacedText,'"']})," ",o("review.replacedWith")," ",jsxRuntime.jsxs("span",{class:"docx-review__added",children:['"',a,'"']})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[s?jsxRuntime.jsx("span",{class:"docx-review__label","data-kind":r.kind==="revision"?r.revisionKind:"revision",children:s}):null,a?jsxRuntime.jsx("span",{class:"docx-review__text",children:a}):null]})})}}}),"Summary");function fn(e,t,n,o,r,a,s){return T(vue.defineComponent({name:e,props:{className:String,asChild:Boolean,hidden:Boolean,icon:{type:[Object,String],default:void 0}},setup(i,{slots:u}){let l=_(),d=H(),c=F();return ()=>{let m=d.value,{readOnly:p,review:R}=l.value;if(i.hidden||!m||!s(m))return null;let y=c(o),x=p?c("editingMode.viewingHint"):null,I={type:"button",class:`docx-review__action${i.className?` ${i.className}`:""}`,"data-testid":n,"aria-label":y,title:x??y,disabled:p,onMousedown:$,onClick:w=>{w.stopPropagation(),!p&&a(R,m);}};return i.asChild?jsxRuntime.jsx(Re,{engineDisabled:p,disabledReason:x,slotProps:I,children:u.default?.()}):jsxRuntime.jsx("button",{...I,children:i.icon??u.default?.()??Y(r)})}}}),t)}var Ue=fn("ReviewAccept","Accept","review-accept","review.accept",Ve,(e,t)=>e.accept(t),e=>e.kind==="revision"&&!e.readOnly),Be=fn("ReviewReject","Reject","review-reject","review.reject",Wo,(e,t)=>e.reject(t),e=>e.kind==="revision"&&!e.readOnly),yt=T(vue.defineComponent({name:"ReviewDelete",props:{className:String,asChild:Boolean,hidden:Boolean,icon:{type:[Object,String],default:void 0}},setup(e,{slots:t}){let n=_(),o=H(),{t:r}=vue$1.useTranslation();return ()=>{let a=o.value,{readOnly:s,review:i}=n.value;if(e.hidden||!a||a.kind==="custom"||a.kind==="revision"&&a.readOnly)return null;let u=a.kind==="comment"?r("review.deleteComment"):r("review.discardChange"),l=s?r("editingMode.viewingHint"):null,d={type:"button",class:`docx-review__action${e.className?` ${e.className}`:""}`,"data-testid":"review-delete","aria-label":u,title:l??u,disabled:s,onMousedown:$,onClick:c=>{c.stopPropagation(),!s&&i.remove(a);}};return e.asChild?jsxRuntime.jsx(Re,{engineDisabled:s,disabledReason:l,slotProps:d,children:t.default?.()}):jsxRuntime.jsx("button",{...d,children:e.icon??t.default?.()??Y(Jo)})}}}),"Delete"),Wt=T(vue.defineComponent({name:"ReviewReplies",props:{className:String,hidden:Boolean},setup(e){let t=_(),n=H();return ()=>{let o=n.value;if(e.hidden||!o||o.kind==="custom")return null;let a=(t.value.byId.get(o.id)??o).replyIds.map(s=>t.value.byId.get(s)).filter(s=>s!==void 0);return a.length===0?null:jsxRuntime.jsx("ol",{class:`docx-review__replies${e.className?` ${e.className}`:""}`,children:a.map(s=>jsxRuntime.jsx(ct,{entry:s,children:jsxRuntime.jsxs("li",{class:"docx-review__reply","data-testid":"review-reply",children:[jsxRuntime.jsxs("div",{class:"docx-review__head",children:[jsxRuntime.jsx(we,{}),jsxRuntime.jsxs("div",{class:"docx-review__meta",children:[jsxRuntime.jsx(ge,{}),jsxRuntime.jsx(he,{})]}),jsxRuntime.jsx("div",{class:"docx-review__actions",children:jsxRuntime.jsx(yt,{})})]}),jsxRuntime.jsx(Ce,{})]})},s.key))})}}}),"Replies"),mn=vue.defineComponent({name:"ReviewCardPreset",setup(e,{slots:t}){let n=H(),o=vue.computed(()=>$o(t.default?.()));return ()=>{let r=n.value;if(!r)return null;let a=(i,u)=>i in o.value?o.value[i]:u;if(r.kind==="custom"&&r.item.kind==="custom"){let i=r.item;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{class:"docx-review__head",children:[a("Avatar",null),jsxRuntime.jsx("div",{class:"docx-review__meta",children:a("Author",jsxRuntime.jsx("span",{class:"docx-review__author","data-testid":"review-custom-title",children:i.title}))})]}),a("Summary",i.detail?jsxRuntime.jsx("div",{class:"docx-review__summary","data-testid":"review-summary","data-review-selectable":"",children:jsxRuntime.jsx("span",{class:"docx-review__text",children:i.detail})}):null),o.value.__extra]})}let s=r.kind==="revision"&&!r.readOnly;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{class:"docx-review__head",children:[a("Avatar",jsxRuntime.jsx(we,{})),jsxRuntime.jsxs("div",{class:"docx-review__meta",children:[a("Author",jsxRuntime.jsx(ge,{})),a("Time",jsxRuntime.jsx(he,{}))]}),s||r.kind==="comment"?jsxRuntime.jsxs("div",{class:"docx-review__actions",children:[a("Accept",jsxRuntime.jsx(Ue,{})),a("Reject",jsxRuntime.jsx(Be,{})),a("Resolve",jsxRuntime.jsx(Yt,{})),a("Reopen",jsxRuntime.jsx(Gt,{})),a("Delete",r.kind==="comment"?jsxRuntime.jsx(yt,{}):null)]}):null]}),a("Summary",jsxRuntime.jsx(Ce,{})),a("Replies",jsxRuntime.jsx(Wt,{})),a("Reply",jsxRuntime.jsx(Zt,{})),o.value.__extra]})}}}),qe=T(vue.defineComponent({name:"ReviewCard",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=_(),o=H(),r=Le("card"),a=F(),s=null,i=l=>{s=l.el instanceof HTMLDetailsElement?l.el:s;},u=l=>{s?.open&&l.target instanceof Node&&!s.contains(l.target)&&(n.value.setExpandedResolvedKey(null),n.value.review.setActive(null),s.open=false);};return vue.onMounted(()=>document.addEventListener("pointerdown",u,true)),vue.onBeforeUnmount(()=>document.removeEventListener("pointerdown",u,true)),()=>{let l=o.value;if(e.hidden||!l)return null;let{review:d,authorSlots:c,authorInfo:m,expandedResolvedKey:p,setExpandedResolvedKey:R}=n.value,y=c.get(l.author)??0,x=!e.asChild&&l.kind==="comment"&&l.resolved,I={class:`docx-review__card${e.className?` ${e.className}`:""}`,"data-testid":"review-card",...x?{}:{"aria-labelledby":`${r}-author ${r}-summary`},"data-kind":l.kind==="revision"?l.revisionKind??"revision":l.kind,...l.author?{"data-review-author":l.author,"data-review-author-slot":ye(m.get(l.author),y)}:{},...l.kind==="custom"&&l.item.kind==="custom"?{"data-node-name":l.item.name}:{},...l.isActive?{"data-active":""}:{},...l.kind==="comment"&&l.resolved?{"data-resolved":""}:{},...x?{"data-resolved-miniature":""}:{},style:le(l.author,m.get(l.author),y),...x?{}:{tabIndex:0,role:"button"},id:r,...x?{}:{onMousedown:w=>{w.target?.closest("[data-review-selectable]")||w.currentTarget.focus({preventScroll:true});},onClick:w=>{w.target?.closest("button, input, textarea, .docx-review__reply-box, [data-review-selectable]")||l.isActive||d.setActive(l.key);},onKeydown:w=>{w.target===w.currentTarget&&(w.key!=="Enter"&&w.key!==" "||(w.preventDefault(),d.setActive(l.key)));}}};return e.asChild?jsxRuntime.jsx(vue$1.Slot,{...I,children:t.default?.()}):x?vue.h("details",{...I,open:p===l.key,onVnodeMounted:i,onVnodeUpdated:i,onVnodeBeforeUnmount:()=>{s=null;},onToggle:w=>{let E=w.currentTarget.open;R(E?l.key:null),d.setActive(E?l.key:null);}},[vue.h("summary",{class:"docx-review__resolved-toggle","aria-label":a("review.showResolvedComment")},[vue.h("span",{class:"docx-review__resolved-status"},a("review.resolved")),mt()]),vue.h(mn,null,{default:()=>t.default?.()})]):jsxRuntime.jsx("div",{...I,children:vue.h(mn,null,{default:()=>t.default?.()})})}}}),"Card");function Jt(e,t,n){let o=t.getBoundingClientRect(),r=e.getBoundingClientRect(),a=e.ownerDocument.defaultView?.innerHeight??1/0,s=Number(e.dataset.reviewStart??e.dataset.start),i=Number(e.dataset.reviewEnd??e.dataset.end);return {revisionId:e.dataset.revisionId,...e.dataset.formattingKind?{formattingKind:e.dataset.formattingKind}:{},author:e.dataset.reviewAuthor??"",...e.dataset.revisionDate!==void 0?{date:e.dataset.revisionDate}:{},...e.dataset.revisionKind!==void 0?{kind:e.dataset.revisionKind}:{},structuralSite:n,...e.dataset.paragraphId!==void 0?{paragraphId:e.dataset.paragraphId}:{},...Number.isFinite(s)?{start:s}:{},...Number.isFinite(i)?{end:i}:{},left:r.left-o.left,top:r.top-o.top,bottom:r.bottom-o.top,above:r.bottom+220>a}}function Xr(e){return e==="format"||e==="structural"}function vn(e,t,n){return e.kind!=="revision"||!Xr(e.revisionKind)?false:!(n&&t.some(o=>o.id===e.id))}function pn(e,t){if(t.kind!=="revision"||t.item.kind!=="revision")return null;let n=t.item.addresses;if(n.length===0)return null;let o=new Set(n.map(a=>a.id)),r=t.item.formattingKind;for(let a of e.querySelectorAll("[data-revision-id]")){if(!(a instanceof HTMLElement))continue;let s=a.dataset.revisionId;if(!s||!o.has(s)||!n.some(l=>l.id===s&&l.author===(a.dataset.reviewAuthor??"")&&(l.date??"")===(a.dataset.revisionDate??"")))continue;let u=a.classList.contains("docx-table-row--revision");if(t.revisionKind==="structural"&&u||t.revisionKind==="format"&&a.dataset.revisionKind==="format"&&a.dataset.formattingKind===r)return a}return null}function yn(e,t){let n=null,o=false,r=null,a=false,s=null,i=false;for(let u of t)if(!(u.kind!=="revision"||u.item.kind!=="revision")&&!(e.formattingKind&&u.item.formattingKind!==e.formattingKind)){for(let l of u.item.addresses)if(l.id===e.revisionId){if(l.author===e.author){if(l.date===e.date)return u;n===null?n=u:n!==u&&(o=true);}r===null?r=u:r!==u&&(a=true);}if(!(e.paragraphId===void 0||e.start===void 0||e.end===void 0||u.revisionKind!=="format"&&u.revisionKind!=="structural")){for(let l of u.item.ranges)if(l.start.paragraphId===e.paragraphId&&l.start.offset<e.end&&l.end.offset>e.start){s===null?s=u:s!==u&&(i=true);break}}}return n!==null&&!o?n:r!==null&&!a?r:s!==null&&!i?s:null}var Xt=T(vue.defineComponent({name:"ReviewList",props:{stack:{type:Boolean,default:true},positions:{type:Object,default:void 0},collapsed:{type:Object,default:void 0},scale:{type:Number,default:1},offset:{type:Number,default:0},window:{type:Object,default:null},className:String,hidden:Boolean},setup(e,{slots:t}){let n=_();return ()=>{if(e.hidden)return null;let{review:o,cardClassName:r}=n.value,a=t.default?.()??[],s=t.item,i=s?null:ke(a,"list"),u=Me(o.items),l=o.items.filter(d=>!_e(d,u));return l.length===0?s?null:i?.parts.Empty??jsxRuntime.jsx(pt,{}):vue.h("div",{class:`docx-review__list${e.className?` ${e.className}`:""}`},l.map(d=>{let c=e.stack?e.positions?.get(d.key)??d.anchorY:d.anchorY,m=c==null?null:e.offset+c*e.scale;if(m!==null&&e.window&&(m<e.window.top||m>e.window.bottom))return null;let p=m===null?{}:{position:"absolute",top:`${m}px`};return vue.h(ut,{key:d.key,entry:d,measureKey:d.key,collapsed:e.collapsed?.has(d.key),style:p},()=>s?s({item:d}):i?.parts.Card?it(i.parts.Card,r):vue.h(qe,r?{className:r}:{},()=>i?.rest))}))}}}),"List"),Qt=T(vue.defineComponent({name:"ReviewMarkers",props:{scale:{type:Number,default:1},offset:{type:Number,default:0},window:{type:Object,default:null},className:String,hidden:Boolean,icon:{type:[Object,Function],default:void 0}},setup(e){let t=_(),n=F(),o=vue.computed(()=>{let{review:r}=t.value,a=Me(r.items),s=r.items.filter(l=>!_e(l,a)),i=new Map,u=Number.NEGATIVE_INFINITY;for(let l of s){if(l.anchorY===null)continue;let d=Math.max(e.offset+l.anchorY*e.scale,u);i.set(l.key,d),u=d+Do;}return {roots:s,stackedTops:i}});return ()=>{if(e.hidden)return null;let{review:r,authorSlots:a,authorInfo:s,setExpandedResolvedKey:i}=t.value,{roots:u,stackedTops:l}=o.value;return jsxRuntime.jsx("div",{class:`docx-review__markers${e.className?` ${e.className}`:""}`,children:u.map(d=>{let c=l.get(d.key);return c===void 0||e.window&&(c<e.window.top||c>e.window.bottom)?null:jsxRuntime.jsx("button",{type:"button",class:"docx-review__marker","data-testid":"review-marker","data-kind":d.kind==="revision"?d.revisionKind:d.kind,...d.author?{"data-review-author":d.author,"data-review-author-slot":ye(s.get(d.author),a.get(d.author)??0)}:{},style:{position:"absolute",top:`${c}px`,...d.author?{"--doc-review-author-current":qt(s.get(d.author),a.get(d.author)??0)}:{}},title:d.author?`${d.author}: ${d.text}`:d.text,"aria-label":`${n("review.showPane")}: ${d.author?`${d.author}. `:""}${d.text}`,onMousedown:$,onClick:()=>{d.kind==="comment"&&d.resolved&&i(d.key),r.setPaneOpen(true),r.setActive(d.key);},children:(typeof e.icon=="function"?e.icon(d):e.icon)??(d.kind==="comment"&&d.resolved?mt():Y(Xo(d)))},d.key)})})}}}),"Markers"),eo=T(vue.defineComponent({name:"ReviewAddComment",props:{top:{type:Number,default:null},drafting:{type:Boolean,default:false},className:String,hidden:Boolean},setup(e,{slots:t}){let n=_(),o=F();return ()=>{let{beginDraft:r,composeTop:a,readOnly:s}=n.value;if(e.hidden||e.drafting||a===null||s)return null;let i={type:"button",class:`docx-review__add${e.className?` ${e.className}`:""}`,"data-testid":"review-add-comment",style:{position:"absolute",top:`${a}px`},"aria-label":o("common.comment"),title:o("common.comment"),onMousedown:$,onClick:r},u=t.default?.();return u?.length?vue.h(vue$1.Slot,i,()=>u):vue.h("button",i,Y(zo))}}}),"AddComment"),na=vue.defineComponent({name:"BalloonTime",props:{raw:{type:String,required:true}},setup(e){return ()=>{let t=new Date(e.raw);return Number.isNaN(t.getTime())?null:jsxRuntime.jsx("time",{class:"docx-review__time",datetime:e.raw,children:dt.format(t)})}}}),to=T(vue.defineComponent({name:"ReviewBalloon",props:{className:String,hidden:Boolean},setup(e){let t=vue.getCurrentInstance(),n=_(),o=F(),r=vue.ref(null),a=vue.ref(null),s=vue$1.useEditorState(y=>y.reviewDisplayMode??"all-markup");vue.watch(s,()=>{a.value=null,r.value=null;});let i=vue.ref(false),u=vue.ref(false);vue.watch(r,y=>{i.value=y!==null;});let l;vue.onMounted(()=>{let y=vue.getCurrentInstance()?.proxy?.$el,x=y?.closest(".docx-review"),I=x?.closest(".docx-editor__scroll-container")??x?.offsetParent;if(!y||!x||!I)return;let w=(f,g)=>{a.value=null,r.value=Jt(f,x,g),t?.proxy?.$forceUpdate();},E=f=>{let g=f.target;if(!(g instanceof Element)||y.contains(g))return;let S=g.closest("[data-revision-id]");if(S instanceof HTMLElement&&I.contains(S)){let P=S.classList.contains("docx-table-row--revision");if(S.dataset.revisionKind==="format"||P){w(S,P);return}}i.value&&(a.value=null,r.value=null,t?.proxy?.$forceUpdate());};I.addEventListener("pointerdown",E,true),I.addEventListener("mousedown",E,true),l=()=>{I.removeEventListener("pointerdown",E,true),I.removeEventListener("mousedown",E,true);};}),vue.onUnmounted(()=>l?.());let d=vue.computed(()=>n.value.allItems.find(y=>y.isActive)??null),c=vue.computed(()=>d.value?.key??null),m=vue.computed(()=>d.value!==null&&vn(d.value,n.value.review.items,n.value.review.paneOpen));vue.watch([c,m],([y,x],I,w)=>{let E=d.value,g=t?.proxy?.$el?.closest(".docx-review"),S=g?.closest(".docx-editor__scroll-container")??g?.offsetParent;if(!y||!E){if(a.value===null)return;a.value=null,r.value=null,t?.proxy?.$forceUpdate();return}if(!x){a.value=null,r.value=null,t?.proxy?.$forceUpdate();return}if(!g||!S)return;a.value=E.key,r.value=null;let P=false,G=requestAnimationFrame(()=>{if(P)return;let K=pn(S,E);if(!K){r.value=null,t?.proxy?.$forceUpdate();return}r.value=Jt(K,g,K.classList.contains("docx-table-row--revision")),t?.proxy?.$forceUpdate();});w(()=>{P=true,cancelAnimationFrame(G);});},{flush:"post"});let p=vue.computed(()=>{let y=r.value;return y?yn(y,n.value.allItems):null}),R=vue.computed(()=>{let y=p.value;return y&&(y.revisionKind==="format"||y.revisionKind==="structural")?y:null});return vue.watch(R,y=>{if(y){u.value=true;return}u.value&&(u.value=false,r.value=null);}),()=>{if(e.hidden)return null;let{review:y,authorSlots:x,authorInfo:I}=n.value,w=r.value,E=w?.kind==="format"?"format":"structural",f=R.value,g=w===null||s.value!=="all-markup"||f&&y.items.some(S=>S.id===f.id)&&y.paneOpen?null:vue.h("div",{class:"docx-review__balloon","data-testid":"review-balloon",style:{left:`${w.left}px`,top:`${w.above?w.top-6:w.bottom+6}px`,transform:w.above?"translateY(-100%)":void 0},onMousedown:$},f?vue.h(ct,{entry:f},()=>vue.h("div",{class:"docx-review__card","data-testid":"review-balloon-card","data-kind":f.revisionKind??"revision",...f.author?{"data-review-author":f.author,"data-review-author-slot":ye(I.get(f.author),x.get(f.author)??0)}:{},style:le(f.author,I.get(f.author),x.get(f.author)??0),onClick:()=>y.setActive(f.key)},[vue.h("div",{class:"docx-review__head"},[vue.h(we),vue.h("div",{class:"docx-review__meta"},[vue.h(ge),vue.h(he)]),f.kind==="revision"&&!f.readOnly?vue.h("div",{class:"docx-review__actions"},[vue.h(Ue),vue.h(Be)]):null]),vue.h(Ce)])):vue.h("div",{class:"docx-review__card","data-testid":"review-balloon-card","data-kind":E,...w.author?{"data-review-author":w.author,"data-review-author-slot":ye(I.get(w.author),x.get(w.author)??0)}:{},style:le(w.author,I.get(w.author),x.get(w.author)??0)},[vue.h("div",{class:"docx-review__head"},[vue.h("span",{class:"docx-review__avatar","aria-hidden":true},Lo(w.author)),vue.h("div",{class:"docx-review__meta"},[vue.h("span",{class:"docx-review__author"},w.author||o("comments.unknown")),w.date?vue.h(na,{raw:w.date}):null])]),vue.h("div",{class:"docx-review__summary"},[vue.h("span",{class:"docx-review__label","data-kind":E},o(Ft(E)))])]));return vue.h("div",{class:`docx-review__balloon-root${e.className?` ${e.className}`:""}`},g===null?void 0:[g])}}}),"Balloon");function je(e,t,n){if(!(e in n))return t;let o=n[e];return !vue.isVNode(o)||!vue.isVNode(t)?o:vue.cloneVNode(o,vue.mergeProps(t.props??{},o.props??{}))}var ya=vue.defineComponent({name:"ReviewDraftMount",props:{top:{type:Number,required:true},left:{type:Number,default:null}},setup(e){return ()=>vue.h(zt,{top:e.top,left:e.left})}});function Ra(e,t){return {items:t,activeKey:e.activeKey.value,setActive:e.setActive,accept:e.accept,reject:e.reject,resolve:e.resolve,reopen:e.reopen,commentResolutionDisabledReason:e.commentResolutionDisabledReason.value,remove:e.remove,reply:e.reply,selectionAnchorY:e.selectionAnchorY.value,comment:e.comment,paneOpen:e.paneOpen.value,setPaneOpen:e.setPaneOpen,ready:e.ready.value}}var wa=vue.defineComponent({name:"DocxEditorReview",props:{className:String,asChild:Boolean,hidden:Boolean,t:{type:Function,default:void 0},card:{type:Object,default:void 0},furniture:{type:[Object,Array],default:void 0},preset:{type:Boolean,default:true},stack:{type:Boolean,default:true},gap:{type:Number,default:8},filter:{type:Function,default:void 0},structural:{type:Boolean,default:false},formatting:{type:Boolean,default:false}},setup(e,{slots:t}){let n=vue.getCurrentInstance(),o=vue$1.useDocxEditor(),r=vue$1.useEditorState(Ao),a=vue$1.useEditorState(Te),s=pe(),i=vue.computed(()=>{let v=[];return e.structural||v.push("structural"),e.formatting||v.push("format"),v.length>0?v:void 0}),u=vue.computed(()=>i.value?{excludeRevisionKinds:i.value}:void 0);vue.watch([o,i],()=>{o.value?.setReviewActivationExclusions(i.value??null);},{immediate:true}),vue.onUnmounted(()=>{o.value?.setReviewActivationExclusions(null);}),Io(s);let l=Lt(Vo,s),d=Lt(()=>u.value,s),{t:c}=vue$1.useTranslation(),m=(v,h)=>e.t?.(v,h)??c(v,h),p=vue.shallowRef(null),R=vue.inject(vue$1.ReviewRailContext,vue.shallowRef({mounted:0,register:()=>()=>{},registerCommentDraft:()=>()=>{},requestCommentDraft:()=>false})),y=vue.ref(false),x,I=()=>{if(!y.value||e.hidden){x?.(),x=void 0;return}x??=R.value.register();};vue.onMounted(()=>{y.value=true,I();}),vue.watch(()=>e.hidden,I);let w=vue.computed(()=>d.paneOpen.value),E=vue$1.useReviewGutter(),f=vue.ref(null),g=vue.computed(()=>w.value&&(f.value??E.value.inlineEnd)>0&&(f.value??E.value.inlineEnd)<vue$1.REVIEW_PANE_GUTTER),S=vue.computed(()=>w.value&&!g.value),P=vue.computed(()=>e.filter?d.items.value.filter(v=>e.filter(v)):d.items.value),G=vue.ref(null);vue.watch(P,v=>{let h=G.value;h!==null&&!v.some(C=>C.key===h&&C.kind==="comment"&&C.resolved)&&(G.value=null);},{flush:"sync"});let K=vue$1.useEditorState(()=>o.value?.getConfiguredAuthor()??null),ne=vue.computed(()=>{let v=new Map;for(let h of P.value)h.author&&!v.has(h.author)&&v.set(h.author,v.size);return K.value&&!v.has(K.value)&&v.set(K.value,v.size),v}),Ot=vue$1.useReviewAuthors(),kt=new Map,Je=vue.computed(()=>Yo(Ot.value,P.value,ne.value,o.value,kt)),Ie=vue.computed(()=>{let v=new Map;for(let h of l.items.value)v.set(h.id,h);return v}),Xe=vue.ref(new Map),Dn=jo((v,h)=>{if(h<=0||Xe.value.get(v)===h)return;let C=new Map(Xe.value);C.set(v,h),Xe.value=C;}),M=vue.ref(Oo),Se;vue.watch([o,P,r,()=>e.hidden,p,g],()=>{Se?.(),Se=void 0;let v=p.value,h=o.value;if(!h||!v||r.value||e.hidden)return;let C=v.offsetParent,O=C?.querySelector(".docx-paginated-surface")??null,N=()=>{if(C){let ve=Number.parseFloat(getComputedStyle(C).getPropertyValue("--docx-review-gutter"));f.value=Number.isFinite(ve)?ve:null;}else f.value=null;let L=O&&C?O.getBoundingClientRect():null,ee=L&&C?C.getBoundingClientRect():null,me=L&&ee&&C?L.right-ee.left-C.clientLeft+C.scrollLeft+ko:null,ae={scale:h.getRenderScale(),top:L&&ee&&C?L.top-ee.top-C.clientTop+C.scrollTop:0,left:me,compactCardLeft:me===null||!C?null:C.scrollLeft+C.clientWidth-me-Pe-To},fe=M.value;(fe.scale!==ae.scale||fe.top!==ae.top||fe.left!==ae.left||fe.compactCardLeft!==ae.compactCardLeft)&&(M.value=ae);};N();let k=new ResizeObserver(N);C&&k.observe(C),O&&k.observe(O);let j=C&&typeof MutationObserver<"u"?new MutationObserver(N):null;if(j?.observe(C,{attributes:true,attributeFilter:["style"]}),!g.value||!C){Se=()=>{j?.disconnect(),k.disconnect();};return}let q=0,D=()=>{q===0&&(q=requestAnimationFrame(()=>{q=0,N();}));};C.addEventListener("scroll",D,{passive:true}),Se=()=>{q!==0&&cancelAnimationFrame(q),C.removeEventListener("scroll",D),j?.disconnect(),k.disconnect();};},{flush:"post"}),vue.onUnmounted(()=>Se?.());let Qe;vue.watch([o,r,()=>e.hidden,p],()=>{Qe?.(),Qe=void 0;let v=p.value,h=o.value;if(!h||!v||r.value||e.hidden)return;let C=O=>{let N=O.target;if(!(N instanceof Node)||v.contains(N))return;let k=v.offsetParent;!k||!k.contains(N)||k.querySelector(".docx-paginated-surface")?.contains(N)||h.setActiveReviewItem(null);};document.addEventListener("mousedown",C,true),Qe=()=>document.removeEventListener("mousedown",C,true);},{flush:"post"}),vue.onUnmounted(()=>Qe?.());let ce=vue.ref(null),et;vue.watch([o,r,()=>e.hidden,p],()=>{et?.(),et=void 0;let v=p.value,h=v?.offsetParent;if(!h||r.value||e.hidden)return;let C=0,O=()=>{C=0;let q=h.scrollTop-st,D=h.scrollTop+h.clientHeight+st,L=ce.value;ce.value=L&&L.top===q&&L.bottom===D?L:{top:q,bottom:D};},N=0,k=()=>{C===0&&(C=requestAnimationFrame(O)),v?.setAttribute("data-scrolling",""),window.clearTimeout(N),N=window.setTimeout(()=>v?.removeAttribute("data-scrolling"),150);};O(),h.addEventListener("scroll",k,{passive:true});let j=new ResizeObserver(k);j.observe(h),et=()=>{C!==0&&cancelAnimationFrame(C),window.clearTimeout(N),h.removeEventListener("scroll",k),j.disconnect();};},{flush:"post"}),vue.onUnmounted(()=>et?.());let Q=vue.ref(null),tt=vue.shallowRef(null),Ee=()=>{let v=tt.value;v&&v.editor.releaseSelection(v.pin),tt.value=null,Q.value=null;};vue.watch(()=>o.value,(v,h)=>{h&&h!==v&&tt.value?.editor===h&&Ee();});let mo=()=>{let v=o.value;if(!v||a.value)return;let h=v.getSelectionPlacement()?.anchorY??null;if(h===null)return;Ee();let C=v.retainSelection();C&&(tt.value={editor:v,pin:C},d.setPaneOpen(true),Q.value=h,n?.proxy?.$forceUpdate());},Ae,fo=()=>{if(!y.value||e.hidden){Ae?.(),Ae=void 0;return}Ae??=R.value.registerCommentDraft(mo);};vue.onMounted(fo),vue.watch(()=>e.hidden,fo);let Vn=()=>{Ee(),o.value?.focus(),n?.proxy?.$forceUpdate();};vue.watch(w,v=>{v||Q.value===null||Ee();}),vue.onBeforeUnmount(()=>{y.value=false,x?.(),x=void 0,Ae?.(),Ae=void 0,Ee();});let Tt=vue.computed(()=>Q.value??d.selectionAnchorY.value),re=vue.computed(()=>{let v=Me(P.value);return P.value.filter(h=>!_e(h,v))}),Ln=vue.computed(()=>{let v=Q.value;if(v===null)return re.value;let h=re.value.findIndex(O=>O.anchorY!==null&&O.anchorY>v),C={key:te,anchorY:v};return h===-1?[...re.value,C]:[...re.value.slice(0,h),C,...re.value.slice(h)]}),$n=vue.computed(()=>{let v=new Map(Xe.value);for(let h of re.value){if(v.has(h.key))continue;let C=h.text.length+(h.kind==="revision"?h.replacedText?.length??0:0),O=Math.min(6,Math.max(1,Math.ceil(C/36)));v.set(h.key,64+O*20);}return v}),Pt=vue.computed(()=>{let v=M.value.scale,h=new Map,C=new Set,O=Number.NEGATIVE_INFINITY;for(let N of Ln.value){let k=N.anchorY===null?Number.isFinite(O)?O:0:Math.max(N.anchorY,O);h.set(N.key,k);let j=N.anchorY===null?0:(k-N.anchorY)*v,q="isActive"in N&&N.isActive,D=j>Mo&&!q&&N.key!==te;D&&C.add(N.key);let L=D?_o:$n.value.get(N.key)??Po;O=k+(L+e.gap)/v;}return {stacked:h,collapsedKeys:C}}),Oe=vue.computed(()=>Tt.value===null?null:M.value.top+(g.value?Tt.value:Pt.value.stacked.get(te)??Tt.value)*M.value.scale),Kn=vue.computed(()=>(d.commentResolutionDisabledReason.value,d.selectionAnchorY.value,d.paneOpen.value,d.items.value.length,Ra(d,P.value))),_t=()=>{let v=K.value,h=v?ne.value.get(v)??0:0;return {t:e.t,cardClassName:e.card?.className,readOnly:a.value,composeTop:Oe.value,review:Kn.value,allItems:l.items.value,authorSlots:ne.value,authorInfo:Je.value,draftAuthor:v,draftAuthorInfo:v?Je.value.get(v):void 0,draftAuthorSlot:h,byId:Ie.value,measure:Dn,beginDraft:mo,endDraft:Vn,expandedResolvedKey:G.value,setExpandedResolvedKey:C=>{G.value=C;}}},Mt=vue.shallowRef(_t());return vue.watchEffect(()=>{Mt.value=_t();}),vue.watch(()=>s.value,()=>{Mt.value=_t(),n?.proxy?.$forceUpdate();},{flush:"sync"}),vue.provide(Ht,Mt),()=>{if(e.hidden||r.value)return null;s.value,l.items.value,Q.value,P.value.length,d.selectionAnchorY.value,d.paneOpen.value,d.commentResolutionDisabledReason.value,Oe.value;let v=J=>{p.value=J.el instanceof HTMLElement?J.el:null;},h={onVnodeMounted:v,onVnodeUpdated:v,onVnodeBeforeUnmount:()=>{p.value=null;},class:`docx-review${e.className?` ${e.className}`:""}`,"data-testid":"review-rail","data-count":P.value.length,"data-open":S.value?"":void 0,"data-compact":g.value?"":void 0,role:"complementary","aria-label":m("review.ariaLabel"),onMousedown:$,style:M.value.left===null?void 0:{left:`${M.value.left}px`,right:"auto"}},C=t.default?.()??[],O=e.asChild&&C.length===1&&vue.isVNode(C[0])?C[0]:null,{parts:N,rest:k}=ke(O?[]:C,"root"),j={stack:e.stack,positions:Pt.value.stacked,collapsed:Pt.value.collapsedKeys,scale:M.value.scale,offset:M.value.top,window:ce.value},q=vue.h(Qt,{scale:M.value.scale,offset:M.value.top,window:ce.value}),D=g.value?re.value.find(J=>J.key===d.activeKey.value)??null:null,L=D===null?null:D.anchorY!==null?M.value.top+D.anchorY*M.value.scale:ce.value!==null?ce.value.top+st+24:null,ee=ke(k,"list"),me=D&&t.item?t.item({item:D}):ee.parts.Card?it(ee.parts.Card,e.card?.className):e.preset?vue.h(qe,e.card?.className?{className:e.card.className}:{},()=>ee.rest):null,ae=D&&L!==null&&M.value.compactCardLeft!==null&&me?vue.h(ut,{entry:D,className:"docx-review__slot--compact",testId:"review-compact-card",style:{position:"absolute",top:`${L}px`,left:`${M.value.compactCardLeft}px`,width:`${Pe}px`}},()=>me):null,fe=S.value?e.preset||"List"in N?je("List",vue.h(Xt,j,{...k.length>0?{default:()=>k}:{},...t.item?{item:t.item}:{}}),N):k:e.preset||"Markers"in N?[je("Markers",q,N),ae]:k,ve=[S.value&&e.furniture!==void 0?vue.h("div",{class:"docx-review__furniture","data-testid":"review-furniture"},[e.furniture]):null,fe,...e.preset||"AddComment"in N?[je("AddComment",vue.h(eo,{top:Oe.value,drafting:Q.value!==null}),N)]:[],...Q.value===null||Oe.value===null||!w.value||!e.preset&&!("Draft"in N)?[]:[je("Draft",vue.h(ya,{top:Oe.value??0,left:g.value?M.value.compactCardLeft:null}),N)],...e.preset||"Balloon"in N?[je("Balloon",vue.h(to),N)]:[]],U=O;if(!U)return vue.h("aside",h,ve);let ie=vue.cloneVNode(U,h,true);if(typeof U.type=="string"){let J=Array.isArray(U.children)?U.children:U.children==null?[]:typeof U.children=="string"||typeof U.children=="number"?[U.children]:[];ie.children=[...J,...ve],ie.shapeFlag=ie.shapeFlag&-9|16;}else {let J=U.children&&!Array.isArray(U.children)&&typeof U.children=="object"?U.children:{},vo=J.default;ie.children={...J,default:(...Hn)=>[...vo?[vo(...Hn)]:[],...ve]},ie.shapeFlag=ie.shapeFlag&-25|32;}return ie}}});var ga=Object.assign(wa,{List:Xt,Empty:pt,Card:qe,Avatar:we,Author:ge,Time:he,Summary:Ce,Accept:Ue,Reject:Be,Resolve:Yt,Reopen:Gt,Delete:yt,Replies:Wt,Reply:Zt,Markers:Qt,AddComment:eo,Draft:zt,Balloon:to});function oe(){let e=vue$1.useDocxEditor(),t=vue$1.useEditorState(n=>n.collaborationStatus);return {session:vue.computed(()=>(t.value,e.value?.collaborationSession()??null))}}function Ia(e){let t=oe(),n=vue.shallowRef("inactive"),o=vue.shallowRef(void 0),r=vue.shallowRef(void 0),a=vue.shallowRef(false);return vue.watch(()=>e===void 0?t.session.value:vue.toValue(e),(s,i,u)=>{let l=()=>{if(!s){n.value="inactive",o.value=void 0,r.value=void 0,a.value=false;return}let d=s.statusSnapshot();n.value=d.status,o.value=d.reason,r.value=d.lastFailure,a.value=s.attached??false;};l(),s&&u(s.subscribeStatus(()=>l()));},{immediate:true}),{status:vue.readonly(n),reason:vue.readonly(o),lastFailure:vue.readonly(r),attached:vue.readonly(a),live:vue.computed(()=>n.value==="ready"),diverged:vue.computed(()=>n.value==="error"||n.value==="destroyed")}}var bn=Object.freeze([]);function ka(e,t){if(e===t)return true;if(e.length!==t.length)return false;for(let n=0;n<e.length;n+=1){let o=e[n],r=t[n];if(o.actorId!==r.actorId||o.name!==r.name||o.color!==r.color||o.role!==r.role||o.isLocal!==r.isLocal)return false}return true}function Nt(e){let t=oe(),n=vue.shallowRef(bn);return vue.watch(()=>e===void 0?t.session.value:vue.toValue(e),(o,r,a)=>{let s=()=>{let i=o?o.participants():bn;ka(n.value,i)||(n.value=i);};s(),o&&a(o.subscribeParticipants(()=>s()));},{immediate:true}),{participants:vue.readonly(n)}}var Ma=vue.defineComponent({name:"DocxEditorCollaborationRoot",inheritAttrs:false,props:{collaboration:{type:Object,required:true}},setup(e,{slots:t,attrs:n}){return ()=>{let{document:o,modules:r,session:a}=e.collaboration;if(!o)return t.fallback?.()??null;let s=n.author??a?.identity.name;return vue.h(vue$1.DocxEditorRoot,{...n,key:a?.sessionId??"local",document:o,modules:r,...s!==void 0?{author:s}:{}},t.default?{default:t.default}:void 0)}}});var Va=Symbol("useDocumentCollaboration.createRoom");async function La(e){let{createDocumentCollaboration:t}=await import('../document-session-I2C7MA6E.cjs');return t(e)}function $a(e){return e?.[Va]??La}function Ka(e){return e?`${e.documentId}:${e.bootstrap.kind}:${e.identity.actorId}`:""}function Ha(e){let t=vue.getCurrentInstance(),n=chunkQ4YPX2DT_cjs.d({ownerKey:`vue-document:${String(t?.uid??"anonymous")}`,hookName:"useDocumentCollaboration",createRoomOf:()=>$a(vue.toValue(e)),hostModulesOf:()=>vue.toValue(e)?.modules??chunkQ4YPX2DT_cjs.c,autoRoomOf:()=>vue.toValue(e)?.room??null,autoKeyOf:()=>Ka(vue.toValue(e)?.room),rejoinOptionsOf:o=>({...o,bootstrap:{kind:"join"}}),identityOf:o=>o.identity});return {document:vue.readonly(n.document),modules:vue.readonly(n.modules),session:vue.readonly(n.session),pending:vue.readonly(n.pending),error:vue.readonly(n.error),connect:n.connect,leave:n.leave}}var Ge=8;function xn(e){let t=/^var\(--doc-review-author-(\d{1,2})\)$/.exec(e);return t?Number(t[1])%Ge:null}function Et(e,t,n,o){let r=new Map(e.map(i=>[i.author,i])),a=new Map,s=new Map;for(let i of t){if(s.has(i.actorId))continue;let u=collaboration.safeParticipantColor(o?.(i.name));if(u!==void 0){s.set(i.actorId,{color:u,slot:xn(u)});continue}let l=collaboration.safeParticipantColor(i.color);if(l!==void 0){s.set(i.actorId,{color:l,slot:null});continue}let d=r.get(i.name),c=collaboration.safeParticipantColor(n?.(i.name));if(c!==void 0){s.set(i.actorId,{color:c,slot:xn(c)??(d?d.slot%Ge:null)});continue}if(d!==void 0){let p=d.slot%Ge;s.set(i.actorId,{color:collaboration.safeParticipantColor(d.color)??`var(--doc-review-author-${p})`,slot:p});continue}let m=a.get(i.name);m===void 0&&(m=e.length+a.size,a.set(i.name,m)),s.set(i.actorId,{color:`var(--doc-review-author-${m%Ge})`,slot:m%Ge});}return s}function ro(e,t,n,o){return Et(e,[t],n,o).get(t.actorId)}function ao(e){let t=e.trim().split(/\s+/,2),n="";for(let o of t){let r=[...o][0];r!==void 0&&(n+=r.toUpperCase());}return n}function Nn(e){return [...e].sort((t,n)=>{if(t.isLocal!==n.isLocal)return t.isLocal?-1:1;let o=t.name.localeCompare(n.name);return o!==0?o:t.actorId<n.actorId?-1:t.actorId>n.actorId?1:0})}function At(e,t,n){for(let o of e)if(o.author===t)return o.style?.avatarUrl;return n?.(t)?.avatarUrl}var In=Symbol("docx-collaboration-avatar-accents");function Sn(e){return e!==void 0?{avatarUrl:e}:{}}function za(e,t,n,o){return vue.h("span",{class:`docx-collaboration-avatar${n?` ${n}`:""}`,"data-collaboration-avatar":"",...e.isLocal?{"data-local":""}:{},...t.slot!==null?{"data-collaboration-author-slot":t.slot}:{},title:e.name,role:"img","aria-label":e.name,style:{"--doc-collaboration-accent":t.color}},o)}var En=vue.defineComponent({name:"CollaborationAvatar",props:{participant:{type:Object,required:true},className:{type:String,default:void 0}},setup(e,{slots:t}){let n=vue$1.useDocxEditor(),o=vue$1.useReviewAuthors(),r=vue.inject(In,null);return ()=>{let a=n.value,s=r?.value.get(e.participant.actorId)??ro(o.value,e.participant,a?l=>a.presenceColorFor(l):void 0,a?l=>a.getReviewAuthorStyle(l)?.color:void 0),i=At(o.value,e.participant.name,a?l=>a.getReviewAuthorStyle(l):void 0),u=t.default?.()??(i!==void 0?vue.h("img",{class:"docx-collaboration-avatar__image",src:i,alt:""}):ao(e.participant.name));return za(e.participant,s,e.className,u)}}}),Za=vue.defineComponent({name:"CollaborationAvatars",props:{session:{type:Object,default:void 0},max:{type:Number,default:void 0},className:{type:String,default:void 0}},setup(e,{slots:t}){let n=vue$1.useDocxEditor(),o=oe(),r=vue.computed(()=>e.session===void 0?o.session.value:e.session),{participants:a}=Nt(r),s=vue$1.useReviewAuthors(),{t:i}=vue$1.useTranslation(),u=vue.computed(()=>{let c=n.value;return Et(s.value,a.value,c?m=>c.presenceColorFor(m):void 0,c?m=>c.getReviewAuthorStyle(m)?.color:void 0)}),l=vue.computed(()=>{let c=n.value,m=c?R=>c.getReviewAuthorStyle(R):void 0,p=new Map;for(let R of a.value){if(p.has(R.name))continue;let y=At(s.value,R.name,m);y!==void 0&&p.set(R.name,y);}return p}),d=vue.computed(()=>Nn(a.value));return vue.provide(In,u),()=>{if(d.value.length===0)return null;let c=e.max===void 0?d.value:d.value.slice(0,Math.max(0,e.max)),m=d.value.length-c.length,p=i("collaboration.moreParticipants",{count:m});return vue.h("span",{class:`docx-collaboration-avatars${e.className?` ${e.className}`:""}`,"data-collaboration-avatars":"",role:"group","aria-label":i("collaboration.participants")},[...c.map(R=>t.default?vue.h(vue.Fragment,{key:R.actorId},[t.default({participant:R,color:u.value.get(R.actorId).color,initials:ao(R.name),...Sn(l.value.get(R.name))})]):vue.h(En,{key:R.actorId,participant:R})),m>0?vue.h("span",{class:"docx-collaboration-avatar","data-collaboration-avatar":"","data-overflow":"",title:p,role:"img","aria-label":p},`+${m}`):null])}}}),Wa=vue.defineComponent({name:"CollaborationCaretLabels",props:{session:{type:Object,default:void 0}},setup(e,{slots:t}){let n=vue$1.useDocxEditor(),o=oe(),r=vue.computed(()=>e.session===void 0?o.session.value:e.session),{participants:a}=Nt(r),s=vue$1.useReviewAuthors(),i=vue.shallowRef([]);return vue.watch([n,r],([u,l],d,c)=>{!u||!l||(u.setRemoteCaretLabelHost({publish:m=>{i.value=[...m];}}),c(()=>{u.setRemoteCaretLabelHost(null),i.value=[];}));},{immediate:true}),()=>{if(i.value.length===0)return null;let u=Et(s.value,a.value);return i.value.map(l=>{let{selection:d}=l,c=a.value.find(R=>R.actorId===d.actorId)??null,m=l.element.style.getPropertyValue("--doc-remote-color"),p=m!==""?m:u.get(d.actorId)?.color??ro(s.value,{actorId:d.actorId,name:d.name,...d.color!==void 0?{color:d.color}:{},isLocal:false}).color;return vue.h(vue.Teleport,{to:l.element,key:d.actorId},[t.default?t.default({selection:d,participant:c,color:p,...Sn(At(s.value,d.name,n.value?R=>n.value.getReviewAuthorStyle(R):void 0))}):d.name])})}}}),Ja={CaretLabels:Wa,Avatars:Za,Avatar:En};function Ze(e){let t=vue$1.useDocxEditor();return vue.computed(()=>{let n=vue.toValue(e);return n||(t.value?.getCustomNodeDefinitions()??[]).filter(rt)})}var ni=".docx-content-control-boundary";function xe(e,t){let{node:n,definition:o,controlId:r}=e,a=r?t?.getReviewItems().find(u=>u.kind==="custom"&&u.item.id===r):void 0;if(a?.kind==="custom"){let u=a.item;return {...n,attrs:u.attrs,text:u.text,...u.data===void 0?{}:{data:u.data},...r?{nodeId:r}:{}}}let s=r?ri(t,r,o):void 0,i=o.fromDocx?o.fromDocx({attrs:n.attrs,text:"",...s===void 0?{}:{data:s}}):n.attrs;return i===null?null:{...n,attrs:i,...s===void 0?{}:{data:s},...r?{nodeId:r}:{}}}function ri(e,t,n){let o=e?.surface;if(!o)return;let r=editor.partOfNodeId(o.session,t),a=store.customNodePayloadsByControl(o.session.currentPackage(),(r??o.session.part()).name,o.session.part().name).get(t);if(!a)return;let s=nt(n.schema,a.data);return s.ok?s.value:void 0}function Ne(e,t){let n=e?.closest?.(ni),o=n?.closest(".docx-content-control-chrome"),r=o?.getAttribute("data-tag"),a=r?ot(r):null;if(!n||!a||!r)return null;let s=t.find(i=>i.tagPrefix===a.prefix&&i.name===a.name);return s?{node:{name:a.name,attrs:a.attrs,tag:r,rect:n.getBoundingClientRect()},definition:s,controlId:o?.getAttribute("data-docx-content-control")??null}:null}var uo=".docx-content-control-boundary";function ui(e){if(!Vt.test(e.tagPrefix)||!Vt.test(e.name))return [];let t=`${e.tagPrefix}:${e.name}`;return [`.docx-content-control-chrome[data-tag="${t}"]`,`.docx-content-control-chrome[data-tag^="${t}?"]`]}var ci=vue.defineComponent({name:"CustomNodeChrome",props:{nodes:{type:Array,default:void 0},onNodeClick:{type:Function,default:void 0},onNodeHover:{type:Function,default:void 0}},setup(e){let t=vue$1.useDocxEditor(),n=Ze(()=>e.nodes),o,r=null,a=null,s=d=>Ne(document.elementFromPoint(d.clientX,d.clientY),n.value),i=d=>{let c=d.button===0?s(d):null;r=c?.controlId??null,a=c?.node.tag??null;},u=d=>{let c=r,m=a;if(r=null,a=null,m===null)return;let p=s(d);if(!p||p.node.tag!==m||c!==null&&p.controlId!==c)return;let R=xe(p,t.value);R&&(p.definition.onClick?.(R),e.onNodeClick?.(R));},l=d=>{let c=Ne(d.target,n.value);if(!c||d.relatedTarget?.closest?.(uo)===d.target.closest(uo))return;let p=xe(c,t.value);p&&(c.definition.onHover?.(p),e.onNodeHover?.(p));};return vue.onMounted(()=>{o=vue.watch(n,(d,c,m)=>{let p=document.createElement("style"),R=[];for(let y of d){let x=ui(y);if(x.length===0)continue;let I=y.chrome?.color,w=I!==void 0&&typeof CSS<"u"&&CSS.supports("color",I)?I:"var(--doc-accent)";R.push(`${x.map(E=>`${E} ${uo}`).join(", ")} {`," pointer-events: auto !important;"," opacity: 1;"," border: none;",` background: color-mix(in srgb, ${w} 12%, transparent);`," border-radius: 6px;"," cursor: default;","}");}p.textContent=R.join(`
|
|
2
2
|
`),document.head.append(p),m(()=>p.remove());},{immediate:true}),document.addEventListener("pointerdown",i,true),document.addEventListener("pointerup",u,true),document.addEventListener("mouseover",l);}),vue.onBeforeUnmount(()=>{o?.(),document.removeEventListener("pointerdown",i,true),document.removeEventListener("pointerup",u,true),document.removeEventListener("mouseover",l);}),()=>null}});function fi(e){return e.surface??null}function On(e){let t=e.detail?`${e.reason}: ${e.detail}`:e.reason;return {ok:false,code:vi.has(e.reason)?"invalidArgs":"unsupported",reason:t}}var vi=new Set(["payload-too-large","unaddressable-payload","store-not-authored","offset-out-of-range","invalid-range","invalid-property-value","splits-surrogate-pair"]);function kn(e){return e.getEditingMode()==="viewing"?{ok:false,code:"locked",reason:"the document is open for viewing"}:null}function An(e){let t=e.getActiveScope();if(t.kind==="headerFooter")return {kind:"headerFooter",rId:t.rId};if(t.kind==="note"){let n=store.parseNoteScopeId(t.id);if(n)return {kind:"notesPart",noteKind:n.noteKind}}return {kind:"body"}}function Tn(e,t){let n=fi(e),o=t===void 0?"":t.slice(0,t.indexOf("#"));if(!n||o.length===0)return An(e);if(o===n.session.part().name)return {kind:"body"};for(let r of n.session.headerFooterResolutionBySection())for(let a of [r.headers,r.footers])for(let s of a.values())if(s.partName===o)return {kind:"headerFooter",rId:s.rId};for(let r of ["footnote","endnote"])if(n.session.partFor({kind:"notesPart",noteKind:r})?.name===o)return {kind:"notesPart",noteKind:r};return An(e)}function pi(e){return e.surface??null}function Pn(e,t){let n=pi(e);if(!n)return {ok:false,code:"notFound",reason:"no document is mounted"};let o=kn(e);if(o)return o;n.flushPendingInput();let r=n.session.removeCustomNode(t,Tn(e,t));return r.ok?{ok:true,changed:true}:On(r)}var Ci=Object.assign(vue.defineComponent({name:"CustomNodeContextMenu",props:{nodes:{type:Array,default:void 0},onEditNode:{type:Function,default:void 0},remove:{type:Boolean,default:true},onRemoveRefused:{type:Function,default:void 0}},setup(e){let t=Ze(()=>e.nodes),n=vue$1.useContextMenuTarget(),o=vue$1.useDocxEditor(),{t:r}=vue$1.useTranslation(),a=vue.computed(()=>Ne(n,t.value)),s=vue.computed(()=>{let u=a.value;return u?xe(u,o.value):null}),i=vue.computed(()=>{let u=a.value,l=s.value;return !u?.definition.reviewCard||!l?null:u.definition.reviewCard({attrs:l.attrs,text:l.text??"",...l.data===void 0?{}:{data:l.data}})});return ()=>{let u=a.value,l=s.value;if(!u||!l)return null;let{definition:d}=u,c=d.label??d.name,m=d.onEdit!==void 0||e.onEditNode!==void 0,p=e.remove&&l.nodeId!==void 0&&o.value!==null;return !i.value&&!m&&!p?null:jsxRuntime.jsxs(vue.Fragment,{children:[i.value?jsxRuntime.jsxs("div",{class:"docx-contextmenu__custom-info","data-testid":"custom-node-info",children:[jsxRuntime.jsx("span",{class:"docx-contextmenu__custom-title",children:i.value.title}),i.value.detail?jsxRuntime.jsx("span",{class:"docx-contextmenu__custom-detail",children:i.value.detail}):null]}):null,m?jsxRuntime.jsx(vue$1.ContextMenuItem,{label:r("contextMenu.editCustomNode",{label:c}),className:"docx-contextmenu__custom-edit",onSelect:()=>{d.onEdit?.(l),e.onEditNode?.(l,d);}}):null,p?jsxRuntime.jsx(vue$1.ContextMenuItem,{label:r("contextMenu.removeCustomNode",{label:c}),className:"docx-contextmenu__custom-remove",onSelect:()=>{let R=Pn(o.value,l.nodeId);R.ok||e.onRemoveRefused?.(l,R.reason);}}):null,jsxRuntime.jsx("div",{role:"separator",class:"docx-toolbar__menu-separator"})]})}}}),{docxRowPlacement:"start"});Object.defineProperty(exports,"collaborationModule",{enumerable:true,get:function(){return chunkQ4YPX2DT_cjs.b}});exports.CustomNodeChrome=ci;exports.CustomNodeContextMenu=Ci;exports.DocxEditorCollaboration=Ja;exports.DocxEditorCollaborationRoot=Ma;exports.DocxEditorReview=ga;exports.activatedCustomNodeOf=xe;exports.resolveCustomNodeActivation=Ne;exports.reviewModule=tr;exports.useCollaborationParticipants=Nt;exports.useCollaborationSession=oe;exports.useCollaborationStatus=Ia;exports.useCustomNodeDefinitions=Ze;exports.useDocumentCollaboration=Ha;exports.useReview=dr;exports.useReviewAuthor=Er;exports.useReviewItem=H;exports.useReviewOf=ur;exports.useStackedReviewPositions=cr;
|
package/dist/vue/index.d.cts
CHANGED
|
@@ -215,8 +215,8 @@ declare const DocxEditorReview: {
|
|
|
215
215
|
}> | VNode<vue.RendererNode, vue.RendererElement, {
|
|
216
216
|
[key: string]: any;
|
|
217
217
|
}>[];
|
|
218
|
-
asChild: boolean;
|
|
219
218
|
gap: number;
|
|
219
|
+
asChild: boolean;
|
|
220
220
|
preset: boolean;
|
|
221
221
|
card: {
|
|
222
222
|
className?: string;
|
|
@@ -284,8 +284,8 @@ declare const DocxEditorReview: {
|
|
|
284
284
|
}> | VNode<vue.RendererNode, vue.RendererElement, {
|
|
285
285
|
[key: string]: any;
|
|
286
286
|
}>[];
|
|
287
|
-
asChild: boolean;
|
|
288
287
|
gap: number;
|
|
288
|
+
asChild: boolean;
|
|
289
289
|
preset: boolean;
|
|
290
290
|
card: {
|
|
291
291
|
className?: string;
|
|
@@ -350,8 +350,8 @@ declare const DocxEditorReview: {
|
|
|
350
350
|
}> | VNode<vue.RendererNode, vue.RendererElement, {
|
|
351
351
|
[key: string]: any;
|
|
352
352
|
}>[];
|
|
353
|
-
asChild: boolean;
|
|
354
353
|
gap: number;
|
|
354
|
+
asChild: boolean;
|
|
355
355
|
preset: boolean;
|
|
356
356
|
card: {
|
|
357
357
|
className?: string;
|
package/dist/vue/index.d.ts
CHANGED
|
@@ -215,8 +215,8 @@ declare const DocxEditorReview: {
|
|
|
215
215
|
}> | VNode<vue.RendererNode, vue.RendererElement, {
|
|
216
216
|
[key: string]: any;
|
|
217
217
|
}>[];
|
|
218
|
-
asChild: boolean;
|
|
219
218
|
gap: number;
|
|
219
|
+
asChild: boolean;
|
|
220
220
|
preset: boolean;
|
|
221
221
|
card: {
|
|
222
222
|
className?: string;
|
|
@@ -284,8 +284,8 @@ declare const DocxEditorReview: {
|
|
|
284
284
|
}> | VNode<vue.RendererNode, vue.RendererElement, {
|
|
285
285
|
[key: string]: any;
|
|
286
286
|
}>[];
|
|
287
|
-
asChild: boolean;
|
|
288
287
|
gap: number;
|
|
288
|
+
asChild: boolean;
|
|
289
289
|
preset: boolean;
|
|
290
290
|
card: {
|
|
291
291
|
className?: string;
|
|
@@ -350,8 +350,8 @@ declare const DocxEditorReview: {
|
|
|
350
350
|
}> | VNode<vue.RendererNode, vue.RendererElement, {
|
|
351
351
|
[key: string]: any;
|
|
352
352
|
}>[];
|
|
353
|
-
asChild: boolean;
|
|
354
353
|
gap: number;
|
|
354
|
+
asChild: boolean;
|
|
355
355
|
preset: boolean;
|
|
356
356
|
card: {
|
|
357
357
|
className?: string;
|