@file-viewer/docx 0.3.35 → 0.3.36

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.
@@ -23,4 +23,4 @@
23
23
  * attached.
24
24
  *
25
25
  * Source: https://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/symbol.txt
26
- */const ts={33:33,34:8704,35:35,36:8707,37:37,38:38,39:8715,40:40,41:41,42:8727,43:43,44:44,45:8722,46:46,47:47,48:48,49:49,50:50,51:51,52:52,53:53,54:54,55:55,56:56,57:57,58:58,59:59,60:60,61:61,62:62,63:63,64:8773,65:913,66:914,67:935,69:917,70:934,71:915,72:919,73:921,74:977,75:922,76:923,77:924,78:925,79:927,80:928,81:920,82:929,83:931,84:932,85:933,86:962,88:926,89:936,90:918,91:91,92:8756,93:93,94:8869,95:95,97:945,98:946,99:967,100:948,101:949,102:966,103:947,104:951,105:953,106:981,107:954,108:955,110:957,111:959,112:960,113:952,114:961,115:963,116:964,117:965,118:982,119:969,120:958,121:968,122:950,123:123,124:124,125:125,126:8764,160:8364,161:978,162:8242,163:8804,165:8734,166:402,167:9827,168:9830,169:9829,170:9824,171:8596,172:8592,173:8593,174:8594,175:8595,176:176,177:177,178:8243,179:8805,180:215,181:8733,182:8706,183:8226,184:247,185:8800,186:8801,187:8776,188:8230,191:8629,192:8501,193:8465,194:8476,195:8472,196:8855,197:8853,198:8709,199:8745,200:8746,201:8835,202:8839,203:8836,204:8834,205:8838,206:8712,207:8713,208:8736,209:8711,213:8719,214:8730,215:8901,216:172,217:8743,218:8744,219:8660,220:8656,221:8657,222:8658,223:8659,224:9674,225:9001,229:8721,241:9002,242:8747,243:8992,245:8993};class rs{constructor(e,t,r){this.className=e,this.createLayer=t,this.layoutContent=r,this.records=new Map,this.bindingRoot=null,this.binding=null,this.root=t(),this.root.dataset.docxCommentLayer="true"}add(e){this.records.set(e.key,e),this.root.appendChild(e.popup)}references(e,t){return Array.from(e.querySelectorAll("[data-docx-comment-reference]")).filter(e=>e.dataset.docxCommentReference===t.key)}place(e,t){const r=t.ownerDocument?.defaultView;if(!r||!t.isConnected||!this.root.isConnected)return;const n=this.root,a=n.getBoundingClientRect(),s=t.getBoundingClientRect(),o=e.references.find(e=>!e.closest("a"))??e.references[0]??t,i=o.getBoundingClientRect(),l=parseFloat(r.getComputedStyle(n).width),c=l>0?a.width/l:0;if(!(c>0&&Number.isFinite(c)&&s.width&&s.height&&i.width&&i.height))return;e.positionedReference!==o&&e.positionedReference&&delete e.positionedReference.dataset.docxCommentPositioned,e.positionedReference=o,e.reference=t;const h=(s.left-a.left)/c,d=(s.top-a.top)/c;let u=(i.left-a.left)/c;const m=(i.top-a.top)/c,p=i.width/c,f=o.closest("a");if(f){const e=f.getBoundingClientRect(),t=o.closest("section")??n,s=t.getBoundingClientRect(),i=r.getComputedStyle(t),h=(s.left-a.left)/c,d=(s.right-a.left)/c,m=(e.left-a.left)/c,g=(e.right-a.left)/c,b=4;u=[h+(parseFloat(i.paddingLeft)||0)-p-b,d-(parseFloat(i.paddingRight)||0)+b,h-p-b,d+b].find(e=>e>=0&&e+p<=l&&(e+p<=m-b||e>=g+b))??Math.max(l,g)+b}e.popup.style.position="absolute",e.popup.style.left=`${u}px`,e.popup.style.top=`${m}px`;const g=r.getComputedStyle(o);if(e.summary.style.fontSize=g.fontSize,e.summary.style.fontFamily=g.fontFamily,e.summary.style.lineHeight=g.lineHeight,e.summary.style.width=`${p}px`,e.summary.style.height=i.height/c+"px",f?delete o.dataset.docxCommentPositioned:o.dataset.docxCommentPositioned="true",e.popup.open){const t=e.body.getBoundingClientRect().width/c,n=Math.min(0,Math.max(-h,l-h-t));e.body.style.left=`${h-u+n}px`,e.body.style.maxWidth=`${Math.max(0,l)}px`;const o=a.height/c,p=Math.max(0,Math.min(o-d-s.height/c,(r.innerHeight-s.bottom)/c)),f=Math.max(0,Math.min(d,s.top/c)),g=p<120&&f>p;e.body.style.top=g?"auto":d-m+s.height/c+"px",e.body.style.bottom=g?m+i.height/c-d+"px":"auto",e.body.style.maxHeight=`${Math.max(1,g?f:p)}px`}}close(e){delete e.restoringOpen,e.revision++,e.opening?.abort(),e.opening=null,e.open=!1,e.popup.open=!1,e.references.forEach(e=>e.setAttribute("aria-expanded","false"))}activate(e,t,r,n=!1){if(!r.generation.isCurrent()||!t.isConnected)return Promise.resolve();delete e.restoringOpen,e.reference=t;const a=e.open;if(e.open=!0,e.popup.open=!0,e.references.forEach(e=>e.setAttribute("aria-expanded","true")),this.place(e,t),a&&!n)return e.layout??Promise.resolve();e.opening?.abort();const s=e.opening=new AbortController,o=++e.revision,i=()=>s.abort();r.generation.signal.addEventListener("abort",i,{once:!0});const c={signal:s.signal,cancel:i,isCurrent:()=>!s.signal.aborted&&r.generation.isCurrent()&&e.revision===o&&e.popup.open&&e.reference.isConnected};return e.body.dataset.docxCommentLayout="pending",e.layout=l(e.body,[],c).then(()=>{c.isCurrent()&&(this.layoutContent(e.body),this.place(e,e.reference),e.body.dataset.docxCommentLayout="ready")}).catch(t=>{e.revision===o&&(e.body.dataset.docxCommentLayout="AbortError"===t?.name?"cancelled":"failed")}).finally(()=>r.generation.signal.removeEventListener("abort",i)),e.layout}async bind(e,t){if(!e.isConnected||!t.isCurrent()||"function"!=typeof e.addEventListener)return;let r=this.binding;if(r&&r.generation.signal===t.signal&&(this.bindingRoot===e||this.bindingRoot.contains(e)))return r.generation=t,void await this.sync(this.bindingRoot,r,!0);r&&r.dispose(r.generation.isCurrent()&&e.isConnected),r=null;const n=[],a=(e,t,r,a=!1)=>{e.addEventListener(t,r,a),n.push(()=>e.removeEventListener(t,r,a))};let s=Array.from(this.records.values()).find(e=>e.popup.open)??null,o=null,i=!1,l=!1;const c=()=>{let t=e.getRootNode().activeElement??e.ownerDocument.activeElement;for(;t?.shadowRoot?.activeElement;)t=t.shadowRoot.activeElement;return t},h=e=>{const t=e.reference.hasAttribute("tabindex")?e.reference:e.summary;i=!0,t.focus(),i=!1},d=e=>e&&1===e.nodeType?e:null,u=e=>{const t=d(e)?.closest("[data-docx-comment-reference], [data-docx-comment-popup]");return t?this.records.get(t.dataset.docxCommentReference??t.dataset.docxCommentPopup):null},m=(e,t)=>{const r=t;return!!r&&(e.popup.contains(r)||e.references.some(e=>e.contains(r)))},p=(e=s)=>{e&&this.close(e),s===e&&(s=null)};r={generation:t,dispose:(t=!1)=>{n.splice(0).forEach(e=>e());for(const e of this.records.values())t||this.close(e),e.positionedReference&&delete e.positionedReference.dataset.docxCommentPositioned,delete e.positionedReference;this.binding===r&&(this.binding=null,this.bindingRoot=null),e.isConnected&&r.generation.isCurrent()||this.root.remove()}},this.binding=r,this.bindingRoot=e;const f=(e,t)=>{if(l)return;s&&s!==e&&this.close(s),s=e;const n=d(t),a=n?.closest("[data-docx-comment-reference]")??(e.summary.contains(n)?e.positionedReference:null)??e.reference;this.activate(e,a,r)};a(e,"mouseover",e=>{const t=u(e.target);if(t){if(s&&s!==t&&m(s,c()))return;o=t,f(t,e.target)}}),a(e,"mouseout",e=>{const t=e.relatedTarget;s&&!m(s,t)&&(o=null,m(s,c())||p())}),a(e,"focusin",e=>{const t=u(e.target);!i&&t&&d(e.target)?.dataset.docxCommentReference&&f(t,e.target)}),a(e,"focusout",e=>{s&&o!==s&&!m(s,e.relatedTarget)&&p()}),a(e,"click",e=>{const t=d(e.target)?.closest("[data-docx-comment-reference]"),r=t&&this.records.get(t.dataset.docxCommentReference);r&&(e.preventDefault(),e.stopPropagation(),r.popup.open?p(r):f(r,t))}),a(e,"keydown",e=>{const t=e,r=u(e.target);if(!r)return;const n=d(e.target)?.closest("[data-docx-comment-reference]");if(!n||"Enter"!==t.key&&" "!==t.key){if("Escape"===t.key)e.preventDefault(),e.stopPropagation(),p(r),h(r);else if("Tab"===t.key&&r.popup.open){const a=Array.from(r.body.querySelectorAll("a[href], button, input, select, textarea, [tabindex]")).filter(e=>e.tabIndex>=0&&!e.disabled);n&&!t.shiftKey&&a.length?(e.preventDefault(),a[0].focus()):t.shiftKey&&e.target===a[0]?(e.preventDefault(),h(r)):t.shiftKey||e.target!==a[a.length-1]||(h(r),p(r))}}else e.preventDefault(),e.stopPropagation(),r.popup.open?p(r):f(r,n)}),a(e,"toggle",e=>{const t=u(e.target);if(t&&e.target===t.popup&&!l){if(void 0!==t.restoringOpen){const e=t.restoringOpen;if(delete t.restoringOpen,t.popup.open===e)return}t.popup.open&&!t.open?f(t,t.reference):!t.popup.open&&t.open&&(this.close(t),s===t&&(s=null))}},!0);const g=e.ownerDocument.defaultView;if(g){const t=()=>{!l&&r.generation.isCurrent()&&this.sync(e,r,!0)};a(g,"resize",t),a(g,"scroll",t,!0);const s=new Map;a(g,"beforeprint",()=>{if(!l&&r.generation.isCurrent()){l=!0;for(const e of this.records.values())s.set(e,e.popup.open),e.popup.open=!0,this.layoutContent(e.body)}}),a(g,"afterprint",()=>{if(l){for(const[e,t]of s)e.restoringOpen=t,t||e.opening?.abort(),e.open=t,e.popup.open=t,e.references.forEach(e=>e.setAttribute("aria-expanded",`${t}`));s.clear(),l=!1,this.sync(e,r,!0)}});const o=g.MutationObserver;if(o){const t=new o(()=>{e.isConnected&&r.generation.isCurrent()||r.dispose()});t.observe(e.ownerDocument.documentElement,{childList:!0,subtree:!0});for(let r=e.getRootNode();r&&r!==e.ownerDocument;r=r.host?.getRootNode())t.observe(r,{childList:!0,subtree:!0});n.push(()=>t.disconnect())}}a(t.signal,"abort",()=>r.dispose()),await this.sync(e,r,!0)}async sync(e,t,r=!1){const n=[];for(const a of this.records.values()){const s=this.references(e,a);if(!s.length)continue;a.references=s;const o=s.includes(a.reference)?a.reference:s[0];this.place(a,o),t&&a.popup.open&&r?n.push(this.activate(a,o,t,!0)):a.layout&&n.push(a.layout)}await Promise.all(n)}}const ns={pos:0,leader:"none",style:"left"},as=.1;function ss(e=document.body){const t=document.createElement("div");t.style.width="100pt",e.appendChild(t);const r=100/t.offsetWidth;return e.removeChild(t),r}function os(e,t,r,n=.75){const a=e.closest("p");if(!a)return;const s=e.getBoundingClientRect(),o=a.getBoundingClientRect(),i=getComputedStyle(a);if("rtl"==i.direction||i.writingMode&&"horizontal-tb"!=i.writingMode)return;const l=is(i.marginInlineStart||i.marginLeft),c=is(i.marginInlineEnd||i.marginRight),h=is(i.textIndent),d=t?.length>0?t.map(e=>({pos:ls(e.position),leader:e.leader,style:e.style})).sort((e,t)=>e.pos-t.pos):[ns],u=l*n,m=d.some(e=>Math.abs(e.pos-u)<=as);h<-.1&&u>as&&!m&&(d.push({...ns,pos:u}),d.sort((e,t)=>e.pos-t.pos));const p=d[d.length-1],f=(o.width+l+c)*n,g=Number.isFinite(ls(r))?ls(r):36;let b=p.pos+g;if(b<f)for(;b<f&&d.length<50;b+=g)d.push({...ns,pos:b});const y=o.left-l,x=(s.left-y)*n,w=d.find(e=>"clear"!=e.style&&e.pos>x);if(null==w)return;if(!["left","right","center"].includes(w.style||"left"))return;let v=1;if("right"==w.style||"center"==w.style){const t=Array.from(a.querySelectorAll(`.${e.className}`)),r=t.indexOf(e)+1,s=document.createRange();s.setStart(e,1),r<t.length?s.setEndBefore(t[r]):s.setEnd(a,a.childNodes.length);const o="center"==w.style?.5:1,i=s.getBoundingClientRect(),l=i.left+o*i.width-y;v=w.pos-l*n}else v=w.pos-x;const k=Math.max(Number.isFinite(v)?v:0,0);switch(" "!==e.textContent&&(e.textContent=" "),e.style.display="inline-block",e.style.width=`${k.toFixed(2)}pt`,e.style.minWidth="0pt",e.style.lineHeight="1",e.style.whiteSpace="nowrap",e.style.wordSpacing="normal",e.style.textDecoration="none",e.style.borderBottom="",e.style.height="",e.style.transform="",w.leader){case"dot":case"middleDot":e.style.borderBottom="1px dotted currentColor",e.style.height=".85em",e.style.transform="translateY(-.18em)";break;case"hyphen":case"heavy":case"underscore":e.style.borderBottom="1px solid currentColor",e.style.height=".85em",e.style.transform="translateY(-.18em)"}}function is(e){const t=parseFloat(e);return Number.isFinite(t)?t:0}function ls(e){return parseFloat(e)}function cs(e){const t=/^\s*([-+]?(?:\d+(?:\.\d*)?|\.\d+))(pt|px|pc|in|cm|mm)?\s*$/i.exec(e??"");if(!t)return null;const r={pt:1,px:.75,pc:12,in:72,cm:72/2.54,mm:72/25.4}[t[2]?.toLowerCase()??"pt"],n=Number(t[1])*r;return Number.isFinite(n)?n:null}function hs(e,t){const r="explicit"==e.dataset.docxTabLayout,n=r?e.dataset.docxTabFallbackWidth??"":e.style.width,a=r?e.dataset.docxTabFallbackMinWidth??"":e.style.minWidth??"",s=e.style.display,o=()=>(r&&(e.style.width=n,e.style.minWidth=a),e.style.display=s,!1),i=e.closest("p"),l=e.ownerDocument?.defaultView;if(!i||!l||!e.isConnected)return o();const c=l.getComputedStyle(i);if("rtl"==c.direction||c.writingMode&&"horizontal-tb"!=c.writingMode)return o();const h=t.filter(e=>"clear"!=e.style).map(e=>({...e,point:cs(e.position)}));if(!h.length||h.some(e=>null==e.point))return o();h.sort((e,t)=>e.point-t.point);const d=e.style.width;e.style.display="inline-block",e.style.width="0pt";const u=e.getBoundingClientRect(),m=i.getBoundingClientRect(),p=is(c.width)+("border-box"==c.boxSizing?0:is(c.paddingLeft)+is(c.paddingRight)+is(c.borderLeftWidth)+is(c.borderRightWidth)),f=p>0?m.width/p:0;if(!(f>0&&Number.isFinite(f)))return e.style.width=d,o();const g=m.left/f-is(c.marginLeft),b=.75*(u.left/f-g),y=h.find(e=>e.point>b+as);if(!y||!["left","right","center"].includes(y.style||"left")||y.leader&&"none"!=y.leader)return e.style.width=d,o();const x=e=>{for(;e&&e!=i;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}return null};let w=null;for(let t=x(e);t;){if(1==t.nodeType){const e=t;if("BR"==e.tagName||"P"==e.tagName||"true"==e.dataset.docxTab||"true"==e.dataset.docxDrawing){w=e;break}}t=t.firstChild??x(t)}let v=0;if("right"==y.style||"center"==y.style){const t=e.ownerDocument.createRange();if(t.setStartAfter(e),w?t.setEndBefore(w):t.setEnd(i,i.childNodes.length),v=t.getBoundingClientRect().width/f*.75,!Number.isFinite(v))return e.style.width=d,o()}const k="right"==y.style?1:"center"==y.style?.5:0,C=Math.max(0,y.point-b-k*v);return" "!==e.textContent&&(e.textContent=" "),e.style.width=`${C.toFixed(2)}pt`,e.style.minWidth="0pt",e.style.lineHeight="1",e.style.whiteSpace="nowrap",e.style.wordSpacing="normal",e.dataset.docxTabLayout="explicit",e.dataset.docxTabFallbackWidth=n,e.dataset.docxTabFallbackMinWidth=a,!0}function ds(e,t,r){if(!t||![t.start,t.size,r].every(Number.isFinite))return null;if(e.alignSpecified)return"center"==e.align?t.start+(t.size-r)/2:"right"==e.align||"bottom"==e.align?t.start+t.size-r:"left"==e.align||"top"==e.align?t.start:null;const n=cs(e.offset??"0pt");return null==n?null:t.start+4*n/3}const us=e=>Number.parseFloat(e)||0;function ms(e,t,r){const n=e.ownerDocument?.defaultView,a=e.closest("p"),s=e.closest("[data-docx-comment-story]")??e.closest(`section.${r}`);if(!(n&&a&&s&&e.isConnected))return;if(a.closest("foreignObject"))return;const o=n.getComputedStyle(a);if("rtl"==o.direction||o.writingMode&&"horizontal-tb"!=o.writingMode)return;const i=n.getComputedStyle(s),l=s.getBoundingClientRect(),c=us(i.width)+("border-box"==i.boxSizing?0:us(i.paddingLeft)+us(i.paddingRight)+us(i.borderLeftWidth)+us(i.borderRightWidth)),h=c>0?l.width/c:0;if(!(h>0&&Number.isFinite(h)))return;const d=(e,t=!1)=>{const r=e.getBoundingClientRect(),a=n.getComputedStyle(e),s=t?us(a.borderLeftWidth)+us(a.paddingLeft):0,o=t?us(a.borderTopWidth)+us(a.paddingTop):0,i=t?us(a.borderRightWidth)+us(a.paddingRight):0,l=t?us(a.borderBottomWidth)+us(a.paddingBottom):0;return{x:{start:r.left/h+s,size:r.width/h-s-i},y:{start:r.top/h+o,size:r.height/h-o-l}}},u=d(s),m=d(s,!0),p=d(a);if(p.x.size<=0||p.y.size<=0)return;const f=a.closest("article, header, footer");if(!f)return;const g=d(f,!0),b=n.getComputedStyle(f),y=e.previousElementSibling,x="true"==y?.dataset.docxAnchorMarker?d(y):null,w=y?.querySelector?.('[data-docx-anchor-line="top"]'),v=y?.querySelector?.('[data-docx-anchor-line="bottom"]'),k=w?d(w).y.start:null,C=v?d(v).y.start:null,S=null!=k&&null!=C&&C>k?{start:k,size:C-k}:null,N={...g.x},A=us(b.columnCount),P=us(b.columnWidth);if(A>1||P>0){const e="normal"==b.columnGap?us(b.fontSize):us(b.columnGap),t=P>0?Math.max(1,Math.floor((N.size+e)/(P+e))):A,r=A>0?Math.min(A,t):t,n=(N.size+e)/r;if(!(n>0))return;const a=x?.x.start??p.x.start-us(o.marginLeft),s=Math.max(0,Math.min(r-1,Math.floor((a-N.start+.1)/n)));N.start+=s*n,N.size=n-e}const M=!1!==t.layoutInCell?a.closest("td, th"):null,$=M?d(M,!0):null,T=(e,t)=>$&&["page","margin","column","cell"].includes(t)?$[e]:"page"==t?u[e]:"margin"==t?m[e]:"column"==t?"x"==e?N:g.y:"paragraph"==t?p[e]:"character"==t?x?.[e]:"line"==t?"y"==e?S:x?.x:"cell"==t&&M?d(M,!0)[e]:null,F=n.getComputedStyle(e),L={x:us(F.width),y:us(F.height)},R={x:p.x.start+us(o.borderLeftWidth),y:p.y.start+us(o.borderTopWidth)};for(const[r,n]of[["x",t.horizontal],["y",t.vertical]]){const t=ds(n,T(r,n.relative),L[r]),a=cs(n.offset??"0pt");if(null==t||null==a)continue;const s=t-R[r]-4*a/3;e.style.setProperty(`--docx-anchor-origin-${r}`,`${(Math.abs(s)<5e-5?0:s).toFixed(4)}px`)}}const ps=new WeakMap,fs=e=>Number.parseFloat(e)||0;function gs(e,t=()=>!0){const r=e.ownerDocument.defaultView;if(!r)return;const n=e.getBoundingClientRect(),a=r.getComputedStyle(e),s=fs(a.width)+("border-box"===a.boxSizing?0:fs(a.paddingLeft)+fs(a.paddingRight)+fs(a.borderLeftWidth)+fs(a.borderRightWidth)),o=s?n.width/s:0;if(Number.isFinite(o)&&!(o<=0))for(const n of Array.from(e.querySelectorAll('[data-docx-anchor-horizontal="column"], [data-docx-anchor-horizontal="margin"]'))){if(null!=n.dataset.docxAnchorId||!t(n))continue;const a=n.closest('[data-docx-anchor-context="paragraph"]');if(!a||n.offsetParent!==a||"absolute"!==r.getComputedStyle(n).position||!n.style.left)continue;if(a.closest("td, th"))continue;const s="margin"===n.dataset.docxAnchorHorizontal?e:a.closest("article, header, footer");if(!s||!e.contains(s)&&s!==e)continue;const i=r.getComputedStyle(s);let l=s.getBoundingClientRect().left+(fs(i.borderLeftWidth)+fs(i.paddingLeft))*o;const c=r.getComputedStyle(a),h=a.getBoundingClientRect();if(s!==e){const e=fs(i.columnCount),t=fs(i.columnWidth);if(e>1||t>0){const r="normal"===i.columnGap?fs(i.fontSize):fs(i.columnGap),n=s.clientWidth-fs(i.paddingLeft)-fs(i.paddingRight),a=(n+r)/(e>0?e:Math.max(1,Math.floor((n+r)/(t+r))));if(a>0){const e=(h.left-l)/o-fs(c.marginLeft);l+=Math.round(e/a)*a*o}}}const d=(l-(h.left+fs(c.borderLeftWidth)*o))/o;if(!Number.isFinite(d))continue;const u=ps.get(n)??n.style.left;ps.set(n,u),n.style.left=Math.abs(d)<.01?u:`calc(${u} + ${d.toFixed(4)}px)`}}const bs=new WeakMap,ys=/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:px|pt|pc|in|cm|mm)?$/i,xs=e=>""!==e&&"none"!==e&&"normal"!==e;function ws(e,t){for(let r=e.parentElement;r;r=r.parentElement){const e=t.getComputedStyle(r);if(e.position&&"static"!==e.position||xs(e.transform)||xs(e.perspective)||xs(e.filter)||/(?:layout|paint|strict|content)/.test(e.contain)||/(?:transform|perspective|filter)/.test(e.willChange))return r}return null}function vs(e,t=()=>!0){const r=e.ownerDocument.defaultView;if(!r)return 0;const n=r.getComputedStyle(e),a=fs(n.width)+("border-box"===n.boxSizing?0:fs(n.paddingLeft)+fs(n.paddingRight)+fs(n.borderLeftWidth)+fs(n.borderRightWidth)),s=a>0?e.getBoundingClientRect().width/a:0;if(!Number.isFinite(s)||s<=0)return 0;let o=0;for(const n of Array.from(e.querySelectorAll('svg[data-docx-float="true"]'))){if(null!=n.dataset.docxAnchorId||!t(n))continue;if("http://www.w3.org/2000/svg"!==n.namespaceURI||n.ownerSVGElement||"absolute"!==r.getComputedStyle(n).position)continue;const a=!("text"!==n.dataset.docxAnchorHorizontal||!n.style.left&&!n.style.marginLeft||n.style.right&&"auto"!==n.style.right),i=!("text"!==n.dataset.docxAnchorVertical||!n.style.top&&!n.style.marginTop||n.style.bottom&&"auto"!==n.style.bottom);if(!a&&!i)continue;const l=n.closest("p");if(!l||l.closest("td, th, svg, [data-docx-shape-textbox]"))continue;const c=l.closest("article, header, footer"),h=ws(n,r);if(!c||!e.contains(c)||!h||h!==l&&h!==c&&h!==e)continue;const d=r.getComputedStyle(h),u=h.getBoundingClientRect(),m=r.getComputedStyle(l);if("rtl"===m.direction||m.writingMode&&"horizontal-tb"!==m.writingMode)continue;const p=bs.get(n)??{left:n.style.left,top:n.style.top},f=e=>!e||"auto"===e||ys.test(e);if(a&&(!f(p.left)||!f(n.style.marginLeft))||i&&(!f(p.top)||!f(n.style.marginTop)))continue;let g=p.left;if(a){const e=r.getComputedStyle(c);let t=c.getBoundingClientRect().left+(fs(e.borderLeftWidth)+fs(e.paddingLeft))*s;const n=l.getBoundingClientRect(),a=fs(e.columnCount),o=fs(e.columnWidth);if(a>1||o>0){const r="normal"===e.columnGap?fs(e.fontSize):fs(e.columnGap),i=c.clientWidth-fs(e.paddingLeft)-fs(e.paddingRight),l=(i+r)/(a>0?a:Math.max(1,Math.floor((i+r)/(o+r))));if(!(l>0))continue;const h=(n.left-t)/s-fs(m.marginLeft);t+=Math.round(h/l)*l*s}const i=(t-u.left)/s-fs(d.borderLeftWidth);if(!Number.isFinite(i))continue;const h=p.left&&"auto"!==p.left?p.left:"0px";g=Math.abs(i)<.01?h:`calc(${h} + ${i.toFixed(4)}px)`}if(bs.set(n,p),a&&(n.style.left=g),i){const e=(l.getBoundingClientRect().top-u.top)/s+fs(m.borderTopWidth)-fs(d.borderTopWidth),t=p.top&&"auto"!==p.top?p.top:"0px";Number.isFinite(e)&&(n.style.top=Math.abs(e)<.01?t:`calc(${t} + ${e.toFixed(4)}px)`)}o++}return o}const ks=e=>Number.parseFloat(e)||0;function Cs(e,t,r){for(const n of Array.from(e.querySelectorAll("[data-docx-vml-text-viewport]"))){if(!r(n))continue;const e=n.ownerSVGElement;if(!e||"true"!==e.dataset.docxVml)continue;const a=e.getScreenCTM?.();if(!a)continue;const s=Math.hypot(a.a,a.b)/t,o=Math.hypot(a.c,a.d)/t,i=n.dataset.docxVmlTextViewport.split(" ").map(Number);if([s,o].every(e=>Number.isFinite(e)&&e>0)&&4===i.length&&i.every(Number.isFinite)&&!(Math.abs(a.a*a.c+a.b*a.d)>1e-5*t*t*s*o)){for(const[e,t]of["x","y","width","height"].entries())n.setAttribute(t,""+i[e]*(e%2?o:s));n.setAttribute("transform",`scale(${1/s} ${1/o})`)}}}function Ss(e){const t=/^([+-]?(?:\d+(?:\.\d*)?|\.\d+))(pt|px|in|cm|mm|pc)?$/i.exec(e?.trim()||"");if(!t)return null;const r=Number(t[1])*({pt:4/3,px:1,in:96,cm:96/2.54,mm:96/25.4,pc:16}[t[2]?.toLowerCase()||"px"]??1);return Number.isFinite(r)?r:null}function Ns(e){return ks(e.width)+("border-box"===e.boxSizing?0:ks(e.paddingLeft)+ks(e.paddingRight)+ks(e.borderLeftWidth)+ks(e.borderRightWidth))}function As(e,t){const r=t.ownerDocument.createTreeWalker(t,1);r.currentNode=e;for(let e=r.nextNode();e;e=r.nextNode())if(e.closest("p")!==t||e.matches("br, [data-docx-tab], [data-docx-float], [data-docx-frame-anchor]"))return e;return null}function Ps(e,t=()=>!0){const r=e.ownerDocument.defaultView;if(!r)return 0;const n=new Map;for(const r of Array.from(e.querySelectorAll('[data-docx-tab="true"][data-docx-tab-pos]'))){if(null!=r.dataset.docxTabId||!t(r))continue;const a=r.closest("p");if(!a||!e.contains(a)||r.closest('[data-docx-has-tab-leader="true"], [data-docx-toc-entry="true"]')||r.dataset.docxTabLeader&&"none"!==r.dataset.docxTabLeader||!["left","right","center"].includes(r.dataset.docxTabAlign||"left")||null===Ss(r.dataset.docxTabPos))continue;const s=n.get(a)||[];s.push(r),n.set(a,s)}let a=0;for(const[e,t]of n){const n=r.getComputedStyle(e);if("rtl"===n.direction||n.writingMode&&"horizontal-tb"!==n.writingMode||"center"===n.textAlign||"right"===n.textAlign||"end"===n.textAlign)continue;const s=e.getBoundingClientRect(),o=Ns(n),i=o>0?s.width/o:0;if(!Number.isFinite(i)||i<=0||s.width<=0)continue;const l=s.left+(ks(n.borderLeftWidth)+ks(n.paddingLeft))*i;for(const e of t)e.style.width="0px",e.style.minWidth="0px";for(const r of t){const t=Ss(r.dataset.docxTabPos),n=r.getBoundingClientRect(),s=e.ownerDocument.createRange();s.setStartAfter(r);const o=As(r,e);o?s.setEndBefore(o):s.setEnd(e,e.childNodes.length);const c=Array.from(s.getClientRects()).filter(e=>e.width>0&&e.bottom>n.top+.1&&e.top<n.bottom-.1);let h=Number.POSITIVE_INFINITY,d=Number.NEGATIVE_INFINITY;for(const e of c)h=Math.min(h,e.left),d=Math.max(d,e.right);const u=c.length?Math.max(0,d-h)/i:0,m="right"===r.dataset.docxTabAlign?1:"center"===r.dataset.docxTabAlign?.5:0,p=Math.max(0,t-(n.left-l)/i-u*m);Number.isFinite(p)&&(r.style.width=`${p.toFixed(4)}px`,a++)}}return a}const Ms=Math.pow(6/29,3);function $s(e){return e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92}function Ts(e){const t=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e;return Math.min(Math.max(0,t),1)}const Fs={black:[0,0,0],blue:[0,0,255],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgray:[169,169,169],darkgrey:[169,169,169],darkgreen:[0,100,0],darkmagenta:[139,0,139],darkred:[139,0,0],darkyellow:[128,128,0],green:[0,128,0],gray:[128,128,128],grey:[128,128,128],lightgray:[211,211,211],lightgrey:[211,211,211],magenta:[255,0,255],red:[255,0,0],white:[255,255,255],yellow:[255,255,0]};function Ls(e){return Math.min(255,Math.max(0,e))}const Rs=new Map,Es=/^var\(\s*(--[\w-]+)\s*,\s*([\s\S]+)\)$/i;function Bs(e,t=21.247){if(!e)return e;const r=e.trim(),n=r.toLowerCase();if(n.startsWith("var(")){const n=Es.exec(r);if(!n)return e;const a=n[2].trim(),s=Bs(a,t);return s===a?e:`var(${n[1]}, ${s})`}if(function(e){return""===e||"none"===e||"transparent"===e||"inherit"===e||"initial"===e||"unset"===e||"currentcolor"===e||e.startsWith("var(")||e.startsWith("color-mix(")||e.startsWith("url(")||e.startsWith("linear-gradient(")||e.startsWith("radial-gradient(")||e.startsWith("conic-gradient(")}(n))return e;const a=`${t}|${r}`,s=Rs.get(a);if(void 0!==s)return s;const o=function(e){const t=e.trim();if(t.startsWith("#")){const e=t.slice(1);if(3===e.length||4===e.length){const t=parseInt(e[0]+e[0],16),r=parseInt(e[1]+e[1],16),n=parseInt(e[2]+e[2],16),a=4===e.length?parseInt(e[3]+e[3],16)/255:1;return Number.isNaN(t)||Number.isNaN(r)||Number.isNaN(n)?null:{r:t,g:r,b:n,a:a}}if(6===e.length||8===e.length){const t=parseInt(e.slice(0,2),16),r=parseInt(e.slice(2,4),16),n=parseInt(e.slice(4,6),16),a=8===e.length?parseInt(e.slice(6,8),16)/255:1;return Number.isNaN(t)||Number.isNaN(r)||Number.isNaN(n)?null:{r:t,g:r,b:n,a:a}}return null}const r=/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i.exec(t);if(r)return{r:Ls(parseFloat(r[1])),g:Ls(parseFloat(r[2])),b:Ls(parseFloat(r[3])),a:void 0!==r[4]?parseFloat(r[4]):1};const n=Fs[t.toLowerCase()];return n?{r:n[0],g:n[1],b:n[2],a:1}:null}(r);if(!o||0===o.a)return Rs.set(a,e),e;const[i,l,c]=function(e,t,r){const n=$s(e/255),a=$s(t/255),s=$s(r/255);let o=100*(.4124564*n+.3575761*a+.1804375*s)/95.047,i=100*(.2126729*n+.7151522*a+.072175*s)/100,l=100*(.0193339*n+.119192*a+.9503041*s)/108.883;const c=e=>e>Ms?Math.cbrt(e):7.787*e+16/116;return o=c(o),i=c(i),l=c(l),[116*i-16,500*(o-i),200*(i-l)]}(o.r,o.g,o.b),h=(100-t)/100*(100-i)+t,[d,u,m]=function(e,t,r){const n=(e+16)/116,a=n-r/200,s=e=>e*e*e>Ms?e*e*e:(e-16/116)/7.787,o=95.047*s(n+t/500)/100,i=100*s(n)/100,l=108.883*s(a)/100,c=Ts(3.2404542*o+-1.5371385*i+-.4985314*l),h=Ts(-.969266*o+1.8760108*i+.041556*l),d=Ts(.0556434*o+-.2040259*i+1.0572252*l);return[Math.round(255*c),Math.round(255*h),Math.round(255*d)]}(h,l,c),p=o.a>=1?`rgb(${d}, ${u}, ${m})`:`rgba(${d}, ${u}, ${m}, ${Math.round(1e3*o.a)/1e3})`;return Rs.set(a,p),p}const Ds=new Set(["color","background-color","border-color","border-top-color","border-right-color","border-bottom-color","border-left-color","outline-color","text-decoration-color","caret-color","column-rule-color","fill","stroke"]),Is=new Set(["border","border-top","border-right","border-bottom","border-left","outline","column-rule"]),Os=/(var\([^)]*\)|rgba?\([^)]*\)|#[0-9a-fA-F]{3,8}|[a-zA-Z]+)\s*$/;function Hs(e,t){return e?e.replace(Os,e=>Bs(e,t)):e}var zs;function Ws(e){if(v(e))return document.createTextNode(e);if(e instanceof Node)return e;const{ns:t,tagName:r,className:n,style:a,children:s,...o}=e;if("#fragment"===r){const e=document.createDocumentFragment();return s?.forEach(t=>e.appendChild(Ws(t))),e}if("#comment"===r)return document.createComment(s[0]);const i=t?document.createElementNS(t,r):document.createElement(r);if(n&&i.setAttribute("class",n),a)if(v(a))i.setAttribute("style",a);else for(const[e,t]of Object.entries(a))null!=t&&(e.startsWith("--")||e.includes("-")?i.style.setProperty(e,t):i.style[e]=t);if(o)for(const[e,t]of Object.entries(o))void 0!==t&&(i[e]=t);return s&&s.forEach(e=>i.appendChild(Ws(e))),i}function Vs(...e){return e.filter(Boolean).join(" ")}function Us(e){const t=e?.reviewMode;return"final"===t||"original"===t||"simple"===t||"all"===t?t:e?.renderChanges||"auto"===t?"all":"final"}function js(e){return null!=e?.reviewMode||!0===e?.renderChanges}function qs(e){return"original"===e}function Gs(e){const t=[],r=e=>{if(!e)return;if(e.type===We.Paragraph)return void t.push(...function(e){const t=[];let r=null;const n=()=>{if(!r)return;const e=Zs(r.text);(e||r.structural)&&t.push(Ks(r.revision,e||"段落标记",r.structural,r.ids)),r=null},a=(e,t,a=!1)=>{const s=e.id;r&&Js(r.revision)===Js(e)?(null==s||r.ids.includes(s)||r.ids.push(s),r.structural||(r.structural=a)):(n(),r={revision:e,ids:null==s?[]:[s],text:"",structural:a}),r.text+=t},s=e=>{const r=e.props?.formatRevisions??[];if(r.length){n();for(const e of r)t.push(Ys(e))}};s(e);for(const t of e.props?.paragraphMarkRevisions??[]){const e=Xs(t,"delete"===t?.kind?We.Deleted:We.Inserted);e&&a(e,"","delete"===e.kind||"move-from"===e.kind)}const o=(e,t)=>{if(!e)return;s(e);const r=Xs(e.props?.revision,e.type),i=r?[...t,r]:t,l=function(e){return e.type===We.Text||e.type===We.DeletedText?e.text??"":e.type===We.Tab||e.type===We.PositionalTab?"\t":e.type===We.Break?"\n":e.type===We.NoBreakHyphen?"‑":null}(e);if(null!=l){const e=i[i.length-1];return void(e?a(e,l):l.length&&n())}for(const t of e.children??[])o(t,i)};for(const t of e.children??[])o(t,[]);return n(),t}(e));const n=Xs(e.props?.revision,e.type);if(n&&e.type!==We.Inserted&&e.type!==We.Deleted){const r=Zs(so(e));t.push(Ks(n,r||function(e){switch(e){case We.Row:return"表格行";case We.Cell:return"表格单元格";case We.Table:return"表格";case We.Paragraph:return"段落标记";default:return"结构修订"}}(e.type),!0))}for(const r of e.props?.formatRevisions??[])t.push(Ys(r));for(const t of e.children??[])r(t)};r(e?.documentPart?.body??e);for(const r of e?.commentsPart?.comments??[]){const e=null==r.id?void 0:String(r.id);t.push({id:e,ids:null==e?[]:[e],kind:"comment",author:r.author||void 0,date:r.date||void 0,text:Zs(so(r)),presentation:"balloon"})}return t}function _s(e,t){if("auto"===t){const t=Gs(e).length;return{enabled:t>0,mode:t>0?"all":"final",automatic:!0,changeCount:t}}return{enabled:null!=t,mode:Us({reviewMode:t??void 0}),automatic:!1,changeCount:0}}function Xs(e,t){if(!e)return null;const r=function(e,t){return"insert"===e||"delete"===e||"move-from"===e||"move-to"===e?e:t===We.Deleted?"delete":"insert"}(e.kind,t);return"insert"!==r&&"delete"!==r&&"move-from"!==r&&"move-to"!==r?null:{id:null==e.id?void 0:String(e.id),kind:r,author:e.author||void 0,date:e.date||void 0}}function Ks(e,t,r=!1,n){const a=no(n??(null==e.id?[]:[e.id]));return{id:a[0],ids:a,kind:e.kind,author:e.author,date:e.date,text:t||(r?"结构修订":""),presentation:"insert"===e.kind||"move-to"===e.kind?"inline":"balloon"}}function Ys(e){const t=null==e?.id?void 0:String(e.id),r=(n=e?.formatChanges,Array.isArray(n)?n.filter(e=>e&&e.property).map(e=>({property:String(e.property),before:null==e.before?void 0:String(e.before),after:null==e.after?void 0:String(e.after)})):[]);var n;return{id:t,ids:null==t?[]:[t],kind:"format",author:e?.author||void 0,date:e?.date||void 0,text:Qs(r,e?.kind),presentation:"balloon",formatChanges:r}}function Js(e){return[e.kind,e.author??"",e.date??""].join("\0")}function Zs(e){return String(e??"").replace(/[\u2060\u200b]/g,"").replace(/[ \t]+\n/g,"\n").trim()}function Qs(e,t){if(!e.length)return ro(t);return no(e.map(e=>function(e){const t=function(e){if(null==e)return;const t=/(?:^|\|)val=([^|]+)/.exec(e);return t?.[1]??e}(e.after);switch(e.property){case"u":return null==t||"none"===t||"0"===t||"false"===t?"无下划线":function(e){switch(e){case"single":return"单下划线";case"double":return"双下划线";case"words":return"仅字词下划线";case"wave":case"wavyDouble":case"wavyHeavy":return"波浪下划线";default:return"下划线"}}(t);case"b":return eo(t)?"加粗":"取消加粗";case"i":return eo(t)?"倾斜":"取消倾斜";case"strike":return eo(t)?"删除线":"取消删除线";case"dstrike":return eo(t)?"双删除线":"取消双删除线";case"color":return t?`字体颜色 ${to(t)}`:"自动字体颜色";case"highlight":return t&&"none"!==t?`突出显示 ${t}`:"无突出显示";case"sz":case"szCs":return t&&!Number.isNaN(Number(t))?`字号 ${Number(t)/2} 磅`:"字号已更改";case"rFonts":return t?`字体 ${function(e){const t=e.split("|").map(e=>e.split("=")).filter(e=>2===e.length),r=t.find(([e])=>"eastAsia"===e)??t.find(([e])=>"ascii"===e)??t[0];return r?.[1]??e}(t)}`:"使用默认字体";case"jc":return`对齐方式 ${function(e){switch(e){case"center":return"居中";case"right":case"end":return"右对齐";case"both":case"distribute":return"两端对齐";default:return"左对齐"}}(t)}`;case"spacing":return"段落间距已更改";case"ind":return"段落缩进已更改";case"shd":return t?`底纹 ${to(t)}`:"无底纹";case"vertAlign":return"superscript"===t?"上标":"subscript"===t?"下标":"基线对齐";default:return function(e,t){const r={caps:"全部大写",smallCaps:"小型大写字母",vanish:"隐藏文字",keepNext:"与下段同页",keepLines:"段中不分页",pageBreakBefore:"段前分页",tblBorders:"表格边框",tcBorders:"单元格边框",tblW:"表格宽度",tcW:"单元格宽度"}[e]??"格式";return t&&!["true","1"].includes(t)?`${r} ${t}`:r}(e.property,t)}}(e)).filter(Boolean)).join(";")||ro(t)}function eo(e){return null==e||""===e||"1"===e||"true"===e||"on"===e}function to(e){const t=/(?:val|fill)=([^|]+)/.exec(e);return t?.[1]??e}function ro(e){switch(e){case"paragraph-format":return"段落格式已更改";case"table-format":return"表格格式已更改";case"row-format":return"表格行格式已更改";case"cell-format":return"单元格格式已更改";default:return"字符格式已更改"}}function no(e){return[...new Set(e.filter(e=>null!=e&&""!==e))]}function ao(e){const t=["#c2410c","#2563eb","#7c3aed","#0f766e","#be123c","#4d7c0f","#a21caf","#0369a1"],r=String(e||"Unknown");let n=2166136261;for(let e=0;e<r.length;e++)n^=r.charCodeAt(e),n=Math.imul(n,16777619);return t[(n>>>0)%t.length]}function so(e){return e.type===We.Text||e.type===We.DeletedText?e.text??"":e.type===We.Tab||e.type===We.PositionalTab?"\t":e.type===We.Break?"\n":(e.children??[]).map(so).join("").trim()}!function(e){e.html="http://www.w3.org/1999/xhtml",e.svg="http://www.w3.org/2000/svg",e.mathML="http://www.w3.org/1998/Math/MathML"}(zs||(zs={}));const oo=/[\u0000-\u0020\u007f-\u009f]+/g,io=/^[a-z][a-z0-9+.-]*:/i,lo=/^(?:https?|mailto|tel):/i;const co=["http://schemas.openxmlformats.org/drawingml/2006/chart","http://purl.oclc.org/ooxml/drawingml/chart"],ho=["http://schemas.openxmlformats.org/drawingml/2006/main","http://purl.oclc.org/ooxml/drawingml/main"],uo=new WeakMap;async function mo(e,t=i(e)){o(e,t);const r=new Set;for(const t of[e,...Array.from(e.querySelectorAll("[data-docx-layout-root]"))]){const e=uo.get(t);e&&r.add(e)}for(const n of r)o(e,t),await n.prepareLayout(e,t);o(e,t);for(const r of[e,...Array.from(e.querySelectorAll("[data-docx-layout-root]"))]){const e=uo.get(r);e?.shouldRunDynamicPagination()&&r.classList.contains(`${e.className}-wrapper`)&&e.scheduleDynamicPagination(r,t)}}class po{constructor(){this.className="docx",this.styleMap={},this.currentPart=null,this.currentSectionProps=null,this.currentPageNumber=1,this.currentSectionNumber=1,this.currentSectionPageNumber=1,this.totalPages=1,this.sectionPageCount=1,this.tableVerticalMerges=[],this.currentVerticalMerge=null,this.tableCellPositions=[],this.currentCellPosition=null,this.currentTableRow=null,this.repeatedTableHeaderRows=new WeakSet,this.footnoteMap={},this.endnoteMap={},this.currentEndnoteIds=[],this.noteNumbering=new de,this.renderedNoteIds=new Set,this.noteSectionIds=new Map,this.notePageIndex=1,this.dynamicNoteState=new WeakMap,this.noteContinuationOrigins=new WeakMap,this.headerFooterModels=new Map,this.pageHeaderFooterState=new WeakMap,this.currentTabs=[],this.anchorLayouts=new Map,this.currentParagraph=null,this.currentParagraphTabIndex=0,this.currentParagraphTabCount=0,this.commentMap={},this.commentLayer=null,this.commentPresentations=new Map,this.renderingComment=!1,this.hyperlinkDepth=0,this.layoutGenerations=new Map,this.bookmarkTextMap={},this.bookmarkIdToName={},this.tocEntries=[],this.fieldSeqCounters={},this.fieldSetValues={},this.headingIndex=0,this.tasks=[],this.postRenderTasks=[],this.h=Ws,this.darkModeVarNames=new Map,this.darkModePrintReset={}}async render(e,t){this.document=e,this.options=t,this.className=t.className,this.rootSelector=t.inWrapper?`.${this.className}-wrapper`:":root",this.h=t.h??Ws,this.styleMap=null,this.tasks=[],this.postRenderTasks=[],this.commentLayer=null,this.commentPresentations.clear(),this.renderingComment=!1,this.currentTabs=[],this.currentFootnoteIds=[],this.currentEndnoteIds=[],this.footnoteMap={},this.endnoteMap={},this.noteNumbering=new de,this.renderedNoteIds=new Set,this.repeatedTableHeaderRows=new WeakSet,this.noteSectionIds=new Map,this.notePageIndex=1,this.dynamicNoteState=new WeakMap,this.noteContinuationOrigins=new WeakMap,this.anchorLayouts.clear(),this.headerFooterModels.clear(),this.pageHeaderFooterState=new WeakMap,this.fieldSeqCounters={},this.fieldSetValues={},this.headingIndex=0,this.darkModeVarNames=new Map,this.darkModePrintReset={},this.options.renderComments&&globalThis.Highlight&&(this.commentHighlight=new Highlight);const r=[...this.renderDefaultStyle()];if(e.themePart&&r.push(...this.renderTheme(e.themePart)),null!=e.stylesPart){const t=this.cloneRenderData(e.stylesPart.styles);this.styleMap=this.processStyles(t),r.push(...this.renderStyles(t))}e.numberingPart&&(this.prodessNumberings(e.numberingPart.domNumberings),r.push(...await this.renderNumbering(e.numberingPart.domNumberings))),e.footnotesPart&&(this.footnoteMap=y(this.cloneRenderData(e.footnotesPart.notes),e=>e.id)),e.endnotesPart&&(this.endnoteMap=y(this.cloneRenderData(e.endnotesPart.notes),e=>e.id)),e.settingsPart&&(this.defaultTabSize=e.settingsPart.settings?.defaultTabStop),!t.ignoreFonts&&e.fontTablePart&&r.push(...await this.renderFontTable(e.fontTablePart));var n=await this.renderSections(this.cloneRenderData(e.documentPart.body));if(this.options.inWrapper){const e=this.renderWrapper(n);this.commentLayer&&e.appendChild(this.commentLayer.root),r.push(e),this.shouldRunDynamicPagination()&&this.scheduleDynamicPagination(e)}else r.push(...n),this.commentLayer&&(this.commentLayer.root.style.position="fixed",r.push(this.commentLayer.root));r.push(...this.renderDarkModePrintReset()),this.commentHighlight&&t.renderComments&&CSS.highlights.set(`${this.className}-comments`,this.commentHighlight),await Promise.allSettled(this.tasks),this.postRenderTasks.forEach(e=>e()),this.commentLayer&&uo.set(this.commentLayer.root,this);for(const e of r)["section","div"].includes(e.tagName?.toLowerCase())&&!e.dataset?.docxCommentLayer&&(e.dataset.docxLayoutRoot="true",uo.set(e,this));return r}renderTheme(e){const t={},r=e.theme?.fontScheme,n=this.documentThemeLanguages();r&&(r.majorFont&&(t["--docx-majorHAnsi-font"]=this.themeFontFamily(r.majorFont,"latin",n.latin),t["--docx-majorEastAsia-font"]=this.themeFontFamily(r.majorFont,"eastAsia",n.eastAsia),t["--docx-majorBidi-font"]=this.themeFontFamily(r.majorFont,"complexScript",n.bidi),t["--docx-majorCs-font"]=t["--docx-majorBidi-font"],this.addThemeScriptFontVariables(t,"major",r.majorFont)),r.minorFont&&(t["--docx-minorHAnsi-font"]=this.themeFontFamily(r.minorFont,"latin",n.latin),t["--docx-minorEastAsia-font"]=this.themeFontFamily(r.minorFont,"eastAsia",n.eastAsia),t["--docx-minorBidi-font"]=this.themeFontFamily(r.minorFont,"complexScript",n.bidi),t["--docx-minorCs-font"]=t["--docx-minorBidi-font"],this.addThemeScriptFontVariables(t,"minor",r.minorFont)));const a=e.theme?.colorScheme,s=[];if(a)for(let[e,r]of Object.entries(a.colors)){const n=`--docx-${e}-color`;t[n]=`#${r}`,s.push(n)}let o=this.styleToString(`.${this.className}`,t);if(this.options.darkMode&&s.length){const e=s.map(e=>` ${e}: ${t[e]};\r\n`).join("");o+=`@media print {\r\n.${this.className} {\r\n${e}}\r\n}\r\n`}return[this.h({tagName:"#comment",children:["docxjs document theme values"]}),this.h({tagName:"style",children:[o]})]}documentThemeLanguages(){const e={latin:"",eastAsia:"",bidi:""},t=(this.document.stylesPart?.styles??[]).filter(e=>null==e.id||e.isDefault&&"span"==e.target).flatMap(e=>e.styles??[]).find(e=>"span"==e.target),r=t?.values??{};return e.latin=r.$lang??"",e.eastAsia=r["$lang-eastAsia"]??e.latin,e.bidi=r["$lang-bidi"]??e.latin,e}addThemeScriptFontVariables(e,t,r){const n=new Set(["Hans","Hant","Jpan","Hang"]);for(const a of Object.keys(r.scriptTypefaces??{})){const s=n.has(a)?"eastAsia":"complexScript",o=this.themeFontFamily(r,s,"",a);e[`--docx-${t}EastAsia-font-${a}`]=o,e[`--docx-${t}Bidi-font-${a}`]=o,e[`--docx-${t}Cs-font-${a}`]=o}}themeFontFamily(e,t,r,n=""){const a="latin"==t?e.latinTypeface:"eastAsia"==t?e.eaTypeface:e.csTypeface,s=n||Ze(r),o=s?e.scriptTypefaces?.[s]:"",i=a?.trim()||o?.trim()||e.latinTypeface?.trim();if(!i)return"eastAsia"==t?"sans-serif":"serif";const l=[p(i)];return"eastAsia"==t&&l.push(...f(i,s).slice(1)),[...new Set(l)].join(", ")}async renderFontTable(e){const t=[];for(let r of e.fonts)for(let e of r.embedFontRefs)try{const n=await this.document.loadFont(e.id,e.key),a={"font-family":p(r.name),src:`url(${n})`};"bold"!=e.type&&"boldItalic"!=e.type||(a["font-weight"]="bold"),"italic"!=e.type&&"boldItalic"!=e.type||(a["font-style"]="italic"),t.push(this.h({tagName:"#comment",children:[`docxjs ${r.name} font`]})),t.push(this.h({tagName:"style",children:[this.styleToString("@font-face",a)]}))}catch(t){this.options.debug&&console.warn(`Can't load font with id ${e.id} and key ${e.key}`)}return t}processStyleName(e){return e?`${this.className}_${function(e){return e?.replace(/[ .]+/g,"-").replace(/[&]+/g,"and").toLowerCase()}(e)}`:this.className}processStyles(e){const t=y(e.filter(e=>null!=e.id),e=>e.id);for(const n of e.filter(e=>e.basedOn)){var r=t[n.basedOn];if(r){n.paragraphProps=k({},r.paragraphProps,n.paragraphProps),n.runProps=k({},r.runProps,n.runProps);for(const e of r.styles){const t=n.styles.find(t=>t.target==e.target);t?this.copyStyleProperties(e.values,t.values):n.styles.push({...e,values:{...e.values}})}}else this.options.debug&&console.warn(`Can't find base style ${n.basedOn}`)}for(let t of e)t.cssName=this.processStyleName(t.id);return t}prodessNumberings(e){for(let t of e.filter(e=>e.pStyleName)){const e=this.findStyle(t.pStyleName);e?.paragraphProps?.numbering&&(e.paragraphProps.numbering.level=t.level)}}processElement(e){if(e&&e.children)for(var t of e.children)t.parent=e,t.type==We.Table?this.processTable(t):this.processElement(t)}processTable(e){const t=e.children??[];let r=e.columns?.length??0;for(const e of t){let t=e.gridBefore??0;for(const r of e.children??[])t+=r.span??1;r=Math.max(r,t+(e.gridAfter??0))}const n=Math.max(e.rowBandSize??1,1),a=Math.max(e.colBandSize??1,1);t.forEach((s,o)=>{0==o&&this.appendClassName(s,"first-row"),o==t.length-1&&this.appendClassName(s,"last-row"),this.appendClassName(s,Math.floor(o/n)%2==0?"odd-row":"even-row");let i=s.gridBefore??0;for(const t of s.children??[]){t.cssStyle=this.copyStyleProperties(e.cellStyle,t.cssStyle,["border-left","border-right","border-top","border-bottom","padding-left","padding-right","padding-top","padding-bottom"]);const n=t.span??1,s=i+n-1;0==i&&this.appendClassName(t,"first-col"),r>0&&s>=r-1&&this.appendClassName(t,"last-col"),this.appendClassName(t,Math.floor(i/a)%2==0?"odd-col":"even-col"),this.processElement(t),i+=n}})}collectDocumentMetadata(e){this.bookmarkTextMap={},this.bookmarkIdToName={},this.tocEntries=[];const t={},r=e=>{if(e.type!=We.Deleted||qs(Us(this.options))){switch(e.type){case We.BookmarkStart:{const r=e;r.id&&r.name&&(this.bookmarkIdToName[r.id]=r.name,t[r.id]=[]);break}case We.BookmarkEnd:{const r=e,n=this.bookmarkIdToName[r.id];n&&t[r.id]&&(this.bookmarkTextMap[n]=t[r.id].join("").trim(),delete t[r.id]);break}case We.Text:for(const r of Object.keys(t))t[r].push(e.text??"");break;case We.DeletedText:if(qs(Us(this.options)))for(const r of Object.keys(t))t[r].push(e.text??"")}for(const t of e.children??[])r(t)}};for(const t of e.children??[])r(t);for(const[e,r]of Object.entries(t)){const t=this.bookmarkIdToName[e];t&&(this.bookmarkTextMap[t]=r.join("").trim())}for(const t of e.children??[])this.collectTocEntries(t)}collectTocEntries(e){if(e.type!=We.Deleted||qs(Us(this.options))){if(e.type==We.Paragraph){const t=e,r=this.findStyle(t.styleName),n=this.extractText(t).trim();let a=t.outlineLevel??r?.paragraphProps?.outlineLevel;if(null==a&&t.styleName){const e=/heading(\d+)|(?:^|[-_ ])h(\d+)$/i.exec(t.styleName);e&&(a=parseInt(e[1]??e[2],10)-1)}if(n&&null!=a&&a>=0&&a<9){const e=this.findFirstBookmark(t),r=e?.name&&!e.name.startsWith("_")?e.name:`${this.className}-heading-${++this.headingIndex}`;t.props={...t.props??{},anchorId:r},this.tocEntries.push({level:a+1,text:n,id:r})}}for(const t of e.children??[])this.collectTocEntries(t)}}findFirstBookmark(e){if(e.type==We.BookmarkStart)return e;for(const t of e.children??[]){const e=this.findFirstBookmark(t);if(e)return e}return null}extractText(e){switch(e.type){case We.Text:return e.text??"";case We.DeletedText:return qs(Us(this.options))?e.text??"":"";case We.Deleted:return qs(Us(this.options))?(e.children??[]).map(e=>this.extractText(e)).join(""):"";case We.Inserted:return"original"==Us(this.options)?"":(e.children??[]).map(e=>this.extractText(e)).join("");case We.Tab:case We.PositionalTab:return"\t";case We.NoBreakHyphen:return"‑";case We.SoftHyphen:return"";case We.Break:return"\n";case We.Instruction:case We.ComplexField:return""}return(e.children??[]).map(e=>this.extractText(e)).join("")}appendClassName(e,t){e.className=[...new Set(Vs(e.className,t).split(/\s+/).filter(Boolean))].join(" ")}copyStyleProperties(e,t,r=null){if(!e)return t;for(var n of(null==t&&(t={}),null==r&&(r=Object.getOwnPropertyNames(e)),r))e.hasOwnProperty(n)&&!t.hasOwnProperty(n)&&(t[n]=e[n]);return t}createPageElement(e,t,r){const n={...r};let a=null,s=null;if(t){if(t.pageMargins&&(n.paddingLeft=this.addSize(t.pageMargins.left,t.pageMargins.gutter),n.paddingRight=t.pageMargins.right,n.paddingTop=t.pageMargins.top,n.paddingBottom=t.pageMargins.bottom),t.pageSize){let e=t.pageSize.width,r=t.pageSize.height;if("landscape"==t.pageSize.orientation){const t=this.parseCssLengthValue(e),n=this.parseCssLengthValue(r);null!=t&&null!=n&&t<n&&([e,r]=[r,e])}a=e,s=r,this.options.ignoreWidth||(n.width=e);(!this.options.ignoreHeight||!this.options.breakPages)&&(n.minHeight=r,!this.options.ignoreHeight&&this.options.breakPages&&this.options.fixedPageHeight&&(n.height=r))}t.pageBorders&&(this.applyPageBorder(n,"top",t.pageBorders.top),this.applyPageBorder(n,"right",t.pageBorders.right),this.applyPageBorder(n,"bottom",t.pageBorders.bottom),this.applyPageBorder(n,"left",t.pageBorders.left))}const o=this.h({tagName:"section",className:e,style:n});return n.paddingLeft&&this.setCssStyle(o,"--docx-page-padding-left",n.paddingLeft),n.paddingTop&&this.setCssStyle(o,"--docx-page-padding-top",n.paddingTop),a&&this.setCssStyle(o,"--docx-page-width",a),s&&this.setCssStyle(o,"--docx-page-height",s),o}addSize(e,t){return e?t&&"0.00pt"!=t&&"0px"!=t?`calc(${e} + ${t})`:e:t}parseCssLengthValue(e){if(!e)return null;const t=/^(-?\d+(?:\.\d+)?)/.exec(e);return t?parseFloat(t[1]):null}applyPageBorder(e,t,r){if(!r)return;const n=this.borderTypeToCss(r.type);e[`border-${t}`]="none"==n?"none":`${r.size??"1px"} ${n} ${this.borderColor(r.color)}`}borderTypeToCss(e){switch(e){case"nil":case"none":return"none";case"double":case"triple":return"double";case"dashed":case"dashSmallGap":return"dashed";case"dotted":case"dotDash":case"dotDotDash":return"dotted"}return"solid"}borderColor(e){return e&&"auto"!=e?/^[0-9a-f]{6}$/i.test(e)?`#${e}`:e:"var(--docx-auto-color, black)"}createSectionContent(e){const t={},r=e.columns?.numberOfColumns??e.columns?.columns?.length,n="linesAndChars"==e.docGrid?.type||"snapToChars"==e.docGrid?.type;return e.docGrid&&(e.docGrid.linePitch&&(t["--docx-doc-grid-line-pitch"]=e.docGrid.linePitch),n&&e.docGrid.charSpace&&(t.letterSpacing=e.docGrid.charSpace)),this.document.settingsPart?.settings?.kinsoku&&(t.lineBreak="strict",t.wordBreak="keep-all"),this.document.settingsPart?.settings?.overflowPunctuation&&(t.hangingPunctuation="allow-end"),this.document.settingsPart?.settings?.topLinePunctuation&&(t["text-spacing-trim"]="space-start"),(this.document.settingsPart?.settings?.autoSpaceDE||this.document.settingsPart?.settings?.autoSpaceDN)&&(t["text-autospace"]=[this.document.settingsPart?.settings?.autoSpaceDE?"ideograph-alpha":null,this.document.settingsPart?.settings?.autoSpaceDN?"ideograph-numeric":null].filter(Boolean).join(" ")),e.columns&&r&&(r>1||e.columns.columns?.length>0)&&(t.columnCount=`${r}`,t.columnGap=e.columns.space,!e.columns.equalWidth&&e.columns.columns?.length>0&&(t.columnWidth=e.columns.columns[0].width,t.columnGap=e.columns.columns[0].space??t.columnGap),e.columns.separator&&(t.columnRule="1px solid black")),this.h({tagName:"article",style:t})}async renderSections(e){const t=[];this.processElement(e),this.collectDocumentMetadata(e);const r=this.splitBySection(this.reviewParagraphs(e.children),e.props);this.resolveSectionHeaderFooterReferences(r);const n=this.groupByPageBreaks(r);if(e.backgroundImage){const t=await this.document.loadDocumentImage(e.backgroundImage.id,this.document.documentPart,this.options.externalResourcePolicy).catch(()=>null);t&&(e={...e,cssStyle:{...e.cssStyle,"background-image":`url(${JSON.stringify(t)})`,"background-repeat":"tile"==e.backgroundImage.type?"repeat":"no-repeat","background-position":"center","background-size":"tile"==e.backgroundImage.type?"auto":"100% 100%"}})}let a=null,s=0,o=0;const i=new Map,l=new Map,c=new Map,h=new Map,d=e=>{if(!c.has(e)){const t=++o;c.set(e,`${this.className}-section-${t}`),h.set(e,t)}};for(const e of n){const t=e[0].sectProps;d(t),i.set(t,(i.get(t)??0)+1)}this.totalPages=n.length;for(let r=0,o=n.length;r<o;r++){this.currentFootnoteIds=[],this.notePageIndex=r+1;let m=n[r][0].sectProps;const p=m;d(m);const f=a!=m;s=f&&null!=m?.pageNumber?.start?m.pageNumber.start:s+1,this.currentPageNumber=s,this.currentSectionNumber=h.get(m)??1,this.currentSectionProps=m,this.currentSectionPageNumber=(l.get(m)??0)+1,this.sectionPageCount=i.get(m)??1,l.set(m,this.currentSectionPageNumber);const g=this.createPageElement(this.className,m,e.cssStyle);g.dataset.docxSection=c.get(m),g.dataset.docxSectionNumber=`${this.currentSectionNumber}`,g.dataset.docxSectionPageNumber=`${this.currentSectionPageNumber}`,g.dataset.docxSectionPageCount=`${this.sectionPageCount}`,g.dataset.docxPageNumber=`${s}`,f&&null!=m?.pageNumber?.start&&(g.dataset.docxPageStart=`${m.pageNumber.start}`),this.options.renderHeaders&&this.renderHeaderFooter(m.headerRefs,m,s,f,g);for(const e of n[r]){this.currentSectionProps=e.sectProps;var u=this.createSectionContent(e.sectProps);e.columnBreak&&(u.style.breakBefore="column"),this.renderElements(e.elements,u),g.appendChild(u),m=e.sectProps}if(this.options.renderFootnotes){const e=this.renderNotes(this.currentFootnoteIds,this.footnoteMap,this.document.footnotesPart,"footnote");e&&g.appendChild(e)}if(this.options.renderEndnotes&&r==o-1){const e=this.renderNotes(this.currentEndnoteIds,this.endnoteMap,this.document.endnotesPart,"endnote");e&&g.appendChild(e)}this.currentSectionProps=m,this.options.renderFooters&&this.renderHeaderFooter(m.footerRefs,m,s,f,g),this.pageHeaderFooterState.set(g,{headerProps:p,footerProps:m,headerId:this.selectHeaderFooterReference(p.headerRefs,p,s,f)?.id,footerId:this.selectHeaderFooterReference(m.footerRefs,m,s,f)?.id}),t.push(g),await this.yieldDuringRender(r+1,o),a=m}return t}resolveSectionHeaderFooterReferences(e){const t=new Map;let r=null;const n=(e,t)=>{const r=new Map((t??[]).map(e=>[e.type,e]));for(const t of e??[])r.set(t.type,t);return Array.from(r.values())};for(const a of e){const e=a.sectProps;let s=t.get(e);s||(s={...e,headerRefs:n(e.headerRefs,r?.headerRefs),footerRefs:n(e.footerRefs,r?.footerRefs)},t.set(e,s),r=s),a.sectProps=s}}selectHeaderFooterReference(e,t,r,n){const a=!!this.document.settingsPart?.settings?.evenAndOddHeaders,s=t.titlePage&&n?"first":a&&r%2==0?"even":"default";return e?.find(e=>e.type==s)}renderHeaderFooter(e,t,r,n,a){const s=this.selectHeaderFooterReference(e,t,r,n);var o=s&&this.document.findPartByRelId(s.id,this.document.documentPart);if(o?.rootElement){this.currentPart=o;let e=this.headerFooterModels.get(o.path);e||(e=this.cloneRenderData(o.rootElement),this.processElement(e),this.headerFooterModels.set(o.path,e));const[r]=this.renderElements([e],a);t?.pageMargins&&(o.rootElement.type===We.Header?(r.style.marginTop=`calc(${t.pageMargins.header} - ${t.pageMargins.top})`,r.style.minHeight=`calc(${t.pageMargins.top} - ${t.pageMargins.header})`):o.rootElement.type===We.Footer&&(r.style.marginBottom=`calc(${t.pageMargins.footer} - ${t.pageMargins.bottom})`,r.style.minHeight=`calc(${t.pageMargins.bottom} - ${t.pageMargins.footer})`)),this.currentPart=null}else o&&this.options.debug&&console.warn(`docx-preview: skipping ${o.path} because its parsed root element is missing`)}isPageBreakElement(e){return e.type==We.Break&&("lastRenderedPageBreak"==e.break?!this.options.ignoreLastRenderedPageBreak:"page"==e.break)}isPageBreakSection(e,t){return!!e&&(!!t&&(e.pageSize?.orientation!=t.pageSize?.orientation||e.pageSize?.width!=t.pageSize?.width||e.pageSize?.height!=t.pageSize?.height))}splitBySection(e,t){this.options.breakPages&&!this.options.ignoreLastRenderedPageBreak&&(e=function(e,t){let r=!1,n=null;const a=new Set,s=()=>{r=!1,n=null};for(const o of e){if(o.type!==We.Paragraph){s();continue}const e=o;let i=!1;const l=e=>{if(!t(e))switch(e.type){case We.Break:const t=e.break;"page"===t?(r=!0,n=null,i=!0):"lastRenderedPageBreak"===t?(i=!0,r?(a.add(e),n=e):n&&(a.delete(n),n=null),r=!1):s();break;case We.BookmarkStart:case We.BookmarkEnd:break;case We.Run:case We.Hyperlink:(e.children??[]).forEach(l);break;case We.Text:case We.DeletedText:e.text&&s();break;default:s()}};(e.children??[]).forEach(l),i&&!e.sectionProps||s()}if(!a.size)return e;const o=e=>{if(a.has(e))return null;if(!e.children?.length)return e;let t=!1;const r=[];for(const n of e.children){const e=o(n);t||(t=e!==n),e&&r.push(e)}return!t||0!==r.length||e.type!==We.Run&&e.type!==We.Hyperlink?t?{...e,children:r}:e:null};return e.map(o)}(e,e=>this.isHiddenRevisionForPagination(e)));let r={sectProps:null,elements:[],pageBreak:!1,columnBreak:!1,startsAfterExplicitPageBreak:!1},n=[r];const a=(e=!1,t=!1,a=!1)=>{if(0==r.elements.length&&null==r.sectProps)return r.pageBreak||(r.pageBreak=e),void(r.columnBreak||(r.columnBreak=t));r.pageBreak||(r.pageBreak=e),r.columnBreak||(r.columnBreak=t),r={sectProps:null,elements:[],pageBreak:!1,columnBreak:!1,startsAfterExplicitPageBreak:a},n.push(r)};for(let t of e){if(t.type!=We.Paragraph){if(t.type==We.Table)for(const e of this.splitTableByPageBreaks(t))e.table.children?.length&&r.elements.push(e.table),e.breakAfter&&a(!0,!1,!0);else r.elements.push(t);continue}const e=t,n=this.findStyle(e.styleName),s=e.pageBreakBefore??n?.paragraphProps?.pageBreakBefore;this.options.breakPages&&s&&r.elements.length>0&&a(!0,!1,!0);const o=this.splitParagraphByPageBreaks(e);for(const e of o){r.elements.push(e.paragraph);const t=e.paragraph.sectionProps;t&&(r.sectProps=t),(e.breakAfter||t)&&(r.endsWithExplicitPageBreak||(r.endsWithExplicitPageBreak=!0===e.explicitPageBreak),a(e.breakAfter||t&&me(t.type),t&&pe(t.type),!0===e.explicitPageBreak))}}if(n=n.filter(e=>e.elements.length>0),0==n.length)return[{sectProps:t,elements:[],pageBreak:!1,columnBreak:!1}];let s=null;for(let e=n.length-1;e>=0;e--)null==n[e].sectProps?n[e].sectProps=s??t:s=n[e].sectProps;return n}hasPageBreakElement(e){return!this.isHiddenRevisionForPagination(e)&&(!!this.isPageBreakElement(e)||(e.children?.some(e=>this.hasPageBreakElement(e))??!1))}splitTableByPageBreaks(e){if(!this.options.breakPages||!e.children?.length)return[{table:e,breakAfter:!1}];if(!e.children.some(e=>this.hasPageBreakElement(e)))return[{table:e,breakAfter:!1}];const t=e.children,r=[];for(const e of t){if(!e.isHeader)break;r.push(e)}const n=[];let a=[];const s=t=>{if(0==a.length&&n.length>0)return;const s=n.length>0;let o=a;if(s&&r.length>0&&!a.some(e=>e.isHeader)){o=[...r.map(e=>{const t={...e};return this.repeatedTableHeaderRows.add(t),t}),...a]}n.push({table:{...e,children:o},breakAfter:t}),a=[]};for(const e of t)a.push(e),this.hasPageBreakElement(e)&&s(!0);return s(!1),n.length>0?n:[{table:e,breakAfter:!1}]}isHiddenRevisionForPagination(e){const t=Us(this.options),r="all"===t&&"inline"===this.options.reviewPresentation;return e.type===We.Deleted&&!qs(t)&&!r||e.type===We.Inserted&&!function(e){return"original"!==e}(t)}hasOnlyHiddenRevisionTail(e){let t=!1;const r=e=>this.isHiddenRevisionForPagination(e)?(t=!0,!0):e.type===We.BookmarkStart||e.type===We.BookmarkEnd||!!([We.Run,We.Hyperlink,We.Inserted,We.Deleted].includes(e.type)&&e.children?.length>0)&&e.children.every(r);return e.every(r)&&t}splitElementByPageBreaks(e){if(this.isHiddenRevisionForPagination(e))return[{element:e}];if(this.isPageBreakElement(e))return[{breakAfter:!0,explicitPageBreak:"page"===e.break}];if(!e.children?.length)return[{element:e}];const t=[];let r={...e,children:[]};const n=()=>{r.children.length>0&&t.push({element:r}),r={...e,children:[]}};for(const a of e.children)for(const e of this.splitElementByPageBreaks(a))e.element&&r.children.push(e.element),e.breakAfter&&(n(),t.push({breakAfter:!0,explicitPageBreak:e.explicitPageBreak}));return n(),t.length>0?t:[{element:e}]}splitParagraphByPageBreaks(e){if(!this.options.breakPages||!e.children?.length)return[{paragraph:e,breakAfter:!1}];const t=[];let r={...e,children:[]};const n=(n,a=!1)=>{(r.children.length>0||0==t.length||a)&&t.push({paragraph:r,breakAfter:n,explicitPageBreak:a}),r={...e,sectionProps:null,children:[]}};for(const t of e.children)for(const e of this.splitElementByPageBreaks(t))e.element&&r.children.push(e.element),e.breakAfter&&n(!0,!0===e.explicitPageBreak);t.length>0&&this.hasOnlyHiddenRevisionTail(r.children)?t[t.length-1].paragraph.children.push(...r.children):(r.children.length>0||0==t.length)&&t.push({paragraph:r,breakAfter:!1});const a=t[t.length-1]?.paragraph;for(const r of t)r.paragraph.sectionProps=r.paragraph===a?e.sectionProps:null;if(e.props?.anchorId&&t.length>1){const e=t.find(e=>this.extractText(e.paragraph).trim())??t[0];for(const r of t)r!==e&&(r.paragraph.props={...r.paragraph.props,anchorId:void 0})}return t}styleValuesForTarget(e,t){return e?.styles?.find(e=>e.target==t)?.values}styleValue(e,t,r){return this.styleValuesForTarget(e,t)?.[r]}effectiveParagraphCssValue(e,t,r){return e.cssStyle?.[r]??this.styleValue(t,"p",r)}isInsideTableCell(e){for(let t=e.parent;t;t=t.parent)if(t.type==We.Cell)return!0;return!1}paragraphUsesDocumentGrid(e,t){const r=this.currentSectionProps?.docGrid?.linePitch;if(!r)return!1;if(this.isInsideTableCell(e)&&!this.document.settingsPart?.settings?.adjustLineHeightInTable)return!1;const n=this.effectiveParagraphCssValue(e,t,"--docx-snap-to-grid");return null==n||!/^(0|false|off)$/i.test(n)}setCssStyle(e,t,r){const n=e.style;"function"==typeof n.setProperty?n.setProperty(t,r):n[t]=r}applyDocumentGridMinimumHeight(e,t,r,n){const a=this.effectiveParagraphCssValue(e,t,"min-height");this.setCssStyle(r,"min-height",a?`max(${a}, ${n})`:n)}applyDocumentGridLinePitch(e,t,r){if(!this.paragraphUsesDocumentGrid(e,t))return;const n=this.currentSectionProps.docGrid.linePitch,a=this.effectiveParagraphCssValue(e,t,"line-height"),s=e.lineSpacing??t?.paragraphProps?.lineSpacing;if(a){if("exact"==s?.lineRule||"exactly"==s?.lineRule)return;const o=/^-?\d+(?:\.\d+)?$/.test(a)?`calc(${a} * 1em)`:a;return this.preserveGridInlineMetrics(r),this.setCssStyle(r,"line-height",`max(${o}, ${n})`),void this.applyDocumentGridMinimumHeight(e,t,r,n)}this.applyDocumentGridMinimumHeight(e,t,r,n)}preserveGridInlineMetrics(e){const t=/^(span|a|sub|sup|b|i|u|s|strike|strong|em)$/,r=e=>{for(const n of Array.from(e.children??[])){if(n.namespaceURI!==zs.html||!t.test(n.localName)||!n.style)continue;const e=n.style;n.dataset?.docxTextScale&&"block"===e.display?r(n):e.lineHeight||e.display&&"inline"!==e.display||/^(absolute|fixed)$/.test(e.position)||e.cssFloat&&"none"!==e.cssFloat||(e.lineHeight="normal",r(n))}};r(e)}groupByPageBreaks(e){let t=[],r=null;const n=[t];for(let a of e)r&&(r.pageBreak||this.isPageBreakSection(r.sectProps,a.sectProps))&&(t=[],n.push(t)),t.push(a),r=a;const a=n.filter(e=>e.length>0).filter(e=>e[0]?.startsAfterExplicitPageBreak||e.some(e=>e.endsWithExplicitPageBreak||e.elements.some(e=>this.hasPageModelContent(e))));return a.length>0?a:n.filter(e=>e.length>0).slice(0,1)}hasPageModelContent(e){if(!e||this.isHiddenRevisionForPagination(e))return!1;switch(e.type){case We.Text:case We.DeletedText:return Boolean(e.text?.trim());case We.Break:case We.Symbol:case We.Drawing:case We.Image:case We.Table:case We.VmlPicture:case We.VmlElement:case We.MmlMath:case We.MmlMathParagraph:case We.Shape:case We.Chart:case We.SmartArt:case We.Ink:case We.AltChunk:case We.FootnoteReference:case We.EndnoteReference:return!0}return e.children?.some(e=>this.hasPageModelContent(e))??!1}async yieldDuringRender(e,t){const r=this.options.renderPageBatchSize??0;this.options.progress&&this.options.progress({phase:"render",current:e,total:t,message:`Rendered ${e}/${t} logical pages`}),r>0&&e%r==0&&await this.yieldToBrowser()}async yieldToBrowser(){(this.options.renderYieldEveryMs??0)<=0||await new Promise(e=>{const t=globalThis;"function"==typeof t.requestIdleCallback?t.requestIdleCallback(()=>e(),{timeout:Math.max(1,this.options.renderYieldEveryMs??16)}):"function"==typeof t.requestAnimationFrame?t.requestAnimationFrame(()=>e()):setTimeout(e,0)})}renderWrapper(e){const t=this.h({tagName:"div",className:this.className+"-wrapper",children:e});return js(this.options)&&(t.dataset.docxReviewEnabled="true",t.dataset.docxReviewMode=Us(this.options),t.dataset.docxReviewPresentation=this.options.reviewPresentation??"balloon"),t}shouldRunDynamicPagination(){return!(!this.options.breakPages||!this.options.fixedPageHeight||this.options.ignoreHeight||"undefined"==typeof document||"function"!=typeof requestAnimationFrame)}scheduleDynamicPagination(e,t=i(e)){e?.isConnected&&t.isCurrent()&&"true"!=e.dataset.docxPaginated&&"true"!=e.dataset.docxPaginating&&"true"!=e.dataset.docxPaginationScheduled&&(e.dataset.docxPaginationScheduled="true",delete e.dataset.docxLayoutError,l(e,this.tasks,t).then(async()=>{await this.yieldToBrowser(),e.isConnected&&t.isCurrent()&&await this.performDynamicPagination(e,t)}).catch(r=>{delete e.dataset.docxPaginating,e.isConnected&&t.isCurrent()&&(e.dataset.docxLayoutError=r?.message??"DOCX layout failed")}).finally(()=>{delete e.dataset.docxPaginationScheduled,e.isConnected||delete e.dataset.docxPaginating}))}async performDynamicPagination(e,t=s(e)){if(!e||"true"==e.dataset.docxPaginated||"true"==e.dataset.docxPaginating)return;if(!e.isConnected||!t.isCurrent())return;if(delete e.dataset.docxPaginationScheduled,e.dataset.docxPaginating="true",this.syncDynamicNotes(e),await this.prepareLayout(e,t),!e.isConnected||!t.isCurrent())return void delete e.dataset.docxPaginating;const r=Array.from(e.querySelectorAll(":scope > section."+this.className)),n=this.options.maxDynamicPaginationPasses??1e3;let a=0;for(let s=0;s<r.length;s++){const o=r[s];if(s%2==0&&await this.yieldToBrowser(),!e.isConnected||!t.isCurrent())return void delete e.dataset.docxPaginating;for(;this.isPageOverflowing(o)&&a++<n;){const n=Array.from(o.querySelectorAll(":scope > article"));if(!n.some(e=>e.children.length>0)&&!o.querySelector(":scope > [data-docx-note-list] > li"))break;const a=this.createContinuationPage(o);if(await this.refreshDynamicHeaderFooters([...r.slice(0,s+1),a,...r.slice(s+1)]),!e.isConnected||!t.isCurrent())return void delete e.dataset.docxPaginating;const i=Array.from(a.querySelectorAll(":scope > article"));let l=this.splitDynamicNotes(o,a);for(let r=n.length-1;r>=0&&this.isPageOverflowing(o);r--){const a=n[r],s=i[r];let c=0;if(s){for(;this.isPageOverflowing(o)&&a.lastElementChild&&c++<500;){if(c%20==0&&await this.yieldToBrowser(),!e.isConnected||!t.isCurrent())return void delete e.dataset.docxPaginating;if(a.children.length>1){if(this.moveOverflowingTail(a,o,s)){l=!0;continue}let e=this.pickPaginationChunk(a);if(0==e.length)break;if(e.length>=a.children.length){if(this.splitOverflowBlock(a.lastElementChild,o,s)){l=!0;continue}e=[a.lastElementChild]}for(let t=e.length-1;t>=0;t--)s.prepend(e[t]),l=!0}else{if(!this.splitOverflowBlock(a.lastElementChild,o,s))break;l=!0}}if(r>0&&this.isPageOverflowing(o))for(;a.lastElementChild;)s.prepend(a.lastElementChild),l=!0}}if(l||(l=Array.from(a.children).some(e=>e.dataset.docxNoteList&&e.children.length>0)),!l){if(a.remove(),this.syncDynamicNotes(e),await this.refreshDynamicHeaderFooters(r),!e.isConnected||!t.isCurrent())return void delete e.dataset.docxPaginating;break}this.refreshTabStops(e),this.refreshAnchors(e),r.splice(s+1,0,a)}}if(a>=n&&r.some(e=>this.isPageOverflowing(e)))throw new Error("DOCX pagination exceeded the configured pass budget");this.cleanupEmptyNumberedParagraphs(e),this.removeEmptyDynamicPages(e),t.acceptLayoutChanges?.(e),this.syncDynamicNotes(e),await this.refreshDynamicHeaderFooters(Array.from(e.querySelectorAll(":scope > section."+this.className))),e.isConnected&&t.isCurrent()?(this.updateDynamicFieldPages(e),this.refreshTabStops(e),this.refreshAnchors(e),this.assertDynamicNotesFit(e),delete e.dataset.docxPaginating,e.dataset.docxPaginated="true"):delete e.dataset.docxPaginating}moveOverflowingTail(e,t,r){const n=e.ownerDocument?.defaultView;if(!n||e.children.length<3)return!1;const a=n.getComputedStyle(e);if("block"!==a.display||!["auto","1"].includes(a.columnCount)||"auto"!==a.columnWidth||"horizontal-tb"!==a.writingMode)return!1;const s=Array.from(e.children),o=this.getPageBodyBottom(t)+(this.options.paginationTolerance??2);let i=s.length;for(;i>1;){let e=i-1;for(;e>0&&this.isKeepWithNext(s[e-1]);)e--;if(0===e)break;let t=!0;for(let r=e;r<i;r++){const e=s[r],a=n.getComputedStyle(e),i=e.getBoundingClientRect();if(!/^(P|TABLE)$/.test(e.tagName)||!["block","table","list-item"].includes(a.display)||"static"!==a.position||"none"!==a.cssFloat||"none"!==a.transform||"none"!==a.clear||"horizontal-tb"!==a.writingMode||!(parseFloat(a.marginTop)>=0&&parseFloat(a.marginBottom)>=0)||!(i.top>o&&i.bottom>i.top)||e.querySelector("[data-docx-float]")){t=!1;break}}if(!t)break;i=e}if(s.length-i<2)return!1;const l=e.ownerDocument.createDocumentFragment();for(let e=i;e<s.length;e++)l.appendChild(s[e]);return r.prepend(l),!0}pickPaginationChunk(e){const t=Array.from(e.children);if(0==t.length)return[];let r=t.length-1;for(;r>0&&this.isKeepWithNext(t[r-1]);)r--;return t.slice(r)}isKeepWithNext(e){if("true"==e.dataset.docxKeepNext)return!0;const t=getComputedStyle(e);return"avoid"==t.breakAfter||"avoid"==t.pageBreakAfter}isPageOverflowing(e){e.parentElement&&this.syncDynamicNotes(e.parentElement),this.refreshTabStops(e);const t=this.options.paginationTolerance??2;if(e.clientHeight<=0)return!1;const r=e.getBoundingClientRect(),n=this.getPageBodyBottom(e);let a=r.top;for(const r of Array.from(e.children)){const e=r.getBoundingClientRect();if(a=Math.max(a,e.bottom),"article"==r.tagName.toLowerCase())for(const e of Array.from(r.children)){const r=e.getBoundingClientRect();if(a=Math.max(a,r.bottom),r.bottom>n+t)return!0}}const s=this.getPageNoteBottom(e);return Array.from(e.querySelectorAll(":scope > [data-docx-note-list]")).some(e=>Array.from(e.querySelectorAll("*")).some(e=>e.getBoundingClientRect().bottom>s+t))||a>r.bottom+t}createContinuationPage(e,t=!0){const r=e.cloneNode(!1);r.dataset.docxDynamicPage="true",r.removeAttribute("id"),delete r.dataset.docxPageStart;const n=this.pageHeaderFooterState.get(e);n&&this.pageHeaderFooterState.set(r,{...n});for(const t of Array.from(e.childNodes)){if(1===t.nodeType&&t.dataset.docxNoteList)continue;const e=1===t.nodeType&&"article"===t.localName;r.appendChild(t.cloneNode(!e))}return t&&e.after(r),r}syncDynamicNotes(e){let t=this.dynamicNoteState.get(e);if(!t){t={references:Array.from(e.querySelectorAll("article [data-docx-note-reference]")),items:[],fragments:new Map,owners:new Map,text:new Map,fields:new Map};const r=new Map;for(const n of Array.from(e.querySelectorAll("[data-docx-note-list] > li[data-docx-note-id]"))){const e=`${n.dataset.docxNoteKind}:${n.dataset.docxNoteId}`;let a=r.get(e);a||(r.set(e,a=n),t.items.push(a),t.fragments.set(a,[]),t.fields.set(a,[]));const s=t.fragments.get(a);n.dataset.docxNoteFragment=`${s.length}`,s.push(n),t.fields.get(a).push(...Array.from(n.querySelectorAll("[data-docx-field-instr]"))),t.text.set(a,(t.text.get(a)??"")+this.noteTextSignature(n,t.fields.get(a)))}this.dynamicNoteState.set(e,t)}if(0===t.items.length)return;const r=Array.from(e.querySelectorAll(`:scope > section.${this.className}`));if(0===r.length)return;const n=new Set(r),a=e=>{for(;e&&!n.has(e);)e=e.parentElement;return e},s=new Map;for(const e of t.references){if("true"===e.dataset.docxNoteHidden)continue;const t=`${e.dataset.docxNoteReference}:${e.dataset.docxNoteId}`;if(s.has(t))continue;const r=a(e);r&&s.set(t,r)}const o=r.slice().reverse().find(e=>e.querySelector(':scope > [data-docx-note-list="footnote"] > li')||Array.from(e.querySelectorAll(":scope > article > *")).some(e=>this.hasVisiblePaginationContent(e)))??r[0],i=new Map;for(const e of t.items){const l=e.dataset.docxNoteKind,c=t.owners.get(e),h="endnote"===l?n.has(c)&&r.indexOf(c)>=r.indexOf(o)?c:o:s.get(`${l}:${e.dataset.docxNoteId}`);if(!h){e.dataset.docxNoteOwnershipError="missing-reference";continue}delete e.dataset.docxNoteOwnershipError;const d=t.fragments.get(e);if(c&&c!==h||d.some(e=>!a(e))){for(const t of d.slice(1))this.mergeNoteContents(e,t),t.remove();d.splice(1)}t.owners.set(e,h);for(let e=0;e<d.length;e++){const t=d[e];t.dataset.docxNoteFragment=`${e}`;const r=0===e?h:a(t);let n=i.get(r);n||i.set(r,n=new Map);let s=n.get(l);s||n.set(l,s=[]),s.push(t)}}for(const[e,t]of i)for(const r of["footnote","endnote"]){const n=t.get(r);if(!n)continue;const a=this.getOrCreateNoteList(e,r);for(let e=0;e<n.length;e++)a.children[e]!==n[e]&&a.insertBefore(n[e],a.children[e]??null)}for(const e of r)for(const t of Array.from(e.children))t.dataset.docxNoteList&&0===t.children.length&&t.remove()}getOrCreateNoteList(e,t){let r=Array.from(e.children).find(e=>e.dataset.docxNoteList===t);if(!r){r=this.h({tagName:"ol"}),r.dataset.docxNoteList=t;const n=Array.from(e.children).find(e=>"footer"===e.localName||"footnote"===t&&"endnote"===e.dataset.docxNoteList);e.insertBefore(r,n??null)}return r}mergeNoteContents(e,t){const r=e=>{for(;this.noteContinuationOrigins.has(e);)e=this.noteContinuationOrigins.get(e);return e};for(const n of Array.from(t.childNodes)){const t=e.lastChild;1===n.nodeType&&1===t?.nodeType&&r(n)===r(t)?(this.mergeNoteContents(t,n),n.id&&!t.id&&(t.id=n.id),n.remove()):1===n.nodeType&&"true"===n.dataset.docxNoteColumns?n.remove():e.appendChild(n)}}getPageNoteBottom(e){const t=e.getBoundingClientRect(),r=e.ownerDocument?.defaultView;if(!r)return t.bottom;const n=r.getComputedStyle(e),a=e=>Number.parseFloat(e)||0,s=t.bottom-a(n.borderBottomWidth)-a(n.paddingBottom),o=Array.from(e.children).find(e=>"footer"===e.localName);if(!o)return s;const i=r.getComputedStyle(o),l=o.getBoundingClientRect(),c=l.height+a(i.marginTop)+a(i.marginBottom);return Math.min(s,s-c,l.top-a(i.marginTop))}getPageBodyBottom(e){const t=Array.from(e.children).filter(e=>e.dataset.docxNoteList),r=e.ownerDocument?.defaultView;if(!t.length||!r)return e.getBoundingClientRect().bottom;let n=this.getPageNoteBottom(e);for(const e of t){const t=e.getBoundingClientRect(),a=r.getComputedStyle(e);let s=t.bottom;for(const t of Array.from(e.querySelectorAll("*")))s=Math.max(s,t.getBoundingClientRect().bottom);n-=Math.max(t.height,s-t.top)+(Number.parseFloat(a.marginTop)||0)+(Number.parseFloat(a.marginBottom)||0)}return n}getMinimumNoteBodyBottom(e){const t=e.ownerDocument?.defaultView,r=t?.getComputedStyle(e);let n=e.getBoundingClientRect().top+(parseFloat(r?.paddingTop)||0)+(parseFloat(r?.borderTopWidth)||0);const a=e.querySelector(":scope > header");a&&(n=Math.max(n,a.getBoundingClientRect().bottom));const s=Array.from(e.querySelectorAll(":scope > article > *")).find(e=>this.hasVisiblePaginationContent(e));if(!s)return n;const o=s.getBoundingClientRect();if("table"===s.localName){const e=this.tableContentRows(s)[0];if(e)return Math.max(n,e.getBoundingClientRect().bottom,...Array.from(e.cells,e=>e.getBoundingClientRect().bottom))}if("p"!==s.localName||"true"===s.dataset.docxKeepLines)return Math.max(n,o.bottom);const i=[],l=e.ownerDocument.createTreeWalker(s,NodeFilter.SHOW_TEXT);for(;l.nextNode();){const t=e.ownerDocument.createRange();t.selectNodeContents(l.currentNode);for(const e of Array.from(t.getClientRects()))e.height>0&&e.width>0&&i.push(e)}i.sort((e,t)=>e.top-t.top);const c=i.find(e=>e.top>(i[0]?.top??1/0)+2);return Math.max(n,c?o.top+c.top-i[0].top:o.bottom)}moveEndnotesAfterBody(e,t){const r=this.dynamicNoteState.get(e.parentElement);if(!r||!e.querySelector(":scope > article > *")||!this.isPageOverflowing(e))return!1;const n=Array.from(e.querySelectorAll(':scope > [data-docx-note-list="endnote"] > li'));if(!n.length||n.some(e=>1!==r.fragments.get(e)?.length))return!1;const a=n[0].parentElement,s=a.nextSibling,o=n.map(e=>({item:e,next:e.nextSibling,owner:r.owners.get(e)})),i=this.getOrCreateNoteList(t,"endnote");for(const e of n)i.appendChild(e),r.owners.set(e,t);if(a.children.length||a.remove(),!this.isPageOverflowing(e))return!0;a.parentNode!==e&&e.insertBefore(a,s?.parentNode===e?s:null);for(const{item:e,next:t,owner:n}of o.reverse())a.insertBefore(e,t?.parentNode===a?t:null),r.owners.set(e,n);return i.children.length||i.remove(),!1}splitDynamicNotes(e,t){const r=e.parentElement,n=this.dynamicNoteState.get(r);if(!n?.items.length||e.clientHeight<=0)return!1;if(this.moveEndnotesAfterBody(e,t))return!0;const a=this.options.paginationTolerance??2,s=this.getMinimumNoteBodyBottom(e),o=()=>this.getPageBodyBottom(e)+a<s;if(!o())return!1;let i=!1;const l=new Map,c=Array.from(e.querySelectorAll(":scope > [data-docx-note-list] > li"));for(const h of c.slice().reverse()){if(!o())break;const d=n.items.find(e=>e.dataset.docxNoteKind===h.dataset.docxNoteKind&&e.dataset.docxNoteId===h.dataset.docxNoteId);if(!d)continue;const u=n.fragments.get(d),m=u.indexOf(h),p=h.dataset.docxNoteKind,f=this.getOrCreateNoteList(t,p);if("endnote"===p&&0===m&&e.querySelector(":scope > article > *")){const e=h.parentElement;f.prepend(h),e.children.length||e.remove(),n.owners.set(d,t),i=!0;continue}const g=Array.from(e.querySelectorAll(":scope > [data-docx-note-list] > li")),b=new Map(g.map(e=>[e,this.getNoteItemHeight(e)])),y=this.getPageBodyBottom(e)-s+Array.from(b.values()).reduce((e,t)=>e+t,0);for(const r of g)l.has(r)||l.set(r,this.measureNoteMinimum(r,t,e));const x=g.find(e=>l.get(e)>y+a);if(x)throw t.remove(),this.syncDynamicNotes(r),e.dataset.docxNoteLayoutError=r.dataset.docxNoteLayoutError="unresolved-overflow",new Error(`docx-preview: unbreakable ${x.dataset.docxNoteKind}:${x.dataset.docxNoteId} exceeds its note region; all note content has been preserved`);let w=y-g.reduce((e,t)=>e+l.get(t),0);const v=g.map(e=>Math.max(0,b.get(e)-l.get(e))).sort((e,t)=>e-t);let k=v.length;for(const e of v){if(e*k>w)break;w-=e,k--}const C=k>0?Math.max(0,w/k):1/0,S=l.get(h)+Math.min(b.get(h)-l.get(h),C),N=()=>o()&&this.getNoteItemHeight(h)>S;if(!N()){f.children.length||f.remove();continue}const A=this.cloneBlockShell(h);A.dataset.docxNoteFragment=`${m+1}`,A.dataset.docxContinued="true",f.prepend(A);if(!this.moveNoteItemTail(h,A,e,N)||!this.hasVisibleNoteContent(h)||N()&&this.getNoteItemHeight(h)>y+a){if(this.mergeNoteContents(h,A),A.remove(),m>0&&this.getNoteItemHeight(h)<=y+a&&e.querySelector(":scope > article > *")){f.prepend(h),i=!0;continue}if(f.children.length||f.remove(),o()&&(1===c.length||this.getNoteItemHeight(h)>y+a))throw t.remove(),this.syncDynamicNotes(r),e.dataset.docxNoteLayoutError=r.dataset.docxNoteLayoutError="unresolved-overflow",new Error(`docx-preview: unbreakable ${p}:${h.dataset.docxNoteId} exceeds its note region; all note content has been preserved`)}else u.splice(m+1,0,A),u.forEach((e,t)=>e.dataset.docxNoteFragment=`${t}`),i=!0}return this.syncDynamicNotes(r),i}measureNoteMinimum(e,t,r){const n=this.getOrCreateNoteList(t,e.dataset.docxNoteKind),a=this.cloneBlockShell(e);a.dataset.docxNoteFragment="1",n.appendChild(a);try{return this.moveNoteItemTail(e,a,r,()=>!0),this.getNoteItemHeight(e)}finally{this.mergeNoteContents(e,a),a.remove()}}moveNoteItemTail(e,t,r,n){let a=!1;for(;n()&&e.lastChild;){const s=e.lastChild;if(e.childNodes.length>1&&this.hasNoteContentOutside(e,s))t.prepend(s),a=!0;else{if(1!==s.nodeType||!this.splitNoteBlock(s,t,r,n,e))break;a=!0}}return a}hasNoteContentOutside(e,t){const r=Array.from(e.childNodes);for(;r.length;){const e=r.pop();if(e!==t){if(e.nodeType===Node.TEXT_NODE&&e.textContent.length>0)return!0;if(1===e.nodeType){if(this.isNoteAtomicElement(e))return!0;r.push(...Array.from(e.childNodes))}}}return!1}firstNoteTextBoundary(e){const t=globalThis.Intl?.Segmenter;if(t){let r=0;for(const n of new t(void 0,{granularity:"grapheme"}).segment(e))if(r||(r=n.segment.length),n.segment.trim())return n.index+n.segment.length;return r}const r=e.search(/\S/);let n=Math.max(0,r);return n+(e.codePointAt(n)>65535?2:1)}getNoteItemHeight(e){const t=e.getBoundingClientRect();let r=t.bottom;for(const t of Array.from(e.querySelectorAll("*")))r=Math.max(r,t.getBoundingClientRect().bottom);const n=e.ownerDocument.defaultView.getComputedStyle(e);return Math.max(t.height,r-t.top)+(parseFloat(n.marginTop)||0)+(parseFloat(n.marginBottom)||0)}hasVisibleNoteContent(e){return!!e.textContent?.length||!!e.querySelector("img,svg,math,object,canvas,video,br,[data-docx-field-instr]")}splitNoteBlock(e,t,r,n,a=e.parentElement){const s=e.ownerDocument.defaultView.getComputedStyle(e);if("true"===e.dataset.docxKeepLines||"avoid"===s.breakInside||"avoid"===s.pageBreakInside)return!1;if(!/^(p|table|div|blockquote)$/.test(e.localName))return!1;const o=this.cloneBlockShell(e);o.dataset.docxContinued="true",this.noteContinuationOrigins.set(o,e),t.prepend(o);let i=!1;if("table"===e.localName){for(const t of Array.from(e.querySelectorAll(":scope > colgroup"))){const e=t.cloneNode(!0);e.removeAttribute("id"),e.querySelectorAll("[id]").forEach(e=>e.removeAttribute("id")),e.dataset.docxNoteColumns="true",o.appendChild(e)}const t=new Map,s=(r,n)=>{if(n===e)return void o.appendChild(r);let a=t.get(n);a||(a=this.cloneBlockShell(n),this.noteContinuationOrigins.set(a,n),t.set(n,a),o.appendChild(a)),a.appendChild(r)},l=this.tableContentRows(e);let c=l.length-1;for(;c>0&&l.slice(0,c).some((e,t)=>Array.from(e.cells).some(e=>t+e.rowSpan>c));)c--;if(c>0){for(const e of l.slice(c))s(e,e.parentElement);i=!0}else if(1===l.length&&1===l[0].cells.length&&1===l[0].cells[0].rowSpan){const e=l[0],t=e.cells[0],o=e.ownerDocument.defaultView.getComputedStyle(e);if("avoid"!==o.breakInside&&"avoid"!==o.pageBreakInside){const o=this.cloneBlockShell(e),l=this.cloneBlockShell(t);this.noteContinuationOrigins.set(o,e),this.noteContinuationOrigins.set(l,t),s(o,e.parentElement),o.appendChild(l),i=this.moveNoteBlockTail(t,l,r,n,a)}}}else if("p"===e.localName)for(;n()&&e.lastChild&&this.moveNoteTailNode(e,o,r,n,a);)i=!0;else i=this.moveNoteBlockTail(e,o,r,n,a);return i?e.hasChildNodes()||(e.id&&(o.id=e.id),e.remove()):o.remove(),i}moveNoteBlockTail(e,t,r,n,a){let s=!1;for(;n()&&e.lastChild;){const o=e.lastChild;if(e.childNodes.length>1&&this.hasNoteContentOutside(a,o))t.prepend(o),s=!0;else{if(1!==o.nodeType||!this.splitNoteBlock(o,t,r,n,a))break;s=!0}}return s}moveNoteTailNode(e,t,r,n,a){const s=e.lastChild;if(!s)return!1;if(s.nodeType===Node.TEXT_NODE){const e=this.hasNoteContentOutside(a,s)?0:this.firstNoteTextBoundary(s.textContent);return this.moveTextTail(s,t,r,n,!0,e)}if(1===s.nodeType){const e=s;if(e.hasChildNodes()&&!this.isNoteAtomicElement(e)&&!e.dataset.docxFloat&&!e.dataset.docxNoteReference){const s=this.cloneBlockShell(e);s.removeAttribute("name"),this.noteContinuationOrigins.set(s,e),t.prepend(s);const o=this.moveNoteTailNode(e,s,r,n,a);return e.hasChildNodes()||(e.id&&(s.id=e.id),e.hasAttribute("name")&&s.setAttribute("name",e.getAttribute("name")),e.remove()),s.hasChildNodes()||s.remove(),o}}return!(1===s.nodeType&&this.isNoteAtomicElement(s)&&!this.hasNoteContentOutside(a,s))&&(t.prepend(s),!0)}isNoteAtomicElement(e){return/^(img|svg|math|object|canvas|video|picture|br)$/i.test(e.localName)||e.hasAttribute("data-docx-field-instr")}isMutableNoteField(e){if(!e.hasAttribute("data-docx-field-instr"))return!1;const t=this.tokenizeFieldInstruction((e.dataset.docxFieldInstr??"").replace(/\s+/g," ").trim()),r=t[0]?.replace(/^=/,"").toUpperCase();return["PAGE","NUMPAGES","SECTIONPAGES","SECTION"].includes(r)||"PAGEREF"===r&&!!this.options.updatePageReferences}noteTextSignature(e,t){const r=e=>e.nodeType===Node.TEXT_NODE?e.textContent:1===e.nodeType&&this.isMutableNoteField(e)?`\0docx-field-${t.indexOf(e)}\0`:Array.from(e.childNodes).map(r).join("");return r(e)}assertDynamicNotesFit(e){const t=[],r=this.dynamicNoteState.get(e);if(r)for(const n of r.items){const a=r.fragments.get(n),s=r.fields.get(n),o=a.flatMap(e=>Array.from(e.querySelectorAll("[data-docx-field-instr]")));(a.map(e=>this.noteTextSignature(e,s)).join("")!==r.text.get(n)||o.length!==s.length||o.some((e,t)=>e!==s[t])||a.some((t,r)=>!e.contains(t)||t.dataset.docxNoteFragment!==`${r}`))&&t.push(`fragment conservation ${n.dataset.docxNoteKind}:${n.dataset.docxNoteId}`)}const n=this.options.paginationTolerance??2;for(const r of Array.from(e.querySelectorAll(`:scope > section.${this.className}`))){const e=Array.from(r.children).filter(e=>e.dataset.docxNoteList);if(!e.length||r.clientHeight<=0)continue;delete r.dataset.docxNoteLayoutError;const a=this.getPageBodyBottom(r),s=this.getPageNoteBottom(r),o=Array.from(r.querySelectorAll(":scope > article > *")).some(e=>e.getBoundingClientRect().bottom>a+n),i=e.some(e=>Array.from(e.querySelectorAll("*")).some(e=>e.getBoundingClientRect().bottom>s+n));(o||i)&&(r.dataset.docxNoteLayoutError="unresolved-overflow",t.push(e.flatMap(e=>Array.from(e.children,e=>`${e.dataset.docxNoteKind}:${e.dataset.docxNoteId}`)).join(",")))}if(t.length)throw e.dataset.docxNoteLayoutError="unresolved-overflow",new Error(`docx-preview: note layout requires continuation or unsupported geometry (${t.join("; ")}); all note content has been preserved`);delete e.dataset.docxNoteLayoutError}async refreshDynamicHeaderFooters(e){let t="",r=0,n=0;const a=this.tasks.length;for(const a of e){const e=a.dataset.docxSection??"",s=e!==t;if(s){const s=Number(a.dataset.docxPageStart);r=null!=a.dataset.docxPageStart&&Number.isFinite(s)?s:r+1,n=1,t=e}else r++,n++;const o=this.pageHeaderFooterState.get(a);if(o){this.currentPageNumber=r,this.currentSectionPageNumber=n,this.currentSectionNumber=Number(a.dataset.docxSectionNumber)||1;for(const e of["header","footer"]){const t="header"===e?o.headerProps:o.footerProps,n="header"===e?t.headerRefs:t.footerRefs,i="header"===e?"headerId":"footerId",l=this.selectHeaderFooterReference(n,t,r,s);if(o[i]!==l?.id&&(o[i]=l?.id,a.querySelector(`:scope > ${e}`)?.remove(),("header"===e?this.options.renderHeaders:this.options.renderFooters)&&(this.currentSectionProps=t,this.renderHeaderFooter(n,t,r,s,a),"header"===e))){const e=a.querySelector(":scope > header");e&&a.prepend(e)}}}}await Promise.allSettled(this.tasks.slice(a))}splitOverflowBlock(e,t,r){if(!r.isConnected&&t.isConnected&&r.parentElement&&t.after(r.parentElement),!e||"true"==e.dataset.docxKeepLines)return!1;const n=getComputedStyle(e);if("avoid"==n.breakInside||"avoid"==n.pageBreakInside)return!1;switch(e.tagName.toLowerCase()){case"p":return this.splitParagraphBlock(e,t,r);case"table":return this.splitTableBlock(e,t,r)}return!1}splitParagraphBlock(e,t,r){if(!e.hasChildNodes())return!1;const n=this.cloneBlockShell(e);n.dataset.docxContinued="true",r.prepend(n);let a=!1,s=0;for(;this.isPageOverflowing(t)&&e.hasChildNodes()&&s++<1e3;){if(!this.moveTailInlineNode(e,n,t))break;a=!0,this.removeEmptyInlineContainers(e)}return a?(e.hasChildNodes()?this.options.strictWordCompatibility&&"true"==e.dataset.docxWidowControl&&this.rebalanceWidowOrphan(e,n,t):e.remove(),!0):(n.remove(),!1)}splitTableBlock(e,t,r){const n=this.tableContentRows(e);if(n.length<=1)return!1;const a=this.cloneBlockShell(e);a.dataset.docxContinued="true";for(const t of Array.from(e.children))"colgroup"==t.tagName?.toLowerCase()&&a.appendChild(t.cloneNode(!0));for(const e of n.filter(e=>"true"==e.dataset.docxRepeatHeader)){const t=e.cloneNode(!0);t.dataset.docxRepeatedHeader="true",a.appendChild(t)}r.prepend(a);let s=!1,o=0;for(;this.isPageOverflowing(t)&&this.tableContentRows(e).length>1&&o++<500;){const t=this.tableContentRows(e).filter(e=>"true"!=e.dataset.docxRepeatedHeader),r=t[t.length-1];if(!r)break;a.insertBefore(r,this.firstMovedTableRow(a)),s=!0}return!!s||(a.remove(),!1)}cloneBlockShell(e){const t=e.cloneNode(!1);return t.removeAttribute("id"),t}tableContentRows(e){return Array.from(e.querySelectorAll(":scope > tr, :scope > tbody > tr"))}firstMovedTableRow(e){return this.tableContentRows(e).find(e=>"true"!=e.dataset.docxRepeatedHeader)??null}moveTailInlineNode(e,t,r){const n=e.lastChild;if(!n)return!1;if(n.nodeType==Node.TEXT_NODE)return this.moveTextTail(n,t,r);if(n instanceof Element){if(n.dataset?.docxNoteReference)return t.prepend(n),!0;if(n.childNodes.length>0&&"br"!=n.tagName?.toLowerCase()){const e=n.cloneNode(!1);e.removeAttribute("id"),t.prepend(e);const a=this.moveTailInlineNode(n,e,r);return n.hasChildNodes()||n.remove(),e.hasChildNodes()||e.remove(),a}}return t.prepend(n),!0}moveTextTail(e,t,r,n=()=>this.isPageOverflowing(r),a=!1,s=0){const o=e.data??"";if(!o||o.length<=s)return!1;const i=document.createTextNode("");if(t.prepend(i),1==o.length)return i.data=o,e.remove(),!0;let l=1,c=o.length-s,h=c;for(;l<=c;){const t=Math.floor((l+c)/2);e.data=o.substring(0,o.length-t),i.data=o.substring(o.length-t),n()?l=t+1:(h=t,c=t-1)}if(h=Math.min(o.length-s,this.adjustSplitToWordBoundary(o,h)),a){const e=o.length-h,t=globalThis.Intl?.Segmenter;let r=0;if(t)for(const n of new t(void 0,{granularity:"grapheme"}).segment(o)){if(n.index>e)break;r=n.index}else for(r=e,r>0&&/[\uDC00-\uDFFF]/.test(o[r])&&/[\uD800-\uDBFF]/.test(o[r-1])&&r--;r>0&&/[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f\ufe00-\ufe0f\u200d]/.test(o[r]);)r--;h=o.length-Math.max(r,s)}return e.data=o.substring(0,o.length-h),i.data=o.substring(o.length-h),e.data||e.remove(),!0}adjustSplitToWordBoundary(e,t){if(t<=1||t>=e.length)return t;const r=e.length-t,n=e.lastIndexOf(" ",r);return n>0&&r-n<32?e.length-n-1:t}removeEmptyInlineContainers(e){for(const t of Array.from(e.childNodes))t instanceof HTMLElement&&(this.removeEmptyInlineContainers(t),t.hasChildNodes()||/^(br|img|svg|math)$/i.test(t.tagName)||t.remove())}cleanupEmptyNumberedParagraphs(e){const t=`p[class*="${this.className}-num-"]`;for(const r of Array.from(e.querySelectorAll(t))){if(this.hasVisiblePaginationContent(r))continue;if(!r.id&&!r.querySelector("[id], a[name]"))continue;const t=this.findNextVisiblePaginationBlock(e,r);t&&this.moveAnchorsToBlock(r,t),r.remove()}}removeEmptyDynamicPages(e){const t=Array.from(e.querySelectorAll(`:scope > section.${this.className}[data-docx-dynamic-page="true"]`));for(const e of t){const t=Array.from(e.querySelectorAll(":scope > article")),r=t.some(e=>Array.from(e.children).some(e=>this.hasVisiblePaginationContent(e))),n=Array.from(e.children).some(e=>e.dataset.docxNoteList&&e.children.length>0);t.length>0&&!r&&!n&&e.remove()}}findNextVisiblePaginationBlock(e,t){const r=Array.from(e.querySelectorAll("article p, article table, article figure, article img, article svg, article math"));for(let e=r.indexOf(t)+1;e<r.length;e++){const t=r[e];if(this.hasVisiblePaginationContent(t))return t}return null}hasVisiblePaginationContent(e){return(e.textContent??"").replace(/\s+/g,"").length>0||!!e.querySelector("br,img,svg,math,object,canvas,video,table")}moveAnchorsToBlock(e,t){const r=Array.from(e.querySelectorAll("[id], a[name]"));e.id&&!t.id&&(t.id=e.id);for(let e=r.length-1;e>=0;e--){const n=r[e];n.id&&t.querySelector(`#${CSS.escape(n.id)}`)||t.prepend(n)}}rebalanceWidowOrphan(e,t,r){const n=this.visualLineCount(e),a=this.visualLineCount(t);if(n>=2&&a>=2)return;if(n<2&&e.parentElement&&t.hasChildNodes())return t.prepend(...Array.from(e.childNodes)),void e.remove();let s=0;for(;this.visualLineCount(t)<2&&e.hasChildNodes()&&s++<20&&!this.isPageOverflowing(r)&&this.moveTailInlineNode(e,t,r););}visualLineCount(e){try{const t=document.createRange();t.selectNodeContents(e);const r=Array.from(t.getClientRects());t.detach?.();const n=new Set(r.map(e=>Math.round(e.top)));return Math.max(n.size,1)}catch{return 1}}updateDynamicFieldPages(e){const t=Array.from(e.querySelectorAll(":scope > section."+this.className)),r={},n={},a={},s=[],o=[];let i=0,l="";for(const e of t){const t=e.dataset.docxSection??"";n[t]=(n[t]??0)+1}if(t.forEach((e,t)=>{const c=e.dataset.docxSection??"";if(c!=l){const t=null!=e.dataset.docxPageStart?parseInt(e.dataset.docxPageStart,10):null;i=Number.isFinite(t)?t:i+1,a[c]=1,l=c}else i++,a[c]=(a[c]??0)+1;e.dataset.docxPageNumber=`${i}`,e.dataset.docxSectionPageNumber=`${a[c]}`,e.dataset.docxSectionPageCount=`${n[c]??1}`,s[t]=i,o[t]=a[c];for(const t of Array.from(e.querySelectorAll("[id]")))t.id&&null==r[t.id]&&(r[t.id]=i)}),t.forEach((e,a)=>{const i=e.dataset.docxSection??"";for(const l of Array.from(e.querySelectorAll("[data-docx-field-instr]"))){const c=this.evaluateDynamicField(l.dataset.docxFieldInstr,s[a]??a+1,t.length,r,n[i]??1,o[a]??1,parseInt(e.dataset.docxSectionNumber??"1",10));null!=c&&(l.textContent=c)}}),this.options.updatePageReferences)for(const t of Array.from(e.querySelectorAll("[data-docx-page-ref]"))){const e=t.dataset.docxPageRef;t.textContent=`${r[e]??1}`}this.updateDynamicNoteNumbers(e)}evaluateDynamicField(e,t,r,n,a=r,s=t,o=1){const i=this.tokenizeFieldInstruction((e??"").replace(/\s+/g," ").trim()),l=i[0]?.replace(/^=/,"").toUpperCase();let c=null;switch(l){case"PAGE":c=this.formatFieldNumber(t,this.fieldFormatSwitchToNumFormat(this.fieldSwitch(i,"\\*")??this.currentSectionProps?.pageNumber?.format));break;case"NUMPAGES":c=this.formatFieldNumber(r,this.fieldFormatSwitchToNumFormat(this.fieldSwitch(i,"\\*")??this.currentSectionProps?.pageNumber?.format));break;case"SECTIONPAGES":c=this.formatFieldNumber(a,this.fieldFormatSwitchToNumFormat(this.fieldSwitch(i,"\\*")??this.currentSectionProps?.pageNumber?.format));break;case"SECTION":c=this.formatFieldNumber(o,this.fieldFormatSwitchToNumFormat(this.fieldSwitch(i,"\\*")??"decimal"));break;case"PAGEREF":{if(!this.options.updatePageReferences)return null;const e=this.firstFieldArgument(i);c=e?`${n[e]??1}`:"";break}}return null==c?null:this.applyFieldFormatting(c,e)}renderDefaultStyle(){var e=this.className;const t=!!this.options.darkMode,r=t?"#242424":"gray",n=t?Bs("white"):"white",a=t?Bs("black"):"black";var s=`\n.${e}-wrapper { position: relative; background: ${r}; padding: 30px; padding-bottom: 0px; display: flex; flex-flow: column; align-items: center; }\n.${e}-wrapper>section.${e} { background: ${n}; box-shadow: ${t?"0 0 10px rgba(0, 0, 0, 0.8)":"0 0 10px rgba(0, 0, 0, 0.5)"}; margin-bottom: 30px;${t?" outline: 1px solid rgba(255, 255, 255, 0.15); outline-offset: -1px;":""} }`;this.options.hideWrapperOnPrint&&(s=`@media not print { ${s} }`);var o=`${s}\n.${e} { --docx-auto-color: ${a}; color: var(--docx-auto-color); font-size: 10.5pt; font-family: var(--docx-minorHAnsi-font, "Times New Roman", serif); hyphens: auto; text-underline-position: from-font; font-kerning: normal; font-variant-ligatures: common-ligatures contextual; text-rendering: optimizeLegibility; line-break: auto; }\nsection.${e} { box-sizing: border-box; display: flex; flex-flow: column nowrap; position: relative; overflow: visible; isolation: isolate; }\nsection.${e}>header, section.${e}>footer { flex-shrink: 0; }\nsection.${e}>[data-docx-note-list] { flex-shrink: 0; }\nsection.${e}>article { z-index: 1; }\nsection.${e}>article:last-of-type { margin-bottom: auto; }\nsection.${e}>footer { z-index: 1; }\n.${e} [data-docx-continued="true"] { margin-top: 0 !important; }\n.${e} tr[data-docx-repeat-header="true"], .${e} tr[data-docx-repeated-header="true"] { break-after: avoid; }\n.${e} li[data-docx-note-label]::marker { content: attr(data-docx-note-label) " "; }\n.${e} li[data-docx-note-custom="true"]::marker, .${e} li[data-docx-note-label=""]::marker,\n.${e} li[data-docx-note-fragment]:not([data-docx-note-fragment="0"])::marker { content: ""; }\n.${e} table { border-collapse: collapse; }\n.${e} table td, .${e} table th { vertical-align: top; overflow-wrap: anywhere; }\n.${e} p { margin: 0pt; min-height: 1em; }\n.${e} .${e}-paragraph-frame > p { margin: 0; }\n.${e} span { white-space: pre-wrap; overflow-wrap: break-word; font-feature-settings: "kern" 1; }\n.${e} table span { overflow-wrap: anywhere; }\n.${e} .${e}-float-wrap { shape-margin: 0.15in; }\n.${e} .${e}-field { white-space: pre-wrap; }\n.${e} .${e}-tab-stop { display: inline-block; min-width: 1em; white-space: nowrap; line-height: 1; }\n.${e} .${e}-tab-stop[data-docx-tab-leader="dot"], .${e} .${e}-tab-stop[data-docx-tab-leader="middleDot"] { min-width: 2em; border-bottom: 1px dotted currentColor; height: .85em; transform: translateY(-.18em); }\n.${e} .${e}-tab-stop[data-docx-tab-leader="hyphen"], .${e} .${e}-tab-stop[data-docx-tab-leader="heavy"], .${e} .${e}-tab-stop[data-docx-tab-leader="underscore"] { min-width: 2em; border-bottom: 1px solid currentColor; height: .85em; transform: translateY(-.18em); }\n.${e} .${e}-tab-leader-paragraph > a, .${e} .${e}-tab-leader-paragraph > .${e}-tab-leader-line, .${e} .${e}-tab-leader-line { display: inline-flex; align-items: baseline; width: calc(100% - var(--docx-text-indent, 0pt)); color: inherit !important; text-decoration: none !important; box-sizing: border-box; max-width: none; text-indent: 0; }\n.${e} .${e}-tab-leader-paragraph > a, .${e} .${e}-tab-leader-paragraph > a * { color: inherit !important; text-decoration: none !important; }\n.${e} .${e}-toc-paragraph a, .${e} .${e}-toc-paragraph a * { color: inherit !important; text-decoration: none !important; }\n.${e} .${e}-toc-paragraph.${e}-tab-leader-paragraph[class*="${e}-num-"] { display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: .35em; align-items: baseline; list-style-position: outside; list-style-type: none; text-indent: 0 !important; }\n.${e} .${e}-toc-paragraph.${e}-tab-leader-paragraph[class*="${e}-num-"]::before { grid-column: 1; grid-row: 1; white-space: pre; margin-inline-end: 0; }\n.${e} .${e}-toc-paragraph.${e}-tab-leader-paragraph[class*="${e}-num-"] > a { grid-column: 2; grid-row: 1; display: inline-flex; flex: 1 1 auto; width: auto; min-width: 0; max-width: 100%; }\n.${e} .${e}-tab-leader-title { flex: 0 1 auto; min-width: 0; }\n.${e} .${e}-tab-leader-page { flex: 0 0 auto; white-space: nowrap; text-align: right; }\n.${e} .${e}-tab-leader-fill, .${e} .${e}-tab-leader-paragraph > a > .${e}-tab-stop[data-docx-tab-leader="dot"], .${e} .${e}-tab-leader-paragraph > a > .${e}-tab-stop[data-docx-tab-leader="middleDot"], .${e} .${e}-tab-leader-paragraph > .${e}-tab-stop[data-docx-tab-leader="dot"], .${e} .${e}-tab-leader-paragraph > .${e}-tab-stop[data-docx-tab-leader="middleDot"] { flex: 1 1 auto; width: auto; margin: 0 .2em; }\n.${e} .${e}-literal-leader-line > .${e}-tab-leader-title { flex: 0 0 auto; white-space: nowrap; }\n.${e} .${e}-toc { display: table; width: 100%; }\n.${e} .${e}-toc-entry { display: table-row; }\n.${e} .${e}-toc-title, .${e} .${e}-toc-page { display: table-cell; }\n.${e} .${e}-toc-title { border-bottom: 1px dotted currentColor; }\n.${e} .${e}-toc-page { text-align: right; width: 3em; }\n.${e} math { font-family: Cambria Math, STIX Two Math, Latin Modern Math, serif; }\n.${e} ruby { ruby-position: over; }\n.${e} rt { font-size: 0.5em; line-height: 1; }\n.${e} .${e}-chart, .${e} .${e}-smartart, .${e} .${e}-ink { min-width: 2in; min-height: 1in; }\n.${e} a { color: inherit; text-decoration: inherit; }\n.${e} svg { fill: transparent; }\n[data-docx-review-enabled="true"] { --docx-review-color: #c2410c; }\n[data-docx-review-enabled="true"] ins[data-docx-change-kind], [data-docx-review-enabled="true"] del[data-docx-change-kind] { text-decoration: none; }\n[data-docx-review-enabled="true"][data-docx-review-mode="final"] [data-docx-change-kind="delete"], [data-docx-review-enabled="true"][data-docx-review-mode="final"] [data-docx-change-kind="move-from"], [data-docx-review-enabled="true"][data-docx-review-mode="simple"] [data-docx-change-kind="delete"], [data-docx-review-enabled="true"][data-docx-review-mode="simple"] [data-docx-change-kind="move-from"], [data-docx-review-enabled="true"][data-docx-review-mode="original"] [data-docx-change-kind="insert"], [data-docx-review-enabled="true"][data-docx-review-mode="original"] [data-docx-change-kind="move-to"] { display: none !important; }\n[data-docx-review-enabled="true"][data-docx-review-mode="all"] ins[data-docx-change-kind]:not([data-docx-change-empty="true"]) { color: var(--docx-review-color); text-decoration: underline; text-decoration-color: var(--docx-review-color); text-underline-offset: .16em; background: color-mix(in srgb, var(--docx-review-color) 7%, transparent); }\n[data-docx-review-enabled="true"][data-docx-review-mode="all"] ins[data-docx-change-empty="true"] { color: inherit; text-decoration: none; background: transparent; }\n[data-docx-review-enabled="true"][data-docx-review-mode="all"] del[data-docx-change-kind] { display: inline-block !important; width: 0 !important; max-width: 0 !important; height: 0 !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; line-height: 0 !important; vertical-align: baseline; color: transparent; }\n[data-docx-review-enabled="true"][data-docx-review-mode="all"][data-docx-review-presentation="inline"] del[data-docx-change-kind] { display: inline !important; width: auto !important; max-width: none !important; height: auto !important; overflow: visible !important; line-height: inherit !important; color: var(--docx-review-color); text-decoration: line-through; text-decoration-color: var(--docx-review-color); }\n[data-docx-review-enabled="true"][data-docx-review-mode="simple"] ins[data-docx-change-kind] { color: inherit; text-decoration: none; background: transparent; }\n[data-docx-review-enabled="true"][data-docx-review-mode="original"] del[data-docx-change-kind] { color: inherit; text-decoration: none; background: transparent; }\n[data-docx-review-enabled="true"][data-docx-review-mode="all"] [data-docx-format-change="true"], [data-docx-review-enabled="true"][data-docx-review-mode="simple"] [data-docx-format-change="true"] { outline: 0; }\n[data-docx-review-enabled="true"][data-docx-review-mode="final"] [data-docx-change-kind="comment"], [data-docx-review-enabled="true"][data-docx-review-mode="original"] [data-docx-change-kind="comment"] { display: none !important; }\n@media print { .${e}-wrapper { background: transparent; padding: 0; display: block; } .${e}-wrapper>section.${e}, section.${e} { background: white; margin: 0 auto; box-shadow: none; outline: none; break-after: page; page-break-after: always; } .${e} { --docx-auto-color: black; color: black; } }\n`;return this.options.renderComments&&(o+=`\n.${e}-comment-ref { cursor: pointer; }\n.${e}-comment-ref[data-docx-comment-positioned="true"]:not(:focus) { opacity: 0; }\n.${e}-comment-ref:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }\n.${e}-comment-anchor { display: inline-block; width: 0; height: 0; overflow: visible; vertical-align: baseline; }\n.${e}-comment-layer { position: absolute; inset: 0; pointer-events: none; z-index: 1000; }\n.${e}-comment-popover { display: block; width: max-content; pointer-events: auto; margin: 0; padding: 0; }\n.${e}-comment-popover > summary { list-style: none; cursor: pointer; display: block; padding: 0; margin: 0; }\n.${e}-comment-popover > summary::-webkit-details-marker { display: none; }\n.${e}-comment-popover > summary:focus-visible { outline: 2px solid currentColor; }\n.${e}-comment-body { position: absolute; top: 100%; width: 30ch; box-sizing: border-box; overflow: auto; padding: .5rem; background: ${n}; color: var(--docx-auto-color); box-shadow: 0 0 .25rem rgba(0,0,0,.25); }\n.${e}-comment-author,.${e}-comment-date { font-size: .875rem; color: ${t?Bs("#888888"):"#888"}; }\n@media print { .${e}-comment-layer, .${e}-comment-popover, .${e}-comment-body { position: static !important; width: auto !important; max-width: none !important; max-height: none !important; overflow: visible; } .${e}-comment-layer { pointer-events: auto; } .${e}-comment-body { box-shadow: none; } }\n\n`),[this.h({tagName:"#comment",children:["docxjs library predefined styles"]}),this.h({tagName:"style",children:[o]})]}async renderNumbering(e){var t="",r=[];const n=new Map,a=new Map(e.map(e=>[`${e.id}:${e.level}`,this.numFormatToCssValue(e.format)])),s=(e,t)=>{const r=n.get(e)??[];r.push(t),n.set(e,r)};for(var o of e){var i=this.numberingSelector(o.id,o.level),l="none";if(o.bullet){let e=`--${this.className}-${o.bullet.src}`.toLowerCase();t+=this.styleToString(`${i}:before`,{content:"' '",display:"inline-block",background:`var(${e})`},o.bullet.style);try{const r=await this.document.loadNumberingImage(o.bullet.src);t+=`${this.rootSelector} { ${e}: url(${r}) }`}catch(e){this.options.debug&&console.warn(`Can't load numbering image with src ${o.bullet.src}`)}}else if(o.levelText){let e=this.numberingCounter(o.id,o.level);const n=e+" "+(o.start-1),l=this.numberingRestartLevel(o);null!=l&&s(this.numberingSelector(o.id,l),n),r.push(n);const c=this.normalizeNumberingLevelText(o.levelText,o.format,o.rStyle),h=this.numberingMarkerRunStyle(o.rStyle,c.normalized);t+=this.styleToString(`${i}:before`,{content:this.levelTextToContent(c.text,o.suff,o.id,this.numFormatToCssValue(o.format),a),"counter-increment":e,"font-family":"var(--docx-marker-font-family, inherit)","font-size":"var(--docx-marker-font-size, inherit)","font-style":"var(--docx-marker-font-style, inherit)","font-weight":"var(--docx-marker-font-weight, inherit)",...h})}else l=this.numFormatToCssValue(o.format);t+=this.styleToString(i,{display:"list-item","list-style-position":"inside","list-style-type":l,...o.pStyle})}for(const[e,r]of n)t+=this.styleToString(e,{"counter-set":r.join(" ")});return r.length>0&&(t+=this.styleToString(this.rootSelector,{"counter-reset":r.join(" ")})),[this.h({tagName:"#comment",children:["docxjs document numbering styles"]}),this.h({tagName:"style",children:[t]})]}renderStyles(e){var t="";const r=this.styleMap,n=y(e.filter(e=>e.isDefault),e=>e.target);for(const i of e){var a=i.styles;if(i.linked){var s=i.linked&&r[i.linked];s?a=a.concat(s.styles):this.options.debug&&console.warn(`Can't find linked style ${i.linked}`)}for(const e of a){var o=`${i.target??""}.${i.cssName}${e.mod??""}`;i.target!=e.target&&(o+=` ${e.target}`),o=this.scopeDocumentStyleSelector(o),n[i.target]==i&&(o=`.${this.className} ${i.target}, `+o),t+=this.styleToString(o,e.values)}}return[this.h({tagName:"#comment",children:["docxjs document styles"]}),this.h({tagName:"style",children:[t]})]}renderNotes(e,t,r,n="footnote"){const a=Array.from(new Set(e)).filter(e=>t[e]&&!["separator","continuationSeparator","continuationNotice"].includes(t[e].noteType)&&!this.renderedNoteIds.has(`${n}:${e}`));if(0===a.length)return null;const s=this.currentPart;this.currentPart=r??s;try{const e=a.map(e=>{const r=this.renderElement(t[e]);return r.dataset.docxNoteId=e,r.dataset.docxNoteKind=n,r.dataset.docxNoteFragment="0",this.applyNoteAssignment(r,this.noteNumbering.assignments.get(`${n}:${e}`),!1),this.renderedNoteIds.add(`${n}:${e}`),r}),r=this.h({tagName:"ol",children:e});return r.dataset.docxNoteList=n,r}finally{this.currentPart=s}}formatNoteAssignment(e){return function(e){if(!e||e.custom||"none"===e.properties.format)return"";const t=e.value,r=e.properties.format;switch(r){case"chicago":{const e=["*","†","‡","§"];return t>0&&t<=384?e[(t-1)%e.length].repeat(Math.floor((t-1)/e.length)+1):`${t}`}case"upperLetter":case"lowerLetter":{if(t<=0||t>3328)return`${t}`;const e="upperLetter"===r?65:97;return String.fromCharCode(e+(t-1)%26).repeat(Math.floor((t-1)/26)+1)}case"upperRoman":case"lowerRoman":{if(t<=0||t>3999)return`${t}`;const e=[[1e3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]];let n=t,a="";for(const[t,r]of e)for(;n>=t;)a+=r,n-=t;return"lowerRoman"===r?a.toLowerCase():a}case"decimalZero":return t<10?`0${t}`:`${t}`;case"numberInDash":return`-${t}-`;case"hex":return t.toString(16).toUpperCase();case"ordinal":return`${t}${t%100>=11&&t%100<=13?"th":{1:"st",2:"nd",3:"rd"}[t%10]??"th"}`;default:return`${t}`}}(e)}applyNoteAssignment(e,t,r){if(!t)return;const n=this.formatNoteAssignment(t);e.dataset.docxNoteLabel=n,e.dataset.docxNoteCustom=`${t.custom}`,r?e.childNodes?.length?e.textContent=n:e.appendChild(this.h(n)):(null!=t.value&&e.setAttribute("value",`${t.value}`),e.style.listStyleType=t.custom?"none":this.numFormatToCssValue(t.properties.format))}renderElement(e){switch(e.type){case We.Paragraph:return this.renderParagraph(e);case We.BookmarkStart:return this.renderBookmarkStart(e);case We.BookmarkEnd:return null;case We.Run:return this.renderRun(e);case We.Table:return this.renderTable(e);case We.Row:return this.renderTableRow(e);case We.Cell:return this.renderTableCell(e);case We.Hyperlink:return this.renderHyperlink(e);case We.SmartTag:return this.renderSmartTag(e);case We.Drawing:return this.renderAnchoredElement(e,this.renderDrawing(e));case We.Image:return this.renderImage(e);case We.Shape:return this.renderShape(e);case We.Chart:return this.renderChart(e);case We.SmartArt:return this.renderSmartArt(e);case We.Ink:return this.renderInk(e);case We.SimpleField:return this.renderSimpleField(e);case We.Instruction:case We.ComplexField:return null;case We.Text:return this.renderText(e);case We.DeletedText:return this.renderDeletedText(e);case We.Tab:return this.renderTab(e);case We.Symbol:return this.renderSymbol(e);case We.Break:return this.renderBreak(e);case We.Footer:return this.renderContainer(e,"footer");case We.Header:return this.renderContainer(e,"header");case We.Footnote:case We.Endnote:return this.renderContainer(e,"li");case We.FootnoteReference:return this.renderFootnoteReference(e);case We.EndnoteReference:return this.renderEndnoteReference(e);case We.NoBreakHyphen:return this.h("‑");case We.SoftHyphen:return this.h("­");case We.PositionalTab:return this.renderTab(e);case We.Ruby:return this.renderRuby(e);case We.RubyBase:return this.renderContainer(e,"span");case We.RubyText:return this.toHTML(e,zs.html,"rt");case We.VmlPicture:return this.renderVmlPicture(e);case We.VmlElement:return this.renderAnchoredElement(e,this.renderVmlElement(e));case We.MmlMath:return this.renderContainerNS(e,zs.mathML,"math",{xmlns:zs.mathML});case We.MmlMathParagraph:return this.renderMmlMathParagraph(e);case We.MmlFraction:return this.renderContainerNS(e,zs.mathML,"mfrac");case We.MmlBase:return this.renderContainerNS(e,zs.mathML,e.parent?.type==We.MmlMatrixRow?"mtd":"mrow");case We.MmlNumerator:case We.MmlDenominator:case We.MmlFunction:case We.MmlLimit:case We.MmlBox:return this.renderContainerNS(e,zs.mathML,"mrow");case We.MmlGroupChar:return this.renderMmlGroupChar(e);case We.MmlLimitLower:return this.renderContainerNS(e,zs.mathML,"munder");case We.MmlLimitUpper:return this.renderContainerNS(e,zs.mathML,"mover");case We.MmlSubSuperscript:return this.renderContainerNS(e,zs.mathML,"msubsup");case We.MmlPhantom:return this.renderMmlPhantom(e);case We.MmlBorderBox:return this.renderContainerNS(e,zs.mathML,"menclose");case We.MmlAccent:return this.renderMmlAccent(e);case We.MmlMatrix:return this.renderContainerNS(e,zs.mathML,"mtable");case We.MmlMatrixRow:return this.renderContainerNS(e,zs.mathML,"mtr");case We.MmlRadical:return this.renderMmlRadical(e);case We.MmlSuperscript:return this.renderContainerNS(e,zs.mathML,"msup");case We.MmlSubscript:return this.renderContainerNS(e,zs.mathML,"msub");case We.MmlDegree:case We.MmlSuperArgument:case We.MmlSubArgument:return this.renderContainerNS(e,zs.mathML,"mrow");case We.MmlFunctionName:return this.renderContainerNS(e,zs.mathML,"mi");case We.MmlDelimiter:return this.renderMmlDelimiter(e);case We.MmlRun:return this.renderMmlRun(e);case We.MmlNary:return this.renderMmlNary(e);case We.MmlPreSubSuper:return this.renderMmlPreSubSuper(e);case We.MmlBar:return this.renderMmlBar(e);case We.MmlEquationArray:return this.renderMllList(e);case We.Inserted:return this.renderInserted(e);case We.Deleted:return this.renderDeleted(e);case We.CommentRangeStart:return this.renderCommentRangeStart(e);case We.CommentRangeEnd:return this.renderCommentRangeEnd(e);case We.CommentReference:return this.renderCommentReference(e);case We.AltChunk:return this.renderAltChunk(e)}return null}renderElements(e,t){if(null==e)return null;e=this.reviewParagraphs(e);const r=[];for(let t=0;t<e.length;t++){const n=e[t].type==We.Paragraph?e[t]:null;if(this.isPositionedParagraphFrame(n)){const a=this.paragraphFrameKey(n),s=[n];for(;t+1<e.length;){const r=e[t+1].type==We.Paragraph?e[t+1]:null;if(!this.isPositionedParagraphFrame(r)||this.paragraphFrameKey(r)!=a)break;s.push(r),t++}const o=s.flatMap(e=>S(this.renderElement(e)).filter(e=>null!=e)),i=this.h({tagName:"div",className:`${this.className}-paragraph-frame`,style:this.paragraphFrameStyle(n),children:o});i.dataset.docxFrameAnchor=`${n.frame.horizontalAnchor??"text"}/${n.frame.verticalAnchor??"text"}`,i.dataset.docxFrameParagraphs=`${s.length}`,r.push(i);continue}const a=this.tryRenderComplexField(e,t);a?(r.push(...S(a.node).filter(e=>null!=e)),t=a.nextIndex-1):r.push(...S(this.renderElement(e[t])).filter(e=>null!=e))}return t&&r.forEach(e=>t.appendChild(v(e)?document.createTextNode(e):e)),r}reviewParagraphs(e){const t=Us(this.options);if("all"==t)return e;const r=[];for(const n of e??[]){const e=r[r.length-1],a=n,s="original"==t?(e?.props?.paragraphMarkRevisions??[]).some(e=>"insert"==e.kind):e?.props?.deletedParagraphMark;e?.type==We.Paragraph&&n.type==We.Paragraph&&s&&!e.sectionProps&&this.paragraphFrameKey(e)==this.paragraphFrameKey(a)?r[r.length-1]={...a,children:[...e.children??[],...a.children??[]]}:r.push(n)}return r}isPositionedParagraphFrame(e){const t=e?.frame;return!!t&&"drop"!=t.dropCap&&!!(t.width||t.height||t.horizontalPosition||t.verticalPosition||t.horizontalAlignment||t.verticalAlignment)}paragraphFrameKey(e){const t=e.frame??{};return JSON.stringify([t.width,t.height,t.horizontalPosition,t.verticalPosition,t.horizontalAnchor,t.verticalAnchor,t.horizontalAlignment,t.verticalAlignment,t.horizontalSpace,t.verticalSpace,t.heightRule,t.wrap])}paragraphFrameStyle(e){const t=e.frame,r={position:"absolute",boxSizing:"border-box",zIndex:"2"},n="page"==t.horizontalAnchor,a="page"==t.verticalAnchor;return t.width&&(r.width=t.width),t.height&&("exact"==t.heightRule?(r.height=t.height,r.overflow="hidden"):r.minHeight=t.height),t.horizontalPosition?r.left=n?`calc(${t.horizontalPosition} - var(--docx-page-padding-left, 0pt))`:t.horizontalPosition:"center"==t.horizontalAlignment?(r.left="50%",r.transform="translateX(-50%)"):"right"==t.horizontalAlignment||"outside"==t.horizontalAlignment?r.right="0":"left"!=t.horizontalAlignment&&"inside"!=t.horizontalAlignment||(r.left="0"),t.verticalPosition?r.top=a?`calc(${t.verticalPosition} - var(--docx-page-padding-top, 0pt))`:t.verticalPosition:"center"==t.verticalAlignment?(r.top="50%",r.transform=`${r.transform??""} translateY(-50%)`.trim()):"bottom"==t.verticalAlignment||"outside"==t.verticalAlignment?r.bottom="0":"top"!=t.verticalAlignment&&"inside"!=t.verticalAlignment||(r.top="0"),r}tryRenderComplexField(e,t){if(!this.hasFieldChar(e[t],"begin"))return null;let r=0,n=!1,a="";const s=[];for(let o=t;o<e.length;o++){const t=e[o],i=t.type==We.Run?{...t,fieldRun:!1,children:[]}:null;if(t.type==We.Run){for(const e of t.children??[]){if(e.type==We.ComplexField){const t=e;if("begin"==t.charType)r++;else if("separate"==t.charType&&1==r)n=!0;else if("end"==t.charType&&(r--,0==r))return i.children.length>0&&s.push(i),{node:this.renderSimpleField({type:We.SimpleField,instruction:a,lock:!1,dirty:!1,children:s}),nextIndex:o+1};continue}n||1!=r||e.type!=We.Instruction?n&&r>0&&i.children.push(e):a+=e.text??""}i.children.length>0&&s.push(i)}else n&&r>0&&s.push(t)}return null}hasFieldChar(e,t){return e.type==We.Run&&e.children?.some(e=>e.type==We.ComplexField&&e.charType==t)}renderContainer(e,t){return this.h({tagName:t,children:this.renderElements(e.children)})}renderContainerNS(e,t,r,n){return this.h({ns:t,tagName:r,children:this.renderElements(e.children),...n})}effectiveParagraphTabs(e,t){if(!e?.length)return t;if(!t?.length)return e;const r=[...t];for(const t of e){const e=this.parseCssLengthValue(t.position),n=r.findIndex(t=>this.parseCssLengthValue(t.position)==e);n>=0?r[n]=t:r.push(t)}return r.sort((e,t)=>(this.parseCssLengthValue(e.position)??0)-(this.parseCssLengthValue(t.position)??0))}countParagraphTabs(e){let t=0;const r=e=>{e.type!=We.Tab&&e.type!=We.PositionalTab||t++;for(const t of e.children??[])r(t)};return r(e),t}isLeaderTabStop(e){return!!e?.leader&&"none"!=e.leader&&"clear"!=e.style}resolveRenderedTabStop(e,t,r){if(!e?.length)return null;const n=e[Math.min(t,Math.max(e.length-1,0))],a=[...e].reverse().find(e=>this.isLeaderTabStop(e)),s=this.findStyle(this.currentParagraph?.styleName),o=this.isTocParagraphStyle(this.currentParagraph?.styleName,s),i=!!a&&!!(this.currentParagraph?.numbering??s?.paragraphProps?.numbering)&&o;return a?r<=1?o||i?a:n:t>=r-1?a:this.isLeaderTabStop(n)?e.slice(0,Math.min(t+1,e.length)).reverse().find(e=>!this.isLeaderTabStop(e)&&"clear"!=e.style)??e.find(e=>!this.isLeaderTabStop(e)&&"clear"!=e.style)??null:n:n}renderParagraph(e){const t=this.findStyle(e.styleName);e.tabs=this.effectiveParagraphTabs(e.tabs,t?.paragraphProps?.tabs);const r=this.currentParagraph,n=this.currentParagraphTabIndex,a=this.currentParagraphTabCount;this.currentParagraph=e,this.currentParagraphTabIndex=0,this.currentParagraphTabCount=this.countParagraphTabs(e);let s=this.renderElements(e.children);const o=this.uniformParagraphTextScale(e,t);if(null!=o&&1!=o){const r=this.effectiveParagraphCssValue(e,t,"text-indent")??"0pt",n="rtl"==this.effectiveParagraphCssValue(e,t,"direction"),a=this.h({tagName:"span",className:`${this.className}-text-scale`,style:{display:"block",font:"inherit",background:"none",border:"none",width:100/o+"%",transform:`scaleX(${o})`,transformOrigin:n?"right top":"left top",textIndent:`calc(${r} / ${o})`},children:s});a.dataset.docxTextScale=`${o}`,s=[a]}var i=this.toHTML(e,zs.html,"p",this.wrapTabLeaderChildren(s,!0));if(this.options.exposeDisplayTargets&&e.displayAddress){const t=this.currentPart??this.document.documentPart;i.setAttribute("data-office-target",`${t.path}#${e.displayAddress}`)}const l=this.effectiveParagraphCssValue(e,t,"--docx-snap-to-grid");/^(0|false|off)$/i.test(l??"")&&(i.style.letterSpacing="normal"),this.currentParagraph=r,this.currentParagraphTabIndex=n,this.currentParagraphTabCount=a;const c=e.numbering??t?.paragraphProps?.numbering;c&&i.classList.add(this.numberingClass(c.id,c.level));const h=t?.paragraphProps;(e.pageBreakBefore??h?.pageBreakBefore)&&(i.style.breakBefore="page",i.dataset.docxPageBreakBefore="true"),(e.keepLines??h?.keepLines)&&(i.style.breakInside="avoid",i.dataset.docxKeepLines="true"),(e.keepNext??h?.keepNext)&&(i.style.breakAfter="avoid",i.dataset.docxKeepNext="true"),(e.widowControl??h?.widowControl)&&(i.style.orphans="2",i.style.widows="2",i.dataset.docxWidowControl="true"),this.applyDocumentGridLinePitch(e,t,i);const d=e.tabs?.find(e=>this.isLeaderTabStop(e));return d&&(i.classList.add(`${this.className}-tab-leader-paragraph`),i.dataset.docxHasTabLeader="true",i.dataset.docxTabLeader=d.leader,i.dataset.docxTabAlign=d.style),this.isTocParagraphStyle(e.styleName,t)&&(i.classList.add(`${this.className}-toc-paragraph`),i.dataset.docxTocEntry="true"),this.hasParagraphRelativeAnchor(e)&&(i.style.position&&"static"!=i.style.position||(i.style.position="relative"),i.dataset.docxAnchorContext="paragraph"),e.props?.anchorId&&(i.id=e.props.anchorId,i.setAttribute("id",e.props.anchorId)),i}uniformParagraphTextScale(e,t){if(e.numbering||t?.paragraphProps?.numbering||e.frame||this.effectiveParagraphCssValue(e,t,"writing-mode"))return null;const r="--docx-text-scale",n=e.cssStyle?.[r]??this.styleValue(t,"span",r)??this.styleValue(t,"p",r)??"1";let a=null;const s=(e,t)=>{const n=e.cssStyle?.[r]??this.styleValue(this.findStyle(e.styleName),"span",r)??t;switch(e.type){case We.Text:case We.DeletedText:if(!e.text)return!0;const t=Number(n);return!(!Number.isFinite(t)||t<=0||t>6)&&((null==a||a==t)&&(a=t,!0));case We.Run:case We.Hyperlink:case We.SmartTag:case We.Inserted:case We.Deleted:return(e.children??[]).every(e=>s(e,n));case We.BookmarkStart:case We.BookmarkEnd:case We.CommentRangeStart:case We.CommentRangeEnd:case We.NoBreakHyphen:case We.SoftHyphen:return!0;case We.Break:return["line","textWrapping"].includes(e.break);default:return!1}};return(e.children??[]).every(e=>s(e,n))?a:null}hasParagraphRelativeAnchor(e){return(e.children??[]).some(e=>(e.type==We.Drawing||e.type==We.VmlElement)&&"absolute"==e.cssStyle?.position||this.hasParagraphRelativeAnchor(e))}renderAnchoredElement(e,t){if(t.dataset.docxDrawing="true","absolute"!=e.cssStyle?.position||!e.props?.anchorPosition)return t;const r=e.props.anchorPosition,n={...r,horizontal:{...r.horizontal,offset:r.horizontal.offset??(t.style.left||"0pt")},vertical:{...r.vertical,offset:r.vertical.offset??(t.style.top||"0pt")}},a=`${this.anchorLayouts.size}`;this.anchorLayouts.set(a,n),t.dataset.docxAnchorId=a,t.dataset.docxLayoutInCell=`${!1!==r.layoutInCell}`;const s=e=>/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)$/.test(e)?`${e}pt`:e;t.style.left=`calc(${s(n.horizontal.offset)} + var(--docx-anchor-origin-x, 0px))`,t.style.top=`calc(${s(n.vertical.offset)} + var(--docx-anchor-origin-y, 0px))`;const o=["top","bottom"].map(e=>{const t=this.h({tagName:"span",style:{display:"inline-block",width:"0px",height:"0px",padding:"0px",border:"0px",verticalAlign:e}});return t.dataset.docxAnchorLine=e,t}),i=this.h({tagName:"span",children:o});i.dataset.docxAnchorMarker="true",i.setAttribute("aria-hidden","true");const l=this.h({tagName:"span",children:[i,t]});return l.dataset.docxDrawing="true",l}refreshAnchors(e){!function(e,t,r=()=>!0){const n=e.ownerDocument?.defaultView;if(!n||"function"!=typeof e.querySelectorAll)return;const a=Array.from(e.querySelectorAll("section"));e.matches?.("section")&&a.unshift(e);for(const e of a){if(!e.classList.contains(t)||!r(e))continue;const a=n.getComputedStyle(e),s=fs(a.width)+("border-box"===a.boxSizing?0:fs(a.paddingLeft)+fs(a.paddingRight)+fs(a.borderLeftWidth)+fs(a.borderRightWidth)),o=e.getBoundingClientRect(),i=s>0?o.width/s:0;if(Number.isFinite(i)&&!(i<=0)){for(const t of Array.from(e.querySelectorAll('[data-docx-anchor-context="paragraph"]'))){if(!r(t))continue;const e=t.getBoundingClientRect();t.style.setProperty("--docx-paragraph-page-offset-top",(e.top-o.top)/i+"px"),t.style.setProperty("--docx-paragraph-page-offset-left",(e.left-o.left)/i+"px")}gs(e,r),vs(e,r),Cs(e,i,r),Ps(e,r)}}}(e,this.className,e=>this.ownsLayoutElement(e));for(const t of Array.from(e.querySelectorAll("[data-docx-anchor-id]"))){if(!this.ownsLayoutElement(t))continue;const e=this.anchorLayouts.get(t.dataset.docxAnchorId);e&&ms(t,e,this.className)}}ownsLayoutElement(e){for(let t=e;t;t=t.parentElement){const e=uo.get(t);if(e)return e==this}return!0}async prepareLayout(e,t=s(e)){if(e.isConnected&&t.isCurrent()&&(this.layoutGenerations.has(t.signal)||(this.layoutGenerations.set(t.signal,t),t.signal.addEventListener("abort",()=>this.layoutGenerations.delete(t.signal),{once:!0})),await this.yieldToBrowser(),e.isConnected&&t.isCurrent())){if(this.commentLayer&&(uo.set(this.commentLayer.root,this),!this.commentLayer.root.parentElement)){const t=[e,...Array.from(e.querySelectorAll("[data-docx-layout-root]"))].find(e=>uo.get(e)===this&&e.classList.contains(`${this.className}-wrapper`));t||(this.commentLayer.root.style.position="fixed"),(t??e).appendChild(this.commentLayer.root)}this.refreshTabStops(e),this.refreshAnchors(e),await(this.commentLayer?.bind(e,t))}}disposeLayout(){for(const e of Array.from(this.layoutGenerations.values()))e.cancel();this.layoutGenerations.clear(),this.commentLayer?.root.remove();const e=globalThis.CSS?.highlights;e&&this.commentHighlight&&e.get(`${this.className}-comments`)===this.commentHighlight&&e.delete(`${this.className}-comments`)}renderHyperlink(e){const t=this.renderHyperlinkChildren(e.children),r=this.h(this.toH(e,zs.html,"a",this.wrapTabLeaderChildren(t)));let n="",a=!1;if(e.id){const t=this.currentPart??this.document.documentPart,r=t?.rels?.find(t=>t.id==e.id&&"External"===t.targetMode);n=r?.target??n,a=!!n}return!n&&e.anchor&&(n=`#${e.anchor}`),this.applyHyperlinkTarget(r,n,a),r}renderHyperlinkChildren(e){this.hyperlinkDepth++;try{return this.renderElements(e)}finally{this.hyperlinkDepth--}}applyHyperlinkTarget(e,t,r){const n=function(e){const t=String(e??"").trim().replace(oo,"");return t?t.startsWith("#")?t:t.startsWith("//")||t.includes("\\")||io.test(t)&&!lo.test(t)?null:t:null}(t);if(n)return r&&"block"==this.options.externalLinkPolicy?(e.setAttribute("data-docx-external-href",n),void e.setAttribute("aria-disabled","true")):void e.setAttribute("href",n)}wrapTabLeaderChildren(e,t=!1){if(!e?.length||e.some(e=>this.hasCssClass(e,`${this.className}-tab-leader-title`)))return e;let r=-1;for(let t=e.length-1;t>=0;t--)if(this.isTabLeaderNode(e[t])){r=t;break}if(r<0)return this.wrapLiteralLeaderChildren(e,t)??e;const n=e.slice(0,r),a=e[r],s=e.slice(r+1);this.addCssClass(a,`${this.className}-tab-leader-fill`);const o=[this.h({tagName:"span",className:`${this.className}-tab-leader-title`,children:n}),a,this.h({tagName:"span",className:`${this.className}-tab-leader-page`,children:s})];return t?[this.h({tagName:"span",className:`${this.className}-tab-leader-line`,children:o})]:o}wrapLiteralLeaderChildren(e,t=!1){const r=this.findLastTextualNodeIndex(e);if(r<0)return null;const n=e[r],a=this.nodeTextContent(n),s=/^(.*?)([.\u2026\u00b7\u2022\u2027\u2219\u22c5]{6,})(\s*[0-90-9IVXLCDMivxlcdm]+)\s*$/.exec(a);if(!s)return null;const[,o,i,l]=s,c=e.slice(0,r),h=e.slice(r+1),d=[...c];o&&d.push(this.cloneTextNodeWithText(n,o));const u=this.h({tagName:"span",className:`${this.tabStopClass()} ${this.className}-tab-leader-fill`,children:[" "],style:this.nodeStyleObject(n)});u.dataset.docxTab="true",u.dataset.docxTabLeader=this.literalLeaderKind(i),u.dataset.docxLiteralLeader="true";const m=[this.h({tagName:"span",className:`${this.className}-tab-leader-title`,children:d}),u,this.h({tagName:"span",className:`${this.className}-tab-leader-page`,children:[this.cloneTextNodeWithText(n,l.trim()),...h]})];return t?[this.h({tagName:"span",className:`${this.className}-tab-leader-line ${this.className}-literal-leader-line`,children:m})]:m}findLastTextualNodeIndex(e){for(let t=e.length-1;t>=0;t--)if(this.nodeTextContent(e[t]).trim())return t;return-1}literalLeaderKind(e){return/^[.\u2026]+$/.test(e)?"dot":"middleDot"}cloneTextNodeWithText(e,t){return this.nodeElementName(e)?this.h({tagName:this.nodeElementName(e),className:this.nodeClassName(e),style:this.nodeStyleObject(e),children:[t]}):this.h({tagName:"span",children:[t]})}nodeElementName(e){const t=e,r=t?.tagName??t?.nodeName;return r&&!String(r).startsWith("#")?String(r).toLowerCase():""}nodeStyleObject(e){const t=e?.style,r={};if(!t)return r;if("number"==typeof t.length&&"function"==typeof t.getPropertyValue)for(let e=0;e<t.length;e++){const n=t.item(e),a=t.getPropertyValue(n);a&&(r[n]=a)}else for(const[e,n]of Object.entries(t))null!=n&&""!==n&&(r[e]=String(n));return r}nodeTextContent(e){const t=e;return t?"string"==typeof t.textContent?t.textContent:"string"==typeof t.text?t.text:Array.from(t.children??t.childNodes??[]).map(e=>this.nodeTextContent(e)).join(""):""}isTabLeaderNode(e){const t=this.nodeDatasetValue(e,"docxTabLeader");return this.hasCssClass(e,this.tabStopClass())&&!!t&&"none"!=t}nodeDatasetValue(e,t){const r=e,n=r?.dataset?.[t];if(null!=n)return String(n);const a="data-"+t.replace(/[A-Z]/g,e=>"-"+e.toLowerCase());return"function"==typeof r?.getAttribute?r.getAttribute(a):r?.attributes?.[a]}hasCssClass(e,t){const r=e;if(!r||!t)return!1;if("function"==typeof r.classList?.contains)return r.classList.contains(t);return this.nodeClassName(r).split(/\s+/).includes(t)}addCssClass(e,t){const r=e;if(!r||!t||this.hasCssClass(e,t))return;if("function"==typeof r.classList?.add)return void r.classList.add(t);const n=Vs(this.nodeClassName(r),t);"function"==typeof r.setAttribute?r.setAttribute("class",n):(r.attributes??(r.attributes={}),r.attributes.class=n)}nodeClassName(e){return"string"==typeof e?.className?e.className:"string"==typeof e?.className?.baseVal?e.className.baseVal:"function"==typeof e?.getAttribute?e.getAttribute("class")??"":e?.attributes?.class??""}renderSmartTag(e){return this.renderContainer(e,"span")}renderCommentRangeStart(e){if(!this.options.renderComments)return null;const t="undefined"==typeof Range?null:new Range;t&&this.commentHighlight?.add(t);const r=this.h({tagName:"#comment",children:["start of DOCX comment"]});return t&&(this.later(()=>t.setStart(r,0)),this.commentMap[e.id]=t),r}renderCommentRangeEnd(e){if(!this.options.renderComments)return null;const t=this.commentMap[e.id],r=this.document.commentsPart?.commentMap[e.id],n=this.h({tagName:"span",className:`${this.className}-comment-anchor`});return n.dataset.docxChangeKind="comment",n.dataset.docxChangeId=`${e.id}`,n.setAttribute("aria-hidden","true"),n.style.setProperty("--docx-review-color",ao(r?.author)),r?.author&&(n.dataset.docxChangeAuthor=r.author),r?.date&&(n.dataset.docxChangeDate=r.date),this.later(()=>t?.setEnd(n,0)),n}renderCommentReference(e){if(!this.options.renderComments||this.renderingComment)return null;const t=this.document.commentsPart?.commentMap[e.id];if(!t)return null;this.commentLayer||(this.commentLayer=new rs(this.className,()=>this.h({tagName:"div",className:`${this.className} ${this.className}-comment-layer`}),e=>{this.refreshTabStops(e),this.refreshAnchors(e)}));const r=`${t.id}`,n=this.h({tagName:"span",className:`${this.className}-comment-ref`,children:["💬"]});n.dataset.docxChangeKind="comment",n.dataset.docxChangeId=r,n.style.setProperty("--docx-review-color",ao(t.author)),t.author&&(n.dataset.docxChangeAuthor=t.author),t.date&&(n.dataset.docxChangeDate=t.date),this.hyperlinkDepth||n.setAttribute("tabindex","0"),n.setAttribute("role","note"),n.setAttribute("aria-label",t.author?`Comment by ${t.author}`:"Comment"),n.setAttribute("aria-expanded","false");let a=this.commentPresentations.get(r);if(!a){const e=`${this.className}-comment-${++po.nextCommentId}`,s=this.h({tagName:"summary",children:["💬"]});s.setAttribute("aria-label",t.author?`Comment by ${t.author}`:"Comment");const o=t.date?new Date(t.date):null,i=this.h({tagName:"article",children:this.renderCommentContent(t)});i.dataset.docxCommentStory="true";const l=this.h({tagName:"div",className:`${this.className}-comment-body`,children:[this.h({tagName:"div",className:`${this.className}-comment-author`,children:[t.author??""]}),this.h({tagName:"div",className:`${this.className}-comment-date`,children:[o&&Number.isFinite(o.getTime())?o.toLocaleString():t.date??""]}),i]});l.setAttribute("id",e),l.setAttribute("role","note");const c=this.h({tagName:"details",className:`${this.className}-comment-popover`,children:[s,l]});c.dataset.docxCommentPopup=e,Object.assign(c.dataset,{docxChangeKind:"comment",docxChangeId:r}),t.author&&(c.dataset.docxChangeAuthor=t.author),t.date&&(c.dataset.docxChangeDate=t.date),a={key:e,descriptionId:e,reference:n,references:[],popup:c,summary:s,body:l,revision:0,open:!1},this.commentLayer.add(a),this.commentPresentations.set(r,a)}return n.dataset.docxCommentReference=a.key,a.references.push(n),n.setAttribute("aria-describedby",a.descriptionId),n.setAttribute("aria-controls",a.descriptionId),n}cloneRenderData(e,t=new Map){if(!e||"object"!=typeof e)return e;if(t.has(e))return t.get(e);const r=Array.isArray(e)?[]:Object.create(Object.getPrototypeOf(e));t.set(e,r);for(const n of Object.keys(e))"parent"!==n&&Object.defineProperty(r,n,{value:this.cloneRenderData(e[n],t),writable:!0,enumerable:!0,configurable:!0});return r}renderCommentContent(e){const t={part:this.currentPart,paragraph:this.currentParagraph,index:this.currentParagraphTabIndex,count:this.currentParagraphTabCount,rendering:this.renderingComment};this.currentPart=this.document.commentsPart,this.currentParagraph=null,this.renderingComment=!0;try{const t=this.cloneRenderData(e);return this.processElement(t),this.renderElements(t.children)??[]}finally{this.currentPart=t.part,this.currentParagraph=t.paragraph,this.currentParagraphTabIndex=t.index,this.currentParagraphTabCount=t.count,this.renderingComment=t.rendering}}renderAltChunk(e){if(!this.options.renderAltChunks)return null;var t=this.h({tagName:"iframe",sandbox:"",referrerPolicy:"no-referrer",loading:"lazy"});return this.tasks.push(this.document.loadAltChunk(e.id,this.currentPart).then(e=>{X(t,e)})),t}renderDrawing(e){e.cssStyle?.["shape-outside"]&&(e.className=Vs(e.className,`${this.className}-float-wrap`));var t=this.toHTML(e,zs.html,this.currentParagraph?"span":"div");(e.cssStyle?.float||"absolute"==e.cssStyle?.position)&&(t.dataset.docxFloat="true");const r=e.props?.anchorPosition;r?.vertical?.relative&&(t.dataset.docxAnchorVertical=r.vertical.relative),r?.horizontal?.relative&&(t.dataset.docxAnchorHorizontal=r.horizontal.relative),t.style.display||(t.style.display="inline-block"),t.style.position||(t.style.position="relative"),t.style.textIndent="0px";for(const e of Array.from(t.children??[]))e.style.verticalAlign="top";return t}renderImage(e){let t=this.toHTML(e,zs.html,"img",[]),r=e.cssStyle?.transform;if(e.alt&&(t.alt=e.alt),e.title&&(t.title=e.title),e.srcRect&&e.srcRect.some(e=>0!=e)){var[n,a,s,o]=e.srcRect;r=`${r??""} scale(${1/(1-n-s)}, ${1/(1-a-o)})`,t.style.clipPath=`inset(${(100*a).toFixed(2)}% ${(100*s).toFixed(2)}% ${(100*o).toFixed(2)}% ${(100*n).toFixed(2)}%)`,t.style.transformOrigin="top left"}return e.rotation&&(r=`rotate(${e.rotation}deg) ${r??""}`),t.style.transform=r?.trim(),this.document&&e.src&&this.tasks.push(this.document.loadDocumentImage(e.src,this.currentPart,this.options.externalResourcePolicy).then(e=>{e&&t.setAttribute("src",e)})),t}renderShape(e){if(e.props?.dmlSvg)return this.renderDmlSvgShape(e);const t=e.props?.dmlTextBox?[this.renderDmlTextBox(e)]:null,r=this.toHTML(e,zs.html,this.currentParagraph?"span":"div",t);return r.style.display||(r.style.display="inline-block"),e.title&&(r.title=e.title),e.alt&&(r.setAttribute("role","img"),r.setAttribute("aria-label",e.alt)),r}renderDmlTextBox(e){const t=this.currentParagraph;this.currentParagraph=null;const r=this.renderElements(e.children);this.currentParagraph=t;const n=this.h({tagName:"div",className:`${this.className}-shape-textbox`,style:{"box-sizing":"border-box",display:"flex","flex-direction":"column","justify-content":e.props?.textVerticalAlign??"flex-start","align-items":"stretch",width:"100%",height:"100%",overflow:"hidden",...e.props?.textInsets??{}},children:r});n.dataset.docxShapeTextbox="true",n.setAttribute("xmlns",zs.html);const a=this.createSvgElement("svg",{style:{width:"100%",height:"100%",display:"block",overflow:"hidden"}});a.setAttribute("focusable","false");const s=this.createSvgElement("foreignObject");return s.setAttribute("width","100%"),s.setAttribute("height","100%"),s.appendChild(n),a.appendChild(s),a}renderDmlSvgShape(e){const t=this.createSvgElement("svg",{style:e.cssStyle}),r=e.props??{};t.setAttribute("viewBox",r.viewBox??"0 0 1 1"),t.setAttribute("preserveAspectRatio","none"),t.setAttribute("focusable","false"),e.title&&t.appendChild(this.createSvgElement("title",null,[e.title])),e.alt&&(t.setAttribute("role","img"),t.setAttribute("aria-label",e.alt));const n=this.createSvgElement("path");return n.setAttribute("d",r.pathD??""),n.setAttribute("fill",this.darkenColorAttr(r.fill??"none")),n.setAttribute("stroke",this.darkenColorAttr(r.stroke??"none")),n.setAttribute("stroke-width",r.strokeWidth??"0"),n.setAttribute("stroke-linejoin","round"),n.setAttribute("stroke-linecap","round"),r.strokeDasharray&&n.setAttribute("stroke-dasharray",r.strokeDasharray),t.appendChild(n),t}renderChart(e){var t;const r=this.toHTML(e,zs.html,this.currentParagraph?"span":"div",[]);if((t=r.style).display||(t.display="block"),r.className=Vs(r.className,`${this.className}-chart`),e.title&&(r.title=e.title),e.alt&&(r.setAttribute("role","img"),r.setAttribute("aria-label",e.alt)),r.appendChild(this.renderGraphicLoading("Chart")),e.id){const t=this.currentPart;this.tasks.push(this.document.loadRelationshipXml(e.id,t).then(e=>{r.textContent="",r.appendChild(e?this.renderChartSvg(e):this.renderGraphicLoading("Chart"))}).catch(()=>{r.textContent="",r.appendChild(this.renderGraphicLoading("Chart"))}))}return r}renderSmartArt(e){var t;const r=this.toHTML(e,zs.html,this.currentParagraph?"span":"div",[]);if((t=r.style).display||(t.display="block"),r.className=Vs(r.className,`${this.className}-smartart`),e.title&&(r.title=e.title),e.alt&&(r.setAttribute("role","img"),r.setAttribute("aria-label",e.alt)),r.appendChild(this.renderGraphicLoading("SmartArt")),e.dataId){const t=this.currentPart;this.tasks.push(this.document.loadRelationshipXml(e.dataId,t).then(e=>{r.textContent="",r.appendChild(e?this.renderSmartArtSvg(e):this.renderGraphicLoading("SmartArt"))}).catch(()=>{r.textContent="",r.appendChild(this.renderGraphicLoading("SmartArt"))}))}return r}renderInk(e){var t;const r=this.toHTML(e,zs.html,this.currentParagraph?"span":"div",[]);if((t=r.style).display||(t.display="block"),r.className=Vs(r.className,`${this.className}-ink`),e.title&&(r.title=e.title),e.alt&&(r.setAttribute("role","img"),r.setAttribute("aria-label",e.alt)),r.appendChild(this.renderGraphicLoading("Ink")),e.id){const t=this.currentPart;this.tasks.push(this.document.loadRelationshipText(e.id,t).then(n=>{if(r.textContent="",n?.trim().startsWith("<"))try{return void r.appendChild(this.renderInkSvg(J(n,!0)))}catch{}return this.document.loadRelationshipBlobUrl(e.id,t,this.options.externalResourcePolicy).then(t=>{r.textContent="",t?r.appendChild(this.h({tagName:"img",src:t,alt:e.alt??"Ink",style:{width:"100%",height:"100%",objectFit:"contain"}})):r.appendChild(this.renderGraphicLoading("Ink"))})}).catch(()=>{r.textContent="",r.appendChild(this.renderGraphicLoading("Ink"))}))}return r}renderGraphicLoading(e){return this.h({tagName:"span",style:{display:"inline-flex","align-items":"center","justify-content":"center",width:"100%",height:"100%","min-width":"2in","min-height":"1in",border:"1px solid currentColor"},children:[`[${e}]`]})}renderChartSvg(e){const t=e.documentElement,r=this.detectChartType(t),n=this.parseChartSeries(t,r),a=this.createSvgElement("svg",{style:{width:"100%",height:"100%",display:"block"}});a.setAttribute("viewBox","0 0 640 360"),a.setAttribute("preserveAspectRatio","xMidYMid meet");const s=this.extractChartTitle(t);if(s){const e=this.svgText(s,320,24,"middle","14px","bold");e.setAttribute("data-docx-chart-title","true"),a.appendChild(e)}if(!n.length||n.every(e=>!e.values.length))return a.appendChild(this.svgText("Chart",320,180,"middle","18px")),a;const o="chart"==t.localName?t:this.chartChild(t,"chart"),i=this.chartChild(o,"plotArea"),l=this.chartChildren(i).filter(e=>e.localName.endsWith("Chart")),c=l.length>1&&l.every(e=>{const r=this.resolveChartAxes(t,e.localName,e),n=this.chartChild(e,"barDir")?.getAttribute("val"),a=this.chartChild(e,"grouping")?.getAttribute("val");return r?.category&&r.value&&["barChart","lineChart"].includes(e.localName)&&(!n||"col"==n)&&!["stacked","percentStacked"].includes(a)});if(c)return this.drawCombinedChartAxes(a,t,l),a;const h=this.resolveChartAxes(t,r);return"lineChart"==r&&"dateAx"==h?.category?.localName?this.drawDateLineChart(a,n,h,{seriesNodes:this.chartChildren(this.chartChild(i,r),"ser")}):"pieChart"==r||"doughnutChart"==r?this.drawPieChart(a,n[0]):["lineChart","scatterChart","areaChart"].includes(r)?this.drawLineChart(a,n,"areaChart"==r):this.drawBarChart(a,n),this.drawChartAxisTitles(a,h),a}chartChildren(e,t){return Array.from(e?.childNodes??[]).filter(e=>1==e.nodeType&&co.includes(e.namespaceURI)&&(!t||e.localName==t))}chartChild(e,t){return this.chartChildren(e,t)[0]??null}chartDescendant(e,t){return e?Array.from(e.getElementsByTagName("*")).find(e=>e.localName==t&&co.includes(e.namespaceURI))??null:null}detectChartType(e){return["barChart","bar3DChart","lineChart","pieChart","doughnutChart","areaChart","scatterChart","ofPieChart","radarChart"].find(t=>e.localName==t&&co.includes(e.namespaceURI)||this.chartDescendant(e,t))??"barChart"}parseChartSeries(e,t){const r=e.localName==t&&co.includes(e.namespaceURI)?e:this.chartDescendant(e,t);return this.chartChildren(r,"ser").map((e,t)=>{const r=this.chartCacheValues(this.chartChild(e,"cat")??this.chartChild(e,"xVal")),n=this.chartCacheValues(this.chartChild(e,"val")??this.chartChild(e,"yVal")).map(e=>e.trim()&&Number.isFinite(Number(e))?Number(e):NaN);return{name:this.chartText(this.chartChild(e,"tx"))||`Series ${t+1}`,categories:r.length?r:n.map((e,t)=>`${t+1}`),values:n}})}chartCacheValues(e){if(!e)return[];const t=["strCache","numCache","strLit","numLit"].map(t=>this.chartDescendant(e,t)).find(Boolean)??e,r=this.chartChild(t,"ptCount")?.getAttribute("val")??"";let n=/^\d+$/.test(r)?Math.min(Number(r),2e4):0;const a=[];for(const e of this.chartChildren(t,"pt")){const t=e.getAttribute("idx")??"";if(!/^\d+$/.test(t))continue;const r=Number(t);!Number.isSafeInteger(r)||r>=2e4||(n=Math.max(n,r+1),a.push({index:r,value:this.chartChild(e,"v")?.textContent??""}))}const s=Array(n).fill(""),o=new Set;for(const e of a)o.has(e.index)||(s[e.index]=e.value),o.add(e.index);return s}chartText(e){if(!e)return"";const t=this.chartCacheValues(e);if(t.length)return t.join(" ");return Array.from(e.getElementsByTagName("*")).filter(e=>"t"==e.localName&&ho.includes(e.namespaceURI)).map(e=>e.textContent).filter(Boolean).join(" ").trim()||this.chartDescendant(e,"v")?.textContent?.trim()||""}chartNumber(e,t){const r=this.chartChild(e,t)?.getAttribute("val");return null!=r&&r.trim()&&Number.isFinite(Number(r))?Number(r):null}chartBoolean(e){return!!e&&!["0","false","off"].includes((e.getAttribute("val")??"1").toLowerCase())}chartTitleText(e){const t=this.chartChild(this.chartChild(e,"tx"),"rich");return t?Array.from(t.childNodes).filter(e=>1==e.nodeType&&"p"==e.localName&&ho.includes(e.namespaceURI)).map(e=>Array.from(e.getElementsByTagNameNS(e.namespaceURI,"t")).map(e=>e.textContent??"").join("")).join("\n"):this.chartText(e)}extractChartTitle(e){const t="chart"==e.localName?e:this.chartChild(e,"chart");return this.chartTitleText(this.chartChild(t,"title"))}resolveChartAxes(e,t,r){const n="chart"==e.localName?e:this.chartChild(e,"chart"),a=this.chartChild(n,"plotArea"),s=r??this.chartChild(a,t);if(!s)return null;const o=this.chartChildren(s,"axId").map(e=>e.getAttribute("val")),i=this.chartChildren(a).filter(e=>/^(catAx|dateAx|valAx)$/.test(e.localName)&&o.includes(this.chartChild(e,"axId")?.getAttribute("val"))),l=i.find(e=>"dateAx"==e.localName)??i.find(e=>"catAx"==e.localName)??null,c=i.find(e=>"valAx"==e.localName&&(!l||this.chartChild(l,"crossAx")?.getAttribute("val")==this.chartChild(e,"axId")?.getAttribute("val")))??i.find(e=>"valAx"==e.localName)??null;return{category:l,value:c,date1904:this.chartBoolean(this.chartChild(e,"date1904"))}}chartValueBounds(e){let t=0,r=0;for(const n of e)for(const e of n.values)Number.isFinite(e)&&(t=Math.min(t,e),r=Math.max(r,e));return{min:t,max:t==r?t+1:r}}drawCategoryLabels(e,t,r,n){const a=t.map((e,t)=>({text:e,index:t})).filter(e=>e.text.trim());if(!a.length)return;const s=a[a.length-1],o=r(s.index)-this.chartLegendTextWidth(s.text)/2;let i=-1/0;a.forEach((t,s)=>{const l=r(t.index),c=this.chartLegendTextWidth(t.text)/2;if(s>0&&s<a.length-1&&(l-c<i+3||l+c+3>o))return;const h=this.svgText(t.text,l,n,"middle","10px");h.setAttribute("data-docx-chart-category-index",`${t.index}`),e.appendChild(h),i=l+c})}drawBarChart(e,t){const r=t[0]?.categories??[],n=Math.max(1,r.length,...t.map(e=>e.values.length)),a=this.chartValueBounds(t),s=e=>300-(e-a.min)/(a.max-a.min)*230,o=s(0),i=540/n,l=i/Math.max(t.length+1,2);e.appendChild(this.svgLine(60,o,600,o)),e.appendChild(this.svgLine(60,300,60,70)),t.forEach((t,r)=>t.values.forEach((t,n)=>{if(!Number.isFinite(t))return;const a=s(t),c=this.createSvgElement("rect");c.setAttribute("x",""+(60+n*i+r*l+.2*l)),c.setAttribute("y",`${Math.min(o,a)}`),c.setAttribute("width",""+.8*l),c.setAttribute("height",`${Math.abs(a-o)}`),c.setAttribute("data-docx-chart-point-index",`${n}`),c.style.fill=this.chartColor(r),e.appendChild(c)})),this.drawCategoryLabels(e,r,e=>60+(e+.5)*i,318),this.drawBottomLegend(e,t.map(e=>e.name),335)}drawLineChart(e,t,r=!1){const n=this.chartValueBounds(t),a=e=>300-(e-n.min)/(n.max-n.min)*230,s=a(0),o=Math.max(1,...t.map(e=>Math.max(e.values.length,e.categories.length))),i=540/Math.max(o-1,1);e.appendChild(this.svgLine(60,s,600,s)),e.appendChild(this.svgLine(60,300,60,70)),t.forEach((t,n)=>{let o=[];const l=()=>{if(!o.length)return;const t=o.map((e,t)=>`${t?"L":"M"}${e[0]},${e[1]}`).join(" ");if(r&&o.length>1){const r=this.createSvgElement("path");r.setAttribute("d",`${t} L${o[o.length-1][0]},${s} L${o[0][0]},${s} Z`),r.style.fill=this.chartColor(n),r.style.opacity="0.25",e.appendChild(r)}const a=this.createSvgElement("path");a.setAttribute("d",t),a.style.stroke=this.chartColor(n),a.style.strokeWidth="2",a.style.fill="none",e.appendChild(a),o=[]};t.values.forEach((t,r)=>{if(!Number.isFinite(t))return void l();const s=60+r*i,c=a(t);o.push([s,c]);const h=this.createSvgElement("circle");h.setAttribute("cx",`${s}`),h.setAttribute("cy",`${c}`),h.setAttribute("r","3"),h.setAttribute("data-docx-chart-point-index",`${r}`),h.style.fill=this.chartColor(n),e.appendChild(h)}),l()}),this.drawCategoryLabels(e,t[0]?.categories??[],e=>60+e*i,318),this.drawBottomLegend(e,t.map(e=>e.name),335)}drawPieChart(e,t){const r=t.values.reduce((e,t)=>e+(Number.isFinite(t)?Math.max(0,t):0),0)||1;let n=-90;t.values.forEach((a,s)=>{if(!Number.isFinite(a)||a<0)return;const o=a/r*360,i=this.createSvgElement(360==o?"circle":"path");360==o?(i.setAttribute("cx","300"),i.setAttribute("cy","180"),i.setAttribute("r","110")):i.setAttribute("d",this.pieSlicePath(300,180,110,n,n+o)),i.setAttribute("data-docx-chart-point-index",`${s}`),i.style.fill=this.chartColor(s),e.appendChild(i),this.drawLegend(e,t.categories[s]||`${s+1}`,s,450,90+22*s),n+=o})}drawCombinedChartAxes(e,t,r){let n=0;const a=[];for(const s of r){const r=this.resolveChartAxes(t,s.localName,s),o=this.parseChartSeries(s,s.localName);if(!r?.category||!r.value||!o.length)continue;const i=this.createSvgElement("g");i.setAttribute("data-docx-chart-axis-group",s.localName),i.setAttribute("data-docx-chart-value-axis-id",this.chartChild(r.value,"axId")?.getAttribute("val")??""),e.appendChild(i),this.drawDateLineChart(i,o,r,{type:s.localName,group:s,colorOffset:n,noLegend:!0,seriesNodes:this.chartChildren(s,"ser")}),this.drawChartAxisTitles(e,r),n+=o.length,a.push(...o.map(e=>e.name))}this.drawBottomLegend(e,a,335),this.syncChartAxisLegend(e)}drawDateLineChart(e,t,r,n={}){const a=r.category,s=r.value,o="dateAx"!=a?.localName,i=t.map(e=>e.categories.map(e=>e.trim()&&Number.isFinite(Number(e))?Number(e):NaN)),l=i.flat().filter(Number.isFinite);if(!o&&!l.length)return void this.drawLineChart(e,t);const c=t.reduce((e,t)=>Math.max(e,t.values.length,t.categories.length),1),h=this.chartChild(a,"scaling"),d=this.chartChild(s,"scaling"),u=o?0:this.chartNumber(h,"min")??l.reduce((e,t)=>Math.min(e,t),1/0);let m=o?c:this.chartNumber(h,"max")??l.reduce((e,t)=>Math.max(e,t),-1/0);m<=u&&(m=u+1);const p=this.chartValueBounds(t);let f=this.chartNumber(d,"min")??p.min,g=this.chartNumber(d,"max")??p.max;if(g<=f&&(f=p.min,g=p.max),!Number.isFinite(m-u)||!Number.isFinite(g-f))return;const b="maxMin"==this.chartChild(h,"orientation")?.getAttribute("val"),y="maxMin"==this.chartChild(d,"orientation")?.getAttribute("val"),x=e=>{const t=(e-u)/(m-u);return 60+540*(b?1-t:t)},w=e=>{const t=(e-f)/(g-f);return 300-230*(y?1-t:t)},v=(e,t)=>x(o?t+.5:e),k="r"==this.chartChild(s,"axPos")?.getAttribute("val"),C=this.chartBoolean(this.chartChild(a,"delete")),S=this.chartBoolean(this.chartChild(s,"delete")),N=this.chartChild(s,"crosses")?.getAttribute("val"),A=this.chartChild(a,"crosses")?.getAttribute("val"),P=Math.min(g,Math.max(f,this.chartNumber(s,"crossesAt")??("max"==N?g:"min"==N?f:0))),M=Math.min(m,Math.max(u,this.chartNumber(a,"crossesAt")??("max"==A?m:u)));if(C||e.appendChild(this.svgLine(60,w(P),600,w(P))),!S){const t=k?600:x(M);e.appendChild(this.svgLine(t,300,t,70))}e.setAttribute("data-docx-chart-x-range",`${u},${m}`),e.setAttribute("data-docx-chart-y-range",`${f},${g}`);const $=this.createSvgElement("svg");for(const[e,t]of Object.entries({x:60,y:70,width:540,height:230,viewBox:"60 70 540 230",overflow:"hidden"}))$.setAttribute(e,String(t));if($.setAttribute("data-docx-chart-date-plot","true"),e.appendChild($),t.forEach((e,r)=>{const a=n.seriesNodes?.[r],s=this.chartChild(a,"spPr"),l=(e,t)=>Array.from(e?.getElementsByTagName("*")??[]).find(e=>e.localName==t&&ho.includes(e.namespaceURI)),h=l(s,"ln"),d=l("barChart"==n.type?s:h,"srgbClr")?.getAttribute("val"),u=r+(n.colorOffset??0),m=/^[0-9a-f]{6}$/i.test(d??"")?`#${d}`:this.chartColor(u),p=h?.getAttribute("w"),b=p&&Number.isFinite(Number(p))?Math.max(0,Number(p)/9525):2,y="none"!=this.chartChild(this.chartChild(a,"marker"),"symbol")?.getAttribute("val");let x=[];const k=()=>{if(!x.length)return;const e=this.createSvgElement("path");e.setAttribute("d",x.map(([e,t],r)=>`${r?"L":"M"}${e},${t}`).join(" ")),e.style.stroke=m,e.style.strokeWidth=String(b),e.style.fill="none",$.appendChild(e),x=[]};e.values.forEach((e,a)=>{const s=i[r][a];if(!o&&!Number.isFinite(s)||!Number.isFinite(e))return void k();const l=v(s,a),h=w(e),d="barChart"==n.type;d||x.push([l,h]);const p=this.createSvgElement(d?"rect":"circle"),b={"data-docx-chart-point-index":a,"data-docx-chart-series-index":u,"data-docx-chart-date-value":s,"data-docx-chart-center-x":l,"data-docx-chart-center-y":h};if(d){const e=Math.max(0,Math.min(500,this.chartNumber(n.group,"gapWidth")??150)),a=540/c/(t.length+e/100),s=w(Math.min(g,Math.max(f,0)));Object.assign(b,{x:l-t.length*a/2+r*a,y:Math.min(h,s),width:a,height:Math.abs(s-h)})}else Object.assign(b,{cx:l,cy:h,r:y?3:0});for(const[e,t]of Object.entries(b))Number.isFinite(t)&&p.setAttribute(e,String(t));p.style.fill=m,$.appendChild(p)}),k()}),!C&&"none"!=this.chartChild(a,"tickLblPos")?.getAttribute("val")){const n=this.chartChild(a,"numFmt")?.getAttribute("formatCode")??(o?"General":"yyyy/m/d"),s=o?t[0].categories.map((e,t)=>({raw:e,value:Number(e),x:v(Number(e),t),index:t})):this.chartDateTicks(a,l,u,m,r.date1904).map(e=>({raw:String(e),value:e,x:x(e)}));s.sort((e,t)=>e.x-t.x);let i=-1/0,c=null;for(const t of s){const a=this.formatChartDateLabel(t.raw,n,r.date1904),s=this.chartLegendTextWidth(a)/2;if(a==c||t.x-s<i+4)continue;const l=this.svgText(a,t.x,318,"middle","10px");l.setAttribute("data-docx-chart-date-tick",Number.isFinite(t.value)?String(t.value):t.raw),o&&l.setAttribute("data-docx-chart-category-index",String(t.index)),e.appendChild(l),i=t.x+s,c=a}}if(!S&&"none"!=this.chartChild(s,"tickLblPos")?.getAttribute("val")){const t=this.chartNumber(s,"majorUnit"),r=null!=t&&t>0?t:(g-f)/5,n=Math.floor((g-f)/r+1e-8)+1;if(n>0&&n<=100)for(let t=0;t<n;t++){const n=Number((f+t*r).toPrecision(12)),a=this.chartAxisNumberLabel(n,this.chartChild(s,"numFmt")?.getAttribute("formatCode")),o=this.svgText(a,k?606:54,w(n)+3,k?"start":"end","10px");o.setAttribute("data-docx-chart-value-tick",String(n)),e.appendChild(o)}}n.noLegend||(this.drawBottomLegend(e,t.map(e=>e.name),335),this.syncChartAxisLegend(e))}drawChartAxisTitles(e,t){for(const r of[t?.category,t?.value]){if(!r||this.chartBoolean(this.chartChild(r,"delete")))continue;const t=this.chartChild(r,"title"),n=this.chartTitleText(t);if(!n)continue;const a=this.chartChild(r,"axPos")?.getAttribute("val")??("valAx"==r.localName?"l":"b"),s=this.chartChild(this.chartChild(t,"layout"),"manualLayout"),o=this.chartNumber(s,"x"),i=this.chartNumber(s,"y"),l=null!=o&&null!=i&&"edge"==this.chartChild(s,"xMode")?.getAttribute("val")&&"edge"==this.chartChild(s,"yMode")?.getAttribute("val"),c={b:[330,349],t:[330,50],l:[16,185],r:[625,185]},h=c[a]??c.b,d=l?640*o:h[0],u=l?360*i:h[1],m=this.svgText(n,d,u,l?"start":"middle","12px");m.setAttribute("data-docx-chart-axis-title",this.chartChild(r,"axId")?.getAttribute("val")??a),l?m.setAttribute("dominant-baseline","hanging"):"l"!=a&&"r"!=a||m.setAttribute("transform",`rotate(${"l"==a?-90:90} ${d} ${u})`),e.appendChild(m)}}syncChartAxisLegend(e){const t=new Map;for(const r of Array.from(e.querySelectorAll("[data-docx-chart-series-index]"))){const e=Number(r.getAttribute("data-docx-chart-series-index"));t.has(e)||t.set(e,r.style.fill)}e.querySelector("[data-docx-chart-legend]")?.querySelectorAll("rect").forEach((e,r)=>{t.has(r)&&(e.style.fill=t.get(r))})}chartAxisNumberLabel(e,t){const r=/^(0)(?:\.(0{1,10}))?(%)?$/.exec(t??"");return r?(e*(r[3]?100:1)).toFixed(r[2]?.length??0)+(r[3]?"%":""):String(e)}chartDateTicks(e,t,r,n,a){const s=this.chartNumber(e,"majorUnit"),o=this.chartChild(e,"majorTimeUnit")?.getAttribute("val")??"days";if(null!=s&&s>0)if("days"==o){const e=Math.floor((n-r)/s+1e-9)+1;if(e>0&&e<=1e3)return Array.from({length:e},(e,t)=>r+t*s)}else if(Number.isInteger(s)&&["months","years"].includes(o)){const e=this.formatChartDateLabel(String(r),"yyyy/mm/dd",a);if(/^\d{4}\/\d{2}\/\d{2}$/.test(e)){const[t,i,l]=e.split("/").map(Number),c=[];for(let e=0;e<1e3;e++){const h=new Date(Date.UTC(t,i-1+e*s*("years"==o?12:1),1)),d=new Date(Date.UTC(h.getUTCFullYear(),h.getUTCMonth()+1,0)).getUTCDate(),u=Date.UTC(h.getUTCFullYear(),h.getUTCMonth(),Math.min(l,d));let m=(u-Date.UTC(a?1904:1899,a?0:11,a?1:31))/864e5;if(!a&&u>=Date.UTC(1900,2,1)&&m++,m+=r-Math.floor(r),!Number.isFinite(m)||m>n+1e-9)break;m>=r-1e-9&&c.push(m)}if(c.length&&c.length<1e3)return c}}return[...new Set(t)].filter(e=>e>=r&&e<=n)}formatChartDateLabel(e,t,r=!1){if(!e.trim()||!Number.isFinite(Number(e)))return e;const n=Number(e),a=Math.floor(n);if(a<0||a>(r?2957003:2958465))return e;const s=Math.min(86399999,Math.round(864e5*(n-a))),o=new Date(Date.UTC(r?1904:1899,r?0:11,r?1:31)+864e5*(a-(!r&&a>60?1:0))+s),i=!r&&60==a,l=i?1900:o.getUTCFullYear(),c=i?2:o.getUTCMonth()+1,h=i?29:o.getUTCDate(),d=(e,t=2)=>String(e).padStart(t,"0"),u=["January","February","March","April","May","June","July","August","September","October","November","December"],m=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];let p="",f=!1;for(let e=0;e<(t??"").length;e++){const r=t[e];if("\\"==r&&e+1<t.length)p+=r+t[++e];else{if('"'==r&&(f=!f),";"==r&&!f)break;p+=r}}if(!p||f)return e;const g=p.match(/"[^"]*"|\\.|\[\$-[\w-]+\]|AM\/PM|A\/P|y+|m+|d+|h+|s+|./gi)??[];if(!g.some(e=>/^(y+|m+|d+|h+|s+)$/i.test(e)))return e;const b=g.some(e=>/^(AM\/PM|A\/P)$/i.test(e));let y="";for(let t=0;t<g.length;t++){const r=g[t],n=r.toLowerCase();if(r.startsWith('"')){y+=r.slice(1,-1);continue}if(r.startsWith("\\")){y+=r.slice(1);continue}if(/^\[\$-/i.test(r)){if(!/^\[\$-(409|en-us)\]$/i.test(r))return e;continue}const a=g.slice(0,t).reverse().find(e=>/^[ymdhs]+$/i.test(e)),s=g.slice(t+1).find(e=>/^[ymdhs]+$/i.test(e));if(/^y{1,4}$/.test(n))y+=n.length<=2?d(l%100):d(l,4);else if(/^m{1,5}$/.test(n)){y+=/^h+$/i.test(a??"")||/^s+$/i.test(s??"")?1==n.length?o.getUTCMinutes():d(o.getUTCMinutes()):1==n.length?c:2==n.length?d(c):3==n.length?u[c-1].slice(0,3):4==n.length?u[c-1]:u[c-1][0]}else if(/^d{1,4}$/.test(n))y+=1==n.length?h:2==n.length?d(h):3==n.length?m[o.getUTCDay()].slice(0,3):m[o.getUTCDay()];else if(/^h{1,2}$/.test(n)){const e=b?o.getUTCHours()%12||12:o.getUTCHours();y+=1==n.length?e:d(e)}else if(/^s{1,2}$/.test(n))y+=1==n.length?o.getUTCSeconds():d(o.getUTCSeconds());else if(/^(am\/pm|a\/p)$/.test(n)){const e=o.getUTCHours()<12?"AM":"PM",t="a/p"==n?e[0]:e;y+=r==n?t.toLowerCase():t}else{if(!/^[\s/.,:\-年月日时分秒()]$/.test(r))return e;y+=r}}return y}pieSlicePath(e,t,r,n,a){const s=this.polar(e,t,r,a),o=this.polar(e,t,r,n),i=a-n<=180?"0":"1";return`M${e},${t} L${s.x},${s.y} A${r},${r} 0 ${i},0 ${o.x},${o.y} Z`}polar(e,t,r,n){const a=(n-90)*Math.PI/180;return{x:e+r*Math.cos(a),y:t+r*Math.sin(a)}}drawLegend(e,t,r,n,a){const s=this.createSvgElement("rect");s.setAttribute("x",`${n}`),s.setAttribute("y",""+(a-10)),s.setAttribute("width","10"),s.setAttribute("height","10"),s.style.fill=this.chartColor(r),e.appendChild(s),e.appendChild(this.svgText(t,n+14,a,"start","10px"))}drawBottomLegend(e,t,r){if(0==t.length)return;const n=t.map(e=>14+this.chartLegendTextWidth(e)),a=n.reduce((e,t)=>e+t,0)+18*Math.max(0,t.length-1),s=this.createSvgElement("g");s.setAttribute("data-docx-chart-legend","bottom"),s.setAttribute("transform",`translate(${Math.max(0,(640-a)/2)}, 0)`);let o=0;t.forEach((e,t)=>{this.drawLegend(s,e,t,o,r),o+=n[t]+18}),e.appendChild(s)}chartLegendTextWidth(e){return Array.from(e).reduce((e,t)=>/\s/.test(t)?e+3:e+((t.codePointAt(0)??0)>255?10:6),0)}chartColor(e){return`hsl(${47*e%360}, 65%, 48%)`}renderSmartArtSvg(e){const t=e.documentElement,r=this.elementsByLocal(t,"pt").map(e=>({id:e.getAttribute("modelId"),type:e.getAttribute("type"),text:this.elementsByLocal(e,"t").map(e=>e.textContent).filter(Boolean).join(" ").trim()})).filter(e=>e.id&&e.text&&"doc"!=e.type),n=this.elementsByLocal(t,"cxn").map(e=>({src:e.getAttribute("srcId"),dst:e.getAttribute("destId")})).filter(e=>e.src&&e.dst&&r.some(t=>t.id==e.src)&&r.some(t=>t.id==e.dst)),a=this.createSvgElement("svg",{style:{width:"100%",height:"100%",display:"block"}});if(a.setAttribute("viewBox","0 0 640 360"),a.setAttribute("preserveAspectRatio","xMidYMid meet"),0==r.length)return a.appendChild(this.svgText("SmartArt",320,180,"middle","18px")),a;const s=this.layoutDiagramNodes(r,n),o={},i=140,l=Math.min(90,260/Math.max(s.length,1));s.forEach((e,t)=>{const r=55+t*l,n=560/Math.max(e.length,1);e.forEach((e,t)=>{o[e.id]={x:40+n*t+Math.max(0,n-i)/2,y:r}})});for(const e of n){const t=o[e.src],r=o[e.dst];t&&r&&a.appendChild(this.svgLine(t.x+70,t.y+44,r.x+70,r.y))}return r.forEach((e,t)=>{const r=o[e.id];if(!r)return;const n=this.createSvgElement("rect");n.setAttribute("x",`${r.x}`),n.setAttribute("y",`${r.y}`),n.setAttribute("width","140"),n.setAttribute("height","44"),n.setAttribute("rx","8"),n.style.fill=this.chartColor(t),n.style.opacity="0.18",n.style.stroke=this.chartColor(t),a.appendChild(n),a.appendChild(this.svgText(e.text,r.x+70,r.y+27,"middle","11px"))}),a}layoutDiagramNodes(e,t){const r=new Map(e.map(e=>[e.id,0]));t.forEach(e=>r.set(e.dst,(r.get(e.dst)??0)+1));let n=e.filter(e=>0==(r.get(e.id)??0));const a=new Set,s=[];for(0==n.length&&(n=e.slice(0,1));n.length>0;){s.push(n),n.forEach(e=>a.add(e.id));const r=t.filter(e=>n.some(t=>t.id==e.src)).map(e=>e.dst).filter(e=>!a.has(e));n=[...new Set(r)].map(t=>e.find(e=>e.id==t)).filter(Boolean)}const o=e.filter(e=>!a.has(e.id));return o.length>0&&s.push(o),s}renderInkSvg(e){const t=this.createSvgElement("svg",{style:{width:"100%",height:"100%",display:"block"}});t.setAttribute("viewBox","0 0 640 360"),t.setAttribute("preserveAspectRatio","xMidYMid meet");const r=this.elementsByLocal(e.documentElement,"trace").map(e=>this.inkTraceToPoints(e.textContent)),n=this.elementsByLocal(e.documentElement,"path").map(e=>e.getAttribute("d")).filter(Boolean);if(0==r.length&&0==n.length)return t.appendChild(this.svgText("Ink",320,180,"middle","18px")),t;const a=r.flat(),s=Math.min(...a.map(e=>e[0]),0),o=Math.min(...a.map(e=>e[1]),0),i=Math.max(...a.map(e=>e[0]),640),l=Math.max(...a.map(e=>e[1]),360),c=Math.min(600/Math.max(i-s,1),320/Math.max(l-o,1)),h=20-s*c,d=20-o*c;for(const e of r){if(e.length<2)continue;const r=this.createSvgElement("path");r.setAttribute("d",e.map((e,t)=>`${0==t?"M":"L"}${e[0]*c+h},${e[1]*c+d}`).join(" ")),r.style.fill="none",r.style.stroke="currentColor",r.style.strokeWidth="2",r.style.strokeLinecap="round",r.style.strokeLinejoin="round",t.appendChild(r)}for(const e of n){const r=this.createSvgElement("path");r.setAttribute("d",e),r.style.fill="none",r.style.stroke="currentColor",r.style.strokeWidth="2",t.appendChild(r)}return t}inkTraceToPoints(e){const t=(e??"").match(/-?\d+(?:\.\d+)?/g)?.map(Number)??[],r=[];for(let e=0;e+1<t.length;e+=2)r.push([t[e],t[e+1]]);return r}svgLine(e,t,r,n){const a=this.createSvgElement("line");return a.setAttribute("x1",`${e}`),a.setAttribute("y1",`${t}`),a.setAttribute("x2",`${r}`),a.setAttribute("y2",`${n}`),a.style.stroke="currentColor",a.style.strokeWidth="1",a}svgText(e,t,r,n="start",a="12px",s=null){const o=this.createSvgElement("text");return o.setAttribute("x",`${t}`),o.setAttribute("y",`${r}`),o.setAttribute("text-anchor",n),o.style.fill="currentColor",o.style.fontSize=a,s&&(o.style.fontWeight=s),o.appendChild(document.createTextNode(e)),o}elementsByLocal(e,t){const r=e.documentElement??e;return Array.from(r.getElementsByTagName("*")).filter(e=>e.localName==t)}firstByLocal(e,t){return this.elementsByLocal(e,t)[0]??null}renderSimpleField(e){const t=this.evaluateFieldNode(e);return void 0===t?this.renderElements(e.children??[]):null==t?null:v(t)?this.renderFieldText(t,e.instruction):t}renderFieldText(e,t){const r=this.h({tagName:"span",className:`${this.className}-field`,children:[e]});return t&&(r.dataset.docxFieldInstr=t),r}evaluateFieldNode(e){const t=(e.instruction??"").replace(/\s+/g," ").trim();if(!t)return;if(t.startsWith("=")){const e=this.evaluateFormula(t.substring(1));return null==e?void 0:this.applyFieldFormatting(`${e}`,t)}const r=this.tokenizeFieldInstruction(t),n=r[0]?.replace(/^=/,"").toUpperCase();if(!this.shouldPreserveStoredFieldResult(n,e))switch(n){case"PAGE":return this.applyFieldFormatting(this.formatFieldNumber(this.currentPageNumber,this.currentSectionProps?.pageNumber?.format),t);case"NUMPAGES":return this.applyFieldFormatting(this.formatFieldNumber(this.totalPages,this.currentSectionProps?.pageNumber?.format),t);case"SECTIONPAGES":return this.applyFieldFormatting(this.formatFieldNumber(this.sectionPageCount,this.currentSectionProps?.pageNumber?.format),t);case"SECTION":return this.applyFieldFormatting(this.formatFieldNumber(this.currentSectionNumber,"decimal"),t);case"DATE":case"TIME":case"CREATEDATE":case"SAVEDATE":case"PRINTDATE":return this.applyFieldFormatting(this.evaluateDateField(r,n),t);case"AUTHOR":return this.applyFieldFormatting(this.document.corePropsPart?.props?.creator??"",t);case"TITLE":return this.applyFieldFormatting(this.document.corePropsPart?.props?.title??"",t);case"SUBJECT":return this.applyFieldFormatting(this.document.corePropsPart?.props?.subject??"",t);case"KEYWORDS":return this.applyFieldFormatting(this.document.corePropsPart?.props?.keywords??"",t);case"NUMWORDS":return this.applyFieldFormatting(`${this.document.extendedPropsPart?.props?.words??""}`,t);case"NUMCHARS":return this.applyFieldFormatting(`${this.document.extendedPropsPart?.props?.characters??""}`,t);case"FILENAME":return this.applyFieldFormatting(this.document.documentPart?.path?.split("/").pop()??"",t);case"DOCPROPERTY":return this.applyFieldFormatting(this.evaluateDocPropertyField(r),t);case"DOCVARIABLE":return this.applyFieldFormatting(this.evaluateDocVariableField(r),t);case"MERGEFIELD":return;case"SET":return this.evaluateSetField(r),null;case"QUOTE":return this.applyFieldFormatting(r.slice(1).map(e=>this.resolveFieldValue(e)).join(""),t);case"HYPERLINK":return this.renderHyperlinkField(r,e);case"IF":return this.applyFieldFormatting(this.evaluateIfField(r),t);case"REF":case"STYLEREF":case"NOTEREF":return this.applyFieldFormatting(this.evaluateRefField(r),t);case"PAGEREF":return this.applyFieldFormatting(this.evaluatePageRefField(r),t);case"SEQ":return this.applyFieldFormatting(this.evaluateSeqField(r),t);case"LISTNUM":return this.applyFieldFormatting(this.evaluateListNumField(r),t);case"TC":case"XE":return null;case"TOC":return this.renderTocField(r);case"SYMBOL":return this.evaluateSymbolField(r)}}shouldPreserveStoredFieldResult(e,t){if(!this.options.preserveComplexFieldResults||!t.children?.length)return!1;switch(e){case"PAGE":case"NUMPAGES":case"SECTIONPAGES":case"SECTION":return!1;case"PAGEREF":return!this.options.updatePageReferences;case"TOC":case"REF":case"STYLEREF":case"NOTEREF":case"SEQ":case"LISTNUM":case"IF":case"DOCVARIABLE":case"MERGEFIELD":return!0}return!1}tokenizeFieldInstruction(e){const t=[];let r="",n=null,a=!1;for(const s of e)a?(r+=s,a=!1):"\\"!=s?'"'!=s&&"'"!=s?!/\s/.test(s)||n?r+=s:r&&(t.push(r),r=""):n==s?(n=null,t.push(r),r=""):n?r+=s:(r.trim()&&t.push(r.trim()),r="",n=s):n?a=!0:(r&&(t.push(r),r=""),r="\\");return r&&t.push(r),t}fieldSwitch(e,t){const r=t.toLowerCase(),n=e.findIndex(e=>e.toLowerCase()==r);return n>=0?e[n+1]:null}hasFieldSwitch(e,t){const r=t.toLowerCase();return e.some(e=>e.toLowerCase()==r)}firstFieldArgument(e,t=1){for(let r=t;r<e.length;r++){if(!e[r]?.startsWith("\\"))return e[r];r++}return null}evaluateDateField(e,t){const r=this.fieldSwitch(e,"\\@"),n=new Date;return r?this.formatFieldDate(n,r):"TIME"==t?n.toLocaleTimeString():n.toLocaleDateString()}formatFieldDate(e,t){const r=(e,t=2)=>`${e}`.padStart(t,"0"),n=["January","February","March","April","May","June","July","August","September","October","November","December"],a=n.map(e=>e.substring(0,3)),s=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],o=s.map(e=>e.substring(0,3)),i=[[/yyyy/g,`${e.getFullYear()}`],[/yy/g,r(e.getFullYear()%100)],[/MMMM/g,n[e.getMonth()]],[/MMM/g,a[e.getMonth()]],[/MM/g,r(e.getMonth()+1)],[/M/g,`${e.getMonth()+1}`],[/dddd/g,s[e.getDay()]],[/ddd/g,o[e.getDay()]],[/dd/g,r(e.getDate())],[/d/g,`${e.getDate()}`],[/HH/g,r(e.getHours())],[/H/g,`${e.getHours()}`],[/hh/g,r((e.getHours()+11)%12+1)],[/h/g,""+((e.getHours()+11)%12+1)],[/mm/g,r(e.getMinutes())],[/m/g,`${e.getMinutes()}`],[/ss/g,r(e.getSeconds())],[/s/g,`${e.getSeconds()}`],[/AM\/PM/g,e.getHours()<12?"AM":"PM"],[/am\/pm/g,e.getHours()<12?"am":"pm"]];let l=t;for(const[e,t]of i)l=l.replace(e,t);return l}evaluateDocPropertyField(e){const t=this.firstFieldArgument(e)?.toLowerCase();if(!t)return"";const r={...this.document.corePropsPart?.props??{},...this.document.extendedPropsPart?.props??{}};for(const[e,n]of Object.entries(r))if(e.toLowerCase()==t)return null==n?"":`${n}`;return""}evaluateSetField(e){const t=this.firstFieldArgument(e);if(!t)return;const r=e.slice(e.indexOf(t)+1).filter(e=>!e.startsWith("\\")).map(e=>this.resolveFieldValue(e)).join(" ");this.fieldSetValues[t]=r}evaluateDocVariableField(e){const t=this.firstFieldArgument(e);return t?this.fieldSetValues[t]??"":""}renderHyperlinkField(e,t){const r=this.fieldSwitch(e,"\\l"),n=this.firstFieldArgument(e)??"",a=r?`${n}#${r}`:n,s=this.h({tagName:"a",children:this.renderHyperlinkChildren(t.children??[])});return this.applyHyperlinkTarget(s,a,!!n),s.textContent||(s.textContent=a||r),s}evaluateIfField(e){const t=["<>",">=","<=","=",">","<"],r=e.findIndex((e,r)=>r>0&&t.includes(e));if(r<0)return"";const n=this.resolveFieldValue(e.slice(1,r).join(" ")),a=e[r],s=this.resolveFieldValue(e[r+1]??""),o=e[r+2]??"",i=e[r+3]??"",l=parseFloat(n),c=parseFloat(s),h=!Number.isNaN(l)&&!Number.isNaN(c),d=h?l:n,u=h?c:s;let m=!1;switch(a){case"=":m=d==u;break;case"<>":m=d!=u;break;case">":m=d>u;break;case"<":m=d<u;break;case">=":m=d>=u;break;case"<=":m=d<=u}return this.resolveFieldValue(m?o:i)}resolveFieldValue(e){const t=(e??"").trim();if(/^[-+]?\d+(?:\.\d+)?$/.test(t))return t;if(this.bookmarkTextMap.hasOwnProperty(t))return this.bookmarkTextMap[t];if(this.fieldSetValues.hasOwnProperty(t))return this.fieldSetValues[t];if(t.startsWith("=")){const e=this.evaluateFormula(t.substring(1));return null==e?"":`${e}`}const r=this.tokenizeFieldInstruction(t)[0]?.toUpperCase();if(["PAGE","NUMPAGES","SECTIONPAGES","SECTION","DATE","TIME","AUTHOR","TITLE","SUBJECT","KEYWORDS","REF","PAGEREF","SEQ","DOCPROPERTY"].includes(r)){const e=this.evaluateFieldNode({type:We.SimpleField,instruction:t,lock:!1,dirty:!1,children:[]});if(v(e))return e}return t}evaluateRefField(e){const t=this.firstFieldArgument(e);return t?this.bookmarkTextMap[t]??this.fieldSetValues[t]??"":""}evaluatePageRefField(e){const t=this.firstFieldArgument(e);return t?`${null!=this.bookmarkTextMap[t]?Math.max(this.currentPageNumber,1):1}`:""}evaluateSeqField(e){const t=this.firstFieldArgument(e);if(!t)return"";if(this.hasFieldSwitch(e,"\\h"))return"";const r=this.fieldSwitch(e,"\\r"),n=this.hasFieldSwitch(e,"\\c");null!=r?this.fieldSeqCounters[t]=parseInt(r,10)||0:n||(this.fieldSeqCounters[t]=(this.fieldSeqCounters[t]??0)+1);const a=this.fieldSwitch(e,"\\*")??"decimal";return this.formatFieldNumber(this.fieldSeqCounters[t]??0,this.fieldFormatSwitchToNumFormat(a))}evaluateListNumField(e){const t=this.firstFieldArgument(e)??"LISTNUM";this.fieldSeqCounters[t]=(this.fieldSeqCounters[t]??0)+1;const r=this.fieldSwitch(e,"*")??"decimal";return this.formatFieldNumber(this.fieldSeqCounters[t],this.fieldFormatSwitchToNumFormat(r))}renderTocField(e){let t=1,r=9;const n=this.fieldSwitch(e,"\\o");if(n){const e=/(\d+)\s*-\s*(\d+)/.exec(n);e&&(t=parseInt(e[1],10),r=parseInt(e[2],10))}const a=this.tocEntries.filter(e=>e.level>=t&&e.level<=r).map(e=>{const t=this.h({tagName:"span",className:`${this.className}-toc-page`,children:["1"]});return t.dataset.docxPageRef=e.id,this.h({tagName:"div",className:`${this.className}-toc-entry ${this.className}-toc-level-${e.level}`,children:[this.h({tagName:"a",className:`${this.className}-toc-title`,href:`#${e.id}`,children:[e.text]}),t]})});return this.h({tagName:"div",className:`${this.className}-toc`,children:a})}evaluateSymbolField(e){const t=parseInt(e[1],10);return Number.isFinite(t)?String.fromCharCode(t):""}evaluateFormula(e){const t=e.replace(/,/g,"").trim();if(!/^[0-9+\-*/().\s]+$/.test(t))return null;try{const e=Function(`"use strict"; return (${t});`)();return Number.isFinite(e)?e:null}catch{return null}}applyFieldFormatting(e,t){const r=this.tokenizeFieldInstruction(t);let n=e??"";const a=this.fieldSwitch(r,"\\*"),s=a?.toUpperCase(),o=this.fieldSwitch(r,"\\#");if(o){const e=parseFloat(n);Number.isNaN(e)||(n=this.formatNumberPicture(e,o))}switch(s){case"UPPER":n=n.toUpperCase();break;case"LOWER":n=n.toLowerCase();break;case"FIRSTCAP":n=n.substring(0,1).toUpperCase()+n.substring(1).toLowerCase();break;case"CAPS":n=n.replace(/\b\w/g,e=>e.toUpperCase());break;case"ROMAN":{const e=parseInt(n,10);Number.isNaN(e)||(n="roman"==a?this.toRoman(e).toLowerCase():this.toRoman(e).toUpperCase());break}case"ALPHABETIC":{const e=parseInt(n,10);Number.isNaN(e)||(n="alphabetic"==a?this.toLetters(e).toLowerCase():this.toLetters(e).toUpperCase());break}}return n}formatNumberPicture(e,t){const r=t.indexOf("."),n=r>=0?t.length-r-1:0;let a=e.toFixed(n);if(t.includes(",")){const[e,t]=a.split(".");a=e.replace(/\B(?=(\d{3})+(?!\d))/g,",")+(null!=t?`.${t}`:"")}return a}fieldFormatSwitchToNumFormat(e){if("roman"==e)return"lowerRoman";if("alphabetic"==e)return"lowerLetter";switch(e?.toUpperCase()){case"ROMAN":return"upperRoman";case"ALPHABETIC":return"upperLetter";default:return"decimal"}}formatFieldNumber(e,t){switch(t){case"upperRoman":return this.toRoman(e).toUpperCase();case"lowerRoman":return this.toRoman(e).toLowerCase();case"upperLetter":return this.toLetters(e).toUpperCase();case"lowerLetter":return this.toLetters(e).toLowerCase();case"decimalZero":return e<10?`0${e}`:`${e}`;default:return`${e}`}}toRoman(e){const t=[[1e3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]];let r=Math.max(Math.floor(e),0),n="";for(const[e,a]of t)for(;r>=e;)n+=a,r-=e;return n||`${e}`}toLetters(e){let t=Math.max(Math.floor(e),1),r="";for(;t>0;)t--,r=String.fromCharCode(65+t%26)+r,t=Math.floor(t/26);return r}renderRuby(e){const t=e.children?.find(e=>e.type==We.RubyBase),r=e.children?.find(e=>e.type==We.RubyText),n=[...t?this.renderElements(t.children):[],...r?S(this.renderElement(r)).filter(e=>null!=e):[]],a=this.h({tagName:"ruby",children:n});return e.align&&(a.style.rubyAlign=e.align),a}hasRenderedContent(e){for(const t of e??[]){if(!t)continue;const e=t,r=e.nodeType,n=String(e.localName??e.tagName??e.nodeName??"").toLowerCase();if(3==r||"#text"==n){if((e.textContent??e.text??e.data??"").length)return!0;continue}if(["br","img","svg","math","table"].includes(n))return!0;if((e.textContent??"").length)return!0;const a=Array.from(e.childNodes??e.children??[]);if(a.length&&this.hasRenderedContent(a))return!0}return!1}renderText(e){return this.h(this.applyCjkLineBreakGuards(e.text))}applyCjkLineBreakGuards(e){if(!e||!this.document.settingsPart?.settings?.kinsoku)return e;const t=this.document.settingsPart.settings.noLineBreaksBefore??"!),.:;?]}¢°·'\"†‡›℃∶、。々〉》」』】〕〗〙〛〜゠ァィゥェォッャュョヮ・ー-?!%,.:;゛゜ヽヾゝゞー",r=this.document.settingsPart.settings.noLineBreaksAfter??"([{$£¥'\"“‘〈《「『【〔〖〘〚";let n="";for(const a of e)t.includes(a)&&(n+="⁠"),n+=a,r.includes(a)&&(n+="⁠");return n}renderDeletedText(e){return js(this.options)||qs(Us(this.options))?this.renderText(e):null}renderBreak(e){switch(e.break){case"textWrapping":case"line":return this.h({tagName:"br"});case"column":return this.h({tagName:"span",style:{breakAfter:"column"}});case"page":return this.options.breakPages?null:this.h({tagName:"span",style:{breakAfter:"page"}});case"lastRenderedPageBreak":return this.options.breakPages||this.options.ignoreLastRenderedPageBreak?null:this.h({tagName:"span",style:{breakAfter:"page"}})}return null}renderInserted(e){return js(this.options)?this.renderRevisionContainer(e,"ins"):"original"==Us(this.options)?null:this.renderElements(e.children)}renderDeleted(e){return js(this.options)?this.renderRevisionContainer(e,"del"):"original"==Us(this.options)?this.renderElements(e.children):null}renderRevisionContainer(e,t){const r=this.renderContainer(e,t),n=e.props?.revision,a=n?.kind??("ins"==t?"insert":"delete");r.dataset.docxChangeKind=a,this.hasOwnRevisionContent(e)||(r.dataset.docxChangeEmpty="true"),r.style.setProperty("--docx-review-color",ao(n?.author)),null!=n?.id&&(r.dataset.docxChangeId=`${n.id}`),n?.author&&(r.dataset.docxChangeAuthor=n.author),n?.date&&(r.dataset.docxChangeDate=n.date,r.setAttribute("datetime",n.date));const s=[n?.author,n?.date].filter(Boolean).join(" - ");return s&&r.setAttribute("title",s),r}hasOwnRevisionContent(e){const t=e=>{for(const r of e.children??[])if(!r.props?.revision){if((r.type==We.Text||r.type==We.DeletedText)&&(r.text??"").length)return!0;if(r.type==We.Tab||r.type==We.PositionalTab||r.type==We.Break||r.type==We.Symbol)return!0;if(t(r))return!0}return!1};return t(e)}renderSymbol(e){const t=function(e,t){const r=String.fromCharCode(t);if("symbol"!==(e??"").trim().replace(/^(["'])(.*)\1$/,"$2").trim().toLowerCase())return{text:r,normalized:!1};const n=t>=61440&&t<=61695?t-61440:t,a=n>=0&&n<=255?ts[n]:void 0,s=void 0===a?r:String.fromCharCode(a);return{text:s,normalized:s!==r}}(e.font,e.char),r=this.h({tagName:"span",children:[t.text],style:{fontFamily:e.font}});return Number.isFinite(e.char)&&r.setAttribute("data-docx-symbol-code",e.char.toString(16).padStart(4,"0").toUpperCase()),e.font&&r.setAttribute("data-docx-symbol-font",e.font),t.normalized&&r.setAttribute("data-docx-symbol-normalized","true"),r}renderFootnoteReference(e){return this.renderNoteReference(e,"footnote")}renderEndnoteReference(e){return this.renderNoteReference(e,"endnote")}renderNoteReference(e,t){const r=this.h({tagName:"sup",children:[]});r.dataset.docxNoteReference=t,r.dataset.docxNoteId=e.id;for(let t=e;t;t=t.parent)if(this.isHiddenRevisionForPagination(t))return r.dataset.docxNoteHidden="true",r;const n="footnote"===t?"footnoteProps":"endnoteProps",a=function(e,t){return{format:t?.numberingFormat??t?.nummeringFormat??e?.numberingFormat??e?.nummeringFormat??"decimal",start:t?.start??e?.start??1,restart:t?.restart??e?.restart??"continuous"}}(this.document.settingsPart?.settings?.[n],this.currentSectionProps?.[n]);let s=this.noteSectionIds.get(this.currentSectionProps);null==s&&(s=`${this.noteSectionIds.size+1}`,this.noteSectionIds.set(this.currentSectionProps,s));const o=this.noteNumbering.assign(t,e.id,!!e.customMarkFollows,a,s,`${this.notePageIndex}`),i="footnote"===t?this.currentFootnoteIds:this.currentEndnoteIds;return i.includes(e.id)||i.push(e.id),r.dataset.docxNoteSection=s,r.dataset.docxNoteFormat=a.format,r.dataset.docxNoteStart=`${a.start}`,r.dataset.docxNoteRestart=a.restart,this.applyNoteAssignment(r,o,!0),r}updateDynamicNoteNumbers(e){const t=Array.from(e.querySelectorAll(`:scope > section.${this.className}`)),r=new de;for(let e=0;e<t.length;e++)for(const n of Array.from(t[e].querySelectorAll("article [data-docx-note-reference]"))){if("true"===n.dataset.docxNoteHidden)continue;const t=r.assign(n.dataset.docxNoteReference,n.dataset.docxNoteId,"true"===n.dataset.docxNoteCustom,{format:n.dataset.docxNoteFormat,start:Number(n.dataset.docxNoteStart),restart:n.dataset.docxNoteRestart},n.dataset.docxNoteSection,`${e+1}`);this.applyNoteAssignment(n,t,!0)}for(const t of Array.from(e.querySelectorAll("li[data-docx-note-id]")))this.applyNoteAssignment(t,r.assignments.get(`${t.dataset.docxNoteKind}:${t.dataset.docxNoteId}`),!1)}renderTab(e){const t=this.currentParagraph??function(e,t){var r=e.parent;for(;null!=r&&r.type!=t;)r=r.parent;return r}(e,We.Paragraph),r=t?.tabs??[],n=r.filter(e=>"clear"!=e?.style),a=this.currentParagraphTabIndex++,s=this.resolveRenderedTabStop(n,a,this.currentParagraphTabCount);var o=this.h({tagName:"span",className:this.tabStopClass(),children:[" "]});return o.dataset.docxTab="true",s&&(o.dataset.docxTabAlign=s.style??"left",o.dataset.docxTabLeader=s.leader??"none",s.position&&(o.dataset.docxTabPos=s.position)),o.dataset.docxTabId=`${this.currentTabs.length}`,this.currentTabs.push({stops:r,span:o}),o}renderBookmarkStart(e){const t=this.h({tagName:"span"});return e.name&&(t.id=e.name,t.setAttribute("id",e.name)),t}renderRun(e){const t=e.fieldRun?e.children?.filter(e=>e.type!=We.Instruction&&e.type!=We.ComplexField):e.children;if(e.fieldRun&&(!t||0==t.length))return null;let r=this.renderElements(t);e.verticalAlign&&(r=[this.h({tagName:e.verticalAlign,children:r})]);if(!e.verticalAlign&&1==t?.length&&(t[0].type==We.Tab||t[0].type==We.PositionalTab)&&1==r?.length){const t=r[0];return e.cssStyle&&Object.assign(t.style,e.cssStyle),e.className&&t.classList.add(e.className),t}const n=this.toHTML(e,zs.html,"span",r),a=this.findStyle(e.styleName),s=e.cssStyle?.["--docx-snap-to-grid"]??this.styleValue(a,"span","--docx-snap-to-grid");if(/^(0|false|off)$/i.test(s??""))n.style.letterSpacing="normal";else if(/^(1|true|on)$/i.test(s??"")){const e=this.currentSectionProps?.docGrid;"linesAndChars"!=e?.type&&"snapToChars"!=e?.type||!e.charSpace||(n.style.letterSpacing=e.charSpace)}return e.id&&(n.id=e.id),n}renderTable(e){e.columns?.length&&!e.cssStyle?.["table-layout"]&&(e.cssStyle??(e.cssStyle={}),e.cssStyle["table-layout"]="fixed"),this.tableCellPositions.push(this.currentCellPosition),this.tableVerticalMerges.push(this.currentVerticalMerge),this.currentVerticalMerge={},this.currentCellPosition={col:0,row:0};const t=[];return e.columns&&t.push(this.renderTableColumns(e.columns)),t.push(...this.renderElements(e.children)),this.currentVerticalMerge=this.tableVerticalMerges.pop(),this.currentCellPosition=this.tableCellPositions.pop(),this.toHTML(e,zs.html,"table",t)}renderTableColumns(e){const t=e.map(e=>this.h({tagName:"col",style:{width:e.width}}));return this.h({tagName:"colgroup",children:t})}renderTableRow(e){this.currentCellPosition.col=e.gridBefore??0;const t=[],r=this.currentTableRow;this.currentTableRow=e,e.gridBefore&&t.push(this.renderTableCellPlaceholder(e.gridBefore)),t.push(...this.renderElements(e.children)),e.gridAfter&&t.push(this.renderTableCellPlaceholder(e.gridAfter));for(const e of Object.keys(this.currentVerticalMerge))this.currentVerticalMerge[e]?.lastRow!=this.currentCellPosition.row&&delete this.currentVerticalMerge[e];this.currentTableRow=r,this.currentCellPosition.row++;const n=this.toHTML(e,zs.html,"tr",t);return e.isHeader&&(n.dataset.docxRepeatHeader="true"),this.repeatedTableHeaderRows.has(e)&&(n.dataset.docxRepeatedHeader="true"),n}renderTableCellPlaceholder(e){return this.h({tagName:"td",colSpan:e,style:{border:"none"}})}renderTableCell(e){const t=this.currentTableRow?.isHeader?"th":"td";let r=this.toHTML(e,zs.html,t);const n=this.currentCellPosition.col,a=Math.max(1,e.span??1),s=this.currentVerticalMerge[n],o=r.style.getPropertyValue?.("border-bottom")||r.style["border-bottom"]||e.cssStyle?.["border-bottom"]||"",i=r.style.getPropertyPriority?.("border-bottom")||"";if(e.verticalMerge)if("restart"==e.verticalMerge)this.currentVerticalMerge[n]={cell:r,span:a,lastRow:this.currentCellPosition.row,bottomBorder:o,bottomBorderPriority:i},r.rowSpan=1;else if(s?.span==a&&s.lastRow==this.currentCellPosition.row-1){s.cell.rowSpan+=1,s.lastRow=this.currentCellPosition.row;const e=o||s.bottomBorder||"";s.cell.style.setProperty?s.cell.style.setProperty("border-bottom",e,i||s.bottomBorderPriority):s.cell.style["border-bottom"]=e,r.style.display="none"}else delete this.currentVerticalMerge[n];else delete this.currentVerticalMerge[n];return e.span&&(r.colSpan=e.span),this.currentCellPosition.col+=r.colSpan,function(e,t,r=e=>e){const n=["tl2br","tr2bl"].filter(e=>t?.[e]&&"none"!==t[e]);if(!n.length)return;const a=e.ownerDocument??document,s="http://www.w3.org/2000/svg",o=a.createElementNS(s,"svg"),i=a.createElement("span");for(const e of n){const n=/^(\d+(?:\.\d+)?)(pt|px)\s+(\w+)\s+(.+)$/.exec(t[e]);if(!n||!Number.isFinite(Number(n[1]))||Number(n[1])<=0)continue;const[,l,c,h,d]=n;if(/url\s*\(|[;{}<>\\\x00-\x1f]/i.test(d))continue;if(i.style.color="",i.style.color=d,!i.style.color)continue;const u=a.createElementNS(s,"line");u.dataset.docxDiagonal=e,u.setAttribute("x1","tl2br"===e?"0%":"100%"),u.setAttribute("y1","0%"),u.setAttribute("x2","tl2br"===e?"100%":"0%"),u.setAttribute("y2","100%"),u.style.stroke=r(i.style.color),u.style.strokeWidth=`${l}${c}`;const m=Number(l)*("pt"===c?4/3:1);"dotted"===h?(u.style.strokeDasharray="0 "+2*m,u.style.strokeLinecap="round"):"dashed"===h&&(u.style.strokeDasharray=`${4*m} ${2*m}`),o.appendChild(u)}o.hasChildNodes()&&(o.setAttribute("aria-hidden","true"),o.setAttribute("focusable","false"),Object.assign(o.style,{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none"}),e.style.position&&"static"!==e.style.position||(e.style.position="relative"),e.appendChild(o))}(r,e.props?.diagonalBorders,e=>this.darkenColorAttr(e)),r}renderVmlPicture(e){const t=this.renderContainer(e,this.currentParagraph?"span":"div");return t.style.display="block",t}vmlLengthInPoints(e){if(null==e)return null;const t=String(e).trim();if(!/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?(?:pt|px|in|cm|mm|pc)?$/i.test(t))return null;const r=parseFloat(t);return Number.isFinite(r)?/px$/i.test(t)?.75*r:/in$/i.test(t)?72*r:/cm$/i.test(t)?72*r/2.54:/mm$/i.test(t)?72*r/25.4:/pc$/i.test(t)?12*r:r:null}vmlRenderContext(e,t){const r=C(e.cssStyleText),[n,a]=e.coordOrigin??[0,0],s=e=>Number.isFinite(e)?e:0,o=this.vmlLengthInPoints(r.width),i=this.vmlLengthInPoints(r.height),l=Math.max(0,s(t?.width??4*(o??Math.abs(e.coordSize?.[0]??1))/3)),c=Math.max(0,s(t?.height??4*(i??Math.abs(e.coordSize?.[1]??1))/3)),h=e.coordSize?.[0]??o??3*l/4,d=e.coordSize?.[1]??i??3*c/4;return{originX:s(n),originY:s(a),offsetX:s(t?.x??0),offsetY:s(t?.y??0),scaleX:h>0?s(l/h):0,scaleY:d>0?s(c/d):0,width:l,height:c}}vmlMappedValue(e,t,r,n){if(null==e)return 0;const a=String(e).trim(),s=parseFloat(a);if(!Number.isFinite(s))return 0;const o="x"==r?t.scaleX:t.scaleY,i="x"==r?t.originX:t.originY,l=n?0:"x"==r?t.offsetX:t.offsetY;let c;return c=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)%$/.test(a)?s*("x"==r?t.width:t.height)/100+l:/(?:pt|px|in|cm|mm|pc)$/i.test(a)?4*(this.vmlLengthInPoints(a)??0)/3+l:null!=this.vmlLengthInPoints(a)?(n?s:s-i)*o+l:0,Number.isFinite(c)?c:0}vmlBounds(e,t,r){if(r)return r;const n=C(e.cssStyleText),a=null==n.width?t.width:this.vmlMappedValue(n.width,t,"x",!0),s=null==n.height?t.height:this.vmlMappedValue(n.height,t,"y",!0);return{x:null==n.left?t.offsetX:this.vmlMappedValue(n.left,t,"x",!1),y:null==n.top?t.offsetY:this.vmlMappedValue(n.top,t,"y",!1),width:Math.max(0,a),height:Math.max(0,s)}}vmlCombinedLength(e,t){if(!e)return t;if(!t)return e;const r=this.vmlLengthInPoints(e),n=this.vmlLengthInPoints(t);return null!=r&&null!=n?`${r+n}pt`:`calc(${e} + ${t})`}vmlRootStyle(e){const t=C(e.cssStyleText),r={},n=["position","display","left","top","right","bottom","margin-left","margin-top","width","height","z-index","opacity","visibility","overflow"];for(const e of n)null!=t[e]&&(r[e]=t[e]);return"page"==t["mso-position-horizontal-relative"]&&(r.left=this.vmlCombinedLength(r.left,r["margin-left"]),delete r["margin-left"]),"page"==t["mso-position-vertical-relative"]&&(r.top=this.vmlCombinedLength(r.top,r["margin-top"]),delete r["margin-top"]),r.display??(r.display="block"),r.overflow??(r.overflow="visible"),r["pointer-events"]="none",r}applyVmlAttributes(e,t,r=new Set){for(const[n,a]of Object.entries(t??{}))r.has(n)||e.setAttribute(n,"fill"==n||"stroke"==n?this.darkenColorAttr(a):a)}loadVmlImage(e,t){e.imageHref?.id&&this.tasks.push(this.document?.loadDocumentImage(e.imageHref.id,this.currentPart,this.options.externalResourcePolicy).then(e=>{e&&t.setAttribute("href",e)}))}renderVmlElement(e){const t=this.vmlRenderContext(e),r=this.vmlRootStyle(e);r.width??(r.width=`${t.width}px`),r.height??(r.height=`${t.height}px`);for(const e of["width","height"])/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)$/.test(r[e])&&(r[e]=`${t[e]}px`);const n=this.createSvgElement("svg",{style:r});if(t.width>0&&t.height>0&&null!=this.vmlLengthInPoints(r.width)&&null!=this.vmlLengthInPoints(r.height)&&n.setAttribute("viewBox",`0 0 ${t.width} ${t.height}`),n.setAttribute("preserveAspectRatio","none"),n.setAttribute("focusable","false"),n.dataset.docxVml="true","absolute"==e.cssStyle?.position){n.dataset.docxFloat="true";const t=e.props?.anchorPosition;t?.horizontal?.relative&&(n.dataset.docxAnchorHorizontal=t.horizontal.relative),t?.vertical?.relative&&(n.dataset.docxAnchorVertical=t.vertical.relative)}return n.appendChild(this.renderVmlChildElement(e,t,{x:0,y:0,width:t.width,height:t.height},!0)),n}renderVmlChildElement(e,t,r,n=!1){const a=this.vmlBounds(e,t,r),s=this.vmlRenderContext(e,a),o=C(e.cssStyleText);let i;switch(e.tagName){case"image":{const t=this.createSvgElement("svg");t.setAttribute("x",`${a.x}`),t.setAttribute("y",`${a.y}`),t.setAttribute("width",`${a.width}`),t.setAttribute("height",`${a.height}`),t.setAttribute("viewBox","0 0 100 100"),t.setAttribute("preserveAspectRatio","none"),t.setAttribute("overflow","hidden");const r=this.createSvgElement("image");this.applyVmlAttributes(r,e.attrs),r.setAttribute("x",e.attrs.x??"0"),r.setAttribute("y",e.attrs.y??"0"),r.setAttribute("width",e.attrs.width??"100%"),r.setAttribute("height",e.attrs.height??"100%"),this.loadVmlImage(e,r),t.appendChild(r),i=t;break}case"line":{const r=this.createSvgElement("line"),n=null==e.attrs.x1?a.x:this.vmlMappedValue(e.attrs.x1,t,"x",!1),s=null==e.attrs.y1?a.y:this.vmlMappedValue(e.attrs.y1,t,"y",!1),o=null==e.attrs.x2?a.x+a.width:this.vmlMappedValue(e.attrs.x2,t,"x",!1),l=null==e.attrs.y2?a.y+a.height:this.vmlMappedValue(e.attrs.y2,t,"y",!1);r.setAttribute("x1",`${n}`),r.setAttribute("y1",`${s}`),r.setAttribute("x2",`${o}`),r.setAttribute("y2",`${l}`),this.applyVmlAttributes(r,e.attrs,new Set(["x1","y1","x2","y2"])),e.attrs.stroke||r.setAttribute("stroke","currentColor"),i=r;break}case"path":{const t=this.createSvgElement("path");this.applyVmlAttributes(t,e.attrs,new Set(["d"])),t.setAttribute("d",e.attrs.d??""),t.setAttribute("transform",`matrix(${s.scaleX} 0 0 ${s.scaleY} ${a.x-s.originX*s.scaleX} ${a.y-s.originY*s.scaleY})`),t.setAttribute("vector-effect","non-scaling-stroke"),i=t;break}case"rect":{const t=this.createSvgElement("rect");t.setAttribute("x",`${a.x}`),t.setAttribute("y",`${a.y}`),t.setAttribute("width",`${a.width}`),t.setAttribute("height",`${a.height}`),this.applyVmlAttributes(t,e.attrs,new Set(["x","y","width","height"])),i=t;break}case"ellipse":{const t=this.createSvgElement("ellipse");t.setAttribute("cx",`${a.x+a.width/2}`),t.setAttribute("cy",`${a.y+a.height/2}`),t.setAttribute("rx",""+a.width/2),t.setAttribute("ry",""+a.height/2),this.applyVmlAttributes(t,e.attrs,new Set(["cx","cy","rx","ry"])),i=t;break}case"foreignObject":{const t=this.createSvgElement("foreignObject"),[r,n,s,o]=(e.textInset??["0","0","0","0"]).map(e=>4*(this.vmlLengthInPoints(e)??0)/3);t.setAttribute("x",`${a.x+r}`),t.setAttribute("y",`${a.y+n}`),t.setAttribute("width",`${Math.max(0,a.width-r-s)}`),t.setAttribute("height",`${Math.max(0,a.height-n-o)}`),this.applyVmlAttributes(t,e.attrs,new Set(["x","y","width","height"])),t.setAttribute("overflow","hidden");const l=this.createElement("div",{style:{width:"100%",height:"100%",overflow:"hidden",boxSizing:"border-box"}});l.setAttribute("xmlns",zs.html);for(const t of e.children??[])for(const e of S(this.renderElement(t)).filter(e=>null!=e))l.appendChild(v(e)?document.createTextNode(e):e);t.appendChild(l),i=t;break}default:i=this.createSvgElement("g"),this.applyVmlAttributes(i,e.attrs)}if("foreignObject"!=e.tagName){if(e.children?.length&&"g"!=e.tagName){const e=this.createSvgElement("g");e.appendChild(i),i=e}for(const t of e.children??[])if(t.type==We.VmlElement)i.appendChild(this.renderVmlChildElement(t,s,e.isGroup?void 0:a));else for(const e of S(this.renderElement(t)).filter(e=>null!=e))i.appendChild(v(e)?document.createTextNode(e):e)}if(e.isGroup&&"hidden"==o.overflow){const e=this.createSvgElement("svg");e.setAttribute("x",`${a.x}`),e.setAttribute("y",`${a.y}`),e.setAttribute("width",`${a.width}`),e.setAttribute("height",`${a.height}`),a.width>0&&a.height>0&&e.setAttribute("viewBox",`${a.x} ${a.y} ${a.width} ${a.height}`),e.setAttribute("overflow","hidden"),e.appendChild(i),i=e}const l=[],c=a.x+a.width/2,h=a.y+a.height/2;Number.isFinite(e.rotation)&&e.rotation&&l.push(`rotate(${e.rotation} ${c} ${h})`);const d=/x/i.test(o.flip??""),u=/y/i.test(o.flip??"");if((d||u)&&l.push(`translate(${c} ${h}) scale(${d?-1:1} ${u?-1:1}) translate(${-c} ${-h})`),l.length){const e=this.createSvgElement("g");e.setAttribute("transform",l.join(" ")),e.appendChild(i),i=e}if(!n)for(const e of["display","visibility","opacity"])null!=o[e]&&i.style.setProperty(e,o[e]);return i}renderMmlMathParagraph(e){const t=this.renderElements(e.children);for(const e of t)"math"==e?.localName&&e.setAttribute("display","block");return this.h({tagName:this.currentParagraph?"span":"div",className:`${this.className}-math-paragraph`,style:{display:"block",textAlign:"center"},children:t})}renderMmlPhantom(e){return this.renderContainerNS(e,zs.mathML,"mphantom")}renderMmlAccent(e){const t=e.children?.find(e=>e.type==We.MmlBase),r=this.createMathMLElement("mo",null,[e.props?.char??"^"]),n=t?S(this.renderElement(t)).filter(e=>null!=e):[];return this.createMathMLElement("mover",null,[...n,r])}renderMmlRadical(e){const t=e.children.find(e=>e.type==We.MmlBase);if(e.props?.hideDegree)return this.createMathMLElement("msqrt",null,this.renderElements([t]));const r=e.children.find(e=>e.type==We.MmlDegree);return this.createMathMLElement("mroot",null,this.renderElements([t,r]))}renderMmlDelimiter(e){const t=[],r=e.props?.beginChar,n=e.props?.endChar;return""!==r&&t.push(this.createMathMLElement("mo",null,[r??"("])),t.push(...this.renderElements(e.children)),""!==n&&t.push(this.createMathMLElement("mo",null,[n??")"])),this.createMathMLElement("mrow",null,t)}renderMmlNary(e){const t=[],r=y(e.children,e=>e.type),n=r[We.MmlSuperArgument],a=r[We.MmlSubArgument],s=n?this.createMathMLElement("mrow",null,this.renderElements(n.children)):null,o=a?this.createMathMLElement("mrow",null,this.renderElements(a.children)):null,i=this.createMathMLElement("mo",null,[e.props?.char??"∫"]);return s&&o?t.push(this.createMathMLElement("munderover",null,[i,o,s])):s?t.push(this.createMathMLElement("mover",null,[i,s])):o?t.push(this.createMathMLElement("munder",null,[i,o])):t.push(i),r[We.MmlBase]&&t.push(...this.renderElements(r[We.MmlBase].children)),this.createMathMLElement("mrow",null,t)}renderMmlPreSubSuper(e){const t=[],r=y(e.children,e=>e.type),n=r[We.MmlSuperArgument],a=r[We.MmlSubArgument],s=this.createMathMLElement("mrow",null,n?this.renderElements(n.children):[]),o=this.createMathMLElement("mrow",null,a?this.renderElements(a.children):[]),i=this.createMathMLElement("mrow",null,[]);return t.push(this.createMathMLElement("msubsup",null,[i,o,s])),r[We.MmlBase]&&t.push(...this.renderElements(r[We.MmlBase].children)),this.createMathMLElement("mrow",null,t)}renderMmlGroupChar(e){const t="bot"===e.props?.verticalJustification?"munder":"mover",r=this.createMathMLElement("mrow",null,this.renderElements(e.children)),n=this.createMathMLElement("mo",null,[e.props?.char??"⏞"]);return this.createMathMLElement(t,null,[r,n])}renderMmlBar(e){const t={};switch(e.props.position){case"top":t.textDecoration="overline";break;case"bottom":t.textDecoration="underline"}return this.renderContainerNS(e,zs.mathML,"mrow",{style:t})}renderMmlRun(e){const t=this.extractMathRunText(e);if(null!=t){const r=this.renderMathTextTokens(t,e.cssStyle);return r.length?r:null}return this.renderContainerNS(e,zs.mathML,"mrow")}extractMathRunText(e){let t="";for(const r of e.children??[])switch(r.type){case We.Text:t+=r.text??"";break;case We.DeletedText:qs(Us(this.options))&&(t+=r.text??"");break;case We.Symbol:t+=String.fromCharCode(r.char);break;case We.Tab:t+=" ";break;case We.NoBreakHyphen:t+="‑";break;case We.SoftHyphen:break;default:return null}return t}renderMathTextTokens(e,t){const r=[];let n=0;for(;n<e.length;){const a=e[n];if(/\s/.test(a)){let t=n+1;for(;t<e.length&&/\s/.test(e[t]);)t++;r.push(this.createMathMLElement("mspace",{width:.25*Math.max(1,t-n)+"em"})),n=t;continue}if(fo(a)){let a=n+1;for(;a<e.length&&(fo(e[a])||"."==e[a]);)a++;r.push(this.createMathToken("mn",e.substring(n,a),t)),n=a;continue}if(go(a)){let a=n+1;for(;a<e.length&&go(e[a]);)a++;r.push(this.createMathToken("mi",e.substring(n,a),t)),n=a;continue}bo(a)?r.push(this.createMathToken("mo",a,t)):r.push(this.createMathToken("mtext",a,t)),n++}return r}createMathToken(e,t,r){return this.createMathMLElement(e,r?{style:r}:null,[t])}renderMllList(e){const t=this.renderElements(e.children).map(e=>this.createMathMLElement("mtr",null,[this.createMathMLElement("mtd",null,[e])]));return this.toHTML(e,zs.mathML,"mtable",t)}toH(e,t,r,n=null){const{$lang:a,"$lang-eastAsia":s,"$lang-bidi":o,...i}=e.cssStyle??{};return{ns:t,tagName:r,className:Vs(e.className,e.styleName&&this.processStyleName(e.styleName)),lang:a,style:this.darkenStyle(i),children:n??this.renderElements(e.children)}}darkenStyle(e){if(!this.options.darkMode)return e;const t=function(e,t){if(!e)return e;let r=e;for(const n in e){const a=e[n];if("string"!=typeof a||!a)continue;let s;Ds.has(n)||n.startsWith("--")&&n.endsWith("-color")?s=Bs(a,t):Is.has(n)&&(s=Hs(a,t)),void 0!==s&&s!==a&&(r===e&&(r={...e}),r[n]=s)}return r}(e);if(t===e)return e;const r={...t};for(const n in t){if(n.startsWith("--"))continue;const a=e[n],s=t[n];s===a||"string"!=typeof s||s.toLowerCase().includes("var(")||(r[n]=this.wrapForPrint(a,s))}return r}darkenColorAttr(e){if(!this.options.darkMode)return e;const t=Bs(e);return t===e||t.toLowerCase().includes("var(")?t:this.wrapForPrint(e,t)}wrapForPrint(e,t){let r=this.darkModeVarNames.get(e);return r||(r=`--docx-dm-${this.darkModeVarNames.size}`,this.darkModeVarNames.set(e,r),this.darkModePrintReset[r]=e),`var(${r}, ${t})`}renderDarkModePrintReset(){const e=Object.entries(this.darkModePrintReset);if(!this.options.darkMode||0===e.length)return[];const t=e.map(([e,t])=>` ${e}: ${t};\r\n`).join(""),r=`@media print {\r\n.${this.className} {\r\n${t}}\r\n}\r\n`;return[this.h({tagName:"style",children:[r]})]}toHTML(e,t,r,n=null){const a=this.h(this.toH(e,t,r,n));return 1===a?.nodeType&&this.applyElementRevisionMetadata(a,e),a}applyElementRevisionMetadata(e,t){const r=t.props?.revision;"insert"!==r?.kind&&"delete"!==r?.kind||(js(this.options)?(e.dataset.docxChangeKind=r.kind,e.style.setProperty("--docx-review-color",ao(r.author)),null!=r.id&&(e.dataset.docxChangeId=`${r.id}`),r.author&&(e.dataset.docxChangeAuthor=r.author),r.date&&(e.dataset.docxChangeDate=r.date)):"delete"===r.kind&&(e.style.display="none"));const n=t.props?.formatRevisions?.[0];n&&js(this.options)&&(e.dataset.docxFormatChange="true",e.style.setProperty("--docx-review-color",ao(n.author)),null!=n.id&&(e.dataset.docxChangeId=`${n.id}`),n.author&&(e.dataset.docxChangeAuthor=n.author),n.date&&(e.dataset.docxChangeDate=n.date))}findStyle(e){return e&&this.styleMap?.[e]}isTocParagraphStyle(e,t){return[e,t?.id,t?.name,t?.cssName,...t?.aliases??[]].filter(Boolean).map(e=>String(e).replace(/[\s_-]+/g,"").toLowerCase()).some(e=>/^toc[1-9]$/.test(e))}numberingClass(e,t){return`${this.className}-num-${e}-${t}`}numberingSelector(e,t){return`.${this.className} p.${this.numberingClass(e,t)}`}tabStopClass(){return`${this.className}-tab-stop`}scopeDocumentStyleSelector(e){const t=e.trim();return!t||t.startsWith(`.${this.className}`)||t.startsWith(`section.${this.className}`)||t.startsWith(`.${this.className}-wrapper`)?e:`.${this.className} ${e}`}styleToString(e,t,r=null){let n=`${e} {\r\n`;const a=this.darkenStyle(t);for(const e in a)e.startsWith("$")||(n+=` ${e}: ${a[e]};\r\n`);return r&&(n+=r),n+"}\r\n"}numberingCounter(e,t){return`${this.className}-num-${e}-${t}`}numberingRestartLevel(e){if(e.level<=0)return null;if(null==e.restart)return e.level-1;if(0==e.restart)return null;const t=e.restart-1;return t>=0&&t<e.level?t:null}numberingMarkerRunStyle(e,t){if(!e)return e;const r={...e};return t&&delete r["font-family"],r}normalizeNumberingLevelText(e,t,r){if("bullet"!=t||!e)return{text:e,normalized:!1};const n=(r?.["font-family"]??"").toLowerCase();let a=!1,s=null;if(n.includes("wingdings"))s=this.wingdingsBulletMap();else{if(!n.includes("symbol"))return{text:e,normalized:!1};s=this.symbolBulletMap()}let o="";for(const t of e){const e=s[t.charCodeAt(0)];e?(o+=e,a=!0):o+=t}return{text:o,normalized:a}}symbolBulletMap(){return{183:"•",8226:"•",61623:"•"}}wingdingsBulletMap(){return{61548:"●",61550:"■",61557:"◆",61598:"·",61599:"•",61600:"▪",61601:"○",61604:"◉",61605:"◎",61607:"▪",61608:"◻",61656:"➢",61672:"➔",61690:"▫",61691:"✗",61692:"✓",61693:"☒",61694:"☑"}}levelTextToContent(e,t,r,n,a){const s=[];let o=0;for(const t of e.matchAll(/%\d+/g)){t.index>o&&s.push(`"${this.escapeCssString(e.substring(o,t.index))}"`);let i=parseInt(t[0].substring(1),10)-1;const l=a?.get(`${r}:${i}`)??n??"decimal";s.push(`counter(${this.numberingCounter(r,i)}, ${l})`),o=t.index+t[0].length}const i=e.substring(o);i&&s.push(`"${this.escapeCssString(i)}"`);const l=this.numberingSuffixToCssContent(t);return l&&s.push(l),s.length>0?s.join(" "):'""'}numberingSuffixToCssContent(e){switch(e||"tab"){case"nothing":return"";case"space":return'"\\000020"';default:return'"\\000009"'}}escapeCssString(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\r?\n/g,"\\A ")}numFormatToCssValue(e){return{none:"none",bullet:"disc",decimal:"decimal",lowerLetter:"lower-alpha",upperLetter:"upper-alpha",lowerRoman:"lower-roman",upperRoman:"upper-roman",decimalZero:"decimal-leading-zero",aiueo:"katakana",aiueoFullWidth:"katakana",chineseCounting:"simp-chinese-informal",chineseCountingThousand:"simp-chinese-informal",chineseLegalSimplified:"simp-chinese-formal",chosung:"hangul-consonant",ideographDigital:"cjk-ideographic",ideographTraditional:"cjk-heavenly-stem",ideographLegalTraditional:"trad-chinese-formal",ideographZodiac:"cjk-earthly-branch",iroha:"katakana-iroha",irohaFullWidth:"katakana-iroha",japaneseCounting:"japanese-informal",japaneseDigitalTenThousand:"cjk-decimal",japaneseLegal:"japanese-formal",thaiNumbers:"thai",koreanCounting:"korean-hangul-formal",koreanDigital:"korean-hangul-formal",koreanDigital2:"korean-hanja-informal",hebrew1:"hebrew",hebrew2:"hebrew",hindiNumbers:"devanagari",ganada:"hangul",taiwaneseCounting:"cjk-ideographic",taiwaneseCountingThousand:"cjk-ideographic",taiwaneseDigital:"cjk-decimal"}[e]??e??"decimal"}refreshTabStops(e){const t=e?.querySelectorAll?Array.from(e.querySelectorAll("[data-docx-tab-id]")):this.currentTabs.map(e=>e.span);for(const e of t){if(!e.isConnected||!this.ownsLayoutElement(e))continue;const t=this.currentTabs[Number(e.dataset.docxTabId)];t&&(!hs(e,t.stops)&&this.options.experimental&&os(e,t.stops,this.defaultTabSize,ss()))}}createElementNS(e,t,r,n){return this.h({ns:e,tagName:t,children:n,...r})}createElement(e,t,r){return this.createElementNS(zs.html,e,t,r)}createMathMLElement(e,t,r){return this.createElementNS(zs.mathML,e,t,r)}createSvgElement(e,t,r){return this.createElementNS(zs.svg,e,t,r)}later(e){this.postRenderTasks.push(e)}}function fo(e){return e>="0"&&e<="9"}function go(e){if(!e)return!1;const t=e.charCodeAt(0);return t>=65&&t<=90||t>=97&&t<=122||t>=913&&t<=1023||t>=119808&&t<=120831}function bo(e){return"()+-−=<>≤≥≈≠×÷*/·∙∑Σ∏∫√∞∂∇,.;:[]{}|‖!′″→←↔⇒⇔∈∉⊂⊃⊆⊇∧∨¬".includes(e)}po.nextCommentId=0;function yo(e){const t=function(e){if(null==e)return 0;if("undefined"!=typeof Blob&&e instanceof Blob)return e.size;if("undefined"!=typeof ArrayBuffer){if(e instanceof ArrayBuffer)return e.byteLength;if(ArrayBuffer.isView(e))return e.byteLength}return"number"==typeof e.size?e.size:"number"==typeof e.byteLength?e.byteLength:"number"==typeof e.length?e.length:null}(e);if(0===t)throw new Error("文件为空或尚未保存,无法作为 Word 文档打开。请在 WPS/Word 中保存后重新上传。")}const xo={ignoreHeight:!1,ignoreWidth:!1,fixedPageHeight:!0,ignoreFonts:!1,breakPages:!0,strictWordCompatibility:!0,paginationTolerance:2,maxDynamicPaginationPasses:1e3,awaitLayout:!0,useWorker:!0,workerUrl:void 0,workerFactory:void 0,workerJsZipUrl:void 0,workerFallback:!0,workerTimeout:12e4,renderPageBatchSize:2,renderYieldEveryMs:16,progress:void 0,preserveComplexFieldResults:!0,updatePageReferences:!1,hideWebHiddenContent:!1,externalLinkPolicy:"allow",externalResourcePolicy:"block",darkMode:!1,debug:!1,experimental:!1,className:"docx",inWrapper:!0,hideWrapperOnPrint:!1,trimXmlDeclaration:!0,ignoreLastRenderedPageBreak:!1,renderHeaders:!0,renderFooters:!0,renderFootnotes:!0,renderEndnotes:!0,useBase64URL:!1,renderChanges:!1,reviewMode:void 0,reviewPresentation:"balloon",renderComments:!1,renderAltChunks:!0,h:Ws};function wo(e){const t={...xo,...e};return null!=e?.reviewMode&&null==e.renderComments&&(t.renderComments=!0),t}function vo(e,t,r){if("auto"!==t.reviewMode)return t;const n=_s(e,"auto");return t.reviewMode=n.enabled?n.mode:void 0,t.renderChanges=n.enabled,null==r?.renderComments&&(t.renderComments=n.enabled),t}function ko(e,t){const r=wo(t);return r.licenseToken,yo(e),function(e){return!(!e.useWorker||!e.workerFactory&&!e.workerUrl||"undefined"==typeof Worker)}(r)?Mo(e,r).catch(t=>{if(!r.workerFallback)throw t;r.debug&&console.warn("docx-preview: worker parsing failed; falling back to main thread",t);const n={...r,useWorker:!1};return Co(e,n)}):Co(e,r)}function Co(e,t){return yo(e),t.progress?.({phase:"parse",message:"Parsing DOCX on main thread"}),Ca.load(e,new Ka(t),t)}async function So(e,t){const r=vo(e,wo(t),t);r.licenseToken;const n=new po;return await n.render(e,r)}const No=new WeakMap;function Ao(e){const{h:t,progress:r,licenseToken:n,workerFactory:a,...s}=e;return{...s,useWorker:!1}}let Po=0;function Mo(e,t){const r={...xo,...t};return r.licenseToken,yo(e),!r.workerFactory&&!r.workerUrl||"undefined"==typeof Worker?Co(e,{...r,useWorker:!1}):(r.progress?.({phase:"worker",message:"Starting DOCX parse worker"}),new Promise((t,n)=>{const a=++Po,s=r.workerFactory?r.workerFactory():new Worker(r.workerUrl);let o=!1,i=null;const l=()=>{o=!0,i&&clearTimeout(i),s.terminate()};r.workerTimeout>0&&(i=setTimeout(()=>{o||(l(),n(new Error(`docx-preview worker timed out after ${r.workerTimeout}ms`)))},r.workerTimeout)),s.onerror=e=>{o||(l(),n(new Error(e.message||"docx-preview worker error")))},s.onmessage=e=>{const s=e.data??{};if(s.id===a||"ready"===s.type)if("progress"!==s.type){if("parsed"===s.type)return l(),r.progress?.({phase:"worker",message:"Worker parse complete"}),void t(Ca.fromSnapshot(s.snapshot,r));if("error"===s.type){l();const e=new Error(s.error?.message??"docx-preview worker parse failed");e.stack=s.error?.stack,n(e)}}else r.progress?.({phase:"worker",current:s.current,total:s.total,message:s.message})},s.postMessage({type:"parse",id:a,data:e,options:Ao(r),jsZipUrl:r.workerJsZipUrl})}))}async function $o(e,t){const r={...xo,...t},n=i(e);await l(e,[],n),await mo(e,n);const a=Array.from(e.querySelectorAll(`.${r.className}-wrapper`));if(e.classList?.contains(`${r.className}-wrapper`)&&a.unshift(e),r.breakPages&&r.fixedPageHeight&&!r.ignoreHeight&&a.length){const t=Math.max(2,r.maxDynamicPaginationPasses??120),s=()=>a.some(e=>"true"===e.dataset.docxPaginating||"true"===e.dataset.docxPaginationScheduled);for(let r=0;r<t;r++){await Do(),o(e,n);const t=a.find(e=>e.dataset.docxLayoutError);if(t)throw new Error(t.dataset.docxLayoutError);if(!s())break}if(s())throw new Error("DOCX layout did not settle within the configured pagination wait budget")}return await Do(),o(e,n),await mo(e,n),o(e,n),Lo(e,r)}const To=new WeakMap;function Fo(e){!function(e){r.get(e)?.cancel(),r.delete(e)}(e),To.get(e)?.(),To.delete(e),function(e){const t=new Set,r=[e,...Array.from(e.querySelectorAll("[data-docx-layout-root], [data-docx-comment-layer]"))];for(const e of r){const r=uo.get(e);r&&t.add(r),uo.delete(e)}for(const e of t)e.disposeLayout()}(e);const t=No.get(e);t&&e.removeEventListener("click",t),No.delete(e)}function Lo(e,t){const r={...xo,...t},n=Array.from(e.querySelectorAll(`section.${r.className}`)).map((e,t)=>{const n=Array.from(e.querySelectorAll("[data-docx-field-instr]")),a=Array.from(e.querySelectorAll("img")).filter(e=>!e.complete||0===e.naturalWidth).length,s=e.clientHeight>0&&e.scrollHeight>e.clientHeight+(r.paginationTolerance??2);return{index:t+1,section:e.dataset.docxSection??"",pageNumber:parseInt(e.dataset.docxPageNumber??`${t+1}`,10),sectionPageNumber:parseInt(e.dataset.docxSectionPageNumber??"1",10),width:e.clientWidth,height:e.clientHeight,scrollHeight:e.scrollHeight,overflow:s,textLength:e.textContent?.length??0,anchors:Array.from(e.querySelectorAll("[id]")).map(e=>e.id).filter(Boolean),fields:n.map(e=>({instruction:e.dataset.docxFieldInstr??"",value:e.textContent??""})),floats:e.querySelectorAll('[data-docx-float="true"]').length,unresolvedMedia:a}});return{pageCount:n.length,overflowPages:n.filter(e=>e.overflow).map(e=>e.index),unresolvedMedia:n.reduce((e,t)=>e+t.unresolvedMedia,0),textLength:n.reduce((e,t)=>e+t.textLength,0),fields:n.flatMap(e=>e.fields),floats:n.reduce((e,t)=>e+t.floats,0),pages:n}}function Ro(e,t="docx"){if(!e||"function"!=typeof getComputedStyle)return;const r=Array.from(e.querySelectorAll("p")),n=`${t}-num-`;for(const e of r){if(!e.className?.includes(n))continue;const t=getComputedStyle(e,"::before");if(!t.content||"none"==t.content||"normal"==t.content)continue;const r=Eo(e);if(!r||r==e)continue;const a=getComputedStyle(r);Bo(e,"--docx-marker-font-family",a.fontFamily),Bo(e,"--docx-marker-font-size",a.fontSize),Bo(e,"--docx-marker-font-style",a.fontStyle),Bo(e,"--docx-marker-font-weight",a.fontWeight)}}function Eo(e){const t=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);for(;t.nextNode();){const r=t.currentNode;if(!r.nodeValue?.trim())continue;const n=r.parentElement;if(!n||n==e)return e;const a=getComputedStyle(n);if("none"!=a.display&&"hidden"!=a.visibility)return n}return null}function Bo(e,t,r){r&&e.style.setProperty(t,r)}function Do(){return new Promise(e=>{const t=globalThis;"function"==typeof t.requestIdleCallback?t.requestIdleCallback(()=>e(),{timeout:32}):"function"==typeof t.requestAnimationFrame?t.requestAnimationFrame(()=>e()):setTimeout(e,0)})}e.awaitRenderedLayout=$o,e.collectDocxReviewChanges=Gs,e.collectLayoutSnapshot=Lo,e.defaultOptions=xo,e.disposeRenderedDocument=Fo,e.parseAsync=ko,e.parseAsyncInWorker=Mo,e.renderAsync=async function(e,t,r,n){const s=wo(n);s.licenseToken,Fo(t);const c=a(t),h=await ko(e,s);o(t,c,!1),vo(h,s,n);const d=await So(h,s);o(t,c,!1),r??(r=t),r===t||r.replaceChildren(),t.replaceChildren();let u=0;for(let e of d){("STYLE"===e.nodeName?r:t).appendChild(e),u++,s.renderYieldEveryMs>0&&u%8==0&&(await Do(),o(t,c,!1))}!function(e){const t=No.get(e);t&&e.removeEventListener("click",t);const r=t=>{const r=t;if(r.defaultPrevented||0!=r.button||r.metaKey||r.ctrlKey||r.shiftKey||r.altKey)return;const n=r.target;if(!(n instanceof Element))return;const a=n.closest('a[href^="#"]');if(!a||!e.contains(a))return;const s=a.getAttribute("href");if(!s||"#"==s)return;let o=s.substring(1);try{o=decodeURIComponent(o)}catch{return}const i=Array.from(e.querySelectorAll("[id]")).find(e=>e.id==o);i&&(r.preventDefault(),i.scrollIntoView({block:"start",inline:"nearest"}))};e.addEventListener("click",r),No.set(e,r)}(t),js(s)?(t.dataset.docxReviewEnabled="true",t.dataset.docxReviewMode=Us(s),t.dataset.docxReviewPresentation=s.reviewPresentation??"balloon"):(delete t.dataset.docxReviewEnabled,delete t.dataset.docxReviewMode,delete t.dataset.docxReviewPresentation),Ro(t,s.className);let m=null;if(s.awaitLayout)s.progress?.({phase:"layout",message:"Measuring rendered pages"}),m=await $o(t,s),o(t,c),Ro(t,s.className);else{const e=i(t,c);l(t,[],e).then(()=>mo(t,e)).catch(()=>{})}return function(e,t,r){To.get(e)?.();const n=e.ownerDocument.defaultView;if(!n||"function"!=typeof n.requestAnimationFrame||"function"!=typeof n.cancelAnimationFrame)return;let a=0,s=!1,o=!1,c=!1;const h=async()=>{if(a=0,s||o||!r.isCurrent()||!e.isConnected)return;const n=e.querySelector(`.${t.className}-wrapper`);if("true"!==n?.dataset.docxPaginating&&"true"!==n?.dataset.docxPaginationScheduled){o=!0,c=!1;try{const t=i(e,r);await l(e,[],t),await mo(e,t)}catch(e){r.isCurrent()&&"AbortError"!==e?.name&&(n&&(n.dataset.docxLayoutError=e?.message??"DOCX layout failed"),t.debug&&console.warn("DOCX layout refresh failed",e))}finally{o=!1,c&&d()}}},d=()=>{!s&&r.isCurrent()&&(o?c=!0:a||(a=n.requestAnimationFrame(()=>{h()})))},u=n.ResizeObserver?new n.ResizeObserver(d):null,m=e=>{const t=new Set(e.flatMap(e=>Array.from(e.addedNodes))),r=new Set(e.flatMap(e=>Array.from(e.removedNodes)));[...t,...r].some(e=>e.isConnected||!t.has(e)||!r.has(e))&&d()},p="function"==typeof n.MutationObserver?new n.MutationObserver(m):null;u?.observe(e),p?.observe(e,{childList:!0,subtree:!0}),n.addEventListener("resize",d),e.ownerDocument.fonts?.addEventListener?.("loadingdone",d);const f=()=>{s||(s=!0,n.cancelAnimationFrame(a),u?.disconnect(),p?.disconnect(),n.removeEventListener("resize",d),e.ownerDocument.fonts?.removeEventListener?.("loadingdone",d),r.signal.removeEventListener("abort",f))};r.signal.addEventListener("abort",f,{once:!0}),To.set(e,f)}(t,s,c),s.progress?.({phase:"done",current:m?.pageCount,total:m?.pageCount,message:"DOCX render complete"}),h},e.renderDocument=So,e.resolveDocxReviewState=_s,e.setDocxReviewMode=function(e,t){if(!e||"final"!==(r=t)&&"original"!==r&&"simple"!==r&&"all"!==r)return!1;var r;const n=Array.from(e.querySelectorAll("[data-docx-review-enabled='true']"));if("true"===e.dataset?.docxReviewEnabled&&n.unshift(e),0===n.length)return!1;for(const e of new Set(n))e.dataset.docxReviewMode=t;return!0},e.syncNumberingMarkerStyles=Ro,e.yieldToBrowser=Do});
26
+ */const ts={33:33,34:8704,35:35,36:8707,37:37,38:38,39:8715,40:40,41:41,42:8727,43:43,44:44,45:8722,46:46,47:47,48:48,49:49,50:50,51:51,52:52,53:53,54:54,55:55,56:56,57:57,58:58,59:59,60:60,61:61,62:62,63:63,64:8773,65:913,66:914,67:935,69:917,70:934,71:915,72:919,73:921,74:977,75:922,76:923,77:924,78:925,79:927,80:928,81:920,82:929,83:931,84:932,85:933,86:962,88:926,89:936,90:918,91:91,92:8756,93:93,94:8869,95:95,97:945,98:946,99:967,100:948,101:949,102:966,103:947,104:951,105:953,106:981,107:954,108:955,110:957,111:959,112:960,113:952,114:961,115:963,116:964,117:965,118:982,119:969,120:958,121:968,122:950,123:123,124:124,125:125,126:8764,160:8364,161:978,162:8242,163:8804,165:8734,166:402,167:9827,168:9830,169:9829,170:9824,171:8596,172:8592,173:8593,174:8594,175:8595,176:176,177:177,178:8243,179:8805,180:215,181:8733,182:8706,183:8226,184:247,185:8800,186:8801,187:8776,188:8230,191:8629,192:8501,193:8465,194:8476,195:8472,196:8855,197:8853,198:8709,199:8745,200:8746,201:8835,202:8839,203:8836,204:8834,205:8838,206:8712,207:8713,208:8736,209:8711,213:8719,214:8730,215:8901,216:172,217:8743,218:8744,219:8660,220:8656,221:8657,222:8658,223:8659,224:9674,225:9001,229:8721,241:9002,242:8747,243:8992,245:8993};class rs{constructor(e,t,r){this.className=e,this.createLayer=t,this.layoutContent=r,this.records=new Map,this.bindingRoot=null,this.binding=null,this.root=t(),this.root.dataset.docxCommentLayer="true"}add(e){this.records.set(e.key,e),this.root.appendChild(e.popup)}references(e,t){return Array.from(e.querySelectorAll("[data-docx-comment-reference]")).filter(e=>e.dataset.docxCommentReference===t.key)}place(e,t){const r=t.ownerDocument?.defaultView;if(!r||!t.isConnected||!this.root.isConnected)return;const n=this.root,a=n.getBoundingClientRect(),s=t.getBoundingClientRect(),o=e.references.find(e=>!e.closest("a"))??e.references[0]??t,i=o.getBoundingClientRect(),l=parseFloat(r.getComputedStyle(n).width),c=l>0?a.width/l:0;if(!(c>0&&Number.isFinite(c)&&s.width&&s.height&&i.width&&i.height))return;e.positionedReference!==o&&e.positionedReference&&delete e.positionedReference.dataset.docxCommentPositioned,e.positionedReference=o,e.reference=t;const h=(s.left-a.left)/c,d=(s.top-a.top)/c;let u=(i.left-a.left)/c;const m=(i.top-a.top)/c,p=i.width/c,f=o.closest("a");if(f){const e=f.getBoundingClientRect(),t=o.closest("section")??n,s=t.getBoundingClientRect(),i=r.getComputedStyle(t),h=(s.left-a.left)/c,d=(s.right-a.left)/c,m=(e.left-a.left)/c,g=(e.right-a.left)/c,b=4;u=[h+(parseFloat(i.paddingLeft)||0)-p-b,d-(parseFloat(i.paddingRight)||0)+b,h-p-b,d+b].find(e=>e>=0&&e+p<=l&&(e+p<=m-b||e>=g+b))??Math.max(l,g)+b}e.popup.style.position="absolute",e.popup.style.left=`${u}px`,e.popup.style.top=`${m}px`;const g=r.getComputedStyle(o);if(e.summary.style.fontSize=g.fontSize,e.summary.style.fontFamily=g.fontFamily,e.summary.style.lineHeight=g.lineHeight,e.summary.style.width=`${p}px`,e.summary.style.height=i.height/c+"px",f?delete o.dataset.docxCommentPositioned:o.dataset.docxCommentPositioned="true",e.popup.open){const t=e.body.getBoundingClientRect().width/c,n=Math.min(0,Math.max(-h,l-h-t));e.body.style.left=`${h-u+n}px`,e.body.style.maxWidth=`${Math.max(0,l)}px`;const o=a.height/c,p=Math.max(0,Math.min(o-d-s.height/c,(r.innerHeight-s.bottom)/c)),f=Math.max(0,Math.min(d,s.top/c)),g=p<120&&f>p;e.body.style.top=g?"auto":d-m+s.height/c+"px",e.body.style.bottom=g?m+i.height/c-d+"px":"auto",e.body.style.maxHeight=`${Math.max(1,g?f:p)}px`}}close(e){delete e.restoringOpen,e.revision++,e.opening?.abort(),e.opening=null,e.open=!1,e.popup.open=!1,e.references.forEach(e=>e.setAttribute("aria-expanded","false"))}activate(e,t,r,n=!1){if(!r.generation.isCurrent()||!t.isConnected)return Promise.resolve();delete e.restoringOpen,e.reference=t;const a=e.open;if(e.open=!0,e.popup.open=!0,e.references.forEach(e=>e.setAttribute("aria-expanded","true")),this.place(e,t),a&&!n)return e.layout??Promise.resolve();e.opening?.abort();const s=e.opening=new AbortController,o=++e.revision,i=()=>s.abort();r.generation.signal.addEventListener("abort",i,{once:!0});const c={signal:s.signal,cancel:i,isCurrent:()=>!s.signal.aborted&&r.generation.isCurrent()&&e.revision===o&&e.popup.open&&e.reference.isConnected};return e.body.dataset.docxCommentLayout="pending",e.layout=l(e.body,[],c).then(()=>{c.isCurrent()&&(this.layoutContent(e.body),this.place(e,e.reference),e.body.dataset.docxCommentLayout="ready")}).catch(t=>{e.revision===o&&(e.body.dataset.docxCommentLayout="AbortError"===t?.name?"cancelled":"failed")}).finally(()=>r.generation.signal.removeEventListener("abort",i)),e.layout}async bind(e,t){if(!e.isConnected||!t.isCurrent()||"function"!=typeof e.addEventListener)return;let r=this.binding;if(r&&r.generation.signal===t.signal&&(this.bindingRoot===e||this.bindingRoot.contains(e)))return r.generation=t,void await this.sync(this.bindingRoot,r,!0);r&&r.dispose(r.generation.isCurrent()&&e.isConnected),r=null;const n=[],a=(e,t,r,a=!1)=>{e.addEventListener(t,r,a),n.push(()=>e.removeEventListener(t,r,a))};let s=Array.from(this.records.values()).find(e=>e.popup.open)??null,o=null,i=!1,l=!1;const c=()=>{let t=e.getRootNode().activeElement??e.ownerDocument.activeElement;for(;t?.shadowRoot?.activeElement;)t=t.shadowRoot.activeElement;return t},h=e=>{const t=e.reference.hasAttribute("tabindex")?e.reference:e.summary;i=!0,t.focus(),i=!1},d=e=>e&&1===e.nodeType?e:null,u=e=>{const t=d(e)?.closest("[data-docx-comment-reference], [data-docx-comment-popup]");return t?this.records.get(t.dataset.docxCommentReference??t.dataset.docxCommentPopup):null},m=(e,t)=>{const r=t;return!!r&&(e.popup.contains(r)||e.references.some(e=>e.contains(r)))},p=(e=s)=>{e&&this.close(e),s===e&&(s=null)};r={generation:t,dispose:(t=!1)=>{n.splice(0).forEach(e=>e());for(const e of this.records.values())t||this.close(e),e.positionedReference&&delete e.positionedReference.dataset.docxCommentPositioned,delete e.positionedReference;this.binding===r&&(this.binding=null,this.bindingRoot=null),e.isConnected&&r.generation.isCurrent()||this.root.remove()}},this.binding=r,this.bindingRoot=e;const f=(e,t)=>{if(l)return;s&&s!==e&&this.close(s),s=e;const n=d(t),a=n?.closest("[data-docx-comment-reference]")??(e.summary.contains(n)?e.positionedReference:null)??e.reference;this.activate(e,a,r)};a(e,"mouseover",e=>{const t=u(e.target);if(t){if(s&&s!==t&&m(s,c()))return;o=t,f(t,e.target)}}),a(e,"mouseout",e=>{const t=e.relatedTarget;s&&!m(s,t)&&(o=null,m(s,c())||p())}),a(e,"focusin",e=>{const t=u(e.target);!i&&t&&d(e.target)?.dataset.docxCommentReference&&f(t,e.target)}),a(e,"focusout",e=>{s&&o!==s&&!m(s,e.relatedTarget)&&p()}),a(e,"click",e=>{const t=d(e.target)?.closest("[data-docx-comment-reference]"),r=t&&this.records.get(t.dataset.docxCommentReference);r&&(e.preventDefault(),e.stopPropagation(),r.popup.open?p(r):f(r,t))}),a(e,"keydown",e=>{const t=e,r=u(e.target);if(!r)return;const n=d(e.target)?.closest("[data-docx-comment-reference]");if(!n||"Enter"!==t.key&&" "!==t.key){if("Escape"===t.key)e.preventDefault(),e.stopPropagation(),p(r),h(r);else if("Tab"===t.key&&r.popup.open){const a=Array.from(r.body.querySelectorAll("a[href], button, input, select, textarea, [tabindex]")).filter(e=>e.tabIndex>=0&&!e.disabled);n&&!t.shiftKey&&a.length?(e.preventDefault(),a[0].focus()):t.shiftKey&&e.target===a[0]?(e.preventDefault(),h(r)):t.shiftKey||e.target!==a[a.length-1]||(h(r),p(r))}}else e.preventDefault(),e.stopPropagation(),r.popup.open?p(r):f(r,n)}),a(e,"toggle",e=>{const t=u(e.target);if(t&&e.target===t.popup&&!l){if(void 0!==t.restoringOpen){const e=t.restoringOpen;if(delete t.restoringOpen,t.popup.open===e)return}t.popup.open&&!t.open?f(t,t.reference):!t.popup.open&&t.open&&(this.close(t),s===t&&(s=null))}},!0);const g=e.ownerDocument.defaultView;if(g){const t=()=>{!l&&r.generation.isCurrent()&&this.sync(e,r,!0)};a(g,"resize",t),a(g,"scroll",t,!0);const s=new Map;a(g,"beforeprint",()=>{if(!l&&r.generation.isCurrent()){l=!0;for(const e of this.records.values())s.set(e,e.popup.open),e.popup.open=!0,this.layoutContent(e.body)}}),a(g,"afterprint",()=>{if(l){for(const[e,t]of s)e.restoringOpen=t,t||e.opening?.abort(),e.open=t,e.popup.open=t,e.references.forEach(e=>e.setAttribute("aria-expanded",`${t}`));s.clear(),l=!1,this.sync(e,r,!0)}});const o=g.MutationObserver;if(o){const t=new o(()=>{e.isConnected&&r.generation.isCurrent()||r.dispose()});t.observe(e.ownerDocument.documentElement,{childList:!0,subtree:!0});for(let r=e.getRootNode();r&&r!==e.ownerDocument;r=r.host?.getRootNode())t.observe(r,{childList:!0,subtree:!0});n.push(()=>t.disconnect())}}a(t.signal,"abort",()=>r.dispose()),await this.sync(e,r,!0)}async sync(e,t,r=!1){const n=[];for(const a of this.records.values()){const s=this.references(e,a);if(!s.length)continue;a.references=s;const o=s.includes(a.reference)?a.reference:s[0];this.place(a,o),t&&a.popup.open&&r?n.push(this.activate(a,o,t,!0)):a.layout&&n.push(a.layout)}await Promise.all(n)}}const ns={pos:0,leader:"none",style:"left"},as=.1;function ss(e=document.body){const t=document.createElement("div");t.style.width="100pt",e.appendChild(t);const r=100/t.offsetWidth;return e.removeChild(t),r}function os(e,t,r,n=.75){const a=e.closest("p");if(!a)return;const s=e.getBoundingClientRect(),o=a.getBoundingClientRect(),i=getComputedStyle(a);if("rtl"==i.direction||i.writingMode&&"horizontal-tb"!=i.writingMode)return;const l=is(i.marginInlineStart||i.marginLeft),c=is(i.marginInlineEnd||i.marginRight),h=is(i.textIndent),d=t?.length>0?t.map(e=>({pos:ls(e.position),leader:e.leader,style:e.style})).sort((e,t)=>e.pos-t.pos):[ns],u=l*n,m=d.some(e=>Math.abs(e.pos-u)<=as);h<-.1&&u>as&&!m&&(d.push({...ns,pos:u}),d.sort((e,t)=>e.pos-t.pos));const p=d[d.length-1],f=(o.width+l+c)*n,g=Number.isFinite(ls(r))?ls(r):36;let b=p.pos+g;if(b<f)for(;b<f&&d.length<50;b+=g)d.push({...ns,pos:b});const y=o.left-l,x=(s.left-y)*n,w=d.find(e=>"clear"!=e.style&&e.pos>x);if(null==w)return;if(!["left","right","center"].includes(w.style||"left"))return;let v=1;if("right"==w.style||"center"==w.style){const t=Array.from(a.querySelectorAll(`.${e.className}`)),r=t.indexOf(e)+1,s=document.createRange();s.setStart(e,1),r<t.length?s.setEndBefore(t[r]):s.setEnd(a,a.childNodes.length);const o="center"==w.style?.5:1,i=s.getBoundingClientRect(),l=i.left+o*i.width-y;v=w.pos-l*n}else v=w.pos-x;const k=Math.max(Number.isFinite(v)?v:0,0);switch(" "!==e.textContent&&(e.textContent=" "),e.style.display="inline-block",e.style.width=`${k.toFixed(2)}pt`,e.style.minWidth="0pt",e.style.lineHeight="1",e.style.whiteSpace="nowrap",e.style.wordSpacing="normal",e.style.textDecoration="none",e.style.borderBottom="",e.style.height="",e.style.transform="",w.leader){case"dot":case"middleDot":e.style.borderBottom="1px dotted currentColor",e.style.height=".85em",e.style.transform="translateY(-.18em)";break;case"hyphen":case"heavy":case"underscore":e.style.borderBottom="1px solid currentColor",e.style.height=".85em",e.style.transform="translateY(-.18em)"}}function is(e){const t=parseFloat(e);return Number.isFinite(t)?t:0}function ls(e){return parseFloat(e)}function cs(e){const t=/^\s*([-+]?(?:\d+(?:\.\d*)?|\.\d+))(pt|px|pc|in|cm|mm)?\s*$/i.exec(e??"");if(!t)return null;const r={pt:1,px:.75,pc:12,in:72,cm:72/2.54,mm:72/25.4}[t[2]?.toLowerCase()??"pt"],n=Number(t[1])*r;return Number.isFinite(n)?n:null}function hs(e,t){const r="explicit"==e.dataset.docxTabLayout,n=r?e.dataset.docxTabFallbackWidth??"":e.style.width,a=r?e.dataset.docxTabFallbackMinWidth??"":e.style.minWidth??"",s=e.style.display,o=()=>(r&&(e.style.width=n,e.style.minWidth=a),e.style.display=s,!1),i=e.closest("p"),l=e.ownerDocument?.defaultView;if(!i||!l||!e.isConnected)return o();const c=l.getComputedStyle(i);if("rtl"==c.direction||c.writingMode&&"horizontal-tb"!=c.writingMode)return o();const h=t.filter(e=>"clear"!=e.style).map(e=>({...e,point:cs(e.position)}));if(!h.length||h.some(e=>null==e.point))return o();h.sort((e,t)=>e.point-t.point);const d=e.style.width;e.style.display="inline-block",e.style.width="0pt";const u=e.getBoundingClientRect(),m=i.getBoundingClientRect(),p=is(c.width)+("border-box"==c.boxSizing?0:is(c.paddingLeft)+is(c.paddingRight)+is(c.borderLeftWidth)+is(c.borderRightWidth)),f=p>0?m.width/p:0;if(!(f>0&&Number.isFinite(f)))return e.style.width=d,o();const g=m.left/f-is(c.marginLeft),b=.75*(u.left/f-g),y=h.find(e=>e.point>b+as);if(!y||!["left","right","center"].includes(y.style||"left")||y.leader&&"none"!=y.leader)return e.style.width=d,o();const x=e=>{for(;e&&e!=i;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}return null};let w=null;for(let t=x(e);t;){if(1==t.nodeType){const e=t;if("BR"==e.tagName||"P"==e.tagName||"true"==e.dataset.docxTab||"true"==e.dataset.docxDrawing){w=e;break}}t=t.firstChild??x(t)}let v=0;if("right"==y.style||"center"==y.style){const t=e.ownerDocument.createRange();if(t.setStartAfter(e),w?t.setEndBefore(w):t.setEnd(i,i.childNodes.length),v=t.getBoundingClientRect().width/f*.75,!Number.isFinite(v))return e.style.width=d,o()}const k="right"==y.style?1:"center"==y.style?.5:0,C=Math.max(0,y.point-b-k*v);return" "!==e.textContent&&(e.textContent=" "),e.style.width=`${C.toFixed(2)}pt`,e.style.minWidth="0pt",e.style.lineHeight="1",e.style.whiteSpace="nowrap",e.style.wordSpacing="normal",e.dataset.docxTabLayout="explicit",e.dataset.docxTabFallbackWidth=n,e.dataset.docxTabFallbackMinWidth=a,!0}function ds(e,t,r){if(!t||![t.start,t.size,r].every(Number.isFinite))return null;if(e.alignSpecified)return"center"==e.align?t.start+(t.size-r)/2:"right"==e.align||"bottom"==e.align?t.start+t.size-r:"left"==e.align||"top"==e.align?t.start:null;const n=cs(e.offset??"0pt");return null==n?null:t.start+4*n/3}const us=e=>Number.parseFloat(e)||0;function ms(e,t,r){const n=e.ownerDocument?.defaultView,a=e.closest("p"),s=e.closest("[data-docx-comment-story]")??e.closest(`section.${r}`);if(!(n&&a&&s&&e.isConnected))return;if(a.closest("foreignObject"))return;const o=n.getComputedStyle(a);if("rtl"==o.direction||o.writingMode&&"horizontal-tb"!=o.writingMode)return;const i=n.getComputedStyle(s),l=s.getBoundingClientRect(),c=us(i.width)+("border-box"==i.boxSizing?0:us(i.paddingLeft)+us(i.paddingRight)+us(i.borderLeftWidth)+us(i.borderRightWidth)),h=c>0?l.width/c:0;if(!(h>0&&Number.isFinite(h)))return;const d=(e,t=!1)=>{const r=e.getBoundingClientRect(),a=n.getComputedStyle(e),s=t?us(a.borderLeftWidth)+us(a.paddingLeft):0,o=t?us(a.borderTopWidth)+us(a.paddingTop):0,i=t?us(a.borderRightWidth)+us(a.paddingRight):0,l=t?us(a.borderBottomWidth)+us(a.paddingBottom):0;return{x:{start:r.left/h+s,size:r.width/h-s-i},y:{start:r.top/h+o,size:r.height/h-o-l}}},u=d(s),m=d(s,!0),p=d(a);if(p.x.size<=0||p.y.size<=0)return;const f=a.closest("article, header, footer");if(!f)return;const g=d(f,!0),b=n.getComputedStyle(f),y=e.previousElementSibling,x="true"==y?.dataset.docxAnchorMarker?d(y):null,w=y?.querySelector?.('[data-docx-anchor-line="top"]'),v=y?.querySelector?.('[data-docx-anchor-line="bottom"]'),k=w?d(w).y.start:null,C=v?d(v).y.start:null,S=null!=k&&null!=C&&C>k?{start:k,size:C-k}:null,N={...g.x},A=us(b.columnCount),P=us(b.columnWidth);if(A>1||P>0){const e="normal"==b.columnGap?us(b.fontSize):us(b.columnGap),t=P>0?Math.max(1,Math.floor((N.size+e)/(P+e))):A,r=A>0?Math.min(A,t):t,n=(N.size+e)/r;if(!(n>0))return;const a=x?.x.start??p.x.start-us(o.marginLeft),s=Math.max(0,Math.min(r-1,Math.floor((a-N.start+.1)/n)));N.start+=s*n,N.size=n-e}const M=!1!==t.layoutInCell?a.closest("td, th"):null,$=M?d(M,!0):null,T=(e,t)=>$&&["page","margin","column","cell"].includes(t)?$[e]:"page"==t?u[e]:"margin"==t?m[e]:"column"==t?"x"==e?N:g.y:"paragraph"==t?p[e]:"character"==t?x?.[e]:"line"==t?"y"==e?S:x?.x:"cell"==t&&M?d(M,!0)[e]:null,F=n.getComputedStyle(e),L={x:us(F.width),y:us(F.height)},R={x:p.x.start+us(o.borderLeftWidth),y:p.y.start+us(o.borderTopWidth)};for(const[r,n]of[["x",t.horizontal],["y",t.vertical]]){const t=ds(n,T(r,n.relative),L[r]),a=cs(n.offset??"0pt");if(null==t||null==a)continue;const s=t-R[r]-4*a/3;e.style.setProperty(`--docx-anchor-origin-${r}`,`${(Math.abs(s)<5e-5?0:s).toFixed(4)}px`)}}const ps=new WeakMap,fs=e=>Number.parseFloat(e)||0;function gs(e,t=()=>!0){const r=e.ownerDocument.defaultView;if(!r)return;const n=e.getBoundingClientRect(),a=r.getComputedStyle(e),s=fs(a.width)+("border-box"===a.boxSizing?0:fs(a.paddingLeft)+fs(a.paddingRight)+fs(a.borderLeftWidth)+fs(a.borderRightWidth)),o=s?n.width/s:0;if(Number.isFinite(o)&&!(o<=0))for(const n of Array.from(e.querySelectorAll('[data-docx-anchor-horizontal="column"], [data-docx-anchor-horizontal="margin"]'))){if(null!=n.dataset.docxAnchorId||!t(n))continue;const a=n.closest('[data-docx-anchor-context="paragraph"]');if(!a||n.offsetParent!==a||"absolute"!==r.getComputedStyle(n).position||!n.style.left)continue;if(a.closest("td, th"))continue;const s="margin"===n.dataset.docxAnchorHorizontal?e:a.closest("article, header, footer");if(!s||!e.contains(s)&&s!==e)continue;const i=r.getComputedStyle(s);let l=s.getBoundingClientRect().left+(fs(i.borderLeftWidth)+fs(i.paddingLeft))*o;const c=r.getComputedStyle(a),h=a.getBoundingClientRect();if(s!==e){const e=fs(i.columnCount),t=fs(i.columnWidth);if(e>1||t>0){const r="normal"===i.columnGap?fs(i.fontSize):fs(i.columnGap),n=s.clientWidth-fs(i.paddingLeft)-fs(i.paddingRight),a=(n+r)/(e>0?e:Math.max(1,Math.floor((n+r)/(t+r))));if(a>0){const e=(h.left-l)/o-fs(c.marginLeft);l+=Math.round(e/a)*a*o}}}const d=(l-(h.left+fs(c.borderLeftWidth)*o))/o;if(!Number.isFinite(d))continue;const u=ps.get(n)??n.style.left;ps.set(n,u),n.style.left=Math.abs(d)<.01?u:`calc(${u} + ${d.toFixed(4)}px)`}}const bs=new WeakMap,ys=/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:px|pt|pc|in|cm|mm)?$/i,xs=e=>""!==e&&"none"!==e&&"normal"!==e;function ws(e,t){for(let r=e.parentElement;r;r=r.parentElement){const e=t.getComputedStyle(r);if(e.position&&"static"!==e.position||xs(e.transform)||xs(e.perspective)||xs(e.filter)||/(?:layout|paint|strict|content)/.test(e.contain)||/(?:transform|perspective|filter)/.test(e.willChange))return r}return null}function vs(e,t=()=>!0){const r=e.ownerDocument.defaultView;if(!r)return 0;const n=r.getComputedStyle(e),a=fs(n.width)+("border-box"===n.boxSizing?0:fs(n.paddingLeft)+fs(n.paddingRight)+fs(n.borderLeftWidth)+fs(n.borderRightWidth)),s=a>0?e.getBoundingClientRect().width/a:0;if(!Number.isFinite(s)||s<=0)return 0;let o=0;for(const n of Array.from(e.querySelectorAll('svg[data-docx-float="true"]'))){if(null!=n.dataset.docxAnchorId||!t(n))continue;if("http://www.w3.org/2000/svg"!==n.namespaceURI||n.ownerSVGElement||"absolute"!==r.getComputedStyle(n).position)continue;const a=!("text"!==n.dataset.docxAnchorHorizontal||!n.style.left&&!n.style.marginLeft||n.style.right&&"auto"!==n.style.right),i=!("text"!==n.dataset.docxAnchorVertical||!n.style.top&&!n.style.marginTop||n.style.bottom&&"auto"!==n.style.bottom);if(!a&&!i)continue;const l=n.closest("p");if(!l||l.closest("td, th, svg, [data-docx-shape-textbox]"))continue;const c=l.closest("article, header, footer"),h=ws(n,r);if(!c||!e.contains(c)||!h||h!==l&&h!==c&&h!==e)continue;const d=r.getComputedStyle(h),u=h.getBoundingClientRect(),m=r.getComputedStyle(l);if("rtl"===m.direction||m.writingMode&&"horizontal-tb"!==m.writingMode)continue;const p=bs.get(n)??{left:n.style.left,top:n.style.top},f=e=>!e||"auto"===e||ys.test(e);if(a&&(!f(p.left)||!f(n.style.marginLeft))||i&&(!f(p.top)||!f(n.style.marginTop)))continue;let g=p.left;if(a){const e=r.getComputedStyle(c);let t=c.getBoundingClientRect().left+(fs(e.borderLeftWidth)+fs(e.paddingLeft))*s;const n=l.getBoundingClientRect(),a=fs(e.columnCount),o=fs(e.columnWidth);if(a>1||o>0){const r="normal"===e.columnGap?fs(e.fontSize):fs(e.columnGap),i=c.clientWidth-fs(e.paddingLeft)-fs(e.paddingRight),l=(i+r)/(a>0?a:Math.max(1,Math.floor((i+r)/(o+r))));if(!(l>0))continue;const h=(n.left-t)/s-fs(m.marginLeft);t+=Math.round(h/l)*l*s}const i=(t-u.left)/s-fs(d.borderLeftWidth);if(!Number.isFinite(i))continue;const h=p.left&&"auto"!==p.left?p.left:"0px";g=Math.abs(i)<.01?h:`calc(${h} + ${i.toFixed(4)}px)`}if(bs.set(n,p),a&&(n.style.left=g),i){const e=(l.getBoundingClientRect().top-u.top)/s+fs(m.borderTopWidth)-fs(d.borderTopWidth),t=p.top&&"auto"!==p.top?p.top:"0px";Number.isFinite(e)&&(n.style.top=Math.abs(e)<.01?t:`calc(${t} + ${e.toFixed(4)}px)`)}o++}return o}const ks=e=>Number.parseFloat(e)||0;function Cs(e,t,r){for(const n of Array.from(e.querySelectorAll("[data-docx-vml-text-viewport]"))){if(!r(n))continue;const e=n.ownerSVGElement;if(!e||"true"!==e.dataset.docxVml)continue;const a=e.getScreenCTM?.();if(!a)continue;const s=Math.hypot(a.a,a.b)/t,o=Math.hypot(a.c,a.d)/t,i=n.dataset.docxVmlTextViewport.split(" ").map(Number);if([s,o].every(e=>Number.isFinite(e)&&e>0)&&4===i.length&&i.every(Number.isFinite)&&!(Math.abs(a.a*a.c+a.b*a.d)>1e-5*t*t*s*o)){for(const[e,t]of["x","y","width","height"].entries())n.setAttribute(t,""+i[e]*(e%2?o:s));n.setAttribute("transform",`scale(${1/s} ${1/o})`)}}}function Ss(e){const t=/^([+-]?(?:\d+(?:\.\d*)?|\.\d+))(pt|px|in|cm|mm|pc)?$/i.exec(e?.trim()||"");if(!t)return null;const r=Number(t[1])*({pt:4/3,px:1,in:96,cm:96/2.54,mm:96/25.4,pc:16}[t[2]?.toLowerCase()||"px"]??1);return Number.isFinite(r)?r:null}function Ns(e){return ks(e.width)+("border-box"===e.boxSizing?0:ks(e.paddingLeft)+ks(e.paddingRight)+ks(e.borderLeftWidth)+ks(e.borderRightWidth))}function As(e,t){const r=t.ownerDocument.createTreeWalker(t,1);r.currentNode=e;for(let e=r.nextNode();e;e=r.nextNode())if(e.closest("p")!==t||e.matches("br, [data-docx-tab], [data-docx-float], [data-docx-frame-anchor]"))return e;return null}function Ps(e,t=()=>!0){const r=e.ownerDocument.defaultView;if(!r)return 0;const n=new Map;for(const r of Array.from(e.querySelectorAll('[data-docx-tab="true"][data-docx-tab-pos]'))){if(null!=r.dataset.docxTabId||!t(r))continue;const a=r.closest("p");if(!a||!e.contains(a)||r.closest('[data-docx-has-tab-leader="true"], [data-docx-toc-entry="true"]')||r.dataset.docxTabLeader&&"none"!==r.dataset.docxTabLeader||!["left","right","center"].includes(r.dataset.docxTabAlign||"left")||null===Ss(r.dataset.docxTabPos))continue;const s=n.get(a)||[];s.push(r),n.set(a,s)}let a=0;for(const[e,t]of n){const n=r.getComputedStyle(e);if("rtl"===n.direction||n.writingMode&&"horizontal-tb"!==n.writingMode||"center"===n.textAlign||"right"===n.textAlign||"end"===n.textAlign)continue;const s=e.getBoundingClientRect(),o=Ns(n),i=o>0?s.width/o:0;if(!Number.isFinite(i)||i<=0||s.width<=0)continue;const l=s.left+(ks(n.borderLeftWidth)+ks(n.paddingLeft))*i;for(const e of t)e.style.width="0px",e.style.minWidth="0px";for(const r of t){const t=Ss(r.dataset.docxTabPos),n=r.getBoundingClientRect(),s=e.ownerDocument.createRange();s.setStartAfter(r);const o=As(r,e);o?s.setEndBefore(o):s.setEnd(e,e.childNodes.length);const c=Array.from(s.getClientRects()).filter(e=>e.width>0&&e.bottom>n.top+.1&&e.top<n.bottom-.1);let h=Number.POSITIVE_INFINITY,d=Number.NEGATIVE_INFINITY;for(const e of c)h=Math.min(h,e.left),d=Math.max(d,e.right);const u=c.length?Math.max(0,d-h)/i:0,m="right"===r.dataset.docxTabAlign?1:"center"===r.dataset.docxTabAlign?.5:0,p=Math.max(0,t-(n.left-l)/i-u*m);Number.isFinite(p)&&(r.style.width=`${p.toFixed(4)}px`,a++)}}return a}const Ms=Math.pow(6/29,3);function $s(e){return e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92}function Ts(e){const t=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e;return Math.min(Math.max(0,t),1)}const Fs={black:[0,0,0],blue:[0,0,255],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgray:[169,169,169],darkgrey:[169,169,169],darkgreen:[0,100,0],darkmagenta:[139,0,139],darkred:[139,0,0],darkyellow:[128,128,0],green:[0,128,0],gray:[128,128,128],grey:[128,128,128],lightgray:[211,211,211],lightgrey:[211,211,211],magenta:[255,0,255],red:[255,0,0],white:[255,255,255],yellow:[255,255,0]};function Ls(e){return Math.min(255,Math.max(0,e))}const Rs=new Map,Es=/^var\(\s*(--[\w-]+)\s*,\s*([\s\S]+)\)$/i;function Bs(e,t=21.247){if(!e)return e;const r=e.trim(),n=r.toLowerCase();if(n.startsWith("var(")){const n=Es.exec(r);if(!n)return e;const a=n[2].trim(),s=Bs(a,t);return s===a?e:`var(${n[1]}, ${s})`}if(function(e){return""===e||"none"===e||"transparent"===e||"inherit"===e||"initial"===e||"unset"===e||"currentcolor"===e||e.startsWith("var(")||e.startsWith("color-mix(")||e.startsWith("url(")||e.startsWith("linear-gradient(")||e.startsWith("radial-gradient(")||e.startsWith("conic-gradient(")}(n))return e;const a=`${t}|${r}`,s=Rs.get(a);if(void 0!==s)return s;const o=function(e){const t=e.trim();if(t.startsWith("#")){const e=t.slice(1);if(3===e.length||4===e.length){const t=parseInt(e[0]+e[0],16),r=parseInt(e[1]+e[1],16),n=parseInt(e[2]+e[2],16),a=4===e.length?parseInt(e[3]+e[3],16)/255:1;return Number.isNaN(t)||Number.isNaN(r)||Number.isNaN(n)?null:{r:t,g:r,b:n,a:a}}if(6===e.length||8===e.length){const t=parseInt(e.slice(0,2),16),r=parseInt(e.slice(2,4),16),n=parseInt(e.slice(4,6),16),a=8===e.length?parseInt(e.slice(6,8),16)/255:1;return Number.isNaN(t)||Number.isNaN(r)||Number.isNaN(n)?null:{r:t,g:r,b:n,a:a}}return null}const r=/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i.exec(t);if(r)return{r:Ls(parseFloat(r[1])),g:Ls(parseFloat(r[2])),b:Ls(parseFloat(r[3])),a:void 0!==r[4]?parseFloat(r[4]):1};const n=Fs[t.toLowerCase()];return n?{r:n[0],g:n[1],b:n[2],a:1}:null}(r);if(!o||0===o.a)return Rs.set(a,e),e;const[i,l,c]=function(e,t,r){const n=$s(e/255),a=$s(t/255),s=$s(r/255);let o=100*(.4124564*n+.3575761*a+.1804375*s)/95.047,i=100*(.2126729*n+.7151522*a+.072175*s)/100,l=100*(.0193339*n+.119192*a+.9503041*s)/108.883;const c=e=>e>Ms?Math.cbrt(e):7.787*e+16/116;return o=c(o),i=c(i),l=c(l),[116*i-16,500*(o-i),200*(i-l)]}(o.r,o.g,o.b),h=(100-t)/100*(100-i)+t,[d,u,m]=function(e,t,r){const n=(e+16)/116,a=n-r/200,s=e=>e*e*e>Ms?e*e*e:(e-16/116)/7.787,o=95.047*s(n+t/500)/100,i=100*s(n)/100,l=108.883*s(a)/100,c=Ts(3.2404542*o+-1.5371385*i+-.4985314*l),h=Ts(-.969266*o+1.8760108*i+.041556*l),d=Ts(.0556434*o+-.2040259*i+1.0572252*l);return[Math.round(255*c),Math.round(255*h),Math.round(255*d)]}(h,l,c),p=o.a>=1?`rgb(${d}, ${u}, ${m})`:`rgba(${d}, ${u}, ${m}, ${Math.round(1e3*o.a)/1e3})`;return Rs.set(a,p),p}const Ds=new Set(["color","background-color","border-color","border-top-color","border-right-color","border-bottom-color","border-left-color","outline-color","text-decoration-color","caret-color","column-rule-color","fill","stroke"]),Is=new Set(["border","border-top","border-right","border-bottom","border-left","outline","column-rule"]),Os=/(var\([^)]*\)|rgba?\([^)]*\)|#[0-9a-fA-F]{3,8}|[a-zA-Z]+)\s*$/;function Hs(e,t){return e?e.replace(Os,e=>Bs(e,t)):e}var zs;function Ws(e){if(v(e))return document.createTextNode(e);if(e instanceof Node)return e;const{ns:t,tagName:r,className:n,style:a,children:s,...o}=e;if("#fragment"===r){const e=document.createDocumentFragment();return s?.forEach(t=>e.appendChild(Ws(t))),e}if("#comment"===r)return document.createComment(s[0]);const i=t?document.createElementNS(t,r):document.createElement(r);if(n&&i.setAttribute("class",n),a)if(v(a))i.setAttribute("style",a);else for(const[e,t]of Object.entries(a))null!=t&&(e.startsWith("--")||e.includes("-")?i.style.setProperty(e,t):i.style[e]=t);if(o)for(const[e,t]of Object.entries(o))void 0!==t&&(i[e]=t);return s&&s.forEach(e=>i.appendChild(Ws(e))),i}function Vs(...e){return e.filter(Boolean).join(" ")}function Us(e){const t=e?.reviewMode;return"final"===t||"original"===t||"simple"===t||"all"===t?t:e?.renderChanges||"auto"===t?"all":"final"}function js(e){return null!=e?.reviewMode||!0===e?.renderChanges}function qs(e){return"original"===e}function Gs(e){const t=[],r=e=>{if(!e)return;if(e.type===We.Paragraph)return void t.push(...function(e){const t=[];let r=null;const n=()=>{if(!r)return;const e=Zs(r.text);(e||r.structural)&&t.push(Ks(r.revision,e||"段落标记",r.structural,r.ids)),r=null},a=(e,t,a=!1)=>{const s=e.id;r&&Js(r.revision)===Js(e)?(null==s||r.ids.includes(s)||r.ids.push(s),r.structural||(r.structural=a)):(n(),r={revision:e,ids:null==s?[]:[s],text:"",structural:a}),r.text+=t},s=e=>{const r=e.props?.formatRevisions??[];if(r.length){n();for(const e of r)t.push(Ys(e))}};s(e);for(const t of e.props?.paragraphMarkRevisions??[]){const e=Xs(t,"delete"===t?.kind?We.Deleted:We.Inserted);e&&a(e,"","delete"===e.kind||"move-from"===e.kind)}const o=(e,t)=>{if(!e)return;s(e);const r=Xs(e.props?.revision,e.type),i=r?[...t,r]:t,l=function(e){return e.type===We.Text||e.type===We.DeletedText?e.text??"":e.type===We.Tab||e.type===We.PositionalTab?"\t":e.type===We.Break?"\n":e.type===We.NoBreakHyphen?"‑":null}(e);if(null!=l){const e=i[i.length-1];return void(e?a(e,l):l.length&&n())}for(const t of e.children??[])o(t,i)};for(const t of e.children??[])o(t,[]);return n(),t}(e));const n=Xs(e.props?.revision,e.type);if(n&&e.type!==We.Inserted&&e.type!==We.Deleted){const r=Zs(so(e));t.push(Ks(n,r||function(e){switch(e){case We.Row:return"表格行";case We.Cell:return"表格单元格";case We.Table:return"表格";case We.Paragraph:return"段落标记";default:return"结构修订"}}(e.type),!0))}for(const r of e.props?.formatRevisions??[])t.push(Ys(r));for(const t of e.children??[])r(t)};r(e?.documentPart?.body??e);for(const r of e?.commentsPart?.comments??[]){const e=null==r.id?void 0:String(r.id);t.push({id:e,ids:null==e?[]:[e],kind:"comment",author:r.author||void 0,date:r.date||void 0,text:Zs(so(r)),presentation:"balloon"})}return t}function _s(e,t){if("auto"===t){const t=Gs(e).length;return{enabled:t>0,mode:t>0?"all":"final",automatic:!0,changeCount:t}}return{enabled:null!=t,mode:Us({reviewMode:t??void 0}),automatic:!1,changeCount:0}}function Xs(e,t){if(!e)return null;const r=function(e,t){return"insert"===e||"delete"===e||"move-from"===e||"move-to"===e?e:t===We.Deleted?"delete":"insert"}(e.kind,t);return"insert"!==r&&"delete"!==r&&"move-from"!==r&&"move-to"!==r?null:{id:null==e.id?void 0:String(e.id),kind:r,author:e.author||void 0,date:e.date||void 0}}function Ks(e,t,r=!1,n){const a=no(n??(null==e.id?[]:[e.id]));return{id:a[0],ids:a,kind:e.kind,author:e.author,date:e.date,text:t||(r?"结构修订":""),presentation:"insert"===e.kind||"move-to"===e.kind?"inline":"balloon"}}function Ys(e){const t=null==e?.id?void 0:String(e.id),r=(n=e?.formatChanges,Array.isArray(n)?n.filter(e=>e&&e.property).map(e=>({property:String(e.property),before:null==e.before?void 0:String(e.before),after:null==e.after?void 0:String(e.after)})):[]);var n;return{id:t,ids:null==t?[]:[t],kind:"format",author:e?.author||void 0,date:e?.date||void 0,text:Qs(r,e?.kind),presentation:"balloon",formatChanges:r}}function Js(e){return[e.kind,e.author??"",e.date??""].join("\0")}function Zs(e){return String(e??"").replace(/[\u2060\u200b]/g,"").replace(/[ \t]+\n/g,"\n").trim()}function Qs(e,t){if(!e.length)return ro(t);return no(e.map(e=>function(e){const t=function(e){if(null==e)return;const t=/(?:^|\|)val=([^|]+)/.exec(e);return t?.[1]??e}(e.after);switch(e.property){case"u":return null==t||"none"===t||"0"===t||"false"===t?"无下划线":function(e){switch(e){case"single":return"单下划线";case"double":return"双下划线";case"words":return"仅字词下划线";case"wave":case"wavyDouble":case"wavyHeavy":return"波浪下划线";default:return"下划线"}}(t);case"b":return eo(t)?"加粗":"取消加粗";case"i":return eo(t)?"倾斜":"取消倾斜";case"strike":return eo(t)?"删除线":"取消删除线";case"dstrike":return eo(t)?"双删除线":"取消双删除线";case"color":return t?`字体颜色 ${to(t)}`:"自动字体颜色";case"highlight":return t&&"none"!==t?`突出显示 ${t}`:"无突出显示";case"sz":case"szCs":return t&&!Number.isNaN(Number(t))?`字号 ${Number(t)/2} 磅`:"字号已更改";case"rFonts":return t?`字体 ${function(e){const t=e.split("|").map(e=>e.split("=")).filter(e=>2===e.length),r=t.find(([e])=>"eastAsia"===e)??t.find(([e])=>"ascii"===e)??t[0];return r?.[1]??e}(t)}`:"使用默认字体";case"jc":return`对齐方式 ${function(e){switch(e){case"center":return"居中";case"right":case"end":return"右对齐";case"both":case"distribute":return"两端对齐";default:return"左对齐"}}(t)}`;case"spacing":return"段落间距已更改";case"ind":return"段落缩进已更改";case"shd":return t?`底纹 ${to(t)}`:"无底纹";case"vertAlign":return"superscript"===t?"上标":"subscript"===t?"下标":"基线对齐";default:return function(e,t){const r={caps:"全部大写",smallCaps:"小型大写字母",vanish:"隐藏文字",keepNext:"与下段同页",keepLines:"段中不分页",pageBreakBefore:"段前分页",tblBorders:"表格边框",tcBorders:"单元格边框",tblW:"表格宽度",tcW:"单元格宽度"}[e]??"格式";return t&&!["true","1"].includes(t)?`${r} ${t}`:r}(e.property,t)}}(e)).filter(Boolean)).join(";")||ro(t)}function eo(e){return null==e||""===e||"1"===e||"true"===e||"on"===e}function to(e){const t=/(?:val|fill)=([^|]+)/.exec(e);return t?.[1]??e}function ro(e){switch(e){case"paragraph-format":return"段落格式已更改";case"table-format":return"表格格式已更改";case"row-format":return"表格行格式已更改";case"cell-format":return"单元格格式已更改";default:return"字符格式已更改"}}function no(e){return[...new Set(e.filter(e=>null!=e&&""!==e))]}function ao(e){const t=["#c2410c","#2563eb","#7c3aed","#0f766e","#be123c","#4d7c0f","#a21caf","#0369a1"],r=String(e||"Unknown");let n=2166136261;for(let e=0;e<r.length;e++)n^=r.charCodeAt(e),n=Math.imul(n,16777619);return t[(n>>>0)%t.length]}function so(e){return e.type===We.Text||e.type===We.DeletedText?e.text??"":e.type===We.Tab||e.type===We.PositionalTab?"\t":e.type===We.Break?"\n":(e.children??[]).map(so).join("").trim()}!function(e){e.html="http://www.w3.org/1999/xhtml",e.svg="http://www.w3.org/2000/svg",e.mathML="http://www.w3.org/1998/Math/MathML"}(zs||(zs={}));const oo=/[\u0000-\u0020\u007f-\u009f]+/g,io=/^[a-z][a-z0-9+.-]*:/i,lo=/^(?:https?|mailto|tel):/i;const co=["http://schemas.openxmlformats.org/drawingml/2006/chart","http://purl.oclc.org/ooxml/drawingml/chart"],ho=["http://schemas.openxmlformats.org/drawingml/2006/main","http://purl.oclc.org/ooxml/drawingml/main"],uo=new WeakMap;async function mo(e,t=i(e)){o(e,t);const r=new Set;for(const t of[e,...Array.from(e.querySelectorAll("[data-docx-layout-root]"))]){const e=uo.get(t);e&&r.add(e)}for(const n of r)o(e,t),await n.prepareLayout(e,t);o(e,t);for(const r of[e,...Array.from(e.querySelectorAll("[data-docx-layout-root]"))]){const e=uo.get(r);e?.shouldRunDynamicPagination()&&r.classList.contains(`${e.className}-wrapper`)&&e.scheduleDynamicPagination(r,t)}}class po{constructor(){this.className="docx",this.styleMap={},this.currentPart=null,this.currentSectionProps=null,this.currentPageNumber=1,this.currentSectionNumber=1,this.currentSectionPageNumber=1,this.totalPages=1,this.sectionPageCount=1,this.tableVerticalMerges=[],this.currentVerticalMerge=null,this.tableCellPositions=[],this.currentCellPosition=null,this.currentTableRow=null,this.repeatedTableHeaderRows=new WeakSet,this.footnoteMap={},this.endnoteMap={},this.currentEndnoteIds=[],this.noteNumbering=new de,this.renderedNoteIds=new Set,this.noteSectionIds=new Map,this.notePageIndex=1,this.dynamicNoteState=new WeakMap,this.noteContinuationOrigins=new WeakMap,this.headerFooterModels=new Map,this.pageHeaderFooterState=new WeakMap,this.currentTabs=[],this.anchorLayouts=new Map,this.currentParagraph=null,this.currentParagraphTabIndex=0,this.currentParagraphTabCount=0,this.commentMap={},this.commentLayer=null,this.commentPresentations=new Map,this.renderingComment=!1,this.hyperlinkDepth=0,this.layoutGenerations=new Map,this.bookmarkTextMap={},this.bookmarkIdToName={},this.tocEntries=[],this.fieldSeqCounters={},this.fieldSetValues={},this.headingIndex=0,this.tasks=[],this.postRenderTasks=[],this.h=Ws,this.darkModeVarNames=new Map,this.darkModePrintReset={}}async render(e,t){this.document=e,this.options=t,this.className=t.className,this.rootSelector=t.inWrapper?`.${this.className}-wrapper`:":root",this.h=t.h??Ws,this.styleMap=null,this.tasks=[],this.postRenderTasks=[],this.commentLayer=null,this.commentPresentations.clear(),this.renderingComment=!1,this.currentTabs=[],this.currentFootnoteIds=[],this.currentEndnoteIds=[],this.footnoteMap={},this.endnoteMap={},this.noteNumbering=new de,this.renderedNoteIds=new Set,this.repeatedTableHeaderRows=new WeakSet,this.noteSectionIds=new Map,this.notePageIndex=1,this.dynamicNoteState=new WeakMap,this.noteContinuationOrigins=new WeakMap,this.anchorLayouts.clear(),this.headerFooterModels.clear(),this.pageHeaderFooterState=new WeakMap,this.fieldSeqCounters={},this.fieldSetValues={},this.headingIndex=0,this.darkModeVarNames=new Map,this.darkModePrintReset={},this.options.renderComments&&globalThis.Highlight&&(this.commentHighlight=new Highlight);const r=[...this.renderDefaultStyle()];if(e.themePart&&r.push(...this.renderTheme(e.themePart)),null!=e.stylesPart){const t=this.cloneRenderData(e.stylesPart.styles);this.styleMap=this.processStyles(t),r.push(...this.renderStyles(t))}e.numberingPart&&(this.prodessNumberings(e.numberingPart.domNumberings),r.push(...await this.renderNumbering(e.numberingPart.domNumberings))),e.footnotesPart&&(this.footnoteMap=y(this.cloneRenderData(e.footnotesPart.notes),e=>e.id)),e.endnotesPart&&(this.endnoteMap=y(this.cloneRenderData(e.endnotesPart.notes),e=>e.id)),e.settingsPart&&(this.defaultTabSize=e.settingsPart.settings?.defaultTabStop),!t.ignoreFonts&&e.fontTablePart&&r.push(...await this.renderFontTable(e.fontTablePart));var n=await this.renderSections(this.cloneRenderData(e.documentPart.body));if(this.options.inWrapper){const e=this.renderWrapper(n);this.commentLayer&&e.appendChild(this.commentLayer.root),r.push(e),this.shouldRunDynamicPagination()&&this.scheduleDynamicPagination(e)}else r.push(...n),this.commentLayer&&(this.commentLayer.root.style.position="fixed",r.push(this.commentLayer.root));r.push(...this.renderDarkModePrintReset()),this.commentHighlight&&t.renderComments&&CSS.highlights.set(`${this.className}-comments`,this.commentHighlight),await Promise.allSettled(this.tasks),this.postRenderTasks.forEach(e=>e()),this.commentLayer&&uo.set(this.commentLayer.root,this);for(const e of r)["section","div"].includes(e.tagName?.toLowerCase())&&!e.dataset?.docxCommentLayer&&(e.dataset.docxLayoutRoot="true",uo.set(e,this));return r}renderTheme(e){const t={},r=e.theme?.fontScheme,n=this.documentThemeLanguages();r&&(r.majorFont&&(t["--docx-majorHAnsi-font"]=this.themeFontFamily(r.majorFont,"latin",n.latin),t["--docx-majorEastAsia-font"]=this.themeFontFamily(r.majorFont,"eastAsia",n.eastAsia),t["--docx-majorBidi-font"]=this.themeFontFamily(r.majorFont,"complexScript",n.bidi),t["--docx-majorCs-font"]=t["--docx-majorBidi-font"],this.addThemeScriptFontVariables(t,"major",r.majorFont)),r.minorFont&&(t["--docx-minorHAnsi-font"]=this.themeFontFamily(r.minorFont,"latin",n.latin),t["--docx-minorEastAsia-font"]=this.themeFontFamily(r.minorFont,"eastAsia",n.eastAsia),t["--docx-minorBidi-font"]=this.themeFontFamily(r.minorFont,"complexScript",n.bidi),t["--docx-minorCs-font"]=t["--docx-minorBidi-font"],this.addThemeScriptFontVariables(t,"minor",r.minorFont)));const a=e.theme?.colorScheme,s=[];if(a)for(let[e,r]of Object.entries(a.colors)){const n=`--docx-${e}-color`;t[n]=`#${r}`,s.push(n)}let o=this.styleToString(`.${this.className}`,t);if(this.options.darkMode&&s.length){const e=s.map(e=>` ${e}: ${t[e]};\r\n`).join("");o+=`@media print {\r\n.${this.className} {\r\n${e}}\r\n}\r\n`}return[this.h({tagName:"#comment",children:["docxjs document theme values"]}),this.h({tagName:"style",children:[o]})]}documentThemeLanguages(){const e={latin:"",eastAsia:"",bidi:""},t=(this.document.stylesPart?.styles??[]).filter(e=>null==e.id||e.isDefault&&"span"==e.target).flatMap(e=>e.styles??[]).find(e=>"span"==e.target),r=t?.values??{};return e.latin=r.$lang??"",e.eastAsia=r["$lang-eastAsia"]??e.latin,e.bidi=r["$lang-bidi"]??e.latin,e}addThemeScriptFontVariables(e,t,r){const n=new Set(["Hans","Hant","Jpan","Hang"]);for(const a of Object.keys(r.scriptTypefaces??{})){const s=n.has(a)?"eastAsia":"complexScript",o=this.themeFontFamily(r,s,"",a);e[`--docx-${t}EastAsia-font-${a}`]=o,e[`--docx-${t}Bidi-font-${a}`]=o,e[`--docx-${t}Cs-font-${a}`]=o}}themeFontFamily(e,t,r,n=""){const a="latin"==t?e.latinTypeface:"eastAsia"==t?e.eaTypeface:e.csTypeface,s=n||Ze(r),o=s?e.scriptTypefaces?.[s]:"",i=a?.trim()||o?.trim()||e.latinTypeface?.trim();if(!i)return"eastAsia"==t?"sans-serif":"serif";const l=[p(i)];return"eastAsia"==t&&l.push(...f(i,s).slice(1)),[...new Set(l)].join(", ")}async renderFontTable(e){const t=[];for(let r of e.fonts)for(let e of r.embedFontRefs)try{const n=await this.document.loadFont(e.id,e.key),a={"font-family":p(r.name),src:`url(${n})`};"bold"!=e.type&&"boldItalic"!=e.type||(a["font-weight"]="bold"),"italic"!=e.type&&"boldItalic"!=e.type||(a["font-style"]="italic"),t.push(this.h({tagName:"#comment",children:[`docxjs ${r.name} font`]})),t.push(this.h({tagName:"style",children:[this.styleToString("@font-face",a)]}))}catch(t){this.options.debug&&console.warn(`Can't load font with id ${e.id} and key ${e.key}`)}return t}processStyleName(e){return e?`${this.className}_${function(e){return e?.replace(/[ .]+/g,"-").replace(/[&]+/g,"and").toLowerCase()}(e)}`:this.className}processStyles(e){const t=y(e.filter(e=>null!=e.id),e=>e.id);for(const n of e.filter(e=>e.basedOn)){var r=t[n.basedOn];if(r){n.paragraphProps=k({},r.paragraphProps,n.paragraphProps),n.runProps=k({},r.runProps,n.runProps);for(const e of r.styles){const t=n.styles.find(t=>t.target==e.target);t?this.copyStyleProperties(e.values,t.values):n.styles.push({...e,values:{...e.values}})}}else this.options.debug&&console.warn(`Can't find base style ${n.basedOn}`)}for(let t of e)t.cssName=this.processStyleName(t.id);return t}prodessNumberings(e){for(let t of e.filter(e=>e.pStyleName)){const e=this.findStyle(t.pStyleName);e?.paragraphProps?.numbering&&(e.paragraphProps.numbering.level=t.level)}}processElement(e){if(e&&e.children)for(var t of e.children)t.parent=e,t.type==We.Table?this.processTable(t):this.processElement(t)}processTable(e){const t=e.children??[];let r=e.columns?.length??0;for(const e of t){let t=e.gridBefore??0;for(const r of e.children??[])t+=r.span??1;r=Math.max(r,t+(e.gridAfter??0))}const n=Math.max(e.rowBandSize??1,1),a=Math.max(e.colBandSize??1,1);t.forEach((s,o)=>{0==o&&this.appendClassName(s,"first-row"),o==t.length-1&&this.appendClassName(s,"last-row"),this.appendClassName(s,Math.floor(o/n)%2==0?"odd-row":"even-row");let i=s.gridBefore??0;for(const t of s.children??[]){t.cssStyle=this.copyStyleProperties(e.cellStyle,t.cssStyle,["border-left","border-right","border-top","border-bottom","padding-left","padding-right","padding-top","padding-bottom"]);const n=t.span??1,s=i+n-1;0==i&&this.appendClassName(t,"first-col"),r>0&&s>=r-1&&this.appendClassName(t,"last-col"),this.appendClassName(t,Math.floor(i/a)%2==0?"odd-col":"even-col"),this.processElement(t),i+=n}})}collectDocumentMetadata(e){this.bookmarkTextMap={},this.bookmarkIdToName={},this.tocEntries=[];const t={},r=e=>{if(e.type!=We.Deleted||qs(Us(this.options))){switch(e.type){case We.BookmarkStart:{const r=e;r.id&&r.name&&(this.bookmarkIdToName[r.id]=r.name,t[r.id]=[]);break}case We.BookmarkEnd:{const r=e,n=this.bookmarkIdToName[r.id];n&&t[r.id]&&(this.bookmarkTextMap[n]=t[r.id].join("").trim(),delete t[r.id]);break}case We.Text:for(const r of Object.keys(t))t[r].push(e.text??"");break;case We.DeletedText:if(qs(Us(this.options)))for(const r of Object.keys(t))t[r].push(e.text??"")}for(const t of e.children??[])r(t)}};for(const t of e.children??[])r(t);for(const[e,r]of Object.entries(t)){const t=this.bookmarkIdToName[e];t&&(this.bookmarkTextMap[t]=r.join("").trim())}for(const t of e.children??[])this.collectTocEntries(t)}collectTocEntries(e){if(e.type!=We.Deleted||qs(Us(this.options))){if(e.type==We.Paragraph){const t=e,r=this.findStyle(t.styleName),n=this.extractText(t).trim();let a=t.outlineLevel??r?.paragraphProps?.outlineLevel;if(null==a&&t.styleName){const e=/heading(\d+)|(?:^|[-_ ])h(\d+)$/i.exec(t.styleName);e&&(a=parseInt(e[1]??e[2],10)-1)}if(n&&null!=a&&a>=0&&a<9){const e=this.findFirstBookmark(t),r=e?.name&&!e.name.startsWith("_")?e.name:`${this.className}-heading-${++this.headingIndex}`;t.props={...t.props??{},anchorId:r},this.tocEntries.push({level:a+1,text:n,id:r})}}for(const t of e.children??[])this.collectTocEntries(t)}}findFirstBookmark(e){if(e.type==We.BookmarkStart)return e;for(const t of e.children??[]){const e=this.findFirstBookmark(t);if(e)return e}return null}extractText(e){switch(e.type){case We.Text:return e.text??"";case We.DeletedText:return qs(Us(this.options))?e.text??"":"";case We.Deleted:return qs(Us(this.options))?(e.children??[]).map(e=>this.extractText(e)).join(""):"";case We.Inserted:return"original"==Us(this.options)?"":(e.children??[]).map(e=>this.extractText(e)).join("");case We.Tab:case We.PositionalTab:return"\t";case We.NoBreakHyphen:return"‑";case We.SoftHyphen:return"";case We.Break:return"\n";case We.Instruction:case We.ComplexField:return""}return(e.children??[]).map(e=>this.extractText(e)).join("")}appendClassName(e,t){e.className=[...new Set(Vs(e.className,t).split(/\s+/).filter(Boolean))].join(" ")}copyStyleProperties(e,t,r=null){if(!e)return t;for(var n of(null==t&&(t={}),null==r&&(r=Object.getOwnPropertyNames(e)),r))e.hasOwnProperty(n)&&!t.hasOwnProperty(n)&&(t[n]=e[n]);return t}createPageElement(e,t,r){const n={...r};let a=null,s=null;if(t){if(t.pageMargins&&(n.paddingLeft=this.addSize(t.pageMargins.left,t.pageMargins.gutter),n.paddingRight=t.pageMargins.right,n.paddingTop=t.pageMargins.top,n.paddingBottom=t.pageMargins.bottom),t.pageSize){let e=t.pageSize.width,r=t.pageSize.height;if("landscape"==t.pageSize.orientation){const t=this.parseCssLengthValue(e),n=this.parseCssLengthValue(r);null!=t&&null!=n&&t<n&&([e,r]=[r,e])}a=e,s=r,this.options.ignoreWidth||(n.width=e);(!this.options.ignoreHeight||!this.options.breakPages)&&(n.minHeight=r,!this.options.ignoreHeight&&this.options.breakPages&&this.options.fixedPageHeight&&(n.height=r))}t.pageBorders&&(this.applyPageBorder(n,"top",t.pageBorders.top),this.applyPageBorder(n,"right",t.pageBorders.right),this.applyPageBorder(n,"bottom",t.pageBorders.bottom),this.applyPageBorder(n,"left",t.pageBorders.left))}const o=this.h({tagName:"section",className:e,style:n});return n.paddingLeft&&this.setCssStyle(o,"--docx-page-padding-left",n.paddingLeft),n.paddingTop&&this.setCssStyle(o,"--docx-page-padding-top",n.paddingTop),a&&this.setCssStyle(o,"--docx-page-width",a),s&&this.setCssStyle(o,"--docx-page-height",s),o}addSize(e,t){return e?t&&"0.00pt"!=t&&"0px"!=t?`calc(${e} + ${t})`:e:t}parseCssLengthValue(e){if(!e)return null;const t=/^(-?\d+(?:\.\d+)?)/.exec(e);return t?parseFloat(t[1]):null}applyPageBorder(e,t,r){if(!r)return;const n=this.borderTypeToCss(r.type);e[`border-${t}`]="none"==n?"none":`${r.size??"1px"} ${n} ${this.borderColor(r.color)}`}borderTypeToCss(e){switch(e){case"nil":case"none":return"none";case"double":case"triple":return"double";case"dashed":case"dashSmallGap":return"dashed";case"dotted":case"dotDash":case"dotDotDash":return"dotted"}return"solid"}borderColor(e){return e&&"auto"!=e?/^[0-9a-f]{6}$/i.test(e)?`#${e}`:e:"var(--docx-auto-color, black)"}createSectionContent(e){const t={},r=e.columns?.numberOfColumns??e.columns?.columns?.length,n="linesAndChars"==e.docGrid?.type||"snapToChars"==e.docGrid?.type;return e.docGrid&&(e.docGrid.linePitch&&(t["--docx-doc-grid-line-pitch"]=e.docGrid.linePitch),n&&e.docGrid.charSpace&&(t.letterSpacing=e.docGrid.charSpace)),this.document.settingsPart?.settings?.kinsoku&&(t.lineBreak="strict",t.wordBreak="keep-all"),this.document.settingsPart?.settings?.overflowPunctuation&&(t.hangingPunctuation="allow-end"),this.document.settingsPart?.settings?.topLinePunctuation&&(t["text-spacing-trim"]="space-start"),(this.document.settingsPart?.settings?.autoSpaceDE||this.document.settingsPart?.settings?.autoSpaceDN)&&(t["text-autospace"]=[this.document.settingsPart?.settings?.autoSpaceDE?"ideograph-alpha":null,this.document.settingsPart?.settings?.autoSpaceDN?"ideograph-numeric":null].filter(Boolean).join(" ")),e.columns&&r&&(r>1||e.columns.columns?.length>0)&&(t.columnCount=`${r}`,t.columnGap=e.columns.space,!e.columns.equalWidth&&e.columns.columns?.length>0&&(t.columnWidth=e.columns.columns[0].width,t.columnGap=e.columns.columns[0].space??t.columnGap),e.columns.separator&&(t.columnRule="1px solid black")),this.h({tagName:"article",style:t})}async renderSections(e){const t=[];this.processElement(e),this.collectDocumentMetadata(e);const r=this.splitBySection(this.reviewParagraphs(e.children),e.props);this.resolveSectionHeaderFooterReferences(r);const n=this.groupByPageBreaks(r);if(e.backgroundImage){const t=await this.document.loadDocumentImage(e.backgroundImage.id,this.document.documentPart,this.options.externalResourcePolicy).catch(()=>null);t&&(e={...e,cssStyle:{...e.cssStyle,"background-image":`url(${JSON.stringify(t)})`,"background-repeat":"tile"==e.backgroundImage.type?"repeat":"no-repeat","background-position":"center","background-size":"tile"==e.backgroundImage.type?"auto":"100% 100%"}})}let a=null,s=0,o=0;const i=new Map,l=new Map,c=new Map,h=new Map,d=e=>{if(!c.has(e)){const t=++o;c.set(e,`${this.className}-section-${t}`),h.set(e,t)}};for(const e of n){const t=e[0].sectProps;d(t),i.set(t,(i.get(t)??0)+1)}this.totalPages=n.length;for(let r=0,o=n.length;r<o;r++){this.currentFootnoteIds=[],this.notePageIndex=r+1;let m=n[r][0].sectProps;const p=m;d(m);const f=a!=m;s=f&&null!=m?.pageNumber?.start?m.pageNumber.start:s+1,this.currentPageNumber=s,this.currentSectionNumber=h.get(m)??1,this.currentSectionProps=m,this.currentSectionPageNumber=(l.get(m)??0)+1,this.sectionPageCount=i.get(m)??1,l.set(m,this.currentSectionPageNumber);const g=this.createPageElement(this.className,m,e.cssStyle);g.dataset.docxSection=c.get(m),g.dataset.docxSectionNumber=`${this.currentSectionNumber}`,g.dataset.docxSectionPageNumber=`${this.currentSectionPageNumber}`,g.dataset.docxSectionPageCount=`${this.sectionPageCount}`,g.dataset.docxPageNumber=`${s}`,f&&null!=m?.pageNumber?.start&&(g.dataset.docxPageStart=`${m.pageNumber.start}`),this.options.renderHeaders&&this.renderHeaderFooter(m.headerRefs,m,s,f,g);for(const e of n[r]){this.currentSectionProps=e.sectProps;var u=this.createSectionContent(e.sectProps);e.columnBreak&&(u.style.breakBefore="column"),this.renderElements(e.elements,u),g.appendChild(u),m=e.sectProps}if(this.options.renderFootnotes){const e=this.renderNotes(this.currentFootnoteIds,this.footnoteMap,this.document.footnotesPart,"footnote");e&&g.appendChild(e)}if(this.options.renderEndnotes&&r==o-1){const e=this.renderNotes(this.currentEndnoteIds,this.endnoteMap,this.document.endnotesPart,"endnote");e&&g.appendChild(e)}this.currentSectionProps=m,this.options.renderFooters&&this.renderHeaderFooter(m.footerRefs,m,s,f,g),this.pageHeaderFooterState.set(g,{headerProps:p,footerProps:m,headerId:this.selectHeaderFooterReference(p.headerRefs,p,s,f)?.id,footerId:this.selectHeaderFooterReference(m.footerRefs,m,s,f)?.id}),t.push(g),await this.yieldDuringRender(r+1,o),a=m}return t}resolveSectionHeaderFooterReferences(e){const t=new Map;let r=null;const n=(e,t)=>{const r=new Map((t??[]).map(e=>[e.type,e]));for(const t of e??[])r.set(t.type,t);return Array.from(r.values())};for(const a of e){const e=a.sectProps;let s=t.get(e);s||(s={...e,headerRefs:n(e.headerRefs,r?.headerRefs),footerRefs:n(e.footerRefs,r?.footerRefs)},t.set(e,s),r=s),a.sectProps=s}}selectHeaderFooterReference(e,t,r,n){const a=!!this.document.settingsPart?.settings?.evenAndOddHeaders,s=t.titlePage&&n?"first":a&&r%2==0?"even":"default";return e?.find(e=>e.type==s)}renderHeaderFooter(e,t,r,n,a){const s=this.selectHeaderFooterReference(e,t,r,n);var o=s&&this.document.findPartByRelId(s.id,this.document.documentPart);if(o?.rootElement){this.currentPart=o;let e=this.headerFooterModels.get(o.path);e||(e=this.cloneRenderData(o.rootElement),this.processElement(e),this.headerFooterModels.set(o.path,e));const[r]=this.renderElements([e],a);t?.pageMargins&&(o.rootElement.type===We.Header?(r.style.marginTop=`calc(${t.pageMargins.header} - ${t.pageMargins.top})`,r.style.minHeight=`calc(${t.pageMargins.top} - ${t.pageMargins.header})`):o.rootElement.type===We.Footer&&(r.style.marginBottom=`calc(${t.pageMargins.footer} - ${t.pageMargins.bottom})`,r.style.minHeight=`calc(${t.pageMargins.bottom} - ${t.pageMargins.footer})`)),this.currentPart=null}else o&&this.options.debug&&console.warn(`docx-preview: skipping ${o.path} because its parsed root element is missing`)}isPageBreakElement(e){return e.type==We.Break&&("lastRenderedPageBreak"==e.break?!this.options.ignoreLastRenderedPageBreak:"page"==e.break)}isPageBreakSection(e,t){return!!e&&(!!t&&(e.pageSize?.orientation!=t.pageSize?.orientation||e.pageSize?.width!=t.pageSize?.width||e.pageSize?.height!=t.pageSize?.height))}splitBySection(e,t){this.options.breakPages&&!this.options.ignoreLastRenderedPageBreak&&(e=function(e,t){let r=!1,n=null;const a=new Set,s=()=>{r=!1,n=null};for(const o of e){if(o.type!==We.Paragraph){s();continue}const e=o;let i=!1;const l=e=>{if(!t(e))switch(e.type){case We.Break:const t=e.break;"page"===t?(r=!0,n=null,i=!0):"lastRenderedPageBreak"===t?(i=!0,r?(a.add(e),n=e):n&&(a.delete(n),n=null),r=!1):s();break;case We.BookmarkStart:case We.BookmarkEnd:break;case We.Run:case We.Hyperlink:(e.children??[]).forEach(l);break;case We.Text:case We.DeletedText:e.text&&s();break;default:s()}};(e.children??[]).forEach(l),i&&!e.sectionProps||s()}if(!a.size)return e;const o=e=>{if(a.has(e))return null;if(!e.children?.length)return e;let t=!1;const r=[];for(const n of e.children){const e=o(n);t||(t=e!==n),e&&r.push(e)}return!t||0!==r.length||e.type!==We.Run&&e.type!==We.Hyperlink?t?{...e,children:r}:e:null};return e.map(o)}(e,e=>this.isHiddenRevisionForPagination(e)));let r={sectProps:null,elements:[],pageBreak:!1,columnBreak:!1,startsAfterExplicitPageBreak:!1},n=[r];const a=(e=!1,t=!1,a=!1)=>{if(0==r.elements.length&&null==r.sectProps)return r.pageBreak||(r.pageBreak=e),void(r.columnBreak||(r.columnBreak=t));r.pageBreak||(r.pageBreak=e),r.columnBreak||(r.columnBreak=t),r={sectProps:null,elements:[],pageBreak:!1,columnBreak:!1,startsAfterExplicitPageBreak:a},n.push(r)};for(let t of e){if(t.type!=We.Paragraph){if(t.type==We.Table)for(const e of this.splitTableByPageBreaks(t))e.table.children?.length&&r.elements.push(e.table),e.breakAfter&&a(!0,!1,!0);else r.elements.push(t);continue}const e=t,n=this.findStyle(e.styleName),s=e.pageBreakBefore??n?.paragraphProps?.pageBreakBefore;this.options.breakPages&&s&&r.elements.length>0&&a(!0,!1,!0);const o=this.splitParagraphByPageBreaks(e);for(const e of o){r.elements.push(e.paragraph);const t=e.paragraph.sectionProps;t&&(r.sectProps=t),(e.breakAfter||t)&&(r.endsWithExplicitPageBreak||(r.endsWithExplicitPageBreak=!0===e.explicitPageBreak),a(e.breakAfter||t&&me(t.type),t&&pe(t.type),!0===e.explicitPageBreak))}}if(n=n.filter(e=>e.elements.length>0),0==n.length)return[{sectProps:t,elements:[],pageBreak:!1,columnBreak:!1}];let s=null;for(let e=n.length-1;e>=0;e--)null==n[e].sectProps?n[e].sectProps=s??t:s=n[e].sectProps;return n}hasPageBreakElement(e){return!this.isHiddenRevisionForPagination(e)&&(!!this.isPageBreakElement(e)||(e.children?.some(e=>this.hasPageBreakElement(e))??!1))}splitTableByPageBreaks(e){if(!this.options.breakPages||!e.children?.length)return[{table:e,breakAfter:!1}];if(!e.children.some(e=>this.hasPageBreakElement(e)))return[{table:e,breakAfter:!1}];const t=e.children,r=[];for(const e of t){if(!e.isHeader)break;r.push(e)}const n=[];let a=[];const s=t=>{if(0==a.length&&n.length>0)return;const s=n.length>0;let o=a;if(s&&r.length>0&&!a.some(e=>e.isHeader)){o=[...r.map(e=>{const t={...e};return this.repeatedTableHeaderRows.add(t),t}),...a]}n.push({table:{...e,children:o},breakAfter:t}),a=[]};for(const e of t)a.push(e),this.hasPageBreakElement(e)&&s(!0);return s(!1),n.length>0?n:[{table:e,breakAfter:!1}]}isHiddenRevisionForPagination(e){const t=Us(this.options),r="all"===t&&"inline"===this.options.reviewPresentation;return e.type===We.Deleted&&!qs(t)&&!r||e.type===We.Inserted&&!function(e){return"original"!==e}(t)}hasOnlyHiddenRevisionTail(e){let t=!1;const r=e=>this.isHiddenRevisionForPagination(e)?(t=!0,!0):e.type===We.BookmarkStart||e.type===We.BookmarkEnd||!!([We.Run,We.Hyperlink,We.Inserted,We.Deleted].includes(e.type)&&e.children?.length>0)&&e.children.every(r);return e.every(r)&&t}splitElementByPageBreaks(e){if(this.isHiddenRevisionForPagination(e))return[{element:e}];if(this.isPageBreakElement(e))return[{breakAfter:!0,explicitPageBreak:"page"===e.break}];if(!e.children?.length)return[{element:e}];const t=[];let r={...e,children:[]};const n=()=>{r.children.length>0&&t.push({element:r}),r={...e,children:[]}};for(const a of e.children)for(const e of this.splitElementByPageBreaks(a))e.element&&r.children.push(e.element),e.breakAfter&&(n(),t.push({breakAfter:!0,explicitPageBreak:e.explicitPageBreak}));return n(),t.length>0?t:[{element:e}]}splitParagraphByPageBreaks(e){if(!this.options.breakPages||!e.children?.length)return[{paragraph:e,breakAfter:!1}];const t=[];let r={...e,children:[]};const n=(n,a=!1)=>{(r.children.length>0||0==t.length||a)&&t.push({paragraph:r,breakAfter:n,explicitPageBreak:a}),r={...e,sectionProps:null,children:[]}};for(const t of e.children)for(const e of this.splitElementByPageBreaks(t))e.element&&r.children.push(e.element),e.breakAfter&&n(!0,!0===e.explicitPageBreak);t.length>0&&this.hasOnlyHiddenRevisionTail(r.children)?t[t.length-1].paragraph.children.push(...r.children):(r.children.length>0||0==t.length)&&t.push({paragraph:r,breakAfter:!1});const a=t[t.length-1]?.paragraph;for(const r of t)r.paragraph.sectionProps=r.paragraph===a?e.sectionProps:null;if(e.props?.anchorId&&t.length>1){const e=t.find(e=>this.extractText(e.paragraph).trim())??t[0];for(const r of t)r!==e&&(r.paragraph.props={...r.paragraph.props,anchorId:void 0})}return t}styleValuesForTarget(e,t){return e?.styles?.find(e=>e.target==t)?.values}styleValue(e,t,r){return this.styleValuesForTarget(e,t)?.[r]}effectiveParagraphCssValue(e,t,r){return e.cssStyle?.[r]??this.styleValue(t,"p",r)}isInsideTableCell(e){for(let t=e.parent;t;t=t.parent)if(t.type==We.Cell)return!0;return!1}paragraphUsesDocumentGrid(e,t){const r=this.currentSectionProps?.docGrid?.linePitch;if(!r)return!1;if(this.isInsideTableCell(e)&&!this.document.settingsPart?.settings?.adjustLineHeightInTable)return!1;const n=this.effectiveParagraphCssValue(e,t,"--docx-snap-to-grid");return null==n||!/^(0|false|off)$/i.test(n)}setCssStyle(e,t,r){const n=e.style;"function"==typeof n.setProperty?n.setProperty(t,r):n[t]=r}applyDocumentGridMinimumHeight(e,t,r,n){const a=this.effectiveParagraphCssValue(e,t,"min-height");this.setCssStyle(r,"min-height",a?`max(${a}, ${n})`:n)}applyDocumentGridLinePitch(e,t,r){if(!this.paragraphUsesDocumentGrid(e,t))return;const n=this.currentSectionProps.docGrid.linePitch,a=this.effectiveParagraphCssValue(e,t,"line-height"),s=e.lineSpacing??t?.paragraphProps?.lineSpacing;if(a){if("exact"==s?.lineRule||"exactly"==s?.lineRule)return;const o=/^-?\d+(?:\.\d+)?$/.test(a)?`calc(${a} * 1em)`:a;return this.preserveGridInlineMetrics(r),this.setCssStyle(r,"line-height",`max(${o}, ${n})`),void this.applyDocumentGridMinimumHeight(e,t,r,n)}this.applyDocumentGridMinimumHeight(e,t,r,n)}preserveGridInlineMetrics(e){const t=/^(span|a|sub|sup|b|i|u|s|strike|strong|em)$/,r=e=>{for(const n of Array.from(e.children??[])){if(n.namespaceURI!==zs.html||!t.test(n.localName)||!n.style)continue;const e=n.style;n.dataset?.docxTextScale&&"block"===e.display?r(n):e.lineHeight||e.display&&"inline"!==e.display||/^(absolute|fixed)$/.test(e.position)||e.cssFloat&&"none"!==e.cssFloat||(e.lineHeight="normal",r(n))}};r(e)}groupByPageBreaks(e){let t=[],r=null;const n=[t];for(let a of e)r&&(r.pageBreak||this.isPageBreakSection(r.sectProps,a.sectProps))&&(t=[],n.push(t)),t.push(a),r=a;const a=n.filter(e=>e.length>0).filter(e=>e[0]?.startsAfterExplicitPageBreak||e.some(e=>e.endsWithExplicitPageBreak||e.elements.some(e=>this.hasPageModelContent(e))));return a.length>0?a:n.filter(e=>e.length>0).slice(0,1)}hasPageModelContent(e){if(!e||this.isHiddenRevisionForPagination(e))return!1;switch(e.type){case We.Text:case We.DeletedText:return Boolean(e.text?.trim());case We.Break:case We.Symbol:case We.Drawing:case We.Image:case We.Table:case We.VmlPicture:case We.VmlElement:case We.MmlMath:case We.MmlMathParagraph:case We.Shape:case We.Chart:case We.SmartArt:case We.Ink:case We.AltChunk:case We.FootnoteReference:case We.EndnoteReference:return!0}return e.children?.some(e=>this.hasPageModelContent(e))??!1}async yieldDuringRender(e,t){const r=this.options.renderPageBatchSize??0;this.options.progress&&this.options.progress({phase:"render",current:e,total:t,message:`Rendered ${e}/${t} logical pages`}),r>0&&e%r==0&&await this.yieldToBrowser()}async yieldToBrowser(){(this.options.renderYieldEveryMs??0)<=0||await new Promise(e=>{const t=globalThis;"function"==typeof t.requestIdleCallback?t.requestIdleCallback(()=>e(),{timeout:Math.max(1,this.options.renderYieldEveryMs??16)}):"function"==typeof t.requestAnimationFrame?t.requestAnimationFrame(()=>e()):setTimeout(e,0)})}renderWrapper(e){const t=this.h({tagName:"div",className:this.className+"-wrapper",children:e});return js(this.options)&&(t.dataset.docxReviewEnabled="true",t.dataset.docxReviewMode=Us(this.options),t.dataset.docxReviewPresentation=this.options.reviewPresentation??"balloon"),t}shouldRunDynamicPagination(){return!(!this.options.breakPages||!this.options.fixedPageHeight||this.options.ignoreHeight||"undefined"==typeof document||"function"!=typeof requestAnimationFrame)}scheduleDynamicPagination(e,t=i(e)){e?.isConnected&&t.isCurrent()&&"true"!=e.dataset.docxPaginated&&"true"!=e.dataset.docxPaginating&&"true"!=e.dataset.docxPaginationScheduled&&(e.dataset.docxPaginationScheduled="true",delete e.dataset.docxLayoutError,l(e,this.tasks,t).then(async()=>{await this.yieldToBrowser(),e.isConnected&&t.isCurrent()&&await this.performDynamicPagination(e,t)}).catch(r=>{delete e.dataset.docxPaginating,e.isConnected&&t.isCurrent()&&(e.dataset.docxLayoutError=r?.message??"DOCX layout failed")}).finally(()=>{delete e.dataset.docxPaginationScheduled,e.isConnected||delete e.dataset.docxPaginating}))}async performDynamicPagination(e,t=s(e)){if(!e||"true"==e.dataset.docxPaginated||"true"==e.dataset.docxPaginating)return;if(!e.isConnected||!t.isCurrent())return;if(delete e.dataset.docxPaginationScheduled,e.dataset.docxPaginating="true",this.syncDynamicNotes(e),await this.prepareLayout(e,t),!e.isConnected||!t.isCurrent())return void delete e.dataset.docxPaginating;const r=Array.from(e.querySelectorAll(":scope > section."+this.className)),n=this.options.maxDynamicPaginationPasses??1e3;let a=0;for(let s=0;s<r.length;s++){const o=r[s];if(s%2==0&&await this.yieldToBrowser(),!e.isConnected||!t.isCurrent())return void delete e.dataset.docxPaginating;for(;this.isPageOverflowing(o)&&a++<n;){const n=Array.from(o.querySelectorAll(":scope > article"));if(!n.some(e=>e.children.length>0)&&!o.querySelector(":scope > [data-docx-note-list] > li"))break;const a=this.createContinuationPage(o);if(await this.refreshDynamicHeaderFooters([...r.slice(0,s+1),a,...r.slice(s+1)]),!e.isConnected||!t.isCurrent())return void delete e.dataset.docxPaginating;const i=Array.from(a.querySelectorAll(":scope > article"));let l=this.splitDynamicNotes(o,a);for(let r=n.length-1;r>=0&&this.isPageOverflowing(o);r--){const a=n[r],s=i[r];let c=0;if(s){for(;this.isPageOverflowing(o)&&a.lastElementChild&&c++<500;){if(c%20==0&&await this.yieldToBrowser(),!e.isConnected||!t.isCurrent())return void delete e.dataset.docxPaginating;if(a.children.length>1){if(this.moveOverflowingTail(a,o,s)){l=!0;continue}let e=this.pickPaginationChunk(a);if(0==e.length)break;if(e.length>=a.children.length){if(this.splitOverflowBlock(a.lastElementChild,o,s)){l=!0;continue}e=[a.lastElementChild]}for(let t=e.length-1;t>=0;t--)s.prepend(e[t]),l=!0}else{if(!this.splitOverflowBlock(a.lastElementChild,o,s))break;l=!0}}if(r>0&&this.isPageOverflowing(o))for(;a.lastElementChild;)s.prepend(a.lastElementChild),l=!0}}if(l||(l=Array.from(a.children).some(e=>e.dataset.docxNoteList&&e.children.length>0)),!l){if(a.remove(),this.syncDynamicNotes(e),await this.refreshDynamicHeaderFooters(r),!e.isConnected||!t.isCurrent())return void delete e.dataset.docxPaginating;break}this.refreshTabStops(e),this.refreshAnchors(e),r.splice(s+1,0,a)}}if(a>=n&&r.some(e=>this.isPageOverflowing(e)))throw new Error("DOCX pagination exceeded the configured pass budget");this.cleanupEmptyNumberedParagraphs(e),this.removeEmptyDynamicPages(e),t.acceptLayoutChanges?.(e),this.syncDynamicNotes(e),await this.refreshDynamicHeaderFooters(Array.from(e.querySelectorAll(":scope > section."+this.className))),e.isConnected&&t.isCurrent()?(this.updateDynamicFieldPages(e),this.refreshTabStops(e),this.refreshAnchors(e),this.assertDynamicNotesFit(e),delete e.dataset.docxPaginating,e.dataset.docxPaginated="true"):delete e.dataset.docxPaginating}moveOverflowingTail(e,t,r){const n=e.ownerDocument?.defaultView;if(!n||e.children.length<3)return!1;const a=n.getComputedStyle(e);if("block"!==a.display||!["auto","1"].includes(a.columnCount)||"auto"!==a.columnWidth||"horizontal-tb"!==a.writingMode)return!1;const s=Array.from(e.children),o=this.getPageBodyBottom(t)+(this.options.paginationTolerance??2);let i=s.length;for(;i>1;){let e=i-1;for(;e>0&&this.isKeepWithNext(s[e-1]);)e--;if(0===e)break;let t=!0;for(let r=e;r<i;r++){const e=s[r],a=n.getComputedStyle(e),i=e.getBoundingClientRect();if(!/^(P|TABLE)$/.test(e.tagName)||!["block","table","list-item"].includes(a.display)||"static"!==a.position||"none"!==a.cssFloat||"none"!==a.transform||"none"!==a.clear||"horizontal-tb"!==a.writingMode||!(parseFloat(a.marginTop)>=0&&parseFloat(a.marginBottom)>=0)||!(i.top>o&&i.bottom>i.top)||e.querySelector("[data-docx-float]")){t=!1;break}}if(!t)break;i=e}if(s.length-i<2)return!1;const l=e.ownerDocument.createDocumentFragment();for(let e=i;e<s.length;e++)l.appendChild(s[e]);return r.prepend(l),!0}pickPaginationChunk(e){const t=Array.from(e.children);if(0==t.length)return[];let r=t.length-1;for(;r>0&&this.isKeepWithNext(t[r-1]);)r--;return t.slice(r)}isKeepWithNext(e){if("true"==e.dataset.docxKeepNext)return!0;const t=getComputedStyle(e);return"avoid"==t.breakAfter||"avoid"==t.pageBreakAfter}isPageOverflowing(e){e.parentElement&&this.syncDynamicNotes(e.parentElement),this.refreshTabStops(e);const t=this.options.paginationTolerance??2;if(e.clientHeight<=0)return!1;const r=e.getBoundingClientRect(),n=this.getPageBodyBottom(e);let a=r.top;for(const r of Array.from(e.children)){const e=r.getBoundingClientRect();if(a=Math.max(a,e.bottom),"article"==r.tagName.toLowerCase()){if(e.bottom>n+t)return!0;for(const e of Array.from(r.children)){const r=e.getBoundingClientRect();if(a=Math.max(a,r.bottom),r.bottom>n+t)return!0}}}const s=this.getPageNoteBottom(e);return Array.from(e.querySelectorAll(":scope > [data-docx-note-list]")).some(e=>Array.from(e.querySelectorAll("*")).some(e=>e.getBoundingClientRect().bottom>s+t))||a>r.bottom+t}createContinuationPage(e,t=!0){const r=e.cloneNode(!1);r.dataset.docxDynamicPage="true",r.removeAttribute("id"),delete r.dataset.docxPageStart;const n=this.pageHeaderFooterState.get(e);n&&this.pageHeaderFooterState.set(r,{...n});for(const t of Array.from(e.childNodes)){if(1===t.nodeType&&t.dataset.docxNoteList)continue;const e=1===t.nodeType&&"article"===t.localName;r.appendChild(t.cloneNode(!e))}return t&&e.after(r),r}syncDynamicNotes(e){let t=this.dynamicNoteState.get(e);if(!t){t={references:Array.from(e.querySelectorAll("article [data-docx-note-reference]")),items:[],fragments:new Map,owners:new Map,text:new Map,fields:new Map};const r=new Map;for(const n of Array.from(e.querySelectorAll("[data-docx-note-list] > li[data-docx-note-id]"))){const e=`${n.dataset.docxNoteKind}:${n.dataset.docxNoteId}`;let a=r.get(e);a||(r.set(e,a=n),t.items.push(a),t.fragments.set(a,[]),t.fields.set(a,[]));const s=t.fragments.get(a);n.dataset.docxNoteFragment=`${s.length}`,s.push(n),t.fields.get(a).push(...Array.from(n.querySelectorAll("[data-docx-field-instr]"))),t.text.set(a,(t.text.get(a)??"")+this.noteTextSignature(n,t.fields.get(a)))}this.dynamicNoteState.set(e,t)}if(0===t.items.length)return;const r=Array.from(e.querySelectorAll(`:scope > section.${this.className}`));if(0===r.length)return;const n=new Set(r),a=e=>{for(;e&&!n.has(e);)e=e.parentElement;return e},s=new Map;for(const e of t.references){if("true"===e.dataset.docxNoteHidden)continue;const t=`${e.dataset.docxNoteReference}:${e.dataset.docxNoteId}`;if(s.has(t))continue;const r=a(e);r&&s.set(t,r)}const o=r.slice().reverse().find(e=>e.querySelector(':scope > [data-docx-note-list="footnote"] > li')||Array.from(e.querySelectorAll(":scope > article > *")).some(e=>this.hasVisiblePaginationContent(e)))??r[0],i=new Map;for(const e of t.items){const l=e.dataset.docxNoteKind,c=t.owners.get(e),h="endnote"===l?n.has(c)&&r.indexOf(c)>=r.indexOf(o)?c:o:s.get(`${l}:${e.dataset.docxNoteId}`);if(!h){e.dataset.docxNoteOwnershipError="missing-reference";continue}delete e.dataset.docxNoteOwnershipError;const d=t.fragments.get(e);if(c&&c!==h||d.some(e=>!a(e))){for(const t of d.slice(1))this.mergeNoteContents(e,t),t.remove();d.splice(1)}t.owners.set(e,h);for(let e=0;e<d.length;e++){const t=d[e];t.dataset.docxNoteFragment=`${e}`;const r=0===e?h:a(t);let n=i.get(r);n||i.set(r,n=new Map);let s=n.get(l);s||n.set(l,s=[]),s.push(t)}}for(const[e,t]of i)for(const r of["footnote","endnote"]){const n=t.get(r);if(!n)continue;const a=this.getOrCreateNoteList(e,r);for(let e=0;e<n.length;e++)a.children[e]!==n[e]&&a.insertBefore(n[e],a.children[e]??null)}for(const e of r)for(const t of Array.from(e.children))t.dataset.docxNoteList&&0===t.children.length&&t.remove()}getOrCreateNoteList(e,t){let r=Array.from(e.children).find(e=>e.dataset.docxNoteList===t);if(!r){r=this.h({tagName:"ol"}),r.dataset.docxNoteList=t;const n=Array.from(e.children).find(e=>"footer"===e.localName||"footnote"===t&&"endnote"===e.dataset.docxNoteList);e.insertBefore(r,n??null)}return r}mergeNoteContents(e,t){const r=e=>{for(;this.noteContinuationOrigins.has(e);)e=this.noteContinuationOrigins.get(e);return e};for(const n of Array.from(t.childNodes)){const t=e.lastChild;1===n.nodeType&&1===t?.nodeType&&r(n)===r(t)?(this.mergeNoteContents(t,n),n.id&&!t.id&&(t.id=n.id),n.remove()):1===n.nodeType&&"true"===n.dataset.docxNoteColumns?n.remove():e.appendChild(n)}}getPageNoteBottom(e){const t=e.getBoundingClientRect(),r=e.ownerDocument?.defaultView;if(!r)return t.bottom;const n=r.getComputedStyle(e),a=e=>Number.parseFloat(e)||0,s=t.bottom-a(n.borderBottomWidth)-a(n.paddingBottom),o=Array.from(e.children).find(e=>"footer"===e.localName);if(!o)return s;const i=r.getComputedStyle(o),l=o.getBoundingClientRect(),c=l.height+a(i.marginTop)+a(i.marginBottom);return Math.min(s,s-c,l.top-a(i.marginTop))}getPageBodyBottom(e){const t=Array.from(e.children).filter(e=>e.dataset.docxNoteList),r=e.ownerDocument?.defaultView;if(!r)return e.getBoundingClientRect().bottom;let n=this.getPageNoteBottom(e);for(const e of t){const t=e.getBoundingClientRect(),a=r.getComputedStyle(e);let s=t.bottom;for(const t of Array.from(e.querySelectorAll("*")))s=Math.max(s,t.getBoundingClientRect().bottom);n-=Math.max(t.height,s-t.top)+(Number.parseFloat(a.marginTop)||0)+(Number.parseFloat(a.marginBottom)||0)}return n}getMinimumNoteBodyBottom(e){const t=e.ownerDocument?.defaultView,r=t?.getComputedStyle(e);let n=e.getBoundingClientRect().top+(parseFloat(r?.paddingTop)||0)+(parseFloat(r?.borderTopWidth)||0);const a=e.querySelector(":scope > header");a&&(n=Math.max(n,a.getBoundingClientRect().bottom));const s=Array.from(e.querySelectorAll(":scope > article > *")).find(e=>this.hasVisiblePaginationContent(e));if(!s)return n;const o=s.getBoundingClientRect();if("table"===s.localName){const e=this.tableContentRows(s)[0];if(e)return Math.max(n,e.getBoundingClientRect().bottom,...Array.from(e.cells,e=>e.getBoundingClientRect().bottom))}if("p"!==s.localName||"true"===s.dataset.docxKeepLines)return Math.max(n,o.bottom);const i=[],l=e.ownerDocument.createTreeWalker(s,NodeFilter.SHOW_TEXT);for(;l.nextNode();){const t=e.ownerDocument.createRange();t.selectNodeContents(l.currentNode);for(const e of Array.from(t.getClientRects()))e.height>0&&e.width>0&&i.push(e)}i.sort((e,t)=>e.top-t.top);const c=i.find(e=>e.top>(i[0]?.top??1/0)+2);return Math.max(n,c?o.top+c.top-i[0].top:o.bottom)}moveEndnotesAfterBody(e,t){const r=this.dynamicNoteState.get(e.parentElement);if(!r||!e.querySelector(":scope > article > *")||!this.isPageOverflowing(e))return!1;const n=Array.from(e.querySelectorAll(':scope > [data-docx-note-list="endnote"] > li'));if(!n.length||n.some(e=>1!==r.fragments.get(e)?.length))return!1;const a=n[0].parentElement,s=a.nextSibling,o=n.map(e=>({item:e,next:e.nextSibling,owner:r.owners.get(e)})),i=this.getOrCreateNoteList(t,"endnote");for(const e of n)i.appendChild(e),r.owners.set(e,t);if(a.children.length||a.remove(),!this.isPageOverflowing(e))return!0;a.parentNode!==e&&e.insertBefore(a,s?.parentNode===e?s:null);for(const{item:e,next:t,owner:n}of o.reverse())a.insertBefore(e,t?.parentNode===a?t:null),r.owners.set(e,n);return i.children.length||i.remove(),!1}splitDynamicNotes(e,t){const r=e.parentElement,n=this.dynamicNoteState.get(r);if(!n?.items.length||e.clientHeight<=0)return!1;if(this.moveEndnotesAfterBody(e,t))return!0;const a=this.options.paginationTolerance??2,s=this.getMinimumNoteBodyBottom(e),o=()=>this.getPageBodyBottom(e)+a<s;if(!o())return!1;let i=!1;const l=new Map,c=Array.from(e.querySelectorAll(":scope > [data-docx-note-list] > li"));for(const h of c.slice().reverse()){if(!o())break;const d=n.items.find(e=>e.dataset.docxNoteKind===h.dataset.docxNoteKind&&e.dataset.docxNoteId===h.dataset.docxNoteId);if(!d)continue;const u=n.fragments.get(d),m=u.indexOf(h),p=h.dataset.docxNoteKind,f=this.getOrCreateNoteList(t,p);if("endnote"===p&&0===m&&e.querySelector(":scope > article > *")){const e=h.parentElement;f.prepend(h),e.children.length||e.remove(),n.owners.set(d,t),i=!0;continue}const g=Array.from(e.querySelectorAll(":scope > [data-docx-note-list] > li")),b=new Map(g.map(e=>[e,this.getNoteItemHeight(e)])),y=this.getPageBodyBottom(e)-s+Array.from(b.values()).reduce((e,t)=>e+t,0);for(const r of g)l.has(r)||l.set(r,this.measureNoteMinimum(r,t,e));const x=g.find(e=>l.get(e)>y+a);if(x)throw t.remove(),this.syncDynamicNotes(r),e.dataset.docxNoteLayoutError=r.dataset.docxNoteLayoutError="unresolved-overflow",new Error(`docx-preview: unbreakable ${x.dataset.docxNoteKind}:${x.dataset.docxNoteId} exceeds its note region; all note content has been preserved`);let w=y-g.reduce((e,t)=>e+l.get(t),0);const v=g.map(e=>Math.max(0,b.get(e)-l.get(e))).sort((e,t)=>e-t);let k=v.length;for(const e of v){if(e*k>w)break;w-=e,k--}const C=k>0?Math.max(0,w/k):1/0,S=l.get(h)+Math.min(b.get(h)-l.get(h),C),N=()=>o()&&this.getNoteItemHeight(h)>S;if(!N()){f.children.length||f.remove();continue}const A=this.cloneBlockShell(h);A.dataset.docxNoteFragment=`${m+1}`,A.dataset.docxContinued="true",f.prepend(A);if(!this.moveNoteItemTail(h,A,e,N)||!this.hasVisibleNoteContent(h)||N()&&this.getNoteItemHeight(h)>y+a){if(this.mergeNoteContents(h,A),A.remove(),m>0&&this.getNoteItemHeight(h)<=y+a&&e.querySelector(":scope > article > *")){f.prepend(h),i=!0;continue}if(f.children.length||f.remove(),o()&&(1===c.length||this.getNoteItemHeight(h)>y+a))throw t.remove(),this.syncDynamicNotes(r),e.dataset.docxNoteLayoutError=r.dataset.docxNoteLayoutError="unresolved-overflow",new Error(`docx-preview: unbreakable ${p}:${h.dataset.docxNoteId} exceeds its note region; all note content has been preserved`)}else u.splice(m+1,0,A),u.forEach((e,t)=>e.dataset.docxNoteFragment=`${t}`),i=!0}return this.syncDynamicNotes(r),i}measureNoteMinimum(e,t,r){const n=this.getOrCreateNoteList(t,e.dataset.docxNoteKind),a=this.cloneBlockShell(e);a.dataset.docxNoteFragment="1",n.appendChild(a);try{return this.moveNoteItemTail(e,a,r,()=>!0),this.getNoteItemHeight(e)}finally{this.mergeNoteContents(e,a),a.remove()}}moveNoteItemTail(e,t,r,n){let a=!1;for(;n()&&e.lastChild;){const s=e.lastChild;if(e.childNodes.length>1&&this.hasNoteContentOutside(e,s))t.prepend(s),a=!0;else{if(1!==s.nodeType||!this.splitNoteBlock(s,t,r,n,e))break;a=!0}}return a}hasNoteContentOutside(e,t){const r=Array.from(e.childNodes);for(;r.length;){const e=r.pop();if(e!==t){if(e.nodeType===Node.TEXT_NODE&&e.textContent.length>0)return!0;if(1===e.nodeType){if(this.isNoteAtomicElement(e))return!0;r.push(...Array.from(e.childNodes))}}}return!1}firstNoteTextBoundary(e){const t=globalThis.Intl?.Segmenter;if(t){let r=0;for(const n of new t(void 0,{granularity:"grapheme"}).segment(e))if(r||(r=n.segment.length),n.segment.trim())return n.index+n.segment.length;return r}const r=e.search(/\S/);let n=Math.max(0,r);return n+(e.codePointAt(n)>65535?2:1)}getNoteItemHeight(e){const t=e.getBoundingClientRect();let r=t.bottom;for(const t of Array.from(e.querySelectorAll("*")))r=Math.max(r,t.getBoundingClientRect().bottom);const n=e.ownerDocument.defaultView.getComputedStyle(e);return Math.max(t.height,r-t.top)+(parseFloat(n.marginTop)||0)+(parseFloat(n.marginBottom)||0)}hasVisibleNoteContent(e){return!!e.textContent?.length||!!e.querySelector("img,svg,math,object,canvas,video,br,[data-docx-field-instr]")}splitNoteBlock(e,t,r,n,a=e.parentElement){const s=e.ownerDocument.defaultView.getComputedStyle(e);if("true"===e.dataset.docxKeepLines||"avoid"===s.breakInside||"avoid"===s.pageBreakInside)return!1;if(!/^(p|table|div|blockquote)$/.test(e.localName))return!1;const o=this.cloneBlockShell(e);o.dataset.docxContinued="true",this.noteContinuationOrigins.set(o,e),t.prepend(o);let i=!1;if("table"===e.localName){for(const t of Array.from(e.querySelectorAll(":scope > colgroup"))){const e=t.cloneNode(!0);e.removeAttribute("id"),e.querySelectorAll("[id]").forEach(e=>e.removeAttribute("id")),e.dataset.docxNoteColumns="true",o.appendChild(e)}const t=new Map,s=(r,n)=>{if(n===e)return void o.appendChild(r);let a=t.get(n);a||(a=this.cloneBlockShell(n),this.noteContinuationOrigins.set(a,n),t.set(n,a),o.appendChild(a)),a.appendChild(r)},l=this.tableContentRows(e);let c=l.length-1;for(;c>0&&l.slice(0,c).some((e,t)=>Array.from(e.cells).some(e=>t+e.rowSpan>c));)c--;if(c>0){for(const e of l.slice(c))s(e,e.parentElement);i=!0}else if(1===l.length&&1===l[0].cells.length&&1===l[0].cells[0].rowSpan){const e=l[0],t=e.cells[0],o=e.ownerDocument.defaultView.getComputedStyle(e);if("avoid"!==o.breakInside&&"avoid"!==o.pageBreakInside){const o=this.cloneBlockShell(e),l=this.cloneBlockShell(t);this.noteContinuationOrigins.set(o,e),this.noteContinuationOrigins.set(l,t),s(o,e.parentElement),o.appendChild(l),i=this.moveNoteBlockTail(t,l,r,n,a)}}}else if("p"===e.localName)for(;n()&&e.lastChild&&this.moveNoteTailNode(e,o,r,n,a);)i=!0;else i=this.moveNoteBlockTail(e,o,r,n,a);return i?e.hasChildNodes()||(e.id&&(o.id=e.id),e.remove()):o.remove(),i}moveNoteBlockTail(e,t,r,n,a){let s=!1;for(;n()&&e.lastChild;){const o=e.lastChild;if(e.childNodes.length>1&&this.hasNoteContentOutside(a,o))t.prepend(o),s=!0;else{if(1!==o.nodeType||!this.splitNoteBlock(o,t,r,n,a))break;s=!0}}return s}moveNoteTailNode(e,t,r,n,a){const s=e.lastChild;if(!s)return!1;if(s.nodeType===Node.TEXT_NODE){const e=this.hasNoteContentOutside(a,s)?0:this.firstNoteTextBoundary(s.textContent);return this.moveTextTail(s,t,r,n,!0,e)}if(1===s.nodeType){const e=s;if(e.hasChildNodes()&&!this.isNoteAtomicElement(e)&&!e.dataset.docxFloat&&!e.dataset.docxNoteReference){const s=this.cloneBlockShell(e);s.removeAttribute("name"),this.noteContinuationOrigins.set(s,e),t.prepend(s);const o=this.moveNoteTailNode(e,s,r,n,a);return e.hasChildNodes()||(e.id&&(s.id=e.id),e.hasAttribute("name")&&s.setAttribute("name",e.getAttribute("name")),e.remove()),s.hasChildNodes()||s.remove(),o}}return!(1===s.nodeType&&this.isNoteAtomicElement(s)&&!this.hasNoteContentOutside(a,s))&&(t.prepend(s),!0)}isNoteAtomicElement(e){return/^(img|svg|math|object|canvas|video|picture|br)$/i.test(e.localName)||e.hasAttribute("data-docx-field-instr")}isMutableNoteField(e){if(!e.hasAttribute("data-docx-field-instr"))return!1;const t=this.tokenizeFieldInstruction((e.dataset.docxFieldInstr??"").replace(/\s+/g," ").trim()),r=t[0]?.replace(/^=/,"").toUpperCase();return["PAGE","NUMPAGES","SECTIONPAGES","SECTION"].includes(r)||"PAGEREF"===r&&!!this.options.updatePageReferences}noteTextSignature(e,t){const r=e=>e.nodeType===Node.TEXT_NODE?e.textContent:1===e.nodeType&&this.isMutableNoteField(e)?`\0docx-field-${t.indexOf(e)}\0`:Array.from(e.childNodes).map(r).join("");return r(e)}assertDynamicNotesFit(e){const t=[],r=this.dynamicNoteState.get(e);if(r)for(const n of r.items){const a=r.fragments.get(n),s=r.fields.get(n),o=a.flatMap(e=>Array.from(e.querySelectorAll("[data-docx-field-instr]")));(a.map(e=>this.noteTextSignature(e,s)).join("")!==r.text.get(n)||o.length!==s.length||o.some((e,t)=>e!==s[t])||a.some((t,r)=>!e.contains(t)||t.dataset.docxNoteFragment!==`${r}`))&&t.push(`fragment conservation ${n.dataset.docxNoteKind}:${n.dataset.docxNoteId}`)}const n=this.options.paginationTolerance??2;for(const r of Array.from(e.querySelectorAll(`:scope > section.${this.className}`))){const e=Array.from(r.children).filter(e=>e.dataset.docxNoteList);if(!e.length||r.clientHeight<=0)continue;delete r.dataset.docxNoteLayoutError;const a=this.getPageBodyBottom(r),s=this.getPageNoteBottom(r),o=Array.from(r.querySelectorAll(":scope > article > *")).some(e=>e.getBoundingClientRect().bottom>a+n),i=e.some(e=>Array.from(e.querySelectorAll("*")).some(e=>e.getBoundingClientRect().bottom>s+n));(o||i)&&(r.dataset.docxNoteLayoutError="unresolved-overflow",t.push(e.flatMap(e=>Array.from(e.children,e=>`${e.dataset.docxNoteKind}:${e.dataset.docxNoteId}`)).join(",")))}if(t.length)throw e.dataset.docxNoteLayoutError="unresolved-overflow",new Error(`docx-preview: note layout requires continuation or unsupported geometry (${t.join("; ")}); all note content has been preserved`);delete e.dataset.docxNoteLayoutError}async refreshDynamicHeaderFooters(e){let t="",r=0,n=0;const a=this.tasks.length;for(const a of e){const e=a.dataset.docxSection??"",s=e!==t;if(s){const s=Number(a.dataset.docxPageStart);r=null!=a.dataset.docxPageStart&&Number.isFinite(s)?s:r+1,n=1,t=e}else r++,n++;const o=this.pageHeaderFooterState.get(a);if(o){this.currentPageNumber=r,this.currentSectionPageNumber=n,this.currentSectionNumber=Number(a.dataset.docxSectionNumber)||1;for(const e of["header","footer"]){const t="header"===e?o.headerProps:o.footerProps,n="header"===e?t.headerRefs:t.footerRefs,i="header"===e?"headerId":"footerId",l=this.selectHeaderFooterReference(n,t,r,s);if(o[i]!==l?.id&&(o[i]=l?.id,a.querySelector(`:scope > ${e}`)?.remove(),("header"===e?this.options.renderHeaders:this.options.renderFooters)&&(this.currentSectionProps=t,this.renderHeaderFooter(n,t,r,s,a),"header"===e))){const e=a.querySelector(":scope > header");e&&a.prepend(e)}}}}await Promise.allSettled(this.tasks.slice(a))}splitOverflowBlock(e,t,r){if(!r.isConnected&&t.isConnected&&r.parentElement&&t.after(r.parentElement),!e||"true"==e.dataset.docxKeepLines)return!1;const n=getComputedStyle(e);if("avoid"==n.breakInside||"avoid"==n.pageBreakInside)return!1;switch(e.tagName.toLowerCase()){case"p":return this.splitParagraphBlock(e,t,r);case"table":return this.splitTableBlock(e,t,r)}return!1}splitParagraphBlock(e,t,r){if(!e.hasChildNodes())return!1;const n=this.cloneBlockShell(e);n.dataset.docxContinued="true",r.prepend(n);let a=!1,s=0;for(;this.isPageOverflowing(t)&&e.hasChildNodes()&&s++<1e3;){if(!this.moveTailInlineNode(e,n,t))break;a=!0,this.removeEmptyInlineContainers(e)}return a?(e.hasChildNodes()?this.options.strictWordCompatibility&&"true"==e.dataset.docxWidowControl&&this.rebalanceWidowOrphan(e,n,t):e.remove(),!0):(n.remove(),!1)}splitTableBlock(e,t,r){const n=this.tableContentRows(e);if(n.length<=1)return!1;const a=this.cloneBlockShell(e);a.dataset.docxContinued="true";for(const t of Array.from(e.children))"colgroup"==t.tagName?.toLowerCase()&&a.appendChild(t.cloneNode(!0));for(const e of n.filter(e=>"true"==e.dataset.docxRepeatHeader)){const t=e.cloneNode(!0);t.dataset.docxRepeatedHeader="true",a.appendChild(t)}r.prepend(a);let s=!1,o=0;for(;this.isPageOverflowing(t)&&this.tableContentRows(e).length>1&&o++<500;){const t=this.tableContentRows(e).filter(e=>"true"!=e.dataset.docxRepeatedHeader),r=t[t.length-1];if(!r)break;a.insertBefore(r,this.firstMovedTableRow(a)),s=!0}return!!s||(a.remove(),!1)}cloneBlockShell(e){const t=e.cloneNode(!1);return t.removeAttribute("id"),t}tableContentRows(e){return Array.from(e.querySelectorAll(":scope > tr, :scope > tbody > tr"))}firstMovedTableRow(e){return this.tableContentRows(e).find(e=>"true"!=e.dataset.docxRepeatedHeader)??null}moveTailInlineNode(e,t,r){const n=e.lastChild;if(!n)return!1;if(n.nodeType==Node.TEXT_NODE)return this.moveTextTail(n,t,r);if(n instanceof Element){if(n.dataset?.docxNoteReference)return t.prepend(n),!0;if(n.childNodes.length>0&&"br"!=n.tagName?.toLowerCase()){const e=n.cloneNode(!1);e.removeAttribute("id"),t.prepend(e);const a=this.moveTailInlineNode(n,e,r);return n.hasChildNodes()||n.remove(),e.hasChildNodes()||e.remove(),a}}return t.prepend(n),!0}moveTextTail(e,t,r,n=()=>this.isPageOverflowing(r),a=!1,s=0){const o=e.data??"";if(!o||o.length<=s)return!1;const i=document.createTextNode("");if(t.prepend(i),1==o.length)return i.data=o,e.remove(),!0;let l=1,c=o.length-s,h=c;for(;l<=c;){const t=Math.floor((l+c)/2);e.data=o.substring(0,o.length-t),i.data=o.substring(o.length-t),n()?l=t+1:(h=t,c=t-1)}if(h=Math.min(o.length-s,this.adjustSplitToWordBoundary(o,h)),a){const e=o.length-h,t=globalThis.Intl?.Segmenter;let r=0;if(t)for(const n of new t(void 0,{granularity:"grapheme"}).segment(o)){if(n.index>e)break;r=n.index}else for(r=e,r>0&&/[\uDC00-\uDFFF]/.test(o[r])&&/[\uD800-\uDBFF]/.test(o[r-1])&&r--;r>0&&/[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f\ufe00-\ufe0f\u200d]/.test(o[r]);)r--;h=o.length-Math.max(r,s)}return e.data=o.substring(0,o.length-h),i.data=o.substring(o.length-h),e.data||e.remove(),!0}adjustSplitToWordBoundary(e,t){if(t<=1||t>=e.length)return t;const r=e.length-t,n=e.lastIndexOf(" ",r);return n>0&&r-n<32?e.length-n-1:t}removeEmptyInlineContainers(e){for(const t of Array.from(e.childNodes))t instanceof HTMLElement&&(this.removeEmptyInlineContainers(t),t.hasChildNodes()||/^(br|img|svg|math)$/i.test(t.tagName)||t.remove())}cleanupEmptyNumberedParagraphs(e){const t=`p[class*="${this.className}-num-"]`;for(const r of Array.from(e.querySelectorAll(t))){if(this.hasVisiblePaginationContent(r))continue;if(!r.id&&!r.querySelector("[id], a[name]"))continue;const t=this.findNextVisiblePaginationBlock(e,r);t&&this.moveAnchorsToBlock(r,t),r.remove()}}removeEmptyDynamicPages(e){const t=Array.from(e.querySelectorAll(`:scope > section.${this.className}[data-docx-dynamic-page="true"]`));for(const e of t){const t=Array.from(e.querySelectorAll(":scope > article")),r=t.some(e=>Array.from(e.children).some(e=>this.hasVisiblePaginationContent(e))),n=Array.from(e.children).some(e=>e.dataset.docxNoteList&&e.children.length>0);t.length>0&&!r&&!n&&e.remove()}}findNextVisiblePaginationBlock(e,t){const r=Array.from(e.querySelectorAll("article p, article table, article figure, article img, article svg, article math"));for(let e=r.indexOf(t)+1;e<r.length;e++){const t=r[e];if(this.hasVisiblePaginationContent(t))return t}return null}hasVisiblePaginationContent(e){return(e.textContent??"").replace(/\s+/g,"").length>0||!!e.querySelector("br,img,svg,math,object,canvas,video,table")}moveAnchorsToBlock(e,t){const r=Array.from(e.querySelectorAll("[id], a[name]"));e.id&&!t.id&&(t.id=e.id);for(let e=r.length-1;e>=0;e--){const n=r[e];n.id&&t.querySelector(`#${CSS.escape(n.id)}`)||t.prepend(n)}}rebalanceWidowOrphan(e,t,r){const n=this.visualLineCount(e),a=this.visualLineCount(t);if(n>=2&&a>=2)return;if(n<2&&e.parentElement&&t.hasChildNodes())return t.prepend(...Array.from(e.childNodes)),void e.remove();let s=0;for(;this.visualLineCount(t)<2&&e.hasChildNodes()&&s++<20&&!this.isPageOverflowing(r)&&this.moveTailInlineNode(e,t,r););}visualLineCount(e){try{const t=document.createRange();t.selectNodeContents(e);const r=Array.from(t.getClientRects());t.detach?.();const n=new Set(r.map(e=>Math.round(e.top)));return Math.max(n.size,1)}catch{return 1}}updateDynamicFieldPages(e){const t=Array.from(e.querySelectorAll(":scope > section."+this.className)),r={},n={},a={},s=[],o=[];let i=0,l="";for(const e of t){const t=e.dataset.docxSection??"";n[t]=(n[t]??0)+1}if(t.forEach((e,t)=>{const c=e.dataset.docxSection??"";if(c!=l){const t=null!=e.dataset.docxPageStart?parseInt(e.dataset.docxPageStart,10):null;i=Number.isFinite(t)?t:i+1,a[c]=1,l=c}else i++,a[c]=(a[c]??0)+1;e.dataset.docxPageNumber=`${i}`,e.dataset.docxSectionPageNumber=`${a[c]}`,e.dataset.docxSectionPageCount=`${n[c]??1}`,s[t]=i,o[t]=a[c];for(const t of Array.from(e.querySelectorAll("[id]")))t.id&&null==r[t.id]&&(r[t.id]=i)}),t.forEach((e,a)=>{const i=e.dataset.docxSection??"";for(const l of Array.from(e.querySelectorAll("[data-docx-field-instr]"))){const c=this.evaluateDynamicField(l.dataset.docxFieldInstr,s[a]??a+1,t.length,r,n[i]??1,o[a]??1,parseInt(e.dataset.docxSectionNumber??"1",10));null!=c&&(l.textContent=c)}}),this.options.updatePageReferences)for(const t of Array.from(e.querySelectorAll("[data-docx-page-ref]"))){const e=t.dataset.docxPageRef;t.textContent=`${r[e]??1}`}this.updateDynamicNoteNumbers(e)}evaluateDynamicField(e,t,r,n,a=r,s=t,o=1){const i=this.tokenizeFieldInstruction((e??"").replace(/\s+/g," ").trim()),l=i[0]?.replace(/^=/,"").toUpperCase();let c=null;switch(l){case"PAGE":c=this.formatFieldNumber(t,this.fieldFormatSwitchToNumFormat(this.fieldSwitch(i,"\\*")??this.currentSectionProps?.pageNumber?.format));break;case"NUMPAGES":c=this.formatFieldNumber(r,this.fieldFormatSwitchToNumFormat(this.fieldSwitch(i,"\\*")??this.currentSectionProps?.pageNumber?.format));break;case"SECTIONPAGES":c=this.formatFieldNumber(a,this.fieldFormatSwitchToNumFormat(this.fieldSwitch(i,"\\*")??this.currentSectionProps?.pageNumber?.format));break;case"SECTION":c=this.formatFieldNumber(o,this.fieldFormatSwitchToNumFormat(this.fieldSwitch(i,"\\*")??"decimal"));break;case"PAGEREF":{if(!this.options.updatePageReferences)return null;const e=this.firstFieldArgument(i);c=e?`${n[e]??1}`:"";break}}return null==c?null:this.applyFieldFormatting(c,e)}renderDefaultStyle(){var e=this.className;const t=!!this.options.darkMode,r=t?"#242424":"gray",n=t?Bs("white"):"white",a=t?Bs("black"):"black";var s=`\n.${e}-wrapper { position: relative; background: ${r}; padding: 30px; padding-bottom: 0px; display: flex; flex-flow: column; align-items: center; }\n.${e}-wrapper>section.${e} { background: ${n}; box-shadow: ${t?"0 0 10px rgba(0, 0, 0, 0.8)":"0 0 10px rgba(0, 0, 0, 0.5)"}; margin-bottom: 30px;${t?" outline: 1px solid rgba(255, 255, 255, 0.15); outline-offset: -1px;":""} }`;this.options.hideWrapperOnPrint&&(s=`@media not print { ${s} }`);var o=`${s}\n.${e} { --docx-auto-color: ${a}; color: var(--docx-auto-color); font-size: 10.5pt; font-family: var(--docx-minorHAnsi-font, "Times New Roman", serif); hyphens: auto; text-underline-position: from-font; font-kerning: normal; font-variant-ligatures: common-ligatures contextual; text-rendering: optimizeLegibility; line-break: auto; }\nsection.${e} { box-sizing: border-box; display: flex; flex-flow: column nowrap; position: relative; overflow: visible; isolation: isolate; }\nsection.${e}>header, section.${e}>footer { flex-shrink: 0; }\nsection.${e}>[data-docx-note-list] { flex-shrink: 0; }\nsection.${e}>article { z-index: 1; }\nsection.${e}>article:last-of-type { margin-bottom: auto; }\nsection.${e}>footer { z-index: 1; }\n.${e} [data-docx-continued="true"] { margin-top: 0 !important; }\n.${e} tr[data-docx-repeat-header="true"], .${e} tr[data-docx-repeated-header="true"] { break-after: avoid; }\n.${e} li[data-docx-note-label]::marker { content: attr(data-docx-note-label) " "; }\n.${e} li[data-docx-note-custom="true"]::marker, .${e} li[data-docx-note-label=""]::marker,\n.${e} li[data-docx-note-fragment]:not([data-docx-note-fragment="0"])::marker { content: ""; }\n.${e} table { border-collapse: collapse; }\n.${e} table td, .${e} table th { vertical-align: top; overflow-wrap: anywhere; }\n.${e} p { margin: 0pt; min-height: 1em; }\n.${e} .${e}-paragraph-frame > p { margin: 0; }\n.${e} span { white-space: pre-wrap; overflow-wrap: break-word; font-feature-settings: "kern" 1; }\n.${e} table span { overflow-wrap: anywhere; }\n.${e} .${e}-float-wrap { shape-margin: 0.15in; }\n.${e} .${e}-field { white-space: pre-wrap; }\n.${e} .${e}-tab-stop { display: inline-block; min-width: 1em; white-space: nowrap; line-height: 1; }\n.${e} .${e}-tab-stop[data-docx-tab-leader="dot"], .${e} .${e}-tab-stop[data-docx-tab-leader="middleDot"] { min-width: 2em; border-bottom: 1px dotted currentColor; height: .85em; transform: translateY(-.18em); }\n.${e} .${e}-tab-stop[data-docx-tab-leader="hyphen"], .${e} .${e}-tab-stop[data-docx-tab-leader="heavy"], .${e} .${e}-tab-stop[data-docx-tab-leader="underscore"] { min-width: 2em; border-bottom: 1px solid currentColor; height: .85em; transform: translateY(-.18em); }\n.${e} .${e}-tab-leader-paragraph > a, .${e} .${e}-tab-leader-paragraph > .${e}-tab-leader-line, .${e} .${e}-tab-leader-line { display: inline-flex; align-items: baseline; width: calc(100% - var(--docx-text-indent, 0pt)); color: inherit !important; text-decoration: none !important; box-sizing: border-box; max-width: none; text-indent: 0; }\n.${e} .${e}-tab-leader-paragraph > a, .${e} .${e}-tab-leader-paragraph > a * { color: inherit !important; text-decoration: none !important; }\n.${e} .${e}-toc-paragraph a, .${e} .${e}-toc-paragraph a * { color: inherit !important; text-decoration: none !important; }\n.${e} .${e}-toc-paragraph.${e}-tab-leader-paragraph[class*="${e}-num-"] { display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: .35em; align-items: baseline; list-style-position: outside; list-style-type: none; text-indent: 0 !important; }\n.${e} .${e}-toc-paragraph.${e}-tab-leader-paragraph[class*="${e}-num-"]::before { grid-column: 1; grid-row: 1; white-space: pre; margin-inline-end: 0; }\n.${e} .${e}-toc-paragraph.${e}-tab-leader-paragraph[class*="${e}-num-"] > a { grid-column: 2; grid-row: 1; display: inline-flex; flex: 1 1 auto; width: auto; min-width: 0; max-width: 100%; }\n.${e} .${e}-tab-leader-title { flex: 0 1 auto; min-width: 0; }\n.${e} .${e}-tab-leader-page { flex: 0 0 auto; white-space: nowrap; text-align: right; }\n.${e} .${e}-tab-leader-fill, .${e} .${e}-tab-leader-paragraph > a > .${e}-tab-stop[data-docx-tab-leader="dot"], .${e} .${e}-tab-leader-paragraph > a > .${e}-tab-stop[data-docx-tab-leader="middleDot"], .${e} .${e}-tab-leader-paragraph > .${e}-tab-stop[data-docx-tab-leader="dot"], .${e} .${e}-tab-leader-paragraph > .${e}-tab-stop[data-docx-tab-leader="middleDot"] { flex: 1 1 auto; width: auto; margin: 0 .2em; }\n.${e} .${e}-literal-leader-line > .${e}-tab-leader-title { flex: 0 0 auto; white-space: nowrap; }\n.${e} .${e}-toc { display: table; width: 100%; }\n.${e} .${e}-toc-entry { display: table-row; }\n.${e} .${e}-toc-title, .${e} .${e}-toc-page { display: table-cell; }\n.${e} .${e}-toc-title { border-bottom: 1px dotted currentColor; }\n.${e} .${e}-toc-page { text-align: right; width: 3em; }\n.${e} math { font-family: Cambria Math, STIX Two Math, Latin Modern Math, serif; }\n.${e} ruby { ruby-position: over; }\n.${e} rt { font-size: 0.5em; line-height: 1; }\n.${e} .${e}-chart, .${e} .${e}-smartart, .${e} .${e}-ink { min-width: 2in; min-height: 1in; }\n.${e} a { color: inherit; text-decoration: inherit; }\n.${e} svg { fill: transparent; }\n[data-docx-review-enabled="true"] { --docx-review-color: #c2410c; }\n[data-docx-review-enabled="true"] ins[data-docx-change-kind], [data-docx-review-enabled="true"] del[data-docx-change-kind] { text-decoration: none; }\n[data-docx-review-enabled="true"][data-docx-review-mode="final"] [data-docx-change-kind="delete"], [data-docx-review-enabled="true"][data-docx-review-mode="final"] [data-docx-change-kind="move-from"], [data-docx-review-enabled="true"][data-docx-review-mode="simple"] [data-docx-change-kind="delete"], [data-docx-review-enabled="true"][data-docx-review-mode="simple"] [data-docx-change-kind="move-from"], [data-docx-review-enabled="true"][data-docx-review-mode="original"] [data-docx-change-kind="insert"], [data-docx-review-enabled="true"][data-docx-review-mode="original"] [data-docx-change-kind="move-to"] { display: none !important; }\n[data-docx-review-enabled="true"][data-docx-review-mode="all"] ins[data-docx-change-kind]:not([data-docx-change-empty="true"]) { color: var(--docx-review-color); text-decoration: underline; text-decoration-color: var(--docx-review-color); text-underline-offset: .16em; background: color-mix(in srgb, var(--docx-review-color) 7%, transparent); }\n[data-docx-review-enabled="true"][data-docx-review-mode="all"] ins[data-docx-change-empty="true"] { color: inherit; text-decoration: none; background: transparent; }\n[data-docx-review-enabled="true"][data-docx-review-mode="all"] del[data-docx-change-kind] { display: inline-block !important; width: 0 !important; max-width: 0 !important; height: 0 !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; line-height: 0 !important; vertical-align: baseline; color: transparent; }\n[data-docx-review-enabled="true"][data-docx-review-mode="all"][data-docx-review-presentation="inline"] del[data-docx-change-kind] { display: inline !important; width: auto !important; max-width: none !important; height: auto !important; overflow: visible !important; line-height: inherit !important; color: var(--docx-review-color); text-decoration: line-through; text-decoration-color: var(--docx-review-color); }\n[data-docx-review-enabled="true"][data-docx-review-mode="simple"] ins[data-docx-change-kind] { color: inherit; text-decoration: none; background: transparent; }\n[data-docx-review-enabled="true"][data-docx-review-mode="original"] del[data-docx-change-kind] { color: inherit; text-decoration: none; background: transparent; }\n[data-docx-review-enabled="true"][data-docx-review-mode="all"] [data-docx-format-change="true"], [data-docx-review-enabled="true"][data-docx-review-mode="simple"] [data-docx-format-change="true"] { outline: 0; }\n[data-docx-review-enabled="true"][data-docx-review-mode="final"] [data-docx-change-kind="comment"], [data-docx-review-enabled="true"][data-docx-review-mode="original"] [data-docx-change-kind="comment"] { display: none !important; }\n@media print { .${e}-wrapper { background: transparent; padding: 0; display: block; } .${e}-wrapper>section.${e}, section.${e} { background: white; margin: 0 auto; box-shadow: none; outline: none; break-after: page; page-break-after: always; } .${e} { --docx-auto-color: black; color: black; } }\n`;return this.options.renderComments&&(o+=`\n.${e}-comment-ref { cursor: pointer; }\n.${e}-comment-ref[data-docx-comment-positioned="true"]:not(:focus) { opacity: 0; }\n.${e}-comment-ref:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }\n.${e}-comment-anchor { display: inline-block; width: 0; height: 0; overflow: visible; vertical-align: baseline; }\n.${e}-comment-layer { position: absolute; inset: 0; pointer-events: none; z-index: 1000; }\n.${e}-comment-popover { display: block; width: max-content; pointer-events: auto; margin: 0; padding: 0; }\n.${e}-comment-popover > summary { list-style: none; cursor: pointer; display: block; padding: 0; margin: 0; }\n.${e}-comment-popover > summary::-webkit-details-marker { display: none; }\n.${e}-comment-popover > summary:focus-visible { outline: 2px solid currentColor; }\n.${e}-comment-body { position: absolute; top: 100%; width: 30ch; box-sizing: border-box; overflow: auto; padding: .5rem; background: ${n}; color: var(--docx-auto-color); box-shadow: 0 0 .25rem rgba(0,0,0,.25); }\n.${e}-comment-author,.${e}-comment-date { font-size: .875rem; color: ${t?Bs("#888888"):"#888"}; }\n@media print { .${e}-comment-layer, .${e}-comment-popover, .${e}-comment-body { position: static !important; width: auto !important; max-width: none !important; max-height: none !important; overflow: visible; } .${e}-comment-layer { pointer-events: auto; } .${e}-comment-body { box-shadow: none; } }\n\n`),[this.h({tagName:"#comment",children:["docxjs library predefined styles"]}),this.h({tagName:"style",children:[o]})]}async renderNumbering(e){var t="",r=[];const n=new Map,a=new Map(e.map(e=>[`${e.id}:${e.level}`,this.numFormatToCssValue(e.format)])),s=(e,t)=>{const r=n.get(e)??[];r.push(t),n.set(e,r)};for(var o of e){var i=this.numberingSelector(o.id,o.level),l="none";if(o.bullet){let e=`--${this.className}-${o.bullet.src}`.toLowerCase();t+=this.styleToString(`${i}:before`,{content:"' '",display:"inline-block",background:`var(${e})`},o.bullet.style);try{const r=await this.document.loadNumberingImage(o.bullet.src);t+=`${this.rootSelector} { ${e}: url(${r}) }`}catch(e){this.options.debug&&console.warn(`Can't load numbering image with src ${o.bullet.src}`)}}else if(o.levelText){let e=this.numberingCounter(o.id,o.level);const n=e+" "+(o.start-1),l=this.numberingRestartLevel(o);null!=l&&s(this.numberingSelector(o.id,l),n),r.push(n);const c=this.normalizeNumberingLevelText(o.levelText,o.format,o.rStyle),h=this.numberingMarkerRunStyle(o.rStyle,c.normalized);t+=this.styleToString(`${i}:before`,{content:this.levelTextToContent(c.text,o.suff,o.id,this.numFormatToCssValue(o.format),a),"counter-increment":e,"font-family":"var(--docx-marker-font-family, inherit)","font-size":"var(--docx-marker-font-size, inherit)","font-style":"var(--docx-marker-font-style, inherit)","font-weight":"var(--docx-marker-font-weight, inherit)",...h})}else l=this.numFormatToCssValue(o.format);t+=this.styleToString(i,{display:"list-item","list-style-position":"inside","list-style-type":l,...o.pStyle})}for(const[e,r]of n)t+=this.styleToString(e,{"counter-set":r.join(" ")});return r.length>0&&(t+=this.styleToString(this.rootSelector,{"counter-reset":r.join(" ")})),[this.h({tagName:"#comment",children:["docxjs document numbering styles"]}),this.h({tagName:"style",children:[t]})]}renderStyles(e){var t="";const r=this.styleMap,n=y(e.filter(e=>e.isDefault),e=>e.target);for(const i of e){var a=i.styles;if(i.linked){var s=i.linked&&r[i.linked];s?a=a.concat(s.styles):this.options.debug&&console.warn(`Can't find linked style ${i.linked}`)}for(const e of a){var o=`${i.target??""}.${i.cssName}${e.mod??""}`;i.target!=e.target&&(o+=` ${e.target}`),o=this.scopeDocumentStyleSelector(o),n[i.target]==i&&(o=`.${this.className} ${i.target}, `+o),t+=this.styleToString(o,e.values)}}return[this.h({tagName:"#comment",children:["docxjs document styles"]}),this.h({tagName:"style",children:[t]})]}renderNotes(e,t,r,n="footnote"){const a=Array.from(new Set(e)).filter(e=>t[e]&&!["separator","continuationSeparator","continuationNotice"].includes(t[e].noteType)&&!this.renderedNoteIds.has(`${n}:${e}`));if(0===a.length)return null;const s=this.currentPart;this.currentPart=r??s;try{const e=a.map(e=>{const r=this.renderElement(t[e]);return r.dataset.docxNoteId=e,r.dataset.docxNoteKind=n,r.dataset.docxNoteFragment="0",this.applyNoteAssignment(r,this.noteNumbering.assignments.get(`${n}:${e}`),!1),this.renderedNoteIds.add(`${n}:${e}`),r}),r=this.h({tagName:"ol",children:e});return r.dataset.docxNoteList=n,r}finally{this.currentPart=s}}formatNoteAssignment(e){return function(e){if(!e||e.custom||"none"===e.properties.format)return"";const t=e.value,r=e.properties.format;switch(r){case"chicago":{const e=["*","†","‡","§"];return t>0&&t<=384?e[(t-1)%e.length].repeat(Math.floor((t-1)/e.length)+1):`${t}`}case"upperLetter":case"lowerLetter":{if(t<=0||t>3328)return`${t}`;const e="upperLetter"===r?65:97;return String.fromCharCode(e+(t-1)%26).repeat(Math.floor((t-1)/26)+1)}case"upperRoman":case"lowerRoman":{if(t<=0||t>3999)return`${t}`;const e=[[1e3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]];let n=t,a="";for(const[t,r]of e)for(;n>=t;)a+=r,n-=t;return"lowerRoman"===r?a.toLowerCase():a}case"decimalZero":return t<10?`0${t}`:`${t}`;case"numberInDash":return`-${t}-`;case"hex":return t.toString(16).toUpperCase();case"ordinal":return`${t}${t%100>=11&&t%100<=13?"th":{1:"st",2:"nd",3:"rd"}[t%10]??"th"}`;default:return`${t}`}}(e)}applyNoteAssignment(e,t,r){if(!t)return;const n=this.formatNoteAssignment(t);e.dataset.docxNoteLabel=n,e.dataset.docxNoteCustom=`${t.custom}`,r?e.childNodes?.length?e.textContent=n:e.appendChild(this.h(n)):(null!=t.value&&e.setAttribute("value",`${t.value}`),e.style.listStyleType=t.custom?"none":this.numFormatToCssValue(t.properties.format))}renderElement(e){switch(e.type){case We.Paragraph:return this.renderParagraph(e);case We.BookmarkStart:return this.renderBookmarkStart(e);case We.BookmarkEnd:return null;case We.Run:return this.renderRun(e);case We.Table:return this.renderTable(e);case We.Row:return this.renderTableRow(e);case We.Cell:return this.renderTableCell(e);case We.Hyperlink:return this.renderHyperlink(e);case We.SmartTag:return this.renderSmartTag(e);case We.Drawing:return this.renderAnchoredElement(e,this.renderDrawing(e));case We.Image:return this.renderImage(e);case We.Shape:return this.renderShape(e);case We.Chart:return this.renderChart(e);case We.SmartArt:return this.renderSmartArt(e);case We.Ink:return this.renderInk(e);case We.SimpleField:return this.renderSimpleField(e);case We.Instruction:case We.ComplexField:return null;case We.Text:return this.renderText(e);case We.DeletedText:return this.renderDeletedText(e);case We.Tab:return this.renderTab(e);case We.Symbol:return this.renderSymbol(e);case We.Break:return this.renderBreak(e);case We.Footer:return this.renderContainer(e,"footer");case We.Header:return this.renderContainer(e,"header");case We.Footnote:case We.Endnote:return this.renderContainer(e,"li");case We.FootnoteReference:return this.renderFootnoteReference(e);case We.EndnoteReference:return this.renderEndnoteReference(e);case We.NoBreakHyphen:return this.h("‑");case We.SoftHyphen:return this.h("­");case We.PositionalTab:return this.renderTab(e);case We.Ruby:return this.renderRuby(e);case We.RubyBase:return this.renderContainer(e,"span");case We.RubyText:return this.toHTML(e,zs.html,"rt");case We.VmlPicture:return this.renderVmlPicture(e);case We.VmlElement:return this.renderAnchoredElement(e,this.renderVmlElement(e));case We.MmlMath:return this.renderContainerNS(e,zs.mathML,"math",{xmlns:zs.mathML});case We.MmlMathParagraph:return this.renderMmlMathParagraph(e);case We.MmlFraction:return this.renderContainerNS(e,zs.mathML,"mfrac");case We.MmlBase:return this.renderContainerNS(e,zs.mathML,e.parent?.type==We.MmlMatrixRow?"mtd":"mrow");case We.MmlNumerator:case We.MmlDenominator:case We.MmlFunction:case We.MmlLimit:case We.MmlBox:return this.renderContainerNS(e,zs.mathML,"mrow");case We.MmlGroupChar:return this.renderMmlGroupChar(e);case We.MmlLimitLower:return this.renderContainerNS(e,zs.mathML,"munder");case We.MmlLimitUpper:return this.renderContainerNS(e,zs.mathML,"mover");case We.MmlSubSuperscript:return this.renderContainerNS(e,zs.mathML,"msubsup");case We.MmlPhantom:return this.renderMmlPhantom(e);case We.MmlBorderBox:return this.renderContainerNS(e,zs.mathML,"menclose");case We.MmlAccent:return this.renderMmlAccent(e);case We.MmlMatrix:return this.renderContainerNS(e,zs.mathML,"mtable");case We.MmlMatrixRow:return this.renderContainerNS(e,zs.mathML,"mtr");case We.MmlRadical:return this.renderMmlRadical(e);case We.MmlSuperscript:return this.renderContainerNS(e,zs.mathML,"msup");case We.MmlSubscript:return this.renderContainerNS(e,zs.mathML,"msub");case We.MmlDegree:case We.MmlSuperArgument:case We.MmlSubArgument:return this.renderContainerNS(e,zs.mathML,"mrow");case We.MmlFunctionName:return this.renderContainerNS(e,zs.mathML,"mi");case We.MmlDelimiter:return this.renderMmlDelimiter(e);case We.MmlRun:return this.renderMmlRun(e);case We.MmlNary:return this.renderMmlNary(e);case We.MmlPreSubSuper:return this.renderMmlPreSubSuper(e);case We.MmlBar:return this.renderMmlBar(e);case We.MmlEquationArray:return this.renderMllList(e);case We.Inserted:return this.renderInserted(e);case We.Deleted:return this.renderDeleted(e);case We.CommentRangeStart:return this.renderCommentRangeStart(e);case We.CommentRangeEnd:return this.renderCommentRangeEnd(e);case We.CommentReference:return this.renderCommentReference(e);case We.AltChunk:return this.renderAltChunk(e)}return null}renderElements(e,t){if(null==e)return null;e=this.reviewParagraphs(e);const r=[];for(let t=0;t<e.length;t++){const n=e[t].type==We.Paragraph?e[t]:null;if(this.isPositionedParagraphFrame(n)){const a=this.paragraphFrameKey(n),s=[n];for(;t+1<e.length;){const r=e[t+1].type==We.Paragraph?e[t+1]:null;if(!this.isPositionedParagraphFrame(r)||this.paragraphFrameKey(r)!=a)break;s.push(r),t++}const o=s.flatMap(e=>S(this.renderElement(e)).filter(e=>null!=e)),i=this.h({tagName:"div",className:`${this.className}-paragraph-frame`,style:this.paragraphFrameStyle(n),children:o});i.dataset.docxFrameAnchor=`${n.frame.horizontalAnchor??"text"}/${n.frame.verticalAnchor??"text"}`,i.dataset.docxFrameParagraphs=`${s.length}`,r.push(i);continue}const a=this.tryRenderComplexField(e,t);a?(r.push(...S(a.node).filter(e=>null!=e)),t=a.nextIndex-1):r.push(...S(this.renderElement(e[t])).filter(e=>null!=e))}return t&&r.forEach(e=>t.appendChild(v(e)?document.createTextNode(e):e)),r}reviewParagraphs(e){const t=Us(this.options);if("all"==t)return e;const r=[];for(const n of e??[]){const e=r[r.length-1],a=n,s="original"==t?(e?.props?.paragraphMarkRevisions??[]).some(e=>"insert"==e.kind):e?.props?.deletedParagraphMark;e?.type==We.Paragraph&&n.type==We.Paragraph&&s&&!e.sectionProps&&this.paragraphFrameKey(e)==this.paragraphFrameKey(a)?r[r.length-1]={...a,children:[...e.children??[],...a.children??[]]}:r.push(n)}return r}isPositionedParagraphFrame(e){const t=e?.frame;return!!t&&"drop"!=t.dropCap&&!!(t.width||t.height||t.horizontalPosition||t.verticalPosition||t.horizontalAlignment||t.verticalAlignment)}paragraphFrameKey(e){const t=e.frame??{};return JSON.stringify([t.width,t.height,t.horizontalPosition,t.verticalPosition,t.horizontalAnchor,t.verticalAnchor,t.horizontalAlignment,t.verticalAlignment,t.horizontalSpace,t.verticalSpace,t.heightRule,t.wrap])}paragraphFrameStyle(e){const t=e.frame,r={position:"absolute",boxSizing:"border-box",zIndex:"2"},n="page"==t.horizontalAnchor,a="page"==t.verticalAnchor;return t.width&&(r.width=t.width),t.height&&("exact"==t.heightRule?(r.height=t.height,r.overflow="hidden"):r.minHeight=t.height),t.horizontalPosition?r.left=n?`calc(${t.horizontalPosition} - var(--docx-page-padding-left, 0pt))`:t.horizontalPosition:"center"==t.horizontalAlignment?(r.left="50%",r.transform="translateX(-50%)"):"right"==t.horizontalAlignment||"outside"==t.horizontalAlignment?r.right="0":"left"!=t.horizontalAlignment&&"inside"!=t.horizontalAlignment||(r.left="0"),t.verticalPosition?r.top=a?`calc(${t.verticalPosition} - var(--docx-page-padding-top, 0pt))`:t.verticalPosition:"center"==t.verticalAlignment?(r.top="50%",r.transform=`${r.transform??""} translateY(-50%)`.trim()):"bottom"==t.verticalAlignment||"outside"==t.verticalAlignment?r.bottom="0":"top"!=t.verticalAlignment&&"inside"!=t.verticalAlignment||(r.top="0"),r}tryRenderComplexField(e,t){if(!this.hasFieldChar(e[t],"begin"))return null;let r=0,n=!1,a="";const s=[];for(let o=t;o<e.length;o++){const t=e[o],i=t.type==We.Run?{...t,fieldRun:!1,children:[]}:null;if(t.type==We.Run){for(const e of t.children??[]){if(e.type==We.ComplexField){const t=e;if("begin"==t.charType)r++;else if("separate"==t.charType&&1==r)n=!0;else if("end"==t.charType&&(r--,0==r))return i.children.length>0&&s.push(i),{node:this.renderSimpleField({type:We.SimpleField,instruction:a,lock:!1,dirty:!1,children:s}),nextIndex:o+1};continue}n||1!=r||e.type!=We.Instruction?n&&r>0&&i.children.push(e):a+=e.text??""}i.children.length>0&&s.push(i)}else n&&r>0&&s.push(t)}return null}hasFieldChar(e,t){return e.type==We.Run&&e.children?.some(e=>e.type==We.ComplexField&&e.charType==t)}renderContainer(e,t){return this.h({tagName:t,children:this.renderElements(e.children)})}renderContainerNS(e,t,r,n){return this.h({ns:t,tagName:r,children:this.renderElements(e.children),...n})}effectiveParagraphTabs(e,t){if(!e?.length)return t;if(!t?.length)return e;const r=[...t];for(const t of e){const e=this.parseCssLengthValue(t.position),n=r.findIndex(t=>this.parseCssLengthValue(t.position)==e);n>=0?r[n]=t:r.push(t)}return r.sort((e,t)=>(this.parseCssLengthValue(e.position)??0)-(this.parseCssLengthValue(t.position)??0))}countParagraphTabs(e){let t=0;const r=e=>{e.type!=We.Tab&&e.type!=We.PositionalTab||t++;for(const t of e.children??[])r(t)};return r(e),t}isLeaderTabStop(e){return!!e?.leader&&"none"!=e.leader&&"clear"!=e.style}resolveRenderedTabStop(e,t,r){if(!e?.length)return null;const n=e[Math.min(t,Math.max(e.length-1,0))],a=[...e].reverse().find(e=>this.isLeaderTabStop(e)),s=this.findStyle(this.currentParagraph?.styleName),o=this.isTocParagraphStyle(this.currentParagraph?.styleName,s),i=!!a&&!!(this.currentParagraph?.numbering??s?.paragraphProps?.numbering)&&o;return a?r<=1?o||i?a:n:t>=r-1?a:this.isLeaderTabStop(n)?e.slice(0,Math.min(t+1,e.length)).reverse().find(e=>!this.isLeaderTabStop(e)&&"clear"!=e.style)??e.find(e=>!this.isLeaderTabStop(e)&&"clear"!=e.style)??null:n:n}renderParagraph(e){const t=this.findStyle(e.styleName);e.tabs=this.effectiveParagraphTabs(e.tabs,t?.paragraphProps?.tabs);const r=this.currentParagraph,n=this.currentParagraphTabIndex,a=this.currentParagraphTabCount;this.currentParagraph=e,this.currentParagraphTabIndex=0,this.currentParagraphTabCount=this.countParagraphTabs(e);let s=this.renderElements(e.children);const o=this.uniformParagraphTextScale(e,t);if(null!=o&&1!=o){const r=this.effectiveParagraphCssValue(e,t,"text-indent")??"0pt",n="rtl"==this.effectiveParagraphCssValue(e,t,"direction"),a=this.h({tagName:"span",className:`${this.className}-text-scale`,style:{display:"block",font:"inherit",background:"none",border:"none",width:100/o+"%",transform:`scaleX(${o})`,transformOrigin:n?"right top":"left top",textIndent:`calc(${r} / ${o})`},children:s});a.dataset.docxTextScale=`${o}`,s=[a]}var i=this.toHTML(e,zs.html,"p",this.wrapTabLeaderChildren(s,!0));if(this.options.exposeDisplayTargets&&e.displayAddress){const t=this.currentPart??this.document.documentPart;i.setAttribute("data-office-target",`${t.path}#${e.displayAddress}`)}const l=this.effectiveParagraphCssValue(e,t,"--docx-snap-to-grid");/^(0|false|off)$/i.test(l??"")&&(i.style.letterSpacing="normal"),this.currentParagraph=r,this.currentParagraphTabIndex=n,this.currentParagraphTabCount=a;const c=e.numbering??t?.paragraphProps?.numbering;c&&i.classList.add(this.numberingClass(c.id,c.level));const h=t?.paragraphProps;(e.pageBreakBefore??h?.pageBreakBefore)&&(i.style.breakBefore="page",i.dataset.docxPageBreakBefore="true"),(e.keepLines??h?.keepLines)&&(i.style.breakInside="avoid",i.dataset.docxKeepLines="true"),(e.keepNext??h?.keepNext)&&(i.style.breakAfter="avoid",i.dataset.docxKeepNext="true"),(e.widowControl??h?.widowControl)&&(i.style.orphans="2",i.style.widows="2",i.dataset.docxWidowControl="true"),this.applyDocumentGridLinePitch(e,t,i);const d=e.tabs?.find(e=>this.isLeaderTabStop(e));return d&&(i.classList.add(`${this.className}-tab-leader-paragraph`),i.dataset.docxHasTabLeader="true",i.dataset.docxTabLeader=d.leader,i.dataset.docxTabAlign=d.style),this.isTocParagraphStyle(e.styleName,t)&&(i.classList.add(`${this.className}-toc-paragraph`),i.dataset.docxTocEntry="true"),this.hasParagraphRelativeAnchor(e)&&(i.style.position&&"static"!=i.style.position||(i.style.position="relative"),i.dataset.docxAnchorContext="paragraph"),e.props?.anchorId&&(i.id=e.props.anchorId,i.setAttribute("id",e.props.anchorId)),i}uniformParagraphTextScale(e,t){if(e.numbering||t?.paragraphProps?.numbering||e.frame||this.effectiveParagraphCssValue(e,t,"writing-mode"))return null;const r="--docx-text-scale",n=e.cssStyle?.[r]??this.styleValue(t,"span",r)??this.styleValue(t,"p",r)??"1";let a=null;const s=(e,t)=>{const n=e.cssStyle?.[r]??this.styleValue(this.findStyle(e.styleName),"span",r)??t;switch(e.type){case We.Text:case We.DeletedText:if(!e.text)return!0;const t=Number(n);return!(!Number.isFinite(t)||t<=0||t>6)&&((null==a||a==t)&&(a=t,!0));case We.Run:case We.Hyperlink:case We.SmartTag:case We.Inserted:case We.Deleted:return(e.children??[]).every(e=>s(e,n));case We.BookmarkStart:case We.BookmarkEnd:case We.CommentRangeStart:case We.CommentRangeEnd:case We.NoBreakHyphen:case We.SoftHyphen:return!0;case We.Break:return["line","textWrapping"].includes(e.break);default:return!1}};return(e.children??[]).every(e=>s(e,n))?a:null}hasParagraphRelativeAnchor(e){return(e.children??[]).some(e=>(e.type==We.Drawing||e.type==We.VmlElement)&&"absolute"==e.cssStyle?.position||this.hasParagraphRelativeAnchor(e))}renderAnchoredElement(e,t){if(t.dataset.docxDrawing="true","absolute"!=e.cssStyle?.position||!e.props?.anchorPosition)return t;const r=e.props.anchorPosition,n={...r,horizontal:{...r.horizontal,offset:r.horizontal.offset??(t.style.left||"0pt")},vertical:{...r.vertical,offset:r.vertical.offset??(t.style.top||"0pt")}},a=`${this.anchorLayouts.size}`;this.anchorLayouts.set(a,n),t.dataset.docxAnchorId=a,t.dataset.docxLayoutInCell=`${!1!==r.layoutInCell}`;const s=e=>/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)$/.test(e)?`${e}pt`:e;t.style.left=`calc(${s(n.horizontal.offset)} + var(--docx-anchor-origin-x, 0px))`,t.style.top=`calc(${s(n.vertical.offset)} + var(--docx-anchor-origin-y, 0px))`;const o=["top","bottom"].map(e=>{const t=this.h({tagName:"span",style:{display:"inline-block",width:"0px",height:"0px",padding:"0px",border:"0px",verticalAlign:e}});return t.dataset.docxAnchorLine=e,t}),i=this.h({tagName:"span",children:o});i.dataset.docxAnchorMarker="true",i.setAttribute("aria-hidden","true");const l=this.h({tagName:"span",children:[i,t]});return l.dataset.docxDrawing="true",l}refreshAnchors(e){!function(e,t,r=()=>!0){const n=e.ownerDocument?.defaultView;if(!n||"function"!=typeof e.querySelectorAll)return;const a=Array.from(e.querySelectorAll("section"));e.matches?.("section")&&a.unshift(e);for(const e of a){if(!e.classList.contains(t)||!r(e))continue;const a=n.getComputedStyle(e),s=fs(a.width)+("border-box"===a.boxSizing?0:fs(a.paddingLeft)+fs(a.paddingRight)+fs(a.borderLeftWidth)+fs(a.borderRightWidth)),o=e.getBoundingClientRect(),i=s>0?o.width/s:0;if(Number.isFinite(i)&&!(i<=0)){for(const t of Array.from(e.querySelectorAll('[data-docx-anchor-context="paragraph"]'))){if(!r(t))continue;const e=t.getBoundingClientRect();t.style.setProperty("--docx-paragraph-page-offset-top",(e.top-o.top)/i+"px"),t.style.setProperty("--docx-paragraph-page-offset-left",(e.left-o.left)/i+"px")}gs(e,r),vs(e,r),Cs(e,i,r),Ps(e,r)}}}(e,this.className,e=>this.ownsLayoutElement(e));for(const t of Array.from(e.querySelectorAll("[data-docx-anchor-id]"))){if(!this.ownsLayoutElement(t))continue;const e=this.anchorLayouts.get(t.dataset.docxAnchorId);e&&ms(t,e,this.className)}}ownsLayoutElement(e){for(let t=e;t;t=t.parentElement){const e=uo.get(t);if(e)return e==this}return!0}async prepareLayout(e,t=s(e)){if(e.isConnected&&t.isCurrent()&&(this.layoutGenerations.has(t.signal)||(this.layoutGenerations.set(t.signal,t),t.signal.addEventListener("abort",()=>this.layoutGenerations.delete(t.signal),{once:!0})),await this.yieldToBrowser(),e.isConnected&&t.isCurrent())){if(this.commentLayer&&(uo.set(this.commentLayer.root,this),!this.commentLayer.root.parentElement)){const t=[e,...Array.from(e.querySelectorAll("[data-docx-layout-root]"))].find(e=>uo.get(e)===this&&e.classList.contains(`${this.className}-wrapper`));t||(this.commentLayer.root.style.position="fixed"),(t??e).appendChild(this.commentLayer.root)}this.refreshTabStops(e),this.refreshAnchors(e),await(this.commentLayer?.bind(e,t))}}disposeLayout(){for(const e of Array.from(this.layoutGenerations.values()))e.cancel();this.layoutGenerations.clear(),this.commentLayer?.root.remove();const e=globalThis.CSS?.highlights;e&&this.commentHighlight&&e.get(`${this.className}-comments`)===this.commentHighlight&&e.delete(`${this.className}-comments`)}renderHyperlink(e){const t=this.renderHyperlinkChildren(e.children),r=this.h(this.toH(e,zs.html,"a",this.wrapTabLeaderChildren(t)));let n="",a=!1;if(e.id){const t=this.currentPart??this.document.documentPart,r=t?.rels?.find(t=>t.id==e.id&&"External"===t.targetMode);n=r?.target??n,a=!!n}return!n&&e.anchor&&(n=`#${e.anchor}`),this.applyHyperlinkTarget(r,n,a),r}renderHyperlinkChildren(e){this.hyperlinkDepth++;try{return this.renderElements(e)}finally{this.hyperlinkDepth--}}applyHyperlinkTarget(e,t,r){const n=function(e){const t=String(e??"").trim().replace(oo,"");return t?t.startsWith("#")?t:t.startsWith("//")||t.includes("\\")||io.test(t)&&!lo.test(t)?null:t:null}(t);if(n)return r&&"block"==this.options.externalLinkPolicy?(e.setAttribute("data-docx-external-href",n),void e.setAttribute("aria-disabled","true")):void e.setAttribute("href",n)}wrapTabLeaderChildren(e,t=!1){if(!e?.length||e.some(e=>this.hasCssClass(e,`${this.className}-tab-leader-title`)))return e;let r=-1;for(let t=e.length-1;t>=0;t--)if(this.isTabLeaderNode(e[t])){r=t;break}if(r<0)return this.wrapLiteralLeaderChildren(e,t)??e;const n=e.slice(0,r),a=e[r],s=e.slice(r+1);this.addCssClass(a,`${this.className}-tab-leader-fill`);const o=[this.h({tagName:"span",className:`${this.className}-tab-leader-title`,children:n}),a,this.h({tagName:"span",className:`${this.className}-tab-leader-page`,children:s})];return t?[this.h({tagName:"span",className:`${this.className}-tab-leader-line`,children:o})]:o}wrapLiteralLeaderChildren(e,t=!1){const r=this.findLastTextualNodeIndex(e);if(r<0)return null;const n=e[r],a=this.nodeTextContent(n),s=/^(.*?)([.\u2026\u00b7\u2022\u2027\u2219\u22c5]{6,})(\s*[0-90-9IVXLCDMivxlcdm]+)\s*$/.exec(a);if(!s)return null;const[,o,i,l]=s,c=e.slice(0,r),h=e.slice(r+1),d=[...c];o&&d.push(this.cloneTextNodeWithText(n,o));const u=this.h({tagName:"span",className:`${this.tabStopClass()} ${this.className}-tab-leader-fill`,children:[" "],style:this.nodeStyleObject(n)});u.dataset.docxTab="true",u.dataset.docxTabLeader=this.literalLeaderKind(i),u.dataset.docxLiteralLeader="true";const m=[this.h({tagName:"span",className:`${this.className}-tab-leader-title`,children:d}),u,this.h({tagName:"span",className:`${this.className}-tab-leader-page`,children:[this.cloneTextNodeWithText(n,l.trim()),...h]})];return t?[this.h({tagName:"span",className:`${this.className}-tab-leader-line ${this.className}-literal-leader-line`,children:m})]:m}findLastTextualNodeIndex(e){for(let t=e.length-1;t>=0;t--)if(this.nodeTextContent(e[t]).trim())return t;return-1}literalLeaderKind(e){return/^[.\u2026]+$/.test(e)?"dot":"middleDot"}cloneTextNodeWithText(e,t){return this.nodeElementName(e)?this.h({tagName:this.nodeElementName(e),className:this.nodeClassName(e),style:this.nodeStyleObject(e),children:[t]}):this.h({tagName:"span",children:[t]})}nodeElementName(e){const t=e,r=t?.tagName??t?.nodeName;return r&&!String(r).startsWith("#")?String(r).toLowerCase():""}nodeStyleObject(e){const t=e?.style,r={};if(!t)return r;if("number"==typeof t.length&&"function"==typeof t.getPropertyValue)for(let e=0;e<t.length;e++){const n=t.item(e),a=t.getPropertyValue(n);a&&(r[n]=a)}else for(const[e,n]of Object.entries(t))null!=n&&""!==n&&(r[e]=String(n));return r}nodeTextContent(e){const t=e;return t?"string"==typeof t.textContent?t.textContent:"string"==typeof t.text?t.text:Array.from(t.children??t.childNodes??[]).map(e=>this.nodeTextContent(e)).join(""):""}isTabLeaderNode(e){const t=this.nodeDatasetValue(e,"docxTabLeader");return this.hasCssClass(e,this.tabStopClass())&&!!t&&"none"!=t}nodeDatasetValue(e,t){const r=e,n=r?.dataset?.[t];if(null!=n)return String(n);const a="data-"+t.replace(/[A-Z]/g,e=>"-"+e.toLowerCase());return"function"==typeof r?.getAttribute?r.getAttribute(a):r?.attributes?.[a]}hasCssClass(e,t){const r=e;if(!r||!t)return!1;if("function"==typeof r.classList?.contains)return r.classList.contains(t);return this.nodeClassName(r).split(/\s+/).includes(t)}addCssClass(e,t){const r=e;if(!r||!t||this.hasCssClass(e,t))return;if("function"==typeof r.classList?.add)return void r.classList.add(t);const n=Vs(this.nodeClassName(r),t);"function"==typeof r.setAttribute?r.setAttribute("class",n):(r.attributes??(r.attributes={}),r.attributes.class=n)}nodeClassName(e){return"string"==typeof e?.className?e.className:"string"==typeof e?.className?.baseVal?e.className.baseVal:"function"==typeof e?.getAttribute?e.getAttribute("class")??"":e?.attributes?.class??""}renderSmartTag(e){return this.renderContainer(e,"span")}renderCommentRangeStart(e){if(!this.options.renderComments)return null;const t="undefined"==typeof Range?null:new Range;t&&this.commentHighlight?.add(t);const r=this.h({tagName:"#comment",children:["start of DOCX comment"]});return t&&(this.later(()=>t.setStart(r,0)),this.commentMap[e.id]=t),r}renderCommentRangeEnd(e){if(!this.options.renderComments)return null;const t=this.commentMap[e.id],r=this.document.commentsPart?.commentMap[e.id],n=this.h({tagName:"span",className:`${this.className}-comment-anchor`});return n.dataset.docxChangeKind="comment",n.dataset.docxChangeId=`${e.id}`,n.setAttribute("aria-hidden","true"),n.style.setProperty("--docx-review-color",ao(r?.author)),r?.author&&(n.dataset.docxChangeAuthor=r.author),r?.date&&(n.dataset.docxChangeDate=r.date),this.later(()=>t?.setEnd(n,0)),n}renderCommentReference(e){if(!this.options.renderComments||this.renderingComment)return null;const t=this.document.commentsPart?.commentMap[e.id];if(!t)return null;this.commentLayer||(this.commentLayer=new rs(this.className,()=>this.h({tagName:"div",className:`${this.className} ${this.className}-comment-layer`}),e=>{this.refreshTabStops(e),this.refreshAnchors(e)}));const r=`${t.id}`,n=this.h({tagName:"span",className:`${this.className}-comment-ref`,children:["💬"]});n.dataset.docxChangeKind="comment",n.dataset.docxChangeId=r,n.style.setProperty("--docx-review-color",ao(t.author)),t.author&&(n.dataset.docxChangeAuthor=t.author),t.date&&(n.dataset.docxChangeDate=t.date),this.hyperlinkDepth||n.setAttribute("tabindex","0"),n.setAttribute("role","note"),n.setAttribute("aria-label",t.author?`Comment by ${t.author}`:"Comment"),n.setAttribute("aria-expanded","false");let a=this.commentPresentations.get(r);if(!a){const e=`${this.className}-comment-${++po.nextCommentId}`,s=this.h({tagName:"summary",children:["💬"]});s.setAttribute("aria-label",t.author?`Comment by ${t.author}`:"Comment");const o=t.date?new Date(t.date):null,i=this.h({tagName:"article",children:this.renderCommentContent(t)});i.dataset.docxCommentStory="true";const l=this.h({tagName:"div",className:`${this.className}-comment-body`,children:[this.h({tagName:"div",className:`${this.className}-comment-author`,children:[t.author??""]}),this.h({tagName:"div",className:`${this.className}-comment-date`,children:[o&&Number.isFinite(o.getTime())?o.toLocaleString():t.date??""]}),i]});l.setAttribute("id",e),l.setAttribute("role","note");const c=this.h({tagName:"details",className:`${this.className}-comment-popover`,children:[s,l]});c.dataset.docxCommentPopup=e,Object.assign(c.dataset,{docxChangeKind:"comment",docxChangeId:r}),t.author&&(c.dataset.docxChangeAuthor=t.author),t.date&&(c.dataset.docxChangeDate=t.date),a={key:e,descriptionId:e,reference:n,references:[],popup:c,summary:s,body:l,revision:0,open:!1},this.commentLayer.add(a),this.commentPresentations.set(r,a)}return n.dataset.docxCommentReference=a.key,a.references.push(n),n.setAttribute("aria-describedby",a.descriptionId),n.setAttribute("aria-controls",a.descriptionId),n}cloneRenderData(e,t=new Map){if(!e||"object"!=typeof e)return e;if(t.has(e))return t.get(e);const r=Array.isArray(e)?[]:Object.create(Object.getPrototypeOf(e));t.set(e,r);for(const n of Object.keys(e))"parent"!==n&&Object.defineProperty(r,n,{value:this.cloneRenderData(e[n],t),writable:!0,enumerable:!0,configurable:!0});return r}renderCommentContent(e){const t={part:this.currentPart,paragraph:this.currentParagraph,index:this.currentParagraphTabIndex,count:this.currentParagraphTabCount,rendering:this.renderingComment};this.currentPart=this.document.commentsPart,this.currentParagraph=null,this.renderingComment=!0;try{const t=this.cloneRenderData(e);return this.processElement(t),this.renderElements(t.children)??[]}finally{this.currentPart=t.part,this.currentParagraph=t.paragraph,this.currentParagraphTabIndex=t.index,this.currentParagraphTabCount=t.count,this.renderingComment=t.rendering}}renderAltChunk(e){if(!this.options.renderAltChunks)return null;var t=this.h({tagName:"iframe",sandbox:"",referrerPolicy:"no-referrer",loading:"lazy"});return this.tasks.push(this.document.loadAltChunk(e.id,this.currentPart).then(e=>{X(t,e)})),t}renderDrawing(e){e.cssStyle?.["shape-outside"]&&(e.className=Vs(e.className,`${this.className}-float-wrap`));var t=this.toHTML(e,zs.html,this.currentParagraph?"span":"div");(e.cssStyle?.float||"absolute"==e.cssStyle?.position)&&(t.dataset.docxFloat="true");const r=e.props?.anchorPosition;r?.vertical?.relative&&(t.dataset.docxAnchorVertical=r.vertical.relative),r?.horizontal?.relative&&(t.dataset.docxAnchorHorizontal=r.horizontal.relative),t.style.display||(t.style.display="inline-block"),t.style.position||(t.style.position="relative"),t.style.textIndent="0px";for(const e of Array.from(t.children??[]))e.style.verticalAlign="top";return t}renderImage(e){let t=this.toHTML(e,zs.html,"img",[]),r=e.cssStyle?.transform;if(e.alt&&(t.alt=e.alt),e.title&&(t.title=e.title),e.srcRect&&e.srcRect.some(e=>0!=e)){var[n,a,s,o]=e.srcRect;r=`${r??""} scale(${1/(1-n-s)}, ${1/(1-a-o)})`,t.style.clipPath=`inset(${(100*a).toFixed(2)}% ${(100*s).toFixed(2)}% ${(100*o).toFixed(2)}% ${(100*n).toFixed(2)}%)`,t.style.transformOrigin="top left"}return e.rotation&&(r=`rotate(${e.rotation}deg) ${r??""}`),t.style.transform=r?.trim(),this.document&&e.src&&this.tasks.push(this.document.loadDocumentImage(e.src,this.currentPart,this.options.externalResourcePolicy).then(e=>{e&&t.setAttribute("src",e)})),t}renderShape(e){if(e.props?.dmlSvg)return this.renderDmlSvgShape(e);const t=e.props?.dmlTextBox?[this.renderDmlTextBox(e)]:null,r=this.toHTML(e,zs.html,this.currentParagraph?"span":"div",t);return r.style.display||(r.style.display="inline-block"),e.title&&(r.title=e.title),e.alt&&(r.setAttribute("role","img"),r.setAttribute("aria-label",e.alt)),r}renderDmlTextBox(e){const t=this.currentParagraph;this.currentParagraph=null;const r=this.renderElements(e.children);this.currentParagraph=t;const n=this.h({tagName:"div",className:`${this.className}-shape-textbox`,style:{"box-sizing":"border-box",display:"flex","flex-direction":"column","justify-content":e.props?.textVerticalAlign??"flex-start","align-items":"stretch",width:"100%",height:"100%",overflow:"hidden",...e.props?.textInsets??{}},children:r});n.dataset.docxShapeTextbox="true",n.setAttribute("xmlns",zs.html);const a=this.createSvgElement("svg",{style:{width:"100%",height:"100%",display:"block",overflow:"hidden"}});a.setAttribute("focusable","false");const s=this.createSvgElement("foreignObject");return s.setAttribute("width","100%"),s.setAttribute("height","100%"),s.appendChild(n),a.appendChild(s),a}renderDmlSvgShape(e){const t=this.createSvgElement("svg",{style:e.cssStyle}),r=e.props??{};t.setAttribute("viewBox",r.viewBox??"0 0 1 1"),t.setAttribute("preserveAspectRatio","none"),t.setAttribute("focusable","false"),e.title&&t.appendChild(this.createSvgElement("title",null,[e.title])),e.alt&&(t.setAttribute("role","img"),t.setAttribute("aria-label",e.alt));const n=this.createSvgElement("path");return n.setAttribute("d",r.pathD??""),n.setAttribute("fill",this.darkenColorAttr(r.fill??"none")),n.setAttribute("stroke",this.darkenColorAttr(r.stroke??"none")),n.setAttribute("stroke-width",r.strokeWidth??"0"),n.setAttribute("stroke-linejoin","round"),n.setAttribute("stroke-linecap","round"),r.strokeDasharray&&n.setAttribute("stroke-dasharray",r.strokeDasharray),t.appendChild(n),t}renderChart(e){var t;const r=this.toHTML(e,zs.html,this.currentParagraph?"span":"div",[]);if((t=r.style).display||(t.display="block"),r.className=Vs(r.className,`${this.className}-chart`),e.title&&(r.title=e.title),e.alt&&(r.setAttribute("role","img"),r.setAttribute("aria-label",e.alt)),r.appendChild(this.renderGraphicLoading("Chart")),e.id){const t=this.currentPart;this.tasks.push(this.document.loadRelationshipXml(e.id,t).then(e=>{r.textContent="",r.appendChild(e?this.renderChartSvg(e):this.renderGraphicLoading("Chart"))}).catch(()=>{r.textContent="",r.appendChild(this.renderGraphicLoading("Chart"))}))}return r}renderSmartArt(e){var t;const r=this.toHTML(e,zs.html,this.currentParagraph?"span":"div",[]);if((t=r.style).display||(t.display="block"),r.className=Vs(r.className,`${this.className}-smartart`),e.title&&(r.title=e.title),e.alt&&(r.setAttribute("role","img"),r.setAttribute("aria-label",e.alt)),r.appendChild(this.renderGraphicLoading("SmartArt")),e.dataId){const t=this.currentPart;this.tasks.push(this.document.loadRelationshipXml(e.dataId,t).then(e=>{r.textContent="",r.appendChild(e?this.renderSmartArtSvg(e):this.renderGraphicLoading("SmartArt"))}).catch(()=>{r.textContent="",r.appendChild(this.renderGraphicLoading("SmartArt"))}))}return r}renderInk(e){var t;const r=this.toHTML(e,zs.html,this.currentParagraph?"span":"div",[]);if((t=r.style).display||(t.display="block"),r.className=Vs(r.className,`${this.className}-ink`),e.title&&(r.title=e.title),e.alt&&(r.setAttribute("role","img"),r.setAttribute("aria-label",e.alt)),r.appendChild(this.renderGraphicLoading("Ink")),e.id){const t=this.currentPart;this.tasks.push(this.document.loadRelationshipText(e.id,t).then(n=>{if(r.textContent="",n?.trim().startsWith("<"))try{return void r.appendChild(this.renderInkSvg(J(n,!0)))}catch{}return this.document.loadRelationshipBlobUrl(e.id,t,this.options.externalResourcePolicy).then(t=>{r.textContent="",t?r.appendChild(this.h({tagName:"img",src:t,alt:e.alt??"Ink",style:{width:"100%",height:"100%",objectFit:"contain"}})):r.appendChild(this.renderGraphicLoading("Ink"))})}).catch(()=>{r.textContent="",r.appendChild(this.renderGraphicLoading("Ink"))}))}return r}renderGraphicLoading(e){return this.h({tagName:"span",style:{display:"inline-flex","align-items":"center","justify-content":"center",width:"100%",height:"100%","min-width":"2in","min-height":"1in",border:"1px solid currentColor"},children:[`[${e}]`]})}renderChartSvg(e){const t=e.documentElement,r=this.detectChartType(t),n=this.parseChartSeries(t,r),a=this.createSvgElement("svg",{style:{width:"100%",height:"100%",display:"block"}});a.setAttribute("viewBox","0 0 640 360"),a.setAttribute("preserveAspectRatio","xMidYMid meet");const s=this.extractChartTitle(t);if(s){const e=this.svgText(s,320,24,"middle","14px","bold");e.setAttribute("data-docx-chart-title","true"),a.appendChild(e)}if(!n.length||n.every(e=>!e.values.length))return a.appendChild(this.svgText("Chart",320,180,"middle","18px")),a;const o="chart"==t.localName?t:this.chartChild(t,"chart"),i=this.chartChild(o,"plotArea"),l=this.chartChildren(i).filter(e=>e.localName.endsWith("Chart")),c=l.length>1&&l.every(e=>{const r=this.resolveChartAxes(t,e.localName,e),n=this.chartChild(e,"barDir")?.getAttribute("val"),a=this.chartChild(e,"grouping")?.getAttribute("val");return r?.category&&r.value&&["barChart","lineChart"].includes(e.localName)&&(!n||"col"==n)&&!["stacked","percentStacked"].includes(a)});if(c)return this.drawCombinedChartAxes(a,t,l),a;const h=this.resolveChartAxes(t,r);return"lineChart"==r&&"dateAx"==h?.category?.localName?this.drawDateLineChart(a,n,h,{seriesNodes:this.chartChildren(this.chartChild(i,r),"ser")}):"pieChart"==r||"doughnutChart"==r?this.drawPieChart(a,n[0]):["lineChart","scatterChart","areaChart"].includes(r)?this.drawLineChart(a,n,"areaChart"==r):this.drawBarChart(a,n),this.drawChartAxisTitles(a,h),a}chartChildren(e,t){return Array.from(e?.childNodes??[]).filter(e=>1==e.nodeType&&co.includes(e.namespaceURI)&&(!t||e.localName==t))}chartChild(e,t){return this.chartChildren(e,t)[0]??null}chartDescendant(e,t){return e?Array.from(e.getElementsByTagName("*")).find(e=>e.localName==t&&co.includes(e.namespaceURI))??null:null}detectChartType(e){return["barChart","bar3DChart","lineChart","pieChart","doughnutChart","areaChart","scatterChart","ofPieChart","radarChart"].find(t=>e.localName==t&&co.includes(e.namespaceURI)||this.chartDescendant(e,t))??"barChart"}parseChartSeries(e,t){const r=e.localName==t&&co.includes(e.namespaceURI)?e:this.chartDescendant(e,t);return this.chartChildren(r,"ser").map((e,t)=>{const r=this.chartCacheValues(this.chartChild(e,"cat")??this.chartChild(e,"xVal")),n=this.chartCacheValues(this.chartChild(e,"val")??this.chartChild(e,"yVal")).map(e=>e.trim()&&Number.isFinite(Number(e))?Number(e):NaN);return{name:this.chartText(this.chartChild(e,"tx"))||`Series ${t+1}`,categories:r.length?r:n.map((e,t)=>`${t+1}`),values:n}})}chartCacheValues(e){if(!e)return[];const t=["strCache","numCache","strLit","numLit"].map(t=>this.chartDescendant(e,t)).find(Boolean)??e,r=this.chartChild(t,"ptCount")?.getAttribute("val")??"";let n=/^\d+$/.test(r)?Math.min(Number(r),2e4):0;const a=[];for(const e of this.chartChildren(t,"pt")){const t=e.getAttribute("idx")??"";if(!/^\d+$/.test(t))continue;const r=Number(t);!Number.isSafeInteger(r)||r>=2e4||(n=Math.max(n,r+1),a.push({index:r,value:this.chartChild(e,"v")?.textContent??""}))}const s=Array(n).fill(""),o=new Set;for(const e of a)o.has(e.index)||(s[e.index]=e.value),o.add(e.index);return s}chartText(e){if(!e)return"";const t=this.chartCacheValues(e);if(t.length)return t.join(" ");return Array.from(e.getElementsByTagName("*")).filter(e=>"t"==e.localName&&ho.includes(e.namespaceURI)).map(e=>e.textContent).filter(Boolean).join(" ").trim()||this.chartDescendant(e,"v")?.textContent?.trim()||""}chartNumber(e,t){const r=this.chartChild(e,t)?.getAttribute("val");return null!=r&&r.trim()&&Number.isFinite(Number(r))?Number(r):null}chartBoolean(e){return!!e&&!["0","false","off"].includes((e.getAttribute("val")??"1").toLowerCase())}chartTitleText(e){const t=this.chartChild(this.chartChild(e,"tx"),"rich");return t?Array.from(t.childNodes).filter(e=>1==e.nodeType&&"p"==e.localName&&ho.includes(e.namespaceURI)).map(e=>Array.from(e.getElementsByTagNameNS(e.namespaceURI,"t")).map(e=>e.textContent??"").join("")).join("\n"):this.chartText(e)}extractChartTitle(e){const t="chart"==e.localName?e:this.chartChild(e,"chart");return this.chartTitleText(this.chartChild(t,"title"))}resolveChartAxes(e,t,r){const n="chart"==e.localName?e:this.chartChild(e,"chart"),a=this.chartChild(n,"plotArea"),s=r??this.chartChild(a,t);if(!s)return null;const o=this.chartChildren(s,"axId").map(e=>e.getAttribute("val")),i=this.chartChildren(a).filter(e=>/^(catAx|dateAx|valAx)$/.test(e.localName)&&o.includes(this.chartChild(e,"axId")?.getAttribute("val"))),l=i.find(e=>"dateAx"==e.localName)??i.find(e=>"catAx"==e.localName)??null,c=i.find(e=>"valAx"==e.localName&&(!l||this.chartChild(l,"crossAx")?.getAttribute("val")==this.chartChild(e,"axId")?.getAttribute("val")))??i.find(e=>"valAx"==e.localName)??null;return{category:l,value:c,date1904:this.chartBoolean(this.chartChild(e,"date1904"))}}chartValueBounds(e){let t=0,r=0;for(const n of e)for(const e of n.values)Number.isFinite(e)&&(t=Math.min(t,e),r=Math.max(r,e));return{min:t,max:t==r?t+1:r}}drawCategoryLabels(e,t,r,n){const a=t.map((e,t)=>({text:e,index:t})).filter(e=>e.text.trim());if(!a.length)return;const s=a[a.length-1],o=r(s.index)-this.chartLegendTextWidth(s.text)/2;let i=-1/0;a.forEach((t,s)=>{const l=r(t.index),c=this.chartLegendTextWidth(t.text)/2;if(s>0&&s<a.length-1&&(l-c<i+3||l+c+3>o))return;const h=this.svgText(t.text,l,n,"middle","10px");h.setAttribute("data-docx-chart-category-index",`${t.index}`),e.appendChild(h),i=l+c})}drawBarChart(e,t){const r=t[0]?.categories??[],n=Math.max(1,r.length,...t.map(e=>e.values.length)),a=this.chartValueBounds(t),s=e=>300-(e-a.min)/(a.max-a.min)*230,o=s(0),i=540/n,l=i/Math.max(t.length+1,2);e.appendChild(this.svgLine(60,o,600,o)),e.appendChild(this.svgLine(60,300,60,70)),t.forEach((t,r)=>t.values.forEach((t,n)=>{if(!Number.isFinite(t))return;const a=s(t),c=this.createSvgElement("rect");c.setAttribute("x",""+(60+n*i+r*l+.2*l)),c.setAttribute("y",`${Math.min(o,a)}`),c.setAttribute("width",""+.8*l),c.setAttribute("height",`${Math.abs(a-o)}`),c.setAttribute("data-docx-chart-point-index",`${n}`),c.style.fill=this.chartColor(r),e.appendChild(c)})),this.drawCategoryLabels(e,r,e=>60+(e+.5)*i,318),this.drawBottomLegend(e,t.map(e=>e.name),335)}drawLineChart(e,t,r=!1){const n=this.chartValueBounds(t),a=e=>300-(e-n.min)/(n.max-n.min)*230,s=a(0),o=Math.max(1,...t.map(e=>Math.max(e.values.length,e.categories.length))),i=540/Math.max(o-1,1);e.appendChild(this.svgLine(60,s,600,s)),e.appendChild(this.svgLine(60,300,60,70)),t.forEach((t,n)=>{let o=[];const l=()=>{if(!o.length)return;const t=o.map((e,t)=>`${t?"L":"M"}${e[0]},${e[1]}`).join(" ");if(r&&o.length>1){const r=this.createSvgElement("path");r.setAttribute("d",`${t} L${o[o.length-1][0]},${s} L${o[0][0]},${s} Z`),r.style.fill=this.chartColor(n),r.style.opacity="0.25",e.appendChild(r)}const a=this.createSvgElement("path");a.setAttribute("d",t),a.style.stroke=this.chartColor(n),a.style.strokeWidth="2",a.style.fill="none",e.appendChild(a),o=[]};t.values.forEach((t,r)=>{if(!Number.isFinite(t))return void l();const s=60+r*i,c=a(t);o.push([s,c]);const h=this.createSvgElement("circle");h.setAttribute("cx",`${s}`),h.setAttribute("cy",`${c}`),h.setAttribute("r","3"),h.setAttribute("data-docx-chart-point-index",`${r}`),h.style.fill=this.chartColor(n),e.appendChild(h)}),l()}),this.drawCategoryLabels(e,t[0]?.categories??[],e=>60+e*i,318),this.drawBottomLegend(e,t.map(e=>e.name),335)}drawPieChart(e,t){const r=t.values.reduce((e,t)=>e+(Number.isFinite(t)?Math.max(0,t):0),0)||1;let n=-90;t.values.forEach((a,s)=>{if(!Number.isFinite(a)||a<0)return;const o=a/r*360,i=this.createSvgElement(360==o?"circle":"path");360==o?(i.setAttribute("cx","300"),i.setAttribute("cy","180"),i.setAttribute("r","110")):i.setAttribute("d",this.pieSlicePath(300,180,110,n,n+o)),i.setAttribute("data-docx-chart-point-index",`${s}`),i.style.fill=this.chartColor(s),e.appendChild(i),this.drawLegend(e,t.categories[s]||`${s+1}`,s,450,90+22*s),n+=o})}drawCombinedChartAxes(e,t,r){let n=0;const a=[];for(const s of r){const r=this.resolveChartAxes(t,s.localName,s),o=this.parseChartSeries(s,s.localName);if(!r?.category||!r.value||!o.length)continue;const i=this.createSvgElement("g");i.setAttribute("data-docx-chart-axis-group",s.localName),i.setAttribute("data-docx-chart-value-axis-id",this.chartChild(r.value,"axId")?.getAttribute("val")??""),e.appendChild(i),this.drawDateLineChart(i,o,r,{type:s.localName,group:s,colorOffset:n,noLegend:!0,seriesNodes:this.chartChildren(s,"ser")}),this.drawChartAxisTitles(e,r),n+=o.length,a.push(...o.map(e=>e.name))}this.drawBottomLegend(e,a,335),this.syncChartAxisLegend(e)}drawDateLineChart(e,t,r,n={}){const a=r.category,s=r.value,o="dateAx"!=a?.localName,i=t.map(e=>e.categories.map(e=>e.trim()&&Number.isFinite(Number(e))?Number(e):NaN)),l=i.flat().filter(Number.isFinite);if(!o&&!l.length)return void this.drawLineChart(e,t);const c=t.reduce((e,t)=>Math.max(e,t.values.length,t.categories.length),1),h=this.chartChild(a,"scaling"),d=this.chartChild(s,"scaling"),u=o?0:this.chartNumber(h,"min")??l.reduce((e,t)=>Math.min(e,t),1/0);let m=o?c:this.chartNumber(h,"max")??l.reduce((e,t)=>Math.max(e,t),-1/0);m<=u&&(m=u+1);const p=this.chartValueBounds(t);let f=this.chartNumber(d,"min")??p.min,g=this.chartNumber(d,"max")??p.max;if(g<=f&&(f=p.min,g=p.max),!Number.isFinite(m-u)||!Number.isFinite(g-f))return;const b="maxMin"==this.chartChild(h,"orientation")?.getAttribute("val"),y="maxMin"==this.chartChild(d,"orientation")?.getAttribute("val"),x=e=>{const t=(e-u)/(m-u);return 60+540*(b?1-t:t)},w=e=>{const t=(e-f)/(g-f);return 300-230*(y?1-t:t)},v=(e,t)=>x(o?t+.5:e),k="r"==this.chartChild(s,"axPos")?.getAttribute("val"),C=this.chartBoolean(this.chartChild(a,"delete")),S=this.chartBoolean(this.chartChild(s,"delete")),N=this.chartChild(s,"crosses")?.getAttribute("val"),A=this.chartChild(a,"crosses")?.getAttribute("val"),P=Math.min(g,Math.max(f,this.chartNumber(s,"crossesAt")??("max"==N?g:"min"==N?f:0))),M=Math.min(m,Math.max(u,this.chartNumber(a,"crossesAt")??("max"==A?m:u)));if(C||e.appendChild(this.svgLine(60,w(P),600,w(P))),!S){const t=k?600:x(M);e.appendChild(this.svgLine(t,300,t,70))}e.setAttribute("data-docx-chart-x-range",`${u},${m}`),e.setAttribute("data-docx-chart-y-range",`${f},${g}`);const $=this.createSvgElement("svg");for(const[e,t]of Object.entries({x:60,y:70,width:540,height:230,viewBox:"60 70 540 230",overflow:"hidden"}))$.setAttribute(e,String(t));if($.setAttribute("data-docx-chart-date-plot","true"),e.appendChild($),t.forEach((e,r)=>{const a=n.seriesNodes?.[r],s=this.chartChild(a,"spPr"),l=(e,t)=>Array.from(e?.getElementsByTagName("*")??[]).find(e=>e.localName==t&&ho.includes(e.namespaceURI)),h=l(s,"ln"),d=l("barChart"==n.type?s:h,"srgbClr")?.getAttribute("val"),u=r+(n.colorOffset??0),m=/^[0-9a-f]{6}$/i.test(d??"")?`#${d}`:this.chartColor(u),p=h?.getAttribute("w"),b=p&&Number.isFinite(Number(p))?Math.max(0,Number(p)/9525):2,y="none"!=this.chartChild(this.chartChild(a,"marker"),"symbol")?.getAttribute("val");let x=[];const k=()=>{if(!x.length)return;const e=this.createSvgElement("path");e.setAttribute("d",x.map(([e,t],r)=>`${r?"L":"M"}${e},${t}`).join(" ")),e.style.stroke=m,e.style.strokeWidth=String(b),e.style.fill="none",$.appendChild(e),x=[]};e.values.forEach((e,a)=>{const s=i[r][a];if(!o&&!Number.isFinite(s)||!Number.isFinite(e))return void k();const l=v(s,a),h=w(e),d="barChart"==n.type;d||x.push([l,h]);const p=this.createSvgElement(d?"rect":"circle"),b={"data-docx-chart-point-index":a,"data-docx-chart-series-index":u,"data-docx-chart-date-value":s,"data-docx-chart-center-x":l,"data-docx-chart-center-y":h};if(d){const e=Math.max(0,Math.min(500,this.chartNumber(n.group,"gapWidth")??150)),a=540/c/(t.length+e/100),s=w(Math.min(g,Math.max(f,0)));Object.assign(b,{x:l-t.length*a/2+r*a,y:Math.min(h,s),width:a,height:Math.abs(s-h)})}else Object.assign(b,{cx:l,cy:h,r:y?3:0});for(const[e,t]of Object.entries(b))Number.isFinite(t)&&p.setAttribute(e,String(t));p.style.fill=m,$.appendChild(p)}),k()}),!C&&"none"!=this.chartChild(a,"tickLblPos")?.getAttribute("val")){const n=this.chartChild(a,"numFmt")?.getAttribute("formatCode")??(o?"General":"yyyy/m/d"),s=o?t[0].categories.map((e,t)=>({raw:e,value:Number(e),x:v(Number(e),t),index:t})):this.chartDateTicks(a,l,u,m,r.date1904).map(e=>({raw:String(e),value:e,x:x(e)}));s.sort((e,t)=>e.x-t.x);let i=-1/0,c=null;for(const t of s){const a=this.formatChartDateLabel(t.raw,n,r.date1904),s=this.chartLegendTextWidth(a)/2;if(a==c||t.x-s<i+4)continue;const l=this.svgText(a,t.x,318,"middle","10px");l.setAttribute("data-docx-chart-date-tick",Number.isFinite(t.value)?String(t.value):t.raw),o&&l.setAttribute("data-docx-chart-category-index",String(t.index)),e.appendChild(l),i=t.x+s,c=a}}if(!S&&"none"!=this.chartChild(s,"tickLblPos")?.getAttribute("val")){const t=this.chartNumber(s,"majorUnit"),r=null!=t&&t>0?t:(g-f)/5,n=Math.floor((g-f)/r+1e-8)+1;if(n>0&&n<=100)for(let t=0;t<n;t++){const n=Number((f+t*r).toPrecision(12)),a=this.chartAxisNumberLabel(n,this.chartChild(s,"numFmt")?.getAttribute("formatCode")),o=this.svgText(a,k?606:54,w(n)+3,k?"start":"end","10px");o.setAttribute("data-docx-chart-value-tick",String(n)),e.appendChild(o)}}n.noLegend||(this.drawBottomLegend(e,t.map(e=>e.name),335),this.syncChartAxisLegend(e))}drawChartAxisTitles(e,t){for(const r of[t?.category,t?.value]){if(!r||this.chartBoolean(this.chartChild(r,"delete")))continue;const t=this.chartChild(r,"title"),n=this.chartTitleText(t);if(!n)continue;const a=this.chartChild(r,"axPos")?.getAttribute("val")??("valAx"==r.localName?"l":"b"),s=this.chartChild(this.chartChild(t,"layout"),"manualLayout"),o=this.chartNumber(s,"x"),i=this.chartNumber(s,"y"),l=null!=o&&null!=i&&"edge"==this.chartChild(s,"xMode")?.getAttribute("val")&&"edge"==this.chartChild(s,"yMode")?.getAttribute("val"),c={b:[330,349],t:[330,50],l:[16,185],r:[625,185]},h=c[a]??c.b,d=l?640*o:h[0],u=l?360*i:h[1],m=this.svgText(n,d,u,l?"start":"middle","12px");m.setAttribute("data-docx-chart-axis-title",this.chartChild(r,"axId")?.getAttribute("val")??a),l?m.setAttribute("dominant-baseline","hanging"):"l"!=a&&"r"!=a||m.setAttribute("transform",`rotate(${"l"==a?-90:90} ${d} ${u})`),e.appendChild(m)}}syncChartAxisLegend(e){const t=new Map;for(const r of Array.from(e.querySelectorAll("[data-docx-chart-series-index]"))){const e=Number(r.getAttribute("data-docx-chart-series-index"));t.has(e)||t.set(e,r.style.fill)}e.querySelector("[data-docx-chart-legend]")?.querySelectorAll("rect").forEach((e,r)=>{t.has(r)&&(e.style.fill=t.get(r))})}chartAxisNumberLabel(e,t){const r=/^(0)(?:\.(0{1,10}))?(%)?$/.exec(t??"");return r?(e*(r[3]?100:1)).toFixed(r[2]?.length??0)+(r[3]?"%":""):String(e)}chartDateTicks(e,t,r,n,a){const s=this.chartNumber(e,"majorUnit"),o=this.chartChild(e,"majorTimeUnit")?.getAttribute("val")??"days";if(null!=s&&s>0)if("days"==o){const e=Math.floor((n-r)/s+1e-9)+1;if(e>0&&e<=1e3)return Array.from({length:e},(e,t)=>r+t*s)}else if(Number.isInteger(s)&&["months","years"].includes(o)){const e=this.formatChartDateLabel(String(r),"yyyy/mm/dd",a);if(/^\d{4}\/\d{2}\/\d{2}$/.test(e)){const[t,i,l]=e.split("/").map(Number),c=[];for(let e=0;e<1e3;e++){const h=new Date(Date.UTC(t,i-1+e*s*("years"==o?12:1),1)),d=new Date(Date.UTC(h.getUTCFullYear(),h.getUTCMonth()+1,0)).getUTCDate(),u=Date.UTC(h.getUTCFullYear(),h.getUTCMonth(),Math.min(l,d));let m=(u-Date.UTC(a?1904:1899,a?0:11,a?1:31))/864e5;if(!a&&u>=Date.UTC(1900,2,1)&&m++,m+=r-Math.floor(r),!Number.isFinite(m)||m>n+1e-9)break;m>=r-1e-9&&c.push(m)}if(c.length&&c.length<1e3)return c}}return[...new Set(t)].filter(e=>e>=r&&e<=n)}formatChartDateLabel(e,t,r=!1){if(!e.trim()||!Number.isFinite(Number(e)))return e;const n=Number(e),a=Math.floor(n);if(a<0||a>(r?2957003:2958465))return e;const s=Math.min(86399999,Math.round(864e5*(n-a))),o=new Date(Date.UTC(r?1904:1899,r?0:11,r?1:31)+864e5*(a-(!r&&a>60?1:0))+s),i=!r&&60==a,l=i?1900:o.getUTCFullYear(),c=i?2:o.getUTCMonth()+1,h=i?29:o.getUTCDate(),d=(e,t=2)=>String(e).padStart(t,"0"),u=["January","February","March","April","May","June","July","August","September","October","November","December"],m=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];let p="",f=!1;for(let e=0;e<(t??"").length;e++){const r=t[e];if("\\"==r&&e+1<t.length)p+=r+t[++e];else{if('"'==r&&(f=!f),";"==r&&!f)break;p+=r}}if(!p||f)return e;const g=p.match(/"[^"]*"|\\.|\[\$-[\w-]+\]|AM\/PM|A\/P|y+|m+|d+|h+|s+|./gi)??[];if(!g.some(e=>/^(y+|m+|d+|h+|s+)$/i.test(e)))return e;const b=g.some(e=>/^(AM\/PM|A\/P)$/i.test(e));let y="";for(let t=0;t<g.length;t++){const r=g[t],n=r.toLowerCase();if(r.startsWith('"')){y+=r.slice(1,-1);continue}if(r.startsWith("\\")){y+=r.slice(1);continue}if(/^\[\$-/i.test(r)){if(!/^\[\$-(409|en-us)\]$/i.test(r))return e;continue}const a=g.slice(0,t).reverse().find(e=>/^[ymdhs]+$/i.test(e)),s=g.slice(t+1).find(e=>/^[ymdhs]+$/i.test(e));if(/^y{1,4}$/.test(n))y+=n.length<=2?d(l%100):d(l,4);else if(/^m{1,5}$/.test(n)){y+=/^h+$/i.test(a??"")||/^s+$/i.test(s??"")?1==n.length?o.getUTCMinutes():d(o.getUTCMinutes()):1==n.length?c:2==n.length?d(c):3==n.length?u[c-1].slice(0,3):4==n.length?u[c-1]:u[c-1][0]}else if(/^d{1,4}$/.test(n))y+=1==n.length?h:2==n.length?d(h):3==n.length?m[o.getUTCDay()].slice(0,3):m[o.getUTCDay()];else if(/^h{1,2}$/.test(n)){const e=b?o.getUTCHours()%12||12:o.getUTCHours();y+=1==n.length?e:d(e)}else if(/^s{1,2}$/.test(n))y+=1==n.length?o.getUTCSeconds():d(o.getUTCSeconds());else if(/^(am\/pm|a\/p)$/.test(n)){const e=o.getUTCHours()<12?"AM":"PM",t="a/p"==n?e[0]:e;y+=r==n?t.toLowerCase():t}else{if(!/^[\s/.,:\-年月日时分秒()]$/.test(r))return e;y+=r}}return y}pieSlicePath(e,t,r,n,a){const s=this.polar(e,t,r,a),o=this.polar(e,t,r,n),i=a-n<=180?"0":"1";return`M${e},${t} L${s.x},${s.y} A${r},${r} 0 ${i},0 ${o.x},${o.y} Z`}polar(e,t,r,n){const a=(n-90)*Math.PI/180;return{x:e+r*Math.cos(a),y:t+r*Math.sin(a)}}drawLegend(e,t,r,n,a){const s=this.createSvgElement("rect");s.setAttribute("x",`${n}`),s.setAttribute("y",""+(a-10)),s.setAttribute("width","10"),s.setAttribute("height","10"),s.style.fill=this.chartColor(r),e.appendChild(s),e.appendChild(this.svgText(t,n+14,a,"start","10px"))}drawBottomLegend(e,t,r){if(0==t.length)return;const n=t.map(e=>14+this.chartLegendTextWidth(e)),a=n.reduce((e,t)=>e+t,0)+18*Math.max(0,t.length-1),s=this.createSvgElement("g");s.setAttribute("data-docx-chart-legend","bottom"),s.setAttribute("transform",`translate(${Math.max(0,(640-a)/2)}, 0)`);let o=0;t.forEach((e,t)=>{this.drawLegend(s,e,t,o,r),o+=n[t]+18}),e.appendChild(s)}chartLegendTextWidth(e){return Array.from(e).reduce((e,t)=>/\s/.test(t)?e+3:e+((t.codePointAt(0)??0)>255?10:6),0)}chartColor(e){return`hsl(${47*e%360}, 65%, 48%)`}renderSmartArtSvg(e){const t=e.documentElement,r=this.elementsByLocal(t,"pt").map(e=>({id:e.getAttribute("modelId"),type:e.getAttribute("type"),text:this.elementsByLocal(e,"t").map(e=>e.textContent).filter(Boolean).join(" ").trim()})).filter(e=>e.id&&e.text&&"doc"!=e.type),n=this.elementsByLocal(t,"cxn").map(e=>({src:e.getAttribute("srcId"),dst:e.getAttribute("destId")})).filter(e=>e.src&&e.dst&&r.some(t=>t.id==e.src)&&r.some(t=>t.id==e.dst)),a=this.createSvgElement("svg",{style:{width:"100%",height:"100%",display:"block"}});if(a.setAttribute("viewBox","0 0 640 360"),a.setAttribute("preserveAspectRatio","xMidYMid meet"),0==r.length)return a.appendChild(this.svgText("SmartArt",320,180,"middle","18px")),a;const s=this.layoutDiagramNodes(r,n),o={},i=140,l=Math.min(90,260/Math.max(s.length,1));s.forEach((e,t)=>{const r=55+t*l,n=560/Math.max(e.length,1);e.forEach((e,t)=>{o[e.id]={x:40+n*t+Math.max(0,n-i)/2,y:r}})});for(const e of n){const t=o[e.src],r=o[e.dst];t&&r&&a.appendChild(this.svgLine(t.x+70,t.y+44,r.x+70,r.y))}return r.forEach((e,t)=>{const r=o[e.id];if(!r)return;const n=this.createSvgElement("rect");n.setAttribute("x",`${r.x}`),n.setAttribute("y",`${r.y}`),n.setAttribute("width","140"),n.setAttribute("height","44"),n.setAttribute("rx","8"),n.style.fill=this.chartColor(t),n.style.opacity="0.18",n.style.stroke=this.chartColor(t),a.appendChild(n),a.appendChild(this.svgText(e.text,r.x+70,r.y+27,"middle","11px"))}),a}layoutDiagramNodes(e,t){const r=new Map(e.map(e=>[e.id,0]));t.forEach(e=>r.set(e.dst,(r.get(e.dst)??0)+1));let n=e.filter(e=>0==(r.get(e.id)??0));const a=new Set,s=[];for(0==n.length&&(n=e.slice(0,1));n.length>0;){s.push(n),n.forEach(e=>a.add(e.id));const r=t.filter(e=>n.some(t=>t.id==e.src)).map(e=>e.dst).filter(e=>!a.has(e));n=[...new Set(r)].map(t=>e.find(e=>e.id==t)).filter(Boolean)}const o=e.filter(e=>!a.has(e.id));return o.length>0&&s.push(o),s}renderInkSvg(e){const t=this.createSvgElement("svg",{style:{width:"100%",height:"100%",display:"block"}});t.setAttribute("viewBox","0 0 640 360"),t.setAttribute("preserveAspectRatio","xMidYMid meet");const r=this.elementsByLocal(e.documentElement,"trace").map(e=>this.inkTraceToPoints(e.textContent)),n=this.elementsByLocal(e.documentElement,"path").map(e=>e.getAttribute("d")).filter(Boolean);if(0==r.length&&0==n.length)return t.appendChild(this.svgText("Ink",320,180,"middle","18px")),t;const a=r.flat(),s=Math.min(...a.map(e=>e[0]),0),o=Math.min(...a.map(e=>e[1]),0),i=Math.max(...a.map(e=>e[0]),640),l=Math.max(...a.map(e=>e[1]),360),c=Math.min(600/Math.max(i-s,1),320/Math.max(l-o,1)),h=20-s*c,d=20-o*c;for(const e of r){if(e.length<2)continue;const r=this.createSvgElement("path");r.setAttribute("d",e.map((e,t)=>`${0==t?"M":"L"}${e[0]*c+h},${e[1]*c+d}`).join(" ")),r.style.fill="none",r.style.stroke="currentColor",r.style.strokeWidth="2",r.style.strokeLinecap="round",r.style.strokeLinejoin="round",t.appendChild(r)}for(const e of n){const r=this.createSvgElement("path");r.setAttribute("d",e),r.style.fill="none",r.style.stroke="currentColor",r.style.strokeWidth="2",t.appendChild(r)}return t}inkTraceToPoints(e){const t=(e??"").match(/-?\d+(?:\.\d+)?/g)?.map(Number)??[],r=[];for(let e=0;e+1<t.length;e+=2)r.push([t[e],t[e+1]]);return r}svgLine(e,t,r,n){const a=this.createSvgElement("line");return a.setAttribute("x1",`${e}`),a.setAttribute("y1",`${t}`),a.setAttribute("x2",`${r}`),a.setAttribute("y2",`${n}`),a.style.stroke="currentColor",a.style.strokeWidth="1",a}svgText(e,t,r,n="start",a="12px",s=null){const o=this.createSvgElement("text");return o.setAttribute("x",`${t}`),o.setAttribute("y",`${r}`),o.setAttribute("text-anchor",n),o.style.fill="currentColor",o.style.fontSize=a,s&&(o.style.fontWeight=s),o.appendChild(document.createTextNode(e)),o}elementsByLocal(e,t){const r=e.documentElement??e;return Array.from(r.getElementsByTagName("*")).filter(e=>e.localName==t)}firstByLocal(e,t){return this.elementsByLocal(e,t)[0]??null}renderSimpleField(e){const t=this.evaluateFieldNode(e);return void 0===t?this.renderElements(e.children??[]):null==t?null:v(t)?this.renderFieldText(t,e.instruction):t}renderFieldText(e,t){const r=this.h({tagName:"span",className:`${this.className}-field`,children:[e]});return t&&(r.dataset.docxFieldInstr=t),r}evaluateFieldNode(e){const t=(e.instruction??"").replace(/\s+/g," ").trim();if(!t)return;if(t.startsWith("=")){const e=this.evaluateFormula(t.substring(1));return null==e?void 0:this.applyFieldFormatting(`${e}`,t)}const r=this.tokenizeFieldInstruction(t),n=r[0]?.replace(/^=/,"").toUpperCase();if(!this.shouldPreserveStoredFieldResult(n,e))switch(n){case"PAGE":return this.applyFieldFormatting(this.formatFieldNumber(this.currentPageNumber,this.currentSectionProps?.pageNumber?.format),t);case"NUMPAGES":return this.applyFieldFormatting(this.formatFieldNumber(this.totalPages,this.currentSectionProps?.pageNumber?.format),t);case"SECTIONPAGES":return this.applyFieldFormatting(this.formatFieldNumber(this.sectionPageCount,this.currentSectionProps?.pageNumber?.format),t);case"SECTION":return this.applyFieldFormatting(this.formatFieldNumber(this.currentSectionNumber,"decimal"),t);case"DATE":case"TIME":case"CREATEDATE":case"SAVEDATE":case"PRINTDATE":return this.applyFieldFormatting(this.evaluateDateField(r,n),t);case"AUTHOR":return this.applyFieldFormatting(this.document.corePropsPart?.props?.creator??"",t);case"TITLE":return this.applyFieldFormatting(this.document.corePropsPart?.props?.title??"",t);case"SUBJECT":return this.applyFieldFormatting(this.document.corePropsPart?.props?.subject??"",t);case"KEYWORDS":return this.applyFieldFormatting(this.document.corePropsPart?.props?.keywords??"",t);case"NUMWORDS":return this.applyFieldFormatting(`${this.document.extendedPropsPart?.props?.words??""}`,t);case"NUMCHARS":return this.applyFieldFormatting(`${this.document.extendedPropsPart?.props?.characters??""}`,t);case"FILENAME":return this.applyFieldFormatting(this.document.documentPart?.path?.split("/").pop()??"",t);case"DOCPROPERTY":return this.applyFieldFormatting(this.evaluateDocPropertyField(r),t);case"DOCVARIABLE":return this.applyFieldFormatting(this.evaluateDocVariableField(r),t);case"MERGEFIELD":return;case"SET":return this.evaluateSetField(r),null;case"QUOTE":return this.applyFieldFormatting(r.slice(1).map(e=>this.resolveFieldValue(e)).join(""),t);case"HYPERLINK":return this.renderHyperlinkField(r,e);case"IF":return this.applyFieldFormatting(this.evaluateIfField(r),t);case"REF":case"STYLEREF":case"NOTEREF":return this.applyFieldFormatting(this.evaluateRefField(r),t);case"PAGEREF":return this.applyFieldFormatting(this.evaluatePageRefField(r),t);case"SEQ":return this.applyFieldFormatting(this.evaluateSeqField(r),t);case"LISTNUM":return this.applyFieldFormatting(this.evaluateListNumField(r),t);case"TC":case"XE":return null;case"TOC":return this.renderTocField(r);case"SYMBOL":return this.evaluateSymbolField(r)}}shouldPreserveStoredFieldResult(e,t){if(!this.options.preserveComplexFieldResults||!t.children?.length)return!1;switch(e){case"PAGE":case"NUMPAGES":case"SECTIONPAGES":case"SECTION":return!1;case"PAGEREF":return!this.options.updatePageReferences;case"TOC":case"REF":case"STYLEREF":case"NOTEREF":case"SEQ":case"LISTNUM":case"IF":case"DOCVARIABLE":case"MERGEFIELD":return!0}return!1}tokenizeFieldInstruction(e){const t=[];let r="",n=null,a=!1;for(const s of e)a?(r+=s,a=!1):"\\"!=s?'"'!=s&&"'"!=s?!/\s/.test(s)||n?r+=s:r&&(t.push(r),r=""):n==s?(n=null,t.push(r),r=""):n?r+=s:(r.trim()&&t.push(r.trim()),r="",n=s):n?a=!0:(r&&(t.push(r),r=""),r="\\");return r&&t.push(r),t}fieldSwitch(e,t){const r=t.toLowerCase(),n=e.findIndex(e=>e.toLowerCase()==r);return n>=0?e[n+1]:null}hasFieldSwitch(e,t){const r=t.toLowerCase();return e.some(e=>e.toLowerCase()==r)}firstFieldArgument(e,t=1){for(let r=t;r<e.length;r++){if(!e[r]?.startsWith("\\"))return e[r];r++}return null}evaluateDateField(e,t){const r=this.fieldSwitch(e,"\\@"),n=new Date;return r?this.formatFieldDate(n,r):"TIME"==t?n.toLocaleTimeString():n.toLocaleDateString()}formatFieldDate(e,t){const r=(e,t=2)=>`${e}`.padStart(t,"0"),n=["January","February","March","April","May","June","July","August","September","October","November","December"],a=n.map(e=>e.substring(0,3)),s=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],o=s.map(e=>e.substring(0,3)),i=[[/yyyy/g,`${e.getFullYear()}`],[/yy/g,r(e.getFullYear()%100)],[/MMMM/g,n[e.getMonth()]],[/MMM/g,a[e.getMonth()]],[/MM/g,r(e.getMonth()+1)],[/M/g,`${e.getMonth()+1}`],[/dddd/g,s[e.getDay()]],[/ddd/g,o[e.getDay()]],[/dd/g,r(e.getDate())],[/d/g,`${e.getDate()}`],[/HH/g,r(e.getHours())],[/H/g,`${e.getHours()}`],[/hh/g,r((e.getHours()+11)%12+1)],[/h/g,""+((e.getHours()+11)%12+1)],[/mm/g,r(e.getMinutes())],[/m/g,`${e.getMinutes()}`],[/ss/g,r(e.getSeconds())],[/s/g,`${e.getSeconds()}`],[/AM\/PM/g,e.getHours()<12?"AM":"PM"],[/am\/pm/g,e.getHours()<12?"am":"pm"]];let l=t;for(const[e,t]of i)l=l.replace(e,t);return l}evaluateDocPropertyField(e){const t=this.firstFieldArgument(e)?.toLowerCase();if(!t)return"";const r={...this.document.corePropsPart?.props??{},...this.document.extendedPropsPart?.props??{}};for(const[e,n]of Object.entries(r))if(e.toLowerCase()==t)return null==n?"":`${n}`;return""}evaluateSetField(e){const t=this.firstFieldArgument(e);if(!t)return;const r=e.slice(e.indexOf(t)+1).filter(e=>!e.startsWith("\\")).map(e=>this.resolveFieldValue(e)).join(" ");this.fieldSetValues[t]=r}evaluateDocVariableField(e){const t=this.firstFieldArgument(e);return t?this.fieldSetValues[t]??"":""}renderHyperlinkField(e,t){const r=this.fieldSwitch(e,"\\l"),n=this.firstFieldArgument(e)??"",a=r?`${n}#${r}`:n,s=this.h({tagName:"a",children:this.renderHyperlinkChildren(t.children??[])});return this.applyHyperlinkTarget(s,a,!!n),s.textContent||(s.textContent=a||r),s}evaluateIfField(e){const t=["<>",">=","<=","=",">","<"],r=e.findIndex((e,r)=>r>0&&t.includes(e));if(r<0)return"";const n=this.resolveFieldValue(e.slice(1,r).join(" ")),a=e[r],s=this.resolveFieldValue(e[r+1]??""),o=e[r+2]??"",i=e[r+3]??"",l=parseFloat(n),c=parseFloat(s),h=!Number.isNaN(l)&&!Number.isNaN(c),d=h?l:n,u=h?c:s;let m=!1;switch(a){case"=":m=d==u;break;case"<>":m=d!=u;break;case">":m=d>u;break;case"<":m=d<u;break;case">=":m=d>=u;break;case"<=":m=d<=u}return this.resolveFieldValue(m?o:i)}resolveFieldValue(e){const t=(e??"").trim();if(/^[-+]?\d+(?:\.\d+)?$/.test(t))return t;if(this.bookmarkTextMap.hasOwnProperty(t))return this.bookmarkTextMap[t];if(this.fieldSetValues.hasOwnProperty(t))return this.fieldSetValues[t];if(t.startsWith("=")){const e=this.evaluateFormula(t.substring(1));return null==e?"":`${e}`}const r=this.tokenizeFieldInstruction(t)[0]?.toUpperCase();if(["PAGE","NUMPAGES","SECTIONPAGES","SECTION","DATE","TIME","AUTHOR","TITLE","SUBJECT","KEYWORDS","REF","PAGEREF","SEQ","DOCPROPERTY"].includes(r)){const e=this.evaluateFieldNode({type:We.SimpleField,instruction:t,lock:!1,dirty:!1,children:[]});if(v(e))return e}return t}evaluateRefField(e){const t=this.firstFieldArgument(e);return t?this.bookmarkTextMap[t]??this.fieldSetValues[t]??"":""}evaluatePageRefField(e){const t=this.firstFieldArgument(e);return t?`${null!=this.bookmarkTextMap[t]?Math.max(this.currentPageNumber,1):1}`:""}evaluateSeqField(e){const t=this.firstFieldArgument(e);if(!t)return"";if(this.hasFieldSwitch(e,"\\h"))return"";const r=this.fieldSwitch(e,"\\r"),n=this.hasFieldSwitch(e,"\\c");null!=r?this.fieldSeqCounters[t]=parseInt(r,10)||0:n||(this.fieldSeqCounters[t]=(this.fieldSeqCounters[t]??0)+1);const a=this.fieldSwitch(e,"\\*")??"decimal";return this.formatFieldNumber(this.fieldSeqCounters[t]??0,this.fieldFormatSwitchToNumFormat(a))}evaluateListNumField(e){const t=this.firstFieldArgument(e)??"LISTNUM";this.fieldSeqCounters[t]=(this.fieldSeqCounters[t]??0)+1;const r=this.fieldSwitch(e,"*")??"decimal";return this.formatFieldNumber(this.fieldSeqCounters[t],this.fieldFormatSwitchToNumFormat(r))}renderTocField(e){let t=1,r=9;const n=this.fieldSwitch(e,"\\o");if(n){const e=/(\d+)\s*-\s*(\d+)/.exec(n);e&&(t=parseInt(e[1],10),r=parseInt(e[2],10))}const a=this.tocEntries.filter(e=>e.level>=t&&e.level<=r).map(e=>{const t=this.h({tagName:"span",className:`${this.className}-toc-page`,children:["1"]});return t.dataset.docxPageRef=e.id,this.h({tagName:"div",className:`${this.className}-toc-entry ${this.className}-toc-level-${e.level}`,children:[this.h({tagName:"a",className:`${this.className}-toc-title`,href:`#${e.id}`,children:[e.text]}),t]})});return this.h({tagName:"div",className:`${this.className}-toc`,children:a})}evaluateSymbolField(e){const t=parseInt(e[1],10);return Number.isFinite(t)?String.fromCharCode(t):""}evaluateFormula(e){const t=e.replace(/,/g,"").trim();if(!/^[0-9+\-*/().\s]+$/.test(t))return null;try{const e=Function(`"use strict"; return (${t});`)();return Number.isFinite(e)?e:null}catch{return null}}applyFieldFormatting(e,t){const r=this.tokenizeFieldInstruction(t);let n=e??"";const a=this.fieldSwitch(r,"\\*"),s=a?.toUpperCase(),o=this.fieldSwitch(r,"\\#");if(o){const e=parseFloat(n);Number.isNaN(e)||(n=this.formatNumberPicture(e,o))}switch(s){case"UPPER":n=n.toUpperCase();break;case"LOWER":n=n.toLowerCase();break;case"FIRSTCAP":n=n.substring(0,1).toUpperCase()+n.substring(1).toLowerCase();break;case"CAPS":n=n.replace(/\b\w/g,e=>e.toUpperCase());break;case"ROMAN":{const e=parseInt(n,10);Number.isNaN(e)||(n="roman"==a?this.toRoman(e).toLowerCase():this.toRoman(e).toUpperCase());break}case"ALPHABETIC":{const e=parseInt(n,10);Number.isNaN(e)||(n="alphabetic"==a?this.toLetters(e).toLowerCase():this.toLetters(e).toUpperCase());break}}return n}formatNumberPicture(e,t){const r=t.indexOf("."),n=r>=0?t.length-r-1:0;let a=e.toFixed(n);if(t.includes(",")){const[e,t]=a.split(".");a=e.replace(/\B(?=(\d{3})+(?!\d))/g,",")+(null!=t?`.${t}`:"")}return a}fieldFormatSwitchToNumFormat(e){if("roman"==e)return"lowerRoman";if("alphabetic"==e)return"lowerLetter";switch(e?.toUpperCase()){case"ROMAN":return"upperRoman";case"ALPHABETIC":return"upperLetter";default:return"decimal"}}formatFieldNumber(e,t){switch(t){case"upperRoman":return this.toRoman(e).toUpperCase();case"lowerRoman":return this.toRoman(e).toLowerCase();case"upperLetter":return this.toLetters(e).toUpperCase();case"lowerLetter":return this.toLetters(e).toLowerCase();case"decimalZero":return e<10?`0${e}`:`${e}`;default:return`${e}`}}toRoman(e){const t=[[1e3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]];let r=Math.max(Math.floor(e),0),n="";for(const[e,a]of t)for(;r>=e;)n+=a,r-=e;return n||`${e}`}toLetters(e){let t=Math.max(Math.floor(e),1),r="";for(;t>0;)t--,r=String.fromCharCode(65+t%26)+r,t=Math.floor(t/26);return r}renderRuby(e){const t=e.children?.find(e=>e.type==We.RubyBase),r=e.children?.find(e=>e.type==We.RubyText),n=[...t?this.renderElements(t.children):[],...r?S(this.renderElement(r)).filter(e=>null!=e):[]],a=this.h({tagName:"ruby",children:n});return e.align&&(a.style.rubyAlign=e.align),a}hasRenderedContent(e){for(const t of e??[]){if(!t)continue;const e=t,r=e.nodeType,n=String(e.localName??e.tagName??e.nodeName??"").toLowerCase();if(3==r||"#text"==n){if((e.textContent??e.text??e.data??"").length)return!0;continue}if(["br","img","svg","math","table"].includes(n))return!0;if((e.textContent??"").length)return!0;const a=Array.from(e.childNodes??e.children??[]);if(a.length&&this.hasRenderedContent(a))return!0}return!1}renderText(e){return this.h(this.applyCjkLineBreakGuards(e.text))}applyCjkLineBreakGuards(e){if(!e||!this.document.settingsPart?.settings?.kinsoku)return e;const t=this.document.settingsPart.settings.noLineBreaksBefore??"!),.:;?]}¢°·'\"†‡›℃∶、。々〉》」』】〕〗〙〛〜゠ァィゥェォッャュョヮ・ー-?!%,.:;゛゜ヽヾゝゞー",r=this.document.settingsPart.settings.noLineBreaksAfter??"([{$£¥'\"“‘〈《「『【〔〖〘〚";let n="";for(const a of e)t.includes(a)&&(n+="⁠"),n+=a,r.includes(a)&&(n+="⁠");return n}renderDeletedText(e){return js(this.options)||qs(Us(this.options))?this.renderText(e):null}renderBreak(e){switch(e.break){case"textWrapping":case"line":return this.h({tagName:"br"});case"column":return this.h({tagName:"span",style:{breakAfter:"column"}});case"page":return this.options.breakPages?null:this.h({tagName:"span",style:{breakAfter:"page"}});case"lastRenderedPageBreak":return this.options.breakPages||this.options.ignoreLastRenderedPageBreak?null:this.h({tagName:"span",style:{breakAfter:"page"}})}return null}renderInserted(e){return js(this.options)?this.renderRevisionContainer(e,"ins"):"original"==Us(this.options)?null:this.renderElements(e.children)}renderDeleted(e){return js(this.options)?this.renderRevisionContainer(e,"del"):"original"==Us(this.options)?this.renderElements(e.children):null}renderRevisionContainer(e,t){const r=this.renderContainer(e,t),n=e.props?.revision,a=n?.kind??("ins"==t?"insert":"delete");r.dataset.docxChangeKind=a,this.hasOwnRevisionContent(e)||(r.dataset.docxChangeEmpty="true"),r.style.setProperty("--docx-review-color",ao(n?.author)),null!=n?.id&&(r.dataset.docxChangeId=`${n.id}`),n?.author&&(r.dataset.docxChangeAuthor=n.author),n?.date&&(r.dataset.docxChangeDate=n.date,r.setAttribute("datetime",n.date));const s=[n?.author,n?.date].filter(Boolean).join(" - ");return s&&r.setAttribute("title",s),r}hasOwnRevisionContent(e){const t=e=>{for(const r of e.children??[])if(!r.props?.revision){if((r.type==We.Text||r.type==We.DeletedText)&&(r.text??"").length)return!0;if(r.type==We.Tab||r.type==We.PositionalTab||r.type==We.Break||r.type==We.Symbol)return!0;if(t(r))return!0}return!1};return t(e)}renderSymbol(e){const t=function(e,t){const r=String.fromCharCode(t);if("symbol"!==(e??"").trim().replace(/^(["'])(.*)\1$/,"$2").trim().toLowerCase())return{text:r,normalized:!1};const n=t>=61440&&t<=61695?t-61440:t,a=n>=0&&n<=255?ts[n]:void 0,s=void 0===a?r:String.fromCharCode(a);return{text:s,normalized:s!==r}}(e.font,e.char),r=this.h({tagName:"span",children:[t.text],style:{fontFamily:e.font}});return Number.isFinite(e.char)&&r.setAttribute("data-docx-symbol-code",e.char.toString(16).padStart(4,"0").toUpperCase()),e.font&&r.setAttribute("data-docx-symbol-font",e.font),t.normalized&&r.setAttribute("data-docx-symbol-normalized","true"),r}renderFootnoteReference(e){return this.renderNoteReference(e,"footnote")}renderEndnoteReference(e){return this.renderNoteReference(e,"endnote")}renderNoteReference(e,t){const r=this.h({tagName:"sup",children:[]});r.dataset.docxNoteReference=t,r.dataset.docxNoteId=e.id;for(let t=e;t;t=t.parent)if(this.isHiddenRevisionForPagination(t))return r.dataset.docxNoteHidden="true",r;const n="footnote"===t?"footnoteProps":"endnoteProps",a=function(e,t){return{format:t?.numberingFormat??t?.nummeringFormat??e?.numberingFormat??e?.nummeringFormat??"decimal",start:t?.start??e?.start??1,restart:t?.restart??e?.restart??"continuous"}}(this.document.settingsPart?.settings?.[n],this.currentSectionProps?.[n]);let s=this.noteSectionIds.get(this.currentSectionProps);null==s&&(s=`${this.noteSectionIds.size+1}`,this.noteSectionIds.set(this.currentSectionProps,s));const o=this.noteNumbering.assign(t,e.id,!!e.customMarkFollows,a,s,`${this.notePageIndex}`),i="footnote"===t?this.currentFootnoteIds:this.currentEndnoteIds;return i.includes(e.id)||i.push(e.id),r.dataset.docxNoteSection=s,r.dataset.docxNoteFormat=a.format,r.dataset.docxNoteStart=`${a.start}`,r.dataset.docxNoteRestart=a.restart,this.applyNoteAssignment(r,o,!0),r}updateDynamicNoteNumbers(e){const t=Array.from(e.querySelectorAll(`:scope > section.${this.className}`)),r=new de;for(let e=0;e<t.length;e++)for(const n of Array.from(t[e].querySelectorAll("article [data-docx-note-reference]"))){if("true"===n.dataset.docxNoteHidden)continue;const t=r.assign(n.dataset.docxNoteReference,n.dataset.docxNoteId,"true"===n.dataset.docxNoteCustom,{format:n.dataset.docxNoteFormat,start:Number(n.dataset.docxNoteStart),restart:n.dataset.docxNoteRestart},n.dataset.docxNoteSection,`${e+1}`);this.applyNoteAssignment(n,t,!0)}for(const t of Array.from(e.querySelectorAll("li[data-docx-note-id]")))this.applyNoteAssignment(t,r.assignments.get(`${t.dataset.docxNoteKind}:${t.dataset.docxNoteId}`),!1)}renderTab(e){const t=this.currentParagraph??function(e,t){var r=e.parent;for(;null!=r&&r.type!=t;)r=r.parent;return r}(e,We.Paragraph),r=t?.tabs??[],n=r.filter(e=>"clear"!=e?.style),a=this.currentParagraphTabIndex++,s=this.resolveRenderedTabStop(n,a,this.currentParagraphTabCount);var o=this.h({tagName:"span",className:this.tabStopClass(),children:[" "]});return o.dataset.docxTab="true",s&&(o.dataset.docxTabAlign=s.style??"left",o.dataset.docxTabLeader=s.leader??"none",s.position&&(o.dataset.docxTabPos=s.position)),o.dataset.docxTabId=`${this.currentTabs.length}`,this.currentTabs.push({stops:r,span:o}),o}renderBookmarkStart(e){const t=this.h({tagName:"span"});return e.name&&(t.id=e.name,t.setAttribute("id",e.name)),t}renderRun(e){const t=e.fieldRun?e.children?.filter(e=>e.type!=We.Instruction&&e.type!=We.ComplexField):e.children;if(e.fieldRun&&(!t||0==t.length))return null;let r=this.renderElements(t);e.verticalAlign&&(r=[this.h({tagName:e.verticalAlign,children:r})]);if(!e.verticalAlign&&1==t?.length&&(t[0].type==We.Tab||t[0].type==We.PositionalTab)&&1==r?.length){const t=r[0];return e.cssStyle&&Object.assign(t.style,e.cssStyle),e.className&&t.classList.add(e.className),t}const n=this.toHTML(e,zs.html,"span",r),a=this.findStyle(e.styleName),s=e.cssStyle?.["--docx-snap-to-grid"]??this.styleValue(a,"span","--docx-snap-to-grid");if(/^(0|false|off)$/i.test(s??""))n.style.letterSpacing="normal";else if(/^(1|true|on)$/i.test(s??"")){const e=this.currentSectionProps?.docGrid;"linesAndChars"!=e?.type&&"snapToChars"!=e?.type||!e.charSpace||(n.style.letterSpacing=e.charSpace)}return e.id&&(n.id=e.id),n}renderTable(e){e.columns?.length&&!e.cssStyle?.["table-layout"]&&(e.cssStyle??(e.cssStyle={}),e.cssStyle["table-layout"]="fixed"),this.tableCellPositions.push(this.currentCellPosition),this.tableVerticalMerges.push(this.currentVerticalMerge),this.currentVerticalMerge={},this.currentCellPosition={col:0,row:0};const t=[];return e.columns&&t.push(this.renderTableColumns(e.columns)),t.push(...this.renderElements(e.children)),this.currentVerticalMerge=this.tableVerticalMerges.pop(),this.currentCellPosition=this.tableCellPositions.pop(),this.toHTML(e,zs.html,"table",t)}renderTableColumns(e){const t=e.map(e=>this.h({tagName:"col",style:{width:e.width}}));return this.h({tagName:"colgroup",children:t})}renderTableRow(e){this.currentCellPosition.col=e.gridBefore??0;const t=[],r=this.currentTableRow;this.currentTableRow=e,e.gridBefore&&t.push(this.renderTableCellPlaceholder(e.gridBefore)),t.push(...this.renderElements(e.children)),e.gridAfter&&t.push(this.renderTableCellPlaceholder(e.gridAfter));for(const e of Object.keys(this.currentVerticalMerge))this.currentVerticalMerge[e]?.lastRow!=this.currentCellPosition.row&&delete this.currentVerticalMerge[e];this.currentTableRow=r,this.currentCellPosition.row++;const n=this.toHTML(e,zs.html,"tr",t);return e.isHeader&&(n.dataset.docxRepeatHeader="true"),this.repeatedTableHeaderRows.has(e)&&(n.dataset.docxRepeatedHeader="true"),n}renderTableCellPlaceholder(e){return this.h({tagName:"td",colSpan:e,style:{border:"none"}})}renderTableCell(e){const t=this.currentTableRow?.isHeader?"th":"td";let r=this.toHTML(e,zs.html,t);const n=this.currentCellPosition.col,a=Math.max(1,e.span??1),s=this.currentVerticalMerge[n],o=r.style.getPropertyValue?.("border-bottom")||r.style["border-bottom"]||e.cssStyle?.["border-bottom"]||"",i=r.style.getPropertyPriority?.("border-bottom")||"";if(e.verticalMerge)if("restart"==e.verticalMerge)this.currentVerticalMerge[n]={cell:r,span:a,lastRow:this.currentCellPosition.row,bottomBorder:o,bottomBorderPriority:i},r.rowSpan=1;else if(s?.span==a&&s.lastRow==this.currentCellPosition.row-1){s.cell.rowSpan+=1,s.lastRow=this.currentCellPosition.row;const e=o||s.bottomBorder||"";s.cell.style.setProperty?s.cell.style.setProperty("border-bottom",e,i||s.bottomBorderPriority):s.cell.style["border-bottom"]=e,r.style.display="none"}else delete this.currentVerticalMerge[n];else delete this.currentVerticalMerge[n];return e.span&&(r.colSpan=e.span),this.currentCellPosition.col+=r.colSpan,function(e,t,r=e=>e){const n=["tl2br","tr2bl"].filter(e=>t?.[e]&&"none"!==t[e]);if(!n.length)return;const a=e.ownerDocument??document,s="http://www.w3.org/2000/svg",o=a.createElementNS(s,"svg"),i=a.createElement("span");for(const e of n){const n=/^(\d+(?:\.\d+)?)(pt|px)\s+(\w+)\s+(.+)$/.exec(t[e]);if(!n||!Number.isFinite(Number(n[1]))||Number(n[1])<=0)continue;const[,l,c,h,d]=n;if(/url\s*\(|[;{}<>\\\x00-\x1f]/i.test(d))continue;if(i.style.color="",i.style.color=d,!i.style.color)continue;const u=a.createElementNS(s,"line");u.dataset.docxDiagonal=e,u.setAttribute("x1","tl2br"===e?"0%":"100%"),u.setAttribute("y1","0%"),u.setAttribute("x2","tl2br"===e?"100%":"0%"),u.setAttribute("y2","100%"),u.style.stroke=r(i.style.color),u.style.strokeWidth=`${l}${c}`;const m=Number(l)*("pt"===c?4/3:1);"dotted"===h?(u.style.strokeDasharray="0 "+2*m,u.style.strokeLinecap="round"):"dashed"===h&&(u.style.strokeDasharray=`${4*m} ${2*m}`),o.appendChild(u)}o.hasChildNodes()&&(o.setAttribute("aria-hidden","true"),o.setAttribute("focusable","false"),Object.assign(o.style,{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none"}),e.style.position&&"static"!==e.style.position||(e.style.position="relative"),e.appendChild(o))}(r,e.props?.diagonalBorders,e=>this.darkenColorAttr(e)),r}renderVmlPicture(e){const t=this.renderContainer(e,this.currentParagraph?"span":"div");return t.style.display="block",t}vmlLengthInPoints(e){if(null==e)return null;const t=String(e).trim();if(!/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?(?:pt|px|in|cm|mm|pc)?$/i.test(t))return null;const r=parseFloat(t);return Number.isFinite(r)?/px$/i.test(t)?.75*r:/in$/i.test(t)?72*r:/cm$/i.test(t)?72*r/2.54:/mm$/i.test(t)?72*r/25.4:/pc$/i.test(t)?12*r:r:null}vmlRenderContext(e,t){const r=C(e.cssStyleText),[n,a]=e.coordOrigin??[0,0],s=e=>Number.isFinite(e)?e:0,o=this.vmlLengthInPoints(r.width),i=this.vmlLengthInPoints(r.height),l=Math.max(0,s(t?.width??4*(o??Math.abs(e.coordSize?.[0]??1))/3)),c=Math.max(0,s(t?.height??4*(i??Math.abs(e.coordSize?.[1]??1))/3)),h=e.coordSize?.[0]??o??3*l/4,d=e.coordSize?.[1]??i??3*c/4;return{originX:s(n),originY:s(a),offsetX:s(t?.x??0),offsetY:s(t?.y??0),scaleX:h>0?s(l/h):0,scaleY:d>0?s(c/d):0,width:l,height:c}}vmlMappedValue(e,t,r,n){if(null==e)return 0;const a=String(e).trim(),s=parseFloat(a);if(!Number.isFinite(s))return 0;const o="x"==r?t.scaleX:t.scaleY,i="x"==r?t.originX:t.originY,l=n?0:"x"==r?t.offsetX:t.offsetY;let c;return c=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)%$/.test(a)?s*("x"==r?t.width:t.height)/100+l:/(?:pt|px|in|cm|mm|pc)$/i.test(a)?4*(this.vmlLengthInPoints(a)??0)/3+l:null!=this.vmlLengthInPoints(a)?(n?s:s-i)*o+l:0,Number.isFinite(c)?c:0}vmlBounds(e,t,r){if(r)return r;const n=C(e.cssStyleText),a=null==n.width?t.width:this.vmlMappedValue(n.width,t,"x",!0),s=null==n.height?t.height:this.vmlMappedValue(n.height,t,"y",!0);return{x:null==n.left?t.offsetX:this.vmlMappedValue(n.left,t,"x",!1),y:null==n.top?t.offsetY:this.vmlMappedValue(n.top,t,"y",!1),width:Math.max(0,a),height:Math.max(0,s)}}vmlCombinedLength(e,t){if(!e)return t;if(!t)return e;const r=this.vmlLengthInPoints(e),n=this.vmlLengthInPoints(t);return null!=r&&null!=n?`${r+n}pt`:`calc(${e} + ${t})`}vmlRootStyle(e){const t=C(e.cssStyleText),r={},n=["position","display","left","top","right","bottom","margin-left","margin-top","width","height","z-index","opacity","visibility","overflow"];for(const e of n)null!=t[e]&&(r[e]=t[e]);return"page"==t["mso-position-horizontal-relative"]&&(r.left=this.vmlCombinedLength(r.left,r["margin-left"]),delete r["margin-left"]),"page"==t["mso-position-vertical-relative"]&&(r.top=this.vmlCombinedLength(r.top,r["margin-top"]),delete r["margin-top"]),r.display??(r.display="block"),r.overflow??(r.overflow="visible"),r["pointer-events"]="none",r}applyVmlAttributes(e,t,r=new Set){for(const[n,a]of Object.entries(t??{}))r.has(n)||e.setAttribute(n,"fill"==n||"stroke"==n?this.darkenColorAttr(a):a)}loadVmlImage(e,t){e.imageHref?.id&&this.tasks.push(this.document?.loadDocumentImage(e.imageHref.id,this.currentPart,this.options.externalResourcePolicy).then(e=>{e&&t.setAttribute("href",e)}))}renderVmlElement(e){const t=this.vmlRenderContext(e),r=this.vmlRootStyle(e);r.width??(r.width=`${t.width}px`),r.height??(r.height=`${t.height}px`);for(const e of["width","height"])/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)$/.test(r[e])&&(r[e]=`${t[e]}px`);const n=this.createSvgElement("svg",{style:r});if(t.width>0&&t.height>0&&null!=this.vmlLengthInPoints(r.width)&&null!=this.vmlLengthInPoints(r.height)&&n.setAttribute("viewBox",`0 0 ${t.width} ${t.height}`),n.setAttribute("preserveAspectRatio","none"),n.setAttribute("focusable","false"),n.dataset.docxVml="true","absolute"==e.cssStyle?.position){n.dataset.docxFloat="true";const t=e.props?.anchorPosition;t?.horizontal?.relative&&(n.dataset.docxAnchorHorizontal=t.horizontal.relative),t?.vertical?.relative&&(n.dataset.docxAnchorVertical=t.vertical.relative)}return n.appendChild(this.renderVmlChildElement(e,t,{x:0,y:0,width:t.width,height:t.height},!0)),n}renderVmlChildElement(e,t,r,n=!1){const a=this.vmlBounds(e,t,r),s=this.vmlRenderContext(e,a),o=C(e.cssStyleText);let i;switch(e.tagName){case"image":{const t=this.createSvgElement("svg");t.setAttribute("x",`${a.x}`),t.setAttribute("y",`${a.y}`),t.setAttribute("width",`${a.width}`),t.setAttribute("height",`${a.height}`),t.setAttribute("viewBox","0 0 100 100"),t.setAttribute("preserveAspectRatio","none"),t.setAttribute("overflow","hidden");const r=this.createSvgElement("image");this.applyVmlAttributes(r,e.attrs),r.setAttribute("x",e.attrs.x??"0"),r.setAttribute("y",e.attrs.y??"0"),r.setAttribute("width",e.attrs.width??"100%"),r.setAttribute("height",e.attrs.height??"100%"),this.loadVmlImage(e,r),t.appendChild(r),i=t;break}case"line":{const r=this.createSvgElement("line"),n=null==e.attrs.x1?a.x:this.vmlMappedValue(e.attrs.x1,t,"x",!1),s=null==e.attrs.y1?a.y:this.vmlMappedValue(e.attrs.y1,t,"y",!1),o=null==e.attrs.x2?a.x+a.width:this.vmlMappedValue(e.attrs.x2,t,"x",!1),l=null==e.attrs.y2?a.y+a.height:this.vmlMappedValue(e.attrs.y2,t,"y",!1);r.setAttribute("x1",`${n}`),r.setAttribute("y1",`${s}`),r.setAttribute("x2",`${o}`),r.setAttribute("y2",`${l}`),this.applyVmlAttributes(r,e.attrs,new Set(["x1","y1","x2","y2"])),e.attrs.stroke||r.setAttribute("stroke","currentColor"),i=r;break}case"path":{const t=this.createSvgElement("path");this.applyVmlAttributes(t,e.attrs,new Set(["d"])),t.setAttribute("d",e.attrs.d??""),t.setAttribute("transform",`matrix(${s.scaleX} 0 0 ${s.scaleY} ${a.x-s.originX*s.scaleX} ${a.y-s.originY*s.scaleY})`),t.setAttribute("vector-effect","non-scaling-stroke"),i=t;break}case"rect":{const t=this.createSvgElement("rect");t.setAttribute("x",`${a.x}`),t.setAttribute("y",`${a.y}`),t.setAttribute("width",`${a.width}`),t.setAttribute("height",`${a.height}`),this.applyVmlAttributes(t,e.attrs,new Set(["x","y","width","height"])),i=t;break}case"ellipse":{const t=this.createSvgElement("ellipse");t.setAttribute("cx",`${a.x+a.width/2}`),t.setAttribute("cy",`${a.y+a.height/2}`),t.setAttribute("rx",""+a.width/2),t.setAttribute("ry",""+a.height/2),this.applyVmlAttributes(t,e.attrs,new Set(["cx","cy","rx","ry"])),i=t;break}case"foreignObject":{const t=this.createSvgElement("foreignObject"),[r,n,s,o]=(e.textInset??["0","0","0","0"]).map(e=>4*(this.vmlLengthInPoints(e)??0)/3);t.setAttribute("x",`${a.x+r}`),t.setAttribute("y",`${a.y+n}`),t.setAttribute("width",`${Math.max(0,a.width-r-s)}`),t.setAttribute("height",`${Math.max(0,a.height-n-o)}`),this.applyVmlAttributes(t,e.attrs,new Set(["x","y","width","height"])),t.setAttribute("overflow","hidden");const l=this.createElement("div",{style:{width:"100%",height:"100%",overflow:"hidden",boxSizing:"border-box"}});l.setAttribute("xmlns",zs.html);for(const t of e.children??[])for(const e of S(this.renderElement(t)).filter(e=>null!=e))l.appendChild(v(e)?document.createTextNode(e):e);t.appendChild(l),i=t;break}default:i=this.createSvgElement("g"),this.applyVmlAttributes(i,e.attrs)}if("foreignObject"!=e.tagName){if(e.children?.length&&"g"!=e.tagName){const e=this.createSvgElement("g");e.appendChild(i),i=e}for(const t of e.children??[])if(t.type==We.VmlElement)i.appendChild(this.renderVmlChildElement(t,s,e.isGroup?void 0:a));else for(const e of S(this.renderElement(t)).filter(e=>null!=e))i.appendChild(v(e)?document.createTextNode(e):e)}if(e.isGroup&&"hidden"==o.overflow){const e=this.createSvgElement("svg");e.setAttribute("x",`${a.x}`),e.setAttribute("y",`${a.y}`),e.setAttribute("width",`${a.width}`),e.setAttribute("height",`${a.height}`),a.width>0&&a.height>0&&e.setAttribute("viewBox",`${a.x} ${a.y} ${a.width} ${a.height}`),e.setAttribute("overflow","hidden"),e.appendChild(i),i=e}const l=[],c=a.x+a.width/2,h=a.y+a.height/2;Number.isFinite(e.rotation)&&e.rotation&&l.push(`rotate(${e.rotation} ${c} ${h})`);const d=/x/i.test(o.flip??""),u=/y/i.test(o.flip??"");if((d||u)&&l.push(`translate(${c} ${h}) scale(${d?-1:1} ${u?-1:1}) translate(${-c} ${-h})`),l.length){const e=this.createSvgElement("g");e.setAttribute("transform",l.join(" ")),e.appendChild(i),i=e}if(!n)for(const e of["display","visibility","opacity"])null!=o[e]&&i.style.setProperty(e,o[e]);return i}renderMmlMathParagraph(e){const t=this.renderElements(e.children);for(const e of t)"math"==e?.localName&&e.setAttribute("display","block");return this.h({tagName:this.currentParagraph?"span":"div",className:`${this.className}-math-paragraph`,style:{display:"block",textAlign:"center"},children:t})}renderMmlPhantom(e){return this.renderContainerNS(e,zs.mathML,"mphantom")}renderMmlAccent(e){const t=e.children?.find(e=>e.type==We.MmlBase),r=this.createMathMLElement("mo",null,[e.props?.char??"^"]),n=t?S(this.renderElement(t)).filter(e=>null!=e):[];return this.createMathMLElement("mover",null,[...n,r])}renderMmlRadical(e){const t=e.children.find(e=>e.type==We.MmlBase);if(e.props?.hideDegree)return this.createMathMLElement("msqrt",null,this.renderElements([t]));const r=e.children.find(e=>e.type==We.MmlDegree);return this.createMathMLElement("mroot",null,this.renderElements([t,r]))}renderMmlDelimiter(e){const t=[],r=e.props?.beginChar,n=e.props?.endChar;return""!==r&&t.push(this.createMathMLElement("mo",null,[r??"("])),t.push(...this.renderElements(e.children)),""!==n&&t.push(this.createMathMLElement("mo",null,[n??")"])),this.createMathMLElement("mrow",null,t)}renderMmlNary(e){const t=[],r=y(e.children,e=>e.type),n=r[We.MmlSuperArgument],a=r[We.MmlSubArgument],s=n?this.createMathMLElement("mrow",null,this.renderElements(n.children)):null,o=a?this.createMathMLElement("mrow",null,this.renderElements(a.children)):null,i=this.createMathMLElement("mo",null,[e.props?.char??"∫"]);return s&&o?t.push(this.createMathMLElement("munderover",null,[i,o,s])):s?t.push(this.createMathMLElement("mover",null,[i,s])):o?t.push(this.createMathMLElement("munder",null,[i,o])):t.push(i),r[We.MmlBase]&&t.push(...this.renderElements(r[We.MmlBase].children)),this.createMathMLElement("mrow",null,t)}renderMmlPreSubSuper(e){const t=[],r=y(e.children,e=>e.type),n=r[We.MmlSuperArgument],a=r[We.MmlSubArgument],s=this.createMathMLElement("mrow",null,n?this.renderElements(n.children):[]),o=this.createMathMLElement("mrow",null,a?this.renderElements(a.children):[]),i=this.createMathMLElement("mrow",null,[]);return t.push(this.createMathMLElement("msubsup",null,[i,o,s])),r[We.MmlBase]&&t.push(...this.renderElements(r[We.MmlBase].children)),this.createMathMLElement("mrow",null,t)}renderMmlGroupChar(e){const t="bot"===e.props?.verticalJustification?"munder":"mover",r=this.createMathMLElement("mrow",null,this.renderElements(e.children)),n=this.createMathMLElement("mo",null,[e.props?.char??"⏞"]);return this.createMathMLElement(t,null,[r,n])}renderMmlBar(e){const t={};switch(e.props.position){case"top":t.textDecoration="overline";break;case"bottom":t.textDecoration="underline"}return this.renderContainerNS(e,zs.mathML,"mrow",{style:t})}renderMmlRun(e){const t=this.extractMathRunText(e);if(null!=t){const r=this.renderMathTextTokens(t,e.cssStyle);return r.length?r:null}return this.renderContainerNS(e,zs.mathML,"mrow")}extractMathRunText(e){let t="";for(const r of e.children??[])switch(r.type){case We.Text:t+=r.text??"";break;case We.DeletedText:qs(Us(this.options))&&(t+=r.text??"");break;case We.Symbol:t+=String.fromCharCode(r.char);break;case We.Tab:t+=" ";break;case We.NoBreakHyphen:t+="‑";break;case We.SoftHyphen:break;default:return null}return t}renderMathTextTokens(e,t){const r=[];let n=0;for(;n<e.length;){const a=e[n];if(/\s/.test(a)){let t=n+1;for(;t<e.length&&/\s/.test(e[t]);)t++;r.push(this.createMathMLElement("mspace",{width:.25*Math.max(1,t-n)+"em"})),n=t;continue}if(fo(a)){let a=n+1;for(;a<e.length&&(fo(e[a])||"."==e[a]);)a++;r.push(this.createMathToken("mn",e.substring(n,a),t)),n=a;continue}if(go(a)){let a=n+1;for(;a<e.length&&go(e[a]);)a++;r.push(this.createMathToken("mi",e.substring(n,a),t)),n=a;continue}bo(a)?r.push(this.createMathToken("mo",a,t)):r.push(this.createMathToken("mtext",a,t)),n++}return r}createMathToken(e,t,r){return this.createMathMLElement(e,r?{style:r}:null,[t])}renderMllList(e){const t=this.renderElements(e.children).map(e=>this.createMathMLElement("mtr",null,[this.createMathMLElement("mtd",null,[e])]));return this.toHTML(e,zs.mathML,"mtable",t)}toH(e,t,r,n=null){const{$lang:a,"$lang-eastAsia":s,"$lang-bidi":o,...i}=e.cssStyle??{};return{ns:t,tagName:r,className:Vs(e.className,e.styleName&&this.processStyleName(e.styleName)),lang:a,style:this.darkenStyle(i),children:n??this.renderElements(e.children)}}darkenStyle(e){if(!this.options.darkMode)return e;const t=function(e,t){if(!e)return e;let r=e;for(const n in e){const a=e[n];if("string"!=typeof a||!a)continue;let s;Ds.has(n)||n.startsWith("--")&&n.endsWith("-color")?s=Bs(a,t):Is.has(n)&&(s=Hs(a,t)),void 0!==s&&s!==a&&(r===e&&(r={...e}),r[n]=s)}return r}(e);if(t===e)return e;const r={...t};for(const n in t){if(n.startsWith("--"))continue;const a=e[n],s=t[n];s===a||"string"!=typeof s||s.toLowerCase().includes("var(")||(r[n]=this.wrapForPrint(a,s))}return r}darkenColorAttr(e){if(!this.options.darkMode)return e;const t=Bs(e);return t===e||t.toLowerCase().includes("var(")?t:this.wrapForPrint(e,t)}wrapForPrint(e,t){let r=this.darkModeVarNames.get(e);return r||(r=`--docx-dm-${this.darkModeVarNames.size}`,this.darkModeVarNames.set(e,r),this.darkModePrintReset[r]=e),`var(${r}, ${t})`}renderDarkModePrintReset(){const e=Object.entries(this.darkModePrintReset);if(!this.options.darkMode||0===e.length)return[];const t=e.map(([e,t])=>` ${e}: ${t};\r\n`).join(""),r=`@media print {\r\n.${this.className} {\r\n${t}}\r\n}\r\n`;return[this.h({tagName:"style",children:[r]})]}toHTML(e,t,r,n=null){const a=this.h(this.toH(e,t,r,n));return 1===a?.nodeType&&this.applyElementRevisionMetadata(a,e),a}applyElementRevisionMetadata(e,t){const r=t.props?.revision;"insert"!==r?.kind&&"delete"!==r?.kind||(js(this.options)?(e.dataset.docxChangeKind=r.kind,e.style.setProperty("--docx-review-color",ao(r.author)),null!=r.id&&(e.dataset.docxChangeId=`${r.id}`),r.author&&(e.dataset.docxChangeAuthor=r.author),r.date&&(e.dataset.docxChangeDate=r.date)):"delete"===r.kind&&(e.style.display="none"));const n=t.props?.formatRevisions?.[0];n&&js(this.options)&&(e.dataset.docxFormatChange="true",e.style.setProperty("--docx-review-color",ao(n.author)),null!=n.id&&(e.dataset.docxChangeId=`${n.id}`),n.author&&(e.dataset.docxChangeAuthor=n.author),n.date&&(e.dataset.docxChangeDate=n.date))}findStyle(e){return e&&this.styleMap?.[e]}isTocParagraphStyle(e,t){return[e,t?.id,t?.name,t?.cssName,...t?.aliases??[]].filter(Boolean).map(e=>String(e).replace(/[\s_-]+/g,"").toLowerCase()).some(e=>/^toc[1-9]$/.test(e))}numberingClass(e,t){return`${this.className}-num-${e}-${t}`}numberingSelector(e,t){return`.${this.className} p.${this.numberingClass(e,t)}`}tabStopClass(){return`${this.className}-tab-stop`}scopeDocumentStyleSelector(e){const t=e.trim();return!t||t.startsWith(`.${this.className}`)||t.startsWith(`section.${this.className}`)||t.startsWith(`.${this.className}-wrapper`)?e:`.${this.className} ${e}`}styleToString(e,t,r=null){let n=`${e} {\r\n`;const a=this.darkenStyle(t);for(const e in a)e.startsWith("$")||(n+=` ${e}: ${a[e]};\r\n`);return r&&(n+=r),n+"}\r\n"}numberingCounter(e,t){return`${this.className}-num-${e}-${t}`}numberingRestartLevel(e){if(e.level<=0)return null;if(null==e.restart)return e.level-1;if(0==e.restart)return null;const t=e.restart-1;return t>=0&&t<e.level?t:null}numberingMarkerRunStyle(e,t){if(!e)return e;const r={...e};return t&&delete r["font-family"],r}normalizeNumberingLevelText(e,t,r){if("bullet"!=t||!e)return{text:e,normalized:!1};const n=(r?.["font-family"]??"").toLowerCase();let a=!1,s=null;if(n.includes("wingdings"))s=this.wingdingsBulletMap();else{if(!n.includes("symbol"))return{text:e,normalized:!1};s=this.symbolBulletMap()}let o="";for(const t of e){const e=s[t.charCodeAt(0)];e?(o+=e,a=!0):o+=t}return{text:o,normalized:a}}symbolBulletMap(){return{183:"•",8226:"•",61623:"•"}}wingdingsBulletMap(){return{61548:"●",61550:"■",61557:"◆",61598:"·",61599:"•",61600:"▪",61601:"○",61604:"◉",61605:"◎",61607:"▪",61608:"◻",61656:"➢",61672:"➔",61690:"▫",61691:"✗",61692:"✓",61693:"☒",61694:"☑"}}levelTextToContent(e,t,r,n,a){const s=[];let o=0;for(const t of e.matchAll(/%\d+/g)){t.index>o&&s.push(`"${this.escapeCssString(e.substring(o,t.index))}"`);let i=parseInt(t[0].substring(1),10)-1;const l=a?.get(`${r}:${i}`)??n??"decimal";s.push(`counter(${this.numberingCounter(r,i)}, ${l})`),o=t.index+t[0].length}const i=e.substring(o);i&&s.push(`"${this.escapeCssString(i)}"`);const l=this.numberingSuffixToCssContent(t);return l&&s.push(l),s.length>0?s.join(" "):'""'}numberingSuffixToCssContent(e){switch(e||"tab"){case"nothing":return"";case"space":return'"\\000020"';default:return'"\\000009"'}}escapeCssString(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\r?\n/g,"\\A ")}numFormatToCssValue(e){return{none:"none",bullet:"disc",decimal:"decimal",lowerLetter:"lower-alpha",upperLetter:"upper-alpha",lowerRoman:"lower-roman",upperRoman:"upper-roman",decimalZero:"decimal-leading-zero",aiueo:"katakana",aiueoFullWidth:"katakana",chineseCounting:"simp-chinese-informal",chineseCountingThousand:"simp-chinese-informal",chineseLegalSimplified:"simp-chinese-formal",chosung:"hangul-consonant",ideographDigital:"cjk-ideographic",ideographTraditional:"cjk-heavenly-stem",ideographLegalTraditional:"trad-chinese-formal",ideographZodiac:"cjk-earthly-branch",iroha:"katakana-iroha",irohaFullWidth:"katakana-iroha",japaneseCounting:"japanese-informal",japaneseDigitalTenThousand:"cjk-decimal",japaneseLegal:"japanese-formal",thaiNumbers:"thai",koreanCounting:"korean-hangul-formal",koreanDigital:"korean-hangul-formal",koreanDigital2:"korean-hanja-informal",hebrew1:"hebrew",hebrew2:"hebrew",hindiNumbers:"devanagari",ganada:"hangul",taiwaneseCounting:"cjk-ideographic",taiwaneseCountingThousand:"cjk-ideographic",taiwaneseDigital:"cjk-decimal"}[e]??e??"decimal"}refreshTabStops(e){const t=e?.querySelectorAll?Array.from(e.querySelectorAll("[data-docx-tab-id]")):this.currentTabs.map(e=>e.span);for(const e of t){if(!e.isConnected||!this.ownsLayoutElement(e))continue;const t=this.currentTabs[Number(e.dataset.docxTabId)];t&&(!hs(e,t.stops)&&this.options.experimental&&os(e,t.stops,this.defaultTabSize,ss()))}}createElementNS(e,t,r,n){return this.h({ns:e,tagName:t,children:n,...r})}createElement(e,t,r){return this.createElementNS(zs.html,e,t,r)}createMathMLElement(e,t,r){return this.createElementNS(zs.mathML,e,t,r)}createSvgElement(e,t,r){return this.createElementNS(zs.svg,e,t,r)}later(e){this.postRenderTasks.push(e)}}function fo(e){return e>="0"&&e<="9"}function go(e){if(!e)return!1;const t=e.charCodeAt(0);return t>=65&&t<=90||t>=97&&t<=122||t>=913&&t<=1023||t>=119808&&t<=120831}function bo(e){return"()+-−=<>≤≥≈≠×÷*/·∙∑Σ∏∫√∞∂∇,.;:[]{}|‖!′″→←↔⇒⇔∈∉⊂⊃⊆⊇∧∨¬".includes(e)}po.nextCommentId=0;function yo(e){const t=function(e){if(null==e)return 0;if("undefined"!=typeof Blob&&e instanceof Blob)return e.size;if("undefined"!=typeof ArrayBuffer){if(e instanceof ArrayBuffer)return e.byteLength;if(ArrayBuffer.isView(e))return e.byteLength}return"number"==typeof e.size?e.size:"number"==typeof e.byteLength?e.byteLength:"number"==typeof e.length?e.length:null}(e);if(0===t)throw new Error("文件为空或尚未保存,无法作为 Word 文档打开。请在 WPS/Word 中保存后重新上传。")}const xo={ignoreHeight:!1,ignoreWidth:!1,fixedPageHeight:!0,ignoreFonts:!1,breakPages:!0,strictWordCompatibility:!0,paginationTolerance:2,maxDynamicPaginationPasses:1e3,awaitLayout:!0,useWorker:!0,workerUrl:void 0,workerFactory:void 0,workerJsZipUrl:void 0,workerFallback:!0,workerTimeout:12e4,renderPageBatchSize:2,renderYieldEveryMs:16,progress:void 0,preserveComplexFieldResults:!0,updatePageReferences:!1,hideWebHiddenContent:!1,externalLinkPolicy:"allow",externalResourcePolicy:"block",darkMode:!1,debug:!1,experimental:!1,className:"docx",inWrapper:!0,hideWrapperOnPrint:!1,trimXmlDeclaration:!0,ignoreLastRenderedPageBreak:!1,renderHeaders:!0,renderFooters:!0,renderFootnotes:!0,renderEndnotes:!0,useBase64URL:!1,renderChanges:!1,reviewMode:void 0,reviewPresentation:"balloon",renderComments:!1,renderAltChunks:!0,h:Ws};function wo(e){const t={...xo,...e};return null!=e?.reviewMode&&null==e.renderComments&&(t.renderComments=!0),t}function vo(e,t,r){if("auto"!==t.reviewMode)return t;const n=_s(e,"auto");return t.reviewMode=n.enabled?n.mode:void 0,t.renderChanges=n.enabled,null==r?.renderComments&&(t.renderComments=n.enabled),t}function ko(e,t){const r=wo(t);return r.licenseToken,yo(e),function(e){return!(!e.useWorker||!e.workerFactory&&!e.workerUrl||"undefined"==typeof Worker)}(r)?Mo(e,r).catch(t=>{if(!r.workerFallback)throw t;r.debug&&console.warn("docx-preview: worker parsing failed; falling back to main thread",t);const n={...r,useWorker:!1};return Co(e,n)}):Co(e,r)}function Co(e,t){return yo(e),t.progress?.({phase:"parse",message:"Parsing DOCX on main thread"}),Ca.load(e,new Ka(t),t)}async function So(e,t){const r=vo(e,wo(t),t);r.licenseToken;const n=new po;return await n.render(e,r)}const No=new WeakMap;function Ao(e){const{h:t,progress:r,licenseToken:n,workerFactory:a,...s}=e;return{...s,useWorker:!1}}let Po=0;function Mo(e,t){const r={...xo,...t};return r.licenseToken,yo(e),!r.workerFactory&&!r.workerUrl||"undefined"==typeof Worker?Co(e,{...r,useWorker:!1}):(r.progress?.({phase:"worker",message:"Starting DOCX parse worker"}),new Promise((t,n)=>{const a=++Po,s=r.workerFactory?r.workerFactory():new Worker(r.workerUrl);let o=!1,i=null;const l=()=>{o=!0,i&&clearTimeout(i),s.terminate()};r.workerTimeout>0&&(i=setTimeout(()=>{o||(l(),n(new Error(`docx-preview worker timed out after ${r.workerTimeout}ms`)))},r.workerTimeout)),s.onerror=e=>{o||(l(),n(new Error(e.message||"docx-preview worker error")))},s.onmessage=e=>{const s=e.data??{};if(s.id===a||"ready"===s.type)if("progress"!==s.type){if("parsed"===s.type)return l(),r.progress?.({phase:"worker",message:"Worker parse complete"}),void t(Ca.fromSnapshot(s.snapshot,r));if("error"===s.type){l();const e=new Error(s.error?.message??"docx-preview worker parse failed");e.stack=s.error?.stack,n(e)}}else r.progress?.({phase:"worker",current:s.current,total:s.total,message:s.message})},s.postMessage({type:"parse",id:a,data:e,options:Ao(r),jsZipUrl:r.workerJsZipUrl})}))}async function $o(e,t){const r={...xo,...t},n=i(e);await l(e,[],n),await mo(e,n);const a=Array.from(e.querySelectorAll(`.${r.className}-wrapper`));if(e.classList?.contains(`${r.className}-wrapper`)&&a.unshift(e),r.breakPages&&r.fixedPageHeight&&!r.ignoreHeight&&a.length){const t=Math.max(2,r.maxDynamicPaginationPasses??120),s=()=>a.some(e=>"true"===e.dataset.docxPaginating||"true"===e.dataset.docxPaginationScheduled);for(let r=0;r<t;r++){await Do(),o(e,n);const t=a.find(e=>e.dataset.docxLayoutError);if(t)throw new Error(t.dataset.docxLayoutError);if(!s())break}if(s())throw new Error("DOCX layout did not settle within the configured pagination wait budget")}return await Do(),o(e,n),await mo(e,n),o(e,n),Lo(e,r)}const To=new WeakMap;function Fo(e){!function(e){r.get(e)?.cancel(),r.delete(e)}(e),To.get(e)?.(),To.delete(e),function(e){const t=new Set,r=[e,...Array.from(e.querySelectorAll("[data-docx-layout-root], [data-docx-comment-layer]"))];for(const e of r){const r=uo.get(e);r&&t.add(r),uo.delete(e)}for(const e of t)e.disposeLayout()}(e);const t=No.get(e);t&&e.removeEventListener("click",t),No.delete(e)}function Lo(e,t){const r={...xo,...t},n=Array.from(e.querySelectorAll(`section.${r.className}`)).map((e,t)=>{const n=Array.from(e.querySelectorAll("[data-docx-field-instr]")),a=Array.from(e.querySelectorAll("img")).filter(e=>!e.complete||0===e.naturalWidth).length,s=e.clientHeight>0&&e.scrollHeight>e.clientHeight+(r.paginationTolerance??2);return{index:t+1,section:e.dataset.docxSection??"",pageNumber:parseInt(e.dataset.docxPageNumber??`${t+1}`,10),sectionPageNumber:parseInt(e.dataset.docxSectionPageNumber??"1",10),width:e.clientWidth,height:e.clientHeight,scrollHeight:e.scrollHeight,overflow:s,textLength:e.textContent?.length??0,anchors:Array.from(e.querySelectorAll("[id]")).map(e=>e.id).filter(Boolean),fields:n.map(e=>({instruction:e.dataset.docxFieldInstr??"",value:e.textContent??""})),floats:e.querySelectorAll('[data-docx-float="true"]').length,unresolvedMedia:a}});return{pageCount:n.length,overflowPages:n.filter(e=>e.overflow).map(e=>e.index),unresolvedMedia:n.reduce((e,t)=>e+t.unresolvedMedia,0),textLength:n.reduce((e,t)=>e+t.textLength,0),fields:n.flatMap(e=>e.fields),floats:n.reduce((e,t)=>e+t.floats,0),pages:n}}function Ro(e,t="docx"){if(!e||"function"!=typeof getComputedStyle)return;const r=Array.from(e.querySelectorAll("p")),n=`${t}-num-`;for(const e of r){if(!e.className?.includes(n))continue;const t=getComputedStyle(e,"::before");if(!t.content||"none"==t.content||"normal"==t.content)continue;const r=Eo(e);if(!r||r==e)continue;const a=getComputedStyle(r);Bo(e,"--docx-marker-font-family",a.fontFamily),Bo(e,"--docx-marker-font-size",a.fontSize),Bo(e,"--docx-marker-font-style",a.fontStyle),Bo(e,"--docx-marker-font-weight",a.fontWeight)}}function Eo(e){const t=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);for(;t.nextNode();){const r=t.currentNode;if(!r.nodeValue?.trim())continue;const n=r.parentElement;if(!n||n==e)return e;const a=getComputedStyle(n);if("none"!=a.display&&"hidden"!=a.visibility)return n}return null}function Bo(e,t,r){r&&e.style.setProperty(t,r)}function Do(){return new Promise(e=>{const t=globalThis;"function"==typeof t.requestIdleCallback?t.requestIdleCallback(()=>e(),{timeout:32}):"function"==typeof t.requestAnimationFrame?t.requestAnimationFrame(()=>e()):setTimeout(e,0)})}e.awaitRenderedLayout=$o,e.collectDocxReviewChanges=Gs,e.collectLayoutSnapshot=Lo,e.defaultOptions=xo,e.disposeRenderedDocument=Fo,e.parseAsync=ko,e.parseAsyncInWorker=Mo,e.renderAsync=async function(e,t,r,n){const s=wo(n);s.licenseToken,Fo(t);const c=a(t),h=await ko(e,s);o(t,c,!1),vo(h,s,n);const d=await So(h,s);o(t,c,!1),r??(r=t),r===t||r.replaceChildren(),t.replaceChildren();let u=0;for(let e of d){("STYLE"===e.nodeName?r:t).appendChild(e),u++,s.renderYieldEveryMs>0&&u%8==0&&(await Do(),o(t,c,!1))}!function(e){const t=No.get(e);t&&e.removeEventListener("click",t);const r=t=>{const r=t;if(r.defaultPrevented||0!=r.button||r.metaKey||r.ctrlKey||r.shiftKey||r.altKey)return;const n=r.target;if(!(n instanceof Element))return;const a=n.closest('a[href^="#"]');if(!a||!e.contains(a))return;const s=a.getAttribute("href");if(!s||"#"==s)return;let o=s.substring(1);try{o=decodeURIComponent(o)}catch{return}const i=Array.from(e.querySelectorAll("[id]")).find(e=>e.id==o);i&&(r.preventDefault(),i.scrollIntoView({block:"start",inline:"nearest"}))};e.addEventListener("click",r),No.set(e,r)}(t),js(s)?(t.dataset.docxReviewEnabled="true",t.dataset.docxReviewMode=Us(s),t.dataset.docxReviewPresentation=s.reviewPresentation??"balloon"):(delete t.dataset.docxReviewEnabled,delete t.dataset.docxReviewMode,delete t.dataset.docxReviewPresentation),Ro(t,s.className);let m=null;if(s.awaitLayout)s.progress?.({phase:"layout",message:"Measuring rendered pages"}),m=await $o(t,s),o(t,c),Ro(t,s.className);else{const e=i(t,c);l(t,[],e).then(()=>mo(t,e)).catch(()=>{})}return function(e,t,r){To.get(e)?.();const n=e.ownerDocument.defaultView;if(!n||"function"!=typeof n.requestAnimationFrame||"function"!=typeof n.cancelAnimationFrame)return;let a=0,s=!1,o=!1,c=!1;const h=async()=>{if(a=0,s||o||!r.isCurrent()||!e.isConnected)return;const n=e.querySelector(`.${t.className}-wrapper`);if("true"!==n?.dataset.docxPaginating&&"true"!==n?.dataset.docxPaginationScheduled){o=!0,c=!1;try{const t=i(e,r);await l(e,[],t),await mo(e,t)}catch(e){r.isCurrent()&&"AbortError"!==e?.name&&(n&&(n.dataset.docxLayoutError=e?.message??"DOCX layout failed"),t.debug&&console.warn("DOCX layout refresh failed",e))}finally{o=!1,c&&d()}}},d=()=>{!s&&r.isCurrent()&&(o?c=!0:a||(a=n.requestAnimationFrame(()=>{h()})))},u=n.ResizeObserver?new n.ResizeObserver(d):null,m=e=>{const t=new Set(e.flatMap(e=>Array.from(e.addedNodes))),r=new Set(e.flatMap(e=>Array.from(e.removedNodes)));[...t,...r].some(e=>e.isConnected||!t.has(e)||!r.has(e))&&d()},p="function"==typeof n.MutationObserver?new n.MutationObserver(m):null;u?.observe(e),p?.observe(e,{childList:!0,subtree:!0}),n.addEventListener("resize",d),e.ownerDocument.fonts?.addEventListener?.("loadingdone",d);const f=()=>{s||(s=!0,n.cancelAnimationFrame(a),u?.disconnect(),p?.disconnect(),n.removeEventListener("resize",d),e.ownerDocument.fonts?.removeEventListener?.("loadingdone",d),r.signal.removeEventListener("abort",f))};r.signal.addEventListener("abort",f,{once:!0}),To.set(e,f)}(t,s,c),s.progress?.({phase:"done",current:m?.pageCount,total:m?.pageCount,message:"DOCX render complete"}),h},e.renderDocument=So,e.resolveDocxReviewState=_s,e.setDocxReviewMode=function(e,t){if(!e||"final"!==(r=t)&&"original"!==r&&"simple"!==r&&"all"!==r)return!1;var r;const n=Array.from(e.querySelectorAll("[data-docx-review-enabled='true']"));if("true"===e.dataset?.docxReviewEnabled&&n.unshift(e),0===n.length)return!1;for(const e of new Set(n))e.dataset.docxReviewMode=t;return!0},e.syncNumberingMarkerStyles=Ro,e.yieldToBrowser=Do});