@codename/deck 0.1.1 → 0.1.2
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 +2 -2
- package/dist/deck.bundle.mjs +49 -49
- package/dist/deck.bundle.mjs.map +3 -3
- package/dist/deck.css +1 -1
- package/dist/deck.js +12 -12
- package/dist/deck.js.map +2 -2
- package/dist/deck.mjs +4 -4
- package/dist/deck.mjs.map +2 -2
- package/dist/types/version.d.ts +1 -1
- package/docs/format.md +1 -1
- package/docs/host.md +2 -2
- package/package.json +1 -1
- package/src/blocks.js +1 -1
- package/src/deck.css +1 -1
- package/src/pptx.js +4 -1
- package/src/version.js +1 -1
package/dist/deck.css
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
.deck-slide pre.has-marks .deck-line:not(.is-marked) { opacity: 0.45; }
|
|
34
34
|
.deck-slide blockquote { border-inline-start: 0.25em solid var(--deck-fill); padding-inline-start: 0.9em; margin-inline: 0; font-style: italic; }
|
|
35
35
|
.deck-slide img { max-inline-size: 100%; max-block-size: 100%; object-fit: contain; }
|
|
36
|
-
.deck-slide .deck-picture { flex: 1; min-block-size: 0; display: grid; place-items: center; }
|
|
36
|
+
.deck-slide .deck-picture { flex: 1; min-block-size: 0; display: grid; grid-template: minmax(0, 1fr) / minmax(0, 1fr); place-items: center; }
|
|
37
37
|
.deck-slide .deck-picture img { block-size: 100%; }
|
|
38
38
|
.deck-table { overflow: hidden; }
|
|
39
39
|
.deck-slide table { border-collapse: collapse; inline-size: 100%; font-size: 0.85em; }
|
package/dist/deck.js
CHANGED
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
`)),n=E+1}let o=t.slice(n,s).join(`
|
|
9
9
|
`),d="",c=/^(\?\?\?|Notes?:)[ \t]*(.*)$/m.exec(o);c&&c.index!==void 0&&!/^```/m.test(o.slice(c.index))&&(d=[c[2],o.slice(c.index+c[0].length)].join(`
|
|
10
10
|
`).trim(),o=o.slice(0,c.index)),o=o.replace(/<aside\b[^>]*class=["']?notes["']?[^>]*>([\s\S]*?)<\/aside>/gi,(E,C)=>(d+=(d?`
|
|
11
|
-
`:"")+C.replace(/<[^>]*>/g," ").replace(/[ \t]+/g," ").trim(),E.replace(/[^\n]/g," "))),o=o.replace(/^(:{3,})[ \t]*\{?[ \t]*\.?notes[ \t]*\}?[ \t]*\n([\s\S]*?)\n\1[ \t]*$/gm,(E,C,
|
|
12
|
-
`:"")+
|
|
11
|
+
`:"")+C.replace(/<[^>]*>/g," ").replace(/[ \t]+/g," ").trim(),E.replace(/[^\n]/g," "))),o=o.replace(/^(:{3,})[ \t]*\{?[ \t]*\.?notes[ \t]*\}?[ \t]*\n([\s\S]*?)\n\1[ \t]*$/gm,(E,C,Z)=>(d+=(d?`
|
|
12
|
+
`:"")+Z.trim(),E.replace(/[^\n]/g," ")));let u=[...o.matchAll(/<!--([\s\S]*?)-->/g)].at(-1);u&&u.index!==void 0&&!o.slice(u.index+u[0].length).trim()&&(d=[u[1].trim(),d].filter(Boolean).join(`
|
|
13
13
|
`),o=o.slice(0,u.index));let h=[],f="default",k=n,m="",w=[],y=()=>h.push({name:f,text:w.join(`
|
|
14
14
|
`),start:e[k]}),_=bn(o.split(`
|
|
15
15
|
`));for(let[E,C]of o.split(`
|
|
16
|
-
`).entries()){let
|
|
16
|
+
`).entries()){let Z=/^\s*(`{3,}|~{3,})/.exec(C)?.[1],X=kn.exec(C)??(_.has(E)?[C,_.get(E)]:null);if(m)Z&&C.trimStart().startsWith(m)&&(m="");else if(Z)m=Z;else if(X){y(),f=X[1],w=[],k=n+E+1;continue}w.push(C)}y();let U=h.filter((E,C)=>C>0||E.text.trim()||h.length===1),q=/^#{1,6}\s+(.+)$/m.exec(o.replace(/^```[\s\S]*?^```/gm,""));return{index:i,start:e[r?r[0]-1:n],end:e[s]-1,settings:a,slots:U,notes:d,title:String(a.title??q?.[1]??"").trim()}}var vt=/^[a-z][a-z0-9-]{0,31}$/,yn=/^(auto|min-content|max-content|\d{1,2}(\.\d)?fr|\d{1,3}%)$/,wn=["Title Slide","Title and Content","Section Header","Two Content","Comparison","Title Only","Blank","Content with Caption","Picture with Caption"],St={align:["start","center","end"],justify:["start","center","end"],paper:["paper","fill","ink","soft"],title:["normal","large","huge"]},Ne={title:"cover","title-slide":"cover","two-columns":"two-cols","two-column":"two-cols",columns:"two-cols",comparison:"two-cols-header","three-columns":"three-cols","section-header":"section",divider:"section",big:"fact",number:"fact","image-text":"image-right",closing:"end",thanks:"end"},qe={name:"standard",tokens:{},layouts:Object.fromEntries(Object.entries({default:{label:{en:"Title and content",fr:"Titre et contenu"},pptx:"Title and Content"},cover:{label:{en:"Cover",fr:"Couverture"},justify:"center",paper:"fill",title:"huge",pptx:"Title Slide",numbered:!1},intro:{label:{en:"Introduction",fr:"Introduction"},justify:"center",paper:"fill",title:"large",pptx:"Title Slide",numbered:!1},section:{label:{en:"Section",fr:"Section"},justify:"center",paper:"ink",title:"huge",pptx:"Section Header",numbered:!1},center:{label:{en:"Centred",fr:"Centré"},justify:"center",align:"center",pptx:"Title Only"},statement:{label:{en:"Statement",fr:"Affirmation"},justify:"center",align:"center",title:"large",pptx:"Title Only"},fact:{label:{en:"Big number",fr:"Grand chiffre"},justify:"center",align:"center",title:"huge",pptx:"Title Only"},quote:{label:{en:"Quote",fr:"Citation"},justify:"center",pptx:"Title Only"},end:{label:{en:"Closing",fr:"Clôture"},justify:"center",align:"center",paper:"fill",title:"large",pptx:"Title Slide",numbered:!1},full:{label:{en:"Full",fr:"Plein cadre"},pptx:"Blank",numbered:!1},none:{label:{en:"Blank",fr:"Vide"},pptx:"Blank",numbered:!1},"two-cols":{label:{en:"Two columns",fr:"Deux colonnes"},slots:["default","right"],areas:"default right",columns:"1fr 1fr",pptx:"Two Content"},"two-cols-header":{label:{en:"Comparison",fr:"Comparaison"},slots:["default","left","right","bottom"],areas:"default default | left right | bottom bottom",columns:"1fr 1fr",rows:"auto 1fr auto",pptx:"Comparison"},"three-cols":{label:{en:"Three columns",fr:"Trois colonnes"},slots:["default","left","middle","right"],areas:"default default default | left middle right",columns:"1fr 1fr 1fr",rows:"auto 1fr",pptx:"Comparison"},"image-left":{label:{en:"Picture left",fr:"Image à gauche"},pptx:"Picture with Caption",justify:"center"},"image-right":{label:{en:"Picture right",fr:"Image à droite"},pptx:"Picture with Caption",justify:"center"},image:{label:{en:"Picture",fr:"Image"},pptx:"Blank",numbered:!1}}).map(([t,e])=>[t,$t(e).layout]))};function $t(t){let e=[];if(!t||typeof t!="object")return{layout:null,problems:["not a layout"]};let n={},s=Array.isArray(t.slots)||typeof t.slots=="string"?[t.slots].flat().map(String):t.slots&&typeof t.slots=="object"?Object.entries(t.slots).map(([f,k])=>(k&&typeof k=="object"&&(n[f]=Sn(k)),f==="title"?"default":f)):["default"],r=[...new Set(s)];if(!r.every(f=>vt.test(f)))return{layout:null,problems:["a slot name is not a-z, 0-9 and -"]};r.includes("default")||r.unshift("default");let a=(Array.isArray(t.areas)?t.areas.map(f=>[f].flat().join(" ")):String(t.areas??r.join(" ")).split(/\||\n/)).map(f=>f.trim().replace(/^"|"$/g,"").split(/\s+/)).filter(f=>f.length&&f[0]),l=a[0]?.length??0;if(!a.length||a.some(f=>f.length!==l)||a.flat().some(f=>f!=="."&&!r.includes(f)))return{layout:null,problems:["areas are not a rectangle of its slots"]};for(let f of r){let k=a.flatMap((y,_)=>y.map((U,q)=>[U,q,_])).filter(([y])=>y===f);if(!k.length){f!=="default"&&e.push(`slot ${f} has no area`);continue}let m=k.map(y=>y[1]),w=k.map(y=>y[2]);if(k.length!==(Math.max(...m)-Math.min(...m)+1)*(Math.max(...w)-Math.min(...w)+1))return{layout:null,problems:[`slot ${f} is not a rectangle`]}}let o=(f,k)=>{let m=f===void 0?Array(k).fill("1fr"):(Array.isArray(f)?f:String(f).split(/\s+/)).map(String);return m.length===k&&m.every(w=>yn.test(w))?m:null},d=o(t.columns,l),c=o(t.rows,a.length);if(!d||!c)return{layout:null,problems:["columns or rows are not tracks deck knows (auto, 1fr, 40%…), one per column or row"]};let p=(f,k)=>{let m=String(t[f]??k);return St[f].includes(m)?m:(e.push(`${f} ${m} is not one of ${St[f].join(", ")}`),k)},u=typeof t.label=="string"||t.label&&typeof t.label=="object"?t.label:void 0,h=f=>typeof f=="string"?f.slice(0,300):void 0;return{layout:{label:u,intent:h(t.intent),use_when:h(t.use_when),avoid_when:h(t.avoid_when),slots:r,budgets:n,areas:a,columns:d,rows:c,align:p("align","start"),justify:p("justify","start"),paper:p("paper","paper"),title:p("title","normal"),pptx:wn.includes(t.pptx)?t.pptx:r.length>1?"Comparison":"Title and Content",numbered:t.numbered!==!1},problems:e}}function Sn(t){let e={};for(let n of["max_words","max_chars","item_max_words","heading_max_words"])Number.isInteger(t[n])&&t[n]>0&&(e[n]=t[n]);return Array.isArray(t.items)&&t.items.length===2&&t.items.every(Number.isInteger)&&(e.items=t.items),typeof t.required=="boolean"&&(e.required=t.required),typeof t.kind=="string"&&/^[a-z-]{1,20}$/.test(t.kind)&&(e.kind=t.kind),e}function vn(t){if(!t||typeof t!="object")return{};if(!JSON.stringify(t).includes('"$value"'))return t;let e=u=>u&&typeof u=="object"&&"$value"in u?u.$value:u,n=u=>{let h=e(u);return typeof h=="string"?h:typeof h?.hex=="string"?h.hex:void 0},s=u=>{let h=e(u);return Array.isArray(h)?h.map(String):typeof h=="string"?[h]:void 0},r={bg:"paper",background:"paper",paper:"paper",fg:"ink",text:"ink",ink:"ink",accent:"primary",primary:"primary",muted:"muted",surface:"soft",soft:"soft"},i=u=>Object.fromEntries(Object.entries(u??{}).filter(([h])=>h in r).map(([h,f])=>[r[h],n(f)]).filter(([,h])=>h)),a=t.color??t.colour??{},l={...i(a),...i(a.light)},o=i(a.dark);Object.keys(o).length&&(l.dark=o);let d=t.font??t.fontFamily??{},c=s(d.heading??d.display??d.sans),p=s(d.body??d.text??d.sans);return(c||p)&&(l.fonts={heading:c??p,body:p??c}),l}function De(...t){let e={name:"standard",tokens:{},layouts:{...qe.layouts}},n=[];for(let s of t)if(!(!s||typeof s!="object")){typeof s.name=="string"&&(e.name=s.name),s.tokens&&typeof s.tokens=="object"&&(e.tokens={...e.tokens,...vn(s.tokens)});for(let[r,i]of Object.entries(s.layouts??s.types??{})){if(!vt.test(r)){n.push(`layout ${r}: not a-z, 0-9 and -`);continue}let{layout:a,problems:l}=$t(i);n.push(...l.map(o=>`layout ${r}: ${o}`)),a&&(e.layouts[r]=a)}}return{kit:e,problems:n}}function At(t,e,n){return typeof t.label=="string"?t.label:t.label?.[n]??t.label?.[n.split("-")[0]]??t.label?.en??e}function zt(t){let e=t.slots.map(r=>r.name);if(e.includes("middle"))return"three-cols";if(e.includes("left"))return"two-cols-header";if(e.includes("right"))return"two-cols";if(t.index===0)return"cover";let s=t.slots.map(r=>r.text).join(`
|
|
17
17
|
`).trim().split(`
|
|
18
18
|
`).filter(r=>r.trim());return s.length===1&&/^#{1,2}\s+\S/.test(s[0])?"section":/^#\s+[^\s]*\d[\d\s.,%€$£¥]*\S*\s*$/u.test(s[0]??"")&&s.length<=3&&!/^\s*[-*\d]+[.)]?\s/m.test(s.slice(1).join(`
|
|
19
19
|
`))?"fact":s.length&&s.every((r,i)=>r.startsWith(">")||i===s.length-1&&!r.startsWith("#"))&&s[0].startsWith(">")?"quote":"default"}function x(t,e={},n=[]){let s=document.createElement(t);for(let[r,i]of Object.entries(e))i!==void 0&&i!==!1&&s.setAttribute(r,i===!0?"":String(i));for(let r of n)(r||r==="")&&s.append(r);return s}function $n(t){let e=String(t??"").trim();return/^(https?:|mailto:|blob:|#)/i.test(e)||/^data:image\/(png|jpe?g|gif|webp|avif|svg\+xml);/i.test(e)?e:/^[a-z][\w+.-]*:/i.test(e)?null:e}function Ze(t,e){let n=String(t.settings.layout??"").trim().toLowerCase(),s=e.kit.layouts[n]?n:e.kit.layouts[Ne[n]]?Ne[n]:zt(t),r=e.kit.layouts[s]??qe.layouts.default,i=String(t.settings.class??"").split(/\s+/).filter(u=>["invert","text-center","text-left"].includes(u)),a={step:0},l=new Map(t.slots.map(u=>[u.name,u])),o=r.slots,d=x("section",{class:["deck-slide",`deck-layout-${s}`,...i.map(u=>`deck-class-${u}`)].join(" "),"data-index":t.index,"data-layout":s,"data-paper":r.paper,"data-align":r.align,"data-justify":r.justify,"data-title":r.title,"aria-roledescription":e.slide,role:"group"}),c=x("div",{class:"deck-canvas"});c.style.setProperty("grid-template-areas",r.areas.map(u=>`"${u.map(h=>h==="."?".":`s-${h}`).join(" ")}"`).join(" ")),c.style.setProperty("grid-template-columns",r.columns.join(" ")),c.style.setProperty("grid-template-rows",r.rows.join(" ")),d.append(c);let p=t.settings.image??t.settings.background;if(typeof p=="string"&&["image-left","image-right","image","cover"].includes(s)){let u=e.resolve(p);if(u){let h=x("div",{class:"deck-image",role:"img","aria-label":String(t.settings.alt??"")||void 0});h.style.setProperty("--deck-image",`url("${u.replace(/["\\\n]/g,encodeURIComponent)}")`),c.append(h),d.classList.add("has-image")}}for(let u of o){let h=l.get(u),f=x("div",{class:"deck-slot","data-slot":u},h?Ct(h,e,a):[]);f.style.setProperty("grid-area",`s-${u}`),c.append(f)}for(let u of t.slots)o.includes(u.name)||c.append(x("div",{class:"deck-slot","data-slot":u.name},Ct(u,e,a)));return r.numbered&&t.settings.paginate!==!1&&d.append(x("span",{class:"deck-number","aria-hidden":"true"},[e.number(t.index+1)])),{element:d,steps:a.step}}function Ct(t,e,n){let s=e.lex(t.text),r=[],i=t.start,a="";for(let l of s){let o=i;i+=l.raw.length;let d=l.type==="paragraph"?l.raw.trim().split(`
|
|
@@ -44,10 +44,10 @@ ${_.join(`
|
|
|
44
44
|
`),k=this.list(f);i[i.length-1]=k,s=s.substring(0,s.length-u.raw.length)+k.raw,r=r.substring(0,r.length-h.raw.length)+k.raw,n=f.substring(i.at(-1).raw.length).split(`
|
|
45
45
|
`);continue}}return{type:"blockquote",raw:s,tokens:i,text:r}}}list(t){let e=this.rules.block.list.exec(t);if(e){let n=t,s=()=>n.length-t.length,r=e[1].trim(),i=r.length>1,a={type:"list",raw:"",ordered:i,start:i?+r.slice(0,-1):"",loose:!1,items:[]};r=i?`\\d{1,9}\\${r.slice(-1)}`:`\\${r}`,this.options.pedantic&&(r=i?r:"[*+-]");let l=this.rules.other.listItemRegex(r),o=!1;for(;t;){let c=!1,p="";if(!(e=l.exec(t))||this.rules.block.hr.test(t))break;let u=s();t=t.substring(e[0].length);let h=e[2].split(`
|
|
46
46
|
`,1)[0],f=e[1].length,k=this.options.pedantic?Ve(h,f):h.replace(this.rules.other.leadingSpaceTab,U=>Ve(U,f)),m=t.split(`
|
|
47
|
-
`,1)[0],w=!k.trim(),y=0;if(this.options.pedantic?(y=2,p=k.trimStart()):w?y=f+1:(y=k.search(this.rules.other.nonSpaceChar),y=y>4?1:y,p=k.slice(y),y+=f),w&&this.rules.other.blankLine.test(m)&&(t=t.substring(m.length+1),c=!0),!c){let U=this.rules.other.nextBulletRegex(y),
|
|
48
|
-
`,1)[0],K;if(m=
|
|
49
|
-
`+K.slice(y);else{if(w||k.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||E.test(k)||C.test(k)||
|
|
50
|
-
`+m}w=!m.trim(),t=t.substring(
|
|
47
|
+
`,1)[0],w=!k.trim(),y=0;if(this.options.pedantic?(y=2,p=k.trimStart()):w?y=f+1:(y=k.search(this.rules.other.nonSpaceChar),y=y>4?1:y,p=k.slice(y),y+=f),w&&this.rules.other.blankLine.test(m)&&(t=t.substring(m.length+1),c=!0),!c){let U=this.rules.other.nextBulletRegex(y),q=this.rules.other.hrRegex(y),E=this.rules.other.fencesBeginRegex(y),C=this.rules.other.headingBeginRegex(y),Z=this.rules.other.htmlBeginRegex(y),X=this.rules.other.blockquoteBeginRegex(y);for(;t;){let D=t.split(`
|
|
48
|
+
`,1)[0],K;if(m=D,this.options.pedantic?(m=m.replace(this.rules.other.listReplaceNesting," "),K=m):K=m.replace(this.rules.other.leadingSpaceTab,Y=>Ve(Y)),E.test(m)||C.test(m)||Z.test(m)||X.test(m)||U.test(m)||q.test(m))break;if(K.search(this.rules.other.nonSpaceChar)>=y||!m.trim())p+=`
|
|
49
|
+
`+K.slice(y);else{if(w||k.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||E.test(k)||C.test(k)||q.test(k))break;p+=`
|
|
50
|
+
`+m}w=!m.trim(),t=t.substring(D.length+1),k=K.slice(y)}}let _=n.slice(u,s());a.loose||(o?a.loose=!0:this.rules.other.doubleBlankLine.test(_)&&(o=!0)),a.items.push({type:"list_item",raw:_,task:!!this.options.gfm&&this.rules.other.listIsTask.test(p),loose:!1,text:p,tokens:[]})}let d=a.items.at(-1);if(d)d.raw=d.raw.trimEnd(),d.text=d.text.trimEnd();else return;a.raw=n.slice(0,s()).trimEnd();for(let c of a.items)if(this.lexer.state.top=!1,c.tokens=this.lexer.blockTokens(c.text,[]),!a.loose){let p=c.tokens.filter(h=>h.type==="space"),u=p.length>0&&p.some(h=>this.rules.other.anyLine.test(h.raw));a.loose=u}for(let c of a.items){let p=c.tokens[0];if(c.task&&(p?.type==="text"||p?.type==="paragraph")){c.text=c.text.replace(this.rules.other.listReplaceTask,""),p.raw=p.raw.replace(this.rules.other.listReplaceTask,""),p.text=p.text.replace(this.rules.other.listReplaceTask,"");for(let h=this.lexer.inlineQueue.length-1;h>=0;h--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[h].src)){this.lexer.inlineQueue[h].src=this.lexer.inlineQueue[h].src.replace(this.rules.other.listReplaceTask,"");break}let u=this.rules.other.listTaskCheckbox.exec(c.raw);if(u){let h={type:"checkbox",raw:u[0]+" ",checked:u[0]!=="[ ]"};c.checked=h.checked,a.loose?c.tokens[0]&&["paragraph","text"].includes(c.tokens[0].type)&&"tokens"in c.tokens[0]&&c.tokens[0].tokens?(c.tokens[0].raw=h.raw+c.tokens[0].raw,c.tokens[0].text=h.raw+c.tokens[0].text,c.tokens[0].tokens.unshift(h)):c.tokens.unshift({type:"paragraph",raw:h.raw,text:h.raw,tokens:[h]}):c.tokens.unshift(h)}}else c.task&&(c.task=!1)}if(a.loose)for(let c of a.items){c.loose=!0;for(let p of c.tokens)p.type==="text"&&(p.type="paragraph")}return a}}html(t){let e=this.rules.block.html.exec(t);if(e){let n=Dt(e[0]);return{type:"html",block:!0,raw:n,pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:n}}}def(t){let e=this.rules.block.def.exec(t);if(e){if(!this.rules.other.startAngleBracket.test(e[2])&&Bt(e[2],"()")!==-1)return;let n=Pe(e[1]).replace(this.rules.other.multipleSpaceGlobal," "),s=e[2]?e[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",r=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:n,raw:ae(e[0],`
|
|
51
51
|
`),href:s,title:r}}}table(t){let e=this.rules.block.table.exec(t);if(!e||!this.rules.other.tableDelimiter.test(e[2]))return;let n=qt(e[1]),s=e[2].replace(this.rules.other.tableAlignChars,"").split("|"),r=e[3]?.trim()?e[3].replace(this.rules.other.tableRowBlankLine,"").split(`
|
|
52
52
|
`):[],i={type:"table",raw:ae(e[0],`
|
|
53
53
|
`),header:[],align:[],rows:[]};if(n.length===s.length){for(let a of s)this.rules.other.tableAlignRight.test(a)?i.align.push("right"):this.rules.other.tableAlignCenter.test(a)?i.align.push("center"):this.rules.other.tableAlignLeft.test(a)?i.align.push("left"):i.align.push(null);for(let a=0;a<n.length;a++)i.header.push({text:n[a],tokens:this.lexer.inline(n[a]),header:!0,align:i.align[a]});for(let a of r)i.rows.push(qt(a,i.header.length).map((l,o)=>({text:l,tokens:this.lexer.inline(l),header:!1,align:i.align[o]})));return i}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e){let n=e[1].trim();return{type:"heading",raw:ae(e[0],`
|
|
@@ -86,9 +86,9 @@ ${t}</tr>
|
|
|
86
86
|
`}tablecell(t){let e=this.parser.parseInline(t.tokens),n=t.header?"th":"td";return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+e+`</${n}>
|
|
87
87
|
`}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${G(t,!0)}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:e,text:n,tokens:s,autolink:r}){let i=r?G(n,!0):this.parser.parseInline(s),a=Nt(t);if(a===null)return i;t=G(a,r);let l='<a href="'+t+'"';return e&&(l+=' title="'+G(e)+'"'),l+=">"+i+"</a>",l}image({href:t,title:e,text:n,tokens:s}){s&&(n=this.parser.parseInline(s,this.parser.textRenderer));let r=Nt(t);if(r===null)return G(n);t=r;let i=`<img src="${G(t)}" alt="${G(n)}"`;return e&&(i+=` title="${G(e)}"`),i+=">",i}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"escaped"in t&&t.escaped?t.text:G(t.text)}},at=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}checkbox({raw:t}){return t}},J=class Je{options;renderer;textRenderer;constructor(e){this.options=e||de,this.options.renderer=this.options.renderer||new Me,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new at}static parse(e,n){return new Je(n).parse(e)}static parseInline(e,n){return new Je(n).parseInline(e)}parse(e){this.renderer.parser=this;let n="";for(let s=0;s<e.length;s++){let r=e[s];if(this.options.extensions?.renderers?.[r.type]){let a=r,l=this.options.extensions.renderers[a.type].call({parser:this},a);if(l!==!1||!["space","hr","heading","code","table","blockquote","list","checkbox","html","def","paragraph","text"].includes(a.type)){n+=l||"";continue}}let i=r;switch(i.type){case"space":{n+=this.renderer.space(i);break}case"hr":{n+=this.renderer.hr(i);break}case"heading":{n+=this.renderer.heading(i);break}case"code":{n+=this.renderer.code(i);break}case"table":{n+=this.renderer.table(i);break}case"blockquote":{n+=this.renderer.blockquote(i);break}case"list":{n+=this.renderer.list(i);break}case"checkbox":{n+=this.renderer.checkbox(i);break}case"html":{n+=this.renderer.html(i);break}case"def":{n+=this.renderer.def(i);break}case"paragraph":{n+=this.renderer.paragraph(i);break}case"text":{n+=this.renderer.text(i);break}default:{let a='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return n}parseInline(e,n=this.renderer){this.renderer.parser=this;let s="";for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let l=this.options.extensions.renderers[i.type].call({parser:this},i);if(l!==!1||!["escape","html","link","image","checkbox","strong","em","codespan","br","del","text"].includes(i.type)){s+=l||"";continue}}let a=i;switch(a.type){case"escape":{s+=n.text(a);break}case"html":{s+=n.html(a);break}case"link":{s+=n.link(a);break}case"image":{s+=n.image(a);break}case"checkbox":{s+=n.checkbox(a);break}case"strong":{s+=n.strong(a);break}case"em":{s+=n.em(a);break}case"codespan":{s+=n.codespan(a);break}case"br":{s+=n.br(a);break}case"del":{s+=n.del(a);break}case"text":{s+=n.text(a);break}default:{let l='Token with "'+a.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return s}},xe=class{options;block;constructor(t){this.options=t||de}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}emStrongMask(t){return t}provideLexer(t=this.block){return t?Q.lex:Q.lexInline}provideParser(t=this.block){return t?J.parse:J.parseInline}};function le(t,e){if(Array.isArray(e))for(let n=0;n<e.length;n++)t.push(e[n]);else t.push(e)}var Tr=class{defaults=Ye();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=J;Renderer=Me;TextRenderer=at;Lexer=Q;Tokenizer=Le;Hooks=xe;constructor(...t){this.use(...t)}walkTokens(t,e){let n=[];for(let s of t)switch(le(n,e.call(this,s)),s.type){case"table":{let r=s;for(let i of r.header)le(n,this.walkTokens(i.tokens,e));for(let i of r.rows)for(let a of i)le(n,this.walkTokens(a.tokens,e));break}case"list":{let r=s;le(n,this.walkTokens(r.items,e));break}default:{let r=s;this.defaults.extensions?.childTokens?.[r.type]?this.defaults.extensions.childTokens[r.type].forEach(i=>{let a=r[i].flat(1/0);le(n,this.walkTokens(a,e))}):r.tokens&&le(n,this.walkTokens(r.tokens,e))}}return n}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{let s={...n};if(s.async=this.defaults.async||s.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){let i=e.renderers[r.name];i?e.renderers[r.name]=function(...a){let l=r.renderer.apply(this,a);return l===!1&&(l=i.apply(this,a)),l}:e.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let i=e[r.level];i?i.unshift(r.tokenizer):e[r.level]=[r.tokenizer],r.start&&(r.level==="block"?e.startBlock?e.startBlock.push(r.start):e.startBlock=[r.start]:r.level==="inline"&&(e.startInline?e.startInline.push(r.start):e.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(e.childTokens[r.name]=r.childTokens)}),s.extensions=e),n.renderer){let r=this.defaults.renderer||new Me(this.defaults);for(let i in n.renderer){if(!(i in r))throw new Error(`renderer '${i}' does not exist`);if(["options","parser"].includes(i))continue;let a=i,l=n.renderer[a],o=r[a];r[a]=(...d)=>{let c=l.apply(r,d);return c===!1&&(c=o.apply(r,d)),c||""}}s.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new Le(this.defaults);for(let i in n.tokenizer){if(!(i in r))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;let a=i,l=n.tokenizer[a],o=r[a];r[a]=(...d)=>{let c=l.apply(r,d);return c===!1&&(c=o.apply(r,d)),c}}s.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new xe;for(let i in n.hooks){if(!(i in r))throw new Error(`hook '${i}' does not exist`);if(["options","block"].includes(i))continue;let a=i,l=n.hooks[a],o=r[a];xe.passThroughHooks.has(i)?r[a]=d=>{if(this.defaults.async&&xe.passThroughHooksRespectAsync.has(i))return(async()=>{let p=await l.call(r,d);return o.call(r,p)})();let c=l.call(r,d);return o.call(r,c)}:r[a]=(...d)=>{if(this.defaults.async)return(async()=>{let p=await l.apply(r,d);return p===!1&&(p=await o.apply(r,d)),p})();let c=l.apply(r,d);return c===!1&&(c=o.apply(r,d)),c}}s.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,i=n.walkTokens;s.walkTokens=function(a){let l=[];return l.push(i.call(this,a)),r&&le(l,r.call(this,a)),l}}this.defaults={...this.defaults,...s}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return Q.lex(t,e??this.defaults)}parser(t,e){return J.parse(t,e??this.defaults)}parseMarkdown(t){return(e,n)=>{let s={...n},r={...this.defaults,...s},i=this.onError(!!r.silent,!!r.async);if(this.defaults.async===!0&&s.async===!1)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return i(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(r.hooks&&(r.hooks.options=r,r.hooks.block=t),r.async)return(async()=>{let a=r.hooks?await r.hooks.preprocess(e):e,l=await(r.hooks?await r.hooks.provideLexer(t):t?Q.lex:Q.lexInline)(a,r),o=r.hooks?await r.hooks.processAllTokens(l):l;r.walkTokens&&await Promise.all(this.walkTokens(o,r.walkTokens));let d=await(r.hooks?await r.hooks.provideParser(t):t?J.parse:J.parseInline)(o,r);return r.hooks?await r.hooks.postprocess(d):d})().catch(i);try{r.hooks&&(e=r.hooks.preprocess(e));let a=(r.hooks?r.hooks.provideLexer(t):t?Q.lex:Q.lexInline)(e,r);r.hooks&&(a=r.hooks.processAllTokens(a)),r.walkTokens&&this.walkTokens(a,r.walkTokens);let l=(r.hooks?r.hooks.provideParser(t):t?J.parse:J.parseInline)(a,r);return r.hooks&&(l=r.hooks.postprocess(l)),l}catch(a){return i(a)}}}onError(t,e){return n=>{if(n.message+=`
|
|
88
88
|
Please report this to https://github.com/markedjs/marked.`,t){let s="<p>An error occurred:</p><pre>"+G(n.message+"",!0)+"</pre>";return e?Promise.resolve(s):s}if(e)return Promise.reject(n);throw n}}},ce=new Tr;function T(t,e){return ce.parse(t,e)}T.options=T.setOptions=function(t){return ce.setOptions(t),T.defaults=ce.defaults,Ht(T.defaults),T};T.getDefaults=Ye;T.defaults=de;function Rr(...t){return ce.use(...t),T.defaults=ce.defaults,Ht(T.defaults),T}T.use=Rr;T.walkTokens=function(t,e){return ce.walkTokens(t,e)};T.parseInline=ce.parseInline;T.Parser=J;T.parser=J.parse;T.Renderer=Me;T.TextRenderer=at;T.Lexer=Q;T.lexer=Q.lex;T.Tokenizer=Le;T.Hooks=xe;T.parse=T;var Yr=T.options,es=T.setOptions,ts=T.walkTokens,ns=T.parseInline;var rs=J.parse,ss=Q.lex;var Er=/^(ar|he|fa|ur|ps|sd|ug|yi|dv|ckb)\b/i,Pr={back:"M15 5l-7 7 7 7",next:"M9 5l7 7-7 7",present:"M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5",presenter:"M3 5h12v9H3zM18 8h3M18 12h3M6 19h6",grid:"M4 4h6v6H4zM14 4h6v6h-6zM4 14h6v6H4zM14 14h6v6h-6z",edit:"M4 20h4L19 9l-4-4L4 16zM13.5 6.5l4 4",scheme:"M12 3a9 9 0 1 0 9 9 7 7 0 0 1-9-9z",export:"M12 4v11M7 10l5 5 5-5M5 20h14"};function Lr(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");e.setAttribute("viewBox","0 0 24 24"),e.setAttribute("aria-hidden","true"),(t==="back"||t==="next")&&e.setAttribute("class","deck-flip");let n=document.createElementNS("http://www.w3.org/2000/svg","path");return n.setAttribute("d",Pr[t]),e.append(n),e}function Yt(t,e){let n=e.source.replace(/\r\n?/g,`
|
|
89
|
-
`),s=Ie(n),r=0,i=0,a=[],l=String(e.lang??s.settings.lang??document.documentElement.lang??"en")||"en",o=String(e.dir??s.settings.dir??(Er.test(l)?"rtl":"ltr")),d={...Mt(l),...e.strings},c=new Intl.NumberFormat(l).format,p=matchMedia("(prefers-color-scheme: dark)"),u="light",h=Date.now();t.classList.add("deck"),t.lang=l,t.dir=o;let f=x("div",{class:"deck-stage",tabindex:0,role:"region","aria-roledescription":d.carousel,"aria-label":d.deck}),k=x("span",{class:"deck-where","aria-live":"polite"}),m=(g,b,$)=>{let L=x("button",{type:"button","aria-label":b,"data-act":g},[Lr(g)]);return L.addEventListener("click",$),L},w=m("back",d.previous,()=>v(-1)),y=m("next",d.next,()=>v(1)),_=m("edit",d.edit,()=>H("is-editing")),U=m("presenter",d.presenter,()=>H("is-presenting")),
|
|
90
|
-
`),s=Ie(n),
|
|
91
|
-
`,A:`[${s}](${n.getAttribute("href")??""})`}[n.tagName]??s}return e.replace(/ /g," ").replace(/\n+$/,"")}var lt=new Map;function tn(t,e){return lt.has(t)||lt.set(t,new Promise((n,s)=>{let r=document.createElement("script");r.src=t,r.onload=()=>n(globalThis[e]),r.onerror=s,document.head.append(r)})),lt.get(t)}var je=(t,e,n,s)=>/node_modules\/$/.test(t)?`${t}${e}/${s}`:`${t}${e}@${n}/${s}`;function nn({base:t,root:e,versions:n={}}){let{echarts:s="6.1.0",pele:r="1.10.0"}=n,i=new Set,a=null;e.addEventListener("deck-scheme",o=>{a=o.detail.colours;for(let d of i)d.chart.setOption(l(d.option,d.box),!0)});let l=(o,d)=>{let c=parseFloat(getComputedStyle(d).fontSize)||16,p=getComputedStyle(d).direction==="rtl",u=Math.round(c*.6),h=(f,k)=>f===void 0?void 0:[f].flat().map(m=>({axisLabel:{color:a?.muted,fontSize:u},axisLine:{lineStyle:{color:a?.line}},splitLine:{lineStyle:{color:a?.line}},nameTextStyle:{color:a?.muted,fontSize:u},...p&&k&&m.type==="category"?{inverse:!0}:{},...p&&!k?{position:"right"}:{},...m}));return{color:a?.series,backgroundColor:"transparent",animation:!matchMedia("(prefers-reduced-motion: reduce)").matches,textStyle:{fontFamily:getComputedStyle(e).getPropertyValue("--deck-body")||"system-ui",color:a?.ink,fontSize:u},...o,title:o.title?{...o.title,textStyle:{color:a?.ink,fontSize:Math.round(c*.8),...o.title?.textStyle}}:void 0,legend:o.legend?{itemWidth:u*1.6,itemHeight:u,...o.legend,textStyle:{color:a?.ink,fontSize:u,...o.legend?.textStyle}}:void 0,grid:{containLabel:!0,left:u,right:u,top:o.title?c*1.8:u,bottom:o.legend?c*1.6:u,...o.grid},xAxis:h(o.xAxis,!0),yAxis:h(o.yAxis,!1),toolbox:void 0,series:[o.series??[]].flat().map(f=>f.type==="pie"?{label:{color:a?.ink,fontSize:u},...f}:f)}};return{async echarts(o,d){let c=JSON.parse(d),p=await tn(je(t,"echarts",s,"dist/echarts.min.js"),"echarts"),u=document.createElement("div");u.className="deck-chart",u.setAttribute("role","img"),u.setAttribute("aria-label",String(c.title?.text??"")),o.append(u);let h=p.init(u,null,{renderer:"svg",locale:document.documentElement.lang?.startsWith("ja")?"JA":"EN"}),f={chart:h,option:c,box:o};i.add(f),h.setOption(l(c,o)),new ResizeObserver(()=>{h.resize(),h.setOption(l(c,o),!0)}).observe(u),Object.assign(o,{chart:h})},async mermaid(o,d){let c=await tn(je(t,"pele",r,"dist/pele.global.js"),"pele"),p=getComputedStyle(e).getPropertyValue("--deck-body")||"system-ui, sans-serif",{svg:u}=c.render(d,{fontFamily:p,links:!1,images:!1,autoDirection:!0,maxWidth:Math.max(320,o.clientWidth*1.4)}),h=`--pele-bg:transparent;--pele-fg:${a?.ink};--pele-muted:${a?.muted};--pele-line:${a?.muted};--pele-surface:${a?.soft};--pele-surface-alt:${a?.line};--pele-border:${a?.primary};--pele-accent:${a?.primary};--pele-font:${p.replace(/[<>"]/g,"")}`,f=document.createElement("img");f.alt=d,f.src=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(u.replace(/^(<svg\b[^>]*>)/,`$1<style>svg{${h}}</style>`))}`;let k=document.createElement("div");k.className="deck-diagram",k.append(f),o.append(k)}}}var ot="0.1.
|
|
89
|
+
`),s=Ie(n),r=0,i=0,a=[],l=String(e.lang??s.settings.lang??document.documentElement.lang??"en")||"en",o=String(e.dir??s.settings.dir??(Er.test(l)?"rtl":"ltr")),d={...Mt(l),...e.strings},c=new Intl.NumberFormat(l).format,p=matchMedia("(prefers-color-scheme: dark)"),u="light",h=Date.now();t.classList.add("deck"),t.lang=l,t.dir=o;let f=x("div",{class:"deck-stage",tabindex:0,role:"region","aria-roledescription":d.carousel,"aria-label":d.deck}),k=x("span",{class:"deck-where","aria-live":"polite"}),m=(g,b,$)=>{let L=x("button",{type:"button","aria-label":b,"data-act":g},[Lr(g)]);return L.addEventListener("click",$),L},w=m("back",d.previous,()=>v(-1)),y=m("next",d.next,()=>v(1)),_=m("edit",d.edit,()=>H("is-editing")),U=m("presenter",d.presenter,()=>H("is-presenting")),q=m("grid",d.overview,()=>H("is-overview")),E=x("div",{class:"deck-bar"},[w,k,y,x("span",{class:"deck-gap"}),q,U,e.editable===!1?null:_,m("scheme",d.scheme,()=>{u=u==="dark"?"light":"dark",B()}),e.onExport?m("export",d.export,()=>e.onExport?.(bt)):null,document.fullscreenEnabled?m("present",d.present,()=>pe()):null]),C=x("textarea",{class:"deck-source",spellcheck:"false","aria-label":d.source,dir:"auto"}),Z=x("div",{class:"deck-next"}),X=x("div",{class:"deck-notes",dir:"auto","aria-label":d.notes}),D=x("span",{class:"deck-clock"}),K=x("div",{class:"deck-presenter"},[Z,X]);t.replaceChildren(C,f,K,E),E.insertBefore(D,E.querySelector(".deck-gap"));let Y=[],$e=()=>{let g=De(e.kit,s.settings.kit);return Y=g.problems,g.kit};function B(){te.kit=$e();let g=Et(s.settings,te.kit.tokens),b=Pt(g,u),$=R=>R.map(M=>/^[\w-]+$/.test(M)?M:`"${M.replace(/["\\]/g,"")}"`).join(", "),L=g.fonts?{heading:$(g.fonts.heading),body:$(g.fonts.body)}:Qe[g.voice];for(let[R,M]of Object.entries({paper:b.paper,ink:b.ink,muted:b.muted,line:b.line,primary:b.primary,fill:g.primary,"on-fill":b.onPrimary,soft:b.soft,heading:L.heading,body:L.body,radius:`${g.radius}px`,...Object.fromEntries(b.series.map((N,P)=>[`series-${P+1}`,N]))}))t.style.setProperty(`--deck-${R}`,M);t.dataset.scheme=u,t.dispatchEvent(new CustomEvent("deck-scheme",{detail:{scheme:u,colours:b,tokens:g}}))}let re=()=>{let g=e.scheme??s.settings.colorSchema??"auto";u=g==="dark"||g==="auto"&&p.matches?"dark":"light"},te={blocks:e.blocks??{},resolve:e.resolve??(g=>g),headings:e.headings??"real",number:g=>c(g),total:0,kit:De().kit,lex:e.lex??(g=>new Q({gfm:!0}).lex(g)),slide:d.slide};function me(){te.total=s.slides.length,a=s.slides.map(g=>Ze(g,te));for(let[g,{element:b}]of a.entries())b.setAttribute("aria-label",d.where.replace("{n}",c(g+1)).replace("{count}",c(a.length))),b.addEventListener("click",()=>{t.classList.contains("is-overview")&&(H("is-overview"),O(g,0))});f.replaceChildren(...a.map(({element:g})=>g)),r=Math.min(r,a.length-1),F(),requestAnimationFrame(()=>A())}function A(){for(let{element:g}of a)z(g)}function z(g){let b=!1;for(let $ of g.querySelectorAll(".deck-slot")){let L=1;for($.style.setProperty("--deck-fit","1");$.scrollHeight>$.clientHeight+1&&L>.6;)$.style.setProperty("--deck-fit",String(L=Math.round((L-.05)*100)/100));$.scrollHeight>$.clientHeight+1&&(b=!0)}b?g.dataset.overflow="true":delete g.dataset.overflow}function F(){for(let[b,{element:$,steps:L}]of a.entries()){$.classList.toggle("is-shown",b===r),$.inert=b!==r&&!t.classList.contains("is-overview");for(let R of $.querySelectorAll(".deck-step"))R.classList.toggle("is-on",b<r||b===r&&Number(R.getAttribute("data-step"))<=i||L===0)}k.textContent=`${c(r+1)} / ${c(a.length)}`,w.toggleAttribute("disabled",r===0&&i===0),y.toggleAttribute("disabled",r>=a.length-1&&i>=(a[r]?.steps??0)),X.textContent=s.slides[r]?.notes||d.noNotes;let g=s.slides[r+1];Z.replaceChildren(x("span",{},[g?d.upNext:d.last]),...g?[Ze(g,te).element]:[]),t.dispatchEvent(new CustomEvent("deck-move",{detail:{at:r,step:i}}))}function v(g){let b=a[r]?.steps??0;if(g>0&&i<b){i++,F();return}if(g<0&&i>0){i--,F();return}let $=r+g;$<0||$>=a.length||O($,g>0?0:a[$].steps)}function O(g,b=0){if(g===r){i=b,F();return}let $=g>r,L=s.slides[$?g:r]?.settings??{},R=String(L.transition??s.settings.transition??"none"),[M,N]=R.split("|").map(Ae=>Ae.trim()),P=$?M:N??M;o==="rtl"&&(P=P.replace(/-(left|right)$/,(Ae,ze)=>ze==="left"?"-right":"-left")),P==="view-transition"&&(P="morph");let se=()=>{r=g,i=b,P==="morph"&&I(a[g].element),F()},fn=matchMedia("(prefers-reduced-motion: reduce)").matches;if(!document.startViewTransition||P==="none"||fn||t.classList.contains("is-overview"))return se();P==="morph"&&I(a[r].element,a[g].element),document.documentElement.dataset.deckTransition=P;let xt=document.startViewTransition(se);xt.ready.catch(()=>{}),xt.finished.finally(()=>{delete document.documentElement.dataset.deckTransition;for(let{element:Ae}of a)for(let ze of Ae.querySelectorAll("[data-morph]"))ze.style.removeProperty("view-transition-name"),ze.removeAttribute("data-morph")})}function I(g,b){let $=R=>`${R.tagName}:${R.tagName==="IMG"?R.getAttribute("src"):(R.textContent??"").trim().slice(0,80)}`,L=R=>[...R.querySelectorAll("h1, h2, h3, h4, .deck-h, li, p, img, .deck-block, blockquote, .deck-image")];if(b){let R=new Map(L(b).map(N=>[$(N),N])),M=0;for(let N of L(g)){let P=R.get($(N));if(!P||P.dataset.morph||N.closest("[data-morph]"))continue;let se=`deck-m${M++}`;N.dataset.morph=P.dataset.morph=se,N.style.setProperty("view-transition-name",se)}return}for(let R of g.querySelectorAll("[data-morph]")){let M=R.dataset.morph;for(let N of f.querySelectorAll(`[data-morph="${M}"]`))N!==R&&N.style.removeProperty("view-transition-name");R.style.setProperty("view-transition-name",M)}}function H(g){for(let b of["is-editing","is-presenting","is-overview"])b!==g&&t.classList.remove(b);t.classList.toggle(g),_.setAttribute("aria-pressed",String(t.classList.contains("is-editing"))),U.setAttribute("aria-pressed",String(t.classList.contains("is-presenting"))),q.setAttribute("aria-pressed",String(t.classList.contains("is-overview"))),t.classList.contains("is-editing")&&(C.value=n,C.focus()),F(),requestAnimationFrame(()=>A())}function pe(){f.requestFullscreen?.().then(()=>f.focus(),()=>{})}function ue(g){n=g.replace(/\r\n?/g,`
|
|
90
|
+
`),s=Ie(n),B(),me(),e.onChange?.(n)}let gt=0;C.addEventListener("input",g=>{g.isComposing||(clearTimeout(gt),gt=setTimeout(()=>ue(C.value),120))});let mt=()=>{let g=C.selectionStart,b=s.slides.findIndex($=>g>=$.start&&g<=$.end+1);b>=0&&b!==r&&(r=b,i=a[b]?.steps??0,F())};C.addEventListener("keyup",mt),C.addEventListener("click",mt),f.addEventListener("dblclick",g=>{if(e.editable===!1||document.fullscreenElement)return;let b=g.target.closest("[data-edit]");if(!b)return;let[$,L]=b.dataset.edit.split("-").map(Number);b.contentEditable="true",b.focus();let R=P=>{b.removeEventListener("keydown",M),b.removeEventListener("blur",N),b.contentEditable="false";let se=en(b);P&&se!==n.slice($,L)?ue(n.slice(0,$)+se+n.slice(L)):me()},M=P=>{P.isComposing||(P.key==="Enter"&&!P.shiftKey&&(P.preventDefault(),R(!0)),P.key==="Escape"&&(P.preventDefault(),R(!1)))},N=()=>R(!0);b.addEventListener("keydown",M),b.addEventListener("blur",N)}),t.addEventListener("keydown",g=>{let b=g.target;if(b.isContentEditable||b===C||b.tagName==="BUTTON"&&(g.key===" "||g.key==="Enter")){(g.metaKey||g.ctrlKey)&&g.key==="s"&&(g.preventDefault(),e.onSave?.(n));return}let $=o==="rtl"?"ArrowLeft":"ArrowRight",L=o==="rtl"?"ArrowRight":"ArrowLeft";if(g.altKey||g.ctrlKey||g.metaKey){(g.metaKey||g.ctrlKey)&&g.key==="s"&&(g.preventDefault(),e.onSave?.(n));return}let M={[$]:()=>v(1),[L]:()=>v(-1),ArrowDown:()=>v(1),ArrowUp:()=>v(-1),PageDown:()=>v(1),PageUp:()=>v(-1)," ":()=>v(1),Home:()=>O(0),End:()=>O(a.length-1,a.at(-1)?.steps??0),f:pe,p:()=>H("is-presenting"),o:()=>H("is-overview"),e:()=>H("is-editing")}[g.key];M&&(g.preventDefault(),M())}),f.addEventListener("click",g=>{document.fullscreenElement&&!g.target.closest("a, button, input")&&v(1)});let kt=0;f.addEventListener("touchstart",g=>{kt=g.touches[0].clientX},{passive:!0}),f.addEventListener("touchend",g=>{let b=g.changedTouches[0].clientX-kt;Math.abs(b)>50&&v(b<0==(o!=="rtl")?1:-1)}),p.addEventListener("change",()=>{re(),B()});let hn=setInterval(()=>{let g=Math.floor((Date.now()-h)/1e3);D.textContent=t.classList.contains("is-presenting")?`${String(Math.floor(g/60)).padStart(2,"0")}:${String(g%60).padStart(2,"0")}`:""},1e3);re(),B(),me(),document.fonts?.ready.then(()=>A());let bt={root:t,stage:f,get source(){return n},get deck(){return s},get at(){return r},get scheme(){return u},get kit(){return te.kit},get kitProblems(){return Y},lang:l,dir:o,slides:()=>a.map(({element:g})=>g),setSource:ue,go:O,toggle:H,present:pe,fitAll:A,setScheme:g=>{u=g,B()},destroy:()=>clearInterval(hn)};return bt}function en(t){let e="";for(let n of t.childNodes)if(n.nodeType===Node.TEXT_NODE)e+=(n.textContent??"").replace(/([*_`[\]\\])/g,"\\$1");else if(n instanceof HTMLElement){let s=en(n);e+={STRONG:`**${s}**`,B:`**${s}**`,EM:`*${s}*`,I:`*${s}*`,CODE:`\`${n.textContent}\``,DEL:`~~${s}~~`,BR:`
|
|
91
|
+
`,A:`[${s}](${n.getAttribute("href")??""})`}[n.tagName]??s}return e.replace(/ /g," ").replace(/\n+$/,"")}var lt=new Map;function tn(t,e){return lt.has(t)||lt.set(t,new Promise((n,s)=>{let r=document.createElement("script");r.src=t,r.onload=()=>n(globalThis[e]),r.onerror=s,document.head.append(r)})),lt.get(t)}var je=(t,e,n,s)=>/node_modules\/$/.test(t)?`${t}${e}/${s}`:`${t}${e}@${n}/${s}`;function nn({base:t,root:e,versions:n={}}){let{echarts:s="6.1.0",pele:r="1.10.0"}=n,i=new Set,a=null;e.addEventListener("deck-scheme",o=>{a=o.detail.colours;for(let d of i)d.chart.setOption(l(d.option,d.box),!0)});let l=(o,d)=>{let c=parseFloat(getComputedStyle(d).fontSize)||16,p=getComputedStyle(d).direction==="rtl",u=Math.round(c*.6),h=(f,k)=>f===void 0?void 0:[f].flat().map(m=>({axisLabel:{color:a?.muted,fontSize:u},axisLine:{lineStyle:{color:a?.line}},splitLine:{lineStyle:{color:a?.line}},nameTextStyle:{color:a?.muted,fontSize:u},...p&&k&&m.type==="category"?{inverse:!0}:{},...p&&!k?{position:"right"}:{},...m}));return{color:a?.series,backgroundColor:"transparent",animation:!matchMedia("(prefers-reduced-motion: reduce)").matches,textStyle:{fontFamily:getComputedStyle(e).getPropertyValue("--deck-body")||"system-ui",color:a?.ink,fontSize:u},...o,title:o.title?{...o.title,textStyle:{color:a?.ink,fontSize:Math.round(c*.8),...o.title?.textStyle}}:void 0,legend:o.legend?{itemWidth:u*1.6,itemHeight:u,...o.legend,textStyle:{color:a?.ink,fontSize:u,...o.legend?.textStyle}}:void 0,grid:{containLabel:!0,left:u,right:u,top:o.title?c*1.8:u,bottom:o.legend?c*1.6:u,...o.grid},xAxis:h(o.xAxis,!0),yAxis:h(o.yAxis,!1),toolbox:void 0,series:[o.series??[]].flat().map(f=>f.type==="pie"?{label:{color:a?.ink,fontSize:u},...f}:f)}};return{async echarts(o,d){let c=JSON.parse(d),p=await tn(je(t,"echarts",s,"dist/echarts.min.js"),"echarts"),u=document.createElement("div");u.className="deck-chart",u.setAttribute("role","img"),u.setAttribute("aria-label",String(c.title?.text??"")),o.append(u);let h=p.init(u,null,{renderer:"svg",locale:document.documentElement.lang?.startsWith("ja")?"JA":"EN"}),f={chart:h,option:c,box:o};i.add(f),h.setOption(l(c,o)),new ResizeObserver(()=>{h.resize(),h.setOption(l(c,o),!0)}).observe(u),Object.assign(o,{chart:h})},async mermaid(o,d){let c=await tn(je(t,"pele",r,"dist/pele.global.js"),"pele"),p=getComputedStyle(e).getPropertyValue("--deck-body")||"system-ui, sans-serif",{svg:u}=c.render(d,{fontFamily:p,links:!1,images:!1,autoDirection:!0,maxWidth:Math.max(320,o.clientWidth*1.4)}),h=`--pele-bg:transparent;--pele-fg:${a?.ink};--pele-muted:${a?.muted};--pele-line:${a?.muted};--pele-surface:${a?.soft};--pele-surface-alt:${a?.line};--pele-border:${a?.primary};--pele-accent:${a?.primary};--pele-font:${p.replace(/[<>"]/g,"")}`,f=document.createElement("img");f.alt=d,f.src=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(u.replace(/^(<svg\b[^>]*>)/,`$1<style>svg{${h}}</style>`))}`;let k=document.createElement("div");k.className="deck-diagram",k.append(f),o.append(k)}}}var ot="0.1.2";var ct='<script type="text/markdown" id="deck">',Mr="<\/script>",jr=t=>t.replace(/<(\\*)(\/?script)/gi,"<\\$1$2"),dt=t=>t.replace(/<\\(\\*)(\/?script)/gi,"<$1$2"),ve=t=>t.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<"),_r=t=>t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");function Or(t){if(/\\<(!--|\/?script)/i.test(t))throw new Error("This code cannot be held in a page as it is.");return t.replace(/<(!--|\/?script)/gi,"\\x3C$1")}function rn(t){let e=t.indexOf(ct);if(e<0)return null;let n=e+ct.length,s=t.slice(n).search(/<\/script/i);return s<0?null:dt(t.slice(n,n+s).replace(/^\n/,"").replace(/\n$/,""))}var Ir=(t=ot)=>`https://cdn.jsdelivr.net/npm/@codename/deck@${t}/dist/deck.js`;function pt(t,{title:e="",lang:n="en",dir:s="auto",renderer:r={src:Ir()},base:i,generator:a=`deck ${ot}`}={}){let l=i?` data-base="${ve(i)}"`:"",o="src"in r?`<script src="${ve(r.src)}"${l}><\/script>`:`<script${l}>${Or(r.code)}<\/script>`;return`<!doctype html>
|
|
92
92
|
<html lang="${ve(n)}" dir="${ve(s)}">
|
|
93
93
|
<meta charset="utf-8">
|
|
94
94
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
@@ -101,7 +101,7 @@ ${jr(t)}
|
|
|
101
101
|
${Mr}
|
|
102
102
|
${o}
|
|
103
103
|
</html>
|
|
104
|
-
`}var sn=13.333,Nr=7.5,an="h1, h2, h3, h4, h5, h6, .deck-h, p, ul, ol, blockquote";function V(t){let e=/rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)/.exec(t);return e?[e[1],e[2],e[3]].map(n=>Math.round(Number(n)).toString(16).padStart(2,"0")).join("").toUpperCase():t.replace("#","").toUpperCase().slice(0,6)||"000000"}async function ft(t,{PptxGenJS:e,JSZip:n}){let s=new e;s.layout="LAYOUT_WIDE",s.title=t.deck.slides[0]?.title??"",s.rtlMode=t.dir==="rtl";let r=getComputedStyle(t.root),i=f=>f.split(",").map(k=>k.trim().replace(/^["']|["']$/g,"")).find(k=>!/^(ui-|system-ui|-apple|sans-serif|serif|monospace)/.test(k))??"Arial";s.theme={headFontFace:i(r.getPropertyValue("--deck-heading")),bodyFontFace:i(r.getPropertyValue("--deck-body"))};let a={slides:0,charts:0,pictures:0,tables:0,placeholders:0},l=t.dir==="rtl",o=t.slides(),d=new Map,c=[];for(let[f,k]of o.entries()){let m=k.getBoundingClientRect(),w=sn/m.width,y=A=>{let z=A.getBoundingClientRect();return{x:(z.left-m.left)*w,y:(z.top-m.top)*w,w:z.width*w,h:z.height*w}},_=A=>{let z=A.closest(".deck-slot")??A,{x:B,w:v}=y(z),{y:O,h:Z}=y(A),H=getComputedStyle(z),pe=parseFloat(H.paddingInlineStart)*w,ue=parseFloat(H.paddingInlineEnd)*w;return{x:B+(l?ue:pe),y:O,w:v-pe-ue,h:Z*1.08}},U=A=>getComputedStyle(A).justifyContent==="center"?"middle":"top",N=A=>Math.round(A*w*72*10)/10,E=getComputedStyle(k),C=k.dataset.layout??"default",F=[...k.querySelectorAll(".deck-slot")],X=F[0]?.firstElementChild,q=X&&X.matches("h1, h2, h3, .deck-h")?X:null,K=t.kit.layouts[C],Y=`${K?At(K,C,t.lang):C}${k.classList.contains("deck-class-invert")?" (dark)":""}`;if(!d.has(Y)){let A=[];q&&A.push({placeholder:{options:{name:"title",type:"title",..._(q),valign:"bottom",margin:0,fontFace:s.theme.headFontFace,color:V(getComputedStyle(q).color),align:l?"right":"left"},text:""}});for(let z of F){let B=y(z),v=q&&z===F[0]?y(q).y+y(q).h:B.y,O=z.firstElementChild&&z.firstElementChild!==q?_(z.firstElementChild):{x:B.x,w:B.w};A.push({placeholder:{options:{name:`body-${z.dataset.slot}`,type:"body",x:O.x,y:v+.08,w:O.w,h:Math.max(.3,B.y+B.h-v-.08),margin:0,valign:U(z),color:V(getComputedStyle(z).color)},text:""}})}s.defineSlideMaster({title:Y,background:{color:V(E.backgroundColor)},objects:A,slideNumber:K?.numbered!==!1?{x:l?.3:sn-.9,y:Nr-.55,w:.6,h:.3,fontSize:10,color:V(r.getPropertyValue("--deck-muted").trim()||"#666666")}:void 0}),d.set(Y,new Set(A.map(z=>z.placeholder.options.name)))}let $e=d.get(Y),D=s.addSlide({masterName:Y});a.slides++;let re=k.querySelector(".deck-image");if(re){let A=/url\("?(.*?)"?\)/.exec(getComputedStyle(re).backgroundImage)?.[1],z=A&&await ht(A,re.clientWidth*2,re.clientHeight*2,!0);z&&(D.addImage({data:z,...y(re)}),a.pictures++)}q&&$e.has("title")&&(D.addText(ut(q,{pt:N,rtl:l,lang:t.lang}),{placeholder:"title"}),a.placeholders++);for(let A of F){let z=[...A.children].filter(v=>v!==q);if(z.length>0&&z.every(v=>v.matches(an))&&$e.has(`body-${A.dataset.slot}`)){D.addText(z.flatMap(v=>ut(v,{pt:N,rtl:l,lang:t.lang})),{placeholder:`body-${A.dataset.slot}`,valign:U(A),...ln(A)}),a.placeholders++;continue}for(let v of z){let O=y(v);if(v.matches(an))D.addText(ut(v,{pt:N,rtl:l,lang:t.lang}),{..._(v),valign:"top",margin:0,...ln(A)});else if(v.matches("pre"))D.addText(v.textContent?.replace(/\n$/,"")??"",{...O,fontFace:"Consolas",fontSize:N(parseFloat(getComputedStyle(v).fontSize)),color:V(getComputedStyle(v).color),fill:{color:V(getComputedStyle(v).backgroundColor)},valign:"top",margin:6,rtlMode:!1,align:"left"});else if(v.matches(".deck-table"))Dr(D,v,O,{pt:N,rtl:l,lang:t.lang}),a.tables++;else if(v.matches(".deck-echarts")&&v.chart){let Z=v.chart;Br(s,D,Z,O,{pt:N,rtl:l,lang:t.lang,ink:V(E.color)})?a.charts++:(D.addImage({data:await ht(`data:image/svg+xml;charset=utf-8,${encodeURIComponent(Z.renderToSVGString())}`,O.w/w*2,O.h/w*2),...O}),a.pictures++)}else{let Z=v.querySelector("img");if(Z){let H=await ht(Z.src,Z.clientWidth*2,Z.clientHeight*2);H&&(D.addImage({data:H,...y(Z),altText:Z.alt}),a.pictures++)}}}}let te=t.deck.slides[f]?.notes;te&&D.addNotes(te);let me=t.deck.slides[f]?.settings??{};c.push(String(me.transition??t.deck.settings.transition??"none").split("|")[0].trim())}let p=await n.loadAsync(await s.write({outputType:"arraybuffer",compression:!0}));for(let[f,k]of c.entries()){let m=`ppt/slides/slide${f+1}.xml`,w=await p.file(m)?.async("string");!w||k==="none"||p.file(m,w.replace(/<\/p:clrMapOvr>|(?=<p:timing|<\/p:sld>)/,y=>`${y}${Fr(k,l)}`))}let u=await p.file("ppt/theme/theme1.xml")?.async("string");if(u){let f=w=>V(r.getPropertyValue(`--deck-${w}`).trim()),k=[f("fill"),...[2,3,4,5,6].map(w=>f(`series-${w}`))],m=`<a:clrScheme name="Deck"><a:dk1><a:srgbClr val="${f("ink")}"/></a:dk1><a:lt1><a:srgbClr val="${f("paper")}"/></a:lt1><a:dk2><a:srgbClr val="${f("ink")}"/></a:dk2><a:lt2><a:srgbClr val="${f("soft")}"/></a:lt2>${k.map((w,y)=>`<a:accent${y+1}><a:srgbClr val="${w}"/></a:accent${y+1}>`).join("")}<a:hlink><a:srgbClr val="${f("primary")}"/></a:hlink><a:folHlink><a:srgbClr val="${f("primary")}"/></a:folHlink></a:clrScheme>`;p.file("ppt/theme/theme1.xml",u.replace(/<a:clrScheme[\s\S]*?<\/a:clrScheme>/,m))}return{blob:await p.generateAsync({type:"blob",compression:"DEFLATE",mimeType:"application/vnd.openxmlformats-officedocument.presentationml.presentation"}),report:a}}function ln(t){let e=t.firstElementChild,n=e?parseFloat(getComputedStyle(e).marginBlockEnd):0;return{paraSpaceAfter:Math.round(n*.5)}}function ut(t,e){let n=[],s=(i,a)=>{let l=getComputedStyle(i),o={fontSize:e.pt(parseFloat(l.fontSize)),color:V(l.color),bold:Number(l.fontWeight)>=600,lang:e.lang,rtlMode:e.rtl,align:l.textAlign==="center"?"center":e.rtl?"right":"left",...a},d=qr(i,o);d.length&&(d[d.length-1].options.breakLine=!0,n.push(...d))},r=(i,a)=>{let l=0;for(let o of i.children){l++;let d=[...o.children].filter(p=>p.matches("ul, ol")),c=o.cloneNode(!0);for(let p of[...c.children])p.matches("ul, ol, input")&&p.remove();o.after(c),s(c,{bullet:i.tagName==="OL"?{type:"number",startAt:l===1?Number(i.getAttribute("start")??1):void 0}:!0,indentLevel:a}),c.remove();for(let p of d)r(p,a+1)}};if(t.matches("ul, ol"))r(t,0);else if(t.matches("blockquote"))for(let i of t.children)s(i,{italic:getComputedStyle(i).fontStyle==="italic"});else s(t,{});return n}function qr(t,e){let n=[],s=(r,i)=>{if(r.nodeType===Node.TEXT_NODE){let l=(r.textContent??"").replace(/\s+/g," ");l&&n.push({text:l,options:{...i}});return}if(!(r instanceof HTMLElement))return;if(r.tagName==="BR"){n.length&&(n[n.length-1].options.breakLine=!0);return}let a={...i};r.matches("strong, b")&&(a.bold=!0,a.color=V(getComputedStyle(r).color)),r.matches("em, i")&&(a.italic=!0),r.matches("del, s")&&(a.strike="sngStrike"),r.matches("code")&&(a.fontFace="Consolas"),r.matches("a[href]")&&(a.hyperlink={url:r.getAttribute("href")});for(let l of r.childNodes)s(l,a)};for(let r of t.childNodes)s(r,e);return n.length&&(n[0].text=n[0].text.trimStart(),n[n.length-1].text=n[n.length-1].text.trimEnd()),n.filter(r=>r.text)}function Dr(t,e,n,s){let r=[...e.querySelectorAll("tr")].map(l=>[...l.children].map(o=>{let d=getComputedStyle(o),c=o.getAttribute("data-align");return{text:o.textContent?.trim()??"",options:{bold:o.tagName==="TH",fontSize:s.pt(parseFloat(d.fontSize)),color:V(d.color),lang:s.lang,rtlMode:s.rtl,align:c==="center"?"center":c==="right"!==s.rtl?"right":"left",border:[{type:"none"},{type:"none"},{type:"solid",pt:o.tagName==="TH"?1.5:.75,color:V(d.borderBlockEndColor)},{type:"none"}]}}})),i=[...e.querySelector("tr")?.children??[]].map(l=>l.getBoundingClientRect().width),a=i.reduce((l,o)=>l+o,0)||1;t.addTable(s.rtl?r.map(l=>l.reverse()):r,{...n,colW:(s.rtl?i.reverse():i).map(l=>l/a*n.w),margin:.06})}function Br(t,e,n,s,r){let i=n.getOption(),a=i.series??[];if(!a.length)return!1;let l=new Set(a.map(p=>p.type)),o=(i.color??[]).map(V),d=p=>Array.isArray(p)?Number(p.at(-1)):Number(typeof p=="object"&&p!==null?p.value:p),c={...s,showLegend:a.length>1||l.has("pie"),legendPos:"b",legendFontSize:12,legendColor:r.ink,chartColors:o,showTitle:!!i.title?.[0]?.text,title:i.title?.[0]?.text,titleFontSize:16,titleColor:r.ink,catAxisLabelColor:r.ink,valAxisLabelColor:r.ink,dataLabelColor:r.ink,lang:r.lang};if(l.size===1&&l.has("pie")){let p=a[0],u=Array.isArray(p.radius)&&parseFloat(p.radius[0])>0;return e.addChart(u?t.charts.DOUGHNUT:t.charts.PIE,[{name:p.name??"",labels:p.data.map(h=>h.name),values:p.data.map(d)}],{...c,showPercent:!0,showLegend:!0,holeSize:u?55:void 0}),!0}if([...l].every(p=>p==="bar"||p==="line")){let p=i.yAxis?.[0]?.type==="category",u=(p?i.yAxis:i.xAxis)?.[0]?.data??[],h=m=>[{name:m.name??"",labels:u.map(String),values:m.data.map(d)}],f=m=>m.type==="bar"?t.charts.BAR:m.areaStyle?t.charts.AREA:t.charts.LINE,k={catAxisLabelFontSize:11,valAxisLabelFontSize:11,valGridLine:{color:"D9D9D9",size:.5},catAxisOrientation:r.rtl&&!p?"maxMin":"minMax",valAxisLabelFormatCode:"#,##0"};if(l.size===1){let m=a.flatMap(h);e.addChart(f(a[0]),m,{...c,...k,barDir:p?"bar":"col",barGrouping:a.some(w=>w.stack)?"stacked":"clustered",lineDataSymbol:"circle",lineSize:2})}else e.addChart(a.map(m=>({type:f(m),data:h(m),options:{barDir:p?"bar":"col",chartColors:[o[a.indexOf(m)%o.length]]}})),{...c,...k});return!0}if(l.size===1&&l.has("scatter")){let p=a[0].data.map(u=>Array.isArray(u)?u:[u.value?.[0],u.value?.[1]]);return e.addChart(t.charts.SCATTER,[{name:"X",values:p.map(u=>u[0])},{name:a[0].name??"Y",values:p.map(u=>u[1])}],{...c,lineSize:0,lineDataSymbolSize:8}),!0}if(l.size===1&&l.has("radar")){let p=i.radar?.[0]?.indicator??[];return e.addChart(t.charts.RADAR,a[0].data.map(u=>({name:u.name??"",labels:p.map(h=>h.name),values:u.value})),{...c,showLegend:!0,radarStyle:"standard"}),!0}return!1}function Fr(t,e){let n=s=>`<p:transition spd="med"><p:push dir="${s}"/></p:transition>`;return t==="view-transition"||t==="morph"?'<mc:AlternateContent xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"><mc:Choice xmlns:p159="http://schemas.microsoft.com/office/powerpoint/2015/09/main" Requires="p159"><p:transition spd="slow"><p159:morph option="byObject"/></p:transition></mc:Choice><mc:Fallback><p:transition spd="slow"><p:fade/></p:transition></mc:Fallback></mc:AlternateContent>':t==="slide-left"?n(e?"r":"l"):t==="slide-right"?n(e?"l":"r"):t==="slide-up"?n("u"):t==="slide-down"?n("d"):'<p:transition spd="med"><p:fade/></p:transition>'}async function ht(t,e,n,s=!1){try{let r=new Image;r.crossOrigin="anonymous",r.src=t,await r.decode();let i=document.createElement("canvas");i.width=Math.max(1,Math.round(e)),i.height=Math.max(1,Math.round(n));let a=i.getContext("2d"),l=r.naturalWidth||e,o=r.naturalHeight||n,d=s?Math.max(i.width/l,i.height/o):Math.min(i.width/l,i.height/o);return a.drawImage(r,(i.width-l*d)/2,(i.height-o*d)/2,l*d,o*d),i.toDataURL("image/png")}catch{return null}}var on=`/* deck: a slide is a 16:9 box, a size container, whose canvas sizes its type and space with the
|
|
104
|
+
`}var sn=13.333,Nr=7.5,an="h1, h2, h3, h4, h5, h6, .deck-h, p:not(.deck-picture), ul, ol, blockquote";function V(t){let e=/rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)/.exec(t);return e?[e[1],e[2],e[3]].map(n=>Math.round(Number(n)).toString(16).padStart(2,"0")).join("").toUpperCase():t.replace("#","").toUpperCase().slice(0,6)||"000000"}async function ft(t,{PptxGenJS:e,JSZip:n}){let s=new e;s.layout="LAYOUT_WIDE",s.title=t.deck.slides[0]?.title??"",s.rtlMode=t.dir==="rtl";let r=getComputedStyle(t.root),i=f=>f.split(",").map(k=>k.trim().replace(/^["']|["']$/g,"")).find(k=>!/^(ui-|system-ui|-apple|sans-serif|serif|monospace)/.test(k))??"Arial";s.theme={headFontFace:i(r.getPropertyValue("--deck-heading")),bodyFontFace:i(r.getPropertyValue("--deck-body"))};let a={slides:0,charts:0,pictures:0,tables:0,placeholders:0},l=t.dir==="rtl",o=t.slides(),d=new Map,c=[];for(let[f,k]of o.entries()){let m=k.getBoundingClientRect(),w=sn/m.width,y=A=>{let z=A.getBoundingClientRect();return{x:(z.left-m.left)*w,y:(z.top-m.top)*w,w:z.width*w,h:z.height*w}},_=A=>{let z=A.closest(".deck-slot")??A,{x:F,w:v}=y(z),{y:O,h:I}=y(A),H=getComputedStyle(z),pe=parseFloat(H.paddingInlineStart)*w,ue=parseFloat(H.paddingInlineEnd)*w;return{x:F+(l?ue:pe),y:O,w:v-pe-ue,h:I*1.08}},U=A=>getComputedStyle(A).justifyContent==="center"?"middle":"top",q=A=>Math.round(A*w*72*10)/10,E=getComputedStyle(k),C=k.dataset.layout??"default",Z=[...k.querySelectorAll(".deck-slot")],X=Z[0]?.firstElementChild,D=X&&X.matches("h1, h2, h3, .deck-h")?X:null,K=t.kit.layouts[C],Y=`${K?At(K,C,t.lang):C}${k.classList.contains("deck-class-invert")?" (dark)":""}`;if(!d.has(Y)){let A=[];D&&A.push({placeholder:{options:{name:"title",type:"title",..._(D),valign:"bottom",margin:0,fontFace:s.theme.headFontFace,color:V(getComputedStyle(D).color),align:l?"right":"left"},text:""}});for(let z of Z){let F=y(z),v=D&&z===Z[0]?y(D).y+y(D).h:F.y,O=z.firstElementChild&&z.firstElementChild!==D?_(z.firstElementChild):{x:F.x,w:F.w};A.push({placeholder:{options:{name:`body-${z.dataset.slot}`,type:"body",x:O.x,y:v+.08,w:O.w,h:Math.max(.3,F.y+F.h-v-.08),margin:0,valign:U(z),color:V(getComputedStyle(z).color)},text:""}})}s.defineSlideMaster({title:Y,background:{color:V(E.backgroundColor)},objects:A,slideNumber:K?.numbered!==!1?{x:l?.3:sn-.9,y:Nr-.55,w:.6,h:.3,fontSize:10,color:V(r.getPropertyValue("--deck-muted").trim()||"#666666")}:void 0}),d.set(Y,new Set(A.map(z=>z.placeholder.options.name)))}let $e=d.get(Y),B=s.addSlide({masterName:Y});a.slides++;let re=k.querySelector(".deck-image");if(re){let A=/url\("?(.*?)"?\)/.exec(getComputedStyle(re).backgroundImage)?.[1],z=A&&await ht(A,re.clientWidth*2,re.clientHeight*2,!0);z&&(B.addImage({data:z,...y(re)}),a.pictures++)}D&&$e.has("title")&&(B.addText(ut(D,{pt:q,rtl:l,lang:t.lang}),{placeholder:"title"}),a.placeholders++);for(let A of Z){let z=[...A.children].filter(v=>v!==D);if(z.length>0&&z.every(v=>v.matches(an))&&$e.has(`body-${A.dataset.slot}`)){B.addText(z.flatMap(v=>ut(v,{pt:q,rtl:l,lang:t.lang})),{placeholder:`body-${A.dataset.slot}`,valign:U(A),...ln(A)}),a.placeholders++;continue}for(let v of z){let O=y(v);if(v.matches(an))B.addText(ut(v,{pt:q,rtl:l,lang:t.lang}),{..._(v),valign:"top",margin:0,...ln(A)});else if(v.matches("pre"))B.addText(v.textContent?.replace(/\n$/,"")??"",{...O,fontFace:"Consolas",fontSize:q(parseFloat(getComputedStyle(v).fontSize)),color:V(getComputedStyle(v).color),fill:{color:V(getComputedStyle(v).backgroundColor)},valign:"top",margin:6,rtlMode:!1,align:"left"});else if(v.matches(".deck-table"))Dr(B,v,O,{pt:q,rtl:l,lang:t.lang}),a.tables++;else if(v.matches(".deck-echarts")&&v.chart){let I=v.chart;Br(s,B,I,O,{pt:q,rtl:l,lang:t.lang,ink:V(E.color)})?a.charts++:(B.addImage({data:await ht(`data:image/svg+xml;charset=utf-8,${encodeURIComponent(I.renderToSVGString())}`,O.w/w*2,O.h/w*2),...O}),a.pictures++)}else{let I=v.querySelector("img");if(I){I.complete||(I.loading="eager",await I.decode().catch(()=>{}));let H=await ht(I.src,I.clientWidth*2,I.clientHeight*2);H&&(B.addImage({data:H,...y(I),altText:I.alt}),a.pictures++)}}}}let te=t.deck.slides[f]?.notes;te&&B.addNotes(te);let me=t.deck.slides[f]?.settings??{};c.push(String(me.transition??t.deck.settings.transition??"none").split("|")[0].trim())}let p=await n.loadAsync(await s.write({outputType:"arraybuffer",compression:!0}));for(let[f,k]of c.entries()){let m=`ppt/slides/slide${f+1}.xml`,w=await p.file(m)?.async("string");!w||k==="none"||p.file(m,w.replace(/<\/p:clrMapOvr>|(?=<p:timing|<\/p:sld>)/,y=>`${y}${Fr(k,l)}`))}let u=await p.file("ppt/theme/theme1.xml")?.async("string");if(u){let f=w=>V(r.getPropertyValue(`--deck-${w}`).trim()),k=[f("fill"),...[2,3,4,5,6].map(w=>f(`series-${w}`))],m=`<a:clrScheme name="Deck"><a:dk1><a:srgbClr val="${f("ink")}"/></a:dk1><a:lt1><a:srgbClr val="${f("paper")}"/></a:lt1><a:dk2><a:srgbClr val="${f("ink")}"/></a:dk2><a:lt2><a:srgbClr val="${f("soft")}"/></a:lt2>${k.map((w,y)=>`<a:accent${y+1}><a:srgbClr val="${w}"/></a:accent${y+1}>`).join("")}<a:hlink><a:srgbClr val="${f("primary")}"/></a:hlink><a:folHlink><a:srgbClr val="${f("primary")}"/></a:folHlink></a:clrScheme>`;p.file("ppt/theme/theme1.xml",u.replace(/<a:clrScheme[\s\S]*?<\/a:clrScheme>/,m))}return{blob:await p.generateAsync({type:"blob",compression:"DEFLATE",mimeType:"application/vnd.openxmlformats-officedocument.presentationml.presentation"}),report:a}}function ln(t){let e=t.firstElementChild,n=e?parseFloat(getComputedStyle(e).marginBlockEnd):0;return{paraSpaceAfter:Math.round(n*.5)}}function ut(t,e){let n=[],s=(i,a)=>{let l=getComputedStyle(i),o={fontSize:e.pt(parseFloat(l.fontSize)),color:V(l.color),bold:Number(l.fontWeight)>=600,lang:e.lang,rtlMode:e.rtl,align:l.textAlign==="center"?"center":e.rtl?"right":"left",...a},d=qr(i,o);d.length&&(d[d.length-1].options.breakLine=!0,n.push(...d))},r=(i,a)=>{let l=0;for(let o of i.children){l++;let d=[...o.children].filter(p=>p.matches("ul, ol")),c=o.cloneNode(!0);for(let p of[...c.children])p.matches("ul, ol, input")&&p.remove();o.after(c),s(c,{bullet:i.tagName==="OL"?{type:"number",startAt:l===1?Number(i.getAttribute("start")??1):void 0}:!0,indentLevel:a}),c.remove();for(let p of d)r(p,a+1)}};if(t.matches("ul, ol"))r(t,0);else if(t.matches("blockquote"))for(let i of t.children)s(i,{italic:getComputedStyle(i).fontStyle==="italic"});else s(t,{});return n}function qr(t,e){let n=[],s=(r,i)=>{if(r.nodeType===Node.TEXT_NODE){let l=(r.textContent??"").replace(/\s+/g," ");l&&n.push({text:l,options:{...i}});return}if(!(r instanceof HTMLElement))return;if(r.tagName==="BR"){n.length&&(n[n.length-1].options.breakLine=!0);return}let a={...i};r.matches("strong, b")&&(a.bold=!0,a.color=V(getComputedStyle(r).color)),r.matches("em, i")&&(a.italic=!0),r.matches("del, s")&&(a.strike="sngStrike"),r.matches("code")&&(a.fontFace="Consolas"),r.matches("a[href]")&&(a.hyperlink={url:r.getAttribute("href")});for(let l of r.childNodes)s(l,a)};for(let r of t.childNodes)s(r,e);return n.length&&(n[0].text=n[0].text.trimStart(),n[n.length-1].text=n[n.length-1].text.trimEnd()),n.filter(r=>r.text)}function Dr(t,e,n,s){let r=[...e.querySelectorAll("tr")].map(l=>[...l.children].map(o=>{let d=getComputedStyle(o),c=o.getAttribute("data-align");return{text:o.textContent?.trim()??"",options:{bold:o.tagName==="TH",fontSize:s.pt(parseFloat(d.fontSize)),color:V(d.color),lang:s.lang,rtlMode:s.rtl,align:c==="center"?"center":c==="right"!==s.rtl?"right":"left",border:[{type:"none"},{type:"none"},{type:"solid",pt:o.tagName==="TH"?1.5:.75,color:V(d.borderBlockEndColor)},{type:"none"}]}}})),i=[...e.querySelector("tr")?.children??[]].map(l=>l.getBoundingClientRect().width),a=i.reduce((l,o)=>l+o,0)||1;t.addTable(s.rtl?r.map(l=>l.reverse()):r,{...n,colW:(s.rtl?i.reverse():i).map(l=>l/a*n.w),margin:.06})}function Br(t,e,n,s,r){let i=n.getOption(),a=i.series??[];if(!a.length)return!1;let l=new Set(a.map(p=>p.type)),o=(i.color??[]).map(V),d=p=>Array.isArray(p)?Number(p.at(-1)):Number(typeof p=="object"&&p!==null?p.value:p),c={...s,showLegend:a.length>1||l.has("pie"),legendPos:"b",legendFontSize:12,legendColor:r.ink,chartColors:o,showTitle:!!i.title?.[0]?.text,title:i.title?.[0]?.text,titleFontSize:16,titleColor:r.ink,catAxisLabelColor:r.ink,valAxisLabelColor:r.ink,dataLabelColor:r.ink,lang:r.lang};if(l.size===1&&l.has("pie")){let p=a[0],u=Array.isArray(p.radius)&&parseFloat(p.radius[0])>0;return e.addChart(u?t.charts.DOUGHNUT:t.charts.PIE,[{name:p.name??"",labels:p.data.map(h=>h.name),values:p.data.map(d)}],{...c,showPercent:!0,showLegend:!0,holeSize:u?55:void 0}),!0}if([...l].every(p=>p==="bar"||p==="line")){let p=i.yAxis?.[0]?.type==="category",u=(p?i.yAxis:i.xAxis)?.[0]?.data??[],h=m=>[{name:m.name??"",labels:u.map(String),values:m.data.map(d)}],f=m=>m.type==="bar"?t.charts.BAR:m.areaStyle?t.charts.AREA:t.charts.LINE,k={catAxisLabelFontSize:11,valAxisLabelFontSize:11,valGridLine:{color:"D9D9D9",size:.5},catAxisOrientation:r.rtl&&!p?"maxMin":"minMax",valAxisLabelFormatCode:"#,##0"};if(l.size===1){let m=a.flatMap(h);e.addChart(f(a[0]),m,{...c,...k,barDir:p?"bar":"col",barGrouping:a.some(w=>w.stack)?"stacked":"clustered",lineDataSymbol:"circle",lineSize:2})}else e.addChart(a.map(m=>({type:f(m),data:h(m),options:{barDir:p?"bar":"col",chartColors:[o[a.indexOf(m)%o.length]]}})),{...c,...k});return!0}if(l.size===1&&l.has("scatter")){let p=a[0].data.map(u=>Array.isArray(u)?u:[u.value?.[0],u.value?.[1]]);return e.addChart(t.charts.SCATTER,[{name:"X",values:p.map(u=>u[0])},{name:a[0].name??"Y",values:p.map(u=>u[1])}],{...c,lineSize:0,lineDataSymbolSize:8}),!0}if(l.size===1&&l.has("radar")){let p=i.radar?.[0]?.indicator??[];return e.addChart(t.charts.RADAR,a[0].data.map(u=>({name:u.name??"",labels:p.map(h=>h.name),values:u.value})),{...c,showLegend:!0,radarStyle:"standard"}),!0}return!1}function Fr(t,e){let n=s=>`<p:transition spd="med"><p:push dir="${s}"/></p:transition>`;return t==="view-transition"||t==="morph"?'<mc:AlternateContent xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"><mc:Choice xmlns:p159="http://schemas.microsoft.com/office/powerpoint/2015/09/main" Requires="p159"><p:transition spd="slow"><p159:morph option="byObject"/></p:transition></mc:Choice><mc:Fallback><p:transition spd="slow"><p:fade/></p:transition></mc:Fallback></mc:AlternateContent>':t==="slide-left"?n(e?"r":"l"):t==="slide-right"?n(e?"l":"r"):t==="slide-up"?n("u"):t==="slide-down"?n("d"):'<p:transition spd="med"><p:fade/></p:transition>'}async function ht(t,e,n,s=!1){try{let r=new Image;r.crossOrigin="anonymous",r.src=t,await r.decode();let i=document.createElement("canvas");i.width=Math.max(1,Math.round(e)),i.height=Math.max(1,Math.round(n));let a=i.getContext("2d"),l=r.naturalWidth||e,o=r.naturalHeight||n,d=s?Math.max(i.width/l,i.height/o):Math.min(i.width/l,i.height/o);return a.drawImage(r,(i.width-l*d)/2,(i.height-o*d)/2,l*d,o*d),i.toDataURL("image/png")}catch{return null}}var on=`/* deck: a slide is a 16:9 box, a size container, whose canvas sizes its type and space with the
|
|
105
105
|
slide's width (cqi), so it wraps the same at any size; its colours and faces are the look's tokens as custom properties; logical properties
|
|
106
106
|
only, so a deck in Arabic mirrors. The others are laid out behind the one shown, unseen. */
|
|
107
107
|
.deck { --deck-paper: #fffdf8; --deck-ink: #1d1b16; --deck-muted: #6b675e; --deck-line: #e4e0d6; --deck-primary: #8a6100; --deck-fill: #f7c531; --deck-on-fill: #1d1b16; --deck-soft: #fdf1c9;
|
|
@@ -136,7 +136,7 @@ ${o}
|
|
|
136
136
|
.deck-slide pre.has-marks .deck-line:not(.is-marked) { opacity: 0.45; }
|
|
137
137
|
.deck-slide blockquote { border-inline-start: 0.25em solid var(--deck-fill); padding-inline-start: 0.9em; margin-inline: 0; font-style: italic; }
|
|
138
138
|
.deck-slide img { max-inline-size: 100%; max-block-size: 100%; object-fit: contain; }
|
|
139
|
-
.deck-slide .deck-picture { flex: 1; min-block-size: 0; display: grid; place-items: center; }
|
|
139
|
+
.deck-slide .deck-picture { flex: 1; min-block-size: 0; display: grid; grid-template: minmax(0, 1fr) / minmax(0, 1fr); place-items: center; }
|
|
140
140
|
.deck-slide .deck-picture img { block-size: 100%; }
|
|
141
141
|
.deck-table { overflow: hidden; }
|
|
142
142
|
.deck-slide table { border-collapse: collapse; inline-size: 100%; font-size: 0.85em; }
|