@docx-editor.dev/pro 2.14.1 → 2.15.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.
Files changed (35) hide show
  1. package/dist/chunk-3625DZUE.js +3 -0
  2. package/dist/chunk-54OI2PSM.js +3 -0
  3. package/dist/chunk-AB6CJLJ4.cjs +3 -0
  4. package/dist/chunk-DOVUXFIP.cjs +3 -0
  5. package/dist/collaboration/hocuspocus.cjs +1 -1
  6. package/dist/collaboration/hocuspocus.js +1 -1
  7. package/dist/collaboration/index.cjs +2 -2
  8. package/dist/collaboration/index.js +1 -1
  9. package/dist/collaboration/webrtc.cjs +1 -1
  10. package/dist/collaboration/webrtc.js +1 -1
  11. package/dist/document-session-6NLJAJY2.cjs +1 -0
  12. package/dist/document-session-CULOPWY6.js +1 -0
  13. package/dist/document-session-JVA7VYPB.cjs +1 -0
  14. package/dist/document-session-R4ETEHGF.js +1 -0
  15. package/dist/{hocuspocus-ABVDFDOK.js → hocuspocus-AJOJV5NQ.js} +1 -1
  16. package/dist/{hocuspocus-IIJMOMM5.cjs → hocuspocus-TST45TQ6.cjs} +1 -1
  17. package/dist/react/index.cjs +2 -2
  18. package/dist/react/index.js +2 -2
  19. package/dist/vue/hocuspocus.cjs +1 -1
  20. package/dist/vue/hocuspocus.js +1 -1
  21. package/dist/vue/index.cjs +1 -1
  22. package/dist/vue/index.js +1 -1
  23. package/dist/vue/webrtc.cjs +1 -1
  24. package/dist/vue/webrtc.js +1 -1
  25. package/dist/{webrtc-2WNLDNHU.cjs → webrtc-F6OLZU65.cjs} +1 -1
  26. package/dist/{webrtc-PZCIQ4FZ.js → webrtc-O3Y4W4P6.js} +1 -1
  27. package/package.json +4 -4
  28. package/dist/chunk-ABW4JBFQ.js +0 -3
  29. package/dist/chunk-L6J5LQXZ.cjs +0 -3
  30. package/dist/chunk-MTNG3CRI.js +0 -3
  31. package/dist/chunk-VRIYIY2Y.cjs +0 -3
  32. package/dist/document-session-2QOWIMD7.js +0 -1
  33. package/dist/document-session-2YB34CXA.js +0 -1
  34. package/dist/document-session-BIMEOZBG.cjs +0 -1
  35. package/dist/document-session-DPSXU7I7.cjs +0 -1
package/dist/vue/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import {a,d,c}from'../chunk-W3V54DWZ.js';export{b as collaborationModule}from'../chunk-W3V54DWZ.js';import {customNodePayloadsByControl,parseNoteScopeId,findNode,revisionItemsOf,collectReviewItems,paragraphOrderOfPart,locateSites,contentControlPropertiesOf}from'@docx-editor.dev/core/store';import {reviewItemPositionRank}from'@docx-editor.dev/core/layout';import {computed,defineComponent,shallowRef,watchEffect,provide,onBeforeUnmount,h,Fragment,cloneVNode,onMounted,getCurrentInstance,ref,watch,onUnmounted,inject,isVNode,Teleport,mergeProps,toValue,readonly}from'vue';import {Slot,useTranslation,useDocxEditor,useEditorState,ReviewRailContext,useReviewGutter,REVIEW_PANE_GUTTER,useReviewAuthors,DocxEditorRoot,useContextMenuTarget,ContextMenuItem}from'@docx-editor.dev/vue';import {jsx,jsxs,Fragment as Fragment$1}from'vue/jsx-runtime';import {safeParticipantColor}from'@docx-editor.dev/core/collaboration';import {partOfNodeId}from'@docx-editor.dev/core/editor';var Ln=new Set(["__proto__","constructor","prototype"]);function tt(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("?"),i=r===-1?o:o.slice(0,r);if(i.length===0)return null;let s=Object.create(null);if(r!==-1)for(let[a,u]of new URLSearchParams(o.slice(r+1))){if(Ln.has(a))return null;s[a]=u;}return {prefix:n,name:i,attrs:s}}function ot(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(i){return {ok:false,reason:"malformed",issues:[i instanceof Error?i.message:"the payload is not JSON"]}}let o=_t(n);if(!e)return {ok:true,value:o};let r=e["~standard"].validate(o);return $n(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(Kn)}:{ok:true,value:r.value}}function $n(e){return typeof e.then=="function"}function Kn(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 Un=new Set(["__proto__","constructor","prototype"]);function _t(e){if(Array.isArray(e))return e.map(_t);if(e===null||typeof e!="object")return e;let t=Object.create(null);for(let[n,o]of Object.entries(e))Un.has(n)||(t[n]=_t(o));return t}function nt(e){return typeof e=="object"&&e!==null&&typeof e.name=="string"&&typeof e.tagPrefix=="string"}var Mt=/^[A-Za-z0-9_.-]+$/;function qn(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 vo(e){if(e.kind==="textValue")return e.value;let t="";for(let n of e.children)t+=vo(n);return t}function yo(e,t,n={}){if(t.length===0)return [];let o=new Map;for(let s of t){let a=`${s.tagPrefix}:${s.name}`;if(o.has(a))throw new Error(`recognizeCustomNodes: duplicate definition for ${JSON.stringify(a)}`);o.set(a,s);}let r=[],i=(s,a)=>{if(!(s.kind==="textValue"||a>64)){if(s.kind==="contentControl"){let u=qn(s),d=u!==void 0?tt(u):null,l=d?o.get(`${d.prefix}:${d.name}`):void 0;if(d&&l&&u!==void 0){let c=vo(s),m=Bn(l,s.id,n.payloads?.get(s.id),contentControlPropertiesOf(s).dataBinding!==void 0,n.onDiagnostic),f=l.fromDocx?l.fromDocx({attrs:d.attrs,text:c,...m.present?{data:m.value}:{}}):d.attrs;if(f!==null){r.push({name:l.name,attrs:f,text:c,nodeId:s.id,tag:u,...m.present?{data:m.value}:{}});return}}}for(let u of s.children)i(u,a+1);}};return i(e.root,0),r}function Bn(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 i=ot(e.schema,n.data);return i.ok?{present:true,value:i.value}:(r?.({code:"payload-invalid",name:e.name,nodeId:t,issues:i.issues}),{present:false})}function wo(e,t){let n=findNode(e,t);return !n||n.kind!=="paragraph"?[]:revisionItemsOf({id:e.id,name:e.name,contentType:e.contentType,root:n})}function zn(e,t,n,o){if(t.length===0)return [];let r=yo(e,t,{...n===void 0?{}:{payloads:n},...o===void 0?{}:{onDiagnostic:o}});if(r.length===0)return [];let i=locateSites(e),s=[];for(let a of r){let u=t.find(c=>c.name===a.name&&a.tag.startsWith(`${c.tagPrefix}:`));if(!u)continue;let d=u.reviewCard?u.reviewCard({attrs:a.attrs,text:a.text,...a.data===void 0?{}:{data:a.data}}):null;if(u.reviewCard&&d===null)continue;let l=i.get(a.nodeId);s.push({kind:"custom",id:a.nodeId,name:a.name,tag:a.tag,attrs:a.attrs,text:a.text,...a.data===void 0?{}:{data:a.data},carded:u.reviewCard!==void 0&&d!==null,title:d?.title??"",...d?.detail!==void 0?{detail:d.detail}:{},...d?.icon!==void 0?{icon:d.icon}:{},range:l?{partName:e.name,start:{paragraphId:l.paragraphId,offset:l.start},end:{paragraphId:l.paragraphId,offset:l.end}}:null});}return s}function go(e){let t=collectReviewItems(e),n=(e.customNodes??[]).filter(nt);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 i=[],s=new Map;for(let u of o){i.push(...zn(u,n,e.customNodePayloads,e.reportCustomNodeDiagnostic));let d=s.size;for(let[l,c]of paragraphOrderOfPart(u))s.has(l)||s.set(l,d+c);}return i.length===0?t:[...t,...i].sort((u,d)=>reviewItemPositionRank(u,s)-reviewItemPositionRank(d,s))}function Wn(e={}){return a(e.licenseKey),{id:"review",review:{displayModes:["all-markup","proposed","original"],collectReviewItems:go,revisionItemsOfParagraph:wo}}}function ho(e){return `${e.getReviewRevision()}:${e.getEditingMode()}:${JSON.stringify(e.snapshot().hiddenReviewAuthors??[])}`}var Co=Symbol("proEditorRenderRevision");function bo(e){return provide(Co,e),e}function ve(){let e=inject(Co,null);if(e)return e;let t=useDocxEditor(),n=shallowRef("none");return watch(()=>t.value,(o,r,i)=>{if(!o){n.value="none";return}let s=o,a=ho(s);n.value=a;let u=false,d=null,l=()=>{u||d!==null||(d=setTimeout(()=>{if(d=null,u)return;let p=ho(s);p!==a&&(a=p,n.value=p);},0));},c=s.on("change",l),m=s.on("selectionChange",l),f=s.on("error",l);i(()=>{u=true,d!==null&&clearTimeout(d),c(),m(),f();});},{immediate:true,flush:"sync"}),n}function rt(e){if(e!==void 0)return typeof e=="function"?e():typeof e=="object"&&e!==null&&"value"in e?e.value:e}function xo(e){let t=e.snapshot?.();return `${e.getReviewRevision()}:${e.getEditingMode()}:${JSON.stringify(t?.hiddenReviewAuthors??[])}`}function rr(e){let t=useDocxEditor(),n=ve();return Vt(t,e,n)}function Dt(e,t){let n=useDocxEditor();return Vt(n,e,t)}function ar(e,t){return Vt(e,t)}function Vt(e,t,n){let o=n?null:shallowRef("none"),r=()=>{(n??o)?.value;};n||watch(()=>e.value,(w,C,_)=>{if(!w){o.value="none";return}let K=xo(w);o.value=K;let X=false,Y=null,ne=()=>{X||Y!==null||(Y=setTimeout(()=>{if(Y=null,X)return;let Ne=xo(w);Ne!==K&&(K=Ne,o.value=Ne);},0));},Et=w.on("change",ne),At=w.on("selectionChange",ne),We=w.on("error",ne);_(()=>{X=true,Y!==null&&clearTimeout(Y),Et(),At(),We();});},{immediate:true,flush:"sync"});let i=computed(()=>{r();let w=e.value,C=rt(t);return w?w.getReviewItems(C).filter(_=>_.item.kind!=="custom"||_.item.carded):[]}),s=computed(()=>i.value.find(w=>w.isActive)?.key??null),a=(w,C)=>{let _=e.value;return _?_.setActiveReviewItem(w,C).ok:false},u=w=>{let C=e.value;return !C||w.kind!=="revision"||w.readOnly?false:C.acceptReviewItem(w.key).ok},d=w=>{let C=e.value;return !C||w.kind!=="revision"||w.readOnly?false:C.rejectReviewItem(w.key).ok},l=w=>{let C=e.value;return !C||w.kind!=="comment"?false:C.setCommentResolved(w.key,true).ok},c=w=>{let C=e.value;return !C||w.kind!=="comment"?false:C.setCommentResolved(w.key,false).ok},m=computed(()=>(r(),e.value?.getEditingMode()==="viewing"?"the document is open for viewing":null)),f=w=>{let C=e.value;return !C||w.kind==="custom"||w.kind==="revision"&&w.readOnly?false:C.deleteReviewItem(w.key).ok},p=(w,C,_)=>C.trim().length===0||!e.value?false:e.value.replyToReviewItem(w.key,C,_).ok,y=computed(()=>{r();let w=e.value;return w?w.getSelectionPlacement()?.anchorY??null:null}),b=(w,C)=>w.trim().length===0||!e.value?false:e.value.addComment(w,C).ok,S=computed(()=>{r();let w=e.value;return w?w.isReviewPaneOpen():true}),R=w=>{let C=e.value;!C||C.isReviewPaneOpen()===w||C.exec({type:"toggleReviewPane"});},E=computed(()=>{r();let w=e.value;if(w===null)return false;let C=w.snapshot();return !C.isLoading&&C.parseError===null});return {items:i,activeKey:s,setActive:a,accept:u,reject:d,resolve:l,reopen:c,commentResolutionDisabledReason:m,remove:f,reply:p,selectionAnchorY:y,comment:b,paneOpen:S,setPaneOpen:R,ready:E}}function ir(e,t,n={}){return computed(()=>{let o=rt(e)??[],r=rt(t)??new Map,i=rt(n)??{},s=i.gap??8,a=i.scale??1,u=i.defaultHeight??0,d=new Map,l=Number.NEGATIVE_INFINITY;for(let c of o){let m=c.anchorY===null?Number.isFinite(l)?l:0:Math.max(c.anchorY,l);d.set(c.key,m),l=m+((r.get(c.key)??u)+s)/a;}return d})}var ur=new Set(["List","Markers","AddComment","Draft","Balloon"]),cr=new Set(["Card","Empty"]);function mr(e){return isVNode(e)}function Oe(e,t){let n=t==="root"?ur:cr,o={},r=[],i=s=>{for(let a of s){if(!mr(a))continue;if(a.type===Fragment){let d=Array.isArray(a.children)?a.children:[];i(d);continue}let u=a.type.docxReviewPart;u&&n.has(u)?o[u]=a:r.push(a);}};return i(e),{parts:o,rest:r}}function at(e,t){if(!t)return e;let n=e.props.class;return cloneVNode(e,{class:`${t}${n?` ${n}`:""}`})}var So=e=>e.isLoading||e.parseError!==null||e.pageSetup==null,ke=e=>e.editingMode==="viewing",Io={scale:96/72,top:0,left:null,compactCardLeft:null},Eo=16,Pe=300,Ao=12,te="\0compose",it=600,st=8,Oo=72,ko=64,Po=480,To=30,_o=Object.freeze({placement:false});function Te(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 _e(e){return new Set(e.map(t=>t.id))}function L(e){let t=e.target?.tagName;t==="INPUT"||t==="SELECT"||t==="TEXTAREA"||e.preventDefault();}function Mo(e){let t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?"?":t.slice(0,2).map(n=>n[0].toUpperCase()).join("")}var lt=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function Do(e){let t={},n=[],o=r=>{if(!r)return;let i=Array.isArray(r)?r:[r];for(let s of i){if(!isVNode(s))continue;if(s.type===Fragment){o(s.children);continue}let a=s.type.docxReviewPart;a?t[a]=s:n.push(s);}};return o(e),n.length>0&&(t.__extra=n),t}function k(e,t){return e.docxReviewPart=t,e}var $t=Symbol("ReviewContext"),Kt=Symbol("ReviewItemContext"),gr={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},hr={t:void 0,cardClassName:void 0,readOnly:false,composeTop:null,review:gr,allItems:[],authorSlots:new Map,authorInfo:new Map,draftAuthor:null,draftAuthorInfo:void 0,draftAuthorSlot:0,byId:new Map,measure:()=>{},beginDraft:()=>{},endDraft:()=>{},expandedResolvedKey:null,setExpandedResolvedKey:()=>{}};function P(){return inject($t,computed(()=>hr))}var Cr=computed(()=>null);function $(){return inject(Kt,Cr)}function br(e){let t=P();return computed(()=>{let n=toValue(e);return n===void 0?void 0:t.value.authorInfo.get(n)})}function B(){let e=P(),{t}=useTranslation();return n=>e.value.t?.(n)??t(n)}function xr(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 dt=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=P(),o=shallowRef(e.entry);watchEffect(()=>{let a=n.value.byId.get(e.entry.id)??e.entry;o.value={...a,replyIds:[...a.replyIds]};}),provide(Kt,o);let r=null,i=null,s=a=>{let u=a instanceof HTMLElement?a:null,d=u&&e.measureKey?e.measureKey:null;r===u&&i===d||(i&&n.value.measure(null,i),r=u,i=d,r&&i&&n.value.measure(r,i));};return onBeforeUnmount(()=>{s(null);}),()=>h("div",{onVnodeMounted:a=>{s(a.el instanceof Element?a.el:null);},onVnodeUpdated:a=>{s(a.el instanceof Element?a.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":""}:{}},[h(Fragment,{key:xr(o.value)},t.default?.())])}}),ut=defineComponent({name:"ReviewReplyScope",props:{entry:{type:Object,required:true}},setup(e,{slots:t}){let n=P(),o=shallowRef(e.entry);return watchEffect(()=>{let r=n.value.byId.get(e.entry.id)??e.entry;o.value={...r,replyIds:[...r.replyIds]};}),provide(Kt,o),()=>t.default?.()}});function qo(e){let t=ref(new WeakMap),n=ref(new Map),o=ref(null),r=(i,s)=>{let a=n.value.get(s);if(!i){a&&(o.value?.unobserve(a),t.value.delete(a),n.value.delete(s));return}typeof ResizeObserver>"u"||(e(s,i.offsetHeight),o.value??=new ResizeObserver(u=>{for(let d of u){let l=t.value.get(d.target);l&&e(l,d.target.offsetHeight);}}),!(a===i&&t.value.get(i)===s)&&(a&&(o.value.unobserve(a),t.value.delete(a)),t.value.set(i,s),n.value.set(s,i),o.value.observe(i)));};return onUnmounted(()=>{o.value?.disconnect(),n.value.clear();}),r}function Ht(e,t){return e?.color??`var(--doc-review-author-${t%st})`}function le(e,t,n){return e?{"--doc-review-author-current":Ht(t,n)}:{}}function ye(e,t){return (e?.slot??t)%st}function Bo(e,t,n,o,r){let i=new Map;for(let a of e)i.set(a.author,a);let s=[...t.map(a=>a.author),o?.getConfiguredAuthor()];for(let a of s){if(!a||i.has(a))continue;let u=n.get(a)??0,d=o?.getReviewAuthorStyle(a),l=d?.color??`var(--doc-review-author-${u%st})`,c=r.get(a),m=c?.slot===u&&c.color===l&&c.style===d?c:{author:a,slot:u,color:l,...d?{style:d}:{}};r.set(a,m),i.set(a,m);}return i}var j=e=>h("svg",{viewBox:"0 -960 960 960",width:16,height:16,ariaHidden:true,focusable:false},[h("path",{d:e,fill:"currentColor"})]),jo="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",Fo="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",Sr="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",De="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z",ct=()=>h("span",{class:"docx-review__resolved-icon"},[h("span",{class:"docx-review__resolved-comment"},[j(Sr)]),h("span",{class:"docx-review__resolved-tick"},[j(De)])]),Yo="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",Go="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",Zo="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",Ir="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",Er="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",Ar="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",Or="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 zo(e){if(e.kind==="comment")return Fo;if(e.kind==="custom")return e.item.icon??Or;switch(e.revisionKind){case "insert":case "moveTo":return Ir;case "delete":case "moveFrom":return Er;case "format":return Ar;default:return Fo}}function mt(e,t){if(e==="paragraphMark")return t==="delete"?"revisions.paragraphMarkDeleted":t==="moveFrom"?"revisions.paragraphMarkMovedFrom":t==="moveTo"?"revisions.paragraphMarkMovedTo":"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 Tr(e,t){return typeof t!="function"?e:typeof e!="function"?t:n=>{e(n),n.defaultPrevented||t(n);}}function _r(e,t){let n=mergeProps(e,t);for(let o of Object.keys(e))/^on[A-Z]/.test(o)?n[o]=Tr(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 Qo(e){return e==="Enter"||e===" "}function Mr(e){return Qo(e.key)?(e.preventDefault(),e.stopPropagation(),true):false}function Jo(e){return e==="button"}function Xo(e,t){return e==="a"||t.href!=null}var Re=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??{},i=_r(e.slotProps,r);if(!e.engineDisabled){if(!Jo(o.type)){let s={onClick:a=>{typeof r.onClick=="function"&&r.onClick(a),!a.defaultPrevented&&typeof e.slotProps.onClick=="function"&&e.slotProps.onClick(a),Xo(o.type,r)&&a.preventDefault();},onKeydown:a=>{typeof r.onKeydown=="function"&&r.onKeydown(a),Qo(a.key)&&(!a.defaultPrevented&&typeof e.slotProps.onClick=="function"&&e.slotProps.onClick(a),Xo(o.type,r)&&a.preventDefault());}};i.onClick=s.onClick,i.onKeydown=s.onKeydown;}return cloneVNode(o,i)}if(Jo(o.type))i.disabled=true,delete i["aria-disabled"];else {delete i.disabled,i["aria-disabled"]=true,i["data-disabled"]="",i.tabIndex=-1,i.href=void 0,i.role===void 0&&(i.role="button");let s=i.onKeydown;i.onKeydown=a=>{Mr(a)||typeof s=="function"&&s(a);};}return e.disabledReason&&(i.title=e.disabledReason),i.onClick=s=>{s.preventDefault(),s.stopPropagation();},cloneVNode(o,i)}}});function on(e){let t=k(defineComponent({name:"ReviewResolve",props:{className:String,asChild:Boolean,hidden:Boolean,icon:{type:[Object,String],default:void 0}},setup(o,{slots:r}){let i=e.useRail(),s=e.useItem(),a=e.useLabel(),u=useEditorState(ke);return ()=>{let d=s.value;if(o.hidden||!d||d.kind!=="comment"||d.resolved)return null;let l=i.value.review,c=a("comments.resolve"),m=u.value||l.commentResolutionDisabledReason!==null,f=m?a("editingMode.viewingHint"):null,p={type:"button",class:`docx-review__action${o.className?` ${o.className}`:""}`,"data-testid":"review-resolve","aria-label":c,title:f??c,disabled:m,onMousedown:L,onClick:y=>{y.stopPropagation(),!m&&l.resolve(d);}};return o.asChild?h(Re,{engineDisabled:m,disabledReason:f,slotProps:p},r.default):h("button",p,o.icon??r.default?.()??j(De))}}}),"Resolve"),n=k(defineComponent({name:"ReviewReopen",props:{className:String,asChild:Boolean,hidden:Boolean,icon:{type:[Object,String],default:void 0}},setup(o,{slots:r}){let i=e.useRail(),s=e.useItem(),a=e.useLabel(),u=useEditorState(ke);return ()=>{let d=s.value;if(o.hidden||!d||d.kind!=="comment"||!d.resolved)return null;let l=i.value.review,c=a("comments.reopen"),m=u.value||l.commentResolutionDisabledReason!==null,f=m?a("editingMode.viewingHint"):null,p={type:"button",class:`docx-review__action${o.className?` ${o.className}`:""}`,"data-testid":"review-reopen","aria-label":c,title:f??c,disabled:m,onMousedown:L,onClick:y=>{y.stopPropagation(),!m&&l.reopen(d);}};return o.asChild?h(Re,{engineDisabled:m,disabledReason:f,slotProps:p},r.default):h("button",p,o.icon??r.default?.()??j(Yo))}}}),"Reopen");return {ReviewResolve:t,ReviewReopen:n}}var nn=new WeakMap;function Ve(e){let t=getCurrentInstance();if(!t)throw new Error("useReviewStableId must run during component setup");let n=t.appContext,o=nn.get(n)??0;return nn.set(n,o+1),`docx-review-${o}-${e}`}function sn(e){let t=k(defineComponent({name:"ReviewDraft",props:{top:{type:Number,default:0},left:{type:Number,default:null},className:String,hidden:Boolean},setup(o){let r=e.useRail(),i=e.useLabel(),s=ref(""),a=ref(false),u=Ve("draft"),d=null;onMounted(()=>{let c=getCurrentInstance()?.proxy?.$el;if(c instanceof HTMLElement&&(d=r.value.measure,d(c,te)),r.value.readOnly)return;(c instanceof HTMLElement?c.querySelector('[data-testid="review-draft-input"]'):null)?.focus({preventScroll:true});}),onBeforeUnmount(()=>{d?.(null,te);});let l=()=>{let{review:c,endDraft:m,readOnly:f}=r.value;if(f||s.value.trim().length===0)return;let p=c.comment(s.value.trim());a.value=!p,p&&(s.value="",m());};return ()=>{if(o.hidden)return null;let{readOnly:c,draftAuthor:m,draftAuthorInfo:f,draftAuthorSlot:p}=r.value;return 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`}}},[h("div",{class:"docx-review__card","data-testid":"review-draft","data-draft":"",...m?{"data-review-author":m,"data-review-author-slot":p}:{},style:le(m??void 0,f,p)},[h("form",{class:"docx-review__reply-box",onSubmit:y=>{y.preventDefault(),l();}},[h("label",{class:"docx-editor-sr-only",for:u},i("comments.addComment")),h("input",{id:u,"data-testid":"review-draft-input",class:"docx-review__input",value:s.value,placeholder:i("comments.addComment"),readonly:c,...a.value?{"aria-invalid":true}:{},onInput:y=>{c||(a.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(),l());}}),h("div",{class:"docx-review__reply-actions"},[h("button",{type:"button","data-testid":"review-draft-cancel",class:"docx-review__text-button",onMousedown:L,onClick:()=>r.value.endDraft()},i("common.cancel")),h("button",{type:"submit","data-testid":"review-draft-submit",class:"docx-review__submit",disabled:c||s.value.trim().length===0,title:c?i("editingMode.viewingHint"):void 0},i("common.comment"))]),a.value?h("span",{class:"docx-review__refused",role:"alert"},i("review.commentRefused")):null])])])}}}),"Draft"),n=k(defineComponent({name:"ReviewReply",props:{className:String,hidden:Boolean},setup(o,{slots:r}){let i=e.useRail(),s=e.useItem(),a=e.useLabel(),u=ref(""),d=ref(false),l=Ve("reply"),c=ve(),m=useDocxEditor(),f=p=>{let y=s.value,{review:b,readOnly:S,byId:R}=i.value,E=p?.querySelector('[data-testid="review-reply-input"]'),w=(E?.value??u.value).trim(),C=y?R.get(y.id)??y:null;if(!C||S||w.length===0)return;let _=m.value?.replyToReviewItem(C.key,w).ok??b.reply(C,w);d.value=!_,_&&(u.value="",E&&(E.value=""));};return ()=>{c.value;let p=s.value;if(o.hidden||!p||!p.isActive||p.kind==="comment"&&p.resolved)return null;let{review:y,readOnly:b}=i.value,S=r.default?.();return S?.length?S:jsxs("div",{class:`docx-review__reply-box${o.className?` ${o.className}`:""}`,children:[jsx("label",{class:"docx-editor-sr-only",for:l,children:a("comments.replyPlaceholder")}),jsx("input",{id:l,"data-testid":"review-reply-input",class:"docx-review__input",placeholder:a("comments.replyPlaceholder"),readonly:b,...d.value?{"aria-invalid":true,"data-refused":""}:{},onInput:R=>{b||(d.value=false,u.value=R.target.value);},onClick:R=>R.stopPropagation(),onKeydown:R=>{b||R.key!=="Enter"||(R.preventDefault(),f(R.currentTarget.closest(".docx-review__reply-box")));}}),jsxs("div",{class:"docx-review__reply-actions",children:[jsx("button",{type:"button","data-testid":"review-reply-cancel",class:"docx-review__text-button",onMousedown:L,onClick:R=>{R.stopPropagation(),u.value="",d.value=false,y.setActive(null);},children:a("common.cancel")}),jsx("button",{type:"button","data-testid":"review-reply-submit",class:"docx-review__submit",disabled:b,title:b?a("editingMode.viewingHint"):void 0,onClick:R=>{R.preventDefault(),R.stopPropagation(),f(R.currentTarget.closest(".docx-review__reply-box"));},children:a("review.reply")})]}),d.value?jsx("span",{class:"docx-review__refused",role:"alert","data-testid":"review-reply-refused",children:a("review.replyRefused")}):null]})}}}),"Reply");return {ReviewDraft:t,ReviewReply:n}}var{ReviewResolve:Bt,ReviewReopen:Ft}=on({useRail:P,useItem:$,useLabel:B}),{ReviewDraft:jt,ReviewReply:Yt}=sn({useRail:P,useItem:$,useLabel:B});var vt=k(defineComponent({name:"ReviewEmpty",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=B();return ()=>e.hidden?null:jsx("div",{class:`docx-review__empty${e.className?` ${e.className}`:""}`,"data-testid":"review-empty",children:t.default?.()??n("review.empty")})}}),"Empty"),we=k(defineComponent({name:"ReviewAvatar",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=$(),o=P();return ()=>{let r=n.value;if(e.hidden||!r)return null;let i=t.default?.();if(i===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 jsx(Slot,{...s,children:i});let a=o.value.authorInfo.get(r.author)?.style?.avatarUrl,u=i??(a?jsx("img",{class:"docx-review__avatar-img",src:a,alt:"",loading:"lazy",decoding:"async",referrerpolicy:"no-referrer"}):void 0)??r.initials;return jsx("span",{...s,children:u})}}}),"Avatar"),ge=k(defineComponent({name:"ReviewAuthor",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=$(),o=B();return ()=>{let r=n.value;if(e.hidden||!r)return null;let i=r.author||o("comments.unknown"),s={class:`docx-review__author${e.className?` ${e.className}`:""}`,"data-testid":"review-author"};return e.asChild?jsx(Slot,{...s,children:t.default?.()}):jsx("span",{...s,children:t.default?.()??i})}}}),"Author"),he=k(defineComponent({name:"ReviewTime",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=$();return ()=>{let o=n.value;if(e.hidden||!o)return null;let r=o.date;if(!r)return null;let i=new Date(r);if(Number.isNaN(i.getTime()))return null;let s={class:`docx-review__time${e.className?` ${e.className}`:""}`,"data-testid":"review-time",datetime:r};return e.asChild?jsx(Slot,{...s,children:t.default?.()}):jsx("time",{...s,children:t.default?.()??lt.format(i)})}}}),"Time"),Ce=k(defineComponent({name:"ReviewSummary",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=$(),o=B();return ()=>{let r=n.value;if(e.hidden||!r)return null;let i=r.text,s=r.kind!=="revision"?null:o(mt(r.revisionKind,r.item.markDirection)),a=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 jsx(Slot,{...u,children:t.default?.()});let d=t.default?.();return d?jsx("div",{...u,children:d}):jsx("div",{...u,children:a?jsxs("span",{class:"docx-review__text",children:[o("review.replaced")," ",jsxs("span",{class:"docx-review__removed",children:['"',r.replacedText,'"']})," ",o("review.replacedWith")," ",jsxs("span",{class:"docx-review__added",children:['"',i,'"']})]}):jsxs(Fragment$1,{children:[s?jsx("span",{class:"docx-review__label","data-kind":r.kind==="revision"?r.revisionKind:"revision",children:s}):null,i?jsx("span",{class:"docx-review__text",children:i}):null]})})}}}),"Summary");function dn(e,t,n,o,r,i,s){return k(defineComponent({name:e,props:{className:String,asChild:Boolean,hidden:Boolean,icon:{type:[Object,String],default:void 0}},setup(a,{slots:u}){let d=P(),l=$(),c=B();return ()=>{let m=l.value,{readOnly:f,review:p}=d.value;if(a.hidden||!m||!s(m))return null;let y=c(o),b=f?c("editingMode.viewingHint"):null,S={type:"button",class:`docx-review__action${a.className?` ${a.className}`:""}`,"data-testid":n,"aria-label":y,title:b??y,disabled:f,onMousedown:L,onClick:R=>{R.stopPropagation(),!f&&i(p,m);}};return a.asChild?jsx(Re,{engineDisabled:f,disabledReason:b,slotProps:S,children:u.default?.()}):jsx("button",{...S,children:a.icon??u.default?.()??j(r)})}}}),t)}var Ue=dn("ReviewAccept","Accept","review-accept","review.accept",De,(e,t)=>e.accept(t),e=>e.kind==="revision"&&!e.readOnly),He=dn("ReviewReject","Reject","review-reject","review.reject",Go,(e,t)=>e.reject(t),e=>e.kind==="revision"&&!e.readOnly),yt=k(defineComponent({name:"ReviewDelete",props:{className:String,asChild:Boolean,hidden:Boolean,icon:{type:[Object,String],default:void 0}},setup(e,{slots:t}){let n=P(),o=$(),{t:r}=useTranslation();return ()=>{let i=o.value,{readOnly:s,review:a}=n.value;if(e.hidden||!i||i.kind==="custom"||i.kind==="revision"&&i.readOnly)return null;let u=i.kind==="comment"?r("review.deleteComment"):r("review.discardChange"),d=s?r("editingMode.viewingHint"):null,l={type:"button",class:`docx-review__action${e.className?` ${e.className}`:""}`,"data-testid":"review-delete","aria-label":u,title:d??u,disabled:s,onMousedown:L,onClick:c=>{c.stopPropagation(),!s&&a.remove(i);}};return e.asChild?jsx(Re,{engineDisabled:s,disabledReason:d,slotProps:l,children:t.default?.()}):jsx("button",{...l,children:e.icon??t.default?.()??j(Zo)})}}}),"Delete"),Gt=k(defineComponent({name:"ReviewReplies",props:{className:String,hidden:Boolean},setup(e){let t=P(),n=$();return ()=>{let o=n.value;if(e.hidden||!o||o.kind==="custom")return null;let i=(t.value.byId.get(o.id)??o).replyIds.map(s=>t.value.byId.get(s)).filter(s=>s!==void 0);return i.length===0?null:jsx("ol",{class:`docx-review__replies${e.className?` ${e.className}`:""}`,children:i.map(s=>jsx(ut,{entry:s,children:jsxs("li",{class:"docx-review__reply","data-testid":"review-reply",children:[jsxs("div",{class:"docx-review__head",children:[jsx(we,{}),jsxs("div",{class:"docx-review__meta",children:[jsx(ge,{}),jsx(he,{})]}),jsx("div",{class:"docx-review__actions",children:jsx(yt,{})})]}),jsx(Ce,{})]})},s.key))})}}}),"Replies"),ln=defineComponent({name:"ReviewCardPreset",setup(e,{slots:t}){let n=$(),o=computed(()=>Do(t.default?.()));return ()=>{let r=n.value;if(!r)return null;let i=(a,u)=>a in o.value?o.value[a]:u;if(r.kind==="custom"&&r.item.kind==="custom"){let a=r.item;return jsxs(Fragment$1,{children:[jsxs("div",{class:"docx-review__head",children:[i("Avatar",null),jsx("div",{class:"docx-review__meta",children:i("Author",jsx("span",{class:"docx-review__author","data-testid":"review-custom-title",children:a.title}))})]}),i("Summary",a.detail?jsx("div",{class:"docx-review__summary","data-testid":"review-summary","data-review-selectable":"",children:jsx("span",{class:"docx-review__text",children:a.detail})}):null),o.value.__extra]})}let s=r.kind==="revision"&&!r.readOnly;return jsxs(Fragment$1,{children:[jsxs("div",{class:"docx-review__head",children:[i("Avatar",jsx(we,{})),jsxs("div",{class:"docx-review__meta",children:[i("Author",jsx(ge,{})),i("Time",jsx(he,{}))]}),s||r.kind==="comment"?jsxs("div",{class:"docx-review__actions",children:[i("Accept",jsx(Ue,{})),i("Reject",jsx(He,{})),i("Resolve",jsx(Bt,{})),i("Reopen",jsx(Ft,{})),i("Delete",jsx(yt,{}))]}):null]}),i("Summary",jsx(Ce,{})),i("Replies",jsx(Gt,{})),i("Reply",jsx(Yt,{})),o.value.__extra]})}}}),qe=k(defineComponent({name:"ReviewCard",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=P(),o=$(),r=Ve("card"),i=B(),s=null,a=d=>{s=d.el instanceof HTMLDetailsElement?d.el:s;},u=d=>{s?.open&&d.target instanceof Node&&!s.contains(d.target)&&(n.value.setExpandedResolvedKey(null),n.value.review.setActive(null),s.open=false);};return onMounted(()=>document.addEventListener("pointerdown",u,true)),onBeforeUnmount(()=>document.removeEventListener("pointerdown",u,true)),()=>{let d=o.value;if(e.hidden||!d)return null;let{review:l,authorSlots:c,authorInfo:m,expandedResolvedKey:f,setExpandedResolvedKey:p}=n.value,y=c.get(d.author)??0,b=!e.asChild&&d.kind==="comment"&&d.resolved,S={class:`docx-review__card${e.className?` ${e.className}`:""}`,"data-testid":"review-card",...b?{}:{"aria-labelledby":`${r}-author ${r}-summary`},"data-kind":d.kind==="revision"?d.revisionKind??"revision":d.kind,...d.author?{"data-review-author":d.author,"data-review-author-slot":ye(m.get(d.author),y)}:{},...d.kind==="custom"&&d.item.kind==="custom"?{"data-node-name":d.item.name}:{},...d.isActive?{"data-active":""}:{},...d.kind==="comment"&&d.resolved?{"data-resolved":""}:{},...b?{"data-resolved-miniature":""}:{},style:le(d.author,m.get(d.author),y),...b?{}:{tabIndex:0,role:"button"},id:r,...b?{}:{onMousedown:R=>{R.target?.closest("[data-review-selectable]")||R.currentTarget.focus({preventScroll:true});},onClick:R=>{R.target?.closest("button, input, textarea, .docx-review__reply-box, [data-review-selectable]")||d.isActive||l.setActive(d.key);},onKeydown:R=>{R.target===R.currentTarget&&(R.key!=="Enter"&&R.key!==" "||(R.preventDefault(),l.setActive(d.key)));}}};return e.asChild?jsx(Slot,{...S,children:t.default?.()}):b?h("details",{...S,open:f===d.key,onVnodeMounted:a,onVnodeUpdated:a,onVnodeBeforeUnmount:()=>{s=null;},onToggle:R=>{let E=R.currentTarget.open;p(E?d.key:null),l.setActive(E?d.key:null);}},[h("summary",{class:"docx-review__resolved-toggle","aria-label":i("review.showResolvedComment")},[h("span",{class:"docx-review__resolved-status"},i("review.resolved")),ct()]),h(ln,null,{default:()=>t.default?.()})]):jsx("div",{...S,children:h(ln,null,{default:()=>t.default?.()})})}}}),"Card");var Wt=k(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=P();return ()=>{if(e.hidden)return null;let{review:o,cardClassName:r}=n.value,i=t.default?.()??[],s=t.item,a=s?null:Oe(i,"list"),u=_e(o.items),d=o.items.filter(l=>!Te(l,u));return d.length===0?s?null:a?.parts.Empty??jsx(vt,{}):h("div",{class:`docx-review__list${e.className?` ${e.className}`:""}`},d.map(l=>{let c=e.stack?e.positions?.get(l.key)??l.anchorY:l.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 f=m===null?{}:{position:"absolute",top:`${m}px`};return h(dt,{key:l.key,entry:l,measureKey:l.key,collapsed:e.collapsed?.has(l.key),style:f},()=>s?s({item:l}):a?.parts.Card?at(a.parts.Card,r):h(qe,r?{className:r}:{},()=>a?.rest))}))}}}),"List"),Jt=k(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=P(),n=B(),o=computed(()=>{let{review:r}=t.value,i=_e(r.items),s=r.items.filter(d=>!Te(d,i)),a=new Map,u=Number.NEGATIVE_INFINITY;for(let d of s){if(d.anchorY===null)continue;let l=Math.max(e.offset+d.anchorY*e.scale,u);a.set(d.key,l),u=l+To;}return {roots:s,stackedTops:a}});return ()=>{if(e.hidden)return null;let{review:r,authorSlots:i,authorInfo:s,setExpandedResolvedKey:a}=t.value,{roots:u,stackedTops:d}=o.value;return jsx("div",{class:`docx-review__markers${e.className?` ${e.className}`:""}`,children:u.map(l=>{let c=d.get(l.key);return c===void 0||e.window&&(c<e.window.top||c>e.window.bottom)?null:jsx("button",{type:"button",class:"docx-review__marker","data-testid":"review-marker","data-kind":l.kind==="revision"?l.revisionKind:l.kind,...l.author?{"data-review-author":l.author,"data-review-author-slot":ye(s.get(l.author),i.get(l.author)??0)}:{},style:{position:"absolute",top:`${c}px`,...l.author?{"--doc-review-author-current":Ht(s.get(l.author),i.get(l.author)??0)}:{}},title:l.author?`${l.author}: ${l.text}`:l.text,"aria-label":`${n("review.showPane")}: ${l.author?`${l.author}. `:""}${l.text}`,onMousedown:L,onClick:()=>{l.kind==="comment"&&l.resolved&&a(l.key),r.setPaneOpen(true),r.setActive(l.key);},children:(typeof e.icon=="function"?e.icon(l):e.icon)??(l.kind==="comment"&&l.resolved?ct():j(zo(l)))},l.key)})})}}}),"Markers"),Xt=k(defineComponent({name:"ReviewAddComment",props:{top:{type:Number,default:null},drafting:{type:Boolean,default:false},className:String,hidden:Boolean},setup(e,{slots:t}){let n=P(),o=B();return ()=>{let{beginDraft:r,composeTop:i,readOnly:s}=n.value;if(e.hidden||e.drafting||i===null||s)return null;let a={type:"button",class:`docx-review__add${e.className?` ${e.className}`:""}`,"data-testid":"review-add-comment",style:{position:"absolute",top:`${i}px`},"aria-label":o("common.comment"),title:o("common.comment"),onMousedown:L,onClick:r},u=t.default?.();return u?.length?h(Slot,a,()=>u):h("button",a,j(jo))}}}),"AddComment"),Gr=defineComponent({name:"BalloonTime",props:{raw:{type:String,required:true}},setup(e){return ()=>{let t=new Date(e.raw);return Number.isNaN(t.getTime())?null:jsx("time",{class:"docx-review__time",datetime:e.raw,children:lt.format(t)})}}}),Qt=k(defineComponent({name:"ReviewBalloon",props:{className:String,hidden:Boolean},setup(e){let t=getCurrentInstance(),n=P(),o=B(),r=ref(null),i=ref(false),s=ref(false);watch(r,l=>{i.value=l!==null;});let a;onMounted(()=>{let l=getCurrentInstance()?.proxy?.$el,c=l?.closest(".docx-review"),m=c?.closest(".docx-editor__scroll-container")??c?.offsetParent;if(!l||!c||!m)return;let f=(y,b)=>{let S=c.getBoundingClientRect(),R=y.getBoundingClientRect(),E=y.ownerDocument.defaultView?.innerHeight??1/0,w=Number(y.dataset.start),C=Number(y.dataset.end);r.value={revisionId:y.dataset.revisionId,author:y.dataset.reviewAuthor??"",...y.dataset.revisionDate!==void 0?{date:y.dataset.revisionDate}:{},...y.dataset.revisionKind!==void 0?{kind:y.dataset.revisionKind}:{},structuralSite:b,...y.dataset.paragraphId!==void 0?{paragraphId:y.dataset.paragraphId}:{},...Number.isFinite(w)?{start:w}:{},...Number.isFinite(C)?{end:C}:{},left:R.left-S.left,top:R.top-S.top,bottom:R.bottom-S.top,above:R.bottom+220>E},t?.proxy?.$forceUpdate();},p=y=>{let b=y.target;if(!(b instanceof Element)||l.contains(b))return;let S=b.closest("[data-revision-id]");if(S instanceof HTMLElement&&m.contains(S)){let R=S.classList.contains("docx-table-row--revision");if(S.dataset.revisionKind==="format"||R){f(S,R);return}}i.value&&(r.value=null,t?.proxy?.$forceUpdate());};m.addEventListener("pointerdown",p,true),m.addEventListener("mousedown",p,true),a=()=>{m.removeEventListener("pointerdown",p,true),m.removeEventListener("mousedown",p,true);};}),onUnmounted(()=>a?.());let u=computed(()=>{let l=r.value;if(!l)return null;let{allItems:c}=n.value,m=null,f=false,p=null,y=false,b=null,S=false;for(let R of c)if(!(R.kind!=="revision"||R.item.kind!=="revision")){for(let E of R.item.addresses)if(E.id===l.revisionId){if(E.author===l.author){if(E.date===l.date)return R;m===null?m=R:m!==R&&(f=true);}p===null?p=R:p!==R&&(y=true);}if(l.paragraphId!==void 0&&l.start!==void 0&&l.end!==void 0&&(R.revisionKind==="format"||R.revisionKind==="structural")){for(let E of R.item.ranges)if(E.start.paragraphId===l.paragraphId&&E.start.offset<l.end&&E.end.offset>l.start){b===null?b=R:b!==R&&(S=true);break}}}return m!==null&&!f?m:p!==null&&!y?p:b!==null&&!S?b:null}),d=computed(()=>{let l=u.value;return l&&(l.revisionKind==="format"||l.revisionKind==="structural")?l:null});return watch(d,l=>{if(l){s.value=true;return}s.value&&(s.value=false,r.value=null);}),()=>{if(e.hidden)return null;let{review:l,authorSlots:c,authorInfo:m}=n.value,f=r.value,p=f?.kind==="format"?"format":"structural",y=d.value,b=f===null?null:h("div",{class:"docx-review__balloon","data-testid":"review-balloon",style:{left:`${f.left}px`,top:`${f.above?f.top-6:f.bottom+6}px`,transform:f.above?"translateY(-100%)":void 0},onMousedown:L},y?h(ut,{entry:y},()=>h("div",{class:"docx-review__card","data-testid":"review-balloon-card","data-kind":y.revisionKind??"revision",...y.author?{"data-review-author":y.author,"data-review-author-slot":ye(m.get(y.author),c.get(y.author)??0)}:{},style:le(y.author,m.get(y.author),c.get(y.author)??0),onClick:()=>l.setActive(y.key)},[h("div",{class:"docx-review__head"},[h(we),h("div",{class:"docx-review__meta"},[h(ge),h(he)]),y.kind==="revision"&&!y.readOnly?h("div",{class:"docx-review__actions"},[h(Ue),h(He)]):null]),h(Ce)])):h("div",{class:"docx-review__card","data-testid":"review-balloon-card","data-kind":p,...f.author?{"data-review-author":f.author,"data-review-author-slot":ye(m.get(f.author),c.get(f.author)??0)}:{},style:le(f.author,m.get(f.author),c.get(f.author)??0)},[h("div",{class:"docx-review__head"},[h("span",{class:"docx-review__avatar","aria-hidden":true},Mo(f.author)),h("div",{class:"docx-review__meta"},[h("span",{class:"docx-review__author"},f.author||o("comments.unknown")),f.date?h(Gr,{raw:f.date}):null])]),h("div",{class:"docx-review__summary"},[h("span",{class:"docx-review__label","data-kind":p},o(mt(p)))])]));return h("div",{class:`docx-review__balloon-root${e.className?` ${e.className}`:""}`},b===null?void 0:[b])}}}),"Balloon");function Fe(e,t,n){if(!(e in n))return t;let o=n[e];return !isVNode(o)||!isVNode(t)?o:cloneVNode(o,mergeProps(t.props??{},o.props??{}))}var ia=defineComponent({name:"ReviewDraftMount",props:{top:{type:Number,required:true},left:{type:Number,default:null}},setup(e){return ()=>h(jt,{top:e.top,left:e.left})}});function sa(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 la=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=getCurrentInstance(),o=useDocxEditor(),r=useEditorState(So),i=useEditorState(ke),s=ve(),a=computed(()=>{let v=[];return e.structural||v.push("structural"),e.formatting||v.push("format"),v.length>0?v:void 0}),u=computed(()=>a.value?{excludeRevisionKinds:a.value}:void 0);watch([o,a],()=>{o.value?.setReviewActivationExclusions(a.value??null);},{immediate:true}),onUnmounted(()=>{o.value?.setReviewActivationExclusions(null);}),bo(s);let d=Dt(_o,s),l=Dt(()=>u.value,s),{t:c}=useTranslation(),m=(v,g)=>e.t?.(v,g)??c(v,g),f=shallowRef(null),p=inject(ReviewRailContext,shallowRef({mounted:0,register:()=>()=>{},registerCommentDraft:()=>()=>{},requestCommentDraft:()=>false})),y=ref(false),b,S=()=>{if(!y.value||e.hidden){b?.(),b=void 0;return}b??=p.value.register();};onMounted(()=>{y.value=true,S();}),watch(()=>e.hidden,S);let R=computed(()=>l.paneOpen.value),E=useReviewGutter(),w=ref(null),C=computed(()=>R.value&&(w.value??E.value.inlineEnd)>0&&(w.value??E.value.inlineEnd)<REVIEW_PANE_GUTTER),_=computed(()=>R.value&&!C.value),K=computed(()=>e.filter?l.items.value.filter(v=>e.filter(v)):l.items.value),X=ref(null);watch(K,v=>{let g=X.value;g!==null&&!v.some(h=>h.key===g&&h.kind==="comment"&&h.resolved)&&(X.value=null);},{flush:"sync"});let Y=computed(()=>o.value?.getConfiguredAuthor()??null),ne=computed(()=>{let v=new Map;for(let g of K.value)g.author&&!v.has(g.author)&&v.set(g.author,v.size);return Y.value&&!v.has(Y.value)&&v.set(Y.value,v.size),v}),Et=useReviewAuthors(),At=new Map,We=computed(()=>Bo(Et.value,K.value,ne.value,o.value,At)),Ne=computed(()=>{let v=new Map;for(let g of d.items.value)v.set(g.id,g);return v}),Je=ref(new Map),kn=qo((v,g)=>{if(g<=0||Je.value.get(v)===g)return;let h=new Map(Je.value);h.set(v,g),Je.value=h;}),M=ref(Io),Se;watch([o,K,r,()=>e.hidden,f,C],()=>{Se?.(),Se=void 0;let v=f.value,g=o.value;if(!g||!v||r.value||e.hidden)return;let h=v.offsetParent,A=h?.querySelector(".docx-paginated-surface")??null,N=()=>{if(h){let pe=Number.parseFloat(getComputedStyle(h).getPropertyValue("--docx-review-gutter"));w.value=Number.isFinite(pe)?pe:null;}else w.value=null;let V=A&&h?A.getBoundingClientRect():null,ee=V&&h?h.getBoundingClientRect():null,me=V&&ee&&h?V.right-ee.left-h.clientLeft+h.scrollLeft+Eo:null,ae={scale:g.getRenderScale(),top:V&&ee&&h?V.top-ee.top-h.clientTop+h.scrollTop:0,left:me,compactCardLeft:me===null||!h?null:h.scrollLeft+h.clientWidth-me-Pe-Ao},fe=M.value;(fe.scale!==ae.scale||fe.top!==ae.top||fe.left!==ae.left||fe.compactCardLeft!==ae.compactCardLeft)&&(M.value=ae);};N();let O=new ResizeObserver(N);h&&O.observe(h),A&&O.observe(A);let F=h&&typeof MutationObserver<"u"?new MutationObserver(N):null;if(F?.observe(h,{attributes:true,attributeFilter:["style"]}),!C.value||!h){Se=()=>{F?.disconnect(),O.disconnect();};return}let q=0,D=()=>{q===0&&(q=requestAnimationFrame(()=>{q=0,N();}));};h.addEventListener("scroll",D,{passive:true}),Se=()=>{q!==0&&cancelAnimationFrame(q),h.removeEventListener("scroll",D),F?.disconnect(),O.disconnect();};},{flush:"post"}),onUnmounted(()=>Se?.());let Xe;watch([o,r,()=>e.hidden,f],()=>{Xe?.(),Xe=void 0;let v=f.value,g=o.value;if(!g||!v||r.value||e.hidden)return;let h=A=>{let N=A.target;if(!(N instanceof Node)||v.contains(N))return;let O=v.offsetParent;!O||!O.contains(N)||O.querySelector(".docx-paginated-surface")?.contains(N)||g.setActiveReviewItem(null);};document.addEventListener("mousedown",h,true),Xe=()=>document.removeEventListener("mousedown",h,true);},{flush:"post"}),onUnmounted(()=>Xe?.());let ce=ref(null),Qe;watch([o,r,()=>e.hidden,f],()=>{Qe?.(),Qe=void 0;let v=f.value,g=v?.offsetParent;if(!g||r.value||e.hidden)return;let h=0,A=()=>{h=0;let q=g.scrollTop-it,D=g.scrollTop+g.clientHeight+it,V=ce.value;ce.value=V&&V.top===q&&V.bottom===D?V:{top:q,bottom:D};},N=0,O=()=>{h===0&&(h=requestAnimationFrame(A)),v?.setAttribute("data-scrolling",""),window.clearTimeout(N),N=window.setTimeout(()=>v?.removeAttribute("data-scrolling"),150);};A(),g.addEventListener("scroll",O,{passive:true});let F=new ResizeObserver(O);F.observe(g),Qe=()=>{h!==0&&cancelAnimationFrame(h),window.clearTimeout(N),g.removeEventListener("scroll",O),F.disconnect();};},{flush:"post"}),onUnmounted(()=>Qe?.());let Q=ref(null),et=shallowRef(null),Ie=()=>{let v=et.value;v&&v.editor.releaseSelection(v.pin),et.value=null,Q.value=null;};watch(()=>o.value,(v,g)=>{g&&g!==v&&et.value?.editor===g&&Ie();});let lo=()=>{let v=o.value;if(!v||i.value)return;let g=v.getSelectionPlacement()?.anchorY??null;if(g===null)return;Ie();let h=v.retainSelection();h&&(et.value={editor:v,pin:h},l.setPaneOpen(true),Q.value=g,n?.proxy?.$forceUpdate());},Ee,uo=()=>{if(!y.value||e.hidden){Ee?.(),Ee=void 0;return}Ee??=p.value.registerCommentDraft(lo);};onMounted(uo),watch(()=>e.hidden,uo);let Pn=()=>{Ie(),o.value?.focus(),n?.proxy?.$forceUpdate();};watch(R,v=>{v||Q.value===null||Ie();}),onBeforeUnmount(()=>{y.value=false,b?.(),b=void 0,Ee?.(),Ee=void 0,Ie();});let Ot=computed(()=>Q.value??l.selectionAnchorY.value),re=computed(()=>{let v=_e(K.value);return K.value.filter(g=>!Te(g,v))}),Tn=computed(()=>{let v=Q.value;if(v===null)return re.value;let g=re.value.findIndex(A=>A.anchorY!==null&&A.anchorY>v),h={key:te,anchorY:v};return g===-1?[...re.value,h]:[...re.value.slice(0,g),h,...re.value.slice(g)]}),_n=computed(()=>{let v=new Map(Je.value);for(let g of re.value){if(v.has(g.key))continue;let h=g.text.length+(g.kind==="revision"?g.replacedText?.length??0:0),A=Math.min(6,Math.max(1,Math.ceil(h/36)));v.set(g.key,64+A*20);}return v}),kt=computed(()=>{let v=M.value.scale,g=new Map,h=new Set,A=Number.NEGATIVE_INFINITY;for(let N of Tn.value){let O=N.anchorY===null?Number.isFinite(A)?A:0:Math.max(N.anchorY,A);g.set(N.key,O);let F=N.anchorY===null?0:(O-N.anchorY)*v,q="isActive"in N&&N.isActive,D=F>Po&&!q&&N.key!==te;D&&h.add(N.key);let V=D?ko:_n.value.get(N.key)??Oo;A=O+(V+e.gap)/v;}return {stacked:g,collapsedKeys:h}}),Ae=computed(()=>Ot.value===null?null:M.value.top+(C.value?Ot.value:kt.value.stacked.get(te)??Ot.value)*M.value.scale),Mn=computed(()=>(l.commentResolutionDisabledReason.value,l.selectionAnchorY.value,l.paneOpen.value,l.items.value.length,sa(l,K.value))),Pt=()=>{let v=Y.value,g=v?ne.value.get(v)??0:0;return {t:e.t,cardClassName:e.card?.className,readOnly:i.value,composeTop:Ae.value,review:Mn.value,allItems:d.items.value,authorSlots:ne.value,authorInfo:We.value,draftAuthor:v,draftAuthorInfo:v?We.value.get(v):void 0,draftAuthorSlot:g,byId:Ne.value,measure:kn,beginDraft:lo,endDraft:Pn,expandedResolvedKey:X.value,setExpandedResolvedKey:h=>{X.value=h;}}},Tt=shallowRef(Pt());return watchEffect(()=>{Tt.value=Pt();}),watch(()=>s.value,()=>{Tt.value=Pt(),n?.proxy?.$forceUpdate();},{flush:"sync"}),provide($t,Tt),()=>{if(e.hidden||r.value)return null;s.value,d.items.value,Q.value,K.value.length,l.selectionAnchorY.value,l.paneOpen.value,l.commentResolutionDisabledReason.value,Ae.value;let v=W=>{f.value=W.el instanceof HTMLElement?W.el:null;},g={onVnodeMounted:v,onVnodeUpdated:v,onVnodeBeforeUnmount:()=>{f.value=null;},class:`docx-review${e.className?` ${e.className}`:""}`,"data-testid":"review-rail","data-count":K.value.length,"data-open":_.value?"":void 0,"data-compact":C.value?"":void 0,role:"complementary","aria-label":m("review.ariaLabel"),onMousedown:L,style:M.value.left===null?void 0:{left:`${M.value.left}px`,right:"auto"}},h$1=t.default?.()??[],A=e.asChild&&h$1.length===1&&isVNode(h$1[0])?h$1[0]:null,{parts:N,rest:O}=Oe(A?[]:h$1,"root"),F={stack:e.stack,positions:kt.value.stacked,collapsed:kt.value.collapsedKeys,scale:M.value.scale,offset:M.value.top,window:ce.value},q=h(Jt,{scale:M.value.scale,offset:M.value.top,window:ce.value}),D=C.value?re.value.find(W=>W.key===l.activeKey.value)??null:null,V=D===null?null:D.anchorY!==null?M.value.top+D.anchorY*M.value.scale:ce.value!==null?ce.value.top+it+24:null,ee=Oe(O,"list"),me=D&&t.item?t.item({item:D}):ee.parts.Card?at(ee.parts.Card,e.card?.className):e.preset?h(qe,e.card?.className?{className:e.card.className}:{},()=>ee.rest):null,ae=D&&V!==null&&M.value.compactCardLeft!==null&&me?h(dt,{entry:D,className:"docx-review__slot--compact",testId:"review-compact-card",style:{position:"absolute",top:`${V}px`,left:`${M.value.compactCardLeft}px`,width:`${Pe}px`}},()=>me):null,fe=_.value?e.preset||"List"in N?Fe("List",h(Wt,F,{...O.length>0?{default:()=>O}:{},...t.item?{item:t.item}:{}}),N):O:e.preset||"Markers"in N?[Fe("Markers",q,N),ae]:O,pe=[_.value&&e.furniture!==void 0?h("div",{class:"docx-review__furniture","data-testid":"review-furniture"},[e.furniture]):null,fe,...e.preset||"AddComment"in N?[Fe("AddComment",h(Xt,{top:Ae.value,drafting:Q.value!==null}),N)]:[],...Q.value===null||Ae.value===null||!R.value||!e.preset&&!("Draft"in N)?[]:[Fe("Draft",h(ia,{top:Ae.value??0,left:C.value?M.value.compactCardLeft:null}),N)],...e.preset||"Balloon"in N?[Fe("Balloon",h(Qt),N)]:[]],U=A;if(!U)return h("aside",g,pe);let ie=cloneVNode(U,g,true);if(typeof U.type=="string"){let W=Array.isArray(U.children)?U.children:U.children==null?[]:typeof U.children=="string"||typeof U.children=="number"?[U.children]:[];ie.children=[...W,...pe],ie.shapeFlag=ie.shapeFlag&-9|16;}else {let W=U.children&&!Array.isArray(U.children)&&typeof U.children=="object"?U.children:{},co=W.default;ie.children={...W,default:(...Dn)=>[...co?[co(...Dn)]:[],...pe]},ie.shapeFlag=ie.shapeFlag&-25|32;}return ie}}});var da=Object.assign(la,{List:Wt,Empty:vt,Card:qe,Avatar:we,Author:ge,Time:he,Summary:Ce,Accept:Ue,Reject:He,Resolve:Bt,Reopen:Ft,Delete:yt,Replies:Gt,Reply:Yt,Markers:Jt,AddComment:Xt,Draft:jt,Balloon:Qt});function oe(){let e=useDocxEditor(),t=useEditorState(n=>n.collaborationStatus);return {session:computed(()=>(t.value,e.value?.collaborationSession()??null))}}function va(e){let t=oe(),n=shallowRef("inactive"),o=shallowRef(void 0),r=shallowRef(void 0),i=shallowRef(false);return watch(()=>e===void 0?t.session.value:toValue(e),(s,a,u)=>{let d=()=>{if(!s){n.value="inactive",o.value=void 0,r.value=void 0,i.value=false;return}let l=s.statusSnapshot();n.value=l.status,o.value=l.reason,r.value=l.lastFailure,i.value=s.attached??false;};d(),s&&u(s.subscribeStatus(()=>d()));},{immediate:true}),{status:readonly(n),reason:readonly(o),lastFailure:readonly(r),attached:readonly(i),live:computed(()=>n.value==="ready"),diverged:computed(()=>n.value==="error"||n.value==="destroyed")}}var Rn=Object.freeze([]);function ha(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 bt(e){let t=oe(),n=shallowRef(Rn);return watch(()=>e===void 0?t.session.value:toValue(e),(o,r,i)=>{let s=()=>{let a=o?o.participants():Rn;ha(n.value,a)||(n.value=a);};s(),o&&i(o.subscribeParticipants(()=>s()));},{immediate:true}),{participants:readonly(n)}}var Na=defineComponent({name:"DocxEditorCollaborationRoot",inheritAttrs:false,props:{collaboration:{type:Object,required:true}},setup(e,{slots:t,attrs:n}){return ()=>{let{document:o,modules:r,session:i}=e.collaboration;if(!o)return t.fallback?.()??null;let s=n.author??i?.identity.name;return h(DocxEditorRoot,{...n,key:i?.sessionId??"local",document:o,modules:r,...s!==void 0?{author:s}:{}},t.default?{default:t.default}:void 0)}}});var Ia=Symbol("useDocumentCollaboration.createRoom");async function Ea(e){let{createDocumentCollaboration:t}=await import('../document-session-2QOWIMD7.js');return t(e)}function Aa(e){return e?.[Ia]??Ea}function Oa(e){return e?`${e.documentId}:${e.bootstrap.kind}:${e.identity.actorId}`:""}function ka(e){let t=getCurrentInstance(),n=d({ownerKey:`vue-document:${String(t?.uid??"anonymous")}`,hookName:"useDocumentCollaboration",createRoomOf:()=>Aa(toValue(e)),hostModulesOf:()=>toValue(e)?.modules??c,autoRoomOf:()=>toValue(e)?.room??null,autoKeyOf:()=>Oa(toValue(e)?.room),rejoinOptionsOf:o=>({...o,bootstrap:{kind:"join"}}),identityOf:o=>o.identity});return {document:readonly(n.document),modules:readonly(n.modules),session:readonly(n.session),pending:readonly(n.pending),error:readonly(n.error),connect:n.connect,leave:n.leave}}var Ye=8;function wn(e){let t=/^var\(--doc-review-author-(\d{1,2})\)$/.exec(e);return t?Number(t[1])%Ye:null}function St(e,t,n,o){let r=new Map(e.map(a=>[a.author,a])),i=new Map,s=new Map;for(let a of t){if(s.has(a.actorId))continue;let u=safeParticipantColor(o?.(a.name));if(u!==void 0){s.set(a.actorId,{color:u,slot:wn(u)});continue}let d=safeParticipantColor(a.color);if(d!==void 0){s.set(a.actorId,{color:d,slot:null});continue}let l=r.get(a.name),c=safeParticipantColor(n?.(a.name));if(c!==void 0){s.set(a.actorId,{color:c,slot:wn(c)??(l?l.slot%Ye:null)});continue}if(l!==void 0){let f=l.slot%Ye;s.set(a.actorId,{color:safeParticipantColor(l.color)??`var(--doc-review-author-${f})`,slot:f});continue}let m=i.get(a.name);m===void 0&&(m=e.length+i.size,i.set(a.name,m)),s.set(a.actorId,{color:`var(--doc-review-author-${m%Ye})`,slot:m%Ye});}return s}function to(e,t,n,o){return St(e,[t],n,o).get(t.actorId)}function oo(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 gn(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 It(e,t,n){for(let o of e)if(o.author===t)return o.style?.avatarUrl;return n?.(t)?.avatarUrl}var hn=Symbol("docx-collaboration-avatar-accents");function Cn(e){return e!==void 0?{avatarUrl:e}:{}}function $a(e,t,n,o){return 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 bn=defineComponent({name:"CollaborationAvatar",props:{participant:{type:Object,required:true},className:{type:String,default:void 0}},setup(e,{slots:t}){let n=useDocxEditor(),o=useReviewAuthors(),r=inject(hn,null);return ()=>{let i=n.value,s=r?.value.get(e.participant.actorId)??to(o.value,e.participant,i?d=>i.presenceColorFor(d):void 0,i?d=>i.getReviewAuthorStyle(d)?.color:void 0),a=It(o.value,e.participant.name,i?d=>i.getReviewAuthorStyle(d):void 0),u=t.default?.()??(a!==void 0?h("img",{class:"docx-collaboration-avatar__image",src:a,alt:""}):oo(e.participant.name));return $a(e.participant,s,e.className,u)}}}),Ka=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=useDocxEditor(),o=oe(),r=computed(()=>e.session===void 0?o.session.value:e.session),{participants:i}=bt(r),s=useReviewAuthors(),{t:a}=useTranslation(),u=computed(()=>{let c=n.value;return St(s.value,i.value,c?m=>c.presenceColorFor(m):void 0,c?m=>c.getReviewAuthorStyle(m)?.color:void 0)}),d=computed(()=>{let c=n.value,m=c?p=>c.getReviewAuthorStyle(p):void 0,f=new Map;for(let p of i.value){if(f.has(p.name))continue;let y=It(s.value,p.name,m);y!==void 0&&f.set(p.name,y);}return f}),l=computed(()=>gn(i.value));return provide(hn,u),()=>{if(l.value.length===0)return null;let c=e.max===void 0?l.value:l.value.slice(0,Math.max(0,e.max)),m=l.value.length-c.length,f=a("collaboration.moreParticipants",{count:m});return h("span",{class:`docx-collaboration-avatars${e.className?` ${e.className}`:""}`,"data-collaboration-avatars":"",role:"group","aria-label":a("collaboration.participants")},[...c.map(p=>t.default?h(Fragment,{key:p.actorId},[t.default({participant:p,color:u.value.get(p.actorId).color,initials:oo(p.name),...Cn(d.value.get(p.name))})]):h(bn,{key:p.actorId,participant:p})),m>0?h("span",{class:"docx-collaboration-avatar","data-collaboration-avatar":"","data-overflow":"",title:f,role:"img","aria-label":f},`+${m}`):null])}}}),Ua=defineComponent({name:"CollaborationCaretLabels",props:{session:{type:Object,default:void 0}},setup(e,{slots:t}){let n=useDocxEditor(),o=oe(),r=computed(()=>e.session===void 0?o.session.value:e.session),{participants:i}=bt(r),s=useReviewAuthors(),a=shallowRef([]);return watch([n,r],([u,d],l,c)=>{!u||!d||(u.setRemoteCaretLabelHost({publish:m=>{a.value=[...m];}}),c(()=>{u.setRemoteCaretLabelHost(null),a.value=[];}));},{immediate:true}),()=>{if(a.value.length===0)return null;let u=St(s.value,i.value);return a.value.map(d=>{let{selection:l}=d,c=i.value.find(p=>p.actorId===l.actorId)??null,m=d.element.style.getPropertyValue("--doc-remote-color"),f=m!==""?m:u.get(l.actorId)?.color??to(s.value,{actorId:l.actorId,name:l.name,...l.color!==void 0?{color:l.color}:{},isLocal:false}).color;return h(Teleport,{to:d.element,key:l.actorId},[t.default?t.default({selection:l,participant:c,color:f,...Cn(It(s.value,l.name,n.value?p=>n.value.getReviewAuthorStyle(p):void 0))}):l.name])})}}}),Ha={CaretLabels:Ua,Avatars:Ka,Avatar:bn};function Ze(e){let t=useDocxEditor();return computed(()=>{let n=toValue(e);return n||(t.value?.getCustomNodeDefinitions()??[]).filter(nt)})}var Ga=".docx-content-control-boundary";function be(e,t){let{node:n,definition:o,controlId:r}=e,i=r?t?.getReviewItems().find(u=>u.kind==="custom"&&u.item.id===r):void 0;if(i?.kind==="custom"){let u=i.item;return {...n,attrs:u.attrs,text:u.text,...u.data===void 0?{}:{data:u.data},...r?{nodeId:r}:{}}}let s=r?Za(t,r,o):void 0,a=o.fromDocx?o.fromDocx({attrs:n.attrs,text:"",...s===void 0?{}:{data:s}}):n.attrs;return a===null?null:{...n,attrs:a,...s===void 0?{}:{data:s},...r?{nodeId:r}:{}}}function Za(e,t,n){let o=e?.surface;if(!o)return;let r=partOfNodeId(o.session,t),i=customNodePayloadsByControl(o.session.currentPackage(),(r??o.session.part()).name,o.session.part().name).get(t);if(!i)return;let s=ot(n.schema,i.data);return s.ok?s.value:void 0}function xe(e,t){let n=e?.closest?.(Ga),o=n?.closest(".docx-content-control-chrome"),r=o?.getAttribute("data-tag"),i=r?tt(r):null;if(!n||!i||!r)return null;let s=t.find(a=>a.tagPrefix===i.prefix&&a.name===i.name);return s?{node:{name:i.name,attrs:i.attrs,tag:r,rect:n.getBoundingClientRect()},definition:s,controlId:o?.getAttribute("data-docx-content-control")??null}:null}var io=".docx-content-control-boundary";function ei(e){if(!Mt.test(e.tagPrefix)||!Mt.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 ti=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=useDocxEditor(),n=Ze(()=>e.nodes),o,r=null,i=null,s=l=>xe(document.elementFromPoint(l.clientX,l.clientY),n.value),a=l=>{let c=l.button===0?s(l):null;r=c?.controlId??null,i=c?.node.tag??null;},u=l=>{let c=r,m=i;if(r=null,i=null,m===null)return;let f=s(l);if(!f||f.node.tag!==m||c!==null&&f.controlId!==c)return;let p=be(f,t.value);p&&(f.definition.onClick?.(p),e.onNodeClick?.(p));},d=l=>{let c=xe(l.target,n.value);if(!c||l.relatedTarget?.closest?.(io)===l.target.closest(io))return;let f=be(c,t.value);f&&(c.definition.onHover?.(f),e.onNodeHover?.(f));};return onMounted(()=>{o=watch(n,(l,c,m)=>{let f=document.createElement("style"),p=[];for(let y of l){let b=ei(y);if(b.length===0)continue;let S=y.chrome?.color,R=S!==void 0&&typeof CSS<"u"&&CSS.supports("color",S)?S:"var(--doc-accent)";p.push(`${b.map(E=>`${E} ${io}`).join(", ")} {`," pointer-events: auto !important;"," opacity: 1;"," border: none;",` background: color-mix(in srgb, ${R} 12%, transparent);`," border-radius: 6px;"," cursor: default;","}");}f.textContent=p.join(`
1
+ import {a,d,c}from'../chunk-W3V54DWZ.js';export{b as collaborationModule}from'../chunk-W3V54DWZ.js';import {customNodePayloadsByControl,parseNoteScopeId,findNode,revisionItemsOf,collectReviewItems,paragraphOrderOfPart,locateSites,contentControlPropertiesOf}from'@docx-editor.dev/core/store';import {reviewItemPositionRank}from'@docx-editor.dev/core/layout';import {computed,defineComponent,shallowRef,watchEffect,provide,onBeforeUnmount,h,Fragment,cloneVNode,onMounted,getCurrentInstance,ref,watch,onUnmounted,inject,isVNode,Teleport,mergeProps,toValue,readonly}from'vue';import {Slot,useTranslation,useDocxEditor,useEditorState,ReviewRailContext,useReviewGutter,REVIEW_PANE_GUTTER,useReviewAuthors,DocxEditorRoot,useContextMenuTarget,ContextMenuItem}from'@docx-editor.dev/vue';import {jsx,jsxs,Fragment as Fragment$1}from'vue/jsx-runtime';import {safeParticipantColor}from'@docx-editor.dev/core/collaboration';import {partOfNodeId}from'@docx-editor.dev/core/editor';var Ln=new Set(["__proto__","constructor","prototype"]);function tt(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("?"),i=r===-1?o:o.slice(0,r);if(i.length===0)return null;let s=Object.create(null);if(r!==-1)for(let[a,u]of new URLSearchParams(o.slice(r+1))){if(Ln.has(a))return null;s[a]=u;}return {prefix:n,name:i,attrs:s}}function ot(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(i){return {ok:false,reason:"malformed",issues:[i instanceof Error?i.message:"the payload is not JSON"]}}let o=_t(n);if(!e)return {ok:true,value:o};let r=e["~standard"].validate(o);return $n(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(Kn)}:{ok:true,value:r.value}}function $n(e){return typeof e.then=="function"}function Kn(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 Un=new Set(["__proto__","constructor","prototype"]);function _t(e){if(Array.isArray(e))return e.map(_t);if(e===null||typeof e!="object")return e;let t=Object.create(null);for(let[n,o]of Object.entries(e))Un.has(n)||(t[n]=_t(o));return t}function nt(e){return typeof e=="object"&&e!==null&&typeof e.name=="string"&&typeof e.tagPrefix=="string"}var Mt=/^[A-Za-z0-9_.-]+$/;function qn(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 yo(e){if(e.kind==="textValue")return e.value;let t="";for(let n of e.children)t+=yo(n);return t}function Ro(e,t,n={}){if(t.length===0)return [];let o=new Map;for(let s of t){let a=`${s.tagPrefix}:${s.name}`;if(o.has(a))throw new Error(`recognizeCustomNodes: duplicate definition for ${JSON.stringify(a)}`);o.set(a,s);}let r=[],i=(s,a)=>{if(!(s.kind==="textValue"||a>64)){if(s.kind==="contentControl"){let u=qn(s),d=u!==void 0?tt(u):null,l=d?o.get(`${d.prefix}:${d.name}`):void 0;if(d&&l&&u!==void 0){let c=yo(s),m=Bn(l,s.id,n.payloads?.get(s.id),contentControlPropertiesOf(s).dataBinding!==void 0,n.onDiagnostic),f=l.fromDocx?l.fromDocx({attrs:d.attrs,text:c,...m.present?{data:m.value}:{}}):d.attrs;if(f!==null){r.push({name:l.name,attrs:f,text:c,nodeId:s.id,tag:u,...m.present?{data:m.value}:{}});return}}}for(let u of s.children)i(u,a+1);}};return i(e.root,0),r}function Bn(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 i=ot(e.schema,n.data);return i.ok?{present:true,value:i.value}:(r?.({code:"payload-invalid",name:e.name,nodeId:t,issues:i.issues}),{present:false})}function go(e,t){let n=findNode(e,t);return !n||n.kind!=="paragraph"?[]:revisionItemsOf({id:e.id,name:e.name,contentType:e.contentType,root:n})}function zn(e,t,n,o){if(t.length===0)return [];let r=Ro(e,t,{...n===void 0?{}:{payloads:n},...o===void 0?{}:{onDiagnostic:o}});if(r.length===0)return [];let i=locateSites(e),s=[];for(let a of r){let u=t.find(c=>c.name===a.name&&a.tag.startsWith(`${c.tagPrefix}:`));if(!u)continue;let d=u.reviewCard?u.reviewCard({attrs:a.attrs,text:a.text,...a.data===void 0?{}:{data:a.data}}):null;if(u.reviewCard&&d===null)continue;let l=i.get(a.nodeId);s.push({kind:"custom",id:a.nodeId,name:a.name,tag:a.tag,attrs:a.attrs,text:a.text,...a.data===void 0?{}:{data:a.data},carded:u.reviewCard!==void 0&&d!==null,title:d?.title??"",...d?.detail!==void 0?{detail:d.detail}:{},...d?.icon!==void 0?{icon:d.icon}:{},range:l?{partName:e.name,start:{paragraphId:l.paragraphId,offset:l.start},end:{paragraphId:l.paragraphId,offset:l.end}}:null});}return s}function ho(e){let t=collectReviewItems(e),n=(e.customNodes??[]).filter(nt);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 i=[],s=new Map;for(let u of o){i.push(...zn(u,n,e.customNodePayloads,e.reportCustomNodeDiagnostic));let d=s.size;for(let[l,c]of paragraphOrderOfPart(u))s.has(l)||s.set(l,d+c);}return i.length===0?t:[...t,...i].sort((u,d)=>reviewItemPositionRank(u,s)-reviewItemPositionRank(d,s))}function Wn(e={}){return a(e.licenseKey),{id:"review",review:{displayModes:["all-markup","proposed","original"],collectReviewItems:ho,revisionItemsOfParagraph:go}}}function Co(e){return `${e.getReviewRevision()}:${e.getEditingMode()}:${JSON.stringify(e.snapshot().hiddenReviewAuthors??[])}`}var bo=Symbol("proEditorRenderRevision");function xo(e){return provide(bo,e),e}function ve(){let e=inject(bo,null);if(e)return e;let t=useDocxEditor(),n=shallowRef("none");return watch(()=>t.value,(o,r,i)=>{if(!o){n.value="none";return}let s=o,a=Co(s);n.value=a;let u=false,d=null,l=()=>{u||d!==null||(d=setTimeout(()=>{if(d=null,u)return;let p=Co(s);p!==a&&(a=p,n.value=p);},0));},c=s.on("change",l),m=s.on("selectionChange",l),f=s.on("error",l);i(()=>{u=true,d!==null&&clearTimeout(d),c(),m(),f();});},{immediate:true,flush:"sync"}),n}function rt(e){if(e!==void 0)return typeof e=="function"?e():typeof e=="object"&&e!==null&&"value"in e?e.value:e}function No(e){let t=e.snapshot?.();return `${e.getReviewRevision()}:${e.getEditingMode()}:${JSON.stringify(t?.hiddenReviewAuthors??[])}`}function rr(e){let t=useDocxEditor(),n=ve();return Vt(t,e,n)}function Dt(e,t){let n=useDocxEditor();return Vt(n,e,t)}function ar(e,t){return Vt(e,t)}function Vt(e,t,n){let o=n?null:shallowRef("none"),r=()=>{(n??o)?.value;};n||watch(()=>e.value,(w,C,T)=>{if(!w){o.value="none";return}let K=No(w);o.value=K;let X=false,Y=null,ne=()=>{X||Y!==null||(Y=setTimeout(()=>{if(Y=null,X)return;let Ne=No(w);Ne!==K&&(K=Ne,o.value=Ne);},0));},Et=w.on("change",ne),At=w.on("selectionChange",ne),We=w.on("error",ne);T(()=>{X=true,Y!==null&&clearTimeout(Y),Et(),At(),We();});},{immediate:true,flush:"sync"});let i=computed(()=>{r();let w=e.value,C=rt(t);return w?w.getReviewItems(C).filter(T=>T.item.kind!=="custom"||T.item.carded):[]}),s=computed(()=>i.value.find(w=>w.isActive)?.key??null),a=(w,C)=>{let T=e.value;return T?T.setActiveReviewItem(w,C).ok:false},u=w=>{let C=e.value;return !C||w.kind!=="revision"||w.readOnly?false:C.acceptReviewItem(w.key).ok},d=w=>{let C=e.value;return !C||w.kind!=="revision"||w.readOnly?false:C.rejectReviewItem(w.key).ok},l=w=>{let C=e.value;return !C||w.kind!=="comment"?false:C.setCommentResolved(w.key,true).ok},c=w=>{let C=e.value;return !C||w.kind!=="comment"?false:C.setCommentResolved(w.key,false).ok},m=computed(()=>(r(),e.value?.getEditingMode()==="viewing"?"the document is open for viewing":null)),f=w=>{let C=e.value;return !C||w.kind==="custom"||w.kind==="revision"&&w.readOnly?false:C.deleteReviewItem(w.key).ok},p=(w,C,T)=>C.trim().length===0||!e.value?false:e.value.replyToReviewItem(w.key,C,T).ok,y=computed(()=>{r();let w=e.value;return w?w.getSelectionPlacement()?.anchorY??null:null}),b=(w,C)=>w.trim().length===0||!e.value?false:e.value.addComment(w,C).ok,S=computed(()=>{r();let w=e.value;return w?w.isReviewPaneOpen():true}),R=w=>{let C=e.value;!C||C.isReviewPaneOpen()===w||C.exec({type:"toggleReviewPane"});},E=computed(()=>{r();let w=e.value;if(w===null)return false;let C=w.snapshot();return !C.isLoading&&C.parseError===null});return {items:i,activeKey:s,setActive:a,accept:u,reject:d,resolve:l,reopen:c,commentResolutionDisabledReason:m,remove:f,reply:p,selectionAnchorY:y,comment:b,paneOpen:S,setPaneOpen:R,ready:E}}function ir(e,t,n={}){return computed(()=>{let o=rt(e)??[],r=rt(t)??new Map,i=rt(n)??{},s=i.gap??8,a=i.scale??1,u=i.defaultHeight??0,d=new Map,l=Number.NEGATIVE_INFINITY;for(let c of o){let m=c.anchorY===null?Number.isFinite(l)?l:0:Math.max(c.anchorY,l);d.set(c.key,m),l=m+((r.get(c.key)??u)+s)/a;}return d})}var ur=new Set(["List","Markers","AddComment","Draft","Balloon"]),cr=new Set(["Card","Empty"]);function mr(e){return isVNode(e)}function Oe(e,t){let n=t==="root"?ur:cr,o={},r=[],i=s=>{for(let a of s){if(!mr(a))continue;if(a.type===Fragment){let d=Array.isArray(a.children)?a.children:[];i(d);continue}let u=a.type.docxReviewPart;u&&n.has(u)?o[u]=a:r.push(a);}};return i(e),{parts:o,rest:r}}function at(e,t){if(!t)return e;let n=e.props.class;return cloneVNode(e,{class:`${t}${n?` ${n}`:""}`})}var Io=e=>e.isLoading||e.parseError!==null||e.pageSetup==null,ke=e=>e.editingMode==="viewing",Eo={scale:96/72,top:0,left:null,compactCardLeft:null},Ao=16,Pe=300,Oo=12,te="\0compose",it=600,st=8,ko=72,Po=64,To=480,_o=30,Mo=Object.freeze({placement:false});function Te(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 _e(e){return new Set(e.map(t=>t.id))}function L(e){let t=e.target?.tagName;t==="INPUT"||t==="SELECT"||t==="TEXTAREA"||e.preventDefault();}function Do(e){let t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?"?":t.slice(0,2).map(n=>n[0].toUpperCase()).join("")}var lt=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function Vo(e){let t={},n=[],o=r=>{if(!r)return;let i=Array.isArray(r)?r:[r];for(let s of i){if(!isVNode(s))continue;if(s.type===Fragment){o(s.children);continue}let a=s.type.docxReviewPart;a?t[a]=s:n.push(s);}};return o(e),n.length>0&&(t.__extra=n),t}function k(e,t){return e.docxReviewPart=t,e}var $t=Symbol("ReviewContext"),Kt=Symbol("ReviewItemContext"),gr={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},hr={t:void 0,cardClassName:void 0,readOnly:false,composeTop:null,review:gr,allItems:[],authorSlots:new Map,authorInfo:new Map,draftAuthor:null,draftAuthorInfo:void 0,draftAuthorSlot:0,byId:new Map,measure:()=>{},beginDraft:()=>{},endDraft:()=>{},expandedResolvedKey:null,setExpandedResolvedKey:()=>{}};function P(){return inject($t,computed(()=>hr))}var Cr=computed(()=>null);function $(){return inject(Kt,Cr)}function br(e){let t=P();return computed(()=>{let n=toValue(e);return n===void 0?void 0:t.value.authorInfo.get(n)})}function B(){let e=P(),{t}=useTranslation();return n=>e.value.t?.(n)??t(n)}function xr(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 dt=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=P(),o=shallowRef(e.entry);watchEffect(()=>{let a=n.value.byId.get(e.entry.id)??e.entry;o.value={...a,replyIds:[...a.replyIds]};}),provide(Kt,o);let r=null,i=null,s=a=>{let u=a instanceof HTMLElement?a:null,d=u&&e.measureKey?e.measureKey:null;r===u&&i===d||(i&&n.value.measure(null,i),r=u,i=d,r&&i&&n.value.measure(r,i));};return onBeforeUnmount(()=>{s(null);}),()=>h("div",{onVnodeMounted:a=>{s(a.el instanceof Element?a.el:null);},onVnodeUpdated:a=>{s(a.el instanceof Element?a.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":""}:{}},[h(Fragment,{key:xr(o.value)},t.default?.())])}}),ut=defineComponent({name:"ReviewReplyScope",props:{entry:{type:Object,required:true}},setup(e,{slots:t}){let n=P(),o=shallowRef(e.entry);return watchEffect(()=>{let r=n.value.byId.get(e.entry.id)??e.entry;o.value={...r,replyIds:[...r.replyIds]};}),provide(Kt,o),()=>t.default?.()}});function Bo(e){let t=ref(new WeakMap),n=ref(new Map),o=ref(null),r=(i,s)=>{let a=n.value.get(s);if(!i){a&&(o.value?.unobserve(a),t.value.delete(a),n.value.delete(s));return}typeof ResizeObserver>"u"||(e(s,i.offsetHeight),o.value??=new ResizeObserver(u=>{for(let d of u){let l=t.value.get(d.target);l&&e(l,d.target.offsetHeight);}}),!(a===i&&t.value.get(i)===s)&&(a&&(o.value.unobserve(a),t.value.delete(a)),t.value.set(i,s),n.value.set(s,i),o.value.observe(i)));};return onUnmounted(()=>{o.value?.disconnect(),n.value.clear();}),r}function Ht(e,t){return e?.color??`var(--doc-review-author-${t%st})`}function le(e,t,n){return e?{"--doc-review-author-current":Ht(t,n)}:{}}function ye(e,t){return (e?.slot??t)%st}function Fo(e,t,n,o,r){let i=new Map;for(let a of e)i.set(a.author,a);let s=[...t.map(a=>a.author),o?.getConfiguredAuthor()];for(let a of s){if(!a||i.has(a))continue;let u=n.get(a)??0,d=o?.getReviewAuthorStyle(a),l=d?.color??`var(--doc-review-author-${u%st})`,c=r.get(a),m=c?.slot===u&&c.color===l&&c.style===d?c:{author:a,slot:u,color:l,...d?{style:d}:{}};r.set(a,m),i.set(a,m);}return i}var j=e=>h("svg",{viewBox:"0 -960 960 960",width:16,height:16,ariaHidden:true,focusable:false},[h("path",{d:e,fill:"currentColor"})]),Yo="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",jo="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",Sr="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",De="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z",ct=()=>h("span",{class:"docx-review__resolved-icon"},[h("span",{class:"docx-review__resolved-comment"},[j(Sr)]),h("span",{class:"docx-review__resolved-tick"},[j(De)])]),Go="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",Zo="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",zo="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",Ir="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",Er="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",Ar="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",Or="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 Wo(e){if(e.kind==="comment")return jo;if(e.kind==="custom")return e.item.icon??Or;switch(e.revisionKind){case "insert":case "moveTo":return Ir;case "delete":case "moveFrom":return Er;case "format":return Ar;default:return jo}}function mt(e,t){if(e==="paragraphMark")return t==="delete"?"revisions.paragraphMarkDeleted":t==="moveFrom"?"revisions.paragraphMarkMovedFrom":t==="moveTo"?"revisions.paragraphMarkMovedTo":"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 Tr(e,t){return typeof t!="function"?e:typeof e!="function"?t:n=>{e(n),n.defaultPrevented||t(n);}}function _r(e,t){let n=mergeProps(e,t);for(let o of Object.keys(e))/^on[A-Z]/.test(o)?n[o]=Tr(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 en(e){return e==="Enter"||e===" "}function Mr(e){return en(e.key)?(e.preventDefault(),e.stopPropagation(),true):false}function Xo(e){return e==="button"}function Qo(e,t){return e==="a"||t.href!=null}var Re=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??{},i=_r(e.slotProps,r);if(!e.engineDisabled){if(!Xo(o.type)){let s={onClick:a=>{typeof r.onClick=="function"&&r.onClick(a),!a.defaultPrevented&&typeof e.slotProps.onClick=="function"&&e.slotProps.onClick(a),Qo(o.type,r)&&a.preventDefault();},onKeydown:a=>{typeof r.onKeydown=="function"&&r.onKeydown(a),en(a.key)&&(!a.defaultPrevented&&typeof e.slotProps.onClick=="function"&&e.slotProps.onClick(a),Qo(o.type,r)&&a.preventDefault());}};i.onClick=s.onClick,i.onKeydown=s.onKeydown;}return cloneVNode(o,i)}if(Xo(o.type))i.disabled=true,delete i["aria-disabled"];else {delete i.disabled,i["aria-disabled"]=true,i["data-disabled"]="",i.tabIndex=-1,i.href=void 0,i.role===void 0&&(i.role="button");let s=i.onKeydown;i.onKeydown=a=>{Mr(a)||typeof s=="function"&&s(a);};}return e.disabledReason&&(i.title=e.disabledReason),i.onClick=s=>{s.preventDefault(),s.stopPropagation();},cloneVNode(o,i)}}});function nn(e){let t=k(defineComponent({name:"ReviewResolve",props:{className:String,asChild:Boolean,hidden:Boolean,icon:{type:[Object,String],default:void 0}},setup(o,{slots:r}){let i=e.useRail(),s=e.useItem(),a=e.useLabel(),u=useEditorState(ke);return ()=>{let d=s.value;if(o.hidden||!d||d.kind!=="comment"||d.resolved)return null;let l=i.value.review,c=a("comments.resolve"),m=u.value||l.commentResolutionDisabledReason!==null,f=m?a("editingMode.viewingHint"):null,p={type:"button",class:`docx-review__action${o.className?` ${o.className}`:""}`,"data-testid":"review-resolve","aria-label":c,title:f??c,disabled:m,onMousedown:L,onClick:y=>{y.stopPropagation(),!m&&l.resolve(d);}};return o.asChild?h(Re,{engineDisabled:m,disabledReason:f,slotProps:p},r.default):h("button",p,o.icon??r.default?.()??j(De))}}}),"Resolve"),n=k(defineComponent({name:"ReviewReopen",props:{className:String,asChild:Boolean,hidden:Boolean,icon:{type:[Object,String],default:void 0}},setup(o,{slots:r}){let i=e.useRail(),s=e.useItem(),a=e.useLabel(),u=useEditorState(ke);return ()=>{let d=s.value;if(o.hidden||!d||d.kind!=="comment"||!d.resolved)return null;let l=i.value.review,c=a("comments.reopen"),m=u.value||l.commentResolutionDisabledReason!==null,f=m?a("editingMode.viewingHint"):null,p={type:"button",class:`docx-review__action${o.className?` ${o.className}`:""}`,"data-testid":"review-reopen","aria-label":c,title:f??c,disabled:m,onMousedown:L,onClick:y=>{y.stopPropagation(),!m&&l.reopen(d);}};return o.asChild?h(Re,{engineDisabled:m,disabledReason:f,slotProps:p},r.default):h("button",p,o.icon??r.default?.()??j(Go))}}}),"Reopen");return {ReviewResolve:t,ReviewReopen:n}}var rn=new WeakMap;function Ve(e){let t=getCurrentInstance();if(!t)throw new Error("useReviewStableId must run during component setup");let n=t.appContext,o=rn.get(n)??0;return rn.set(n,o+1),`docx-review-${o}-${e}`}function ln(e){let t=k(defineComponent({name:"ReviewDraft",props:{top:{type:Number,default:0},left:{type:Number,default:null},className:String,hidden:Boolean},setup(o){let r=e.useRail(),i=e.useLabel(),s=ref(""),a=ref(false),u=Ve("draft"),d=null;onMounted(()=>{let c=getCurrentInstance()?.proxy?.$el;if(c instanceof HTMLElement&&(d=r.value.measure,d(c,te)),r.value.readOnly)return;(c instanceof HTMLElement?c.querySelector('[data-testid="review-draft-input"]'):null)?.focus({preventScroll:true});}),onBeforeUnmount(()=>{d?.(null,te);});let l=()=>{let{review:c,endDraft:m,readOnly:f}=r.value;if(f||s.value.trim().length===0)return;let p=c.comment(s.value.trim());a.value=!p,p&&(s.value="",m());};return ()=>{if(o.hidden)return null;let{readOnly:c,draftAuthor:m,draftAuthorInfo:f,draftAuthorSlot:p}=r.value;return 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`}}},[h("div",{class:"docx-review__card","data-testid":"review-draft","data-draft":"",...m?{"data-review-author":m,"data-review-author-slot":p}:{},style:le(m??void 0,f,p)},[h("form",{class:"docx-review__reply-box",onSubmit:y=>{y.preventDefault(),l();}},[h("label",{class:"docx-editor-sr-only",for:u},i("comments.addComment")),h("input",{id:u,"data-testid":"review-draft-input",class:"docx-review__input",value:s.value,placeholder:i("comments.addComment"),readonly:c,...a.value?{"aria-invalid":true}:{},onInput:y=>{c||(a.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(),l());}}),h("div",{class:"docx-review__reply-actions"},[h("button",{type:"button","data-testid":"review-draft-cancel",class:"docx-review__text-button",onMousedown:L,onClick:()=>r.value.endDraft()},i("common.cancel")),h("button",{type:"submit","data-testid":"review-draft-submit",class:"docx-review__submit",disabled:c||s.value.trim().length===0,title:c?i("editingMode.viewingHint"):void 0},i("common.comment"))]),a.value?h("span",{class:"docx-review__refused",role:"alert"},i("review.commentRefused")):null])])])}}}),"Draft"),n=k(defineComponent({name:"ReviewReply",props:{className:String,hidden:Boolean},setup(o,{slots:r}){let i=e.useRail(),s=e.useItem(),a=e.useLabel(),u=ref(""),d=ref(false),l=Ve("reply"),c=ve(),m=useDocxEditor(),f=p=>{let y=s.value,{review:b,readOnly:S,byId:R}=i.value,E=p?.querySelector('[data-testid="review-reply-input"]'),w=(E?.value??u.value).trim(),C=y?R.get(y.id)??y:null;if(!C||S||w.length===0)return;let T=m.value?.replyToReviewItem(C.key,w).ok??b.reply(C,w);d.value=!T,T&&(u.value="",E&&(E.value=""));};return ()=>{c.value;let p=s.value;if(o.hidden||!p||!p.isActive||p.kind==="comment"&&p.resolved)return null;let{review:y,readOnly:b}=i.value,S=r.default?.();return S?.length?S:jsxs("div",{class:`docx-review__reply-box${o.className?` ${o.className}`:""}`,children:[jsx("label",{class:"docx-editor-sr-only",for:l,children:a("comments.replyPlaceholder")}),jsx("input",{id:l,"data-testid":"review-reply-input",class:"docx-review__input",placeholder:a("comments.replyPlaceholder"),readonly:b,...d.value?{"aria-invalid":true,"data-refused":""}:{},onInput:R=>{b||(d.value=false,u.value=R.target.value);},onClick:R=>R.stopPropagation(),onKeydown:R=>{b||R.key!=="Enter"||(R.preventDefault(),f(R.currentTarget.closest(".docx-review__reply-box")));}}),jsxs("div",{class:"docx-review__reply-actions",children:[jsx("button",{type:"button","data-testid":"review-reply-cancel",class:"docx-review__text-button",onMousedown:L,onClick:R=>{R.stopPropagation(),u.value="",d.value=false,y.setActive(null);},children:a("common.cancel")}),jsx("button",{type:"button","data-testid":"review-reply-submit",class:"docx-review__submit",disabled:b,title:b?a("editingMode.viewingHint"):void 0,onClick:R=>{R.preventDefault(),R.stopPropagation(),f(R.currentTarget.closest(".docx-review__reply-box"));},children:a("review.reply")})]}),d.value?jsx("span",{class:"docx-review__refused",role:"alert","data-testid":"review-reply-refused",children:a("review.replyRefused")}):null]})}}}),"Reply");return {ReviewDraft:t,ReviewReply:n}}var{ReviewResolve:Bt,ReviewReopen:Ft}=nn({useRail:P,useItem:$,useLabel:B}),{ReviewDraft:jt,ReviewReply:Yt}=ln({useRail:P,useItem:$,useLabel:B});var vt=k(defineComponent({name:"ReviewEmpty",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=B();return ()=>e.hidden?null:jsx("div",{class:`docx-review__empty${e.className?` ${e.className}`:""}`,"data-testid":"review-empty",children:t.default?.()??n("review.empty")})}}),"Empty"),we=k(defineComponent({name:"ReviewAvatar",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=$(),o=P();return ()=>{let r=n.value;if(e.hidden||!r)return null;let i=t.default?.();if(i===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 jsx(Slot,{...s,children:i});let a=o.value.authorInfo.get(r.author)?.style?.avatarUrl,u=i??(a?jsx("img",{class:"docx-review__avatar-img",src:a,alt:"",loading:"lazy",decoding:"async",referrerpolicy:"no-referrer"}):void 0)??r.initials;return jsx("span",{...s,children:u})}}}),"Avatar"),ge=k(defineComponent({name:"ReviewAuthor",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=$(),o=B();return ()=>{let r=n.value;if(e.hidden||!r)return null;let i=r.author||o("comments.unknown"),s={class:`docx-review__author${e.className?` ${e.className}`:""}`,"data-testid":"review-author"};return e.asChild?jsx(Slot,{...s,children:t.default?.()}):jsx("span",{...s,children:t.default?.()??i})}}}),"Author"),he=k(defineComponent({name:"ReviewTime",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=$();return ()=>{let o=n.value;if(e.hidden||!o)return null;let r=o.date;if(!r)return null;let i=new Date(r);if(Number.isNaN(i.getTime()))return null;let s={class:`docx-review__time${e.className?` ${e.className}`:""}`,"data-testid":"review-time",datetime:r};return e.asChild?jsx(Slot,{...s,children:t.default?.()}):jsx("time",{...s,children:t.default?.()??lt.format(i)})}}}),"Time"),Ce=k(defineComponent({name:"ReviewSummary",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=$(),o=B();return ()=>{let r=n.value;if(e.hidden||!r)return null;let i=r.text,s=r.kind!=="revision"?null:o(mt(r.revisionKind,r.item.markDirection)),a=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 jsx(Slot,{...u,children:t.default?.()});let d=t.default?.();return d?jsx("div",{...u,children:d}):jsx("div",{...u,children:a?jsxs("span",{class:"docx-review__text",children:[o("review.replaced")," ",jsxs("span",{class:"docx-review__removed",children:['"',r.replacedText,'"']})," ",o("review.replacedWith")," ",jsxs("span",{class:"docx-review__added",children:['"',i,'"']})]}):jsxs(Fragment$1,{children:[s?jsx("span",{class:"docx-review__label","data-kind":r.kind==="revision"?r.revisionKind:"revision",children:s}):null,i?jsx("span",{class:"docx-review__text",children:i}):null]})})}}}),"Summary");function un(e,t,n,o,r,i,s){return k(defineComponent({name:e,props:{className:String,asChild:Boolean,hidden:Boolean,icon:{type:[Object,String],default:void 0}},setup(a,{slots:u}){let d=P(),l=$(),c=B();return ()=>{let m=l.value,{readOnly:f,review:p}=d.value;if(a.hidden||!m||!s(m))return null;let y=c(o),b=f?c("editingMode.viewingHint"):null,S={type:"button",class:`docx-review__action${a.className?` ${a.className}`:""}`,"data-testid":n,"aria-label":y,title:b??y,disabled:f,onMousedown:L,onClick:R=>{R.stopPropagation(),!f&&i(p,m);}};return a.asChild?jsx(Re,{engineDisabled:f,disabledReason:b,slotProps:S,children:u.default?.()}):jsx("button",{...S,children:a.icon??u.default?.()??j(r)})}}}),t)}var Ue=un("ReviewAccept","Accept","review-accept","review.accept",De,(e,t)=>e.accept(t),e=>e.kind==="revision"&&!e.readOnly),He=un("ReviewReject","Reject","review-reject","review.reject",Zo,(e,t)=>e.reject(t),e=>e.kind==="revision"&&!e.readOnly),yt=k(defineComponent({name:"ReviewDelete",props:{className:String,asChild:Boolean,hidden:Boolean,icon:{type:[Object,String],default:void 0}},setup(e,{slots:t}){let n=P(),o=$(),{t:r}=useTranslation();return ()=>{let i=o.value,{readOnly:s,review:a}=n.value;if(e.hidden||!i||i.kind==="custom"||i.kind==="revision"&&i.readOnly)return null;let u=i.kind==="comment"?r("review.deleteComment"):r("review.discardChange"),d=s?r("editingMode.viewingHint"):null,l={type:"button",class:`docx-review__action${e.className?` ${e.className}`:""}`,"data-testid":"review-delete","aria-label":u,title:d??u,disabled:s,onMousedown:L,onClick:c=>{c.stopPropagation(),!s&&a.remove(i);}};return e.asChild?jsx(Re,{engineDisabled:s,disabledReason:d,slotProps:l,children:t.default?.()}):jsx("button",{...l,children:e.icon??t.default?.()??j(zo)})}}}),"Delete"),Gt=k(defineComponent({name:"ReviewReplies",props:{className:String,hidden:Boolean},setup(e){let t=P(),n=$();return ()=>{let o=n.value;if(e.hidden||!o||o.kind==="custom")return null;let i=(t.value.byId.get(o.id)??o).replyIds.map(s=>t.value.byId.get(s)).filter(s=>s!==void 0);return i.length===0?null:jsx("ol",{class:`docx-review__replies${e.className?` ${e.className}`:""}`,children:i.map(s=>jsx(ut,{entry:s,children:jsxs("li",{class:"docx-review__reply","data-testid":"review-reply",children:[jsxs("div",{class:"docx-review__head",children:[jsx(we,{}),jsxs("div",{class:"docx-review__meta",children:[jsx(ge,{}),jsx(he,{})]}),jsx("div",{class:"docx-review__actions",children:jsx(yt,{})})]}),jsx(Ce,{})]})},s.key))})}}}),"Replies"),dn=defineComponent({name:"ReviewCardPreset",setup(e,{slots:t}){let n=$(),o=computed(()=>Vo(t.default?.()));return ()=>{let r=n.value;if(!r)return null;let i=(a,u)=>a in o.value?o.value[a]:u;if(r.kind==="custom"&&r.item.kind==="custom"){let a=r.item;return jsxs(Fragment$1,{children:[jsxs("div",{class:"docx-review__head",children:[i("Avatar",null),jsx("div",{class:"docx-review__meta",children:i("Author",jsx("span",{class:"docx-review__author","data-testid":"review-custom-title",children:a.title}))})]}),i("Summary",a.detail?jsx("div",{class:"docx-review__summary","data-testid":"review-summary","data-review-selectable":"",children:jsx("span",{class:"docx-review__text",children:a.detail})}):null),o.value.__extra]})}let s=r.kind==="revision"&&!r.readOnly;return jsxs(Fragment$1,{children:[jsxs("div",{class:"docx-review__head",children:[i("Avatar",jsx(we,{})),jsxs("div",{class:"docx-review__meta",children:[i("Author",jsx(ge,{})),i("Time",jsx(he,{}))]}),s||r.kind==="comment"?jsxs("div",{class:"docx-review__actions",children:[i("Accept",jsx(Ue,{})),i("Reject",jsx(He,{})),i("Resolve",jsx(Bt,{})),i("Reopen",jsx(Ft,{})),i("Delete",jsx(yt,{}))]}):null]}),i("Summary",jsx(Ce,{})),i("Replies",jsx(Gt,{})),i("Reply",jsx(Yt,{})),o.value.__extra]})}}}),qe=k(defineComponent({name:"ReviewCard",props:{className:String,hidden:Boolean,asChild:Boolean},setup(e,{slots:t}){let n=P(),o=$(),r=Ve("card"),i=B(),s=null,a=d=>{s=d.el instanceof HTMLDetailsElement?d.el:s;},u=d=>{s?.open&&d.target instanceof Node&&!s.contains(d.target)&&(n.value.setExpandedResolvedKey(null),n.value.review.setActive(null),s.open=false);};return onMounted(()=>document.addEventListener("pointerdown",u,true)),onBeforeUnmount(()=>document.removeEventListener("pointerdown",u,true)),()=>{let d=o.value;if(e.hidden||!d)return null;let{review:l,authorSlots:c,authorInfo:m,expandedResolvedKey:f,setExpandedResolvedKey:p}=n.value,y=c.get(d.author)??0,b=!e.asChild&&d.kind==="comment"&&d.resolved,S={class:`docx-review__card${e.className?` ${e.className}`:""}`,"data-testid":"review-card",...b?{}:{"aria-labelledby":`${r}-author ${r}-summary`},"data-kind":d.kind==="revision"?d.revisionKind??"revision":d.kind,...d.author?{"data-review-author":d.author,"data-review-author-slot":ye(m.get(d.author),y)}:{},...d.kind==="custom"&&d.item.kind==="custom"?{"data-node-name":d.item.name}:{},...d.isActive?{"data-active":""}:{},...d.kind==="comment"&&d.resolved?{"data-resolved":""}:{},...b?{"data-resolved-miniature":""}:{},style:le(d.author,m.get(d.author),y),...b?{}:{tabIndex:0,role:"button"},id:r,...b?{}:{onMousedown:R=>{R.target?.closest("[data-review-selectable]")||R.currentTarget.focus({preventScroll:true});},onClick:R=>{R.target?.closest("button, input, textarea, .docx-review__reply-box, [data-review-selectable]")||d.isActive||l.setActive(d.key);},onKeydown:R=>{R.target===R.currentTarget&&(R.key!=="Enter"&&R.key!==" "||(R.preventDefault(),l.setActive(d.key)));}}};return e.asChild?jsx(Slot,{...S,children:t.default?.()}):b?h("details",{...S,open:f===d.key,onVnodeMounted:a,onVnodeUpdated:a,onVnodeBeforeUnmount:()=>{s=null;},onToggle:R=>{let E=R.currentTarget.open;p(E?d.key:null),l.setActive(E?d.key:null);}},[h("summary",{class:"docx-review__resolved-toggle","aria-label":i("review.showResolvedComment")},[h("span",{class:"docx-review__resolved-status"},i("review.resolved")),ct()]),h(dn,null,{default:()=>t.default?.()})]):jsx("div",{...S,children:h(dn,null,{default:()=>t.default?.()})})}}}),"Card");var Wt=k(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=P();return ()=>{if(e.hidden)return null;let{review:o,cardClassName:r}=n.value,i=t.default?.()??[],s=t.item,a=s?null:Oe(i,"list"),u=_e(o.items),d=o.items.filter(l=>!Te(l,u));return d.length===0?s?null:a?.parts.Empty??jsx(vt,{}):h("div",{class:`docx-review__list${e.className?` ${e.className}`:""}`},d.map(l=>{let c=e.stack?e.positions?.get(l.key)??l.anchorY:l.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 f=m===null?{}:{position:"absolute",top:`${m}px`};return h(dt,{key:l.key,entry:l,measureKey:l.key,collapsed:e.collapsed?.has(l.key),style:f},()=>s?s({item:l}):a?.parts.Card?at(a.parts.Card,r):h(qe,r?{className:r}:{},()=>a?.rest))}))}}}),"List"),Jt=k(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=P(),n=B(),o=computed(()=>{let{review:r}=t.value,i=_e(r.items),s=r.items.filter(d=>!Te(d,i)),a=new Map,u=Number.NEGATIVE_INFINITY;for(let d of s){if(d.anchorY===null)continue;let l=Math.max(e.offset+d.anchorY*e.scale,u);a.set(d.key,l),u=l+_o;}return {roots:s,stackedTops:a}});return ()=>{if(e.hidden)return null;let{review:r,authorSlots:i,authorInfo:s,setExpandedResolvedKey:a}=t.value,{roots:u,stackedTops:d}=o.value;return jsx("div",{class:`docx-review__markers${e.className?` ${e.className}`:""}`,children:u.map(l=>{let c=d.get(l.key);return c===void 0||e.window&&(c<e.window.top||c>e.window.bottom)?null:jsx("button",{type:"button",class:"docx-review__marker","data-testid":"review-marker","data-kind":l.kind==="revision"?l.revisionKind:l.kind,...l.author?{"data-review-author":l.author,"data-review-author-slot":ye(s.get(l.author),i.get(l.author)??0)}:{},style:{position:"absolute",top:`${c}px`,...l.author?{"--doc-review-author-current":Ht(s.get(l.author),i.get(l.author)??0)}:{}},title:l.author?`${l.author}: ${l.text}`:l.text,"aria-label":`${n("review.showPane")}: ${l.author?`${l.author}. `:""}${l.text}`,onMousedown:L,onClick:()=>{l.kind==="comment"&&l.resolved&&a(l.key),r.setPaneOpen(true),r.setActive(l.key);},children:(typeof e.icon=="function"?e.icon(l):e.icon)??(l.kind==="comment"&&l.resolved?ct():j(Wo(l)))},l.key)})})}}}),"Markers"),Xt=k(defineComponent({name:"ReviewAddComment",props:{top:{type:Number,default:null},drafting:{type:Boolean,default:false},className:String,hidden:Boolean},setup(e,{slots:t}){let n=P(),o=B();return ()=>{let{beginDraft:r,composeTop:i,readOnly:s}=n.value;if(e.hidden||e.drafting||i===null||s)return null;let a={type:"button",class:`docx-review__add${e.className?` ${e.className}`:""}`,"data-testid":"review-add-comment",style:{position:"absolute",top:`${i}px`},"aria-label":o("common.comment"),title:o("common.comment"),onMousedown:L,onClick:r},u=t.default?.();return u?.length?h(Slot,a,()=>u):h("button",a,j(Yo))}}}),"AddComment"),Gr=defineComponent({name:"BalloonTime",props:{raw:{type:String,required:true}},setup(e){return ()=>{let t=new Date(e.raw);return Number.isNaN(t.getTime())?null:jsx("time",{class:"docx-review__time",datetime:e.raw,children:lt.format(t)})}}}),Qt=k(defineComponent({name:"ReviewBalloon",props:{className:String,hidden:Boolean},setup(e){let t=getCurrentInstance(),n=P(),o=B(),r=ref(null),i=ref(false),s=ref(false);watch(r,l=>{i.value=l!==null;});let a;onMounted(()=>{let l=getCurrentInstance()?.proxy?.$el,c=l?.closest(".docx-review"),m=c?.closest(".docx-editor__scroll-container")??c?.offsetParent;if(!l||!c||!m)return;let f=(y,b)=>{let S=c.getBoundingClientRect(),R=y.getBoundingClientRect(),E=y.ownerDocument.defaultView?.innerHeight??1/0,w=Number(y.dataset.start),C=Number(y.dataset.end);r.value={revisionId:y.dataset.revisionId,author:y.dataset.reviewAuthor??"",...y.dataset.revisionDate!==void 0?{date:y.dataset.revisionDate}:{},...y.dataset.revisionKind!==void 0?{kind:y.dataset.revisionKind}:{},structuralSite:b,...y.dataset.paragraphId!==void 0?{paragraphId:y.dataset.paragraphId}:{},...Number.isFinite(w)?{start:w}:{},...Number.isFinite(C)?{end:C}:{},left:R.left-S.left,top:R.top-S.top,bottom:R.bottom-S.top,above:R.bottom+220>E},t?.proxy?.$forceUpdate();},p=y=>{let b=y.target;if(!(b instanceof Element)||l.contains(b))return;let S=b.closest("[data-revision-id]");if(S instanceof HTMLElement&&m.contains(S)){let R=S.classList.contains("docx-table-row--revision");if(S.dataset.revisionKind==="format"||R){f(S,R);return}}i.value&&(r.value=null,t?.proxy?.$forceUpdate());};m.addEventListener("pointerdown",p,true),m.addEventListener("mousedown",p,true),a=()=>{m.removeEventListener("pointerdown",p,true),m.removeEventListener("mousedown",p,true);};}),onUnmounted(()=>a?.());let u=computed(()=>{let l=r.value;if(!l)return null;let{allItems:c}=n.value,m=null,f=false,p=null,y=false,b=null,S=false;for(let R of c)if(!(R.kind!=="revision"||R.item.kind!=="revision")){for(let E of R.item.addresses)if(E.id===l.revisionId){if(E.author===l.author){if(E.date===l.date)return R;m===null?m=R:m!==R&&(f=true);}p===null?p=R:p!==R&&(y=true);}if(l.paragraphId!==void 0&&l.start!==void 0&&l.end!==void 0&&(R.revisionKind==="format"||R.revisionKind==="structural")){for(let E of R.item.ranges)if(E.start.paragraphId===l.paragraphId&&E.start.offset<l.end&&E.end.offset>l.start){b===null?b=R:b!==R&&(S=true);break}}}return m!==null&&!f?m:p!==null&&!y?p:b!==null&&!S?b:null}),d=computed(()=>{let l=u.value;return l&&(l.revisionKind==="format"||l.revisionKind==="structural")?l:null});return watch(d,l=>{if(l){s.value=true;return}s.value&&(s.value=false,r.value=null);}),()=>{if(e.hidden)return null;let{review:l,authorSlots:c,authorInfo:m}=n.value,f=r.value,p=f?.kind==="format"?"format":"structural",y=d.value,b=f===null?null:h("div",{class:"docx-review__balloon","data-testid":"review-balloon",style:{left:`${f.left}px`,top:`${f.above?f.top-6:f.bottom+6}px`,transform:f.above?"translateY(-100%)":void 0},onMousedown:L},y?h(ut,{entry:y},()=>h("div",{class:"docx-review__card","data-testid":"review-balloon-card","data-kind":y.revisionKind??"revision",...y.author?{"data-review-author":y.author,"data-review-author-slot":ye(m.get(y.author),c.get(y.author)??0)}:{},style:le(y.author,m.get(y.author),c.get(y.author)??0),onClick:()=>l.setActive(y.key)},[h("div",{class:"docx-review__head"},[h(we),h("div",{class:"docx-review__meta"},[h(ge),h(he)]),y.kind==="revision"&&!y.readOnly?h("div",{class:"docx-review__actions"},[h(Ue),h(He)]):null]),h(Ce)])):h("div",{class:"docx-review__card","data-testid":"review-balloon-card","data-kind":p,...f.author?{"data-review-author":f.author,"data-review-author-slot":ye(m.get(f.author),c.get(f.author)??0)}:{},style:le(f.author,m.get(f.author),c.get(f.author)??0)},[h("div",{class:"docx-review__head"},[h("span",{class:"docx-review__avatar","aria-hidden":true},Do(f.author)),h("div",{class:"docx-review__meta"},[h("span",{class:"docx-review__author"},f.author||o("comments.unknown")),f.date?h(Gr,{raw:f.date}):null])]),h("div",{class:"docx-review__summary"},[h("span",{class:"docx-review__label","data-kind":p},o(mt(p)))])]));return h("div",{class:`docx-review__balloon-root${e.className?` ${e.className}`:""}`},b===null?void 0:[b])}}}),"Balloon");function Fe(e,t,n){if(!(e in n))return t;let o=n[e];return !isVNode(o)||!isVNode(t)?o:cloneVNode(o,mergeProps(t.props??{},o.props??{}))}var ia=defineComponent({name:"ReviewDraftMount",props:{top:{type:Number,required:true},left:{type:Number,default:null}},setup(e){return ()=>h(jt,{top:e.top,left:e.left})}});function sa(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 la=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=getCurrentInstance(),o=useDocxEditor(),r=useEditorState(Io),i=useEditorState(ke),s=ve(),a=computed(()=>{let v=[];return e.structural||v.push("structural"),e.formatting||v.push("format"),v.length>0?v:void 0}),u=computed(()=>a.value?{excludeRevisionKinds:a.value}:void 0);watch([o,a],()=>{o.value?.setReviewActivationExclusions(a.value??null);},{immediate:true}),onUnmounted(()=>{o.value?.setReviewActivationExclusions(null);}),xo(s);let d=Dt(Mo,s),l=Dt(()=>u.value,s),{t:c}=useTranslation(),m=(v,g)=>e.t?.(v,g)??c(v,g),f=shallowRef(null),p=inject(ReviewRailContext,shallowRef({mounted:0,register:()=>()=>{},registerCommentDraft:()=>()=>{},requestCommentDraft:()=>false})),y=ref(false),b,S=()=>{if(!y.value||e.hidden){b?.(),b=void 0;return}b??=p.value.register();};onMounted(()=>{y.value=true,S();}),watch(()=>e.hidden,S);let R=computed(()=>l.paneOpen.value),E=useReviewGutter(),w=ref(null),C=computed(()=>R.value&&(w.value??E.value.inlineEnd)>0&&(w.value??E.value.inlineEnd)<REVIEW_PANE_GUTTER),T=computed(()=>R.value&&!C.value),K=computed(()=>e.filter?l.items.value.filter(v=>e.filter(v)):l.items.value),X=ref(null);watch(K,v=>{let g=X.value;g!==null&&!v.some(h=>h.key===g&&h.kind==="comment"&&h.resolved)&&(X.value=null);},{flush:"sync"});let Y=useEditorState(()=>o.value?.getConfiguredAuthor()??null),ne=computed(()=>{let v=new Map;for(let g of K.value)g.author&&!v.has(g.author)&&v.set(g.author,v.size);return Y.value&&!v.has(Y.value)&&v.set(Y.value,v.size),v}),Et=useReviewAuthors(),At=new Map,We=computed(()=>Fo(Et.value,K.value,ne.value,o.value,At)),Ne=computed(()=>{let v=new Map;for(let g of d.items.value)v.set(g.id,g);return v}),Je=ref(new Map),kn=Bo((v,g)=>{if(g<=0||Je.value.get(v)===g)return;let h=new Map(Je.value);h.set(v,g),Je.value=h;}),_=ref(Eo),Se;watch([o,K,r,()=>e.hidden,f,C],()=>{Se?.(),Se=void 0;let v=f.value,g=o.value;if(!g||!v||r.value||e.hidden)return;let h=v.offsetParent,A=h?.querySelector(".docx-paginated-surface")??null,N=()=>{if(h){let pe=Number.parseFloat(getComputedStyle(h).getPropertyValue("--docx-review-gutter"));w.value=Number.isFinite(pe)?pe:null;}else w.value=null;let V=A&&h?A.getBoundingClientRect():null,ee=V&&h?h.getBoundingClientRect():null,me=V&&ee&&h?V.right-ee.left-h.clientLeft+h.scrollLeft+Ao:null,ae={scale:g.getRenderScale(),top:V&&ee&&h?V.top-ee.top-h.clientTop+h.scrollTop:0,left:me,compactCardLeft:me===null||!h?null:h.scrollLeft+h.clientWidth-me-Pe-Oo},fe=_.value;(fe.scale!==ae.scale||fe.top!==ae.top||fe.left!==ae.left||fe.compactCardLeft!==ae.compactCardLeft)&&(_.value=ae);};N();let O=new ResizeObserver(N);h&&O.observe(h),A&&O.observe(A);let F=h&&typeof MutationObserver<"u"?new MutationObserver(N):null;if(F?.observe(h,{attributes:true,attributeFilter:["style"]}),!C.value||!h){Se=()=>{F?.disconnect(),O.disconnect();};return}let q=0,M=()=>{q===0&&(q=requestAnimationFrame(()=>{q=0,N();}));};h.addEventListener("scroll",M,{passive:true}),Se=()=>{q!==0&&cancelAnimationFrame(q),h.removeEventListener("scroll",M),F?.disconnect(),O.disconnect();};},{flush:"post"}),onUnmounted(()=>Se?.());let Xe;watch([o,r,()=>e.hidden,f],()=>{Xe?.(),Xe=void 0;let v=f.value,g=o.value;if(!g||!v||r.value||e.hidden)return;let h=A=>{let N=A.target;if(!(N instanceof Node)||v.contains(N))return;let O=v.offsetParent;!O||!O.contains(N)||O.querySelector(".docx-paginated-surface")?.contains(N)||g.setActiveReviewItem(null);};document.addEventListener("mousedown",h,true),Xe=()=>document.removeEventListener("mousedown",h,true);},{flush:"post"}),onUnmounted(()=>Xe?.());let ce=ref(null),Qe;watch([o,r,()=>e.hidden,f],()=>{Qe?.(),Qe=void 0;let v=f.value,g=v?.offsetParent;if(!g||r.value||e.hidden)return;let h=0,A=()=>{h=0;let q=g.scrollTop-it,M=g.scrollTop+g.clientHeight+it,V=ce.value;ce.value=V&&V.top===q&&V.bottom===M?V:{top:q,bottom:M};},N=0,O=()=>{h===0&&(h=requestAnimationFrame(A)),v?.setAttribute("data-scrolling",""),window.clearTimeout(N),N=window.setTimeout(()=>v?.removeAttribute("data-scrolling"),150);};A(),g.addEventListener("scroll",O,{passive:true});let F=new ResizeObserver(O);F.observe(g),Qe=()=>{h!==0&&cancelAnimationFrame(h),window.clearTimeout(N),g.removeEventListener("scroll",O),F.disconnect();};},{flush:"post"}),onUnmounted(()=>Qe?.());let Q=ref(null),et=shallowRef(null),Ie=()=>{let v=et.value;v&&v.editor.releaseSelection(v.pin),et.value=null,Q.value=null;};watch(()=>o.value,(v,g)=>{g&&g!==v&&et.value?.editor===g&&Ie();});let uo=()=>{let v=o.value;if(!v||i.value)return;let g=v.getSelectionPlacement()?.anchorY??null;if(g===null)return;Ie();let h=v.retainSelection();h&&(et.value={editor:v,pin:h},l.setPaneOpen(true),Q.value=g,n?.proxy?.$forceUpdate());},Ee,co=()=>{if(!y.value||e.hidden){Ee?.(),Ee=void 0;return}Ee??=p.value.registerCommentDraft(uo);};onMounted(co),watch(()=>e.hidden,co);let Pn=()=>{Ie(),o.value?.focus(),n?.proxy?.$forceUpdate();};watch(R,v=>{v||Q.value===null||Ie();}),onBeforeUnmount(()=>{y.value=false,b?.(),b=void 0,Ee?.(),Ee=void 0,Ie();});let Ot=computed(()=>Q.value??l.selectionAnchorY.value),re=computed(()=>{let v=_e(K.value);return K.value.filter(g=>!Te(g,v))}),Tn=computed(()=>{let v=Q.value;if(v===null)return re.value;let g=re.value.findIndex(A=>A.anchorY!==null&&A.anchorY>v),h={key:te,anchorY:v};return g===-1?[...re.value,h]:[...re.value.slice(0,g),h,...re.value.slice(g)]}),_n=computed(()=>{let v=new Map(Je.value);for(let g of re.value){if(v.has(g.key))continue;let h=g.text.length+(g.kind==="revision"?g.replacedText?.length??0:0),A=Math.min(6,Math.max(1,Math.ceil(h/36)));v.set(g.key,64+A*20);}return v}),kt=computed(()=>{let v=_.value.scale,g=new Map,h=new Set,A=Number.NEGATIVE_INFINITY;for(let N of Tn.value){let O=N.anchorY===null?Number.isFinite(A)?A:0:Math.max(N.anchorY,A);g.set(N.key,O);let F=N.anchorY===null?0:(O-N.anchorY)*v,q="isActive"in N&&N.isActive,M=F>To&&!q&&N.key!==te;M&&h.add(N.key);let V=M?Po:_n.value.get(N.key)??ko;A=O+(V+e.gap)/v;}return {stacked:g,collapsedKeys:h}}),Ae=computed(()=>Ot.value===null?null:_.value.top+(C.value?Ot.value:kt.value.stacked.get(te)??Ot.value)*_.value.scale),Mn=computed(()=>(l.commentResolutionDisabledReason.value,l.selectionAnchorY.value,l.paneOpen.value,l.items.value.length,sa(l,K.value))),Pt=()=>{let v=Y.value,g=v?ne.value.get(v)??0:0;return {t:e.t,cardClassName:e.card?.className,readOnly:i.value,composeTop:Ae.value,review:Mn.value,allItems:d.items.value,authorSlots:ne.value,authorInfo:We.value,draftAuthor:v,draftAuthorInfo:v?We.value.get(v):void 0,draftAuthorSlot:g,byId:Ne.value,measure:kn,beginDraft:uo,endDraft:Pn,expandedResolvedKey:X.value,setExpandedResolvedKey:h=>{X.value=h;}}},Tt=shallowRef(Pt());return watchEffect(()=>{Tt.value=Pt();}),watch(()=>s.value,()=>{Tt.value=Pt(),n?.proxy?.$forceUpdate();},{flush:"sync"}),provide($t,Tt),()=>{if(e.hidden||r.value)return null;s.value,d.items.value,Q.value,K.value.length,l.selectionAnchorY.value,l.paneOpen.value,l.commentResolutionDisabledReason.value,Ae.value;let v=W=>{f.value=W.el instanceof HTMLElement?W.el:null;},g={onVnodeMounted:v,onVnodeUpdated:v,onVnodeBeforeUnmount:()=>{f.value=null;},class:`docx-review${e.className?` ${e.className}`:""}`,"data-testid":"review-rail","data-count":K.value.length,"data-open":T.value?"":void 0,"data-compact":C.value?"":void 0,role:"complementary","aria-label":m("review.ariaLabel"),onMousedown:L,style:_.value.left===null?void 0:{left:`${_.value.left}px`,right:"auto"}},h$1=t.default?.()??[],A=e.asChild&&h$1.length===1&&isVNode(h$1[0])?h$1[0]:null,{parts:N,rest:O}=Oe(A?[]:h$1,"root"),F={stack:e.stack,positions:kt.value.stacked,collapsed:kt.value.collapsedKeys,scale:_.value.scale,offset:_.value.top,window:ce.value},q=h(Jt,{scale:_.value.scale,offset:_.value.top,window:ce.value}),M=C.value?re.value.find(W=>W.key===l.activeKey.value)??null:null,V=M===null?null:M.anchorY!==null?_.value.top+M.anchorY*_.value.scale:ce.value!==null?ce.value.top+it+24:null,ee=Oe(O,"list"),me=M&&t.item?t.item({item:M}):ee.parts.Card?at(ee.parts.Card,e.card?.className):e.preset?h(qe,e.card?.className?{className:e.card.className}:{},()=>ee.rest):null,ae=M&&V!==null&&_.value.compactCardLeft!==null&&me?h(dt,{entry:M,className:"docx-review__slot--compact",testId:"review-compact-card",style:{position:"absolute",top:`${V}px`,left:`${_.value.compactCardLeft}px`,width:`${Pe}px`}},()=>me):null,fe=T.value?e.preset||"List"in N?Fe("List",h(Wt,F,{...O.length>0?{default:()=>O}:{},...t.item?{item:t.item}:{}}),N):O:e.preset||"Markers"in N?[Fe("Markers",q,N),ae]:O,pe=[T.value&&e.furniture!==void 0?h("div",{class:"docx-review__furniture","data-testid":"review-furniture"},[e.furniture]):null,fe,...e.preset||"AddComment"in N?[Fe("AddComment",h(Xt,{top:Ae.value,drafting:Q.value!==null}),N)]:[],...Q.value===null||Ae.value===null||!R.value||!e.preset&&!("Draft"in N)?[]:[Fe("Draft",h(ia,{top:Ae.value??0,left:C.value?_.value.compactCardLeft:null}),N)],...e.preset||"Balloon"in N?[Fe("Balloon",h(Qt),N)]:[]],U=A;if(!U)return h("aside",g,pe);let ie=cloneVNode(U,g,true);if(typeof U.type=="string"){let W=Array.isArray(U.children)?U.children:U.children==null?[]:typeof U.children=="string"||typeof U.children=="number"?[U.children]:[];ie.children=[...W,...pe],ie.shapeFlag=ie.shapeFlag&-9|16;}else {let W=U.children&&!Array.isArray(U.children)&&typeof U.children=="object"?U.children:{},mo=W.default;ie.children={...W,default:(...Dn)=>[...mo?[mo(...Dn)]:[],...pe]},ie.shapeFlag=ie.shapeFlag&-25|32;}return ie}}});var da=Object.assign(la,{List:Wt,Empty:vt,Card:qe,Avatar:we,Author:ge,Time:he,Summary:Ce,Accept:Ue,Reject:He,Resolve:Bt,Reopen:Ft,Delete:yt,Replies:Gt,Reply:Yt,Markers:Jt,AddComment:Xt,Draft:jt,Balloon:Qt});function oe(){let e=useDocxEditor(),t=useEditorState(n=>n.collaborationStatus);return {session:computed(()=>(t.value,e.value?.collaborationSession()??null))}}function va(e){let t=oe(),n=shallowRef("inactive"),o=shallowRef(void 0),r=shallowRef(void 0),i=shallowRef(false);return watch(()=>e===void 0?t.session.value:toValue(e),(s,a,u)=>{let d=()=>{if(!s){n.value="inactive",o.value=void 0,r.value=void 0,i.value=false;return}let l=s.statusSnapshot();n.value=l.status,o.value=l.reason,r.value=l.lastFailure,i.value=s.attached??false;};d(),s&&u(s.subscribeStatus(()=>d()));},{immediate:true}),{status:readonly(n),reason:readonly(o),lastFailure:readonly(r),attached:readonly(i),live:computed(()=>n.value==="ready"),diverged:computed(()=>n.value==="error"||n.value==="destroyed")}}var Rn=Object.freeze([]);function ha(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 bt(e){let t=oe(),n=shallowRef(Rn);return watch(()=>e===void 0?t.session.value:toValue(e),(o,r,i)=>{let s=()=>{let a=o?o.participants():Rn;ha(n.value,a)||(n.value=a);};s(),o&&i(o.subscribeParticipants(()=>s()));},{immediate:true}),{participants:readonly(n)}}var Na=defineComponent({name:"DocxEditorCollaborationRoot",inheritAttrs:false,props:{collaboration:{type:Object,required:true}},setup(e,{slots:t,attrs:n}){return ()=>{let{document:o,modules:r,session:i}=e.collaboration;if(!o)return t.fallback?.()??null;let s=n.author??i?.identity.name;return h(DocxEditorRoot,{...n,key:i?.sessionId??"local",document:o,modules:r,...s!==void 0?{author:s}:{}},t.default?{default:t.default}:void 0)}}});var Ia=Symbol("useDocumentCollaboration.createRoom");async function Ea(e){let{createDocumentCollaboration:t}=await import('../document-session-R4ETEHGF.js');return t(e)}function Aa(e){return e?.[Ia]??Ea}function Oa(e){return e?`${e.documentId}:${e.bootstrap.kind}:${e.identity.actorId}`:""}function ka(e){let t=getCurrentInstance(),n=d({ownerKey:`vue-document:${String(t?.uid??"anonymous")}`,hookName:"useDocumentCollaboration",createRoomOf:()=>Aa(toValue(e)),hostModulesOf:()=>toValue(e)?.modules??c,autoRoomOf:()=>toValue(e)?.room??null,autoKeyOf:()=>Oa(toValue(e)?.room),rejoinOptionsOf:o=>({...o,bootstrap:{kind:"join"}}),identityOf:o=>o.identity});return {document:readonly(n.document),modules:readonly(n.modules),session:readonly(n.session),pending:readonly(n.pending),error:readonly(n.error),connect:n.connect,leave:n.leave}}var Ye=8;function wn(e){let t=/^var\(--doc-review-author-(\d{1,2})\)$/.exec(e);return t?Number(t[1])%Ye:null}function St(e,t,n,o){let r=new Map(e.map(a=>[a.author,a])),i=new Map,s=new Map;for(let a of t){if(s.has(a.actorId))continue;let u=safeParticipantColor(o?.(a.name));if(u!==void 0){s.set(a.actorId,{color:u,slot:wn(u)});continue}let d=safeParticipantColor(a.color);if(d!==void 0){s.set(a.actorId,{color:d,slot:null});continue}let l=r.get(a.name),c=safeParticipantColor(n?.(a.name));if(c!==void 0){s.set(a.actorId,{color:c,slot:wn(c)??(l?l.slot%Ye:null)});continue}if(l!==void 0){let f=l.slot%Ye;s.set(a.actorId,{color:safeParticipantColor(l.color)??`var(--doc-review-author-${f})`,slot:f});continue}let m=i.get(a.name);m===void 0&&(m=e.length+i.size,i.set(a.name,m)),s.set(a.actorId,{color:`var(--doc-review-author-${m%Ye})`,slot:m%Ye});}return s}function oo(e,t,n,o){return St(e,[t],n,o).get(t.actorId)}function no(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 gn(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 It(e,t,n){for(let o of e)if(o.author===t)return o.style?.avatarUrl;return n?.(t)?.avatarUrl}var hn=Symbol("docx-collaboration-avatar-accents");function Cn(e){return e!==void 0?{avatarUrl:e}:{}}function $a(e,t,n,o){return 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 bn=defineComponent({name:"CollaborationAvatar",props:{participant:{type:Object,required:true},className:{type:String,default:void 0}},setup(e,{slots:t}){let n=useDocxEditor(),o=useReviewAuthors(),r=inject(hn,null);return ()=>{let i=n.value,s=r?.value.get(e.participant.actorId)??oo(o.value,e.participant,i?d=>i.presenceColorFor(d):void 0,i?d=>i.getReviewAuthorStyle(d)?.color:void 0),a=It(o.value,e.participant.name,i?d=>i.getReviewAuthorStyle(d):void 0),u=t.default?.()??(a!==void 0?h("img",{class:"docx-collaboration-avatar__image",src:a,alt:""}):no(e.participant.name));return $a(e.participant,s,e.className,u)}}}),Ka=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=useDocxEditor(),o=oe(),r=computed(()=>e.session===void 0?o.session.value:e.session),{participants:i}=bt(r),s=useReviewAuthors(),{t:a}=useTranslation(),u=computed(()=>{let c=n.value;return St(s.value,i.value,c?m=>c.presenceColorFor(m):void 0,c?m=>c.getReviewAuthorStyle(m)?.color:void 0)}),d=computed(()=>{let c=n.value,m=c?p=>c.getReviewAuthorStyle(p):void 0,f=new Map;for(let p of i.value){if(f.has(p.name))continue;let y=It(s.value,p.name,m);y!==void 0&&f.set(p.name,y);}return f}),l=computed(()=>gn(i.value));return provide(hn,u),()=>{if(l.value.length===0)return null;let c=e.max===void 0?l.value:l.value.slice(0,Math.max(0,e.max)),m=l.value.length-c.length,f=a("collaboration.moreParticipants",{count:m});return h("span",{class:`docx-collaboration-avatars${e.className?` ${e.className}`:""}`,"data-collaboration-avatars":"",role:"group","aria-label":a("collaboration.participants")},[...c.map(p=>t.default?h(Fragment,{key:p.actorId},[t.default({participant:p,color:u.value.get(p.actorId).color,initials:no(p.name),...Cn(d.value.get(p.name))})]):h(bn,{key:p.actorId,participant:p})),m>0?h("span",{class:"docx-collaboration-avatar","data-collaboration-avatar":"","data-overflow":"",title:f,role:"img","aria-label":f},`+${m}`):null])}}}),Ua=defineComponent({name:"CollaborationCaretLabels",props:{session:{type:Object,default:void 0}},setup(e,{slots:t}){let n=useDocxEditor(),o=oe(),r=computed(()=>e.session===void 0?o.session.value:e.session),{participants:i}=bt(r),s=useReviewAuthors(),a=shallowRef([]);return watch([n,r],([u,d],l,c)=>{!u||!d||(u.setRemoteCaretLabelHost({publish:m=>{a.value=[...m];}}),c(()=>{u.setRemoteCaretLabelHost(null),a.value=[];}));},{immediate:true}),()=>{if(a.value.length===0)return null;let u=St(s.value,i.value);return a.value.map(d=>{let{selection:l}=d,c=i.value.find(p=>p.actorId===l.actorId)??null,m=d.element.style.getPropertyValue("--doc-remote-color"),f=m!==""?m:u.get(l.actorId)?.color??oo(s.value,{actorId:l.actorId,name:l.name,...l.color!==void 0?{color:l.color}:{},isLocal:false}).color;return h(Teleport,{to:d.element,key:l.actorId},[t.default?t.default({selection:l,participant:c,color:f,...Cn(It(s.value,l.name,n.value?p=>n.value.getReviewAuthorStyle(p):void 0))}):l.name])})}}}),Ha={CaretLabels:Ua,Avatars:Ka,Avatar:bn};function Ze(e){let t=useDocxEditor();return computed(()=>{let n=toValue(e);return n||(t.value?.getCustomNodeDefinitions()??[]).filter(nt)})}var Ga=".docx-content-control-boundary";function be(e,t){let{node:n,definition:o,controlId:r}=e,i=r?t?.getReviewItems().find(u=>u.kind==="custom"&&u.item.id===r):void 0;if(i?.kind==="custom"){let u=i.item;return {...n,attrs:u.attrs,text:u.text,...u.data===void 0?{}:{data:u.data},...r?{nodeId:r}:{}}}let s=r?Za(t,r,o):void 0,a=o.fromDocx?o.fromDocx({attrs:n.attrs,text:"",...s===void 0?{}:{data:s}}):n.attrs;return a===null?null:{...n,attrs:a,...s===void 0?{}:{data:s},...r?{nodeId:r}:{}}}function Za(e,t,n){let o=e?.surface;if(!o)return;let r=partOfNodeId(o.session,t),i=customNodePayloadsByControl(o.session.currentPackage(),(r??o.session.part()).name,o.session.part().name).get(t);if(!i)return;let s=ot(n.schema,i.data);return s.ok?s.value:void 0}function xe(e,t){let n=e?.closest?.(Ga),o=n?.closest(".docx-content-control-chrome"),r=o?.getAttribute("data-tag"),i=r?tt(r):null;if(!n||!i||!r)return null;let s=t.find(a=>a.tagPrefix===i.prefix&&a.name===i.name);return s?{node:{name:i.name,attrs:i.attrs,tag:r,rect:n.getBoundingClientRect()},definition:s,controlId:o?.getAttribute("data-docx-content-control")??null}:null}var so=".docx-content-control-boundary";function ei(e){if(!Mt.test(e.tagPrefix)||!Mt.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 ti=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=useDocxEditor(),n=Ze(()=>e.nodes),o,r=null,i=null,s=l=>xe(document.elementFromPoint(l.clientX,l.clientY),n.value),a=l=>{let c=l.button===0?s(l):null;r=c?.controlId??null,i=c?.node.tag??null;},u=l=>{let c=r,m=i;if(r=null,i=null,m===null)return;let f=s(l);if(!f||f.node.tag!==m||c!==null&&f.controlId!==c)return;let p=be(f,t.value);p&&(f.definition.onClick?.(p),e.onNodeClick?.(p));},d=l=>{let c=xe(l.target,n.value);if(!c||l.relatedTarget?.closest?.(so)===l.target.closest(so))return;let f=be(c,t.value);f&&(c.definition.onHover?.(f),e.onNodeHover?.(f));};return onMounted(()=>{o=watch(n,(l,c,m)=>{let f=document.createElement("style"),p=[];for(let y of l){let b=ei(y);if(b.length===0)continue;let S=y.chrome?.color,R=S!==void 0&&typeof CSS<"u"&&CSS.supports("color",S)?S:"var(--doc-accent)";p.push(`${b.map(E=>`${E} ${so}`).join(", ")} {`," pointer-events: auto !important;"," opacity: 1;"," border: none;",` background: color-mix(in srgb, ${R} 12%, transparent);`," border-radius: 6px;"," cursor: default;","}");}f.textContent=p.join(`
2
2
  `),document.head.append(f),m(()=>f.remove());},{immediate:true}),document.addEventListener("pointerdown",a,true),document.addEventListener("pointerup",u,true),document.addEventListener("mouseover",d);}),onBeforeUnmount(()=>{o?.(),document.removeEventListener("pointerdown",a,true),document.removeEventListener("pointerup",u,true),document.removeEventListener("mouseover",d);}),()=>null}});function ni(e){return e.surface??null}function Nn(e){let t=e.detail?`${e.reason}: ${e.detail}`:e.reason;return {ok:false,code:ri.has(e.reason)?"invalidArgs":"unsupported",reason:t}}var ri=new Set(["payload-too-large","unaddressable-payload","store-not-authored","offset-out-of-range","invalid-range","invalid-property-value","splits-surrogate-pair"]);function Sn(e){return e.getEditingMode()==="viewing"?{ok:false,code:"locked",reason:"the document is open for viewing"}:null}function xn(e){let t=e.getActiveScope();if(t.kind==="headerFooter")return {kind:"headerFooter",rId:t.rId};if(t.kind==="note"){let n=parseNoteScopeId(t.id);if(n)return {kind:"notesPart",noteKind:n.noteKind}}return {kind:"body"}}function In(e,t){let n=ni(e),o=t===void 0?"":t.slice(0,t.indexOf("#"));if(!n||o.length===0)return xn(e);if(o===n.session.part().name)return {kind:"body"};for(let r of n.session.headerFooterResolutionBySection())for(let i of [r.headers,r.footers])for(let s of i.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 xn(e)}function ai(e){return e.surface??null}function En(e,t){let n=ai(e);if(!n)return {ok:false,code:"notFound",reason:"no document is mounted"};let o=Sn(e);if(o)return o;n.flushPendingInput();let r=n.session.removeCustomNode(t,In(e,t));return r.ok?{ok:true,changed:true}:Nn(r)}var ci=Object.assign(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=useContextMenuTarget(),o=useDocxEditor(),{t:r}=useTranslation(),i=computed(()=>xe(n,t.value)),s=computed(()=>{let u=i.value;return u?be(u,o.value):null}),a=computed(()=>{let u=i.value,d=s.value;return !u?.definition.reviewCard||!d?null:u.definition.reviewCard({attrs:d.attrs,text:d.text??"",...d.data===void 0?{}:{data:d.data}})});return ()=>{let u=i.value,d=s.value;if(!u||!d)return null;let{definition:l}=u,c=l.label??l.name,m=l.onEdit!==void 0||e.onEditNode!==void 0,f=e.remove&&d.nodeId!==void 0&&o.value!==null;return !a.value&&!m&&!f?null:jsxs(Fragment,{children:[a.value?jsxs("div",{class:"docx-contextmenu__custom-info","data-testid":"custom-node-info",children:[jsx("span",{class:"docx-contextmenu__custom-title",children:a.value.title}),a.value.detail?jsx("span",{class:"docx-contextmenu__custom-detail",children:a.value.detail}):null]}):null,m?jsx(ContextMenuItem,{label:r("contextMenu.editCustomNode",{label:c}),className:"docx-contextmenu__custom-edit",onSelect:()=>{l.onEdit?.(d),e.onEditNode?.(d,l);}}):null,f?jsx(ContextMenuItem,{label:r("contextMenu.removeCustomNode",{label:c}),className:"docx-contextmenu__custom-remove",onSelect:()=>{let p=En(o.value,d.nodeId);p.ok||e.onRemoveRefused?.(d,p.reason);}}):null,jsx("div",{role:"separator",class:"docx-toolbar__menu-separator"})]})}}}),{docxRowPlacement:"start"});export{ti as CustomNodeChrome,ci as CustomNodeContextMenu,Ha as DocxEditorCollaboration,Na as DocxEditorCollaborationRoot,da as DocxEditorReview,be as activatedCustomNodeOf,xe as resolveCustomNodeActivation,Wn as reviewModule,bt as useCollaborationParticipants,oe as useCollaborationSession,va as useCollaborationStatus,Ze as useCustomNodeDefinitions,ka as useDocumentCollaboration,rr as useReview,br as useReviewAuthor,$ as useReviewItem,ar as useReviewOf,ir as useStackedReviewPositions};
@@ -1 +1 @@
1
- 'use strict';var chunkQ4YPX2DT_cjs=require('../chunk-Q4YPX2DT.cjs'),vue=require('vue');var c=Symbol("useWebrtcCollaboration.createRoom");function b(o){return o?`${o.signaling?o.signaling.join(","):""}:${o.roomId}:${o.bootstrap.kind}:${o.identity.actorId}`:""}async function y(o){let{createWebrtcCollaboration:n}=await import('../webrtc-2WNLDNHU.cjs');return n(o)}function p(o){return o?.[c]??y}function u(o){let n=vue.getCurrentInstance(),e=chunkQ4YPX2DT_cjs.d({ownerKey:`vue-webrtc:${String(n?.uid??"anonymous")}`,hookName:"useWebrtcCollaboration",createRoomOf:()=>p(vue.toValue(o)),hostModulesOf:()=>vue.toValue(o)?.modules??chunkQ4YPX2DT_cjs.c,autoRoomOf:()=>vue.toValue(o)?.room??null,autoKeyOf:()=>b(vue.toValue(o)?.room),rejoinOptionsOf:l=>({...l,bootstrap:{kind:"join"}}),identityOf:l=>l.identity});return {document:vue.readonly(e.document),modules:vue.readonly(e.modules),session:vue.readonly(e.session),ydoc:vue.computed(()=>e.room.value?.ydoc??null),provider:vue.computed(()=>e.room.value?.provider??null),pending:vue.readonly(e.pending),error:vue.readonly(e.error),connect:e.connect,leave:e.leave,rejoin:e.rejoin}}exports.useWebrtcCollaboration=u;
1
+ 'use strict';var chunkQ4YPX2DT_cjs=require('../chunk-Q4YPX2DT.cjs'),vue=require('vue');var c=Symbol("useWebrtcCollaboration.createRoom");function b(o){return o?`${o.signaling?o.signaling.join(","):""}:${o.roomId}:${o.bootstrap.kind}:${o.identity.actorId}`:""}async function y(o){let{createWebrtcCollaboration:n}=await import('../webrtc-F6OLZU65.cjs');return n(o)}function p(o){return o?.[c]??y}function u(o){let n=vue.getCurrentInstance(),e=chunkQ4YPX2DT_cjs.d({ownerKey:`vue-webrtc:${String(n?.uid??"anonymous")}`,hookName:"useWebrtcCollaboration",createRoomOf:()=>p(vue.toValue(o)),hostModulesOf:()=>vue.toValue(o)?.modules??chunkQ4YPX2DT_cjs.c,autoRoomOf:()=>vue.toValue(o)?.room??null,autoKeyOf:()=>b(vue.toValue(o)?.room),rejoinOptionsOf:l=>({...l,bootstrap:{kind:"join"}}),identityOf:l=>l.identity});return {document:vue.readonly(e.document),modules:vue.readonly(e.modules),session:vue.readonly(e.session),ydoc:vue.computed(()=>e.room.value?.ydoc??null),provider:vue.computed(()=>e.room.value?.provider??null),pending:vue.readonly(e.pending),error:vue.readonly(e.error),connect:e.connect,leave:e.leave,rejoin:e.rejoin}}exports.useWebrtcCollaboration=u;
@@ -1 +1 @@
1
- import {d,c as c$1}from'../chunk-W3V54DWZ.js';import {getCurrentInstance,toValue,readonly,computed}from'vue';var c=Symbol("useWebrtcCollaboration.createRoom");function b(o){return o?`${o.signaling?o.signaling.join(","):""}:${o.roomId}:${o.bootstrap.kind}:${o.identity.actorId}`:""}async function y(o){let{createWebrtcCollaboration:n}=await import('../webrtc-PZCIQ4FZ.js');return n(o)}function p(o){return o?.[c]??y}function u(o){let n=getCurrentInstance(),e=d({ownerKey:`vue-webrtc:${String(n?.uid??"anonymous")}`,hookName:"useWebrtcCollaboration",createRoomOf:()=>p(toValue(o)),hostModulesOf:()=>toValue(o)?.modules??c$1,autoRoomOf:()=>toValue(o)?.room??null,autoKeyOf:()=>b(toValue(o)?.room),rejoinOptionsOf:l=>({...l,bootstrap:{kind:"join"}}),identityOf:l=>l.identity});return {document:readonly(e.document),modules:readonly(e.modules),session:readonly(e.session),ydoc:computed(()=>e.room.value?.ydoc??null),provider:computed(()=>e.room.value?.provider??null),pending:readonly(e.pending),error:readonly(e.error),connect:e.connect,leave:e.leave,rejoin:e.rejoin}}export{u as useWebrtcCollaboration};
1
+ import {d,c as c$1}from'../chunk-W3V54DWZ.js';import {getCurrentInstance,toValue,readonly,computed}from'vue';var c=Symbol("useWebrtcCollaboration.createRoom");function b(o){return o?`${o.signaling?o.signaling.join(","):""}:${o.roomId}:${o.bootstrap.kind}:${o.identity.actorId}`:""}async function y(o){let{createWebrtcCollaboration:n}=await import('../webrtc-O3Y4W4P6.js');return n(o)}function p(o){return o?.[c]??y}function u(o){let n=getCurrentInstance(),e=d({ownerKey:`vue-webrtc:${String(n?.uid??"anonymous")}`,hookName:"useWebrtcCollaboration",createRoomOf:()=>p(toValue(o)),hostModulesOf:()=>toValue(o)?.modules??c$1,autoRoomOf:()=>toValue(o)?.room??null,autoKeyOf:()=>b(toValue(o)?.room),rejoinOptionsOf:l=>({...l,bootstrap:{kind:"join"}}),identityOf:l=>l.identity});return {document:readonly(e.document),modules:readonly(e.modules),session:readonly(e.session),ydoc:computed(()=>e.room.value?.ydoc??null),provider:computed(()=>e.room.value?.provider??null),pending:readonly(e.pending),error:readonly(e.error),connect:e.connect,leave:e.leave,rejoin:e.rejoin}}export{u as useWebrtcCollaboration};
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkLUUFBXJ5_cjs=require('./chunk-LUUFBXJ5.cjs'),chunkL6J5LQXZ_cjs=require('./chunk-L6J5LQXZ.cjs'),F=require('yjs'),awareness=require('y-protocols/awareness'),yWebrtc=require('y-webrtc');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var F__namespace=/*#__PURE__*/_interopNamespace(F);var D=new WeakSet,T=(e,n)=>(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3])>>>0,w=(e,n,i)=>{e[n]=i>>>24&255,e[n+1]=i>>>16&255,e[n+2]=i>>>8&255,e[n+3]=i&255;},B=e=>e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):null,Y=e=>new Promise(n=>{setTimeout(n,e);});function L(e,n){if(D.has(e))return;D.add(e);let i=e.send.bind(e),o=e._onChannelMessage.bind(e),d=n?.partialTimeoutMs,c=typeof d=="number"&&Number.isFinite(d)&&d>0?d:3e4,l=n?.onAbandonedMessage,f=[],s=new Map,b=false,E=1,h=t=>{let r=s.get(t);r&&(r.timer!==void 0&&clearTimeout(r.timer),s.delete(t),e.destroyed!==true&&l?.());},S=t=>{let r=s.get(t);r&&(r.timer!==void 0&&clearTimeout(r.timer),r.timer=setTimeout(()=>{h(t);},c));},u=()=>e._channel?.bufferedAmount??0,p=async()=>{let t=0;for(;u()>1048576;){if(e.destroyed===true||t>=3e4)return false;await Y(20),t+=20;}return e.destroyed!==true},I=async t=>{let r=Math.ceil(t.byteLength/16371);if(r>8192)throw new Error(`collaboration message needs ${r} chunks, above the 8192 limit`);let g=E;E=E+1>>>0||1;for(let A=0;A<r;A+=1){if(!await p())return;let y=A*16371,a=t.subarray(y,Math.min(y+16371,t.byteLength)),m=new Uint8Array(13+a.byteLength);m[0]=251,w(m,1,g),w(m,5,A),w(m,9,r),m.set(a,13),i(m);}},k=async()=>{if(!b){b=true;try{for(;f.length>0;){let t=f.shift();if(t){if(e.destroyed===!0)return;await I(t);}}}finally{b=false;}}};e.send=t=>{if(typeof t=="string"||t.byteLength<=16371){i(t);return}f.push(t),k();},e._onChannelMessage=t=>{let r=B(t.data);if(!r||r.byteLength<13||r[0]!==251){o(t);return}let g=T(r,1),A=T(r,5),y=T(r,9);if(y===0||y>8192||A>=y)return;let a=s.get(g);if(!a){if(s.size>=4){let _=s.keys().next();_.done||h(_.value);}a={chunks:new Array(y),count:y,received:0,bytes:0,timer:void 0},s.set(g,a);}if(a.count!==y||a.chunks[A])return;let m=r.subarray(13);if(a.chunks[A]=m,a.received+=1,a.bytes+=m.byteLength,a.received!==a.count){S(g);return}a.timer!==void 0&&clearTimeout(a.timer),s.delete(g);let v=new Uint8Array(a.bytes),P=0;for(let _ of a.chunks){if(!_)return;v.set(_,P),P+=_.byteLength;}e.destroyed!==true&&e.push(v);};}var W=Object.freeze(["wss://turn.0docker.com/ws"]),R=false;function H(e){e===void 0&&(R||(R=true,console.warn("[docx-editor] createWebrtcCollaboration was called without `signaling`, so it uses the public demo endpoints. They are shared, unauthenticated, and can go away. Pass your own `signaling` URLs (and TURN `iceServers`) in production, or pass `signaling: DEMO_SIGNALING_ENDPOINTS` explicitly to accept the demo endpoints.")));}function V(){R=false;}var G=/^[A-Za-z0-9_-]{24,256}$/,U="#collab=";function X(e){let n=e.password?.trim()??"";return n.length>0?n:K(e.href)}var K=e=>{let n=e??(typeof globalThis.location=="object"&&globalThis.location!==null?String(globalThis.location.href??""):"");if(n.length===0)return;let i;try{i=new URL(n).hash;}catch{return}if(!i.startsWith(U))return;let o;try{o=decodeURIComponent(i.slice(U.length));}catch{return}if(G.test(o))return o},z=(e,n)=>{Promise.resolve(e.key).then(()=>{let i=e.room;if(!i)return;let o=i.webrtcConns,d=l=>{L(l.peer,{onAbandonedMessage:n});};for(let l of o.values())d(l);let c=o.set.bind(o);o.set=(l,f)=>(d(f),c(l,f));});};async function ee(e){let n=chunkLUUFBXJ5_cjs.b(e.roomId);H(e.signaling);let i=X({password:e.password}),o=new F__namespace.Doc,d=new awareness.Awareness(o),c=null,l=()=>{},f=()=>{let u=new yWebrtc.WebrtcProvider(n,o,{awareness:d,signaling:[...e.signaling??W],...i!==void 0?{password:i}:{},...e.iceServers?{peerOpts:{config:{iceServers:e.iceServers.map(p=>({...p}))}}}:{}});return z(u,()=>l()),u},s;try{e.bootstrap.kind!=="create"&&(c=f()),s=await chunkL6J5LQXZ_cjs.d({ydoc:o,awareness:d,documentId:n,identity:e.identity,bootstrap:e.bootstrap,offlineEditing:e.offlineEditing}),c||(c=f());}catch(u){throw c?.destroy(),d.destroy(),o.destroy(),u}if(!c)throw s.destroy(),d.destroy(),o.destroy(),new Error("WebRTC provider did not initialize");let b=c,E=s.session;l=()=>{E.setTransportStatus("error","transport","incomplete chunk");};let h=u=>{E.setTransportStatus(u.connected?"ready":"disconnected",u.connected?void 0:"transport-disconnected",u.connected?void 0:"webrtc disconnected");};b.on("status",h);let S=false;return Object.freeze({document:s.document,session:E,ydoc:o,provider:b,destroy(){S||(S=true,b.off("status",h),s.destroy(),b.destroy(),d.destroy(),o.destroy());}})}
1
+ 'use strict';var chunkLUUFBXJ5_cjs=require('./chunk-LUUFBXJ5.cjs'),chunkAB6CJLJ4_cjs=require('./chunk-AB6CJLJ4.cjs'),F=require('yjs'),awareness=require('y-protocols/awareness'),yWebrtc=require('y-webrtc');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var F__namespace=/*#__PURE__*/_interopNamespace(F);var D=new WeakSet,T=(e,n)=>(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3])>>>0,w=(e,n,i)=>{e[n]=i>>>24&255,e[n+1]=i>>>16&255,e[n+2]=i>>>8&255,e[n+3]=i&255;},B=e=>e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):null,Y=e=>new Promise(n=>{setTimeout(n,e);});function L(e,n){if(D.has(e))return;D.add(e);let i=e.send.bind(e),o=e._onChannelMessage.bind(e),d=n?.partialTimeoutMs,c=typeof d=="number"&&Number.isFinite(d)&&d>0?d:3e4,l=n?.onAbandonedMessage,f=[],s=new Map,b=false,E=1,h=t=>{let r=s.get(t);r&&(r.timer!==void 0&&clearTimeout(r.timer),s.delete(t),e.destroyed!==true&&l?.());},S=t=>{let r=s.get(t);r&&(r.timer!==void 0&&clearTimeout(r.timer),r.timer=setTimeout(()=>{h(t);},c));},u=()=>e._channel?.bufferedAmount??0,p=async()=>{let t=0;for(;u()>1048576;){if(e.destroyed===true||t>=3e4)return false;await Y(20),t+=20;}return e.destroyed!==true},I=async t=>{let r=Math.ceil(t.byteLength/16371);if(r>8192)throw new Error(`collaboration message needs ${r} chunks, above the 8192 limit`);let g=E;E=E+1>>>0||1;for(let A=0;A<r;A+=1){if(!await p())return;let y=A*16371,a=t.subarray(y,Math.min(y+16371,t.byteLength)),m=new Uint8Array(13+a.byteLength);m[0]=251,w(m,1,g),w(m,5,A),w(m,9,r),m.set(a,13),i(m);}},k=async()=>{if(!b){b=true;try{for(;f.length>0;){let t=f.shift();if(t){if(e.destroyed===!0)return;await I(t);}}}finally{b=false;}}};e.send=t=>{if(typeof t=="string"||t.byteLength<=16371){i(t);return}f.push(t),k();},e._onChannelMessage=t=>{let r=B(t.data);if(!r||r.byteLength<13||r[0]!==251){o(t);return}let g=T(r,1),A=T(r,5),y=T(r,9);if(y===0||y>8192||A>=y)return;let a=s.get(g);if(!a){if(s.size>=4){let _=s.keys().next();_.done||h(_.value);}a={chunks:new Array(y),count:y,received:0,bytes:0,timer:void 0},s.set(g,a);}if(a.count!==y||a.chunks[A])return;let m=r.subarray(13);if(a.chunks[A]=m,a.received+=1,a.bytes+=m.byteLength,a.received!==a.count){S(g);return}a.timer!==void 0&&clearTimeout(a.timer),s.delete(g);let v=new Uint8Array(a.bytes),P=0;for(let _ of a.chunks){if(!_)return;v.set(_,P),P+=_.byteLength;}e.destroyed!==true&&e.push(v);};}var W=Object.freeze(["wss://turn.0docker.com/ws"]),R=false;function H(e){e===void 0&&(R||(R=true,console.warn("[docx-editor] createWebrtcCollaboration was called without `signaling`, so it uses the public demo endpoints. They are shared, unauthenticated, and can go away. Pass your own `signaling` URLs (and TURN `iceServers`) in production, or pass `signaling: DEMO_SIGNALING_ENDPOINTS` explicitly to accept the demo endpoints.")));}function V(){R=false;}var G=/^[A-Za-z0-9_-]{24,256}$/,U="#collab=";function X(e){let n=e.password?.trim()??"";return n.length>0?n:K(e.href)}var K=e=>{let n=e??(typeof globalThis.location=="object"&&globalThis.location!==null?String(globalThis.location.href??""):"");if(n.length===0)return;let i;try{i=new URL(n).hash;}catch{return}if(!i.startsWith(U))return;let o;try{o=decodeURIComponent(i.slice(U.length));}catch{return}if(G.test(o))return o},z=(e,n)=>{Promise.resolve(e.key).then(()=>{let i=e.room;if(!i)return;let o=i.webrtcConns,d=l=>{L(l.peer,{onAbandonedMessage:n});};for(let l of o.values())d(l);let c=o.set.bind(o);o.set=(l,f)=>(d(f),c(l,f));});};async function ee(e){let n=chunkLUUFBXJ5_cjs.b(e.roomId);H(e.signaling);let i=X({password:e.password}),o=new F__namespace.Doc,d=new awareness.Awareness(o),c=null,l=()=>{},f=()=>{let u=new yWebrtc.WebrtcProvider(n,o,{awareness:d,signaling:[...e.signaling??W],...i!==void 0?{password:i}:{},...e.iceServers?{peerOpts:{config:{iceServers:e.iceServers.map(p=>({...p}))}}}:{}});return z(u,()=>l()),u},s;try{e.bootstrap.kind!=="create"&&(c=f()),s=await chunkAB6CJLJ4_cjs.d({ydoc:o,awareness:d,documentId:n,identity:e.identity,bootstrap:e.bootstrap,offlineEditing:e.offlineEditing}),c||(c=f());}catch(u){throw c?.destroy(),d.destroy(),o.destroy(),u}if(!c)throw s.destroy(),d.destroy(),o.destroy(),new Error("WebRTC provider did not initialize");let b=c,E=s.session;l=()=>{E.setTransportStatus("error","transport","incomplete chunk");};let h=u=>{E.setTransportStatus(u.connected?"ready":"disconnected",u.connected?void 0:"transport-disconnected",u.connected?void 0:"webrtc disconnected");};b.on("status",h);let S=false;return Object.freeze({document:s.document,session:E,ydoc:o,provider:b,destroy(){S||(S=true,b.off("status",h),s.destroy(),b.destroy(),d.destroy(),o.destroy());}})}
2
2
  Object.defineProperty(exports,"createCollaborationRoomId",{enumerable:true,get:function(){return chunkLUUFBXJ5_cjs.a}});Object.defineProperty(exports,"validateRoomId",{enumerable:true,get:function(){return chunkLUUFBXJ5_cjs.b}});exports.DEMO_SIGNALING_ENDPOINTS=W;exports.createWebrtcCollaboration=ee;exports.resetDemoSignalingWarningForTests=V;exports.resolveWebrtcRoomPassword=X;exports.warnOnDemoSignalingFallback=H;
@@ -1,2 +1,2 @@
1
- import {b}from'./chunk-6DEUT2RQ.js';export{a as createCollaborationRoomId,b as validateRoomId}from'./chunk-6DEUT2RQ.js';import {d}from'./chunk-ABW4JBFQ.js';import*as F from'yjs';import {Awareness}from'y-protocols/awareness';import {WebrtcProvider}from'y-webrtc';var D=new WeakSet,T=(e,n)=>(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3])>>>0,w=(e,n,i)=>{e[n]=i>>>24&255,e[n+1]=i>>>16&255,e[n+2]=i>>>8&255,e[n+3]=i&255;},B=e=>e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):null,Y=e=>new Promise(n=>{setTimeout(n,e);});function L(e,n){if(D.has(e))return;D.add(e);let i=e.send.bind(e),o=e._onChannelMessage.bind(e),d=n?.partialTimeoutMs,c=typeof d=="number"&&Number.isFinite(d)&&d>0?d:3e4,l=n?.onAbandonedMessage,f=[],s=new Map,b=false,E=1,h=t=>{let r=s.get(t);r&&(r.timer!==void 0&&clearTimeout(r.timer),s.delete(t),e.destroyed!==true&&l?.());},S=t=>{let r=s.get(t);r&&(r.timer!==void 0&&clearTimeout(r.timer),r.timer=setTimeout(()=>{h(t);},c));},u=()=>e._channel?.bufferedAmount??0,p=async()=>{let t=0;for(;u()>1048576;){if(e.destroyed===true||t>=3e4)return false;await Y(20),t+=20;}return e.destroyed!==true},I=async t=>{let r=Math.ceil(t.byteLength/16371);if(r>8192)throw new Error(`collaboration message needs ${r} chunks, above the 8192 limit`);let g=E;E=E+1>>>0||1;for(let A=0;A<r;A+=1){if(!await p())return;let y=A*16371,a=t.subarray(y,Math.min(y+16371,t.byteLength)),m=new Uint8Array(13+a.byteLength);m[0]=251,w(m,1,g),w(m,5,A),w(m,9,r),m.set(a,13),i(m);}},k=async()=>{if(!b){b=true;try{for(;f.length>0;){let t=f.shift();if(t){if(e.destroyed===!0)return;await I(t);}}}finally{b=false;}}};e.send=t=>{if(typeof t=="string"||t.byteLength<=16371){i(t);return}f.push(t),k();},e._onChannelMessage=t=>{let r=B(t.data);if(!r||r.byteLength<13||r[0]!==251){o(t);return}let g=T(r,1),A=T(r,5),y=T(r,9);if(y===0||y>8192||A>=y)return;let a=s.get(g);if(!a){if(s.size>=4){let _=s.keys().next();_.done||h(_.value);}a={chunks:new Array(y),count:y,received:0,bytes:0,timer:void 0},s.set(g,a);}if(a.count!==y||a.chunks[A])return;let m=r.subarray(13);if(a.chunks[A]=m,a.received+=1,a.bytes+=m.byteLength,a.received!==a.count){S(g);return}a.timer!==void 0&&clearTimeout(a.timer),s.delete(g);let v=new Uint8Array(a.bytes),P=0;for(let _ of a.chunks){if(!_)return;v.set(_,P),P+=_.byteLength;}e.destroyed!==true&&e.push(v);};}var W=Object.freeze(["wss://turn.0docker.com/ws"]),R=false;function H(e){e===void 0&&(R||(R=true,console.warn("[docx-editor] createWebrtcCollaboration was called without `signaling`, so it uses the public demo endpoints. They are shared, unauthenticated, and can go away. Pass your own `signaling` URLs (and TURN `iceServers`) in production, or pass `signaling: DEMO_SIGNALING_ENDPOINTS` explicitly to accept the demo endpoints.")));}function V(){R=false;}var G=/^[A-Za-z0-9_-]{24,256}$/,U="#collab=";function X(e){let n=e.password?.trim()??"";return n.length>0?n:K(e.href)}var K=e=>{let n=e??(typeof globalThis.location=="object"&&globalThis.location!==null?String(globalThis.location.href??""):"");if(n.length===0)return;let i;try{i=new URL(n).hash;}catch{return}if(!i.startsWith(U))return;let o;try{o=decodeURIComponent(i.slice(U.length));}catch{return}if(G.test(o))return o},z=(e,n)=>{Promise.resolve(e.key).then(()=>{let i=e.room;if(!i)return;let o=i.webrtcConns,d=l=>{L(l.peer,{onAbandonedMessage:n});};for(let l of o.values())d(l);let c=o.set.bind(o);o.set=(l,f)=>(d(f),c(l,f));});};async function ee(e){let n=b(e.roomId);H(e.signaling);let i=X({password:e.password}),o=new F.Doc,d$1=new Awareness(o),c=null,l=()=>{},f=()=>{let u=new WebrtcProvider(n,o,{awareness:d$1,signaling:[...e.signaling??W],...i!==void 0?{password:i}:{},...e.iceServers?{peerOpts:{config:{iceServers:e.iceServers.map(p=>({...p}))}}}:{}});return z(u,()=>l()),u},s;try{e.bootstrap.kind!=="create"&&(c=f()),s=await d({ydoc:o,awareness:d$1,documentId:n,identity:e.identity,bootstrap:e.bootstrap,offlineEditing:e.offlineEditing}),c||(c=f());}catch(u){throw c?.destroy(),d$1.destroy(),o.destroy(),u}if(!c)throw s.destroy(),d$1.destroy(),o.destroy(),new Error("WebRTC provider did not initialize");let b$1=c,E=s.session;l=()=>{E.setTransportStatus("error","transport","incomplete chunk");};let h=u=>{E.setTransportStatus(u.connected?"ready":"disconnected",u.connected?void 0:"transport-disconnected",u.connected?void 0:"webrtc disconnected");};b$1.on("status",h);let S=false;return Object.freeze({document:s.document,session:E,ydoc:o,provider:b$1,destroy(){S||(S=true,b$1.off("status",h),s.destroy(),b$1.destroy(),d$1.destroy(),o.destroy());}})}
1
+ import {b}from'./chunk-6DEUT2RQ.js';export{a as createCollaborationRoomId,b as validateRoomId}from'./chunk-6DEUT2RQ.js';import {d}from'./chunk-54OI2PSM.js';import*as F from'yjs';import {Awareness}from'y-protocols/awareness';import {WebrtcProvider}from'y-webrtc';var D=new WeakSet,T=(e,n)=>(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3])>>>0,w=(e,n,i)=>{e[n]=i>>>24&255,e[n+1]=i>>>16&255,e[n+2]=i>>>8&255,e[n+3]=i&255;},B=e=>e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):null,Y=e=>new Promise(n=>{setTimeout(n,e);});function L(e,n){if(D.has(e))return;D.add(e);let i=e.send.bind(e),o=e._onChannelMessage.bind(e),d=n?.partialTimeoutMs,c=typeof d=="number"&&Number.isFinite(d)&&d>0?d:3e4,l=n?.onAbandonedMessage,f=[],s=new Map,b=false,E=1,h=t=>{let r=s.get(t);r&&(r.timer!==void 0&&clearTimeout(r.timer),s.delete(t),e.destroyed!==true&&l?.());},S=t=>{let r=s.get(t);r&&(r.timer!==void 0&&clearTimeout(r.timer),r.timer=setTimeout(()=>{h(t);},c));},u=()=>e._channel?.bufferedAmount??0,p=async()=>{let t=0;for(;u()>1048576;){if(e.destroyed===true||t>=3e4)return false;await Y(20),t+=20;}return e.destroyed!==true},I=async t=>{let r=Math.ceil(t.byteLength/16371);if(r>8192)throw new Error(`collaboration message needs ${r} chunks, above the 8192 limit`);let g=E;E=E+1>>>0||1;for(let A=0;A<r;A+=1){if(!await p())return;let y=A*16371,a=t.subarray(y,Math.min(y+16371,t.byteLength)),m=new Uint8Array(13+a.byteLength);m[0]=251,w(m,1,g),w(m,5,A),w(m,9,r),m.set(a,13),i(m);}},k=async()=>{if(!b){b=true;try{for(;f.length>0;){let t=f.shift();if(t){if(e.destroyed===!0)return;await I(t);}}}finally{b=false;}}};e.send=t=>{if(typeof t=="string"||t.byteLength<=16371){i(t);return}f.push(t),k();},e._onChannelMessage=t=>{let r=B(t.data);if(!r||r.byteLength<13||r[0]!==251){o(t);return}let g=T(r,1),A=T(r,5),y=T(r,9);if(y===0||y>8192||A>=y)return;let a=s.get(g);if(!a){if(s.size>=4){let _=s.keys().next();_.done||h(_.value);}a={chunks:new Array(y),count:y,received:0,bytes:0,timer:void 0},s.set(g,a);}if(a.count!==y||a.chunks[A])return;let m=r.subarray(13);if(a.chunks[A]=m,a.received+=1,a.bytes+=m.byteLength,a.received!==a.count){S(g);return}a.timer!==void 0&&clearTimeout(a.timer),s.delete(g);let v=new Uint8Array(a.bytes),P=0;for(let _ of a.chunks){if(!_)return;v.set(_,P),P+=_.byteLength;}e.destroyed!==true&&e.push(v);};}var W=Object.freeze(["wss://turn.0docker.com/ws"]),R=false;function H(e){e===void 0&&(R||(R=true,console.warn("[docx-editor] createWebrtcCollaboration was called without `signaling`, so it uses the public demo endpoints. They are shared, unauthenticated, and can go away. Pass your own `signaling` URLs (and TURN `iceServers`) in production, or pass `signaling: DEMO_SIGNALING_ENDPOINTS` explicitly to accept the demo endpoints.")));}function V(){R=false;}var G=/^[A-Za-z0-9_-]{24,256}$/,U="#collab=";function X(e){let n=e.password?.trim()??"";return n.length>0?n:K(e.href)}var K=e=>{let n=e??(typeof globalThis.location=="object"&&globalThis.location!==null?String(globalThis.location.href??""):"");if(n.length===0)return;let i;try{i=new URL(n).hash;}catch{return}if(!i.startsWith(U))return;let o;try{o=decodeURIComponent(i.slice(U.length));}catch{return}if(G.test(o))return o},z=(e,n)=>{Promise.resolve(e.key).then(()=>{let i=e.room;if(!i)return;let o=i.webrtcConns,d=l=>{L(l.peer,{onAbandonedMessage:n});};for(let l of o.values())d(l);let c=o.set.bind(o);o.set=(l,f)=>(d(f),c(l,f));});};async function ee(e){let n=b(e.roomId);H(e.signaling);let i=X({password:e.password}),o=new F.Doc,d$1=new Awareness(o),c=null,l=()=>{},f=()=>{let u=new WebrtcProvider(n,o,{awareness:d$1,signaling:[...e.signaling??W],...i!==void 0?{password:i}:{},...e.iceServers?{peerOpts:{config:{iceServers:e.iceServers.map(p=>({...p}))}}}:{}});return z(u,()=>l()),u},s;try{e.bootstrap.kind!=="create"&&(c=f()),s=await d({ydoc:o,awareness:d$1,documentId:n,identity:e.identity,bootstrap:e.bootstrap,offlineEditing:e.offlineEditing}),c||(c=f());}catch(u){throw c?.destroy(),d$1.destroy(),o.destroy(),u}if(!c)throw s.destroy(),d$1.destroy(),o.destroy(),new Error("WebRTC provider did not initialize");let b$1=c,E=s.session;l=()=>{E.setTransportStatus("error","transport","incomplete chunk");};let h=u=>{E.setTransportStatus(u.connected?"ready":"disconnected",u.connected?void 0:"transport-disconnected",u.connected?void 0:"webrtc disconnected");};b$1.on("status",h);let S=false;return Object.freeze({document:s.document,session:E,ydoc:o,provider:b$1,destroy(){S||(S=true,b$1.off("status",h),s.destroy(),b$1.destroy(),d$1.destroy(),o.destroy());}})}
2
2
  export{W as DEMO_SIGNALING_ENDPOINTS,ee as createWebrtcCollaboration,V as resetDemoSignalingWarningForTests,X as resolveWebrtcRoomPassword,H as warnOnDemoSignalingFallback};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docx-editor.dev/pro",
3
- "version": "2.14.1",
3
+ "version": "2.15.0",
4
4
  "description": "Commercial capabilities for @docx-editor.dev: the review module (comments, tracked changes, markup rendering), custom inline nodes, and realtime collaboration.",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -70,9 +70,9 @@
70
70
  "license:add": "license-check-and-add add -f license-check.json"
71
71
  },
72
72
  "peerDependencies": {
73
- "@docx-editor.dev/core": "~2.14.0",
74
- "@docx-editor.dev/react": "~2.14.0",
75
- "@docx-editor.dev/vue": "~2.14.0",
73
+ "@docx-editor.dev/core": "~2.15.0",
74
+ "@docx-editor.dev/react": "~2.15.0",
75
+ "@docx-editor.dev/vue": "~2.15.0",
76
76
  "react": "^18.0.0 || ^19.0.0",
77
77
  "react-dom": "^18.0.0 || ^19.0.0",
78
78
  "vue": "^3.3.0",