Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
play_office
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
template admin
play_office
Commits
38e8fbaa
Commit
38e8fbaa
authored
Nov 12, 2024
by
liujiangnan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat
parent
d9682a2b
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
8 additions
and
8 deletions
+8
-8
index-BEMBr7N-.css
play/assets/index-BEMBr7N-.css
+1
-0
index-CQZYGyzW.js
play/assets/index-CQZYGyzW.js
+2
-2
index-DxwsA9db.css
play/assets/index-DxwsA9db.css
+0
-1
index.html
play/index.html
+2
-2
App.vue
vue-proj/vue-project/src/App.vue
+2
-2
thumbnail.css
vue-proj/vue-project/src/assets/thumbnail.css
+1
-1
No files found.
play/assets/index-BEMBr7N-.css
0 → 100644
View file @
38e8fbaa
.thumbnail-container
{
position
:
absolute
;
bottom
:
-150px
;
left
:
0
;
right
:
0
;
height
:
140px
;
background-color
:
#505050
e6
;
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
:
#ffffff4
d
;
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
:
#ffffff1
a
}
.thumbnail-item
.page-number
{
position
:
absolute
;
bottom
:
5px
;
left
:
50%
;
transform
:
translate
(
-50%
);
background-color
:
#000000
b3
;
color
:
#fff
;
padding
:
2px
8px
;
border-radius
:
10px
;
font-size
:
12px
}
.thumbnail-list
::-webkit-scrollbar
{
height
:
8px
}
.thumbnail-list
::-webkit-scrollbar-track
{
background
:
#0000001
a
;
border-radius
:
4px
}
.thumbnail-list
::-webkit-scrollbar-thumb
{
background
:
#ffffff4
d
;
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
:
#ffffff
e6
;
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
:
#3c3c3c
cc
;
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
:
#505050
e6
;
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
:
#ffffff4
d
;
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
:
#000000
b3
;
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
:
#ffffff1
a
}
.thumbnail-list
[
data-v-13144342
]
::-webkit-scrollbar
{
height
:
8px
}
.thumbnail-list
[
data-v-13144342
]
::-webkit-scrollbar-track
{
background
:
#0000001
a
;
border-radius
:
4px
}
.thumbnail-list
[
data-v-13144342
]
::-webkit-scrollbar-thumb
{
background
:
#ffffff4
d
;
border-radius
:
4px
}
.thumbnail-list
[
data-v-13144342
]
::-webkit-scrollbar-thumb:hover
{
background
:
#ffffff80
}
play/assets/index-
LG8DS8SY
.js
→
play/assets/index-
CQZYGyzW
.js
View file @
38e8fbaa
...
@@ -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");
play/assets/index-DxwsA9db.css
deleted
100644 → 0
View file @
d9682a2b
.thumbnail-container
{
position
:
fixed
;
bottom
:
-150px
;
left
:
0
;
right
:
0
;
height
:
140px
;
background-color
:
#505050
e6
;
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
:
#ffffff4
d
;
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
:
#ffffff1
a
}
.thumbnail-item
.page-number
{
position
:
absolute
;
bottom
:
5px
;
left
:
50%
;
transform
:
translate
(
-50%
);
background-color
:
#000000
b3
;
color
:
#fff
;
padding
:
2px
8px
;
border-radius
:
10px
;
font-size
:
12px
}
.thumbnail-list
::-webkit-scrollbar
{
height
:
8px
}
.thumbnail-list
::-webkit-scrollbar-track
{
background
:
#0000001
a
;
border-radius
:
4px
}
.thumbnail-list
::-webkit-scrollbar-thumb
{
background
:
#ffffff4
d
;
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
:
#ffffff
e6
;
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
:
#3c3c3c
cc
;
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
:
#505050
e6
;
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
:
#ffffff4
d
;
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
:
#000000
b3
;
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
:
#ffffff1
a
}
.thumbnail-list
[
data-v-f9602698
]
::-webkit-scrollbar
{
height
:
8px
}
.thumbnail-list
[
data-v-f9602698
]
::-webkit-scrollbar-track
{
background
:
#0000001
a
;
border-radius
:
4px
}
.thumbnail-list
[
data-v-f9602698
]
::-webkit-scrollbar-thumb
{
background
:
#ffffff4
d
;
border-radius
:
4px
}
.thumbnail-list
[
data-v-f9602698
]
::-webkit-scrollbar-thumb:hover
{
background
:
#ffffff80
}
play/index.html
View file @
38e8fbaa
...
@@ -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>
...
...
vue-proj/vue-project/src/App.vue
View file @
38e8fbaa
...
@@ -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
;
...
...
vue-proj/vue-project/src/assets/thumbnail.css
View file @
38e8fbaa
/* 缩略图容器样式 */
/* 缩略图容器样式 */
.thumbnail-container
{
.thumbnail-container
{
position
:
fixed
;
position
:
absolute
;
bottom
:
-150px
;
bottom
:
-150px
;
left
:
0
;
left
:
0
;
right
:
0
;
right
:
0
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment