Commit 38e8fbaa authored by liujiangnan's avatar liujiangnan

feat

parent d9682a2b
.thumbnail-container{position:absolute;bottom:-150px;left:0;right:0;height:140px;background-color:#505050e6;transition:bottom .3s ease;z-index:999}.thumbnail-container.show{bottom:0}.thumbnail-list{display:flex;overflow-x:auto;padding:10px;gap:10px;height:100%}.thumbnail-item{flex:0 0 auto;width:160px;height:120px;position:relative;cursor:pointer;transition:all .2s ease;padding:2px;border-radius:4px;background-color:transparent}.thumbnail-item img{width:100%;height:100%;object-fit:cover;border-radius:4px;border:2px solid transparent;transition:all .2s ease}.thumbnail-item.active{background-color:#ffffff4d;transform:scale(1.05);box-shadow:0 0 10px #ffffff80}.thumbnail-item.active img{border-color:#fff}.thumbnail-item:hover:not(.active){transform:scale(1.05);background-color:#ffffff1a}.thumbnail-item .page-number{position:absolute;bottom:5px;left:50%;transform:translate(-50%);background-color:#000000b3;color:#fff;padding:2px 8px;border-radius:10px;font-size:12px}.thumbnail-list::-webkit-scrollbar{height:8px}.thumbnail-list::-webkit-scrollbar-track{background:#0000001a;border-radius:4px}.thumbnail-list::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}.thumbnail-list::-webkit-scrollbar-thumb:hover{background:#ffffff80}.error-message[data-v-13144342]{display:flex;justify-content:center;align-items:center;height:100%;font-size:16px;color:#666}.page-buttons-container[data-v-13144342]{position:absolute;bottom:20px;right:20px;display:flex;gap:15px;z-index:1000}.page-button[data-v-13144342]{width:50px;height:50px;background-color:#50505099;border-radius:25px;border:1px solid rgba(255,255,255,.3);color:#ffffffe6;font-size:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 6px #00000026}.page-button[data-v-13144342]:hover{background-color:#3c3c3ccc;transform:scale(1.1)}.page-button[data-v-13144342]:active{transform:scale(.95)}.arrow[data-v-13144342]{border:solid white;border-width:0 2px 2px 0;display:inline-block;padding:4px}.left[data-v-13144342]{transform:rotate(135deg);margin-left:4px}.right[data-v-13144342]{transform:rotate(-45deg);margin-right:4px}.menu-icon[data-v-13144342]{width:18px;height:14px;position:relative;border-top:2px solid white;border-bottom:2px solid white}.menu-icon[data-v-13144342]:before{content:"";position:absolute;top:50%;left:0;width:100%;height:2px;background-color:#fff;transform:translateY(-50%)}.thumbnail-container[data-v-13144342]{position:fixed;bottom:-150px;left:0;right:0;height:140px;background-color:#505050e6;transition:bottom .3s ease;z-index:999}.thumbnail-container.show[data-v-13144342]{bottom:0}.thumbnail-list[data-v-13144342]{display:flex;overflow-x:auto;padding:10px;gap:10px;height:100%}.thumbnail-item[data-v-13144342]{flex:0 0 auto;width:100px;height:120px;position:relative;cursor:pointer;transition:all .2s ease;padding:2px;border-radius:4px}.thumbnail-item img[data-v-13144342]{width:100%;height:100%;object-fit:cover;border-radius:4px;border:2px solid transparent;transition:all .2s ease}.thumbnail-item.active[data-v-13144342]{background-color:#ffffff4d;transform:scale(1.05);box-shadow:0 0 10px #ffffff80}.thumbnail-item.active img[data-v-13144342]{border-color:#fff}.thumbnail-item .page-number[data-v-13144342]{position:absolute;bottom:5px;left:50%;transform:translate(-50%);background-color:#000000b3;color:#fff;padding:2px 8px;border-radius:10px;font-size:12px}.thumbnail-item[data-v-13144342]:hover:not(.active){transform:scale(1.05);background-color:#ffffff1a}.thumbnail-list[data-v-13144342]::-webkit-scrollbar{height:8px}.thumbnail-list[data-v-13144342]::-webkit-scrollbar-track{background:#0000001a;border-radius:4px}.thumbnail-list[data-v-13144342]::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}.thumbnail-list[data-v-13144342]::-webkit-scrollbar-thumb:hover{background:#ffffff80}
...@@ -55,7 +55,7 @@ section.${a}>footer { z-index: 1; } ...@@ -55,7 +55,7 @@ section.${a}>footer { z-index: 1; }
`),dn(n)}renderNumbering(a,n){var s="",u=[];for(var h of a){var y=`p.${this.numberingClass(h.id,h.level)}`,g="none";if(h.bullet){let S=`--${this.className}-${h.bullet.src}`.toLowerCase();s+=this.styleToString(`${y}:before`,{content:"' '",display:"inline-block",background:`var(${S})`},h.bullet.style),this.tasks.push(this.document.loadNumberingImage(h.bullet.src).then(O=>{var L=`${this.rootSelector} { ${S}: url(${O}) }`;n.appendChild(dn(L))}))}else if(h.levelText){let S=this.numberingCounter(h.id,h.level);const O=S+" "+(h.start-1);h.level>0&&(s+=this.styleToString(`p.${this.numberingClass(h.id,h.level-1)}`,{"counter-reset":O})),u.push(O),s+=this.styleToString(`${y}:before`,N({content:this.levelTextToContent(h.levelText,h.suff,h.id,this.numFormatToCssValue(h.format)),"counter-increment":S},h.rStyle))}else g=this.numFormatToCssValue(h.format);s+=this.styleToString(y,N({display:"list-item","list-style-position":"inside","list-style-type":g},h.pStyle))}return u.length>0&&(s+=this.styleToString(this.rootSelector,{"counter-reset":u.join(" ")})),dn(s)}renderStyles(a){var n,s="";const u=this.styleMap,h=fr(a.filter(O=>O.isDefault),O=>O.target);for(const O of a){var y=O.styles;if(O.linked){var g=O.linked&&u[O.linked];g?y=y.concat(g.styles):this.options.debug&&console.warn(`Can't find linked style ${O.linked}`)}for(const L of y){var S=`${(n=O.target)!=null?n:""}.${O.cssName}`;O.target!=L.target&&(S+=` ${L.target}`),h[O.target]==O&&(S=`.${this.className} ${O.target}, `+S),s+=this.styleToString(S,L.values)}}return dn(s)}renderNotes(a,n,s){var u=a.map(y=>n[y]).filter(y=>y);if(u.length>0){var h=this.createElement("ol",null,this.renderElements(u));s.appendChild(h)}}renderElement(a){switch(a.type){case Q.Paragraph:return this.renderParagraph(a);case Q.BookmarkStart:return this.renderBookmarkStart(a);case Q.BookmarkEnd:return null;case Q.Run:return this.renderRun(a);case Q.Table:return this.renderTable(a);case Q.Row:return this.renderTableRow(a);case Q.Cell:return this.renderTableCell(a);case Q.Hyperlink:return this.renderHyperlink(a);case Q.SmartTag:return this.renderSmartTag(a);case Q.Drawing:return this.renderDrawing(a);case Q.Image:return this.renderImage(a);case Q.Text:return this.renderText(a);case Q.Text:return this.renderText(a);case Q.DeletedText:return this.renderDeletedText(a);case Q.Tab:return this.renderTab(a);case Q.Symbol:return this.renderSymbol(a);case Q.Break:return this.renderBreak(a);case Q.Footer:return this.renderContainer(a,"footer");case Q.Header:return this.renderContainer(a,"header");case Q.Footnote:case Q.Endnote:return this.renderContainer(a,"li");case Q.FootnoteReference:return this.renderFootnoteReference(a);case Q.EndnoteReference:return this.renderEndnoteReference(a);case Q.NoBreakHyphen:return this.createElement("wbr");case Q.VmlPicture:return this.renderVmlPicture(a);case Q.VmlElement:return this.renderVmlElement(a);case Q.MmlMath:return this.renderContainerNS(a,ht.mathML,"math",{xmlns:ht.mathML});case Q.MmlMathParagraph:return this.renderContainer(a,"span");case Q.MmlFraction:return this.renderContainerNS(a,ht.mathML,"mfrac");case Q.MmlBase:return this.renderContainerNS(a,ht.mathML,a.parent.type==Q.MmlMatrixRow?"mtd":"mrow");case Q.MmlNumerator:case Q.MmlDenominator:case Q.MmlFunction:case Q.MmlLimit:case Q.MmlBox:return this.renderContainerNS(a,ht.mathML,"mrow");case Q.MmlGroupChar:return this.renderMmlGroupChar(a);case Q.MmlLimitLower:return this.renderContainerNS(a,ht.mathML,"munder");case Q.MmlMatrix:return this.renderContainerNS(a,ht.mathML,"mtable");case Q.MmlMatrixRow:return this.renderContainerNS(a,ht.mathML,"mtr");case Q.MmlRadical:return this.renderMmlRadical(a);case Q.MmlSuperscript:return this.renderContainerNS(a,ht.mathML,"msup");case Q.MmlSubscript:return this.renderContainerNS(a,ht.mathML,"msub");case Q.MmlDegree:case Q.MmlSuperArgument:case Q.MmlSubArgument:return this.renderContainerNS(a,ht.mathML,"mn");case Q.MmlFunctionName:return this.renderContainerNS(a,ht.mathML,"ms");case Q.MmlDelimiter:return this.renderMmlDelimiter(a);case Q.MmlRun:return this.renderMmlRun(a);case Q.MmlNary:return this.renderMmlNary(a);case Q.MmlPreSubSuper:return this.renderMmlPreSubSuper(a);case Q.MmlBar:return this.renderMmlBar(a);case Q.MmlEquationArray:return this.renderMllList(a);case Q.Inserted:return this.renderInserted(a);case Q.Deleted:return this.renderDeleted(a);case Q.CommentRangeStart:return this.renderCommentRangeStart(a);case Q.CommentRangeEnd:return this.renderCommentRangeEnd(a);case Q.CommentReference:return this.renderCommentReference(a)}return null}renderChildren(a,n){return this.renderElements(a.children,n)}renderElements(a,n){if(a==null)return null;var s=a.flatMap(u=>this.renderElement(u)).filter(u=>u!=null);return n&&On(n,s),s}renderContainer(a,n,s){return this.createElement(n,s,this.renderChildren(a))}renderContainerNS(a,n,s,u){return Rt(n,s,u,this.renderChildren(a))}renderParagraph(a){var n,s,u,h=this.createElement("p");const y=this.findStyle(a.styleName);a.tabs!=null||(a.tabs=(n=y==null?void 0:y.paragraphProps)==null?void 0:n.tabs),this.renderClass(a,h),this.renderChildren(a,h),this.renderStyleValues(a.cssStyle,h),this.renderCommonProperties(h.style,a);const g=(u=a.numbering)!=null?u:(s=y==null?void 0:y.paragraphProps)==null?void 0:s.numbering;return g&&h.classList.add(this.numberingClass(g.id,g.level)),h}renderRunProperties(a,n){this.renderCommonProperties(a,n)}renderCommonProperties(a,n){n!=null&&(n.color&&(a.color=n.color),n.fontSize&&(a["font-size"]=n.fontSize))}renderHyperlink(a){var n=this.createElement("a");if(this.renderChildren(a,n),this.renderStyleValues(a.cssStyle,n),a.href)n.href=a.href;else if(a.id){const s=this.document.documentPart.rels.find(u=>u.id==a.id&&u.targetMode==="External");n.href=s==null?void 0:s.target}return n}renderSmartTag(a){var n=this.createElement("span");return this.renderChildren(a,n),n}renderCommentRangeStart(a){var n;if(!this.options.renderComments)return null;const s=new Range;(n=this.commentHighlight)==null||n.add(s);const u=this.htmlDocument.createComment(`start of comment #${a.id}`);return this.later(()=>s.setStart(u,0)),this.commentMap[a.id]=s,u}renderCommentRangeEnd(a){if(!this.options.renderComments)return null;const n=this.commentMap[a.id],s=this.htmlDocument.createComment(`end of comment #${a.id}`);return this.later(()=>n==null?void 0:n.setEnd(s,0)),s}renderCommentReference(a){var n;if(!this.options.renderComments)return null;var s=(n=this.document.commentsPart)==null?void 0:n.commentMap[a.id];if(!s)return null;const u=new DocumentFragment,h=hn("span",{className:`${this.className}-comment-ref`},["💬"]),y=hn("div",{className:`${this.className}-comment-popover`});return this.renderCommentContent(s,y),u.appendChild(this.htmlDocument.createComment(`comment #${s.id} by ${s.author} on ${s.date}`)),u.appendChild(h),u.appendChild(y),u}renderCommentContent(a,n){n.appendChild(hn("div",{className:`${this.className}-comment-author`},[a.author])),n.appendChild(hn("div",{className:`${this.className}-comment-date`},[new Date(a.date).toLocaleString()])),this.renderChildren(a,n)}renderDrawing(a){var n=this.createElement("div");return n.style.display="inline-block",n.style.position="relative",n.style.textIndent="0px",this.renderChildren(a,n),this.renderStyleValues(a.cssStyle,n),n}renderImage(a){let n=this.createElement("img");return this.renderStyleValues(a.cssStyle,n),this.document&&this.tasks.push(this.document.loadDocumentImage(a.src,this.currentPart).then(s=>{n.src=s})),n}renderText(a){return this.htmlDocument.createTextNode(a.text)}renderDeletedText(a){return this.options.renderEndnotes?this.htmlDocument.createTextNode(a.text):null}renderBreak(a){return a.break=="textWrapping"?this.createElement("br"):null}renderInserted(a){return this.options.renderChanges?this.renderContainer(a,"ins"):this.renderChildren(a)}renderDeleted(a){return this.options.renderChanges?this.renderContainer(a,"del"):null}renderSymbol(a){var n=this.createElement("span");return n.style.fontFamily=a.font,n.innerHTML=`&#x${a.char};`,n}renderFootnoteReference(a){var n=this.createElement("sup");return this.currentFootnoteIds.push(a.id),n.textContent=`${this.currentFootnoteIds.length}`,n}renderEndnoteReference(a){var n=this.createElement("sup");return this.currentEndnoteIds.push(a.id),n.textContent=`${this.currentEndnoteIds.length}`,n}renderTab(a){var n,s=this.createElement("span");if(s.innerHTML=" ",this.options.experimental){s.className=this.tabStopClass();var u=(n=Ns(a,Q.Paragraph))==null?void 0:n.tabs;this.currentTabs.push({stops:u,span:s})}return s}renderBookmarkStart(a){var n=this.createElement("span");return n.id=a.name,n}renderRun(a){if(a.fieldRun)return null;const n=this.createElement("span");if(a.id&&(n.id=a.id),this.renderClass(a,n),this.renderStyleValues(a.cssStyle,n),a.verticalAlign){const s=this.createElement(a.verticalAlign);this.renderChildren(a,s),n.appendChild(s)}else this.renderChildren(a,n);return n}renderTable(a){let n=this.createElement("table");return this.tableCellPositions.push(this.currentCellPosition),this.tableVerticalMerges.push(this.currentVerticalMerge),this.currentVerticalMerge={},this.currentCellPosition={col:0,row:0},a.columns&&n.appendChild(this.renderTableColumns(a.columns)),this.renderClass(a,n),this.renderChildren(a,n),this.renderStyleValues(a.cssStyle,n),this.currentVerticalMerge=this.tableVerticalMerges.pop(),this.currentCellPosition=this.tableCellPositions.pop(),n}renderTableColumns(a){let n=this.createElement("colgroup");for(let s of a){let u=this.createElement("col");s.width&&(u.style.width=s.width),n.appendChild(u)}return n}renderTableRow(a){let n=this.createElement("tr");return this.currentCellPosition.col=0,this.renderClass(a,n),this.renderChildren(a,n),this.renderStyleValues(a.cssStyle,n),this.currentCellPosition.row++,n}renderTableCell(a){let n=this.createElement("td");const s=this.currentCellPosition.col;return a.verticalMerge?a.verticalMerge=="restart"?(this.currentVerticalMerge[s]=n,n.rowSpan=1):this.currentVerticalMerge[s]&&(this.currentVerticalMerge[s].rowSpan+=1,n.style.display="none"):this.currentVerticalMerge[s]=null,this.renderClass(a,n),this.renderChildren(a,n),this.renderStyleValues(a.cssStyle,n),a.span&&(n.colSpan=a.span),this.currentCellPosition.col+=n.colSpan,n}renderVmlPicture(a){var n=hn("div");return this.renderChildren(a,n),n}renderVmlElement(a){var n,s,u=ha("svg");u.setAttribute("style",a.cssStyleText);const h=this.renderVmlChildElement(a);return(n=a.imageHref)!=null&&n.id&&this.tasks.push((s=this.document)==null?void 0:s.loadDocumentImage(a.imageHref.id,this.currentPart).then(y=>h.setAttribute("href",y))),u.appendChild(h),requestAnimationFrame(()=>{const y=u.firstElementChild.getBBox();u.setAttribute("width",`${Math.ceil(y.x+y.width)}`),u.setAttribute("height",`${Math.ceil(y.y+y.height)}`)}),u}renderVmlChildElement(a){const n=ha(a.tagName);Object.entries(a.attrs).forEach(([s,u])=>n.setAttribute(s,u));for(let s of a.children)s.type==Q.VmlElement?n.appendChild(this.renderVmlChildElement(s)):n.appendChild(...qr(this.renderElement(s)));return n}renderMmlRadical(a){var n;const s=a.children.find(h=>h.type==Q.MmlBase);if((n=a.props)!=null&&n.hideDegree)return Rt(ht.mathML,"msqrt",null,this.renderElements([s]));const u=a.children.find(h=>h.type==Q.MmlDegree);return Rt(ht.mathML,"mroot",null,this.renderElements([s,u]))}renderMmlDelimiter(a){var n,s;const u=[];return u.push(Rt(ht.mathML,"mo",null,[(n=a.props.beginChar)!=null?n:"("])),u.push(...this.renderElements(a.children)),u.push(Rt(ht.mathML,"mo",null,[(s=a.props.endChar)!=null?s:")"])),Rt(ht.mathML,"mrow",null,u)}renderMmlNary(a){var n,s;const u=[],h=fr(a.children,D=>D.type),y=h[Q.MmlSuperArgument],g=h[Q.MmlSubArgument],S=y?Rt(ht.mathML,"mo",null,qr(this.renderElement(y))):null,O=g?Rt(ht.mathML,"mo",null,qr(this.renderElement(g))):null,L=Rt(ht.mathML,"mo",null,[(s=(n=a.props)==null?void 0:n.char)!=null?s:"∫"]);return S||O?u.push(Rt(ht.mathML,"munderover",null,[L,O,S])):S?u.push(Rt(ht.mathML,"mover",null,[L,S])):O?u.push(Rt(ht.mathML,"munder",null,[L,O])):u.push(L),u.push(...this.renderElements(h[Q.MmlBase].children)),Rt(ht.mathML,"mrow",null,u)}renderMmlPreSubSuper(a){const n=[],s=fr(a.children,O=>O.type),u=s[Q.MmlSuperArgument],h=s[Q.MmlSubArgument],y=u?Rt(ht.mathML,"mo",null,qr(this.renderElement(u))):null,g=h?Rt(ht.mathML,"mo",null,qr(this.renderElement(h))):null,S=Rt(ht.mathML,"mo",null);return n.push(Rt(ht.mathML,"msubsup",null,[S,g,y])),n.push(...this.renderElements(s[Q.MmlBase].children)),Rt(ht.mathML,"mrow",null,n)}renderMmlGroupChar(a){const n=a.props.verticalJustification==="bot"?"mover":"munder",s=this.renderContainerNS(a,ht.mathML,n);return a.props.char&&s.appendChild(Rt(ht.mathML,"mo",null,[a.props.char])),s}renderMmlBar(a){const n=this.renderContainerNS(a,ht.mathML,"mrow");switch(a.props.position){case"top":n.style.textDecoration="overline";break;case"bottom":n.style.textDecoration="underline";break}return n}renderMmlRun(a){const n=Rt(ht.mathML,"ms");return this.renderClass(a,n),this.renderStyleValues(a.cssStyle,n),this.renderChildren(a,n),n}renderMllList(a){const n=Rt(ht.mathML,"mtable");this.renderClass(a,n),this.renderStyleValues(a.cssStyle,n),this.renderChildren(a);for(let s of this.renderChildren(a))n.appendChild(Rt(ht.mathML,"mtr",null,[Rt(ht.mathML,"mtd",null,[s])]));return n}renderStyleValues(a,n){for(let s in a)s.startsWith("$")?n.setAttribute(s.slice(1),a[s]):n.style[s]=a[s]}renderClass(a,n){a.className&&(n.className=a.className),a.styleName&&n.classList.add(this.processStyleName(a.styleName))}findStyle(a){var n;return a&&((n=this.styleMap)==null?void 0:n[a])}numberingClass(a,n){return`${this.className}-num-${a}-${n}`}tabStopClass(){return`${this.className}-tab-stop`}styleToString(a,n,s=null){let u=`${a} {\r `),dn(n)}renderNumbering(a,n){var s="",u=[];for(var h of a){var y=`p.${this.numberingClass(h.id,h.level)}`,g="none";if(h.bullet){let S=`--${this.className}-${h.bullet.src}`.toLowerCase();s+=this.styleToString(`${y}:before`,{content:"' '",display:"inline-block",background:`var(${S})`},h.bullet.style),this.tasks.push(this.document.loadNumberingImage(h.bullet.src).then(O=>{var L=`${this.rootSelector} { ${S}: url(${O}) }`;n.appendChild(dn(L))}))}else if(h.levelText){let S=this.numberingCounter(h.id,h.level);const O=S+" "+(h.start-1);h.level>0&&(s+=this.styleToString(`p.${this.numberingClass(h.id,h.level-1)}`,{"counter-reset":O})),u.push(O),s+=this.styleToString(`${y}:before`,N({content:this.levelTextToContent(h.levelText,h.suff,h.id,this.numFormatToCssValue(h.format)),"counter-increment":S},h.rStyle))}else g=this.numFormatToCssValue(h.format);s+=this.styleToString(y,N({display:"list-item","list-style-position":"inside","list-style-type":g},h.pStyle))}return u.length>0&&(s+=this.styleToString(this.rootSelector,{"counter-reset":u.join(" ")})),dn(s)}renderStyles(a){var n,s="";const u=this.styleMap,h=fr(a.filter(O=>O.isDefault),O=>O.target);for(const O of a){var y=O.styles;if(O.linked){var g=O.linked&&u[O.linked];g?y=y.concat(g.styles):this.options.debug&&console.warn(`Can't find linked style ${O.linked}`)}for(const L of y){var S=`${(n=O.target)!=null?n:""}.${O.cssName}`;O.target!=L.target&&(S+=` ${L.target}`),h[O.target]==O&&(S=`.${this.className} ${O.target}, `+S),s+=this.styleToString(S,L.values)}}return dn(s)}renderNotes(a,n,s){var u=a.map(y=>n[y]).filter(y=>y);if(u.length>0){var h=this.createElement("ol",null,this.renderElements(u));s.appendChild(h)}}renderElement(a){switch(a.type){case Q.Paragraph:return this.renderParagraph(a);case Q.BookmarkStart:return this.renderBookmarkStart(a);case Q.BookmarkEnd:return null;case Q.Run:return this.renderRun(a);case Q.Table:return this.renderTable(a);case Q.Row:return this.renderTableRow(a);case Q.Cell:return this.renderTableCell(a);case Q.Hyperlink:return this.renderHyperlink(a);case Q.SmartTag:return this.renderSmartTag(a);case Q.Drawing:return this.renderDrawing(a);case Q.Image:return this.renderImage(a);case Q.Text:return this.renderText(a);case Q.Text:return this.renderText(a);case Q.DeletedText:return this.renderDeletedText(a);case Q.Tab:return this.renderTab(a);case Q.Symbol:return this.renderSymbol(a);case Q.Break:return this.renderBreak(a);case Q.Footer:return this.renderContainer(a,"footer");case Q.Header:return this.renderContainer(a,"header");case Q.Footnote:case Q.Endnote:return this.renderContainer(a,"li");case Q.FootnoteReference:return this.renderFootnoteReference(a);case Q.EndnoteReference:return this.renderEndnoteReference(a);case Q.NoBreakHyphen:return this.createElement("wbr");case Q.VmlPicture:return this.renderVmlPicture(a);case Q.VmlElement:return this.renderVmlElement(a);case Q.MmlMath:return this.renderContainerNS(a,ht.mathML,"math",{xmlns:ht.mathML});case Q.MmlMathParagraph:return this.renderContainer(a,"span");case Q.MmlFraction:return this.renderContainerNS(a,ht.mathML,"mfrac");case Q.MmlBase:return this.renderContainerNS(a,ht.mathML,a.parent.type==Q.MmlMatrixRow?"mtd":"mrow");case Q.MmlNumerator:case Q.MmlDenominator:case Q.MmlFunction:case Q.MmlLimit:case Q.MmlBox:return this.renderContainerNS(a,ht.mathML,"mrow");case Q.MmlGroupChar:return this.renderMmlGroupChar(a);case Q.MmlLimitLower:return this.renderContainerNS(a,ht.mathML,"munder");case Q.MmlMatrix:return this.renderContainerNS(a,ht.mathML,"mtable");case Q.MmlMatrixRow:return this.renderContainerNS(a,ht.mathML,"mtr");case Q.MmlRadical:return this.renderMmlRadical(a);case Q.MmlSuperscript:return this.renderContainerNS(a,ht.mathML,"msup");case Q.MmlSubscript:return this.renderContainerNS(a,ht.mathML,"msub");case Q.MmlDegree:case Q.MmlSuperArgument:case Q.MmlSubArgument:return this.renderContainerNS(a,ht.mathML,"mn");case Q.MmlFunctionName:return this.renderContainerNS(a,ht.mathML,"ms");case Q.MmlDelimiter:return this.renderMmlDelimiter(a);case Q.MmlRun:return this.renderMmlRun(a);case Q.MmlNary:return this.renderMmlNary(a);case Q.MmlPreSubSuper:return this.renderMmlPreSubSuper(a);case Q.MmlBar:return this.renderMmlBar(a);case Q.MmlEquationArray:return this.renderMllList(a);case Q.Inserted:return this.renderInserted(a);case Q.Deleted:return this.renderDeleted(a);case Q.CommentRangeStart:return this.renderCommentRangeStart(a);case Q.CommentRangeEnd:return this.renderCommentRangeEnd(a);case Q.CommentReference:return this.renderCommentReference(a)}return null}renderChildren(a,n){return this.renderElements(a.children,n)}renderElements(a,n){if(a==null)return null;var s=a.flatMap(u=>this.renderElement(u)).filter(u=>u!=null);return n&&On(n,s),s}renderContainer(a,n,s){return this.createElement(n,s,this.renderChildren(a))}renderContainerNS(a,n,s,u){return Rt(n,s,u,this.renderChildren(a))}renderParagraph(a){var n,s,u,h=this.createElement("p");const y=this.findStyle(a.styleName);a.tabs!=null||(a.tabs=(n=y==null?void 0:y.paragraphProps)==null?void 0:n.tabs),this.renderClass(a,h),this.renderChildren(a,h),this.renderStyleValues(a.cssStyle,h),this.renderCommonProperties(h.style,a);const g=(u=a.numbering)!=null?u:(s=y==null?void 0:y.paragraphProps)==null?void 0:s.numbering;return g&&h.classList.add(this.numberingClass(g.id,g.level)),h}renderRunProperties(a,n){this.renderCommonProperties(a,n)}renderCommonProperties(a,n){n!=null&&(n.color&&(a.color=n.color),n.fontSize&&(a["font-size"]=n.fontSize))}renderHyperlink(a){var n=this.createElement("a");if(this.renderChildren(a,n),this.renderStyleValues(a.cssStyle,n),a.href)n.href=a.href;else if(a.id){const s=this.document.documentPart.rels.find(u=>u.id==a.id&&u.targetMode==="External");n.href=s==null?void 0:s.target}return n}renderSmartTag(a){var n=this.createElement("span");return this.renderChildren(a,n),n}renderCommentRangeStart(a){var n;if(!this.options.renderComments)return null;const s=new Range;(n=this.commentHighlight)==null||n.add(s);const u=this.htmlDocument.createComment(`start of comment #${a.id}`);return this.later(()=>s.setStart(u,0)),this.commentMap[a.id]=s,u}renderCommentRangeEnd(a){if(!this.options.renderComments)return null;const n=this.commentMap[a.id],s=this.htmlDocument.createComment(`end of comment #${a.id}`);return this.later(()=>n==null?void 0:n.setEnd(s,0)),s}renderCommentReference(a){var n;if(!this.options.renderComments)return null;var s=(n=this.document.commentsPart)==null?void 0:n.commentMap[a.id];if(!s)return null;const u=new DocumentFragment,h=hn("span",{className:`${this.className}-comment-ref`},["💬"]),y=hn("div",{className:`${this.className}-comment-popover`});return this.renderCommentContent(s,y),u.appendChild(this.htmlDocument.createComment(`comment #${s.id} by ${s.author} on ${s.date}`)),u.appendChild(h),u.appendChild(y),u}renderCommentContent(a,n){n.appendChild(hn("div",{className:`${this.className}-comment-author`},[a.author])),n.appendChild(hn("div",{className:`${this.className}-comment-date`},[new Date(a.date).toLocaleString()])),this.renderChildren(a,n)}renderDrawing(a){var n=this.createElement("div");return n.style.display="inline-block",n.style.position="relative",n.style.textIndent="0px",this.renderChildren(a,n),this.renderStyleValues(a.cssStyle,n),n}renderImage(a){let n=this.createElement("img");return this.renderStyleValues(a.cssStyle,n),this.document&&this.tasks.push(this.document.loadDocumentImage(a.src,this.currentPart).then(s=>{n.src=s})),n}renderText(a){return this.htmlDocument.createTextNode(a.text)}renderDeletedText(a){return this.options.renderEndnotes?this.htmlDocument.createTextNode(a.text):null}renderBreak(a){return a.break=="textWrapping"?this.createElement("br"):null}renderInserted(a){return this.options.renderChanges?this.renderContainer(a,"ins"):this.renderChildren(a)}renderDeleted(a){return this.options.renderChanges?this.renderContainer(a,"del"):null}renderSymbol(a){var n=this.createElement("span");return n.style.fontFamily=a.font,n.innerHTML=`&#x${a.char};`,n}renderFootnoteReference(a){var n=this.createElement("sup");return this.currentFootnoteIds.push(a.id),n.textContent=`${this.currentFootnoteIds.length}`,n}renderEndnoteReference(a){var n=this.createElement("sup");return this.currentEndnoteIds.push(a.id),n.textContent=`${this.currentEndnoteIds.length}`,n}renderTab(a){var n,s=this.createElement("span");if(s.innerHTML=" ",this.options.experimental){s.className=this.tabStopClass();var u=(n=Ns(a,Q.Paragraph))==null?void 0:n.tabs;this.currentTabs.push({stops:u,span:s})}return s}renderBookmarkStart(a){var n=this.createElement("span");return n.id=a.name,n}renderRun(a){if(a.fieldRun)return null;const n=this.createElement("span");if(a.id&&(n.id=a.id),this.renderClass(a,n),this.renderStyleValues(a.cssStyle,n),a.verticalAlign){const s=this.createElement(a.verticalAlign);this.renderChildren(a,s),n.appendChild(s)}else this.renderChildren(a,n);return n}renderTable(a){let n=this.createElement("table");return this.tableCellPositions.push(this.currentCellPosition),this.tableVerticalMerges.push(this.currentVerticalMerge),this.currentVerticalMerge={},this.currentCellPosition={col:0,row:0},a.columns&&n.appendChild(this.renderTableColumns(a.columns)),this.renderClass(a,n),this.renderChildren(a,n),this.renderStyleValues(a.cssStyle,n),this.currentVerticalMerge=this.tableVerticalMerges.pop(),this.currentCellPosition=this.tableCellPositions.pop(),n}renderTableColumns(a){let n=this.createElement("colgroup");for(let s of a){let u=this.createElement("col");s.width&&(u.style.width=s.width),n.appendChild(u)}return n}renderTableRow(a){let n=this.createElement("tr");return this.currentCellPosition.col=0,this.renderClass(a,n),this.renderChildren(a,n),this.renderStyleValues(a.cssStyle,n),this.currentCellPosition.row++,n}renderTableCell(a){let n=this.createElement("td");const s=this.currentCellPosition.col;return a.verticalMerge?a.verticalMerge=="restart"?(this.currentVerticalMerge[s]=n,n.rowSpan=1):this.currentVerticalMerge[s]&&(this.currentVerticalMerge[s].rowSpan+=1,n.style.display="none"):this.currentVerticalMerge[s]=null,this.renderClass(a,n),this.renderChildren(a,n),this.renderStyleValues(a.cssStyle,n),a.span&&(n.colSpan=a.span),this.currentCellPosition.col+=n.colSpan,n}renderVmlPicture(a){var n=hn("div");return this.renderChildren(a,n),n}renderVmlElement(a){var n,s,u=ha("svg");u.setAttribute("style",a.cssStyleText);const h=this.renderVmlChildElement(a);return(n=a.imageHref)!=null&&n.id&&this.tasks.push((s=this.document)==null?void 0:s.loadDocumentImage(a.imageHref.id,this.currentPart).then(y=>h.setAttribute("href",y))),u.appendChild(h),requestAnimationFrame(()=>{const y=u.firstElementChild.getBBox();u.setAttribute("width",`${Math.ceil(y.x+y.width)}`),u.setAttribute("height",`${Math.ceil(y.y+y.height)}`)}),u}renderVmlChildElement(a){const n=ha(a.tagName);Object.entries(a.attrs).forEach(([s,u])=>n.setAttribute(s,u));for(let s of a.children)s.type==Q.VmlElement?n.appendChild(this.renderVmlChildElement(s)):n.appendChild(...qr(this.renderElement(s)));return n}renderMmlRadical(a){var n;const s=a.children.find(h=>h.type==Q.MmlBase);if((n=a.props)!=null&&n.hideDegree)return Rt(ht.mathML,"msqrt",null,this.renderElements([s]));const u=a.children.find(h=>h.type==Q.MmlDegree);return Rt(ht.mathML,"mroot",null,this.renderElements([s,u]))}renderMmlDelimiter(a){var n,s;const u=[];return u.push(Rt(ht.mathML,"mo",null,[(n=a.props.beginChar)!=null?n:"("])),u.push(...this.renderElements(a.children)),u.push(Rt(ht.mathML,"mo",null,[(s=a.props.endChar)!=null?s:")"])),Rt(ht.mathML,"mrow",null,u)}renderMmlNary(a){var n,s;const u=[],h=fr(a.children,D=>D.type),y=h[Q.MmlSuperArgument],g=h[Q.MmlSubArgument],S=y?Rt(ht.mathML,"mo",null,qr(this.renderElement(y))):null,O=g?Rt(ht.mathML,"mo",null,qr(this.renderElement(g))):null,L=Rt(ht.mathML,"mo",null,[(s=(n=a.props)==null?void 0:n.char)!=null?s:"∫"]);return S||O?u.push(Rt(ht.mathML,"munderover",null,[L,O,S])):S?u.push(Rt(ht.mathML,"mover",null,[L,S])):O?u.push(Rt(ht.mathML,"munder",null,[L,O])):u.push(L),u.push(...this.renderElements(h[Q.MmlBase].children)),Rt(ht.mathML,"mrow",null,u)}renderMmlPreSubSuper(a){const n=[],s=fr(a.children,O=>O.type),u=s[Q.MmlSuperArgument],h=s[Q.MmlSubArgument],y=u?Rt(ht.mathML,"mo",null,qr(this.renderElement(u))):null,g=h?Rt(ht.mathML,"mo",null,qr(this.renderElement(h))):null,S=Rt(ht.mathML,"mo",null);return n.push(Rt(ht.mathML,"msubsup",null,[S,g,y])),n.push(...this.renderElements(s[Q.MmlBase].children)),Rt(ht.mathML,"mrow",null,n)}renderMmlGroupChar(a){const n=a.props.verticalJustification==="bot"?"mover":"munder",s=this.renderContainerNS(a,ht.mathML,n);return a.props.char&&s.appendChild(Rt(ht.mathML,"mo",null,[a.props.char])),s}renderMmlBar(a){const n=this.renderContainerNS(a,ht.mathML,"mrow");switch(a.props.position){case"top":n.style.textDecoration="overline";break;case"bottom":n.style.textDecoration="underline";break}return n}renderMmlRun(a){const n=Rt(ht.mathML,"ms");return this.renderClass(a,n),this.renderStyleValues(a.cssStyle,n),this.renderChildren(a,n),n}renderMllList(a){const n=Rt(ht.mathML,"mtable");this.renderClass(a,n),this.renderStyleValues(a.cssStyle,n),this.renderChildren(a);for(let s of this.renderChildren(a))n.appendChild(Rt(ht.mathML,"mtr",null,[Rt(ht.mathML,"mtd",null,[s])]));return n}renderStyleValues(a,n){for(let s in a)s.startsWith("$")?n.setAttribute(s.slice(1),a[s]):n.style[s]=a[s]}renderClass(a,n){a.className&&(n.className=a.className),a.styleName&&n.classList.add(this.processStyleName(a.styleName))}findStyle(a){var n;return a&&((n=this.styleMap)==null?void 0:n[a])}numberingClass(a,n){return`${this.className}-num-${a}-${n}`}tabStopClass(){return`${this.className}-tab-stop`}styleToString(a,n,s=null){let u=`${a} {\r
`;for(const h in n)h.startsWith("$")||(u+=` ${h}: ${n[h]};\r `;for(const h in n)h.startsWith("$")||(u+=` ${h}: ${n[h]};\r
`);return s&&(u+=s),u+`}\r `);return s&&(u+=s),u+`}\r
`}numberingCounter(a,n){return`${this.className}-num-${a}-${n}`}levelTextToContent(a,n,s,u){var h;const y={tab:"\\9",space:"\\a0"};var g=a.replace(/%\d*/g,S=>{let O=parseInt(S.substring(1),10)-1;return`"counter(${this.numberingCounter(s,O)}, ${u})"`});return`"${g}${(h=y[n])!=null?h:""}"`}numFormatToCssValue(a){var n,s={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"};return(n=s[a])!=null?n:a}refreshTabStops(){this.options.experimental&&(clearTimeout(this.tabsTimeout),this.tabsTimeout=setTimeout(()=>{const a=Rs();for(let n of this.currentTabs)Ls(n.span,n.stops,this.defaultTabSize,a)},500))}later(a){this.postRenderTasks.push(a)}}function hn(m,a,n){return Rt(void 0,m,a,n)}function ha(m,a,n){return Rt(ht.svg,m,a,n)}function Rt(m,a,n,s){var u=m?document.createElementNS(m,a):document.createElement(a);return Object.assign(u,n),s&&On(u,s),u}function ji(m){m.innerHTML=""}function On(m,a){a.forEach(n=>m.appendChild(ua(n)?document.createTextNode(n):n))}function dn(m){return hn("style",{innerHTML:m})}function Kn(m,a){m.appendChild(document.createComment(a))}function Ns(m,a){for(var n=m.parent;n!=null&&n.type!=a;)n=n.parent;return n}const Mi={ignoreHeight:!1,ignoreWidth:!1,ignoreFonts:!1,breakPages:!0,debug:!1,experimental:!1,className:"docx",inWrapper:!0,trimXmlDeclaration:!0,ignoreLastRenderedPageBreak:!0,renderHeaders:!0,renderFooters:!0,renderFootnotes:!0,renderEndnotes:!0,useBase64URL:!1,renderChanges:!1,renderComments:!1};function Bs(m,a){const n=N(N({},Mi),a);return Na.load(m,new Is(n),n)}function Us(m,a,n,s){return se(this,null,function*(){const u=N(N({},Mi),s),h=new Ds(window.document);return h.render(m,a,n,u),Promise.allSettled(h.tasks)})}function Hs(m,a,n,s){return se(this,null,function*(){const u=yield Bs(m,s);return yield Us(u,a,n,s),u})}const $s={ignoreLastRenderedPageBreak:!1};function Xs(m,a={}){return typeof m=="string"?zs(m,a):Promise.resolve(m)}function zs(m,a){return fetch(m,a).then(n=>n.status!==200?Promise.reject(n):n)}function Gs(m){return se(this,null,function*(){let a;return m instanceof Blob?a=m:m instanceof Response?a=yield m.blob():m instanceof ArrayBuffer&&(a=new Blob([m])),a})}function qs(m,a,n={}){if(!m)return a.innerHTML="",Promise.resolve();let s;return m instanceof Blob?s=m:m instanceof Response?s=m.blob():m instanceof ArrayBuffer&&(s=new Blob([m])),Hs(s,a,a,N(N({},$s),n))}const Cn={getData:Xs,render:qs,getBlob:Gs};function Ws(m,a){return se(this,null,function*(){a&&(a instanceof ArrayBuffer&&(a=new Blob([a])),Vs(m,URL.createObjectURL(a)))})}function Vs(m,a){let n=document.createElement("a");n.download=m,n.style.display="none",n.href=a,document.body.appendChild(n),n.click(),document.body.removeChild(n)}const Ks=(m,a)=>{const n=m.__vccOpts||m;for(const[s,u]of a)n[s]=u;return n},Ys=r.defineComponent({name:"VueOfficeDocx",props:{src:[String,ArrayBuffer,Blob],requestOptions:{type:Object,default:()=>({})},options:{type:Object,default:()=>({})}},emits:["rendered","error"],setup(m,{emit:a}){const n=r.ref(null);let s=null;function u(){let y=n.value;Cn.getData(m.src,m.requestOptions).then(g=>se(this,null,function*(){s=yield Cn.getBlob(g),Cn.render(s,y,m.options).then(()=>{a("rendered")}).catch(S=>{Cn.render("",y,m.options),a("error",S)})})).catch(g=>{Cn.render("",y,m.options),a("error",g)})}r.onMounted(()=>{m.src&&u()}),r.watch(()=>m.src,()=>{m.src?u():Cn.render("",n.value,m.options).then(()=>{a("rendered")})});function h(y){Ws(y||`vue-office-docx-${new Date().getTime()}.docx`,s)}return{rootRef:n,save:h}}}),Js={class:"vue-office-docx"},Zs={class:"vue-office-docx-main",ref:"rootRef"};function Qs(m,a,n,s,u,h){return o.openBlock(),o.createElementBlock("div",Js,[o.createElementVNode("div",Zs,null,512)])}const da=Ks(Ys,[["render",Qs]]);return da.install=function(m){m.component(da.name,da)},da})})(Wp);var Ux=Wp.exports;const Hx=zp(Ux),$x=(e,t)=>{const r=e.__vccOpts||e;for(const[o,l]of t)r[o]=l;return r},Xx={key:2,style:{height:"100vh",position:"relative"}},zx={key:0,class:"error-message"},Gx=["src"],qx={__name:"App",setup(e){const t=Jr(""),r=Jr(""),o=Jr(null),l=Jr(!1),f=Jr(1),v=Jr(0);function w(){const ne=document.querySelector(".thumbnail-container");if(ne.classList.toggle("show"),ne.classList.contains("show")){const H=o.value.contentWindow.GetCurPg(),z=document.querySelector(`.thumbnail-item:nth-child(${H+1})`);z&&setTimeout(()=>{z.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},100)}}function _(){try{if(o.value){const ne=o.value.contentDocument.getElementById("main");ne&&(v.value=ne.children.length,U())}}catch(ne){console.error("无法访问 iframe 内容:",ne)}}function U(){if(!r.value)return;const ne=r.value.replace("index.html","thum/"),H=document.querySelector(".thumbnail-list");H.innerHTML="";const z=o.value.contentWindow.GetCurPg()||0;z===0&&o.value.contentWindow.syncExec(0,-1,-1,!1);for(let ie=1;ie<=v.value;ie++){const be=document.createElement("div");be.className=`thumbnail-item ${ie===z+1?"active":""}`,be.innerHTML=` `}numberingCounter(a,n){return`${this.className}-num-${a}-${n}`}levelTextToContent(a,n,s,u){var h;const y={tab:"\\9",space:"\\a0"};var g=a.replace(/%\d*/g,S=>{let O=parseInt(S.substring(1),10)-1;return`"counter(${this.numberingCounter(s,O)}, ${u})"`});return`"${g}${(h=y[n])!=null?h:""}"`}numFormatToCssValue(a){var n,s={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"};return(n=s[a])!=null?n:a}refreshTabStops(){this.options.experimental&&(clearTimeout(this.tabsTimeout),this.tabsTimeout=setTimeout(()=>{const a=Rs();for(let n of this.currentTabs)Ls(n.span,n.stops,this.defaultTabSize,a)},500))}later(a){this.postRenderTasks.push(a)}}function hn(m,a,n){return Rt(void 0,m,a,n)}function ha(m,a,n){return Rt(ht.svg,m,a,n)}function Rt(m,a,n,s){var u=m?document.createElementNS(m,a):document.createElement(a);return Object.assign(u,n),s&&On(u,s),u}function ji(m){m.innerHTML=""}function On(m,a){a.forEach(n=>m.appendChild(ua(n)?document.createTextNode(n):n))}function dn(m){return hn("style",{innerHTML:m})}function Kn(m,a){m.appendChild(document.createComment(a))}function Ns(m,a){for(var n=m.parent;n!=null&&n.type!=a;)n=n.parent;return n}const Mi={ignoreHeight:!1,ignoreWidth:!1,ignoreFonts:!1,breakPages:!0,debug:!1,experimental:!1,className:"docx",inWrapper:!0,trimXmlDeclaration:!0,ignoreLastRenderedPageBreak:!0,renderHeaders:!0,renderFooters:!0,renderFootnotes:!0,renderEndnotes:!0,useBase64URL:!1,renderChanges:!1,renderComments:!1};function Bs(m,a){const n=N(N({},Mi),a);return Na.load(m,new Is(n),n)}function Us(m,a,n,s){return se(this,null,function*(){const u=N(N({},Mi),s),h=new Ds(window.document);return h.render(m,a,n,u),Promise.allSettled(h.tasks)})}function Hs(m,a,n,s){return se(this,null,function*(){const u=yield Bs(m,s);return yield Us(u,a,n,s),u})}const $s={ignoreLastRenderedPageBreak:!1};function Xs(m,a={}){return typeof m=="string"?zs(m,a):Promise.resolve(m)}function zs(m,a){return fetch(m,a).then(n=>n.status!==200?Promise.reject(n):n)}function Gs(m){return se(this,null,function*(){let a;return m instanceof Blob?a=m:m instanceof Response?a=yield m.blob():m instanceof ArrayBuffer&&(a=new Blob([m])),a})}function qs(m,a,n={}){if(!m)return a.innerHTML="",Promise.resolve();let s;return m instanceof Blob?s=m:m instanceof Response?s=m.blob():m instanceof ArrayBuffer&&(s=new Blob([m])),Hs(s,a,a,N(N({},$s),n))}const Cn={getData:Xs,render:qs,getBlob:Gs};function Ws(m,a){return se(this,null,function*(){a&&(a instanceof ArrayBuffer&&(a=new Blob([a])),Vs(m,URL.createObjectURL(a)))})}function Vs(m,a){let n=document.createElement("a");n.download=m,n.style.display="none",n.href=a,document.body.appendChild(n),n.click(),document.body.removeChild(n)}const Ks=(m,a)=>{const n=m.__vccOpts||m;for(const[s,u]of a)n[s]=u;return n},Ys=r.defineComponent({name:"VueOfficeDocx",props:{src:[String,ArrayBuffer,Blob],requestOptions:{type:Object,default:()=>({})},options:{type:Object,default:()=>({})}},emits:["rendered","error"],setup(m,{emit:a}){const n=r.ref(null);let s=null;function u(){let y=n.value;Cn.getData(m.src,m.requestOptions).then(g=>se(this,null,function*(){s=yield Cn.getBlob(g),Cn.render(s,y,m.options).then(()=>{a("rendered")}).catch(S=>{Cn.render("",y,m.options),a("error",S)})})).catch(g=>{Cn.render("",y,m.options),a("error",g)})}r.onMounted(()=>{m.src&&u()}),r.watch(()=>m.src,()=>{m.src?u():Cn.render("",n.value,m.options).then(()=>{a("rendered")})});function h(y){Ws(y||`vue-office-docx-${new Date().getTime()}.docx`,s)}return{rootRef:n,save:h}}}),Js={class:"vue-office-docx"},Zs={class:"vue-office-docx-main",ref:"rootRef"};function Qs(m,a,n,s,u,h){return o.openBlock(),o.createElementBlock("div",Js,[o.createElementVNode("div",Zs,null,512)])}const da=Ks(Ys,[["render",Qs]]);return da.install=function(m){m.component(da.name,da)},da})})(Wp);var Ux=Wp.exports;const Hx=zp(Ux),$x=(e,t)=>{const r=e.__vccOpts||e;for(const[o,l]of t)r[o]=l;return r},Xx={key:2,style:{height:"100vh",position:"relative",overflow:"hidden"}},zx={key:0,class:"error-message"},Gx=["src"],qx={__name:"App",setup(e){const t=Jr(""),r=Jr(""),o=Jr(null),l=Jr(!1),f=Jr(1),v=Jr(0);function w(){const ne=document.querySelector(".thumbnail-container");if(ne.classList.toggle("show"),ne.classList.contains("show")){const H=o.value.contentWindow.GetCurPg(),z=document.querySelector(`.thumbnail-item:nth-child(${H+1})`);z&&setTimeout(()=>{z.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},100)}}function _(){try{if(o.value){const ne=o.value.contentDocument.getElementById("main");ne&&(v.value=ne.children.length,U())}}catch(ne){console.error("无法访问 iframe 内容:",ne)}}function U(){if(!r.value)return;const ne=r.value.replace("index.html","thum/"),H=document.querySelector(".thumbnail-list");H.innerHTML="";const z=o.value.contentWindow.GetCurPg()||0;z===0&&o.value.contentWindow.syncExec(0,-1,-1,!1);for(let ie=1;ie<=v.value;ie++){const be=document.createElement("div");be.className=`thumbnail-item ${ie===z+1?"active":""}`,be.innerHTML=`
<img src="${ne}${ie}.jpg" alt="Page ${ie}"> <img src="${ne}${ie}.jpg" alt="Page ${ie}">
<div class="page-number">${ie}</div> <div class="page-number">${ie}</div>
`,be.addEventListener("click",()=>{N(ie)}),H.appendChild(be)}M(z+1)}function M(ne){f.value=ne,document.querySelectorAll(".thumbnail-item").forEach((z,ie)=>{ie+1===ne?z.classList.add("active"):z.classList.remove("active")})}function N(ne){const H=o.value.contentWindow.GetCurPg();H!=ne-1&&(o.value.contentWindow.resetPage(H),o.value.contentWindow.syncExec(ne-1,-1,-1,!1),M(ne)),w()}function K(){if(o.value){o.value.contentWindow.ExecGoBack();const ne=o.value.contentWindow.GetCurPg();M(ne+1)}}function se(){if(o.value){o.value.contentWindow.ExecNext();const ne=o.value.contentWindow.GetCurPg();M(ne+1)}}Ca(o,ne=>{ne&&setTimeout(()=>{_(),o.value.contentDocument.addEventListener("gopageEvent",()=>{const H=o.value.contentWindow.GetCurPg();M(H+1)}),window.air.hideAirClassLoading("play_office",null)},1e3)});async function ve(ne){try{const z=await(await fetch(ne)).text();return z.includes("<Error>")&&z.includes("<Code>NoSuchKey</Code>")?(l.value=!0,window.air.hideAirClassLoading("play_office",null),!1):!0}catch(H){return console.error("检查URL时出错:",H),l.value=!0,window.air.hideAirClassLoading("play_office",null),!1}}window.courseware.getData(async ne=>{t.value=ne==null?void 0:ne.url,r.value=ne==null?void 0:ne.ppt_html,r.value&&t.value.toLowerCase().includes(".ppt")&&await ve(r.value)},"play_office");function xe(){window.air.hideAirClassLoading("play_office",null)}function Ke(){}const Xe=ne=>{try{const H=new URL(ne);return`${H.pathname}${H.search}${H.hash}`}catch{return ne}};return(ne,H)=>(Zr(),Ja(er,null,[t.value.indexOf(".pdf")>0||t.value.indexOf(".PDF")>0?(Zr(),Ia(Ta(Bx),{key:0,src:t.value,style:{height:"100vh"},onRendered:xe,onError:Ke},null,8,["src"])):bo("",!0),t.value.indexOf(".docx")>0||t.value.indexOf(".DOCX")>0?(Zr(),Ia(Ta(Hx),{key:1,src:t.value,style:{height:"100vh"},onRendered:xe,onError:Ke},null,8,["src"])):bo("",!0),t.value.indexOf(".ppt")>0||t.value.indexOf(".PPT")>0||t.value.indexOf(".pptx")>0||t.value.indexOf(".PPTX")>0?(Zr(),Ja("div",Xx,[l.value?(Zr(),Ja("div",zx," 课件正在生成中,请过一会儿再尝试 ")):(Zr(),Ja("iframe",{key:1,ref_key:"ppt_iframe",ref:o,frameborder:"0",width:"100%",height:"100%",src:Xe(r.value)},null,8,Gx)),Hr("div",{class:"page-buttons-container"},[Hr("button",{class:"page-button thumbnail-button",onClick:w},H[0]||(H[0]=[Hr("span",{class:"menu-icon"},null,-1)])),Hr("button",{class:"page-button prev-button",onClick:K},H[1]||(H[1]=[Hr("span",{class:"arrow left"},null,-1)])),Hr("button",{class:"page-button next-button",onClick:se},H[2]||(H[2]=[Hr("span",{class:"arrow right"},null,-1)]))]),H[3]||(H[3]=Hr("div",{class:"thumbnail-container"},[Hr("div",{class:"thumbnail-list"})],-1))])):bo("",!0)],64))}},Wx=$x(qx,[["__scopeId","data-v-f9602698"]]);Lo(Wx).mount("#app"); `,be.addEventListener("click",()=>{N(ie)}),H.appendChild(be)}M(z+1)}function M(ne){f.value=ne,document.querySelectorAll(".thumbnail-item").forEach((z,ie)=>{ie+1===ne?z.classList.add("active"):z.classList.remove("active")})}function N(ne){const H=o.value.contentWindow.GetCurPg();H!=ne-1&&(o.value.contentWindow.resetPage(H),o.value.contentWindow.syncExec(ne-1,-1,-1,!1),M(ne)),w()}function K(){if(o.value){o.value.contentWindow.ExecGoBack();const ne=o.value.contentWindow.GetCurPg();M(ne+1)}}function se(){if(o.value){o.value.contentWindow.ExecNext();const ne=o.value.contentWindow.GetCurPg();M(ne+1)}}Ca(o,ne=>{ne&&setTimeout(()=>{_(),o.value.contentDocument.addEventListener("gopageEvent",()=>{const H=o.value.contentWindow.GetCurPg();M(H+1)}),window.air.hideAirClassLoading("play_office",null)},1e3)});async function ve(ne){try{const z=await(await fetch(ne)).text();return z.includes("<Error>")&&z.includes("<Code>NoSuchKey</Code>")?(l.value=!0,window.air.hideAirClassLoading("play_office",null),!1):!0}catch(H){return console.error("检查URL时出错:",H),l.value=!0,window.air.hideAirClassLoading("play_office",null),!1}}window.courseware.getData(async ne=>{t.value=ne==null?void 0:ne.url,r.value=ne==null?void 0:ne.ppt_html,r.value&&t.value.toLowerCase().includes(".ppt")&&await ve(r.value)},"play_office");function xe(){window.air.hideAirClassLoading("play_office",null)}function Ke(){}const Xe=ne=>{try{const H=new URL(ne);return`${H.pathname}${H.search}${H.hash}`}catch{return ne}};return(ne,H)=>(Zr(),Ja(er,null,[t.value.indexOf(".pdf")>0||t.value.indexOf(".PDF")>0?(Zr(),Ia(Ta(Bx),{key:0,src:t.value,style:{height:"100vh"},onRendered:xe,onError:Ke},null,8,["src"])):bo("",!0),t.value.indexOf(".docx")>0||t.value.indexOf(".DOCX")>0?(Zr(),Ia(Ta(Hx),{key:1,src:t.value,style:{height:"100vh"},onRendered:xe,onError:Ke},null,8,["src"])):bo("",!0),t.value.indexOf(".ppt")>0||t.value.indexOf(".PPT")>0||t.value.indexOf(".pptx")>0||t.value.indexOf(".PPTX")>0?(Zr(),Ja("div",Xx,[l.value?(Zr(),Ja("div",zx," 课件正在生成中,请过一会儿再尝试 ")):(Zr(),Ja("iframe",{key:1,ref_key:"ppt_iframe",ref:o,frameborder:"0",width:"100%",height:"100%",src:Xe(r.value)},null,8,Gx)),Hr("div",{class:"page-buttons-container"},[Hr("button",{class:"page-button thumbnail-button",onClick:w},H[0]||(H[0]=[Hr("span",{class:"menu-icon"},null,-1)])),Hr("button",{class:"page-button prev-button",onClick:K},H[1]||(H[1]=[Hr("span",{class:"arrow left"},null,-1)])),Hr("button",{class:"page-button next-button",onClick:se},H[2]||(H[2]=[Hr("span",{class:"arrow right"},null,-1)]))]),H[3]||(H[3]=Hr("div",{class:"thumbnail-container"},[Hr("div",{class:"thumbnail-list"})],-1))])):bo("",!0)],64))}},Wx=$x(qx,[["__scopeId","data-v-13144342"]]);Lo(Wx).mount("#app");
.thumbnail-container{position:fixed;bottom:-150px;left:0;right:0;height:140px;background-color:#505050e6;transition:bottom .3s ease;z-index:999}.thumbnail-container.show{bottom:0}.thumbnail-list{display:flex;overflow-x:auto;padding:10px;gap:10px;height:100%}.thumbnail-item{flex:0 0 auto;width:160px;height:120px;position:relative;cursor:pointer;transition:all .2s ease;padding:2px;border-radius:4px;background-color:transparent}.thumbnail-item img{width:100%;height:100%;object-fit:cover;border-radius:4px;border:2px solid transparent;transition:all .2s ease}.thumbnail-item.active{background-color:#ffffff4d;transform:scale(1.05);box-shadow:0 0 10px #ffffff80}.thumbnail-item.active img{border-color:#fff}.thumbnail-item:hover:not(.active){transform:scale(1.05);background-color:#ffffff1a}.thumbnail-item .page-number{position:absolute;bottom:5px;left:50%;transform:translate(-50%);background-color:#000000b3;color:#fff;padding:2px 8px;border-radius:10px;font-size:12px}.thumbnail-list::-webkit-scrollbar{height:8px}.thumbnail-list::-webkit-scrollbar-track{background:#0000001a;border-radius:4px}.thumbnail-list::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}.thumbnail-list::-webkit-scrollbar-thumb:hover{background:#ffffff80}.error-message[data-v-f9602698]{display:flex;justify-content:center;align-items:center;height:100%;font-size:16px;color:#666}.page-buttons-container[data-v-f9602698]{position:fixed;bottom:20px;right:20px;display:flex;gap:15px;z-index:1000}.page-button[data-v-f9602698]{width:50px;height:50px;background-color:#50505099;border-radius:25px;border:1px solid rgba(255,255,255,.3);color:#ffffffe6;font-size:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 6px #00000026}.page-button[data-v-f9602698]:hover{background-color:#3c3c3ccc;transform:scale(1.1)}.page-button[data-v-f9602698]:active{transform:scale(.95)}.arrow[data-v-f9602698]{border:solid white;border-width:0 2px 2px 0;display:inline-block;padding:4px}.left[data-v-f9602698]{transform:rotate(135deg);margin-left:4px}.right[data-v-f9602698]{transform:rotate(-45deg);margin-right:4px}.menu-icon[data-v-f9602698]{width:18px;height:14px;position:relative;border-top:2px solid white;border-bottom:2px solid white}.menu-icon[data-v-f9602698]:before{content:"";position:absolute;top:50%;left:0;width:100%;height:2px;background-color:#fff;transform:translateY(-50%)}.thumbnail-container[data-v-f9602698]{position:fixed;bottom:-150px;left:0;right:0;height:140px;background-color:#505050e6;transition:bottom .3s ease;z-index:999}.thumbnail-container.show[data-v-f9602698]{bottom:0}.thumbnail-list[data-v-f9602698]{display:flex;overflow-x:auto;padding:10px;gap:10px;height:100%}.thumbnail-item[data-v-f9602698]{flex:0 0 auto;width:100px;height:120px;position:relative;cursor:pointer;transition:all .2s ease;padding:2px;border-radius:4px}.thumbnail-item img[data-v-f9602698]{width:100%;height:100%;object-fit:cover;border-radius:4px;border:2px solid transparent;transition:all .2s ease}.thumbnail-item.active[data-v-f9602698]{background-color:#ffffff4d;transform:scale(1.05);box-shadow:0 0 10px #ffffff80}.thumbnail-item.active img[data-v-f9602698]{border-color:#fff}.thumbnail-item .page-number[data-v-f9602698]{position:absolute;bottom:5px;left:50%;transform:translate(-50%);background-color:#000000b3;color:#fff;padding:2px 8px;border-radius:10px;font-size:12px}.thumbnail-item[data-v-f9602698]:hover:not(.active){transform:scale(1.05);background-color:#ffffff1a}.thumbnail-list[data-v-f9602698]::-webkit-scrollbar{height:8px}.thumbnail-list[data-v-f9602698]::-webkit-scrollbar-track{background:#0000001a;border-radius:4px}.thumbnail-list[data-v-f9602698]::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}.thumbnail-list[data-v-f9602698]::-webkit-scrollbar-thumb:hover{background:#ffffff80}
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript" src="//staging-teach.cdn.ireadabc.com/h5template/h5-static-lib/js/air.js"></script> <script type="text/javascript" src="//staging-teach.cdn.ireadabc.com/h5template/h5-static-lib/js/air.js"></script>
<script type="module" crossorigin src="assets/index-LG8DS8SY.js"></script> <script type="module" crossorigin src="assets/index-CQZYGyzW.js"></script>
<link rel="stylesheet" crossorigin href="assets/index-DxwsA9db.css"> <link rel="stylesheet" crossorigin href="assets/index-BEMBr7N-.css">
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>
......
...@@ -209,7 +209,7 @@ const getProxiedUrl = (url) => { ...@@ -209,7 +209,7 @@ const getProxiedUrl = (url) => {
</template> </template>
<template <template
v-if="url.indexOf(`.ppt`) > 0 || url.indexOf(`.PPT`) > 0 || url.indexOf(`.pptx`) > 0 || url.indexOf(`.PPTX`) > 0"> v-if="url.indexOf(`.ppt`) > 0 || url.indexOf(`.PPT`) > 0 || url.indexOf(`.pptx`) > 0 || url.indexOf(`.PPTX`) > 0">
<div style="height: 100vh; position: relative;"> <div style="height: 100vh; position: relative; overflow: hidden;">
<div v-if="showErrorMsg" class="error-message"> <div v-if="showErrorMsg" class="error-message">
课件正在生成中,请过一会儿再尝试 课件正在生成中,请过一会儿再尝试
</div> </div>
...@@ -247,7 +247,7 @@ const getProxiedUrl = (url) => { ...@@ -247,7 +247,7 @@ const getProxiedUrl = (url) => {
.page-buttons-container { .page-buttons-container {
/* 固定在右下角 */ /* 固定在右下角 */
position: fixed; position: absolute;
bottom: 20px; bottom: 20px;
right: 20px; right: 20px;
......
/* 缩略图容器样式 */ /* 缩略图容器样式 */
.thumbnail-container { .thumbnail-container {
position: fixed; position: absolute;
bottom: -150px; bottom: -150px;
left: 0; left: 0;
right: 0; right: 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment