ai-helper-agent 2.3.1 → 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -3
- package/dist/assets/__vite-browser-external-CM3Eme-n.js +1 -0
- package/dist/assets/agent-store-Ce3f4Ya3.js +1 -0
- package/dist/assets/background.js +104 -80
- package/dist/assets/chat-export-CWSUeOo4.js +37 -0
- package/dist/assets/chunk-CMxvf4Kt.js +1 -0
- package/dist/assets/content.js +159 -156
- package/dist/assets/{dist-BQOFgIxk.js → dist-DhUTa_WT.js} +5 -6
- package/dist/assets/dist-LQPh1k0y.js +24 -0
- package/dist/assets/i18n-ouMgDZ2t.js +49 -0
- package/dist/assets/jszip.min-Bm_16osY.js +2 -0
- package/dist/assets/lib-33nIefF6.js +220 -0
- package/dist/assets/{marked.min.js-08SGy6CO.js → marked.min.js-D2rXgLAQ.js} +7 -8
- package/dist/assets/{marked.min.js-loader-4kRZ9iCP.js → marked.min.js-loader-tKH5SQVQ.js} +1 -1
- package/dist/assets/model-profiles-6dzdrSS4.js +24 -0
- package/dist/assets/network-scope-CNRYXk74.js +1 -0
- package/dist/assets/options-Cp1UMkjK.css +1 -0
- package/dist/assets/options.js +108 -102
- package/dist/assets/{page-snapshot-renderer-CVL6r6Kf.js → page-snapshot-renderer-j72q92KH.js} +2 -3
- package/dist/assets/pdf-DnVqBaAN.js +6 -0
- package/dist/assets/session-store-CmGs_rhh.js +76 -0
- package/dist/assets/side_panel.css +1 -1
- package/dist/assets/side_panel.js +958 -1124
- package/dist/assets/theme-BRAX5X2F.css +1 -0
- package/dist/assets/{modulepreload-polyfill-P2Xu9kJm.js → theme-CLwYsx9o.js} +1 -1
- package/dist/assets/utils-9i9g8vW8.js +112 -0
- package/dist/assets/version-BrT5Y9A7.js +1 -0
- package/dist/assets/xlsx-DGkz7cnk.js +105 -0
- package/dist/manifest.json +2 -5
- package/dist/offscreen/offscreen.js +7 -7
- package/dist/options.html +151 -75
- package/dist/side_panel.html +167 -137
- package/package.json +1 -1
- package/src/config.js +3 -2
- package/src/executor.js +99 -18
- package/src/locales/en.json +16 -2
- package/src/locales/zh.json +16 -2
- package/src/memory/injection.js +12 -2
- package/src/memory/routes.js +6 -0
- package/src/memory/service.js +57 -2
- package/src/rag/manager.js +1 -1
- package/src/rag/url-guard.js +27 -12
- package/src/security.js +433 -31
- package/src/server.js +28 -8
- package/dist/assets/agent-store-DcAs6YyA.js +0 -2
- package/dist/assets/agent-store-DcAs6YyA.js.map +0 -1
- package/dist/assets/background.js.map +0 -1
- package/dist/assets/dist-BQOFgIxk.js.map +0 -1
- package/dist/assets/i18n-C4jSRoCH.js +0 -50
- package/dist/assets/i18n-C4jSRoCH.js.map +0 -1
- package/dist/assets/jszip.min-BXqW2-9v.js +0 -3
- package/dist/assets/jszip.min-BXqW2-9v.js.map +0 -1
- package/dist/assets/lib-Bi7BFuND.js +0 -221
- package/dist/assets/lib-Bi7BFuND.js.map +0 -1
- package/dist/assets/marked.min.js-08SGy6CO.js.map +0 -1
- package/dist/assets/model-profiles-Dl_MsXWa.js +0 -25
- package/dist/assets/model-profiles-Dl_MsXWa.js.map +0 -1
- package/dist/assets/options-8-nu3P5K.css +0 -1
- package/dist/assets/options.js.map +0 -1
- package/dist/assets/page-snapshot-renderer-CVL6r6Kf.js.map +0 -1
- package/dist/assets/pdf-HiJ0icvU.js +0 -7
- package/dist/assets/pdf-HiJ0icvU.js.map +0 -1
- package/dist/assets/rolldown-runtime-C0FnF6B9.js +0 -1
- package/dist/assets/session-store-CzVQCgQ_.js +0 -77
- package/dist/assets/session-store-CzVQCgQ_.js.map +0 -1
- package/dist/assets/side_panel.js.map +0 -1
- package/dist/assets/version-CNG2KGnJ.js +0 -2
- package/dist/assets/version-CNG2KGnJ.js.map +0 -1
- package/dist/assets/xlsx-BHKh7vjA.js +0 -106
- package/dist/assets/xlsx-BHKh7vjA.js.map +0 -1
- package/dist/icons/badges/license-MIT.svg +0 -21
- package/dist/icons/badges/platform.svg +0 -21
- package/dist/icons/badges/prs-welcome.svg +0 -21
- package/dist/icons/badges/version.svg +0 -21
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./
|
|
1
|
+
import{o as e}from"./chunk-CMxvf4Kt.js";import{t}from"./jszip.min-Bm_16osY.js";var n=e(t(),1);function r(e){typeof console<`u`&&console.warn&&console.warn(`[pptx-to-html] ${e}`)}var i=class e{static domParserFactory=null;static parseXml(t){if(e.domParserFactory)return e.domParserFactory().parseFromString(t,`application/xml`);let n=globalThis?.DOMParser;if(typeof n==`function`)return new n().parseFromString(t,`application/xml`);throw r(`No DOMParser available. Provide one through XmlHelper.setDomParser() or pptxToHtml({ domParserFactory }).`),Error(`DOMParser not available in this environment`)}static getDirectChildrenByTagName(e,t){return Array.from(e.children).filter(e=>e.localName===t)}static getAttrAsNumber(e,t){let n=e.getAttribute(t);if(n==null||n===``)return 0;let r=Number(n);return Number.isFinite(r)?r:0}static getZIndex(e,t){let n=e;for(;n?.parentElement&&n.parentElement!==t;)n=n.parentElement;return!n||n.parentElement!==t?0:Array.from(t.children).indexOf(n)}static getColorFromElement(e,t){if(!e)return;let n=e.getElementsByTagNameNS(`*`,`srgbClr`)[0];if(n){let e=n.getAttribute(`val`);return e?`#${e}`:void 0}let r=e.getElementsByTagNameNS(`*`,`schemeClr`)[0];if(r){let e=r.getAttribute(`val`);return e&&t?t[{bg1:`lt1`,bg2:`lt2`,tx1:`dk1`,tx2:`dk2`}[e]||e]:void 0}let i=e.getElementsByTagNameNS(`*`,`sysClr`)[0];if(i){let e=i.getAttribute(`lastClr`);return e?`#${e}`:void 0}}static extractThemeColors(e){if(!e)return{};let t=`http://schemas.openxmlformats.org/drawingml/2006/main`,n={},r=e.getElementsByTagNameNS(t,`clrScheme`)[0];if(!r)return{};for(let e of Array.from(r.children)){let r=e.localName,i=e.getElementsByTagNameNS(t,`srgbClr`)[0],a=e.getElementsByTagNameNS(t,`sysClr`)[0],o=i?.getAttribute(`val`)??a?.getAttribute(`lastClr`);o&&(n[r]=`#${o}`)}return n}static extractThemeTableStyles(t){let n={};if(!t)return n;let r=e.extractThemeColors(t),i=t.getElementsByTagNameNS(`*`,`tblStyleLst`)[0]||null;if(!i)return n;let a=Array.from(i.getElementsByTagNameNS(`*`,`tblStyle`));for(let t of a){let i=t.getAttribute(`styleId`)||t.getAttribute(`name`)||``;if(!i)continue;let a={},o={},s=Array.from(t.getElementsByTagNameNS(`*`,`tblStylePr`));for(let t of s){let n=t.getAttribute(`type`)||t.getAttribute(`val`)||``;if(!n)continue;let i=t.getElementsByTagNameNS(`*`,`tcStyle`)[0]||null,s=[(i?.getElementsByTagNameNS(`*`,`tcPr`)[0]||null)?.getElementsByTagNameNS(`*`,`solidFill`)[0]||null,i?.getElementsByTagNameNS(`*`,`solidFill`)[0]||null,t.getElementsByTagNameNS(`*`,`solidFill`)[0]||null],c;for(let t of s)t&&!c&&(c=e.getColorFromElement(t,r));if(!c){let n=i?.getElementsByTagNameNS(`*`,`fillRef`)[0]||t.getElementsByTagNameNS(`*`,`fillRef`)[0]||null;c=e.getColorFromElement(n,r)}c&&(a[n]=c);let l=t.getElementsByTagNameNS(`*`,`tcTxStyle`)[0]||null,u=l?.getElementsByTagNameNS(`*`,`solidFill`)[0]||null,d=e.getColorFromElement(u,r);if(!d){let t=l?.getElementsByTagNameNS(`*`,`fontRef`)[0]||null;d=e.getColorFromElement(t,r)}if(!d){let t=l?.getElementsByTagNameNS(`*`,`schemeClr`)[0]||null;d=e.getColorFromElement(t,r)}d&&(o[n]=d)}n[i]={fills:a,fontColors:o}}return n}static setDomParser(t){e.domParserFactory=t}static findRelationshipByTypeSuffix(e,t){let n=e.getElementsByTagName(`Relationship`);for(let e of Array.from(n))if((e.getAttribute(`Type`)||``).endsWith(t))return e;return null}static findRelationshipById(e,t){let n=e.getElementsByTagName(`Relationship`);for(let e of Array.from(n))if(e.getAttribute(`Id`)===t)return e;return null}},a=class{static extract(e,t,n={}){if(!e)return[];let r=[],a=e.getElementsByTagNameNS(`*`,`sp`);for(let l of Array.from(a)){let a=(l.getElementsByTagNameNS(`*`,`nvPr`)[0]??null)?.getElementsByTagNameNS(`*`,`ph`)[0]??null,u=!!a;if(n.context&&n.context!==`slide`&&u)continue;let d=l.getElementsByTagNameNS(`*`,`txBody`)[0];if(!d)continue;let f=d.getElementsByTagNameNS(`*`,`p`),p=d.getElementsByTagNameNS(`*`,`bodyPr`)[0]??null,m=p?.getAttribute(`anchor`)||void 0,h=a?.getAttribute(`idx`)||void 0,g=a?.getAttribute(`type`)||(h?n.placeholderTypes?.[h]:void 0)||void 0,_=g===`title`||g===`ctrTitle`,v=m===`ctr`?`middle`:m===`b`||_?`bottom`:`top`,y=p?.getAttribute(`lIns`),b=p?.getAttribute(`tIns`),x=p?.getAttribute(`rIns`),S=p?.getAttribute(`bIns`),C={left:y?Number(y)/9525:0,top:b?Number(b)/9525:0,right:x?Number(x)/9525:0,bottom:S?Number(S)/9525:0},w=[],T=`Arial`,E=_?44:g===`subTitle`?24:18,D=_?`bold`:`normal`,O=_||g===`subTitle`,k,A,j=[],M={},N=d.querySelector(`*|lstStyle`);if(N)for(let e of Array.from(N.children)){let t=e.localName.match(/^lvl(\d+)pPr$/);if(!t)continue;let n=parseInt(t[1],10)-1,r=`p`,i;e.querySelector(`*|buNone`)?r=`p`:e.querySelector(`*|buAutoNum`)?(r=`ol`,i=s(e.querySelector(`*|buAutoNum`)?.getAttribute(`type`)||`arabicPeriod`)):e.querySelector(`*|buChar`)&&(r=`ul`,i=`disc`),M[n]={kind:r,listStyle:i}}for(let e of Array.from(f)){let n=e.getElementsByTagNameNS(`*`,`pPr`)[0]??null,r=n?.getAttribute(`algn`)||void 0;r&&!A&&(A=r===`ctr`?`center`:r===`r`?`right`:r.startsWith(`just`)?`justify`:`left`);let a=e.getElementsByTagNameNS(`*`,`r`),c=o(e);c&&c.split(/\n+/).forEach(e=>{e&&w.push(e)});for(let e of Array.from(a)){let n=e.getElementsByTagNameNS(`*`,`rPr`)[0];if(n){T=n.getElementsByTagNameNS(`*`,`latin`)[0]?.getAttribute(`typeface`)??T;let e=n.getAttribute(`sz`);if(e){let t=parseInt(e,10);Number.isFinite(t)&&(E=t/100)}let r=n.getAttribute(`b`);r===`1`?D=`bold`:r===`0`&&(D=`normal`);let a=n.querySelector(`*|solidFill`),o=i.getColorFromElement(a||null,t);o&&(k=o)}}if(!k&&n){let e=(n.getElementsByTagNameNS(`*`,`endParaRPr`)[0]??null)?.querySelector(`*|solidFill`)||null,r=i.getColorFromElement(e,t);if(r&&(k=r),!k){let e=(n.getElementsByTagNameNS(`*`,`defRPr`)[0]??null)?.querySelector(`*|solidFill`)||null,r=i.getColorFromElement(e,t);r&&(k=r)}}let l=n?.getAttribute(`lvl`),u=l?parseInt(l,10):0,d=`p`,f;n?n.querySelector(`*|buNone`)?d=`p`:n.querySelector(`*|buAutoNum`)?(d=`ol`,f=s(n.querySelector(`*|buAutoNum`)?.getAttribute(`type`)||`arabicPeriod`)):n.querySelector(`*|buChar`)?(d=`ul`,f=`disc`):M[u]?(d=M[u].kind,f=M[u].listStyle):u>0&&(d=`ul`,f=`disc`):M[u]?(d=M[u].kind,f=M[u].listStyle):u>0&&(d=`ul`,f=`disc`),j.push({kind:d,text:c,lvl:isNaN(u)?0:u,listStyle:f})}if(!k){let e=d.querySelector(`*|lstStyle *|defRPr`)?.querySelector(`*|solidFill`),n=i.getColorFromElement(e||null,t);n&&(k=n);let r=d.querySelector(`*|defRPr`)?.querySelector(`*|solidFill`),a=i.getColorFromElement(r||null,t);if(a&&(k=a),!k){let e=l.querySelector(`p\\:spPr, spPr`)?.querySelector(`*|solidFill`),n=i.getColorFromElement(e||null,t);n&&(k=n)}}let P=w.join(` `).trim();if(n.context&&n.context!==`slide`){let e=P.toLowerCase();if(e.includes(`click to add`)||e.includes(`click to edit`)||e.includes(`haga clic para agregar`)||e.includes(`haga clic para editar`)||e.includes(`hacer clic para agregar`)||e.includes(`hacer clic para editar`))continue}if(P===``)continue;let F=l.getElementsByTagNameNS(`*`,`xfrm`)[0],I=F?.getElementsByTagNameNS(`*`,`off`)[0]??null,L=F?.getElementsByTagNameNS(`*`,`ext`)[0]??null,R,z,B,V;if(I&&L)R=i.getAttrAsNumber(I,`x`),z=i.getAttrAsNumber(I,`y`),B=i.getAttrAsNumber(L,`cx`),V=i.getAttrAsNumber(L,`cy`);else if(n.placeholderGeom){let e=(h?n.placeholderGeom[h]:void 0)??(g?n.placeholderGeom[`type:`+g]:void 0);R=e?.x??0,z=e?.y??0,B=e?.cx??1e6,V=e?.cy??5e5}else R=0,z=0,B=1e6,V=5e5;if(g===`body`&&j.length>1)for(let e of j)e.kind===`p`&&(e.kind=`ul`,e.listStyle=`disc`);let H;if(j.length>1||j.some(e=>e.kind!==`p`)){let e=[],t=null;for(let n of j){if(n.kind===`p`){t&&=(e.push(t.kind===`ul`?`</ul>`:`</ol>`),null),n.text.trim()&&e.push(`<div style="margin-left:${n.lvl*24}px">${c(n.text).replace(/\n/g,`<br>`)}</div>`);continue}if(!t||t.kind!==n.kind){t&&e.push(t.kind===`ul`?`</ul>`:`</ol>`);let r=`list-style-position: inside; padding-left: 0; margin: 0;`,i=n.kind===`ol`?` style="${r} list-style-type: ${n.listStyle||`decimal`};"`:` style="${r}"`;e.push(n.kind===`ul`?`<ul${i}>`:`<ol${i}>`),t={kind:n.kind,listStyle:n.listStyle}}e.push(`<li style="margin-left:${n.lvl*24}px">${c(n.text).replace(/\n/g,`<br>`)}</li>`)}t&&e.push(t.kind===`ul`?`</ul>`:`</ol>`),H=e.join(``)}let U={type:`text`,zIndex:i.getZIndex(l,e),content:P,position:{x:R,y:z},size:{width:B,height:V},font:{name:T,size:E,color:k??`#000000`,weight:D},align:{horizontal:A??(O?`center`:`left`),vertical:v},padding:C,html:H};r.push(U)}return r}};function o(e){let t=``;for(let n of Array.from(e.childNodes)){if(n.nodeType!==1)continue;let e=n.localName;if(e===`r`){let e=n.getElementsByTagNameNS(`*`,`t`)[0]?.textContent??``;t+=e}else if(e===`br`)t+=`
|
|
2
2
|
`;else if(e===`fld`){let e=n.getElementsByTagNameNS(`*`,`r`);for(let n of Array.from(e)){let e=n.getElementsByTagNameNS(`*`,`t`)[0]?.textContent??``;t+=e}}else e===`tab`&&(t+=` `)}return t}function s(e){let t=e.toLowerCase();return t.includes(`alphauc`)?`upper-alpha`:t.includes(`alphalc`)?`lower-alpha`:t.includes(`romanu`)?`upper-roman`:t.includes(`romanl`)?`lower-roman`:`decimal`}function c(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function l(e){return String(e??``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function u(e,t=`transparent`){let n=String(e??``).trim();return/^#[0-9a-f]{3,8}$/i.test(n)||/^(transparent|currentcolor)$/i.test(n)?n:t}function d(e){let t=String(e??``).trim();return/^[\p{L}\p{N} ,._-]{1,100}$/u.test(t)?t:`Arial`}function f(e){switch(e.split(`.`).pop()?.toLowerCase()){case`jpg`:case`jpeg`:return`image/jpeg`;case`gif`:return`image/gif`;case`svg`:return`image/svg+xml`;case`webp`:return`image/webp`;case`bmp`:return`image/bmp`;case`tif`:case`tiff`:return`image/tiff`;default:return`image/png`}}var p=class{static async extract(e,t,n,r=`ppt/slides`){if(!e)return[];let a=[],o=e.getElementsByTagNameNS(`*`,`pic`);for(let s of Array.from(o)){let o=s.getElementsByTagNameNS(`*`,`blip`)[0]?.getAttribute(`r:embed`)??``;if(!o)continue;let c=(t&&t.getElementsByTagName?(function(){let e=t.getElementsByTagName(`Relationship`);for(let t of Array.from(e))if(t.getAttribute(`Id`)===o)return t;return null})():null)?.getAttribute(`Target`);if(!c)continue;let l=this.normalizePath(c,r),u=n.file(l);if(!u)continue;let d=await u.async(`base64`),p=`data:${f(l)};base64,${d}`,m=s.getElementsByTagNameNS(`*`,`xfrm`)[0],h=m?.getElementsByTagNameNS(`*`,`off`)[0],g=m?.getElementsByTagNameNS(`*`,`ext`)[0],_=h?i.getAttrAsNumber(h,`x`):0,v=h?i.getAttrAsNumber(h,`y`):0,y=g?i.getAttrAsNumber(g,`cx`):1e6,b=g?i.getAttrAsNumber(g,`cy`):5e5,x={type:`image`,zIndex:i.getZIndex(s,e),relId:o,src:p,position:{x:_,y:v},size:{width:y,height:b}};a.push(x)}return a}static normalizePath(e,t){let n=(t+`/`+e).split(`/`),r=[];for(let e of n)e===`..`?r.pop():e!==`.`&&r.push(e);return r.join(`/`)}},m=class{static extract(e,t){if(!e)return[];let n=[],r=[...Array.from(e.getElementsByTagNameNS(`*`,`sp`)),...Array.from(e.getElementsByTagNameNS(`*`,`cxnSp`))];for(let a of r){let r=a.getElementsByTagNameNS(`*`,`xfrm`)[0],o=r?.getElementsByTagNameNS(`*`,`off`)[0],s=r?.getElementsByTagNameNS(`*`,`ext`)[0],c=o?i.getAttrAsNumber(o,`x`):0,l=o?i.getAttrAsNumber(o,`y`):0,u=s?i.getAttrAsNumber(s,`cx`):1e6,d=s?i.getAttrAsNumber(s,`cy`):5e5,f=r?.getAttribute(`rot`),p=f?Number(f)/6e4:void 0,m=a.getElementsByTagNameNS(`*`,`prstGeom`)[0]?.getAttribute(`prst`)??`rect`,h=a.getElementsByTagNameNS(`*`,`spPr`)[0],g=`transparent`,_=`transparent`,v,y,b;if(h){let e=h.getElementsByTagNameNS(`*`,`solidFill`)[0]??null;g=i.getColorFromElement(e,t)??`transparent`;let n=h.getElementsByTagNameNS(`*`,`ln`)[0],r=n?.getElementsByTagNameNS(`*`,`solidFill`)[0]??null;_=i.getColorFromElement(r,t)??`transparent`;let a=n?.getAttribute(`w`);if(a){let e=Number(a);isNaN(e)||(v=e/9525)}let o=n?.getElementsByTagNameNS(`*`,`headEnd`)[0]??null,s=n?.getElementsByTagNameNS(`*`,`tailEnd`)[0]??null;y=o?{type:o.getAttribute(`type`)||void 0,w:o.getAttribute(`w`)||void 0,len:o.getAttribute(`len`)||void 0}:void 0,b=s?{type:s.getAttribute(`type`)||void 0,w:s.getAttribute(`w`)||void 0,len:s.getAttribute(`len`)||void 0}:void 0}if(g===`transparent`){let e=((a.getElementsByTagNameNS(`*`,`style`)[0]?.getElementsByTagNameNS(`*`,`fillRef`)[0])?.getElementsByTagNameNS(`*`,`schemeClr`)[0])?.getAttribute(`val`);e&&t[e]&&(g=t[e])}let x={type:`shape`,zIndex:i.getZIndex(a,e),shapeType:m,position:{x:c,y:l},size:{width:u,height:d},fillColor:g,borderColor:_,strokeWidth:v,rotationDeg:p,headEnd:y,tailEnd:b};n.push(x)}return n}},h=class{static extract(e,t,n){if(!e)return[];let r=[],a=e.getElementsByTagNameNS(`*`,`graphicFrame`);for(let o of Array.from(a)){let a=this.findTbl(o);if(!a)continue;let s=o.getElementsByTagNameNS(`*`,`xfrm`)[0]??null,c=s?.getElementsByTagNameNS(`*`,`off`)[0]??null,l=s?.getElementsByTagNameNS(`*`,`ext`)[0]??null,u=c?i.getAttrAsNumber(c,`x`):0,d=c?i.getAttrAsNumber(c,`y`):0,f=l?i.getAttrAsNumber(l,`cx`):1e6,p=l?i.getAttrAsNumber(l,`cy`):5e5,m=[],h=a.getElementsByTagNameNS(`*`,`tblGrid`)[0]??null;if(h)for(let e of Array.from(h.getElementsByTagNameNS(`*`,`gridCol`))){let t=Number(e.getAttribute(`w`)||0);m.push(t)}let g=a.getElementsByTagNameNS(`*`,`tblPr`)[0]??null,_=this.extractTableStyleFlags(g),v=this.extractTableBorders(g,t),y=this.extractTableStyleId(g),b=this.extractTableFill(g,t),x=y&&n?n[y]:void 0,S=this.buildFallbackTableStyle(t,_),C=S||x?{fills:{...S?.fills||{},...x?.fills||{}},fontColors:{...S?.fontColors||{},...x?.fontColors||{}}}:void 0,w=[];for(let e of Array.from(a.getElementsByTagNameNS(`*`,`tr`))){let n=[];for(let r of Array.from(e.getElementsByTagNameNS(`*`,`tc`))){let e=r.getElementsByTagNameNS(`*`,`txBody`)[0]??null,{text:i,font:a,align:o,padding:s}=this.extractCellText(e,t,r),c=r.getElementsByTagNameNS(`*`,`tcPr`)[0]??null,l={text:i,font:a,align:o,padding:s,fillColor:this.extractFillColor(c,t),borders:this.extractCellBorders(c,t)},u=c?.getElementsByTagNameNS(`*`,`gridSpan`)[0]??null,d=c?.getElementsByTagNameNS(`*`,`rowSpan`)[0]??null;u&&(l.colSpan=Number(u.getAttribute(`val`)||1)),d&&(l.rowSpan=Number(d.getAttribute(`val`)||1)),n.push(l)}w.push({cells:n})}r.push({type:`table`,zIndex:i.getZIndex(o,e),position:{x:u,y:d},size:{width:f,height:p},columns:m,rows:w,tableStyle:_,tableBorders:v,tableStyleId:y,tableFillColor:b,style:C?{fills:C.fills,fontColors:C.fontColors}:void 0})}return r}static buildFallbackTableStyle(e,t){let n=e.accent1||e.accent2||e.dk1;if(!n)return;let r=e.lt1||`#FFFFFF`,i={},a={};t?.firstRow&&(i.firstRow=n,a.firstRow=r),t?.firstCol&&(i.firstCol=this.lightenHex(n,.85),a.firstCol=void 0);let o=this.lightenHex(n,.92);return t?.bandRow&&(i.band2H=o),t?.bandCol&&(i.band2V=o),{fills:i,fontColors:a}}static lightenHex(e,t){let n=(e||``).replace(`#`,``);if(n.length!==6||/[^0-9a-fA-F]/.test(n))return e||`#FFFFFF`;let r=parseInt(n.substring(0,2),16),i=parseInt(n.substring(2,4),16),a=parseInt(n.substring(4,6),16),o=Math.round(r+(255-r)*t),s=Math.round(i+(255-i)*t),c=Math.round(a+(255-a)*t),l=e=>e.toString(16).padStart(2,`0`);return`#${l(o)}${l(s)}${l(c)}`}static findTbl(e){let t=e.getElementsByTagNameNS(`*`,`graphicData`)[0]??null;return t?t.getElementsByTagNameNS(`*`,`tbl`)[0]??null:null}static extractCellText(e,t,n){if(!e)return{text:``,font:{},align:{},padding:{left:0,top:0,right:0,bottom:0}};let r=e.getElementsByTagNameNS(`*`,`bodyPr`)[0]??null,a=`top`,o=n?.getElementsByTagNameNS(`*`,`tcPr`)[0]??null,s=o?.getAttribute(`anchor`)||o?.getAttribute(`vAlign`)||void 0,c=r?.getAttribute(`anchor`)||void 0,l=s||c;a=l===`ctr`?`middle`:l===`b`?`bottom`:`top`;let u=r?.getAttribute(`lIns`),d=r?.getAttribute(`tIns`),f=r?.getAttribute(`rIns`),p=r?.getAttribute(`bIns`),m={left:u?Number(u)/9525:6,top:d?Number(d)/9525:2,right:f?Number(f)/9525:6,bottom:p?Number(p)/9525:2},h=`left`,g=`Arial`,_=14,v,y=[],b=e.getElementsByTagNameNS(`*`,`p`);for(let e of Array.from(b)){let n=(e.getElementsByTagNameNS(`*`,`pPr`)[0]??null)?.getAttribute(`algn`)||void 0;n&&(h=n===`ctr`?`center`:n===`r`?`right`:n.startsWith(`just`)?`justify`:`left`);for(let n of Array.from(e.childNodes))if(n.nodeType===1){let e=n.localName;if(e===`r`){let e=n.getElementsByTagNameNS(`*`,`rPr`)[0]??null;if(e){g=(e.getElementsByTagNameNS(`*`,`latin`)[0]??null)?.getAttribute(`typeface`)??g;let n=e.getAttribute(`sz`);n&&(_=parseInt(n,10)/100);let r=e.querySelector(`*|solidFill`),a=i.getColorFromElement(r||null,t);a&&(v=a)}let r=n.getElementsByTagNameNS(`*`,`t`)[0]?.textContent??``;y.push(r)}else if(e===`br`)y.push(`
|
|
3
3
|
`);else if(e===`fld`){let e=n.getElementsByTagNameNS(`*`,`r`);for(let t of Array.from(e)){let e=t.getElementsByTagNameNS(`*`,`t`)[0]?.textContent??``;y.push(e)}}}}return{text:y.join(``).trim(),font:{name:g,size:_,color:v},align:{horizontal:h,vertical:a},padding:m}}static extractFillColor(e,t){if(!e||e.getElementsByTagNameNS(`*`,`noFill`)[0])return;let n=Array.from(e.children).find(e=>e.localName===`solidFill`);if(n)return i.getColorFromElement(n,t);let r=Array.from(e.getElementsByTagNameNS(`*`,`solidFill`));for(let n of r){let r=n.parentElement,a=!1;for(;r&&r!==e;){let e=r.localName;if(e===`ln`||e===`lnL`||e===`lnR`||e===`lnT`||e===`lnB`||e===`tcBorders`){a=!0;break}r=r.parentElement}if(!a){let e=i.getColorFromElement(n,t);if(e)return e}}}static extractCellBorders(e,t){let n={};if(!e)return n;let r={lnL:`left`,lnR:`right`,lnT:`top`,lnB:`bottom`};for(let a of Object.keys(r)){let o=e.getElementsByTagNameNS(`*`,a)[0]??null;if(!o)continue;let s=o.getAttribute(`w`),c=s?Number(s)/9525:void 0,l=o.getElementsByTagNameNS(`*`,`solidFill`)[0]??null,u=i.getColorFromElement(l,t),d=(o.getElementsByTagNameNS(`*`,`prstDash`)[0]??null)?.getAttribute(`val`)||``,f=this.mapPrstDashToCss(d);n[r[a]]={color:u,width:c,style:f}}return n}static extractTableStyleFlags(e){if(!e)return{};let t={};for(let n of[`firstRow`,`firstCol`,`lastRow`,`lastCol`,`bandRow`,`bandCol`])(e.getAttribute(n)===`1`||e.getAttribute(n)===`true`)&&(t[n]=!0);return t}static extractTableStyleId(e){if(!e)return;let t=e.getElementsByTagNameNS(`*`,`tblStyleId`)[0]||e.getElementsByTagNameNS(`*`,`tblStyle`)[0]||null,n=t?.getAttribute(`val`)||void 0,r=t?.textContent?.trim()||void 0,i=e.getAttribute(`tblStyle`)||void 0;return n||r||i||void 0}static extractTableBorders(e,t){if(!e)return;let n={},r=e.getElementsByTagNameNS(`*`,`tblBorders`)[0]??null;if(!r)return;let a={top:`top`,right:`right`,bottom:`bottom`,left:`left`,insideH:`insideH`,insideV:`insideV`};for(let e of Object.keys(a)){let o=r.getElementsByTagNameNS(`*`,e)[0]??null;if(!o)continue;let s=o.getElementsByTagNameNS(`*`,`ln`)[0]??o,c=s.getAttribute(`w`),l=c?Number(c)/9525:void 0,u=s.getElementsByTagNameNS(`*`,`solidFill`)[0]??null,d=i.getColorFromElement(u,t),f=(s.getElementsByTagNameNS(`*`,`prstDash`)[0]??null)?.getAttribute(`val`)||``,p=this.mapPrstDashToCss(f);n[a[e]]={color:d,width:l,style:p}}return n}static extractTableFill(e,t){if(!e)return;let n=Array.from(e.children).find(e=>e.localName===`solidFill`);if(n)return i.getColorFromElement(n,t);let r=Array.from(e.getElementsByTagNameNS(`*`,`solidFill`));for(let n of r){let r=n.parentElement,a=!1;for(;r&&r!==e;){if(r.localName===`tblBorders`){a=!0;break}r=r.parentElement}if(!a){let e=i.getColorFromElement(n,t);if(e)return e}}}static mapPrstDashToCss(e){let t=(e||``).toLowerCase();if(t){if(t===`solid`)return`solid`;if(t.includes(`dot`))return`dotted`;if(t.includes(`dash`))return`dashed`}}},g=class{static async extract(e,t,n,r){if(!e)return[];let a=[],o=e.getElementsByTagNameNS(`*`,`graphicFrame`);for(let s of Array.from(o)){let o=s.getElementsByTagNameNS(`*`,`graphicData`)[0]??null;if(!o)continue;let c=o.getElementsByTagNameNS(`*`,`chart`)[0]??null;if(!c)continue;let l=c.getAttribute(`r:id`)||c.getAttribute(`r:embed`)||void 0;if(!l)continue;let u=i.findRelationshipById(t,l)?.getAttribute(`Target`)||void 0;if(!u)continue;let d=this.resolvePath(u,`ppt/slides`),f=n.file(d);if(!f)continue;let p=await f.async(`string`),m=i.parseXml(p),h=this.parseChart(m,r);if(!h)continue;let g=s.getElementsByTagNameNS(`*`,`xfrm`)[0]??null,_=g?.getElementsByTagNameNS(`*`,`off`)[0]??null,v=g?.getElementsByTagNameNS(`*`,`ext`)[0]??null,y=_?i.getAttrAsNumber(_,`x`):0,b=_?i.getAttrAsNumber(_,`y`):0,x=v?i.getAttrAsNumber(v,`cx`):1e6,S=v?i.getAttrAsNumber(v,`cy`):6e5;a.push({type:`chart`,zIndex:i.getZIndex(s,e),chartType:h.type,position:{x:y,y:b},size:{width:x,height:S},categories:h.categories,series:h.series,palette:h.palette,title:h.title,showLegend:h.showLegend,showDataLabels:h.showDataLabels,stackedMode:h.stackedMode,valueFormat:h.valueFormat})}return a}static resolvePath(e,t){let n=(t+`/`+e).split(`/`),r=[];for(let e of n)e===`..`?r.pop():e!==`.`&&r.push(e);return r.join(`/`)}static parseChart(e,t){let n=e.getElementsByTagNameNS(`*`,`plotArea`)[0]||null;if(!n)return null;let r=this.extractTitle(e),i=!!e.getElementsByTagNameNS(`*`,`legend`)[0],a=!!n.getElementsByTagNameNS(`*`,`dLbls`)[0],o=n.getElementsByTagNameNS(`*`,`barChart`)[0]||null,s=n.getElementsByTagNameNS(`*`,`lineChart`)[0]||null,c=n.getElementsByTagNameNS(`*`,`areaChart`)[0]||null,l=n.getElementsByTagNameNS(`*`,`pieChart`)[0]||null,u=n.getElementsByTagNameNS(`*`,`scatterChart`)[0]||null,d=n.getElementsByTagNameNS(`*`,`dLbls`)[0]?.getElementsByTagNameNS(`*`,`numFmt`)[0]?.getAttribute(`formatCode`)||void 0,f=[t.accent1,t.accent2,t.accent3,t.accent4,t.accent5,t.accent6].filter(Boolean);if(o){let e=this.extractCategories(o)||[],n=this.extractSeries(o,t)||[],s=(o.getElementsByTagNameNS(`*`,`barDir`)[0]?.getAttribute(`val`)||`col`)===`bar`?`bar`:`column`,c=o.getElementsByTagNameNS(`*`,`grouping`)[0]?.getAttribute(`val`)||`clustered`;return{type:s,categories:e,series:n,palette:f,title:r,showLegend:i,showDataLabels:a,stackedMode:c===`stacked`?`stacked`:c===`percentStacked`?`percent`:`none`,valueFormat:d}}if(s){let e=this.extractCategories(s)||[],n=this.extractSeries(s,t)||[],o=s.getElementsByTagNameNS(`*`,`grouping`)[0]?.getAttribute(`val`)||`standard`;return{type:`line`,categories:e,series:n,palette:f,title:r,showLegend:i,showDataLabels:a,stackedMode:o===`stacked`?`stacked`:o===`percentStacked`?`percent`:`none`,valueFormat:d}}if(c){let e=this.extractCategories(c)||[],n=this.extractSeries(c,t)||[],o=c.getElementsByTagNameNS(`*`,`grouping`)[0]?.getAttribute(`val`)||`standard`;return{type:`area`,categories:e,series:n,palette:f,title:r,showLegend:i,showDataLabels:a,stackedMode:o===`stacked`?`stacked`:o===`percentStacked`?`percent`:`none`,valueFormat:d}}return l?{type:`pie`,categories:this.extractCategories(l)||[],series:this.extractSeries(l,t)||[],palette:f,title:r,showLegend:i,showDataLabels:a,stackedMode:`none`,valueFormat:d}:u?{type:`scatter`,categories:[],series:this.extractScatterSeries(u,t)||[],palette:f,title:r,showLegend:i,showDataLabels:a,stackedMode:`none`,valueFormat:d}:null}static extractTitle(e){let t=e.getElementsByTagNameNS(`*`,`title`)[0]||null;if(!t)return;let n=t.getElementsByTagNameNS(`*`,`tx`)[0]||null,r=n?.getElementsByTagNameNS(`*`,`rich`)[0]||null;return r?r.getElementsByTagNameNS(`*`,`t`)[0]?.textContent||void 0:n?.getElementsByTagNameNS(`*`,`v`)[0]?.textContent||void 0}static extractCategories(e){let t=e.getElementsByTagNameNS(`*`,`cat`)[0]||null;if(!t)return null;let n=t.getElementsByTagNameNS(`*`,`strCache`)[0]||null;if(n)return Array.from(n.getElementsByTagNameNS(`*`,`pt`)).map(e=>e.getElementsByTagNameNS(`*`,`v`)[0]?.textContent||``);let r=t.getElementsByTagNameNS(`*`,`numCache`)[0]||null;return r?Array.from(r.getElementsByTagNameNS(`*`,`pt`)).map(e=>Number(e.getElementsByTagNameNS(`*`,`v`)[0]?.textContent||0)):null}static extractSeries(e,t){let n=[],r=Array.from(e.getElementsByTagNameNS(`*`,`ser`)),a=0;for(let e of r){let r=e.getElementsByTagNameNS(`*`,`tx`)[0]?.getElementsByTagNameNS(`*`,`v`)[0]?.textContent||void 0,o=e.getElementsByTagNameNS(`*`,`numCache`)[0]||null,s=[];o&&(s=Array.from(o.getElementsByTagNameNS(`*`,`pt`)).map(e=>Number(e.getElementsByTagNameNS(`*`,`v`)[0]?.textContent||0)));let c=e.getElementsByTagNameNS(`*`,`dLbls`)[0]?.getElementsByTagNameNS(`*`,`numFmt`)[0]?.getAttribute(`formatCode`)||void 0,l=(e.getElementsByTagNameNS(`*`,`spPr`)[0]||null)?.getElementsByTagNameNS(`*`,`solidFill`)[0]||null,u=i.getColorFromElement(l,t);n.push({name:r,values:s,color:u,valueFormat:c}),a+=1}return n}static extractScatterSeries(e,t){let n=[],r=Array.from(e.getElementsByTagNameNS(`*`,`ser`));for(let e of r){let r=e.getElementsByTagNameNS(`*`,`tx`)[0]?.getElementsByTagNameNS(`*`,`v`)[0]?.textContent||void 0,a=e.getElementsByTagNameNS(`*`,`xVal`)[0]?.getElementsByTagNameNS(`*`,`numCache`)[0]||null,o=e.getElementsByTagNameNS(`*`,`yVal`)[0]?.getElementsByTagNameNS(`*`,`numCache`)[0]||null,s=a?Array.from(a.getElementsByTagNameNS(`*`,`pt`)):[],c=o?Array.from(o.getElementsByTagNameNS(`*`,`pt`)):[],l=Math.min(s.length,c.length),u=[];for(let e=0;e<l;e++){let t=Number(s[e].getElementsByTagNameNS(`*`,`v`)[0]?.textContent||0),n=Number(c[e].getElementsByTagNameNS(`*`,`v`)[0]?.textContent||0);u.push({x:t,y:n})}let d=(e.getElementsByTagNameNS(`*`,`spPr`)[0]||null)?.getElementsByTagNameNS(`*`,`solidFill`)[0]||null,f=i.getColorFromElement(d,t),p=e.getElementsByTagNameNS(`*`,`dLbls`)[0]?.getElementsByTagNameNS(`*`,`numFmt`)[0]?.getAttribute(`formatCode`)||void 0;n.push({name:r,points:u,color:f,valueFormat:p})}return n}},_=class{zip;constructor(e){this.zip=e}async extractSlides(){let e=await this.zip.file(`ppt/theme/theme1.xml`)?.async(`string`),t=e?i.parseXml(e):null,n=i.extractThemeColors(t),r=i.extractThemeTableStyles(t),o=Object.keys(this.zip.files).filter(e=>/^ppt\/slides\/slide\d+\.xml$/.test(e)).sort((e,t)=>parseInt(e.match(/slide(\d+)\.xml$/)?.[1]||`0`,10)-parseInt(t.match(/slide(\d+)\.xml$/)?.[1]||`0`,10)),s=await this.getSlidePathsInPresentationOrder(o),c=[];for(let e of s){let t=await this.zip.file(e).async(`string`),o=i.parseXml(t),s=o.querySelector(`p\\:spTree`)||o.getElementsByTagNameNS(`*`,`spTree`)[0];if(!s){console.warn(`Warning: no <spTree> found in ${e}`),c.push([]);continue}let l=e.replace(`slides/`,`slides/_rels/`)+`.rels`,u=this.zip.file(l)?i.parseXml(await this.zip.file(l).async(`string`)):i.parseXml(`<Relationships/>`),d=i.findRelationshipByTypeSuffix(u,`/slideLayout`)?.getAttribute(`Target`)||void 0,f=null,_=null;if(d){let e=this.resolvePath(d,`ppt/slides`),t=await this.zip.file(e)?.async(`string`);if(t){let n=i.parseXml(t);f=n.querySelector(`p\\:spTree`)||n.getElementsByTagNameNS(`*`,`spTree`)[0]||null;let r=e.replace(`slideLayouts/`,`slideLayouts/_rels/`)+`.rels`;_=this.zip.file(r)?i.parseXml(await this.zip.file(r).async(`string`)):i.parseXml(`<Relationships/>`)}}let v=null,y=null;if(_){let e=i.findRelationshipByTypeSuffix(_,`/slideMaster`)?.getAttribute(`Target`)||void 0;if(e){let t=this.resolvePath(e,`ppt/slideLayouts`),n=await this.zip.file(t)?.async(`string`);if(n){let e=i.parseXml(n);v=e.querySelector(`p\\:spTree`)||e.getElementsByTagNameNS(`*`,`spTree`)[0]||null;let r=t.replace(`slideMasters/`,`slideMasters/_rels/`)+`.rels`;y=this.zip.file(r)?i.parseXml(await this.zip.file(r).async(`string`)):i.parseXml(`<Relationships/>`)}}}let b=await this.extractBackground(o,u,`ppt/slides`,this.zip,n),x=_?await this.extractBackground(f?.ownerDocument||null,_,`ppt/slideLayouts`,this.zip,n):null,S=y?await this.extractBackground(v?.ownerDocument||null,y,`ppt/slideMasters`,this.zip,n):null,C=b||x||S;C&&(C.zIndex=-1);let w=v?a.extract(v,n,{context:`master`}):[],T=v&&y?await p.extract(v,y,this.zip,`ppt/slideMasters`):[],E=v?m.extract(v,n):[],D=f?a.extract(f,n,{context:`layout`}):[],O=f&&_?await p.extract(f,_,this.zip,`ppt/slideLayouts`):[],k=f?m.extract(f,n):[],A=this.extractPlaceholderGeom(v),j=this.extractPlaceholderGeom(f),M={...A,...j},N=this.extractPlaceholderTypes(v),P=this.extractPlaceholderTypes(f),F={...N,...P},I=a.extract(s,n,{context:`slide`,placeholderGeom:M,placeholderTypes:F}),L=await p.extract(s,u,this.zip,`ppt/slides`),R=h.extract(s,n,r),z=await g.extract(s,u,this.zip,n),B=m.extract(s,n),V=(e,t)=>e.map(e=>({...e,zIndex:t+(e.zIndex??0)}));c.push([...C?[C]:[],...V(E,0),...V(T,0),...V(w,0),...V(k,1e4),...V(O,1e4),...V(D,1e4),...V(B,2e4),...V(R,2e4),...V(z,2e4),...V(L,2e4),...V(I,2e4)])}return c}resolvePath(e,t){let n=(t+`/`+e).split(`/`),r=[];for(let e of n)e===`..`?r.length&&r.pop():e!==`.`&&e!==``&&r.push(e);return r.join(`/`)}extractPlaceholderTypes(e){let t={};if(!e)return t;let n=e.getElementsByTagNameNS(`*`,`sp`);for(let e of Array.from(n)){let n=(e.getElementsByTagNameNS(`*`,`nvPr`)[0]??null)?.getElementsByTagNameNS(`*`,`ph`)[0]??null;if(!n)continue;let r=n.getAttribute(`idx`)||void 0,i=n.getAttribute(`type`)||void 0;r&&i&&(t[r]=i)}return t}extractPlaceholderGeom(e){let t={};if(!e)return t;let n=e.getElementsByTagNameNS(`*`,`sp`);for(let e of Array.from(n)){let n=(e.getElementsByTagNameNS(`*`,`nvPr`)[0]??null)?.getElementsByTagNameNS(`*`,`ph`)[0]??null,r=n?.getAttribute(`idx`)||void 0,a=n?.getAttribute(`type`)||void 0,o=r||(a?`type:`+a:void 0);if(!o)continue;let s=e.getElementsByTagNameNS(`*`,`xfrm`)[0]??null,c=s?.getElementsByTagNameNS(`*`,`off`)[0]??null,l=s?.getElementsByTagNameNS(`*`,`ext`)[0]??null;if(!c||!l)continue;let u={x:i.getAttrAsNumber(c,`x`),y:i.getAttrAsNumber(c,`y`),cx:i.getAttrAsNumber(l,`cx`),cy:i.getAttrAsNumber(l,`cy`)};t[o]=u,a===`title`?t[`type:ctrTitle`]=u:a===`ctrTitle`&&(t[`type:title`]=u)}return t}async extractBackground(e,t,n,r,a){if(!e)return null;let o=e.getElementsByTagNameNS(`*`,`bg`)[0];if(!o)return null;let s=o.getElementsByTagNameNS(`*`,`bgPr`)[0]||null,c=s?.getElementsByTagNameNS(`*`,`solidFill`)[0]||null,l=i.getColorFromElement(c,a);if(l)return{type:`background`,fillColor:l};let u=((o.getElementsByTagNameNS(`*`,`bgRef`)[0]||null)?.getElementsByTagNameNS(`*`,`schemeClr`)[0]||null)?.getAttribute(`val`)||void 0;if(u&&a[u])return{type:`background`,fillColor:a[u]};let d=((s?.getElementsByTagNameNS(`*`,`blipFill`)[0]||null)?.getElementsByTagNameNS(`*`,`blip`)[0]||null)?.getAttribute(`r:embed`)||void 0;if(d&&t){let e=i.findRelationshipById(t,d)?.getAttribute(`Target`)||void 0;if(e){let t=this.resolvePath(e,n),i=r.file(t);if(i){let e=await i.async(`base64`);return{type:`background`,imageSrc:`data:${f(t)};base64,${e}`}}}}return null}async getSlidePathsInPresentationOrder(e){let t=this.zip.file(`ppt/presentation.xml`),n=this.zip.file(`ppt/_rels/presentation.xml.rels`);if(!t||!n)return e;try{let[r,a]=await Promise.all([t.async(`string`),n.async(`string`)]),o=i.parseXml(r),s=i.parseXml(a),c=[],l=Array.from(o.getElementsByTagNameNS(`*`,`sldId`));if(l.length===0)return e;for(let e of l){let t=e.getAttribute(`r:id`);if(!t)continue;let n=i.findRelationshipById(s,t)?.getAttribute(`Target`);if(!n)continue;let r=this.resolvePath(n,`ppt`);this.zip.file(r)&&!c.includes(r)&&c.push(r)}return c}catch{return e}}},v=class{zip;baseWidthPx;baseHeightPx;async load(e){return this.zip=await n.default.loadAsync(e),await this.computeSlideBaseSize(),new _(this.zip).extractSlides()}async getBaseSizePx(){return this.baseWidthPx&&this.baseHeightPx?{width:this.baseWidthPx,height:this.baseHeightPx}:(await this.computeSlideBaseSize(),{width:Number.isFinite(this.baseWidthPx)&&this.baseWidthPx>0?this.baseWidthPx:960,height:Number.isFinite(this.baseHeightPx)&&this.baseHeightPx>0?this.baseHeightPx:540})}async computeSlideBaseSize(){try{if(!this.zip)return;let e=this.zip.file(`ppt/presentation.xml`);if(!e)return;let t=await e.async(`string`),n=i.parseXml(t).getElementsByTagNameNS(`*`,`sldSz`)[0],r=n?Number(n.getAttribute(`cx`)||0):0,a=n?Number(n.getAttribute(`cy`)||0):0;Number.isFinite(r)&&Number.isFinite(a)&&r>0&&a>0&&(this.baseWidthPx=r/9525,this.baseHeightPx=a/9525)}catch{}}};function y(e){let t=(e,t=0)=>Number.isFinite(e)?e:t,n=t(e.position?.x,0)/9525,r=t(e.position?.y,0)/9525,i=t(e.size?.width,0)/9525,a=t(e.size?.height,0)/9525,o=e.padding||{left:0,top:0,right:0,bottom:0},s=e.align?.horizontal||`left`,c=e.align?.vertical===`middle`?`center`:e.align?.vertical===`bottom`?`flex-end`:`flex-start`,l=e.html?e.html:b(e.content);return`<div style="
|
|
4
4
|
position: absolute;
|
|
@@ -117,18 +117,17 @@ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./jszip.min-BXq
|
|
|
117
117
|
`)}function L(e,t,n,r){let i=e.series[0],a=i&&i.values?i.values:[],o=a.reduce((e,t)=>e+Math.max(0,t),0)||1,s=t/2,c=n/2,l=Math.min(t,n)*.35,u=0,d=[];return a.forEach((t,n)=>{let a=Math.max(0,t)/o,f=u+a*2*Math.PI,p=s+l*Math.cos(u),m=c+l*Math.sin(u),h=s+l*Math.cos(f),g=c+l*Math.sin(f),_=+(f-u>Math.PI),v=i&&i.color||r[n%r.length],y=`M ${s} ${c} L ${p} ${m} A ${l} ${l} 0 ${_} 1 ${h} ${g} Z`;if(d.push(`<path d="${y}" fill="${v}" />`),e.showDataLabels&&a>0){let e=(u+f)/2,t=s+(l+12)*Math.cos(e),n=c+(l+12)*Math.sin(e);d.push(`<text x="${t}" y="${n}" text-anchor="middle" font-size="10" fill="#000">${(a*100).toFixed(0)}%</text>`)}u=f}),d.join(`
|
|
118
118
|
`)}function R(e,t,n,r,i){let a=t-r*2,o=n-r*2,s=[];for(let t of e.series){let e=t.points||[];for(let t of e)s.push(t)}let c=Math.min(...s.map(e=>e.x),0),l=Math.max(...s.map(e=>e.x),1),u=Math.min(...s.map(e=>e.y),0),d=Math.max(...s.map(e=>e.y),1),f=[];return f.push(`<line x1="${r}" y1="${n-r}" x2="${t-r}" y2="${n-r}" stroke="#999" stroke-width="1" />`),f.push(`<line x1="${r}" y1="${r}" x2="${r}" y2="${n-r}" stroke="#999" stroke-width="1" />`),B(c,l,4).forEach(t=>{let i=r+(t-c)/Math.max(1e-9,l-c)*a,o=n-r;f.push(`<line x1="${i}" y1="${o}" x2="${i}" y2="${o+4}" stroke="#999" stroke-width="1" />`),f.push(`<text x="${i}" y="${o+16}" text-anchor="middle" font-size="10" fill="#666">${H(t,e.valueFormat)}</text>`)}),B(u,d,4).forEach(i=>{let a=n-r-(i-u)/Math.max(1e-9,d-u)*o;f.push(`<line x1="${r-4}" y1="${a}" x2="${r}" y2="${a}" stroke="#999" stroke-width="1" />`),f.push(`<text x="${r-6}" y="${a+3}" text-anchor="end" font-size="10" fill="#666">${H(i,e.valueFormat)}</text>`),f.push(`<line x1="${r}" y1="${a}" x2="${t-r}" y2="${a}" stroke="#eee" stroke-width="1" />`)}),e.series.forEach((t,s)=>{let p=t.color||i[s%i.length];(t.points||[]).forEach(i=>{let s=r+(i.x-c)/Math.max(1e-9,l-c)*a,m=n-r-(i.y-u)/Math.max(1e-9,d-u)*o;if(f.push(`<circle cx="${s}" cy="${m}" r="3" fill="${p}" />`),e.showDataLabels){let n=t.valueFormat||e.valueFormat;f.push(`<text x="${s+5}" y="${m-5}" font-size="10" fill="#000">${H(i.y,n)}</text>`)}})}),f.join(`
|
|
119
119
|
`)}function z(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`)}function B(e,t,n){let r=t-e;if(r<=0)return[e,t];let i=V(r/n,!0),a=[],o=Math.ceil(e/i)*i;for(;o<=t+1e-9;)a.push(Number(o.toFixed(10))),o+=i;return a}function V(e,t){let n=Math.floor(Math.log10(e)),r=e/10**n,i;return i=t?r<1.5?1:r<3?2:r<7?5:10:r<=1?1:r<=2?2:r<=5?5:10,i*10**n}function H(e,t){if(!t)return Math.abs(e)>=1e3?`${Math.round(e)}`:Math.abs(e)>=10?e.toFixed(0):Math.abs(e)>=1?e.toFixed(1):e.toFixed(2);let n=/%/.test(t),r=0,i=t.match(/\.([0#]+)/);i&&(r=i[1].length);let a=t.match(/([$€£¥])/),o=a?a[1]:``,s=/#,##0/.test(t),c=e;n&&(c*=100);let l=c.toFixed(r);if(s){let[e,t]=l.split(`.`),n=e.replace(/\B(?=(\d{3})+(?!\d))/g,`,`);l=t===void 0?n:`${n}.${t}`}return o&&(l=o+l),n&&(l+=`%`),l}function U(e,t,n,r){let i=n,a=n-12,o=[];return e.series.forEach((e,t)=>{let n=e.color||r[t%r.length],s=e.name||`Series ${t+1}`;o.push(`<rect x="${i}" y="${a}" width="10" height="10" fill="${n}" />`),o.push(`<text x="${i+14}" y="${a+9}" font-size="10" fill="#333">${z(s)}</text>`),i+=14+s.length*6+10}),o.join(`
|
|
120
|
-
`)}var W=class{static render(e,t={}){let n=(e,t)=>typeof e==`number`&&Number.isFinite(e)&&e>0?e:t,r=n(t.baseWidth,960),i=n(t.baseHeight,540),a=n(t.width,r),o=n(t.height,i),s=t.scaleToFit===!0,c=s?t.letterbox!==!1:t.letterbox===!0,d=e.map(e=>{switch(e.type){case`background`:{let t=e.imageSrc?`background-image: url('${l(e.imageSrc)}'); background-size: cover; background-position: center; background-repeat: no-repeat;`:`background-color: ${u(e.fillColor)};`;return`<div style="position:absolute; z-index:${Number.isFinite(e.zIndex)?e.zIndex:-1}; left:0; top:0; width:${r}px; height:${i}px; ${t}"></div>`}case`text`:return y(e);case`image`:return x(e);case`shape`:return C(e,{scaleStrokes:s});case`table`:return k(e);case`chart`:return N(e);default:return typeof console<`u`&&console.warn&&console.warn(`[pptx-to-html] Unsupported element type: ${e?.type}`),``}});if(s)
|
|
120
|
+
`)}var W=class{static render(e,t={}){let n=(e,t)=>typeof e==`number`&&Number.isFinite(e)&&e>0?e:t,r=n(t.baseWidth,960),i=n(t.baseHeight,540),a=n(t.width,r),o=n(t.height,i),s=t.scaleToFit===!0,c=s?t.letterbox!==!1:t.letterbox===!0,d=e.map(e=>{switch(e.type){case`background`:{let t=e.imageSrc?`background-image: url('${l(e.imageSrc)}'); background-size: cover; background-position: center; background-repeat: no-repeat;`:`background-color: ${u(e.fillColor)};`;return`<div style="position:absolute; z-index:${Number.isFinite(e.zIndex)?e.zIndex:-1}; left:0; top:0; width:${r}px; height:${i}px; ${t}"></div>`}case`text`:return y(e);case`image`:return x(e);case`shape`:return C(e,{scaleStrokes:s});case`table`:return k(e);case`chart`:return N(e);default:return typeof console<`u`&&console.warn&&console.warn(`[pptx-to-html] Unsupported element type: ${e?.type}`),``}});if(s)if(c){let e=Math.min(a/r,o/i);return`<div class="slide-container" style="position: relative; width: ${a}px; height: ${o}px; overflow: hidden; background-color: #000;">
|
|
121
121
|
<div class="slide" style="position: absolute; left: ${(a-r*e)/2}px; top: ${(o-i*e)/2}px; width: ${r}px; height: ${i}px; transform: scale(${e}); transform-origin: top left; background-color: #fff;">
|
|
122
122
|
${d.join(`
|
|
123
123
|
`)}
|
|
124
124
|
</div>
|
|
125
|
-
</div>`}return`<div class="slide-container" style="position: relative; width: ${a}px; height: ${o}px; overflow: hidden;">
|
|
125
|
+
</div>`}else return`<div class="slide-container" style="position: relative; width: ${a}px; height: ${o}px; overflow: hidden;">
|
|
126
126
|
<div class="slide" style="position: absolute; left: 0; top: 0; width: ${r}px; height: ${i}px; transform: scale(${a/r}, ${o/i}); transform-origin: top left; background-color: #fff;">
|
|
127
127
|
${d.join(`
|
|
128
128
|
`)}
|
|
129
129
|
</div>
|
|
130
|
-
</div
|
|
130
|
+
</div>`;return`<div class="slide" style="position: relative; width: ${a}px; height: ${o}px; overflow: hidden; background-color: #fff;">
|
|
131
131
|
${d.join(`
|
|
132
132
|
`)}
|
|
133
|
-
</div>`}};async function G(e,t){t?.domParserFactory&&i.setDomParser(t.domParserFactory);let n=new v,r=await n.load(e),a=await n.getBaseSizePx(),o={...t||{},baseWidth:a.width,baseHeight:a.height};return r.map(e=>W.render(e,o))}export{G as pptxToHtml};
|
|
134
|
-
//# sourceMappingURL=dist-BQOFgIxk.js.map
|
|
133
|
+
</div>`}};async function G(e,t){t?.domParserFactory&&i.setDomParser(t.domParserFactory);let n=new v,r=await n.load(e),a=await n.getBaseSizePx(),o={...t||{},baseWidth:a.width,baseHeight:a.height};return r.map(e=>W.render(e,o))}export{G as pptxToHtml};
|