@marimo-team/frontend 0.24.1-dev81 → 0.24.1-dev83
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/dist/assets/{CellStatus-DMQfH9wD.js → CellStatus-GcHBZKLm.js} +1 -1
- package/dist/assets/{JsonOutput-B7sDhGzR.js → JsonOutput-CUJlEdsN.js} +8 -8
- package/dist/assets/{MarimoErrorOutput-C0vk393J.js → MarimoErrorOutput-DCAezqcJ.js} +2 -2
- package/dist/assets/{RenderHTML-BnMaGpV8.js → RenderHTML-D9-75ltP.js} +1 -1
- package/dist/assets/{RunButton-nocIODpS.js → RunButton-plSsbubG.js} +1 -1
- package/dist/assets/{add-cell-with-ai-B_TSaqjJ.js → add-cell-with-ai-Cfby28hZ.js} +14 -14
- package/dist/assets/{add-connection-dialog-DOuojDa-.js → add-connection-dialog-By0i0Fq5.js} +42 -42
- package/dist/assets/{agent-panel-CkKCGjDp.js → agent-panel-Cf482jaA.js} +4 -4
- package/dist/assets/ai-model-dropdown-DMfaGQ8o.js +3 -0
- package/dist/assets/app-config-button-93unbEYx.js +1 -0
- package/dist/assets/{blob-CYM8xQsK.js → blob-yxfhyyvD.js} +1 -1
- package/dist/assets/cell-editor-CZmqG6aB.js +21 -0
- package/dist/assets/{cell-link-DCOAqVkE.js → cell-link-hHrWcozB.js} +1 -1
- package/dist/assets/{cells-C6lBv8kg.js → cells-yuYDzbAy.js} +51 -51
- package/dist/assets/{chat-display-B6GBZDq8.js → chat-display-CnhvADgL.js} +1 -1
- package/dist/assets/{chat-panel-wWuBXhXw.js → chat-panel-CdE97AxM.js} +2 -2
- package/dist/assets/{chat-ui-CQ7A3qdB.js → chat-ui-BD3rpULw.js} +2 -2
- package/dist/assets/{column-preview-CatwdUda.js → column-preview-BEmcYaKl.js} +1 -1
- package/dist/assets/{command-palette-DcPM_WiO.js → command-palette-BGRRw0sn.js} +1 -1
- package/dist/assets/{common-B4aMxphz.js → common-Bs2kaOs2.js} +1 -1
- package/dist/assets/{components-D8-ffQsq.js → components-ByyAzQxP.js} +1 -1
- package/dist/assets/{datasource-D-_jFtGs.js → datasource-DeZYq5UY.js} +2 -2
- package/dist/assets/{dependency-graph-panel-BQli6zxh.js → dependency-graph-panel-g10osAFc.js} +4 -4
- package/dist/assets/{documentation-panel-_QE3nPOg.js → documentation-panel-CZ1mKkDh.js} +1 -1
- package/dist/assets/{download-Cqjqrhzo.js → download-D1crMjD8.js} +1 -1
- package/dist/assets/edit-page-Bk1sT7Wb.js +9 -0
- package/dist/assets/{error-entries-c5sIySli.js → error-entries-B6XTLRyE.js} +1 -1
- package/dist/assets/{error-panel-CXKrWK_u.js → error-panel-lexB3L6f.js} +1 -1
- package/dist/assets/{file-explorer-panel-BZiAb4x_.js → file-explorer-panel-DHRH2J-3.js} +1 -1
- package/dist/assets/{file-icons-uUY_hGYm.js → file-icons-Dx3v6lMu.js} +1 -1
- package/dist/assets/{file-name-input-DWUKg4LS.js → file-name-input-DzL8D_7x.js} +1 -1
- package/dist/assets/{floating-outline-DhGtHg6T.js → floating-outline-3rQEbxxk.js} +1 -1
- package/dist/assets/{home-page-Bka_7H02.js → home-page-Dnz4tfZB.js} +1 -1
- package/dist/assets/index-BID9w87A.js +29 -0
- package/dist/assets/layout-qHVpnnQT.js +9 -0
- package/dist/assets/{logs-panel-ragZa1sf.js → logs-panel-CSbUhhRo.js} +1 -1
- package/dist/assets/{markdown-renderer-B-uA_6mP.js → markdown-renderer-BgUTGtM0.js} +1 -1
- package/dist/assets/{name-cell-input-gC1flbyT.js → name-cell-input-pEE4FGAL.js} +1 -1
- package/dist/assets/{outline-panel-D7H7bhOh.js → outline-panel-BgnjEQWg.js} +1 -1
- package/dist/assets/{packages-panel-BZnsUm4S.js → packages-panel-BprfUOzZ.js} +1 -1
- package/dist/assets/panel-accordion-state-vpqEc3Kd.js +1 -0
- package/dist/assets/panels-3h7Cf8xJ.js +4 -0
- package/dist/assets/{process-output-DQQ8T5gv.js → process-output-siRm_lza.js} +1 -1
- package/dist/assets/{readonly-code-display-Bc0VX9i6.js → readonly-code-display-CLWV76FT.js} +1 -1
- package/dist/assets/readonly-python-code-Bor9b9pV.js +1 -0
- package/dist/assets/reveal-component-DNPksvzT.js +1069 -0
- package/dist/assets/run-page-C4aONLoP.js +1 -0
- package/dist/assets/{scratchpad-panel-BJHlMBZV.js → scratchpad-panel-BQSoRQvQ.js} +1 -1
- package/dist/assets/session-panel-DB5qEYqt.js +1 -0
- package/dist/assets/skeleton-BSxwEE0h.js +1 -0
- package/dist/assets/{snippets-panel-2jq36DdG.js → snippets-panel-B8Yi81tz.js} +1 -1
- package/dist/assets/state-D1N9_41P.js +3 -0
- package/dist/assets/state-O8w98G11.js +1 -0
- package/dist/assets/{tracing-91_akEkv.js → tracing-DuLkr7ts.js} +1 -1
- package/dist/assets/{tracing-panel-BvE81RYx.js → tracing-panel-CeLKVG8M.js} +2 -2
- package/dist/assets/{tree-actions-CGkbUSfG.js → tree-actions-Bh-Nnaub.js} +1 -1
- package/dist/assets/useAddCell-_JRYhAFd.js +1 -0
- package/dist/assets/useBoolean-Cu7Eado1.js +1 -0
- package/dist/assets/{useCellActionButton-cv6xOsnc.js → useCellActionButton-Bi8Lnv3F.js} +1 -1
- package/dist/assets/{useDeleteCell-DB-bhhnO.js → useDeleteCell-CBQiavzs.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-BDnVzNV-.js → useDependencyPanelTab-BOn3UJ07.js} +1 -1
- package/dist/assets/useNotebookActions--pblpIWF.js +10 -0
- package/dist/assets/{useRunCells-GCTS1YFv.js → useRunCells-BFQfLlUl.js} +1 -1
- package/dist/assets/{useSplitCell-DhT9BA2_.js → useSplitCell-Ig9P6lAn.js} +1 -1
- package/dist/index.html +20 -20
- package/package.json +1 -1
- package/src/__tests__/mount.test.ts +54 -2
- package/src/components/editor/__tests__/viewer-banner.test.tsx +1 -1
- package/src/components/editor/actions/export-dialog/__tests__/export-notebook.test.ts +9 -0
- package/src/components/editor/actions/export-dialog/export-notebook.ts +8 -1
- package/src/components/editor/actions/export-dialog/use-export-dialog.ts +2 -0
- package/src/components/editor/actions/useNotebookActions.tsx +1 -1
- package/src/components/editor/controls/__tests__/notebook-menu-dropdown.test.tsx +1 -1
- package/src/components/editor/renderers/__tests__/cells-renderer.test.tsx +1 -1
- package/src/components/editor/renderers/cells-renderer.tsx +15 -28
- package/src/components/editor/renderers/grid-layout/__tests__/plugin.test.ts +42 -0
- package/src/components/editor/renderers/grid-layout/plugin.tsx +20 -10
- package/src/components/editor/renderers/layout-select.tsx +1 -1
- package/src/components/editor/renderers/plugins.ts +7 -1
- package/src/components/editor/renderers/slides-layout/__tests__/plugin.test.ts +49 -15
- package/src/components/editor/renderers/slides-layout/slides-layout.tsx +16 -2
- package/src/components/editor/renderers/slides-layout/types.ts +15 -11
- package/src/components/editor/renderers/types.ts +5 -5
- package/src/components/editor/viewer-banner.tsx +1 -1
- package/src/components/pages/run-page.tsx +16 -7
- package/src/components/slides/__tests__/reveal-component.test.ts +33 -8
- package/src/components/slides/__tests__/speaker-view.test.ts +27 -0
- package/src/components/slides/reveal-component.tsx +110 -45
- package/src/components/slides/speaker-view.ts +22 -0
- package/src/components/static-html/share-modal.tsx +2 -0
- package/src/core/cells/__tests__/document-changes.test.ts +343 -26
- package/src/core/cells/document-changes.ts +181 -4
- package/src/core/export/hooks.ts +2 -0
- package/src/core/export/layout.ts +9 -0
- package/src/core/kernel/handlers.ts +7 -16
- package/src/core/kernel/state.ts +2 -0
- package/src/core/layout/__tests__/layout.test.ts +95 -0
- package/src/core/layout/layout.ts +59 -65
- package/src/core/layout/state.ts +121 -0
- package/src/core/meta/__tests__/code-visibility.test.tsx +28 -0
- package/src/core/meta/code-visibility.ts +3 -1
- package/src/core/run-app.tsx +6 -2
- package/src/core/saving/__tests__/save-component.test.ts +31 -1
- package/src/core/saving/save-component.tsx +39 -29
- package/src/core/saving/state.ts +1 -1
- package/src/core/static/download-html.ts +2 -0
- package/src/core/websocket/__tests__/useMarimoKernelConnection.hook.test.tsx +47 -14
- package/src/core/websocket/useMarimoKernelConnection.tsx +7 -2
- package/src/mount.tsx +24 -6
- package/dist/assets/ai-model-dropdown-CfWMIzjl.js +0 -3
- package/dist/assets/app-config-button-ii-Hj5CZ.js +0 -1
- package/dist/assets/cell-editor-BVb6iKbw.js +0 -21
- package/dist/assets/edit-page-RuyN164g.js +0 -9
- package/dist/assets/index-ChbtcNW2.js +0 -29
- package/dist/assets/layout-Uv1ZP5XB.js +0 -9
- package/dist/assets/panel-accordion-state-BLU7OiMD.js +0 -1
- package/dist/assets/panels-B3Y6fue9.js +0 -4
- package/dist/assets/readonly-python-code-D2HXwAfT.js +0 -1
- package/dist/assets/reveal-component-BN1C8zFu.js +0 -1069
- package/dist/assets/run-page-ByVvsH9G.js +0 -1
- package/dist/assets/session-panel-CdCKWAOf.js +0 -1
- package/dist/assets/skeleton-DirOIQrj.js +0 -1
- package/dist/assets/state-C9O-2hQL.js +0 -3
- package/dist/assets/state-DyxPdcEa.js +0 -1
- package/dist/assets/types-CoHi_MQq.js +0 -1
- package/dist/assets/useAddCell-DqvY2ulx.js +0 -1
- package/dist/assets/useBoolean-DWBCpKfT.js +0 -1
- package/dist/assets/useNotebookActions-Dxp4gTEa.js +0 -10
|
@@ -0,0 +1,1069 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{l as t,t as n}from"./useEvent-xfs0Sn4r.js";import{t as r}from"./react-CBDbhulC.js";import{Ba as i,D as a,Fa as o,Ia as s,Kt as c,lt as l}from"./cells-yuYDzbAy.js";import{t as u}from"./compiler-runtime-CYIjoINj.js";import{E as d,c as f,t as p}from"./utils-CUZQNAWJ.js";import{g as m,t as h}from"./useEventListener-D27Dii_l.js";import{O as g,v as _}from"./config-DaNyNpZL.js";import{o as v,t as y}from"./readonly-python-code-Bor9b9pV.js";import{t as b}from"./cn-ldLVeaqm.js";import{t as x}from"./jsx-runtime-B74pBk57.js";import{n as S}from"./fullscreen-0EEPR7uc.js";import{Nt as C}from"./JsonOutput-CUJlEdsN.js";import{t as w}from"./tooltip-D7dq6bnc.js";import{r as T,t as E}from"./button-Btj6GXNy.js";import{t as D}from"./createLucideIcon-B7HeEoG2.js";import{f as O,l as k,m as A,p as j,s as M,u as ee,v as te,y as N}from"./layout-qHVpnnQT.js";import{a as P}from"./useNumberFormatter-DHJ9s6Vk.js";import{t as ne}from"./code-CF0HKE9K.js";import{t as re}from"./eye-off-CFuPxa9F.js";import{n as ie,t as ae}from"./cell-editor-CZmqG6aB.js";import{n as oe,t as se}from"./RunButton-plSsbubG.js";import{r as ce}from"./useTheme-D3zvxdF3.js";import{n as le}from"./useDebounce-Dulm61-t.js";import{t as ue}from"./CellStatus-GcHBZKLm.js";import{i as de}from"./useRunCells-BFQfLlUl.js";import{n as fe,r as pe,t as me}from"./react-resizable-panels.browser.esm-BSRAHC4P.js";import{t as he}from"./readonly-code-display-CLWV76FT.js";/* empty css */var ge=D(`sticky-note`,[[`path`,{d:`M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z`,key:`1dfntj`}],[`path`,{d:`M15 3v5a1 1 0 0 0 1 1h5`,key:`6s6qgf`}]]),F=e(r(),1),I=u(),_e=Object.defineProperty,ve=Object.defineProperties,ye=Object.getOwnPropertyDescriptors,be=Object.getOwnPropertySymbols,xe=Object.prototype.hasOwnProperty,L=Object.prototype.propertyIsEnumerable,R=(e,t,n)=>t in e?_e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||={})xe.call(t,n)&&R(e,n,t[n]);if(be)for(var n of be(t))L.call(t,n)&&R(e,n,t[n]);return e},Se=(e,t)=>ve(e,ye(t)),Ce=(e,t,n)=>R(e,typeof t==`symbol`?t:t+``,n),we=(e,t,n)=>new Promise((r,i)=>{var a=e=>{try{s(n.next(e))}catch(e){i(e)}},o=e=>{try{s(n.throw(e))}catch(e){i(e)}},s=e=>e.done?r(e.value):Promise.resolve(e.value).then(a,o);s((n=n.apply(e,t)).next())}),Te=(e,t)=>{for(let n in t)e[n]=t[n];return e},B=(e,t)=>Array.from(e.querySelectorAll(t)),V=(e,t,n)=>{n?e.classList.add(t):e.classList.remove(t)},Ee=e=>{if(typeof e==`string`){if(e===`null`)return null;if(e===`true`)return!0;if(e===`false`)return!1;if(e.match(/^-?[\d\.]+$/))return parseFloat(e)}return e},H=(e,t)=>{e.style.transform=t},U=(e,t)=>{let n=e.matches||e.matchesSelector||e.msMatchesSelector;return!!(n&&n.call(e,t))},W=(e,t)=>{if(e&&typeof e.closest==`function`)return e.closest(t);for(;e;){if(U(e,t))return e;e=e.parentElement}return null},De=e=>{e||=document.documentElement;let t=e.requestFullscreen||e.webkitRequestFullscreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen;t&&t.apply(e)},Oe=(e,t,n,r=``)=>{let i=e.querySelectorAll(`.`+n);for(let t=0;t<i.length;t++){let n=i[t];if(n.parentNode===e)return n}let a=document.createElement(t);return a.className=n,a.innerHTML=r,e.appendChild(a),a},ke=e=>{let t=document.createElement(`style`);return e&&e.length>0&&t.appendChild(document.createTextNode(e)),document.head.appendChild(t),t},Ae=()=>{let e={};location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,t=>{let n=t.split(`=`).shift(),r=t.split(`=`).pop();return n&&r!==void 0&&(e[n]=r),t});for(let t in e){let n=e[t];e[t]=Ee(unescape(n))}return e.dependencies!==void 0&&delete e.dependencies,e},je=(e,t=0)=>{if(e){let n,r=e.style.height;return e.style.height=`0px`,e.parentElement&&(e.parentElement.style.height=`auto`),n=t-(e.parentElement?.offsetHeight||0),e.style.height=r+`px`,e.parentElement&&e.parentElement.style.removeProperty(`height`),n}return t},Me={mp4:`video/mp4`,m4a:`video/mp4`,ogv:`video/ogg`,mpeg:`video/mpeg`,webm:`video/webm`},Ne=(e=``)=>{let t=e.split(`.`).pop();return t?Me[t]:void 0},Pe=(e=``)=>encodeURI(e).replace(/%5B/g,`[`).replace(/%5D/g,`]`).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`),Fe=navigator.userAgent,G=/(iphone|ipod|ipad|android)/gi.test(Fe)||navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1,Ie=/android/gi.test(Fe),Le=(function(e){if(e){var t=function(e){return[].slice.call(e)},n=0,r=1,i=2,a=3,o=[],s=null,c=`requestAnimationFrame`in e?function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{sync:!1};e.cancelAnimationFrame(s);var n=function(){return u(o.filter((function(e){return e.dirty&&e.active})))};if(t.sync)return n();s=e.requestAnimationFrame(n)}:function(){},l=function(e){return function(t){o.forEach((function(t){return t.dirty=e})),c(t)}},u=function(e){e.filter((function(e){return!e.styleComputed})).forEach((function(e){e.styleComputed=m(e)})),e.filter(h).forEach(g);var t=e.filter(p);t.forEach(f),t.forEach((function(e){g(e),d(e)})),t.forEach(_)},d=function(e){return e.dirty=n},f=function(e){e.availableWidth=e.element.parentNode.clientWidth,e.currentWidth=e.element.scrollWidth,e.previousFontSize=e.currentFontSize,e.currentFontSize=Math.min(Math.max(e.minSize,e.availableWidth/e.currentWidth*e.previousFontSize),e.maxSize),e.whiteSpace=e.multiLine&&e.currentFontSize===e.minSize?`normal`:`nowrap`},p=function(e){return e.dirty!==i||e.dirty===i&&e.element.parentNode.clientWidth!==e.availableWidth},m=function(t){var n=e.getComputedStyle(t.element,null);return t.currentFontSize=parseFloat(n.getPropertyValue(`font-size`)),t.display=n.getPropertyValue(`display`),t.whiteSpace=n.getPropertyValue(`white-space`),!0},h=function(e){var t=!1;return!e.preStyleTestCompleted&&(/inline-/.test(e.display)||(t=!0,e.display=`inline-block`),e.whiteSpace!==`nowrap`&&(t=!0,e.whiteSpace=`nowrap`),e.preStyleTestCompleted=!0,t)},g=function(e){e.element.style.whiteSpace=e.whiteSpace,e.element.style.display=e.display,e.element.style.fontSize=e.currentFontSize+`px`},_=function(e){e.element.dispatchEvent(new CustomEvent(`fit`,{detail:{oldValue:e.previousFontSize,newValue:e.currentFontSize,scaleFactor:e.currentFontSize/e.previousFontSize}}))},v=function(e,t){return function(n){e.dirty=t,e.active&&c(n)}},y=function(e){return function(){o=o.filter((function(t){return t.element!==e.element})),e.observeMutations&&e.observer.disconnect(),e.element.style.whiteSpace=e.originalStyle.whiteSpace,e.element.style.display=e.originalStyle.display,e.element.style.fontSize=e.originalStyle.fontSize}},b=function(e){return function(){e.active||(e.active=!0,c())}},x=function(e){return function(){return e.active=!1}},S=function(e){e.observeMutations&&(e.observer=new MutationObserver(v(e,r)),e.observer.observe(e.element,e.observeMutations))},C={minSize:16,maxSize:512,multiLine:!0,observeMutations:`MutationObserver`in e&&{subtree:!0,childList:!0,characterData:!0}},w=null,T=function(){e.clearTimeout(w),w=e.setTimeout(l(i),O.observeWindowDelay)},E=[`resize`,`orientationchange`];return Object.defineProperty(O,"observeWindow",{set:function(t){var n=`${t?`add`:`remove`}EventListener`;E.forEach((function(t){e[n](t,T)}))}}),O.observeWindow=!0,O.observeWindowDelay=100,O.fitAll=l(a),O}function D(e,t){var n=Object.assign({},C,t),r=e.map((function(e){var t=Object.assign({},n,{element:e,active:!0});return(function(e){e.originalStyle={whiteSpace:e.element.style.whiteSpace,display:e.element.style.display,fontSize:e.element.style.fontSize},S(e),e.newbie=!0,e.dirty=!0,o.push(e)})(t),{element:e,fit:v(t,a),unfreeze:b(t),freeze:x(t),unsubscribe:y(t)}}));return c(),r}function O(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return typeof e==`string`?D(t(document.querySelectorAll(e)),n):D([e],n)[0]}})(typeof window>`u`?null:window),Re=class{constructor(e){Ce(this,`allowedToPlayAudio`,null),this.Reveal=e,this.startEmbeddedMedia=this.startEmbeddedMedia.bind(this),this.startEmbeddedIframe=this.startEmbeddedIframe.bind(this),this.preventIframeAutoFocus=this.preventIframeAutoFocus.bind(this),this.ensureMobileMediaPlaying=this.ensureMobileMediaPlaying.bind(this),this.failedAudioPlaybackTargets=new Set,this.failedVideoPlaybackTargets=new Set,this.failedMutedVideoPlaybackTargets=new Set,this.renderMediaPlayButton()}renderMediaPlayButton(){this.mediaPlayButton=document.createElement(`button`),this.mediaPlayButton.className=`r-overlay-button r-media-play-button`,this.mediaPlayButton.addEventListener(`click`,()=>{this.resetTemporarilyMutedMedia(),new Set([...this.failedAudioPlaybackTargets,...this.failedVideoPlaybackTargets,...this.failedMutedVideoPlaybackTargets]).forEach(e=>{this.startEmbeddedMedia({target:e})}),this.clearMediaPlaybackErrors()})}shouldPreload(e){if(this.Reveal.isScrollView())return!0;let t=this.Reveal.getConfig().preloadIframes;return typeof t!=`boolean`&&(t=e.hasAttribute(`data-preload`)),t}load(e,t={}){let n=this.Reveal.getConfig().display;if(n.includes(`!important`)){let t=n.replace(/\s*!important\s*$/,``).trim();e.style.setProperty(`display`,t,`important`)}else e.style.display=n;B(e,`img[data-src], video[data-src], audio[data-src], iframe[data-src]`).forEach(e=>{let t=e.tagName===`IFRAME`;(!t||this.shouldPreload(e))&&(e.setAttribute(`src`,e.getAttribute(`data-src`)),e.setAttribute(`data-lazy-loaded`,``),e.removeAttribute(`data-src`),t&&e.addEventListener(`load`,this.preventIframeAutoFocus))}),B(e,`video, audio`).forEach(e=>{let t=0;B(e,`source[data-src]`).forEach(e=>{e.setAttribute(`src`,e.getAttribute(`data-src`)),e.removeAttribute(`data-src`),e.setAttribute(`data-lazy-loaded`,``),t+=1}),G&&e.tagName===`VIDEO`&&e.setAttribute(`playsinline`,``),t>0&&e.load()});let r=e.slideBackgroundElement;if(r){r.style.display=`block`;let n=e.slideBackgroundContentElement,i=e.getAttribute(`data-background-iframe`);if(r.hasAttribute(`data-loaded`)===!1){r.setAttribute(`data-loaded`,`true`);let a=e.getAttribute(`data-background-image`),o=e.getAttribute(`data-background-video`),s=e.hasAttribute(`data-background-video-loop`),c=e.hasAttribute(`data-background-video-muted`);if(a)/^data:/.test(a.trim())?n.style.backgroundImage=`url(${a.trim()})`:n.style.backgroundImage=a.split(`,`).map(e=>`url(${Pe(decodeURI(e.trim()))})`).join(`,`);else if(o){let e=document.createElement(`video`);s&&e.setAttribute(`loop`,``),(c||this.Reveal.isSpeakerNotes())&&(e.muted=!0),G&&e.setAttribute(`playsinline`,``),o.split(`,`).forEach(t=>{let n=document.createElement(`source`);n.setAttribute(`src`,t);let r=Ne(t);r&&n.setAttribute(`type`,r),e.appendChild(n)}),n.appendChild(e)}else if(i&&t.excludeIframes!==!0){let e=document.createElement(`iframe`);e.setAttribute(`allowfullscreen`,``),e.setAttribute(`mozallowfullscreen`,``),e.setAttribute(`webkitallowfullscreen`,``),e.setAttribute(`allow`,`autoplay`),e.setAttribute(`data-src`,i),e.style.width=`100%`,e.style.height=`100%`,e.style.maxHeight=`100%`,e.style.maxWidth=`100%`,n.appendChild(e)}}let a=n.querySelector(`iframe[data-src]`);a&&this.shouldPreload(r)&&!/autoplay=(1|true|yes)/gi.test(i)&&a.getAttribute(`src`)!==i&&a.setAttribute(`src`,i)}this.layout(e)}layout(e){Array.from(e.querySelectorAll(`.r-fit-text`)).forEach(e=>{Le(e,{minSize:24,maxSize:this.Reveal.getConfig().height*.8,observeMutations:!1,observeWindow:!1})})}unload(e){e.style.display=`none`;let t=this.Reveal.getSlideBackground(e);t&&(t.style.display=`none`,B(t,`iframe[src]`).forEach(e=>{e.removeAttribute(`src`)})),B(e,`video[data-lazy-loaded][src], audio[data-lazy-loaded][src], iframe[data-lazy-loaded][src]`).forEach(e=>{e.setAttribute(`data-src`,e.getAttribute(`src`)),e.removeAttribute(`src`)}),B(e,`video[data-lazy-loaded] source[src], audio source[src]`).forEach(e=>{e.setAttribute(`data-src`,e.getAttribute(`src`)),e.removeAttribute(`src`)})}formatEmbeddedContent(){let e=(e,t,n)=>{B(this.Reveal.getSlidesElement(),`iframe[`+e+`*="`+t+`"]`).forEach(t=>{let r=t.getAttribute(e);r&&r.indexOf(n)===-1&&t.setAttribute(e,r+(/\?/.test(r)?`&`:`?`)+n)})};e(`src`,`youtube.com/embed/`,`enablejsapi=1`),e(`data-src`,`youtube.com/embed/`,`enablejsapi=1`),e(`src`,`player.vimeo.com/`,`api=1`),e(`data-src`,`player.vimeo.com/`,`api=1`)}startEmbeddedContent(e){if(e){let t=this.Reveal.isSpeakerNotes();B(e,`img[src$=".gif"]`).forEach(e=>{e.setAttribute(`src`,e.getAttribute(`src`))}),B(e,`video, audio`).forEach(e=>{if(W(e,`.fragment`)&&!W(e,`.fragment.visible`))return;let n=this.Reveal.getConfig().autoPlayMedia;if(typeof n!=`boolean`&&(n=e.hasAttribute(`data-autoplay`)||!!W(e,`.slide-background`)),n&&typeof e.play==`function`){if(t&&!e.muted)return;e.readyState>1?this.startEmbeddedMedia({target:e}):G?(e.addEventListener(`canplay`,this.ensureMobileMediaPlaying),this.playMediaElement(e)):(e.removeEventListener(`loadeddata`,this.startEmbeddedMedia),e.addEventListener(`loadeddata`,this.startEmbeddedMedia))}}),t||(B(e,`iframe[src]`).forEach(e=>{W(e,`.fragment`)&&!W(e,`.fragment.visible`)||this.startEmbeddedIframe({target:e})}),B(e,`iframe[data-src]`).forEach(e=>{W(e,`.fragment`)&&!W(e,`.fragment.visible`)||e.getAttribute(`src`)!==e.getAttribute(`data-src`)&&(e.removeEventListener(`load`,this.startEmbeddedIframe),e.addEventListener(`load`,this.startEmbeddedIframe),e.setAttribute(`src`,e.getAttribute(`data-src`)))}))}}ensureMobileMediaPlaying(e){let t=e.target;typeof t.getVideoPlaybackQuality==`function`&&setTimeout(()=>{let e=t.paused===!1,n=t.getVideoPlaybackQuality().totalVideoFrames;e&&n===0&&(t.load(),t.play())},1e3)}startEmbeddedMedia(e){let t=!!W(e.target,`html`),n=!!W(e.target,`.present`);t&&n&&(e.target.paused||e.target.ended)&&(e.target.currentTime=0,this.playMediaElement(e.target)),e.target.removeEventListener(`loadeddata`,this.startEmbeddedMedia)}playMediaElement(e){let t=e.play();t&&typeof t.catch==`function`&&t.then(()=>{e.muted||(this.allowedToPlayAudio=!0)}).catch(t=>{if(t.name===`NotAllowedError`){if(this.allowedToPlayAudio=!1,e.tagName===`VIDEO`){this.onVideoPlaybackNotAllowed(e);let t=!!W(e,`html`),n=!!W(e,`.present`),r=e.muted;t&&n&&!r&&(e.setAttribute(`data-muted-by-reveal`,`true`),e.muted=!0,e.play().catch(()=>{this.onMutedVideoPlaybackNotAllowed(e)}))}else e.tagName===`AUDIO`&&this.onAudioPlaybackNotAllowed(e)}})}startEmbeddedIframe(e){let t=e.target;if(this.preventIframeAutoFocus(e),t&&t.contentWindow){let n=!!W(e.target,`html`),r=!!W(e.target,`.present`);if(n&&r){let e=this.Reveal.getConfig().autoPlayMedia;typeof e!=`boolean`&&(e=t.hasAttribute(`data-autoplay`)||!!W(t,`.slide-background`)),/youtube\.com\/embed\//.test(t.getAttribute(`src`))&&e?t.contentWindow.postMessage(`{"event":"command","func":"playVideo","args":""}`,`*`):/player\.vimeo\.com\//.test(t.getAttribute(`src`))&&e?t.contentWindow.postMessage(`{"method":"play"}`,`*`):t.contentWindow.postMessage(`slide:start`,`*`)}}}stopEmbeddedContent(e,t={}){t=Te({unloadIframes:!0},t),e&&e.parentNode&&(B(e,`video, audio`).forEach(e=>{!e.hasAttribute(`data-ignore`)&&typeof e.pause==`function`&&(e.setAttribute(`data-paused-by-reveal`,``),e.pause(),G&&e.removeEventListener(`canplay`,this.ensureMobileMediaPlaying))}),B(e,`iframe`).forEach(e=>{e.contentWindow&&e.contentWindow.postMessage(`slide:stop`,`*`),e.removeEventListener(`load`,this.preventIframeAutoFocus),e.removeEventListener(`load`,this.startEmbeddedIframe)}),B(e,`iframe[src*="youtube.com/embed/"]`).forEach(e=>{!e.hasAttribute(`data-ignore`)&&e.contentWindow&&typeof e.contentWindow.postMessage==`function`&&e.contentWindow.postMessage(`{"event":"command","func":"pauseVideo","args":""}`,`*`)}),B(e,`iframe[src*="player.vimeo.com/"]`).forEach(e=>{!e.hasAttribute(`data-ignore`)&&e.contentWindow&&typeof e.contentWindow.postMessage==`function`&&e.contentWindow.postMessage(`{"method":"pause"}`,`*`)}),t.unloadIframes===!0&&B(e,`iframe[data-src]`).forEach(e=>{e.setAttribute(`src`,`about:blank`),e.removeAttribute(`src`)}))}isAllowedToPlayAudio(){return this.allowedToPlayAudio}showPlayOrUnmuteButton(){let e=this.failedAudioPlaybackTargets.size,t=this.failedVideoPlaybackTargets.size,n=this.failedMutedVideoPlaybackTargets.size,r=`Play media`;n>0?r=`Play video`:t>0?r=`Unmute video`:e>0&&(r=`Play audio`),this.mediaPlayButton.textContent=r,this.Reveal.getRevealElement().appendChild(this.mediaPlayButton)}onAudioPlaybackNotAllowed(e){this.failedAudioPlaybackTargets.add(e),this.showPlayOrUnmuteButton(e)}onVideoPlaybackNotAllowed(e){this.failedVideoPlaybackTargets.add(e),this.showPlayOrUnmuteButton()}onMutedVideoPlaybackNotAllowed(e){this.failedMutedVideoPlaybackTargets.add(e),this.showPlayOrUnmuteButton()}resetTemporarilyMutedMedia(){new Set([...this.failedAudioPlaybackTargets,...this.failedVideoPlaybackTargets,...this.failedMutedVideoPlaybackTargets]).forEach(e=>{e.hasAttribute(`data-muted-by-reveal`)&&(e.muted=!1,e.removeAttribute(`data-muted-by-reveal`))})}clearMediaPlaybackErrors(){this.resetTemporarilyMutedMedia(),this.failedAudioPlaybackTargets.clear(),this.failedVideoPlaybackTargets.clear(),this.failedMutedVideoPlaybackTargets.clear(),this.mediaPlayButton.remove()}preventIframeAutoFocus(e){let t=e.target;if(t&&this.Reveal.getConfig().preventIframeAutoFocus){let e=0,n=()=>{document.activeElement===t?document.activeElement.blur():e<1e3&&(e+=100,setTimeout(n,100))};setTimeout(n,100)}}afterSlideChanged(){this.clearMediaPlaybackErrors()}},ze=`.slides section`,Be=`.slides>section`,Ve=`.slides>section.present>section`,He=`.backgrounds>.slide-background`,Ue=/registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener|showPreview/,We=`h.v`,Ge=`h/v`,Ke=`c`,qe=`c/t`,Je=class{constructor(e){this.Reveal=e}render(){this.element=document.createElement(`div`),this.element.className=`slide-number`,this.Reveal.getRevealElement().appendChild(this.element)}configure(e,t){let n=`none`;e.slideNumber&&!this.Reveal.isPrintView()&&(e.showSlideNumber===`all`||e.showSlideNumber===`speaker`&&this.Reveal.isSpeakerNotes())&&(n=`block`),this.element.style.display=n}update(){this.Reveal.getConfig().slideNumber&&this.element&&(this.element.innerHTML=this.getSlideNumber())}getSlideNumber(e=this.Reveal.getCurrentSlide()){let t=this.Reveal.getConfig(),n,r=We;if(typeof t.slideNumber==`function`)n=t.slideNumber(e);else{typeof t.slideNumber==`string`&&(r=t.slideNumber),!/c/.test(r)&&this.Reveal.getHorizontalSlides().length===1&&(r=Ke);let i=e&&e.dataset.visibility===`uncounted`?0:1;switch(n=[],r){case Ke:n.push(this.Reveal.getSlidePastCount(e)+i);break;case qe:n.push(this.Reveal.getSlidePastCount(e)+i,`/`,this.Reveal.getTotalSlides());break;default:let t=this.Reveal.getIndices(e);n.push(t.h+i);let a=r===Ge?`/`:`.`;this.Reveal.isVerticalSlide(e)&&n.push(a,t.v+1)}}let i=`#`+this.Reveal.location.getHash(e);return this.formatNumber(n[0],n[1],n[2],i)}formatNumber(e,t,n,r=`#`+this.Reveal.location.getHash()){return typeof n==`number`&&!isNaN(n)?`<a href="${r}">
|
|
2
|
+
<span class="slide-number-a">${e}</span>
|
|
3
|
+
<span class="slide-number-delimiter">${t}</span>
|
|
4
|
+
<span class="slide-number-b">${n}</span>
|
|
5
|
+
</a>`:`<a href="${r}">
|
|
6
|
+
<span class="slide-number-a">${e}</span>
|
|
7
|
+
</a>`}destroy(){this.element.remove()}},Ye=class{constructor(e){this.Reveal=e,this.onInput=this.onInput.bind(this),this.onBlur=this.onBlur.bind(this),this.onKeyDown=this.onKeyDown.bind(this)}render(){this.element=document.createElement(`div`),this.element.className=`jump-to-slide`,this.jumpInput=document.createElement(`input`),this.jumpInput.type=`text`,this.jumpInput.className=`jump-to-slide-input`,this.jumpInput.placeholder=`Jump to slide`,this.jumpInput.addEventListener(`input`,this.onInput),this.jumpInput.addEventListener(`keydown`,this.onKeyDown),this.jumpInput.addEventListener(`blur`,this.onBlur),this.element.appendChild(this.jumpInput)}show(){this.indicesOnShow=this.Reveal.getIndices(),this.Reveal.getRevealElement().appendChild(this.element),this.jumpInput.focus()}hide(){this.isVisible()&&(this.element.remove(),this.jumpInput.value=``,clearTimeout(this.jumpTimeout),delete this.jumpTimeout)}isVisible(){return!!this.element.parentNode}jump(){clearTimeout(this.jumpTimeout),delete this.jumpTimeout;let e=this.jumpInput.value.trim(``),t;if(/^\d+$/.test(e)){let n=this.Reveal.getConfig().slideNumber;if(n===Ke||n===qe){let n=this.Reveal.getSlides()[parseInt(e,10)-1];n&&(t=this.Reveal.getIndices(n))}}return t||=(/^\d+\.\d+$/.test(e)&&(e=e.replace(`.`,`/`)),this.Reveal.location.getIndicesFromHash(e,{oneBasedIndex:!0})),!t&&/\S+/i.test(e)&&e.length>1&&(t=this.search(e)),t&&e!==``?(this.Reveal.slide(t.h,t.v,t.f),!0):(this.Reveal.slide(this.indicesOnShow.h,this.indicesOnShow.v,this.indicesOnShow.f),!1)}jumpAfter(e){clearTimeout(this.jumpTimeout),this.jumpTimeout=setTimeout(()=>this.jump(),e)}search(e){let t=RegExp(`\\b`+e.trim()+`\\b`,`i`),n=this.Reveal.getSlides().find(e=>t.test(e.innerText));return n?this.Reveal.getIndices(n):null}cancel(){this.Reveal.slide(this.indicesOnShow.h,this.indicesOnShow.v,this.indicesOnShow.f),this.hide()}confirm(){this.jump(),this.hide()}destroy(){this.jumpInput.removeEventListener(`input`,this.onInput),this.jumpInput.removeEventListener(`keydown`,this.onKeyDown),this.jumpInput.removeEventListener(`blur`,this.onBlur),this.element.remove()}onKeyDown(e){e.keyCode===13?this.confirm():e.keyCode===27&&(this.cancel(),e.stopImmediatePropagation())}onInput(e){this.jumpAfter(200)}onBlur(){setTimeout(()=>this.hide(),1)}},Xe=e=>{let t=e.match(/^#([0-9a-f]{3})$/i);if(t&&t[1]){let e=t[1];return{r:parseInt(e.charAt(0),16)*17,g:parseInt(e.charAt(1),16)*17,b:parseInt(e.charAt(2),16)*17}}let n=e.match(/^#([0-9a-f]{6})$/i);if(n&&n[1]){let e=n[1];return{r:parseInt(e.slice(0,2),16),g:parseInt(e.slice(2,4),16),b:parseInt(e.slice(4,6),16)}}let r=e.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);if(r)return{r:parseInt(r[1],10),g:parseInt(r[2],10),b:parseInt(r[3],10)};let i=e.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d]+|[\d]*.[\d]+)\s*\)$/i);return i?{r:parseInt(i[1],10),g:parseInt(i[2],10),b:parseInt(i[3],10),a:parseFloat(i[4])}:null},Ze=e=>(typeof e==`string`&&(e=Xe(e)),e?(e.r*299+e.g*587+e.b*114)/1e3:null),Qe=class{constructor(e){this.Reveal=e}render(){this.element=document.createElement(`div`),this.element.className=`backgrounds`,this.Reveal.getRevealElement().appendChild(this.element)}create(){this.element.innerHTML=``,this.element.classList.add(`no-transition`),this.Reveal.getHorizontalSlides().forEach(e=>{let t=this.createBackground(e,this.element);B(e,`section`).forEach(e=>{this.createBackground(e,t),t.classList.add(`stack`)})}),this.Reveal.getConfig().parallaxBackgroundImage?(this.element.style.backgroundImage=`url("`+this.Reveal.getConfig().parallaxBackgroundImage+`")`,this.element.style.backgroundSize=this.Reveal.getConfig().parallaxBackgroundSize,this.element.style.backgroundRepeat=this.Reveal.getConfig().parallaxBackgroundRepeat,this.element.style.backgroundPosition=this.Reveal.getConfig().parallaxBackgroundPosition,setTimeout(()=>{this.Reveal.getRevealElement().classList.add(`has-parallax-background`)},1)):(this.element.style.backgroundImage=``,this.Reveal.getRevealElement().classList.remove(`has-parallax-background`))}createBackground(e,t){let n=document.createElement(`div`);n.className=`slide-background `+e.className.replace(/present|past|future/,``);let r=document.createElement(`div`);return r.className=`slide-background-content`,n.appendChild(r),t.appendChild(n),e.slideBackgroundElement=n,e.slideBackgroundContentElement=r,this.sync(e),n}sync(e){let t=e.slideBackgroundElement,n=e.slideBackgroundContentElement,r={background:e.getAttribute(`data-background`),backgroundSize:e.getAttribute(`data-background-size`),backgroundImage:e.getAttribute(`data-background-image`),backgroundVideo:e.getAttribute(`data-background-video`),backgroundIframe:e.getAttribute(`data-background-iframe`),backgroundColor:e.getAttribute(`data-background-color`),backgroundGradient:e.getAttribute(`data-background-gradient`),backgroundRepeat:e.getAttribute(`data-background-repeat`),backgroundPosition:e.getAttribute(`data-background-position`),backgroundTransition:e.getAttribute(`data-background-transition`),backgroundOpacity:e.getAttribute(`data-background-opacity`)},i=e.hasAttribute(`data-preload`);e.classList.remove(`has-dark-background`),e.classList.remove(`has-light-background`),t.removeAttribute(`data-loaded`),t.removeAttribute(`data-background-hash`),t.removeAttribute(`data-background-size`),t.removeAttribute(`data-background-transition`),t.style.backgroundColor=``,n.style.backgroundSize=``,n.style.backgroundRepeat=``,n.style.backgroundPosition=``,n.style.backgroundImage=``,n.style.opacity=``,n.innerHTML=``,r.background&&(/^(http|file|\/\/)/gi.test(r.background)||/\.(svg|png|jpg|jpeg|gif|bmp|webp)([?#\s]|$)/gi.test(r.background)?e.setAttribute(`data-background-image`,r.background):t.style.background=r.background),(r.background||r.backgroundColor||r.backgroundGradient||r.backgroundImage||r.backgroundVideo||r.backgroundIframe)&&t.setAttribute(`data-background-hash`,r.background+r.backgroundSize+r.backgroundImage+r.backgroundVideo+r.backgroundIframe+r.backgroundColor+r.backgroundGradient+r.backgroundRepeat+r.backgroundPosition+r.backgroundTransition+r.backgroundOpacity),r.backgroundSize&&t.setAttribute(`data-background-size`,r.backgroundSize),r.backgroundColor&&(t.style.backgroundColor=r.backgroundColor),r.backgroundGradient&&(t.style.backgroundImage=r.backgroundGradient),r.backgroundTransition&&t.setAttribute(`data-background-transition`,r.backgroundTransition),i&&t.setAttribute(`data-preload`,``),r.backgroundSize&&(n.style.backgroundSize=r.backgroundSize),r.backgroundRepeat&&(n.style.backgroundRepeat=r.backgroundRepeat),r.backgroundPosition&&(n.style.backgroundPosition=r.backgroundPosition),r.backgroundOpacity&&(n.style.opacity=r.backgroundOpacity);let a=this.getContrastClass(e);typeof a==`string`&&e.classList.add(a)}getContrastClass(e){let t=e.slideBackgroundElement,n=e.getAttribute(`data-background-color`);if(!n||!Xe(n)){let e=window.getComputedStyle(t);e&&e.backgroundColor&&(n=e.backgroundColor)}if(n){let e=Xe(n);if(e&&e.a!==0)return Ze(n)<128?`has-dark-background`:`has-light-background`}return null}bubbleSlideContrastClassToElement(e,t){[`has-light-background`,`has-dark-background`].forEach(n=>{e.classList.contains(n)?t.classList.add(n):t.classList.remove(n)},this)}update(e=!1){let t=this.Reveal.getConfig(),n=this.Reveal.getCurrentSlide(),r=this.Reveal.getIndices(),i=null,a=t.rtl?`future`:`past`,o=t.rtl?`past`:`future`;if(Array.from(this.element.childNodes).forEach((t,n)=>{t.classList.remove(`past`,`present`,`future`),n<r.h?t.classList.add(a):n>r.h?t.classList.add(o):(t.classList.add(`present`),i=t),(e||n===r.h)&&B(t,`.slide-background`).forEach((e,t)=>{e.classList.remove(`past`,`present`,`future`);let a=typeof r.v==`number`?r.v:0;t<a?e.classList.add(`past`):t>a?e.classList.add(`future`):(e.classList.add(`present`),n===r.h&&(i=e))})}),this.previousBackground&&!this.previousBackground.closest(`body`)&&(this.previousBackground=null),i&&this.previousBackground){let e=this.previousBackground.getAttribute(`data-background-hash`),t=i.getAttribute(`data-background-hash`);if(t&&t===e&&i!==this.previousBackground){this.element.classList.add(`no-transition`);let e=i.querySelector(`video`),t=this.previousBackground.querySelector(`video`);if(e&&t){let n=e.parentNode;t.parentNode.appendChild(e),n.appendChild(t)}}}let s=i!==this.previousBackground;if(s&&this.previousBackground&&this.Reveal.slideContent.stopEmbeddedContent(this.previousBackground,{unloadIframes:!this.Reveal.slideContent.shouldPreload(this.previousBackground)}),s&&i){this.Reveal.slideContent.startEmbeddedContent(i);let e=i.querySelector(`.slide-background-content`);if(e){let t=e.style.backgroundImage||``;/\.gif/i.test(t)&&(e.style.backgroundImage=``,window.getComputedStyle(e).opacity,e.style.backgroundImage=t)}this.previousBackground=i}n&&this.bubbleSlideContrastClassToElement(n,this.Reveal.getRevealElement()),setTimeout(()=>{this.element.classList.remove(`no-transition`)},10)}updateParallax(){let e=this.Reveal.getIndices();if(this.Reveal.getConfig().parallaxBackgroundImage){let t=this.Reveal.getHorizontalSlides(),n=this.Reveal.getVerticalSlides(),r=this.element.style.backgroundSize.split(` `),i,a;r.length===1?i=a=parseInt(r[0],10):(i=parseInt(r[0],10),a=parseInt(r[1],10));let o=this.element.offsetWidth,s=t.length,c,l;c=typeof this.Reveal.getConfig().parallaxBackgroundHorizontal==`number`?this.Reveal.getConfig().parallaxBackgroundHorizontal:s>1?(i-o)/(s-1):0,l=c*e.h*-1;let u=this.element.offsetHeight,d=n.length,f,p;f=typeof this.Reveal.getConfig().parallaxBackgroundVertical==`number`?this.Reveal.getConfig().parallaxBackgroundVertical:(a-u)/(d-1),p=d>0?f*e.v:0,this.element.style.backgroundPosition=l+`px `+-p+`px`}}destroy(){this.element.remove()}},$e=0,et=class{constructor(e){this.Reveal=e}run(e,t){this.reset();let n=this.Reveal.getSlides(),r=n.indexOf(t),i=n.indexOf(e);if(e&&t&&e.hasAttribute(`data-auto-animate`)&&t.hasAttribute(`data-auto-animate`)&&e.getAttribute(`data-auto-animate-id`)===t.getAttribute(`data-auto-animate-id`)&&!(r>i?t:e).hasAttribute(`data-auto-animate-restart`)){this.autoAnimateStyleSheet=this.autoAnimateStyleSheet||ke();let n=this.getAutoAnimateOptions(t);e.dataset.autoAnimate=`pending`,t.dataset.autoAnimate=`pending`,n.slideDirection=r>i?`forward`:`backward`;let a=e.style.display===`none`;a&&(e.style.display=this.Reveal.getConfig().display);let o=this.getAutoAnimatableElements(e,t).map(e=>this.autoAnimateElements(e.from,e.to,e.options||{},n,$e++));if(a&&(e.style.display=`none`),t.dataset.autoAnimateUnmatched!==`false`&&this.Reveal.getConfig().autoAnimateUnmatched===!0){let e=n.duration*.8,r=n.duration*.2;this.getUnmatchedAutoAnimateElements(t).forEach(e=>{let t=this.getAutoAnimateOptions(e,n),r=`unmatched`;(t.duration!==n.duration||t.delay!==n.delay)&&(r=`unmatched-`+$e++,o.push(`[data-auto-animate="running"] [data-auto-animate-target="${r}"] { transition: opacity ${t.duration}s ease ${t.delay}s; }`)),e.dataset.autoAnimateTarget=r},this),o.push(`[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity ${e}s ease ${r}s; }`)}this.autoAnimateStyleSheet.innerHTML=o.join(``),requestAnimationFrame(()=>{this.autoAnimateStyleSheet&&(getComputedStyle(this.autoAnimateStyleSheet).fontWeight,t.dataset.autoAnimate=`running`)}),this.Reveal.dispatchEvent({type:`autoanimate`,data:{fromSlide:e,toSlide:t,sheet:this.autoAnimateStyleSheet}})}}reset(){B(this.Reveal.getRevealElement(),`[data-auto-animate]:not([data-auto-animate=""])`).forEach(e=>{e.dataset.autoAnimate=``}),B(this.Reveal.getRevealElement(),`[data-auto-animate-target]`).forEach(e=>{delete e.dataset.autoAnimateTarget}),this.autoAnimateStyleSheet&&this.autoAnimateStyleSheet.parentNode&&(this.autoAnimateStyleSheet.parentNode.removeChild(this.autoAnimateStyleSheet),this.autoAnimateStyleSheet=null)}autoAnimateElements(e,t,n,r,i){e.dataset.autoAnimateTarget=``,t.dataset.autoAnimateTarget=i;let a=this.getAutoAnimateOptions(t,r);n.delay!==void 0&&(a.delay=n.delay),n.duration!==void 0&&(a.duration=n.duration),n.easing!==void 0&&(a.easing=n.easing);let o=this.getAutoAnimatableProperties(`from`,e,n),s=this.getAutoAnimatableProperties(`to`,t,n);if(t.classList.contains(`fragment`)&&delete s.styles.opacity,n.translate!==!1||n.scale!==!1){let e=this.Reveal.getScale(),t={x:(o.x-s.x)/e,y:(o.y-s.y)/e,scaleX:o.width/s.width,scaleY:o.height/s.height};t.x=Math.round(t.x*1e3)/1e3,t.y=Math.round(t.y*1e3)/1e3,t.scaleX=Math.round(t.scaleX*1e3)/1e3,t.scaleX=Math.round(t.scaleX*1e3)/1e3;let r=n.translate!==!1&&(t.x!==0||t.y!==0),i=n.scale!==!1&&(t.scaleX!==0||t.scaleY!==0);if(r||i){let e=[];r&&e.push(`translate(${t.x}px, ${t.y}px)`),i&&e.push(`scale(${t.scaleX}, ${t.scaleY})`),o.styles.transform=e.join(` `),o.styles[`transform-origin`]=`top left`,s.styles.transform=`none`}}for(let e in s.styles){let t=s.styles[e],n=o.styles[e];t===n?delete s.styles[e]:(t.explicitValue===!0&&(s.styles[e]=t.value),n.explicitValue===!0&&(o.styles[e]=n.value))}let c=``,l=Object.keys(s.styles);if(l.length>0){o.styles.transition=`none`,s.styles.transition=`all ${a.duration}s ${a.easing} ${a.delay}s`,s.styles[`transition-property`]=l.join(`, `),s.styles[`will-change`]=l.join(`, `);let e=Object.keys(o.styles).map(e=>e+`: `+o.styles[e]+` !important;`).join(``),t=Object.keys(s.styles).map(e=>e+`: `+s.styles[e]+` !important;`).join(``);c=`[data-auto-animate-target="`+i+`"] {`+e+`}[data-auto-animate="running"] [data-auto-animate-target="`+i+`"] {`+t+`}`}return c}getAutoAnimateOptions(e,t){let n={easing:this.Reveal.getConfig().autoAnimateEasing,duration:this.Reveal.getConfig().autoAnimateDuration,delay:0};if(n=Te(n,t),e.parentNode){let t=W(e.parentNode,`[data-auto-animate-target]`);t&&(n=this.getAutoAnimateOptions(t,n))}return e.dataset.autoAnimateEasing&&(n.easing=e.dataset.autoAnimateEasing),e.dataset.autoAnimateDuration&&(n.duration=parseFloat(e.dataset.autoAnimateDuration)),e.dataset.autoAnimateDelay&&(n.delay=parseFloat(e.dataset.autoAnimateDelay)),n}getAutoAnimatableProperties(e,t,n){let r=this.Reveal.getConfig(),i={styles:[]};if(n.translate!==!1||n.scale!==!1){let e;if(typeof n.measure==`function`)e=n.measure(t);else if(r.center)e=t.getBoundingClientRect();else{let n=this.Reveal.getScale();e={x:t.offsetLeft*n,y:t.offsetTop*n,width:t.offsetWidth*n,height:t.offsetHeight*n}}i.x=e.x,i.y=e.y,i.width=e.width,i.height=e.height}let a=getComputedStyle(t);return(n.styles||r.autoAnimateStyles).forEach(t=>{let n;typeof t==`string`&&(t={property:t}),t.from!==void 0&&e===`from`?n={value:t.from,explicitValue:!0}:t.to!==void 0&&e===`to`?n={value:t.to,explicitValue:!0}:(t.property===`line-height`&&(n=parseFloat(a[`line-height`])/parseFloat(a[`font-size`])),isNaN(n)&&(n=a[t.property])),n!==``&&(i.styles[t.property]=n)}),i}getAutoAnimatableElements(e,t){let n=(typeof this.Reveal.getConfig().autoAnimateMatcher==`function`?this.Reveal.getConfig().autoAnimateMatcher:this.getAutoAnimatePairs).call(this,e,t),r=[];return n.filter((e,t)=>{if(r.indexOf(e.to)===-1)return r.push(e.to),!0})}getAutoAnimatePairs(e,t){let n=[],r=`h1, h2, h3, h4, h5, h6, p, li`;return this.findAutoAnimateMatches(n,e,t,`[data-id]`,e=>e.nodeName+`:::`+e.getAttribute(`data-id`)),this.findAutoAnimateMatches(n,e,t,r,e=>e.nodeName+`:::`+e.textContent.trim()),this.findAutoAnimateMatches(n,e,t,`img, video, iframe`,e=>e.nodeName+`:::`+(e.getAttribute(`src`)||e.getAttribute(`data-src`))),this.findAutoAnimateMatches(n,e,t,`pre`,e=>e.nodeName+`:::`+e.textContent.trim()),n.forEach(e=>{U(e.from,r)?e.options={scale:!1}:U(e.from,`pre`)&&(e.options={scale:!1,styles:[`width`,`height`]},this.findAutoAnimateMatches(n,e.from,e.to,`.hljs .hljs-ln-code`,e=>e.textContent,{scale:!1,styles:[],measure:this.getLocalBoundingBox.bind(this)}),this.findAutoAnimateMatches(n,e.from,e.to,`.hljs .hljs-ln-numbers[data-line-number]`,e=>e.getAttribute(`data-line-number`),{scale:!1,styles:[`width`],measure:this.getLocalBoundingBox.bind(this)}))},this),n}getLocalBoundingBox(e){let t=this.Reveal.getScale();return{x:Math.round(e.offsetLeft*t*100)/100,y:Math.round(e.offsetTop*t*100)/100,width:Math.round(e.offsetWidth*t*100)/100,height:Math.round(e.offsetHeight*t*100)/100}}findAutoAnimateMatches(e,t,n,r,i,a){let o={},s={};[].slice.call(t.querySelectorAll(r)).forEach((e,t)=>{let n=i(e);typeof n==`string`&&n.length&&(o[n]=o[n]||[],o[n].push(e))}),[].slice.call(n.querySelectorAll(r)).forEach((t,n)=>{let r=i(t);s[r]=s[r]||[],s[r].push(t);let c;if(o[r]){let e=s[r].length-1,t=o[r].length-1;o[r][e]?(c=o[r][e],o[r][e]=null):o[r][t]&&(c=o[r][t],o[r][t]=null)}c&&e.push({from:c,to:t,options:a})})}getUnmatchedAutoAnimateElements(e){return[].slice.call(e.children).reduce((e,t)=>{let n=t.querySelector(`[data-auto-animate-target]`);return!t.hasAttribute(`data-auto-animate-target`)&&!n&&e.push(t),t.querySelector(`[data-auto-animate-target]`)&&(e=e.concat(this.getUnmatchedAutoAnimateElements(t))),e},[])}},tt=500,K=4,nt=6,rt=8,it=class{constructor(e){this.Reveal=e,this.active=!1,this.activatedCallbacks=[],this.onScroll=this.onScroll.bind(this)}activate(){if(this.active)return;let e=this.Reveal.getState();this.active=!0,this.slideHTMLBeforeActivation=this.Reveal.getSlidesElement().innerHTML;let t=B(this.Reveal.getRevealElement(),Be),n=B(this.Reveal.getRevealElement(),He);this.viewportElement.classList.add(`loading-scroll-mode`,`reveal-scroll`);let r,i=window.getComputedStyle(this.viewportElement);i&&i.background&&(r=i.background);let a=[],o=t[0].parentNode,s,c=(e,t,i,o)=>{let c;if(s&&this.Reveal.shouldAutoAnimateBetween(s,e))c=document.createElement(`div`),c.className=`scroll-page-content scroll-auto-animate-page`,c.style.display=`none`,s.closest(`.scroll-page-content`).parentNode.appendChild(c);else{let e=document.createElement(`div`);if(e.className=`scroll-page`,a.push(e),o&&n.length>t){let i=n[t],a=window.getComputedStyle(i);a&&a.background?e.style.background=a.background:r&&(e.style.background=r)}else r&&(e.style.background=r);let i=document.createElement(`div`);i.className=`scroll-page-sticky`,e.appendChild(i),c=document.createElement(`div`),c.className=`scroll-page-content`,i.appendChild(c)}c.appendChild(e),e.classList.remove(`past`,`future`),e.setAttribute(`data-index-h`,t),e.setAttribute(`data-index-v`,i),e.slideBackgroundElement&&(e.slideBackgroundElement.remove(`past`,`future`),c.insertBefore(e.slideBackgroundElement,e)),s=e};t.forEach((e,t)=>{this.Reveal.isVerticalStack(e)?e.querySelectorAll(`section`).forEach((e,n)=>{c(e,t,n,!0)}):c(e,t,0)},this),this.createProgressBar(),B(this.Reveal.getRevealElement(),`.stack`).forEach(e=>e.remove()),a.forEach(e=>o.appendChild(e)),this.Reveal.slideContent.layout(this.Reveal.getSlidesElement()),this.Reveal.layout(),this.Reveal.setState(e),this.activatedCallbacks.forEach(e=>e()),this.activatedCallbacks=[],this.restoreScrollPosition(),this.viewportElement.classList.remove(`loading-scroll-mode`),this.viewportElement.addEventListener(`scroll`,this.onScroll,{passive:!0})}deactivate(){if(!this.active)return;let e=this.Reveal.getState();this.active=!1,this.viewportElement.removeEventListener(`scroll`,this.onScroll),this.viewportElement.classList.remove(`reveal-scroll`),this.removeProgressBar(),this.Reveal.getSlidesElement().innerHTML=this.slideHTMLBeforeActivation,this.Reveal.sync(),this.Reveal.setState(e),this.slideHTMLBeforeActivation=null}toggle(e){typeof e==`boolean`?e?this.activate():this.deactivate():this.isActive()?this.deactivate():this.activate()}isActive(){return this.active}createProgressBar(){this.progressBar=document.createElement(`div`),this.progressBar.className=`scrollbar`,this.progressBarInner=document.createElement(`div`),this.progressBarInner.className=`scrollbar-inner`,this.progressBar.appendChild(this.progressBarInner),this.progressBarPlayhead=document.createElement(`div`),this.progressBarPlayhead.className=`scrollbar-playhead`,this.progressBarInner.appendChild(this.progressBarPlayhead),this.viewportElement.insertBefore(this.progressBar,this.viewportElement.firstChild);let e=e=>{let t=(e.clientY-this.progressBarInner.getBoundingClientRect().top)/this.progressBarHeight;t=Math.max(Math.min(t,1),0),this.viewportElement.scrollTop=t*(this.viewportElement.scrollHeight-this.viewportElement.offsetHeight)},t=n=>{this.draggingProgressBar=!1,this.showProgressBar(),document.removeEventListener(`mousemove`,e),document.removeEventListener(`mouseup`,t)};this.progressBarInner.addEventListener(`mousedown`,n=>{n.preventDefault(),this.draggingProgressBar=!0,document.addEventListener(`mousemove`,e),document.addEventListener(`mouseup`,t),e(n)})}removeProgressBar(){this.progressBar&&=(this.progressBar.remove(),null)}layout(){this.isActive()&&(this.syncPages(),this.syncScrollPosition())}syncPages(){let e=this.Reveal.getConfig(),t=this.Reveal.getComputedSlideSize(window.innerWidth,window.innerHeight),n=this.Reveal.getScale(),r=e.scrollLayout===`compact`,i=this.viewportElement.offsetHeight,a=t.height*n,o=r?a:i;this.scrollTriggerHeight=r?a:i,this.viewportElement.style.setProperty(`--page-height`,o+`px`),this.viewportElement.style.scrollSnapType=typeof e.scrollSnap==`string`?`y ${e.scrollSnap}`:``,this.slideTriggers=[];let s=Array.from(this.Reveal.getRevealElement().querySelectorAll(`.scroll-page`));this.pages=s.map(n=>{let a=this.createPage({pageElement:n,slideElement:n.querySelector(`section`),stickyElement:n.querySelector(`.scroll-page-sticky`),contentElement:n.querySelector(`.scroll-page-content`),backgroundElement:n.querySelector(`.slide-background`),autoAnimateElements:n.querySelectorAll(`.scroll-auto-animate-page`),autoAnimatePages:[]});a.pageElement.style.setProperty(`--slide-height`,e.center===!0?`auto`:t.height+`px`),this.slideTriggers.push({page:a,activate:()=>this.activatePage(a),deactivate:()=>this.deactivatePage(a)}),this.createFragmentTriggersForPage(a),a.autoAnimateElements.length>0&&this.createAutoAnimateTriggersForPage(a);let s=Math.max(a.scrollTriggers.length-1,0);s+=a.autoAnimatePages.reduce((e,t)=>e+Math.max(t.scrollTriggers.length-1,0),a.autoAnimatePages.length),a.pageElement.querySelectorAll(`.scroll-snap-point`).forEach(e=>e.remove());for(let e=0;e<s+1;e++){let t=document.createElement(`div`);t.className=`scroll-snap-point`,t.style.height=this.scrollTriggerHeight+`px`,t.style.scrollSnapAlign=r?`center`:`start`,a.pageElement.appendChild(t),e===0&&(t.style.marginTop=-this.scrollTriggerHeight+`px`)}return r&&a.scrollTriggers.length>0?(a.pageHeight=i,a.pageElement.style.setProperty(`--page-height`,i+`px`)):(a.pageHeight=o,a.pageElement.style.removeProperty(`--page-height`)),a.scrollPadding=this.scrollTriggerHeight*s,a.totalHeight=a.pageHeight+a.scrollPadding,a.pageElement.style.setProperty(`--page-scroll-padding`,a.scrollPadding+`px`),s>0?(a.stickyElement.style.position=`sticky`,a.stickyElement.style.top=Math.max((i-a.pageHeight)/2,0)+`px`):(a.stickyElement.style.position=`relative`,a.pageElement.style.scrollSnapAlign=a.pageHeight<i?`center`:`start`),a}),this.setTriggerRanges(),this.viewportElement.setAttribute(`data-scrollbar`,e.scrollProgress),e.scrollProgress&&this.totalScrollTriggerCount>1?(this.progressBar||this.createProgressBar(),this.syncProgressBar()):this.removeProgressBar()}setTriggerRanges(){this.totalScrollTriggerCount=this.slideTriggers.reduce((e,t)=>e+Math.max(t.page.scrollTriggers.length,1),0);let e=0;this.slideTriggers.forEach((t,n)=>{t.range=[e,e+Math.max(t.page.scrollTriggers.length,1)/this.totalScrollTriggerCount];let r=(t.range[1]-t.range[0])/t.page.scrollTriggers.length;t.page.scrollTriggers.forEach((t,n)=>{t.range=[e+n*r,e+(n+1)*r]}),e=t.range[1]}),this.slideTriggers[this.slideTriggers.length-1].range[1]=1}createFragmentTriggersForPage(e,t){t||=e.slideElement;let n=this.Reveal.fragments.sort(t.querySelectorAll(`.fragment`),!0);return n.length&&(e.fragments=this.Reveal.fragments.sort(t.querySelectorAll(`.fragment:not(.disabled)`)),e.scrollTriggers.push({activate:()=>{this.Reveal.fragments.update(-1,e.fragments,t)}}),n.forEach((n,r)=>{e.scrollTriggers.push({activate:()=>{this.Reveal.fragments.update(r,e.fragments,t)}})})),e.scrollTriggers.length}createAutoAnimateTriggersForPage(e){e.autoAnimateElements.length>0&&this.slideTriggers.push(...Array.from(e.autoAnimateElements).map((t,n)=>{let r=this.createPage({slideElement:t.querySelector(`section`),contentElement:t,backgroundElement:t.querySelector(`.slide-background`)});return this.createFragmentTriggersForPage(r,r.slideElement),e.autoAnimatePages.push(r),{page:r,activate:()=>this.activatePage(r),deactivate:()=>this.deactivatePage(r)}}))}createPage(e){return e.scrollTriggers=[],e.indexh=parseInt(e.slideElement.getAttribute(`data-index-h`),10),e.indexv=parseInt(e.slideElement.getAttribute(`data-index-v`),10),e}syncProgressBar(){this.progressBarInner.querySelectorAll(`.scrollbar-slide`).forEach(e=>e.remove());let e=this.viewportElement.scrollHeight,t=this.viewportElement.offsetHeight,n=t/e;this.progressBarHeight=this.progressBarInner.offsetHeight,this.playheadHeight=Math.max(n*this.progressBarHeight,rt),this.progressBarScrollableHeight=this.progressBarHeight-this.playheadHeight;let r=t/e*this.progressBarHeight,i=Math.min(r/8,K);this.progressBarPlayhead.style.height=this.playheadHeight-i+`px`,r>nt?this.slideTriggers.forEach(e=>{let{page:t}=e;t.progressBarSlide=document.createElement(`div`),t.progressBarSlide.className=`scrollbar-slide`,t.progressBarSlide.style.top=e.range[0]*this.progressBarHeight+`px`,t.progressBarSlide.style.height=(e.range[1]-e.range[0])*this.progressBarHeight-i+`px`,t.progressBarSlide.classList.toggle(`has-triggers`,t.scrollTriggers.length>0),this.progressBarInner.appendChild(t.progressBarSlide),t.scrollTriggerElements=t.scrollTriggers.map((n,r)=>{let a=document.createElement(`div`);return a.className=`scrollbar-trigger`,a.style.top=(n.range[0]-e.range[0])*this.progressBarHeight+`px`,a.style.height=(n.range[1]-n.range[0])*this.progressBarHeight-i+`px`,t.progressBarSlide.appendChild(a),r===0&&(a.style.display=`none`),a})}):this.pages.forEach(e=>e.progressBarSlide=null)}syncScrollPosition(){let e=this.viewportElement.offsetHeight,t=e/this.viewportElement.scrollHeight,n=this.viewportElement.scrollTop,r=this.viewportElement.scrollHeight-e,i=Math.max(Math.min(n/r,1),0),a=Math.max(Math.min((n+e/2)/this.viewportElement.scrollHeight,1),0),o;this.slideTriggers.forEach(e=>{let{page:n}=e;i>=e.range[0]-t*2&&i<=e.range[1]+t*2&&!n.loaded?(n.loaded=!0,this.Reveal.slideContent.load(n.slideElement)):n.loaded&&(n.loaded=!1,this.Reveal.slideContent.unload(n.slideElement)),i>=e.range[0]&&i<=e.range[1]?(this.activateTrigger(e),o=e.page):e.active&&this.deactivateTrigger(e)}),o&&o.scrollTriggers.forEach(e=>{a>=e.range[0]&&a<=e.range[1]?this.activateTrigger(e):e.active&&this.deactivateTrigger(e)}),this.setProgressBarValue(n/(this.viewportElement.scrollHeight-e))}setProgressBarValue(e){this.progressBar&&(this.progressBarPlayhead.style.transform=`translateY(${e*this.progressBarScrollableHeight}px)`,this.getAllPages().filter(e=>e.progressBarSlide).forEach(e=>{e.progressBarSlide.classList.toggle(`active`,e.active===!0),e.scrollTriggers.forEach((t,n)=>{e.scrollTriggerElements[n].classList.toggle(`active`,e.active===!0&&t.active===!0)})}),this.showProgressBar())}showProgressBar(){this.progressBar.classList.add(`visible`),clearTimeout(this.hideProgressBarTimeout),this.Reveal.getConfig().scrollProgress===`auto`&&!this.draggingProgressBar&&(this.hideProgressBarTimeout=setTimeout(()=>{this.progressBar&&this.progressBar.classList.remove(`visible`)},tt))}prev(){this.viewportElement.scrollTop-=this.scrollTriggerHeight}next(){this.viewportElement.scrollTop+=this.scrollTriggerHeight}scrollToSlide(e){if(!this.active)this.activatedCallbacks.push(()=>this.scrollToSlide(e));else{let t=this.getScrollTriggerBySlide(e);t&&(this.viewportElement.scrollTop=t.range[0]*(this.viewportElement.scrollHeight-this.viewportElement.offsetHeight))}}storeScrollPosition(){clearTimeout(this.storeScrollPositionTimeout),this.storeScrollPositionTimeout=setTimeout(()=>{sessionStorage.setItem(`reveal-scroll-top`,this.viewportElement.scrollTop),sessionStorage.setItem(`reveal-scroll-origin`,location.origin+location.pathname),this.storeScrollPositionTimeout=null},50)}restoreScrollPosition(){let e=sessionStorage.getItem(`reveal-scroll-top`),t=sessionStorage.getItem(`reveal-scroll-origin`);e&&t===location.origin+location.pathname&&(this.viewportElement.scrollTop=parseInt(e,10))}activatePage(e){if(!e.active){e.active=!0;let{slideElement:t,backgroundElement:n,contentElement:r,indexh:i,indexv:a}=e;r.style.display=`block`,t.classList.add(`present`),n&&n.classList.add(`present`),this.Reveal.setCurrentScrollPage(t,i,a),this.Reveal.backgrounds.bubbleSlideContrastClassToElement(t,this.viewportElement),Array.from(r.parentNode.querySelectorAll(`.scroll-page-content`)).forEach(e=>{e!==r&&(e.style.display=`none`)})}}deactivatePage(e){e.active&&(e.active=!1,e.slideElement&&e.slideElement.classList.remove(`present`),e.backgroundElement&&e.backgroundElement.classList.remove(`present`))}activateTrigger(e){e.active||(e.active=!0,e.activate())}deactivateTrigger(e){e.active&&(e.active=!1,e.deactivate&&e.deactivate())}getSlideByIndices(e,t){let n=this.getAllPages().find(n=>n.indexh===e&&n.indexv===t);return n?n.slideElement:null}getScrollTriggerBySlide(e){return this.slideTriggers.find(t=>t.page.slideElement===e)}getAllPages(){return this.pages.flatMap(e=>[e,...e.autoAnimatePages||[]])}onScroll(){this.syncScrollPosition(),this.storeScrollPosition()}get viewportElement(){return this.Reveal.getViewportElement()}},at=class{constructor(e){this.Reveal=e}activate(){return we(this,null,function*(){let e=this.Reveal.getConfig(),t=B(this.Reveal.getRevealElement(),ze),n=e.slideNumber&&/all|print/i.test(e.showSlideNumber),r=this.Reveal.getComputedSlideSize(window.innerWidth,window.innerHeight),i=Math.floor(r.width*(1+e.margin)),a=Math.floor(r.height*(1+e.margin)),o=r.width,s=r.height;yield new Promise(requestAnimationFrame),ke(`@page{size:`+i+`px `+a+`px; margin: 0px;}`),ke(`.reveal section>img, .reveal section>video, .reveal section>iframe{max-width: `+o+`px; max-height:`+s+`px}`),document.documentElement.classList.add(`reveal-print`,`print-pdf`),document.body.style.width=i+`px`,document.body.style.height=a+`px`;let c=this.Reveal.getViewportElement(),l;if(c){let e=window.getComputedStyle(c);e&&e.background&&(l=e.background)}yield new Promise(requestAnimationFrame),this.Reveal.layoutSlideContents(o,s),yield new Promise(requestAnimationFrame);let u=t.map(e=>e.scrollHeight),d=[],f=t[0].parentNode,p=1;t.forEach(function(t,r){if(t.classList.contains(`stack`)===!1){let c=(i-o)/2,f=(a-s)/2,m=u[r],h=Math.max(Math.ceil(m/a),1);h=Math.min(h,e.pdfMaxPagesPerSlide),(h===1&&e.center||t.classList.contains(`center`))&&(f=Math.max((a-m)/2,0));let g=document.createElement(`div`);if(d.push(g),g.className=`pdf-page`,g.style.height=(a+e.pdfPageHeightOffset)*h+`px`,l&&(g.style.background=l),g.appendChild(t),t.style.left=c+`px`,t.style.top=f+`px`,t.style.width=o+`px`,this.Reveal.slideContent.layout(t),t.slideBackgroundElement&&g.insertBefore(t.slideBackgroundElement,t),e.showNotes){let n=this.Reveal.getSlideNotes(t);if(n){let t=typeof e.showNotes==`string`?e.showNotes:`inline`,r=document.createElement(`div`);r.classList.add(`speaker-notes`),r.classList.add(`speaker-notes-pdf`),r.setAttribute(`data-layout`,t),r.innerHTML=n,t===`separate-page`?d.push(r):(r.style.left=`8px`,r.style.bottom=`8px`,r.style.width=i-16+`px`,g.appendChild(r))}}if(n){let e=document.createElement(`div`);e.classList.add(`slide-number`),e.classList.add(`slide-number-pdf`),e.innerHTML=p++,g.appendChild(e)}if(e.pdfSeparateFragments){let e=this.Reveal.fragments.sort(g.querySelectorAll(`.fragment`),!0),t;e.forEach(function(e,r){t&&t.forEach(function(e){e.classList.remove(`current-fragment`)}),e.forEach(function(e){e.classList.add(`visible`,`current-fragment`)},this);let i=g.cloneNode(!0);if(n){let e=i.querySelector(`.slide-number-pdf`),t=r+1;e.innerHTML+=`.`+t}d.push(i),t=e},this),e.forEach(function(e){e.forEach(function(e){e.classList.remove(`visible`,`current-fragment`)})})}else B(g,`.fragment:not(.fade-out)`).forEach(function(e){e.classList.add(`visible`)})}},this),yield new Promise(requestAnimationFrame),d.forEach(e=>f.appendChild(e)),this.Reveal.slideContent.layout(this.Reveal.getSlidesElement()),this.Reveal.dispatchEvent({type:`pdf-ready`}),c.classList.remove(`loading-scroll-mode`)})}isActive(){return this.Reveal.getConfig().view===`print`}},ot=class{constructor(e){this.Reveal=e}configure(e,t){e.fragments===!1?this.disable():t.fragments===!1&&this.enable()}disable(){B(this.Reveal.getSlidesElement(),`.fragment`).forEach(e=>{e.classList.add(`visible`),e.classList.remove(`current-fragment`)})}enable(){B(this.Reveal.getSlidesElement(),`.fragment`).forEach(e=>{e.classList.remove(`visible`),e.classList.remove(`current-fragment`)})}availableRoutes(){let e=this.Reveal.getCurrentSlide();if(e&&this.Reveal.getConfig().fragments){let t=e.querySelectorAll(`.fragment:not(.disabled)`),n=e.querySelectorAll(`.fragment:not(.disabled):not(.visible)`);return{prev:t.length-n.length>0,next:!!n.length}}return{prev:!1,next:!1}}sort(e,t=!1){e=Array.from(e);let n=[],r=[],i=[];e.forEach(e=>{if(e.hasAttribute(`data-fragment-index`)){let t=parseInt(e.getAttribute(`data-fragment-index`),10);n[t]||(n[t]=[]),n[t].push(e)}else r.push([e])}),n=n.concat(r);let a=0;return n.forEach(e=>{e.forEach(e=>{i.push(e),e.setAttribute(`data-fragment-index`,a)}),a++}),t===!0?n:i}sortAll(){this.Reveal.getHorizontalSlides().forEach(e=>{let t=B(e,`section`);t.forEach((e,t)=>{this.sort(e.querySelectorAll(`.fragment`))},this),t.length===0&&this.sort(e.querySelectorAll(`.fragment`))})}update(e,t,n=this.Reveal.getCurrentSlide()){let r={shown:[],hidden:[]};if(n&&this.Reveal.getConfig().fragments&&(t||=this.sort(n.querySelectorAll(`.fragment`)),t.length)){let i=0;if(typeof e!=`number`){let t=this.sort(n.querySelectorAll(`.fragment.visible`)).pop();t&&(e=parseInt(t.getAttribute(`data-fragment-index`)||0,10))}Array.from(t).forEach((t,n)=>{if(t.hasAttribute(`data-fragment-index`)&&(n=parseInt(t.getAttribute(`data-fragment-index`),10)),i=Math.max(i,n),n<=e){let i=t.classList.contains(`visible`);t.classList.add(`visible`),t.classList.remove(`current-fragment`),n===e&&(this.Reveal.announceStatus(this.Reveal.getStatusText(t)),t.classList.add(`current-fragment`),this.Reveal.slideContent.startEmbeddedContent(t)),i||(r.shown.push(t),this.Reveal.dispatchEvent({target:t,type:`visible`,bubbles:!1}))}else{let e=t.classList.contains(`visible`);t.classList.remove(`visible`),t.classList.remove(`current-fragment`),e&&(this.Reveal.slideContent.stopEmbeddedContent(t),r.hidden.push(t),this.Reveal.dispatchEvent({target:t,type:`hidden`,bubbles:!1}))}}),e=typeof e==`number`?e:-1,e=Math.max(Math.min(e,i),-1),n.setAttribute(`data-fragment`,e)}return r.hidden.length&&this.Reveal.dispatchEvent({type:`fragmenthidden`,data:{fragment:r.hidden[0],fragments:r.hidden}}),r.shown.length&&this.Reveal.dispatchEvent({type:`fragmentshown`,data:{fragment:r.shown[0],fragments:r.shown}}),r}sync(e=this.Reveal.getCurrentSlide()){return this.sort(e.querySelectorAll(`.fragment`))}goto(e,t=0){let n=this.Reveal.getCurrentSlide();if(n&&this.Reveal.getConfig().fragments){let r=this.sort(n.querySelectorAll(`.fragment:not(.disabled)`));if(r.length){if(typeof e!=`number`){let t=this.sort(n.querySelectorAll(`.fragment:not(.disabled).visible`)).pop();e=t?parseInt(t.getAttribute(`data-fragment-index`)||0,10):-1}e+=t;let i=this.update(e,r);return this.Reveal.controls.update(),this.Reveal.progress.update(),this.Reveal.getConfig().fragmentInURL&&this.Reveal.location.writeURL(),!!(i.shown.length||i.hidden.length)}}return!1}next(){return this.goto(null,1)}prev(){return this.goto(null,-1)}},st=class{constructor(e){this.Reveal=e,this.active=!1,this.onSlideClicked=this.onSlideClicked.bind(this)}activate(){if(this.Reveal.getConfig().overview&&!this.Reveal.isScrollView()&&!this.isActive()){this.active=!0,this.Reveal.getRevealElement().classList.add(`overview`),this.Reveal.cancelAutoSlide(),this.Reveal.getSlidesElement().appendChild(this.Reveal.getBackgroundsElement()),B(this.Reveal.getRevealElement(),ze).forEach(e=>{e.classList.contains(`stack`)||e.addEventListener(`click`,this.onSlideClicked,!0)});let e=this.Reveal.getComputedSlideSize();this.overviewSlideWidth=e.width+70,this.overviewSlideHeight=e.height+70,this.Reveal.getConfig().rtl&&(this.overviewSlideWidth=-this.overviewSlideWidth),this.Reveal.updateSlidesVisibility(),this.layout(),this.update(),this.Reveal.layout();let t=this.Reveal.getIndices();this.Reveal.dispatchEvent({type:`overviewshown`,data:{indexh:t.h,indexv:t.v,currentSlide:this.Reveal.getCurrentSlide()}})}}layout(){this.Reveal.getHorizontalSlides().forEach((e,t)=>{e.setAttribute(`data-index-h`,t),H(e,`translate3d(`+t*this.overviewSlideWidth+`px, 0, 0)`),e.classList.contains(`stack`)&&B(e,`section`).forEach((e,n)=>{e.setAttribute(`data-index-h`,t),e.setAttribute(`data-index-v`,n),H(e,`translate3d(0, `+n*this.overviewSlideHeight+`px, 0)`)})}),Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach((e,t)=>{H(e,`translate3d(`+t*this.overviewSlideWidth+`px, 0, 0)`),B(e,`.slide-background`).forEach((e,t)=>{H(e,`translate3d(0, `+t*this.overviewSlideHeight+`px, 0)`)})})}update(){let e=Math.min(window.innerWidth,window.innerHeight),t=Math.max(e/5,150)/e,n=this.Reveal.getIndices();this.Reveal.transformSlides({overview:[`scale(`+t+`)`,`translateX(`+-n.h*this.overviewSlideWidth+`px)`,`translateY(`+-n.v*this.overviewSlideHeight+`px)`].join(` `)})}deactivate(){if(this.Reveal.getConfig().overview){this.active=!1,this.Reveal.getRevealElement().classList.remove(`overview`),this.Reveal.getRevealElement().classList.add(`overview-deactivating`),setTimeout(()=>{this.Reveal.getRevealElement().classList.remove(`overview-deactivating`)},1),this.Reveal.getRevealElement().appendChild(this.Reveal.getBackgroundsElement()),B(this.Reveal.getRevealElement(),ze).forEach(e=>{H(e,``),e.removeEventListener(`click`,this.onSlideClicked,!0)}),B(this.Reveal.getBackgroundsElement(),`.slide-background`).forEach(e=>{H(e,``)}),this.Reveal.transformSlides({overview:``});let e=this.Reveal.getIndices();this.Reveal.slide(e.h,e.v),this.Reveal.layout(),this.Reveal.cueAutoSlide(),this.Reveal.dispatchEvent({type:`overviewhidden`,data:{indexh:e.h,indexv:e.v,currentSlide:this.Reveal.getCurrentSlide()}})}}toggle(e){typeof e==`boolean`?e?this.activate():this.deactivate():this.isActive()?this.deactivate():this.activate()}isActive(){return this.active}onSlideClicked(e){if(this.isActive()){e.preventDefault();let t=e.target;for(;t&&!t.nodeName.match(/section/gi);)t=t.parentNode;if(t&&!t.classList.contains(`disabled`)&&(this.deactivate(),t.nodeName.match(/section/gi))){let e=parseInt(t.getAttribute(`data-index-h`),10),n=parseInt(t.getAttribute(`data-index-v`),10);this.Reveal.slide(e,n)}}}},ct=class{constructor(e){this.Reveal=e,this.shortcuts={},this.bindings={},this.onDocumentKeyDown=this.onDocumentKeyDown.bind(this)}configure(e,t){e.navigationMode===`linear`?(this.shortcuts[`→ , ↓ , SPACE , N , L , J`]=`Next slide`,this.shortcuts[`← , ↑ , P , H , K`]=`Previous slide`):(this.shortcuts[`N , SPACE`]=`Next slide`,this.shortcuts[`P , Shift SPACE`]=`Previous slide`,this.shortcuts[`← , H`]=`Navigate left`,this.shortcuts[`→ , L`]=`Navigate right`,this.shortcuts[`↑ , K`]=`Navigate up`,this.shortcuts[`↓ , J`]=`Navigate down`),this.shortcuts[`Alt + ←/↑/→/↓`]=`Navigate without fragments`,this.shortcuts[`Shift + ←/↑/→/↓`]=`Jump to first/last slide`,this.shortcuts[`B , .`]=`Pause`,this.shortcuts.F=`Fullscreen`,this.shortcuts.G=`Jump to slide`,this.shortcuts[`ESC, O`]=`Slide overview`}bind(){document.addEventListener(`keydown`,this.onDocumentKeyDown,!1)}unbind(){document.removeEventListener(`keydown`,this.onDocumentKeyDown,!1)}addKeyBinding(e,t){typeof e==`object`&&e.keyCode?this.bindings[e.keyCode]={callback:t,key:e.key,description:e.description}:this.bindings[e]={callback:t,key:null,description:null}}removeKeyBinding(e){delete this.bindings[e]}triggerKey(e){this.onDocumentKeyDown({keyCode:e})}registerKeyboardShortcut(e,t){this.shortcuts[e]=t}getShortcuts(){return this.shortcuts}getBindings(){return this.bindings}onDocumentKeyDown(e){let t=this.Reveal.getConfig();if(typeof t.keyboardCondition==`function`&&t.keyboardCondition(e)===!1||t.keyboardCondition===`focused`&&!this.Reveal.isFocused())return!0;let n=e.keyCode,r=!this.Reveal.isAutoSliding();this.Reveal.onUserInput(e);let i=document.activeElement&&document.activeElement.isContentEditable===!0,a=document.activeElement&&document.activeElement.tagName&&/input|textarea/i.test(document.activeElement.tagName),o=document.activeElement&&document.activeElement.className&&/speaker-notes/i.test(document.activeElement.className),s=!([32,37,38,39,40,63,78,80,191].indexOf(e.keyCode)!==-1&&e.shiftKey||e.altKey)&&(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey);if(i||a||o||s)return;let c=[66,86,190,191,112],l;if(typeof t.keyboard==`object`)for(l in t.keyboard)t.keyboard[l]===`togglePause`&&c.push(parseInt(l,10));if(this.Reveal.isOverlayOpen()&&![`Escape`,`f`,`c`,`b`,`.`].includes(e.key)||this.Reveal.isPaused()&&c.indexOf(n)===-1)return!1;let u=t.navigationMode===`linear`||!this.Reveal.hasHorizontalSlides()||!this.Reveal.hasVerticalSlides(),d=!1;if(typeof t.keyboard==`object`){for(l in t.keyboard)if(parseInt(l,10)===n){let n=t.keyboard[l];typeof n==`function`?n.apply(null,[e]):typeof n==`string`&&typeof this.Reveal[n]==`function`&&this.Reveal[n].call(),d=!0}}if(d===!1){for(l in this.bindings)if(parseInt(l,10)===n){let t=this.bindings[l].callback;typeof t==`function`?t.apply(null,[e]):typeof t==`string`&&typeof this.Reveal[t]==`function`&&this.Reveal[t].call(),d=!0}}d===!1&&(d=!0,n===80||n===33?this.Reveal.prev({skipFragments:e.altKey}):n===78||n===34?this.Reveal.next({skipFragments:e.altKey}):n===72||n===37?e.shiftKey?this.Reveal.slide(0):!this.Reveal.overview.isActive()&&u?t.rtl?this.Reveal.next({skipFragments:e.altKey}):this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.left({skipFragments:e.altKey}):n===76||n===39?e.shiftKey?this.Reveal.slide(this.Reveal.getHorizontalSlides().length-1):!this.Reveal.overview.isActive()&&u?t.rtl?this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.next({skipFragments:e.altKey}):this.Reveal.right({skipFragments:e.altKey}):n===75||n===38?e.shiftKey?this.Reveal.slide(void 0,0):!this.Reveal.overview.isActive()&&u?this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.up({skipFragments:e.altKey}):n===74||n===40?e.shiftKey?this.Reveal.slide(void 0,Number.MAX_VALUE):!this.Reveal.overview.isActive()&&u?this.Reveal.next({skipFragments:e.altKey}):this.Reveal.down({skipFragments:e.altKey}):n===36?this.Reveal.slide(0):n===35?this.Reveal.slide(this.Reveal.getHorizontalSlides().length-1):n===32?(this.Reveal.overview.isActive()&&this.Reveal.overview.deactivate(),e.shiftKey?this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.next({skipFragments:e.altKey})):[58,59,66,86,190].includes(n)||n===191&&!e.shiftKey?this.Reveal.togglePause():n===70?De(t.embedded?this.Reveal.getViewportElement():document.documentElement):n===65?t.autoSlideStoppable&&this.Reveal.toggleAutoSlide(r):n===71?t.jumpToSlide&&this.Reveal.toggleJumpToSlide():n===67&&this.Reveal.isOverlayOpen()?this.Reveal.closeOverlay():(n===63||n===191)&&e.shiftKey||n===112?this.Reveal.toggleHelp():d=!1),d?e.preventDefault&&e.preventDefault():n===27||n===79?(this.Reveal.closeOverlay()===!1&&this.Reveal.overview.toggle(),e.preventDefault&&e.preventDefault()):n===13&&this.Reveal.overview.isActive()&&(this.Reveal.overview.deactivate(),e.preventDefault&&e.preventDefault()),this.Reveal.cueAutoSlide()}},lt=class{constructor(e){Ce(this,`MAX_REPLACE_STATE_FREQUENCY`,1e3),this.Reveal=e,this.writeURLTimeout=0,this.replaceStateTimestamp=0,this.onWindowHashChange=this.onWindowHashChange.bind(this)}bind(){window.addEventListener(`hashchange`,this.onWindowHashChange,!1)}unbind(){window.removeEventListener(`hashchange`,this.onWindowHashChange,!1)}getIndicesFromHash(e=window.location.hash,t={}){let n=e.replace(/^#\/?/,``),r=n.split(`/`);if(!/^[0-9]*$/.test(r[0])&&n.length){let e,t;/\/[-\d]+$/g.test(n)&&(t=parseInt(n.split(`/`).pop(),10),t=isNaN(t)?void 0:t,n=n.split(`/`).shift());try{let t=decodeURIComponent(n);e=(document.getElementById(t)||document.querySelector(`[data-id="${t}"]`)).closest(`.slides section`)}catch{}if(e)return Se(z({},this.Reveal.getIndices(e)),{f:t})}else{let e=this.Reveal.getConfig(),n=e.hashOneBasedIndex||t.oneBasedIndex?1:0,i=parseInt(r[0],10)-n||0,a=parseInt(r[1],10)-n||0,o;return e.fragmentInURL&&(o=parseInt(r[2],10),isNaN(o)&&(o=void 0)),{h:i,v:a,f:o}}return null}readURL(){let e=this.Reveal.getIndices(),t=this.getIndicesFromHash();t?(t.h!==e.h||t.v!==e.v||t.f!==void 0)&&this.Reveal.slide(t.h,t.v,t.f):this.Reveal.slide(e.h||0,e.v||0)}writeURL(e){let t=this.Reveal.getConfig(),n=this.Reveal.getCurrentSlide();if(clearTimeout(this.writeURLTimeout),typeof e==`number`)this.writeURLTimeout=setTimeout(this.writeURL,e);else if(n){let e=this.getHash();t.history?window.location.hash=e:t.hash&&(e===`/`?this.debouncedReplaceState(window.location.pathname+window.location.search):this.debouncedReplaceState(`#`+e))}}replaceState(e){window.history.replaceState(null,null,e),this.replaceStateTimestamp=Date.now()}debouncedReplaceState(e){clearTimeout(this.replaceStateTimeout),Date.now()-this.replaceStateTimestamp>this.MAX_REPLACE_STATE_FREQUENCY?this.replaceState(e):this.replaceStateTimeout=setTimeout(()=>this.replaceState(e),this.MAX_REPLACE_STATE_FREQUENCY)}getHash(e){let t=`/`,n=e||this.Reveal.getCurrentSlide(),r=n?n.getAttribute(`id`):null;r&&=encodeURIComponent(r);let i=this.Reveal.getIndices(e);if(this.Reveal.getConfig().fragmentInURL||(i.f=void 0),typeof r==`string`&&r.length)t=`/`+r,i.f>=0&&(t+=`/`+i.f);else{let e=+!!this.Reveal.getConfig().hashOneBasedIndex;(i.h>0||i.v>0||i.f>=0)&&(t+=i.h+e),(i.v>0||i.f>=0)&&(t+=`/`+(i.v+e)),i.f>=0&&(t+=`/`+i.f)}return t}onWindowHashChange(e){this.readURL()}},ut=class{constructor(e){this.Reveal=e,this.onNavigateLeftClicked=this.onNavigateLeftClicked.bind(this),this.onNavigateRightClicked=this.onNavigateRightClicked.bind(this),this.onNavigateUpClicked=this.onNavigateUpClicked.bind(this),this.onNavigateDownClicked=this.onNavigateDownClicked.bind(this),this.onNavigatePrevClicked=this.onNavigatePrevClicked.bind(this),this.onNavigateNextClicked=this.onNavigateNextClicked.bind(this),this.onEnterFullscreen=this.onEnterFullscreen.bind(this)}render(){let e=this.Reveal.getConfig().rtl,t=this.Reveal.getRevealElement();this.element=document.createElement(`aside`),this.element.className=`controls`,this.element.innerHTML=`<button class="navigate-left" aria-label="${e?`next slide`:`previous slide`}"><div class="controls-arrow"></div></button>
|
|
8
|
+
<button class="navigate-right" aria-label="${e?`previous slide`:`next slide`}"><div class="controls-arrow"></div></button>
|
|
9
|
+
<button class="navigate-up" aria-label="above slide"><div class="controls-arrow"></div></button>
|
|
10
|
+
<button class="navigate-down" aria-label="below slide"><div class="controls-arrow"></div></button>`,this.Reveal.getRevealElement().appendChild(this.element),this.controlsLeft=B(t,`.navigate-left`),this.controlsRight=B(t,`.navigate-right`),this.controlsUp=B(t,`.navigate-up`),this.controlsDown=B(t,`.navigate-down`),this.controlsPrev=B(t,`.navigate-prev`),this.controlsNext=B(t,`.navigate-next`),this.controlsFullscreen=B(t,`.enter-fullscreen`),this.controlsRightArrow=this.element.querySelector(`.navigate-right`),this.controlsLeftArrow=this.element.querySelector(`.navigate-left`),this.controlsDownArrow=this.element.querySelector(`.navigate-down`)}configure(e,t){let n=e.controls===`speaker`||e.controls===`speaker-only`;this.element.style.display=e.controls&&(!n||this.Reveal.isSpeakerNotes())?`block`:`none`,this.element.setAttribute(`data-controls-layout`,e.controlsLayout),this.element.setAttribute(`data-controls-back-arrows`,e.controlsBackArrows)}bind(){let e=[`touchstart`,`click`];Ie&&(e=[`touchend`]),e.forEach(e=>{this.controlsLeft.forEach(t=>t.addEventListener(e,this.onNavigateLeftClicked,!1)),this.controlsRight.forEach(t=>t.addEventListener(e,this.onNavigateRightClicked,!1)),this.controlsUp.forEach(t=>t.addEventListener(e,this.onNavigateUpClicked,!1)),this.controlsDown.forEach(t=>t.addEventListener(e,this.onNavigateDownClicked,!1)),this.controlsPrev.forEach(t=>t.addEventListener(e,this.onNavigatePrevClicked,!1)),this.controlsNext.forEach(t=>t.addEventListener(e,this.onNavigateNextClicked,!1)),this.controlsFullscreen.forEach(t=>t.addEventListener(e,this.onEnterFullscreen,!1))})}unbind(){[`touchstart`,`touchend`,`click`].forEach(e=>{this.controlsLeft.forEach(t=>t.removeEventListener(e,this.onNavigateLeftClicked,!1)),this.controlsRight.forEach(t=>t.removeEventListener(e,this.onNavigateRightClicked,!1)),this.controlsUp.forEach(t=>t.removeEventListener(e,this.onNavigateUpClicked,!1)),this.controlsDown.forEach(t=>t.removeEventListener(e,this.onNavigateDownClicked,!1)),this.controlsPrev.forEach(t=>t.removeEventListener(e,this.onNavigatePrevClicked,!1)),this.controlsNext.forEach(t=>t.removeEventListener(e,this.onNavigateNextClicked,!1)),this.controlsFullscreen.forEach(t=>t.removeEventListener(e,this.onEnterFullscreen,!1))})}update(){let e=this.Reveal.availableRoutes();[...this.controlsLeft,...this.controlsRight,...this.controlsUp,...this.controlsDown,...this.controlsPrev,...this.controlsNext].forEach(e=>{e.classList.remove(`enabled`,`fragmented`),e.setAttribute(`disabled`,`disabled`)}),e.left&&this.controlsLeft.forEach(e=>{e.classList.add(`enabled`),e.removeAttribute(`disabled`)}),e.right&&this.controlsRight.forEach(e=>{e.classList.add(`enabled`),e.removeAttribute(`disabled`)}),e.up&&this.controlsUp.forEach(e=>{e.classList.add(`enabled`),e.removeAttribute(`disabled`)}),e.down&&this.controlsDown.forEach(e=>{e.classList.add(`enabled`),e.removeAttribute(`disabled`)}),(e.left||e.up)&&this.controlsPrev.forEach(e=>{e.classList.add(`enabled`),e.removeAttribute(`disabled`)}),(e.right||e.down)&&this.controlsNext.forEach(e=>{e.classList.add(`enabled`),e.removeAttribute(`disabled`)});let t=this.Reveal.getCurrentSlide();if(t){let e=this.Reveal.fragments.availableRoutes();e.prev&&this.controlsPrev.forEach(e=>{e.classList.add(`fragmented`,`enabled`),e.removeAttribute(`disabled`)}),e.next&&this.controlsNext.forEach(e=>{e.classList.add(`fragmented`,`enabled`),e.removeAttribute(`disabled`)});let n=this.Reveal.isVerticalSlide(t),r=n&&t.parentElement&&t.parentElement.querySelectorAll(`:scope > section`).length>1;n&&r?(e.prev&&this.controlsUp.forEach(e=>{e.classList.add(`fragmented`,`enabled`),e.removeAttribute(`disabled`)}),e.next&&this.controlsDown.forEach(e=>{e.classList.add(`fragmented`,`enabled`),e.removeAttribute(`disabled`)})):(e.prev&&this.controlsLeft.forEach(e=>{e.classList.add(`fragmented`,`enabled`),e.removeAttribute(`disabled`)}),e.next&&this.controlsRight.forEach(e=>{e.classList.add(`fragmented`,`enabled`),e.removeAttribute(`disabled`)}))}if(this.Reveal.getConfig().controlsTutorial){let t=this.Reveal.getIndices();!this.Reveal.hasNavigatedVertically()&&e.down?this.controlsDownArrow.classList.add(`highlight`):(this.controlsDownArrow.classList.remove(`highlight`),this.Reveal.getConfig().rtl?!this.Reveal.hasNavigatedHorizontally()&&e.left&&t.v===0?this.controlsLeftArrow.classList.add(`highlight`):this.controlsLeftArrow.classList.remove(`highlight`):!this.Reveal.hasNavigatedHorizontally()&&e.right&&t.v===0?this.controlsRightArrow.classList.add(`highlight`):this.controlsRightArrow.classList.remove(`highlight`))}}destroy(){this.unbind(),this.element.remove()}onNavigateLeftClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.getConfig().navigationMode===`linear`?this.Reveal.prev():this.Reveal.left()}onNavigateRightClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.getConfig().navigationMode===`linear`?this.Reveal.next():this.Reveal.right()}onNavigateUpClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.up()}onNavigateDownClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.down()}onNavigatePrevClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.prev()}onNavigateNextClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.next()}onEnterFullscreen(e){let t=this.Reveal.getConfig(),n=this.Reveal.getViewportElement();De(t.embedded?n:n.parentElement)}},dt=class{constructor(e){this.Reveal=e,this.onProgressClicked=this.onProgressClicked.bind(this)}render(){this.element=document.createElement(`div`),this.element.className=`progress`,this.Reveal.getRevealElement().appendChild(this.element),this.bar=document.createElement(`span`),this.element.appendChild(this.bar)}configure(e,t){this.element.style.display=e.progress?`block`:`none`}bind(){this.Reveal.getConfig().progress&&this.element&&this.element.addEventListener(`click`,this.onProgressClicked,!1)}unbind(){this.Reveal.getConfig().progress&&this.element&&this.element.removeEventListener(`click`,this.onProgressClicked,!1)}update(){if(this.Reveal.getConfig().progress&&this.bar){let e=this.Reveal.getProgress();this.Reveal.getTotalSlides()<2&&(e=0),this.bar.style.transform=`scaleX(`+e+`)`}}getMaxWidth(){return this.Reveal.getRevealElement().offsetWidth}onProgressClicked(e){this.Reveal.onUserInput(e),e.preventDefault();let t=this.Reveal.getSlides(),n=t.length,r=Math.floor(e.clientX/this.getMaxWidth()*n);this.Reveal.getConfig().rtl&&(r=n-r);let i=this.Reveal.getIndices(t[r]);this.Reveal.slide(i.h,i.v)}destroy(){this.element.remove()}},ft=class{constructor(e){this.Reveal=e,this.lastMouseWheelStep=0,this.cursorHidden=!1,this.cursorInactiveTimeout=0,this.onDocumentCursorActive=this.onDocumentCursorActive.bind(this),this.onDocumentMouseScroll=this.onDocumentMouseScroll.bind(this)}configure(e,t){e.mouseWheel?document.addEventListener(`wheel`,this.onDocumentMouseScroll,!1):document.removeEventListener(`wheel`,this.onDocumentMouseScroll,!1),e.hideInactiveCursor?(document.addEventListener(`mousemove`,this.onDocumentCursorActive,!1),document.addEventListener(`mousedown`,this.onDocumentCursorActive,!1)):(this.showCursor(),document.removeEventListener(`mousemove`,this.onDocumentCursorActive,!1),document.removeEventListener(`mousedown`,this.onDocumentCursorActive,!1))}showCursor(){this.cursorHidden&&(this.cursorHidden=!1,this.Reveal.getRevealElement().style.cursor=``)}hideCursor(){this.cursorHidden===!1&&(this.cursorHidden=!0,this.Reveal.getRevealElement().style.cursor=`none`)}destroy(){this.showCursor(),document.removeEventListener(`wheel`,this.onDocumentMouseScroll,!1),document.removeEventListener(`mousemove`,this.onDocumentCursorActive,!1),document.removeEventListener(`mousedown`,this.onDocumentCursorActive,!1)}onDocumentCursorActive(e){this.showCursor(),clearTimeout(this.cursorInactiveTimeout),this.cursorInactiveTimeout=setTimeout(this.hideCursor.bind(this),this.Reveal.getConfig().hideCursorTime)}onDocumentMouseScroll(e){if(Date.now()-this.lastMouseWheelStep>1e3){this.lastMouseWheelStep=Date.now();let t=e.detail||-e.wheelDelta;t>0?this.Reveal.next():t<0&&this.Reveal.prev()}}},pt=(e,t)=>{let n=document.createElement(`script`);n.type=`text/javascript`,n.async=!1,n.defer=!1,n.src=e,typeof t==`function`&&(n.onload=e=>{e.type===`load`&&(n.onload=n.onerror=null,t())},n.onerror=e=>{n.onload=n.onerror=null,t(Error(`Failed loading script: `+n.src+`
|
|
11
|
+
`+e))});let r=document.querySelector(`head`);r&&r.insertBefore(n,r.lastChild)},mt=class{constructor(e){this.Reveal=e,this.state=`idle`,this.registeredPlugins={},this.asyncDependencies=[]}load(e,t){return this.state=`loading`,e.forEach(this.registerPlugin.bind(this)),new Promise(e=>{let n=[],r=0;if(t.forEach(e=>{(!e.condition||e.condition())&&(e.async?this.asyncDependencies.push(e):n.push(e))}),n.length){r=n.length;let t=t=>{t&&typeof t.callback==`function`&&t.callback(),--r===0&&this.initPlugins().then(e)};n.forEach(e=>{typeof e.id==`string`?(this.registerPlugin(e),t(e)):typeof e.src==`string`?pt(e.src,()=>t(e)):(console.warn(`Unrecognized plugin format`,e),t())})}else this.initPlugins().then(e)})}initPlugins(){return new Promise(e=>{let t=Object.values(this.registeredPlugins),n=t.length;if(n===0)this.loadAsync().then(e);else{let r,i=()=>{--n===0?this.loadAsync().then(e):r()},a=0;r=()=>{let e=t[a++];if(typeof e.init==`function`){let t=e.init(this.Reveal);t&&typeof t.then==`function`?t.then(i):i()}else i()},r()}})}loadAsync(){return this.state=`loaded`,this.asyncDependencies.length&&this.asyncDependencies.forEach(e=>{pt(e.src,e.callback)}),Promise.resolve()}registerPlugin(e){arguments.length===2&&typeof arguments[0]==`string`?(e=arguments[1],e.id=arguments[0]):typeof e==`function`&&(e=e());let t=e.id;typeof t==`string`?this.registeredPlugins[t]===void 0?(this.registeredPlugins[t]=e,this.state===`loaded`&&typeof e.init==`function`&&e.init(this.Reveal)):console.warn(`reveal.js: "`+t+`" plugin has already been registered`):console.warn(`Unrecognized plugin format; can't find plugin.id`,e)}hasPlugin(e){return!!this.registeredPlugins[e]}getPlugin(e){return this.registeredPlugins[e]}getRegisteredPlugins(){return this.registeredPlugins}destroy(){Object.values(this.registeredPlugins).forEach(e=>{typeof e.destroy==`function`&&e.destroy()}),this.registeredPlugins={},this.asyncDependencies=[]}},ht=class{constructor(e){this.Reveal=e,this.onSlidesClicked=this.onSlidesClicked.bind(this),this.iframeTriggerSelector=null,this.mediaTriggerSelector=`[data-preview-image], [data-preview-video]`,this.stateProps=[`previewIframe`,`previewImage`,`previewVideo`,`previewFit`],this.state={}}update(){this.iframeTriggerSelector=this.Reveal.getConfig().previewLinks?`a[href]:not([data-preview-link=false]), [data-preview-link]:not(a):not([data-preview-link=false])`:`[data-preview-link]:not([data-preview-link=false])`;let e=this.Reveal.getSlidesElement().querySelectorAll(this.iframeTriggerSelector).length>0,t=this.Reveal.getSlidesElement().querySelectorAll(this.mediaTriggerSelector).length>0;e||t?this.Reveal.getSlidesElement().addEventListener(`click`,this.onSlidesClicked,!1):this.Reveal.getSlidesElement().removeEventListener(`click`,this.onSlidesClicked,!1)}createOverlay(e){this.dom=document.createElement(`div`),this.dom.classList.add(`r-overlay`),this.dom.classList.add(e),this.viewport=document.createElement(`div`),this.viewport.classList.add(`r-overlay-viewport`),this.dom.appendChild(this.viewport),this.Reveal.getRevealElement().appendChild(this.dom)}previewIframe(e){this.close(),this.state={previewIframe:e},this.createOverlay(`r-overlay-preview`),this.dom.dataset.state=`loading`,this.viewport.innerHTML=`<header class="r-overlay-header">
|
|
12
|
+
<a class="r-overlay-header-button r-overlay-external" href="${e}" target="_blank"><span class="icon"></span></a>
|
|
13
|
+
<button class="r-overlay-header-button r-overlay-close"><span class="icon"></span></button>
|
|
14
|
+
</header>
|
|
15
|
+
<div class="r-overlay-spinner"></div>
|
|
16
|
+
<div class="r-overlay-content">
|
|
17
|
+
<iframe src="${e}"></iframe>
|
|
18
|
+
<small class="r-overlay-content-inner">
|
|
19
|
+
<span class="r-overlay-error x-frame-error">Unable to load iframe. This is likely due to the site's policy (x-frame-options).</span>
|
|
20
|
+
</small>
|
|
21
|
+
</div>`,this.dom.querySelector(`iframe`).addEventListener(`load`,e=>{this.dom.dataset.state=`loaded`},!1),this.dom.querySelector(`.r-overlay-close`).addEventListener(`click`,e=>{this.close(),e.preventDefault()},!1),this.dom.querySelector(`.r-overlay-external`).addEventListener(`click`,e=>{this.close()},!1),this.Reveal.dispatchEvent({type:`previewiframe`,data:{url:e}})}previewMedia(e,t,n){if(t!==`image`&&t!==`video`){console.warn(`Please specify a valid media type to preview (image|video)`);return}this.close(),n||=`scale-down`,this.createOverlay(`r-overlay-preview`),this.dom.dataset.state=`loading`,this.dom.dataset.previewFit=n,this.viewport.innerHTML=`<header class="r-overlay-header">
|
|
22
|
+
<button class="r-overlay-header-button r-overlay-close">Esc <span class="icon"></span></button>
|
|
23
|
+
</header>
|
|
24
|
+
<div class="r-overlay-spinner"></div>
|
|
25
|
+
<div class="r-overlay-content"></div>`;let r=this.dom.querySelector(`.r-overlay-content`);if(t===`image`){this.state={previewImage:e,previewFit:n};let t=document.createElement(`img`,{});t.src=e,r.appendChild(t),t.addEventListener(`load`,()=>{this.dom.dataset.state=`loaded`},!1),t.addEventListener(`error`,()=>{this.dom.dataset.state=`error`,r.innerHTML=`<span class="r-overlay-error">Unable to load image.</span>`},!1),this.dom.style.cursor=`zoom-out`,this.dom.addEventListener(`click`,e=>{this.close()},!1),this.Reveal.dispatchEvent({type:`previewimage`,data:{url:e}})}else if(t===`video`){this.state={previewVideo:e,previewFit:n};let t=document.createElement(`video`);t.autoplay=this.dom.dataset.previewAutoplay!==`false`,t.controls=this.dom.dataset.previewControls!==`false`,t.loop=this.dom.dataset.previewLoop===`true`,t.muted=this.dom.dataset.previewMuted===`true`,t.playsInline=!0,t.src=e,r.appendChild(t),t.addEventListener(`loadeddata`,()=>{this.dom.dataset.state=`loaded`},!1),t.addEventListener(`error`,()=>{this.dom.dataset.state=`error`,r.innerHTML=`<span class="r-overlay-error">Unable to load video.</span>`},!1),this.Reveal.dispatchEvent({type:`previewvideo`,data:{url:e}})}else throw Error(`Please specify a valid media type to preview`);this.dom.querySelector(`.r-overlay-close`).addEventListener(`click`,e=>{this.close(),e.preventDefault()},!1)}previewImage(e,t){this.previewMedia(e,`image`,t)}previewVideo(e,t){this.previewMedia(e,`video`,t)}toggleHelp(e){typeof e==`boolean`?e?this.showHelp():this.close():this.dom?this.close():this.showHelp()}showHelp(){if(this.Reveal.getConfig().help){this.close(),this.createOverlay(`r-overlay-help`);let e=`<p class="title">Keyboard Shortcuts</p>`,t=this.Reveal.keyboard.getShortcuts(),n=this.Reveal.keyboard.getBindings();e+=`<table><th>KEY</th><th>ACTION</th>`;for(let n in t)e+=`<tr><td>${n}</td><td>${t[n]}</td></tr>`;for(let t in n)n[t].key&&n[t].description&&(e+=`<tr><td>${n[t].key}</td><td>${n[t].description}</td></tr>`);e+=`</table>`,this.viewport.innerHTML=`
|
|
26
|
+
<header class="r-overlay-header">
|
|
27
|
+
<button class="r-overlay-header-button r-overlay-close">Esc <span class="icon"></span></button>
|
|
28
|
+
</header>
|
|
29
|
+
<div class="r-overlay-content">
|
|
30
|
+
<div class="r-overlay-help-content">${e}</div>
|
|
31
|
+
</div>
|
|
32
|
+
`,this.dom.querySelector(`.r-overlay-close`).addEventListener(`click`,e=>{this.close(),e.preventDefault()},!1),this.Reveal.dispatchEvent({type:`showhelp`})}}isOpen(){return!!this.dom}close(){return this.dom?(this.dom.remove(),this.dom=null,this.state={},this.Reveal.dispatchEvent({type:`closeoverlay`}),!0):!1}getState(){return this.state}setState(e){this.stateProps.every(t=>this.state[t]===e[t])||(e.previewIframe?this.previewIframe(e.previewIframe):e.previewImage?this.previewImage(e.previewImage,e.previewFit):e.previewVideo?this.previewVideo(e.previewVideo,e.previewFit):this.close())}onSlidesClicked(e){let t=e.target,n=t.closest(this.iframeTriggerSelector),r=t.closest(this.mediaTriggerSelector);if(n){if(e.metaKey||e.shiftKey||e.altKey)return;let t=n.getAttribute(`data-preview-link`),r=typeof t==`string`&&t.startsWith(`http`)?t:n.getAttribute(`href`);r&&(this.previewIframe(r),e.preventDefault())}else if(r){if(r.hasAttribute(`data-preview-image`)){let t=r.dataset.previewImage||r.getAttribute(`src`);t&&(this.previewImage(t,r.dataset.previewFit),e.preventDefault())}else if(r.hasAttribute(`data-preview-video`)){let t=r.dataset.previewVideo||r.getAttribute(`src`);if(!t){let e=r.querySelector(`source`);e&&(t=e.getAttribute(`src`))}t&&(this.previewVideo(t,r.dataset.previewFit),e.preventDefault())}}}destroy(){this.close()}},gt=40,_t=class{constructor(e){this.Reveal=e,this.touchStartX=0,this.touchStartY=0,this.touchStartCount=0,this.touchCaptured=!1,this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.onTouchStart=this.onTouchStart.bind(this),this.onTouchMove=this.onTouchMove.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this)}bind(){let e=this.Reveal.getRevealElement();`onpointerdown`in window?(e.addEventListener(`pointerdown`,this.onPointerDown,!1),e.addEventListener(`pointermove`,this.onPointerMove,!1),e.addEventListener(`pointerup`,this.onPointerUp,!1)):window.navigator.msPointerEnabled?(e.addEventListener(`MSPointerDown`,this.onPointerDown,!1),e.addEventListener(`MSPointerMove`,this.onPointerMove,!1),e.addEventListener(`MSPointerUp`,this.onPointerUp,!1)):(e.addEventListener(`touchstart`,this.onTouchStart,!1),e.addEventListener(`touchmove`,this.onTouchMove,!1),e.addEventListener(`touchend`,this.onTouchEnd,!1))}unbind(){let e=this.Reveal.getRevealElement();e.removeEventListener(`pointerdown`,this.onPointerDown,!1),e.removeEventListener(`pointermove`,this.onPointerMove,!1),e.removeEventListener(`pointerup`,this.onPointerUp,!1),e.removeEventListener(`MSPointerDown`,this.onPointerDown,!1),e.removeEventListener(`MSPointerMove`,this.onPointerMove,!1),e.removeEventListener(`MSPointerUp`,this.onPointerUp,!1),e.removeEventListener(`touchstart`,this.onTouchStart,!1),e.removeEventListener(`touchmove`,this.onTouchMove,!1),e.removeEventListener(`touchend`,this.onTouchEnd,!1)}isSwipePrevented(e){if(U(e,`video[controls], audio[controls]`))return!0;for(;e&&typeof e.hasAttribute==`function`;){if(e.hasAttribute(`data-prevent-swipe`))return!0;e=e.parentNode}return!1}onTouchStart(e){if(this.touchCaptured=!1,this.isSwipePrevented(e.target))return!0;this.touchStartX=e.touches[0].clientX,this.touchStartY=e.touches[0].clientY,this.touchStartCount=e.touches.length}onTouchMove(e){if(this.isSwipePrevented(e.target))return!0;let t=this.Reveal.getConfig();if(this.touchCaptured)Ie&&e.preventDefault();else{this.Reveal.onUserInput(e);let n=e.touches[0].clientX,r=e.touches[0].clientY;if(e.touches.length===1&&this.touchStartCount!==2){let i=this.Reveal.availableRoutes({includeFragments:!0}),a=n-this.touchStartX,o=r-this.touchStartY;a>gt&&Math.abs(a)>Math.abs(o)?(this.touchCaptured=!0,t.navigationMode===`linear`?t.rtl?this.Reveal.next():this.Reveal.prev():this.Reveal.left()):a<-40&&Math.abs(a)>Math.abs(o)?(this.touchCaptured=!0,t.navigationMode===`linear`?t.rtl?this.Reveal.prev():this.Reveal.next():this.Reveal.right()):o>gt&&i.up?(this.touchCaptured=!0,t.navigationMode===`linear`?this.Reveal.prev():this.Reveal.up()):o<-40&&i.down&&(this.touchCaptured=!0,t.navigationMode===`linear`?this.Reveal.next():this.Reveal.down()),t.embedded?(this.touchCaptured||this.Reveal.isVerticalSlide())&&e.preventDefault():e.preventDefault()}}}onTouchEnd(e){this.touchCaptured&&!this.Reveal.slideContent.isAllowedToPlayAudio()&&this.Reveal.startEmbeddedContent(this.Reveal.getCurrentSlide()),this.touchCaptured=!1}onPointerDown(e){(e.pointerType===e.MSPOINTER_TYPE_TOUCH||e.pointerType===`touch`)&&(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchStart(e))}onPointerMove(e){(e.pointerType===e.MSPOINTER_TYPE_TOUCH||e.pointerType===`touch`)&&(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchMove(e))}onPointerUp(e){(e.pointerType===e.MSPOINTER_TYPE_TOUCH||e.pointerType===`touch`)&&(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchEnd(e))}},vt=`focus`,yt=`blur`,bt=class{constructor(e){this.Reveal=e,this.onRevealPointerDown=this.onRevealPointerDown.bind(this),this.onDocumentPointerDown=this.onDocumentPointerDown.bind(this)}configure(e,t){e.embedded?this.blur():(this.focus(),this.unbind())}bind(){this.Reveal.getConfig().embedded&&this.Reveal.getRevealElement().addEventListener(`pointerdown`,this.onRevealPointerDown,!1)}unbind(){this.Reveal.getRevealElement().removeEventListener(`pointerdown`,this.onRevealPointerDown,!1),document.removeEventListener(`pointerdown`,this.onDocumentPointerDown,!1)}focus(){this.state!==vt&&(this.Reveal.getRevealElement().classList.add(`focused`),document.addEventListener(`pointerdown`,this.onDocumentPointerDown,!1)),this.state=vt}blur(){this.state!==yt&&(this.Reveal.getRevealElement().classList.remove(`focused`),document.removeEventListener(`pointerdown`,this.onDocumentPointerDown,!1)),this.state=yt}isFocused(){return this.state===vt}destroy(){this.Reveal.getRevealElement().classList.remove(`focused`)}onRevealPointerDown(e){this.focus()}onDocumentPointerDown(e){let t=W(e.target,`.reveal`);(!t||t!==this.Reveal.getRevealElement())&&this.blur()}},xt=class{constructor(e){this.Reveal=e}render(){this.element=document.createElement(`div`),this.element.className=`speaker-notes`,this.element.setAttribute(`data-prevent-swipe`,``),this.element.setAttribute(`tabindex`,`0`),this.Reveal.getRevealElement().appendChild(this.element)}configure(e,t){e.showNotes&&this.element.setAttribute(`data-layout`,typeof e.showNotes==`string`?e.showNotes:`inline`)}update(){this.Reveal.getConfig().showNotes&&this.element&&this.Reveal.getCurrentSlide()&&!this.Reveal.isScrollView()&&!this.Reveal.isPrintView()&&(this.element.innerHTML=this.getSlideNotes()||`<span class="notes-placeholder">No notes on this slide.</span>`)}updateVisibility(){this.Reveal.getConfig().showNotes&&this.hasNotes()&&!this.Reveal.isScrollView()&&!this.Reveal.isPrintView()?this.Reveal.getRevealElement().classList.add(`show-notes`):this.Reveal.getRevealElement().classList.remove(`show-notes`)}hasNotes(){return this.Reveal.getSlidesElement().querySelectorAll(`[data-notes], aside.notes`).length>0}isSpeakerNotesWindow(){return!!window.location.search.match(/receiver/gi)}getSlideNotes(e=this.Reveal.getCurrentSlide()){if(e.hasAttribute(`data-notes`))return e.getAttribute(`data-notes`);let t=e.querySelectorAll(`aside.notes`);return t?Array.from(t).map(e=>e.innerHTML).join(`
|
|
33
|
+
`):null}destroy(){this.element.remove()}},St=class{constructor(e,t){this.diameter=100,this.diameter2=this.diameter/2,this.thickness=6,this.playing=!1,this.progress=0,this.progressOffset=1,this.container=e,this.progressCheck=t,this.canvas=document.createElement(`canvas`),this.canvas.className=`playback`,this.canvas.width=this.diameter,this.canvas.height=this.diameter,this.canvas.style.width=this.diameter2+`px`,this.canvas.style.height=this.diameter2+`px`,this.context=this.canvas.getContext(`2d`),this.container.appendChild(this.canvas),this.render()}setPlaying(e){let t=this.playing;this.playing=e,!t&&this.playing?this.animate():this.render()}animate(){let e=this.progress;this.progress=this.progressCheck(),e>.8&&this.progress<.2&&(this.progressOffset=this.progress),this.render(),this.playing&&requestAnimationFrame(this.animate.bind(this))}render(){let e=this.playing?this.progress:0,t=this.diameter2-this.thickness,n=this.diameter2,r=this.diameter2;this.progressOffset+=(1-this.progressOffset)*.1;let i=-Math.PI/2+Math.PI*2*e,a=-Math.PI/2+this.progressOffset*(Math.PI*2);this.context.save(),this.context.clearRect(0,0,this.diameter,this.diameter),this.context.beginPath(),this.context.arc(n,r,t+4,0,Math.PI*2,!1),this.context.fillStyle=`rgba( 0, 0, 0, 0.4 )`,this.context.fill(),this.context.beginPath(),this.context.arc(n,r,t,0,Math.PI*2,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle=`rgba( 255, 255, 255, 0.2 )`,this.context.stroke(),this.playing&&(this.context.beginPath(),this.context.arc(n,r,t,a,i,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle=`#fff`,this.context.stroke()),this.context.translate(n-14,r-14),this.playing?(this.context.fillStyle=`#fff`,this.context.fillRect(0,0,10,28),this.context.fillRect(18,0,10,28)):(this.context.beginPath(),this.context.translate(4,0),this.context.moveTo(0,0),this.context.lineTo(24,14),this.context.lineTo(0,28),this.context.fillStyle=`#fff`,this.context.fill()),this.context.restore()}on(e,t){this.canvas.addEventListener(e,t,!1)}off(e,t){this.canvas.removeEventListener(e,t,!1)}destroy(){this.playing=!1,this.canvas.parentNode&&this.container.removeChild(this.canvas)}},Ct={width:960,height:700,margin:.04,minScale:.2,maxScale:2,controls:!0,controlsTutorial:!0,controlsLayout:`bottom-right`,controlsBackArrows:`faded`,progress:!0,slideNumber:!1,showSlideNumber:`all`,hashOneBasedIndex:!1,hash:!1,respondToHashChanges:!0,jumpToSlide:!0,history:!1,keyboard:!0,keyboardCondition:null,disableLayout:!1,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,navigationMode:`default`,shuffle:!1,fragments:!0,fragmentInURL:!0,embedded:!1,help:!0,pause:!0,showNotes:!1,showHiddenSlides:!1,autoPlayMedia:null,preloadIframes:null,mouseWheel:!1,previewLinks:!1,viewDistance:3,mobileViewDistance:2,display:`block`,hideInactiveCursor:!0,hideCursorTime:5e3,sortFragmentsOnSync:!0,autoAnimate:!0,autoAnimateMatcher:null,autoAnimateEasing:`ease`,autoAnimateDuration:1,autoAnimateUnmatched:!0,autoAnimateStyles:[`opacity`,`color`,`background-color`,`padding`,`font-size`,`line-height`,`letter-spacing`,`border-width`,`border-color`,`border-radius`,`outline`,`outline-offset`],autoSlide:0,autoSlideStoppable:!0,autoSlideMethod:null,defaultTiming:null,postMessage:!0,postMessageEvents:!1,focusBodyOnPageVisibilityChange:!0,transition:`slide`,transitionSpeed:`default`,backgroundTransition:`fade`,parallaxBackgroundImage:``,parallaxBackgroundSize:``,parallaxBackgroundRepeat:``,parallaxBackgroundPosition:``,parallaxBackgroundHorizontal:null,parallaxBackgroundVertical:null,view:null,scrollLayout:`full`,scrollSnap:`mandatory`,scrollProgress:`auto`,scrollActivationWidth:435,pdfMaxPagesPerSlide:1/0,pdfSeparateFragments:!0,pdfPageHeightOffset:-1,dependencies:[],plugins:[]},wt=`6.0.0`;function Tt(e,t){arguments.length<2&&(t=arguments[0],e=document.querySelector(`.reveal`));let n={},r={},i=!1,a=!1,o,s,c,l,u={hasNavigatedHorizontally:!1,hasNavigatedVertically:!1},d=[],f=1,p={layout:``,overview:``},m={},h=`idle`,g=0,_,v=0,y=-1,b=!1,x=new Re(n),S=new Je(n),C=new Ye(n),w=new et(n),T=new Qe(n),E=new it(n),D=new at(n),O=new ot(n),k=new st(n),A=new ct(n),j=new lt(n),M=new ut(n),ee=new dt(n),te=new ft(n),N=new mt(n),P=new ht(n),ne=new bt(n),re=new _t(n),ie=new xt(n);function ae(a){if(!e)throw`Unable to find presentation root (<div class="reveal">).`;if(i)throw`Reveal.js has already been initialized.`;if(i=!0,m.wrapper=e,m.slides=e.querySelector(`.slides`),!m.slides)throw`Unable to find slides container (<div class="slides">).`;return r=z(z(z(z(z({},Ct),r),t),a),Ae()),/print-pdf/gi.test(window.location.search)&&(r.view=`print`),oe(),window.addEventListener(`load`,U,!1),N.load(r.plugins,r.dependencies).then(se),new Promise(e=>n.on(`ready`,e))}function oe(){r.embedded===!0?m.viewport=W(e,`.reveal-viewport`)||e:(m.viewport=document.body,document.documentElement.classList.add(`reveal-full-page`)),m.viewport.classList.add(`reveal-viewport`)}function se(){i!==!1&&(a=!0,le(),ue(),F(),he(),ge(),vt(),I(),T.update(!0),ce(),j.readURL(),setTimeout(()=>{m.slides.classList.remove(`no-transition`),m.wrapper.classList.add(`ready`),R({type:`ready`,data:{indexh:o,indexv:s,currentSlide:l}})},1))}function ce(){let e=r.view===`print`,t=r.view===`scroll`||r.view===`reader`;(e||t)&&(e?ve():re.unbind(),m.viewport.classList.add(`loading-scroll-mode`),e?document.readyState===`complete`?D.activate():window.addEventListener(`load`,()=>D.activate()):E.activate())}function le(){r.showHiddenSlides||B(m.wrapper,`section[data-visibility="hidden"]`).forEach(e=>{let t=e.parentNode;t.childElementCount===1&&/section/i.test(t.nodeName)?t.remove():e.remove()})}function ue(){m.slides.classList.add(`no-transition`),G?m.wrapper.classList.add(`no-hover`):m.wrapper.classList.remove(`no-hover`),T.render(),S.render(),C.render(),M.render(),ee.render(),ie.render(),m.pauseOverlay=Oe(m.wrapper,`div`,`pause-overlay`,r.controls?`<button class="resume-button">Resume presentation</button>`:null),m.statusElement=de(),m.wrapper.setAttribute(`role`,`application`)}function de(){let e=m.wrapper.querySelector(`.aria-status`);return e||(e=document.createElement(`div`),e.style.position=`absolute`,e.style.height=`1px`,e.style.width=`1px`,e.style.overflow=`hidden`,e.style.clip=`rect( 1px, 1px, 1px, 1px )`,e.classList.add(`aria-status`),e.setAttribute(`aria-live`,`polite`),e.setAttribute(`aria-atomic`,`true`),m.wrapper.appendChild(e)),e}function fe(e){m.statusElement.textContent=e}function pe(e){let t=``;if(e.nodeType===3)t+=e.textContent.trim();else if(e.nodeType===1){let n=e.getAttribute(`aria-hidden`),r=window.getComputedStyle(e).display===`none`;if(n!==`true`&&!r){if(e.tagName===`IMG`||e.tagName===`VIDEO`){let n=e.getAttribute(`alt`);n&&(t+=me(n))}Array.from(e.childNodes).forEach(e=>{t+=pe(e)}),[`P`,`DIV`,`UL`,`OL`,`LI`,`H1`,`H2`,`H3`,`H4`,`H5`,`H6`,`BLOCKQUOTE`].includes(e.tagName)&&t.trim()!==``&&(t=me(t))}}return t=t.trim(),t===``?``:t+` `}function me(e){let t=e.trim();return t===``?e:/[.!?]$/.test(t)?t:t+`.`}function he(){setInterval(()=>{(!E.isActive()&&m.wrapper.scrollTop!==0||m.wrapper.scrollLeft!==0)&&(m.wrapper.scrollTop=0,m.wrapper.scrollLeft=0)},1e3)}function ge(){document.addEventListener(`fullscreenchange`,an),document.addEventListener(`webkitfullscreenchange`,an)}function F(){r.postMessage&&window.addEventListener(`message`,$t,!1)}function I(e){let t=z({},r);if(typeof e==`object`&&Te(r,e),n.isReady()===!1)return;let i=m.wrapper.querySelectorAll(ze).length;m.wrapper.classList.remove(t.transition),m.wrapper.classList.add(r.transition),m.wrapper.setAttribute(`data-transition-speed`,r.transitionSpeed),m.wrapper.setAttribute(`data-background-transition`,r.backgroundTransition),m.viewport.style.setProperty(`--slide-width`,typeof r.width==`string`?r.width:r.width+`px`),m.viewport.style.setProperty(`--slide-height`,typeof r.height==`string`?r.height:r.height+`px`),r.shuffle&&yt(),V(m.wrapper,`embedded`,r.embedded),V(m.wrapper,`rtl`,r.rtl),V(m.wrapper,`center`,r.center),r.pause===!1&&Ke(),w.reset(),_&&=(_.destroy(),null),i>1&&r.autoSlide&&r.autoSlideStoppable&&(_=new St(m.wrapper,()=>Math.min(Math.max((Date.now()-y)/g,0),1)),_.on(`click`,on),b=!1),r.navigationMode==="default"?m.wrapper.removeAttribute(`data-navigation-mode`):m.wrapper.setAttribute(`data-navigation-mode`,r.navigationMode),ie.configure(r,t),ne.configure(r,t),te.configure(r,t),M.configure(r,t),ee.configure(r,t),A.configure(r,t),O.configure(r,t),S.configure(r,t),pt()}function _e(){window.addEventListener(`resize`,nn,!1),r.touch&&re.bind(),r.keyboard&&A.bind(),r.progress&&ee.bind(),r.respondToHashChanges&&j.bind(),M.bind(),ne.bind(),m.slides.addEventListener(`click`,tn,!1),m.slides.addEventListener(`transitionend`,en,!1),m.pauseOverlay.addEventListener(`click`,Ke,!1),r.focusBodyOnPageVisibilityChange&&document.addEventListener(`visibilitychange`,rn,!1)}function ve(){re.unbind(),ne.unbind(),A.unbind(),M.unbind(),ee.unbind(),j.unbind(),window.removeEventListener(`resize`,nn,!1),m.slides.removeEventListener(`click`,tn,!1),m.slides.removeEventListener(`transitionend`,en,!1),m.pauseOverlay.removeEventListener(`click`,Ke,!1)}function ye(){i=!1,a!==!1&&(ve(),J(),ie.destroy(),ne.destroy(),P.destroy(),N.destroy(),te.destroy(),M.destroy(),ee.destroy(),T.destroy(),S.destroy(),C.destroy(),document.removeEventListener(`fullscreenchange`,an),document.removeEventListener(`webkitfullscreenchange`,an),document.removeEventListener(`visibilitychange`,rn,!1),window.removeEventListener(`message`,$t,!1),window.removeEventListener(`load`,U,!1),m.pauseOverlay&&m.pauseOverlay.remove(),m.statusElement&&m.statusElement.remove(),document.documentElement.classList.remove(`reveal-full-page`),m.wrapper.classList.remove(`ready`,`center`,`has-horizontal-slides`,`has-vertical-slides`),m.wrapper.removeAttribute(`data-transition-speed`),m.wrapper.removeAttribute(`data-background-transition`),m.viewport.classList.remove(`reveal-viewport`),m.viewport.style.removeProperty(`--slide-width`),m.viewport.style.removeProperty(`--slide-height`),m.slides.style.removeProperty(`width`),m.slides.style.removeProperty(`height`),m.slides.style.removeProperty(`zoom`),m.slides.style.removeProperty(`left`),m.slides.style.removeProperty(`top`),m.slides.style.removeProperty(`bottom`),m.slides.style.removeProperty(`right`),m.slides.style.removeProperty(`transform`),Array.from(m.wrapper.querySelectorAll(ze)).forEach(e=>{e.style.removeProperty(`display`),e.style.removeProperty(`top`),e.removeAttribute(`hidden`),e.removeAttribute(`aria-hidden`)}))}function be(t,n,r){e.addEventListener(t,n,r)}function xe(t,n,r){e.removeEventListener(t,n,r)}function L(e){typeof e.layout==`string`&&(p.layout=e.layout),typeof e.overview==`string`&&(p.overview=e.overview),p.layout?H(m.slides,p.layout+` `+p.overview):H(m.slides,p.overview)}function R({target:e=m.wrapper,type:t,data:n,bubbles:r=!0}){let i=document.createEvent(`HTMLEvents`,1,2);return i.initEvent(t,r,!0),Te(i,n),e.dispatchEvent(i),e===m.wrapper&&we(t),i}function Ce(e){R({type:`slidechanged`,data:{indexh:o,indexv:s,previousSlide:c,currentSlide:l,origin:e}})}function we(e,t){if(r.postMessageEvents&&window.parent!==window.self){let n={namespace:`reveal`,eventName:e,state:Ht()};Te(n,t),window.parent.postMessage(JSON.stringify(n),`*`)}}function U(){if(m.wrapper&&!D.isActive()){let e=m.viewport.offsetWidth,t=m.viewport.offsetHeight;if(!r.disableLayout){G&&!r.embedded&&document.documentElement.style.setProperty(`--vh`,window.innerHeight*.01+`px`);let n=E.isActive()?Me(e,t):Me(),i=f;De(r.width,r.height),m.slides.style.width=n.width+`px`,m.slides.style.height=n.height+`px`,f=Math.min(n.presentationWidth/n.width,n.presentationHeight/n.height),f=Math.max(f,r.minScale),f=Math.min(f,r.maxScale),f===1||E.isActive()?(m.slides.style.zoom=``,m.slides.style.left=``,m.slides.style.top=``,m.slides.style.bottom=``,m.slides.style.right=``,L({layout:``})):(m.slides.style.zoom=``,m.slides.style.left=`50%`,m.slides.style.top=`50%`,m.slides.style.bottom=`auto`,m.slides.style.right=`auto`,L({layout:`translate(-50%, -50%) scale(`+f+`)`}));let a=Array.from(m.wrapper.querySelectorAll(ze));for(let e=0,t=a.length;e<t;e++){let t=a[e];t.style.display!==`none`&&(r.center||t.classList.contains(`center`)?t.classList.contains(`stack`)?t.style.top=0:t.style.top=Math.max((n.height-t.scrollHeight)/2,0)+`px`:t.style.top=``)}i!==f&&R({type:`resize`,data:{oldScale:i,scale:f,size:n}})}ke(),m.viewport.style.setProperty(`--slide-scale`,f),m.viewport.style.setProperty(`--viewport-width`,e+`px`),m.viewport.style.setProperty(`--viewport-height`,t+`px`),E.layout(),ee.update(),T.updateParallax(),k.isActive()&&k.update()}}function De(e,t){B(m.slides,`section > .stretch, section > .r-stretch`).forEach(n=>{let r=je(n,t);if(/(img|video)/gi.test(n.nodeName)){let t=n.naturalWidth||n.videoWidth,i=n.naturalHeight||n.videoHeight,a=Math.min(e/t,r/i);n.style.width=t*a+`px`,n.style.height=i*a+`px`}else n.style.width=e+`px`,n.style.height=r+`px`})}function ke(){if(m.wrapper&&!r.disableLayout&&!D.isActive()&&typeof r.scrollActivationWidth==`number`&&r.view!==`scroll`){let e=Me();e.presentationWidth>0&&e.presentationWidth<=r.scrollActivationWidth?E.isActive()||(T.create(),E.activate()):E.isActive()&&E.deactivate()}}function Me(e,t){let n=r.width,i=r.height;r.disableLayout&&(n=m.slides.offsetWidth,i=m.slides.offsetHeight);let a={width:n,height:i,presentationWidth:e||m.wrapper.offsetWidth,presentationHeight:t||m.wrapper.offsetHeight};return a.presentationWidth-=a.presentationWidth*r.margin,a.presentationHeight-=a.presentationHeight*r.margin,typeof a.width==`string`&&/%$/.test(a.width)&&(a.width=parseInt(a.width,10)/100*a.presentationWidth),typeof a.height==`string`&&/%$/.test(a.height)&&(a.height=parseInt(a.height,10)/100*a.presentationHeight),a}function Ne(e,t){typeof e==`object`&&typeof e.setAttribute==`function`&&e.setAttribute(`data-previous-indexv`,t||0)}function Pe(e){if(typeof e==`object`&&typeof e.setAttribute==`function`&&e.classList.contains(`stack`)){let t=e.hasAttribute(`data-start-indexv`)?`data-start-indexv`:`data-previous-indexv`;return parseInt(e.getAttribute(t)||0,10)}return 0}function Fe(e=l){return e&&e.parentNode&&!!e.parentNode.nodeName.match(/section/i)}function Ie(e=l){return e.classList.contains(`.stack`)||e.querySelector(`section`)!==null}function Le(){return l&&Fe(l)?!l.nextElementSibling:!1}function He(){return o===0&&s===0}function We(){return l?!(l.nextElementSibling||Fe(l)&&l.parentNode.nextElementSibling):!1}function Ge(){if(r.pause){let e=m.wrapper.classList.contains(`paused`);J(),m.wrapper.classList.add(`paused`),e===!1&&R({type:`paused`})}}function Ke(){let e=m.wrapper.classList.contains(`paused`);m.wrapper.classList.remove(`paused`),Wt(),e&&R({type:`resumed`})}function qe(e){typeof e==`boolean`?e?Ge():Ke():Xe()?Ke():Ge()}function Xe(){return m.wrapper.classList.contains(`paused`)}function Ze(e){typeof e==`boolean`?e?C.show():C.hide():C.isVisible()?C.hide():C.show()}function $e(e){typeof e==`boolean`?e?Y():Gt():b?Y():Gt()}function tt(){return!!(g&&!b)}function K(t,n,i,a){if(R({type:`beforeslidechange`,data:{indexh:t===void 0?o:t,indexv:n===void 0?s:n,origin:a}}).defaultPrevented)return;c=l;let u=m.wrapper.querySelectorAll(Be);if(E.isActive()){let e=E.getSlideByIndices(t,n);e&&E.scrollToSlide(e);return}if(u.length===0)return;n===void 0&&!k.isActive()&&(n=Pe(u[t])),c&&c.parentNode&&c.parentNode.classList.contains(`stack`)&&Ne(c.parentNode,s);let f=d.concat();d.length=0;let p=o||0,g=s||0;o=Tt(Be,t===void 0?o:t),s=Tt(Ve,n===void 0?s:n);let _=o!==p||s!==g;_||(c=null);let v=u[o],y=v.querySelectorAll(`section`);e.classList.toggle(`is-vertical-slide`,y.length>1),l=y[s]||v;let b=!1;_&&c&&l&&!k.isActive()&&(h=`running`,b=nt(c,l,p,g),b&&m.slides.classList.add(`disable-slide-transitions`)),q(),U(),k.isActive()&&k.update(),i!==void 0&&O.goto(i),c&&c!==l&&(c.classList.remove(`present`),c.setAttribute(`aria-hidden`,`true`),He()&&setTimeout(()=>{Ft().forEach(e=>{Ne(e,0)})},0));e:for(let e=0,t=d.length;e<t;e++){for(let t=0;t<f.length;t++)if(f[t]===d[e]){f.splice(t,1);continue e}m.viewport.classList.add(d[e]),R({type:d[e]})}for(;f.length;)m.viewport.classList.remove(f.pop());_&&(x.afterSlideChanged(),Ce(a)),(_||!c)&&(x.stopEmbeddedContent(c),x.startEmbeddedContent(l)),requestAnimationFrame(()=>{fe(pe(l))}),ee.update(),M.update(),ie.update(),T.update(),T.updateParallax(),S.update(),O.update(),j.writeURL(),Wt(),b&&(setTimeout(()=>{m.slides.classList.remove(`disable-slide-transitions`)},0),r.autoAnimate&&w.run(c,l))}function nt(e,t,n,r){return e.hasAttribute(`data-auto-animate`)&&t.hasAttribute(`data-auto-animate`)&&e.getAttribute(`data-auto-animate-id`)===t.getAttribute(`data-auto-animate-id`)&&!(o>n||s>r?t:e).hasAttribute(`data-auto-animate-restart`)}function rt(e,t,n){let i=o||0;o=t,s=n;let a=l!==e;c=l,l=e,l&&c&&r.autoAnimate&&nt(c,l,i,s)&&w.run(c,l),a&&(x.afterSlideChanged(),c&&(x.stopEmbeddedContent(c),x.stopEmbeddedContent(c.slideBackgroundElement)),x.startEmbeddedContent(l),x.startEmbeddedContent(l.slideBackgroundElement)),requestAnimationFrame(()=>{fe(pe(l))}),Ce()}function pt(){ve(),_e(),U(),g=r.autoSlide,Wt(),T.create(),j.writeURL(),r.sortFragmentsOnSync===!0&&O.sortAll(),o!==void 0&&(o=Tt(Be,o),s=Tt(Ve,s)),M.update(),ee.update(),q(),ie.update(),ie.updateVisibility(),P.update(),T.update(!0),S.update(),x.formatEmbeddedContent(),r.autoPlayMedia===!1?x.stopEmbeddedContent(l,{unloadIframes:!1}):x.startEmbeddedContent(l),k.isActive()&&k.layout(),R({type:`sync`})}function gt(e=l){T.sync(e),O.sync(e),x.load(e),T.update(),ie.update(),R({type:`slidesync`,data:{slide:e}})}function vt(){Nt().forEach(e=>{B(e,`section`).forEach((e,t)=>{t>0&&(e.classList.remove(`present`),e.classList.remove(`past`),e.classList.add(`future`),e.setAttribute(`aria-hidden`,`true`))})})}function yt(e=Nt()){e.forEach((t,n)=>{let r=e[Math.floor(Math.random()*e.length)];r.parentNode===t.parentNode&&t.parentNode.insertBefore(t,r);let i=t.querySelectorAll(`section`);i.length&&yt(i)})}function Tt(e,t){let n=B(m.wrapper,e),i=n.length,a=E.isActive()||D.isActive(),o=!1,s=!1;if(i){r.loop&&(t>=i&&(o=!0),t%=i,t<0&&(t=i+t,s=!0)),t=Math.max(Math.min(t,i-1),0);for(let e=0;e<i;e++){let i=n[e],c=r.rtl&&!Fe(i);if(i.classList.remove(`past`),i.classList.remove(`present`),i.classList.remove(`future`),i.setAttribute(`hidden`,``),i.setAttribute(`aria-hidden`,`true`),i.querySelector(`section`)&&i.classList.add(`stack`),a){i.classList.add(`present`);continue}e<t?(i.classList.add(c?`future`:`past`),r.fragments&&Et(i)):e>t?(i.classList.add(c?`past`:`future`),r.fragments&&Dt(i)):e===t&&r.fragments&&(o?Dt(i):s&&Et(i))}let e=n[t],c=e.classList.contains(`present`);e.classList.add(`present`),e.removeAttribute(`hidden`),e.removeAttribute(`aria-hidden`),c||R({target:e,type:`visible`,bubbles:!1});let l=e.getAttribute(`data-state`);l&&(d=d.concat(l.split(` `)))}else t=0;return t}function Et(e){B(e,`.fragment`).forEach(e=>{e.classList.add(`visible`),e.classList.remove(`current-fragment`)})}function Dt(e){B(e,`.fragment.visible`).forEach(e=>{e.classList.remove(`visible`,`current-fragment`)})}function q(){let e=Nt(),t=e.length,n,i;if(t&&o!==void 0){let a=k.isActive(),c=a?10:r.viewDistance;G&&(c=a?6:r.mobileViewDistance),D.isActive()&&(c=Number.MAX_VALUE);for(let l=0;l<t;l++){let u=e[l],d=B(u,`section`),f=d.length;if(n=Math.abs((o||0)-l)||0,r.loop&&(n=Math.abs(((o||0)-l)%(t-c))||0),n<c?x.load(u):x.unload(u),f){let e=a?0:Pe(u);for(let t=0;t<f;t++){let r=d[t];i=Math.abs(l===(o||0)?(s||0)-t:t-e),n+i<c?x.load(r):x.unload(r)}}}Lt()?m.wrapper.classList.add(`has-vertical-slides`):m.wrapper.classList.remove(`has-vertical-slides`),It()?m.wrapper.classList.add(`has-horizontal-slides`):m.wrapper.classList.remove(`has-horizontal-slides`)}}function Ot({includeFragments:e=!1}={}){let t=m.wrapper.querySelectorAll(Be),n=m.wrapper.querySelectorAll(Ve),i={left:o>0,right:o<t.length-1,up:s>0,down:s<n.length-1};if(r.loop&&(t.length>1&&(i.left=!0,i.right=!0),n.length>1&&(i.up=!0,i.down=!0)),t.length>1&&r.navigationMode===`linear`&&(i.right=i.right||i.down,i.left=i.left||i.up),e===!0){let e=O.availableRoutes();i.left=i.left||e.prev,i.up=i.up||e.prev,i.down=i.down||e.next,i.right=i.right||e.next}if(r.rtl){let e=i.left;i.left=i.right,i.right=e}return i}function kt(e=l){let t=Nt(),n=0;e:for(let r=0;r<t.length;r++){let i=t[r],a=i.querySelectorAll(`section`);for(let t=0;t<a.length;t++){if(a[t]===e)break e;a[t].dataset.visibility!==`uncounted`&&n++}if(i===e)break;i.classList.contains(`stack`)===!1&&i.dataset.visibility!==`uncounted`&&n++}return n}function At(){let e=zt(),t=kt();if(l){let e=l.querySelectorAll(`.fragment`);if(e.length>0){let n=l.querySelectorAll(`.fragment.visible`);t+=n.length/e.length*.9}}return Math.min(t/(e-1),1)}function jt(e){let t=o,n=s,r;if(e){if(E.isActive())t=parseInt(e.getAttribute(`data-index-h`),10),e.getAttribute(`data-index-v`)&&(n=parseInt(e.getAttribute(`data-index-v`),10));else{let r=Fe(e),i=r?e.parentNode:e,a=Nt();t=Math.max(a.indexOf(i),0),n=void 0,r&&(n=Math.max(B(e.parentNode,`section`).indexOf(e),0))}}if(!e&&l&&l.querySelectorAll(`.fragment`).length>0){let e=l.querySelector(`.current-fragment`);r=e&&e.hasAttribute(`data-fragment-index`)?parseInt(e.getAttribute(`data-fragment-index`),10):l.querySelectorAll(`.fragment.visible`).length-1}return{h:t,v:n,f:r}}function Mt(){return B(m.wrapper,`.slides section:not(.stack):not([data-visibility="uncounted"])`)}function Nt(){return B(m.wrapper,Be)}function Pt(){return B(m.wrapper,`.slides>section>section`)}function Ft(){return B(m.wrapper,`.slides>section.stack`)}function It(){return Nt().length>1}function Lt(){return Pt().length>1}function Rt(){return Mt().map(e=>{let t={};for(let n=0;n<e.attributes.length;n++){let r=e.attributes[n];t[r.name]=r.value}return t})}function zt(){return Mt().length}function Bt(e,t){let n=Nt()[e],r=n&&n.querySelectorAll(`section`);return r&&r.length&&typeof t==`number`?r?r[t]:void 0:n}function Vt(e,t){let n=typeof e==`number`?Bt(e,t):e;if(n)return n.slideBackgroundElement}function Ht(){let e=jt();return z({indexh:e.h,indexv:e.v,indexf:e.f,paused:Xe(),overview:k.isActive()},P.getState())}function Ut(e){if(typeof e==`object`){K(Ee(e.indexh),Ee(e.indexv),Ee(e.indexf));let t=Ee(e.paused),n=Ee(e.overview);typeof t==`boolean`&&t!==Xe()&&qe(t),typeof n==`boolean`&&n!==k.isActive()&&k.toggle(n),P.setState(e)}}function Wt(){if(J(),l&&r.autoSlide!==!1){let e=l.querySelector(`.current-fragment[data-autoslide]`),t=e?e.getAttribute(`data-autoslide`):null,n=l.parentNode?l.parentNode.getAttribute(`data-autoslide`):null,i=l.getAttribute(`data-autoslide`);t?g=parseInt(t,10):i?g=parseInt(i,10):n?g=parseInt(n,10):(g=r.autoSlide,l.querySelectorAll(`.fragment`).length===0&&B(l,`video, audio`).forEach(e=>{e.hasAttribute(`data-autoplay`)&&g&&e.duration*1e3/e.playbackRate>g&&(g=e.duration*1e3/e.playbackRate+1e3)})),g&&!b&&!Xe()&&!k.isActive()&&(!We()||O.availableRoutes().next||r.loop===!0)&&(v=setTimeout(()=>{typeof r.autoSlideMethod==`function`?r.autoSlideMethod():Zt(),Wt()},g),y=Date.now()),_&&_.setPlaying(v!==-1)}}function J(){clearTimeout(v),v=-1}function Gt(){g&&!b&&(b=!0,R({type:`autoslidepaused`}),clearTimeout(v),_&&_.setPlaying(!1))}function Y(){g&&b&&(b=!1,R({type:`autoslideresumed`}),Wt())}function Kt({skipFragments:e=!1}={}){if(u.hasNavigatedHorizontally=!0,E.isActive())return E.prev();r.rtl?(k.isActive()||e||O.next()===!1)&&Ot().left&&K(o+1,r.navigationMode===`grid`?s:void 0):(k.isActive()||e||O.prev()===!1)&&Ot().left&&K(o-1,r.navigationMode===`grid`?s:void 0)}function qt({skipFragments:e=!1}={}){if(u.hasNavigatedHorizontally=!0,E.isActive())return E.next();r.rtl?(k.isActive()||e||O.prev()===!1)&&Ot().right&&K(o-1,r.navigationMode===`grid`?s:void 0):(k.isActive()||e||O.next()===!1)&&Ot().right&&K(o+1,r.navigationMode===`grid`?s:void 0)}function Jt({skipFragments:e=!1}={}){if(E.isActive())return E.prev();(k.isActive()||e||O.prev()===!1)&&Ot().up&&K(o,s-1)}function Yt({skipFragments:e=!1}={}){if(u.hasNavigatedVertically=!0,E.isActive())return E.next();(k.isActive()||e||O.next()===!1)&&Ot().down&&K(o,s+1)}function Xt({skipFragments:e=!1}={}){if(E.isActive())return E.prev();if(e||O.prev()===!1){if(Ot().up)Jt({skipFragments:e});else{let t;if(t=r.rtl?B(m.wrapper,`.slides>section.future`).pop():B(m.wrapper,`.slides>section.past`).pop(),t&&t.classList.contains(`stack`)){let e=t.querySelectorAll(`section`).length-1||void 0;K(o-1,e)}else r.rtl?qt({skipFragments:e}):Kt({skipFragments:e})}}}function Zt({skipFragments:e=!1}={}){if(u.hasNavigatedHorizontally=!0,u.hasNavigatedVertically=!0,E.isActive())return E.next();if(e||O.next()===!1){let t=Ot();t.down&&t.right&&r.loop&&Le()&&(t.down=!1),t.down?Yt({skipFragments:e}):r.rtl?Kt({skipFragments:e}):qt({skipFragments:e})}}function Qt(e){r.autoSlideStoppable&&Gt()}function $t(e){let t=e.data;if(typeof t==`string`&&t.charAt(0)===`{`&&t.charAt(t.length-1)===`}`&&(t=JSON.parse(t),t.method&&typeof n[t.method]==`function`)){if(Ue.test(t.method)===!1){let e=n[t.method].apply(n,t.args);we(`callback`,{method:t.method,result:e})}else console.warn(`reveal.js: "`+t.method+`" is is blacklisted from the postMessage API`)}}function en(e){h===`running`&&/section/gi.test(e.target.nodeName)&&(h=`idle`,R({type:`slidetransitionend`,data:{indexh:o,indexv:s,previousSlide:c,currentSlide:l}}))}function tn(e){let t=W(e.target,`a[href^="#"]`);if(t){let r=t.getAttribute(`href`),i=j.getIndicesFromHash(r);i&&(n.slide(i.h,i.v,i.f),e.preventDefault())}}function nn(e){U()}function rn(e){document.hidden===!1&&document.activeElement!==document.body&&(typeof document.activeElement.blur==`function`&&document.activeElement.blur(),document.body.focus())}function an(e){(document.fullscreenElement||document.webkitFullscreenElement)===m.wrapper&&(e.stopImmediatePropagation(),setTimeout(()=>{n.layout(),n.focus.focus()},1))}function on(e){We()&&r.loop===!1?(K(0,0),Y()):b?Y():Gt()}let sn={VERSION:wt,initialize:ae,configure:I,destroy:ye,sync:pt,syncSlide:gt,syncFragments:O.sync.bind(O),slide:K,left:Kt,right:qt,up:Jt,down:Yt,prev:Xt,next:Zt,navigateLeft:Kt,navigateRight:qt,navigateUp:Jt,navigateDown:Yt,navigatePrev:Xt,navigateNext:Zt,navigateFragment:O.goto.bind(O),prevFragment:O.prev.bind(O),nextFragment:O.next.bind(O),on:be,off:xe,addEventListener:be,removeEventListener:xe,layout:U,shuffle:yt,availableRoutes:Ot,availableFragments:O.availableRoutes.bind(O),toggleHelp:P.toggleHelp.bind(P),toggleOverview:k.toggle.bind(k),toggleScrollView:E.toggle.bind(E),togglePause:qe,toggleAutoSlide:$e,toggleJumpToSlide:Ze,isFirstSlide:He,isLastSlide:We,isLastVerticalSlide:Le,isVerticalSlide:Fe,isVerticalStack:Ie,isPaused:Xe,isAutoSliding:tt,isSpeakerNotes:ie.isSpeakerNotesWindow.bind(ie),isOverview:k.isActive.bind(k),isFocused:ne.isFocused.bind(ne),isOverlayOpen:P.isOpen.bind(P),isScrollView:E.isActive.bind(E),isPrintView:D.isActive.bind(D),isReady:()=>a,loadSlide:x.load.bind(x),unloadSlide:x.unload.bind(x),startEmbeddedContent:()=>x.startEmbeddedContent(l),stopEmbeddedContent:()=>x.stopEmbeddedContent(l,{unloadIframes:!1}),previewIframe:P.previewIframe.bind(P),previewImage:P.previewImage.bind(P),previewVideo:P.previewVideo.bind(P),showPreview:P.previewIframe.bind(P),hidePreview:P.close.bind(P),addEventListeners:_e,removeEventListeners:ve,dispatchEvent:R,getState:Ht,setState:Ut,getProgress:At,getIndices:jt,getSlidesAttributes:Rt,getSlidePastCount:kt,getTotalSlides:zt,getSlide:Bt,getPreviousSlide:()=>c,getCurrentSlide:()=>l,getSlideBackground:Vt,getSlideNotes:ie.getSlideNotes.bind(ie),getSlides:Mt,getHorizontalSlides:Nt,getVerticalSlides:Pt,hasHorizontalSlides:It,hasVerticalSlides:Lt,hasNavigatedHorizontally:()=>u.hasNavigatedHorizontally,hasNavigatedVertically:()=>u.hasNavigatedVertically,shouldAutoAnimateBetween:nt,addKeyBinding:A.addKeyBinding.bind(A),removeKeyBinding:A.removeKeyBinding.bind(A),triggerKey:A.triggerKey.bind(A),registerKeyboardShortcut:A.registerKeyboardShortcut.bind(A),getComputedSlideSize:Me,setCurrentScrollPage:rt,removeHiddenSlides:le,getScale:()=>f,getConfig:()=>r,getQueryHash:Ae,getSlidePath:j.getHash.bind(j),getRevealElement:()=>e,getSlidesElement:()=>m.slides,getViewportElement:()=>m.viewport,getBackgroundsElement:()=>T.element,registerPlugin:N.registerPlugin.bind(N),hasPlugin:N.hasPlugin.bind(N),getPlugin:N.getPlugin.bind(N),getPlugins:N.getRegisteredPlugins.bind(N)};return Te(n,Se(z({},sn),{announceStatus:fe,getStatusText:pe,focus:ne,scroll:E,progress:ee,controls:M,location:j,overview:k,keyboard:A,fragments:O,backgrounds:T,slideContent:x,slideNumber:S,onUserInput:Qt,closeOverlay:P.close.bind(P),updateSlidesVisibility:q,layoutSlideContents:De,transformSlides:L,cueAutoSlide:Wt,cancelAutoSlide:J})),sn}var Et=Tt,Dt=[];Et.initialize=e=>{let t=document.querySelector(`.reveal`);if(!(t instanceof HTMLElement))throw Error(`Unable to find presentation root (<div class="reveal">).`);return Object.assign(Et,new Tt(t,e)),Dt.map(e=>e(Et)),Et.initialize()},[`configure`,`on`,`off`,`addEventListener`,`removeEventListener`,`registerPlugin`].forEach(e=>{Et[e]=(...t)=>{Dt.push(n=>n[e].call(null,...t))}}),Et.isReady=()=>!1,Et.VERSION=wt;var q=x(),Ot=(0,F.createContext)(null),kt=[];function At(e,t){if(e===t)return!1;if(!e||!t)return e!==t;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!0;for(let r of n)if(!(r in t)||e[r]!==t[r])return!0;return!1}function jt(e,t){e&&(typeof e==`function`?e(t):e.current=t)}function Mt(e){return e.tagName===`SECTION`}function Nt(e,t,n){return Array.from(e.children).filter(Mt).map(e=>{let r=t.get(e);r===void 0&&(r=n.current++,t.set(e,r));let i=Nt(e,t,n);return i.length>0?[r,i]:r})}function Pt(e,t,n){return e?JSON.stringify(Nt(e,t,n)):`[]`}function Ft({config:e,plugins:t=kt,onReady:n,onSync:r,onSlideSync:i,onSlideChange:a,onSlideTransitionEnd:o,onFragmentShown:s,onFragmentHidden:c,onOverviewShown:l,onOverviewHidden:u,onPaused:d,onResumed:f,deckRef:p,className:m,style:h,children:g}){let _=(0,F.useRef)(null),v=(0,F.useRef)(null),y=(0,F.useRef)(null),[b,x]=(0,F.useState)(null),S=(0,F.useRef)(t),C=(0,F.useRef)(!1),w=(0,F.useRef)(e),T=(0,F.useRef)(null),E=(0,F.useRef)(new WeakMap),D=(0,F.useRef)(1),O=(0,F.useRef)(!1),k=(0,F.useRef)(0);return(0,F.useEffect)(()=>{if(O.current=!0,k.current+=1,y.current)y.current.isReady()&&x(y.current);else{let t=new Et(_.current,{...e,plugins:S.current});w.current=e,y.current=t,t.initialize().then(()=>{!O.current||y.current!==t||(x(t),n?.(t))})}return()=>{O.current=!1;let e=y.current;if(!e)return;let t=++k.current;Promise.resolve().then(()=>{if(!(O.current||k.current!==t)&&y.current===e){try{e.destroy()}catch{}y.current===e&&(y.current=null)}})}},[]),(0,F.useEffect)(()=>(jt(p,b),()=>jt(p,null)),[p,b]),(0,F.useEffect)(()=>{if(!b)return;let e=[[`sync`,r],[`slidesync`,i],[`slidechanged`,a],[`slidetransitionend`,o],[`fragmentshown`,s],[`fragmenthidden`,c],[`overviewshown`,l],[`overviewhidden`,u],[`paused`,d],[`resumed`,f]].filter(e=>e[1]!=null);for(let[t,n]of e)b.on(t,n);return()=>{for(let[t,n]of e)b.off(t,n)}},[b,r,i,a,o,s,c,l,u,d,f]),(0,F.useLayoutEffect)(()=>{!b||!y.current?.isReady()||At(w.current,e)&&(C.current=!0,y.current.configure(e??{}),w.current=e)},[b,e]),(0,F.useLayoutEffect)(()=>{let e=C.current;C.current=!1;let t=Pt(v.current,E.current,D);if(e){T.current=t;return}y.current?.isReady()&&T.current!==t&&(y.current.sync(),T.current=t)}),(0,q.jsx)(Ot.Provider,{value:b,children:(0,q.jsx)(`div`,{className:m?`reveal ${m}`:`reveal`,style:h,ref:_,children:(0,q.jsx)(`div`,{className:`slides`,ref:v,children:g})})})}var It={background:`data-background`,backgroundImage:`data-background-image`,backgroundVideo:`data-background-video`,backgroundVideoLoop:`data-background-video-loop`,backgroundVideoMuted:`data-background-video-muted`,backgroundIframe:`data-background-iframe`,backgroundColor:`data-background-color`,backgroundGradient:`data-background-gradient`,backgroundSize:`data-background-size`,backgroundPosition:`data-background-position`,backgroundRepeat:`data-background-repeat`,backgroundOpacity:`data-background-opacity`,backgroundTransition:`data-background-transition`,visibility:`data-visibility`,autoAnimate:`data-auto-animate`,autoAnimateId:`data-auto-animate-id`,autoAnimateRestart:`data-auto-animate-restart`,autoAnimateUnmatched:`data-auto-animate-unmatched`,autoAnimateEasing:`data-auto-animate-easing`,autoAnimateDuration:`data-auto-animate-duration`,autoAnimateDelay:`data-auto-animate-delay`,transition:`data-transition`,transitionSpeed:`data-transition-speed`,autoSlide:`data-autoslide`,notes:`data-notes`,backgroundInteractive:`data-background-interactive`,preload:`data-preload`};function Lt(e){return JSON.stringify(Object.entries(e).filter(([e])=>e.startsWith(`data-`)).sort(([e],[t])=>e.localeCompare(t)))}function Rt(e,t){let n={...e},r=n;for(let[e,n]of Object.entries(It)){if(r[n]!==void 0)continue;let i=t[e];if(i!==void 0){if(i===!1){e===`autoAnimateUnmatched`&&(r[n]=`false`);continue}r[n]=typeof i==`boolean`?``:i}}return n}function zt({children:e,background:t,backgroundImage:n,backgroundVideo:r,backgroundVideoLoop:i,backgroundVideoMuted:a,backgroundIframe:o,backgroundColor:s,backgroundGradient:c,backgroundSize:l,backgroundPosition:u,backgroundRepeat:d,backgroundOpacity:f,backgroundTransition:p,visibility:m,autoAnimate:h,autoAnimateId:g,autoAnimateRestart:_,autoAnimateUnmatched:v,autoAnimateEasing:y,autoAnimateDuration:b,autoAnimateDelay:x,transition:S,transitionSpeed:C,autoSlide:w,notes:T,backgroundInteractive:E,preload:D,...O}){let k=(0,F.useContext)(Ot),A=(0,F.useRef)(null),j=(0,F.useRef)(null),M=(0,F.useRef)(null),ee=Rt(O,{background:t,backgroundImage:n,backgroundVideo:r,backgroundVideoLoop:i,backgroundVideoMuted:a,backgroundIframe:o,backgroundColor:s,backgroundGradient:c,backgroundSize:l,backgroundPosition:u,backgroundRepeat:d,backgroundOpacity:f,backgroundTransition:p,visibility:m,autoAnimate:h,autoAnimateId:g,autoAnimateRestart:_,autoAnimateUnmatched:v,autoAnimateEasing:y,autoAnimateDuration:b,autoAnimateDelay:x,transition:S,transitionSpeed:C,autoSlide:w,notes:T,backgroundInteractive:E,preload:D}),te=Lt(ee);return(0,F.useLayoutEffect)(()=>{let e=A.current;if(!k||!e||typeof k.syncSlide!=`function`)return;if(j.current!==k){j.current=k,M.current=te;return}if(te===`[]`)return;let t=j.current===k,n=M.current===te;t&&n||(k.syncSlide(e),j.current=k,M.current=te)},[k,te]),(0,q.jsx)(`section`,{ref:A,...ee,children:e})}function Bt({className:e,style:t,children:n}){return(0,q.jsx)(`section`,{className:e,style:t,children:n})}function Vt(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Ht=Vt();function Ut(e){Ht=e}var Wt={exec:()=>null};function J(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(Y.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var Gt=(()=>{try{return!0}catch{return!1}})(),Y={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,`i`),blockquoteBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}>`)},Kt=/^(?:[ \t]*(?:\n|$))+/,qt=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Jt=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Yt=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Xt=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Zt=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Qt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,$t=J(Qt).replace(/bull/g,Zt).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),en=J(Qt).replace(/bull/g,Zt).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),tn=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,nn=/^[^\n]+/,rn=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,an=J(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,rn).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),on=J(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Zt).getRegex(),sn=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,cn=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,ln=J(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,cn).replace(`tag`,sn).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),un=J(tn).replace(`hr`,Yt).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,sn).getRegex(),dn={blockquote:J(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,un).getRegex(),code:qt,def:an,fences:Jt,heading:Xt,hr:Yt,html:ln,lheading:$t,list:on,newline:Kt,paragraph:un,table:Wt,text:nn},fn=J(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,Yt).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,sn).getRegex(),pn={...dn,lheading:en,table:fn,paragraph:J(tn).replace(`hr`,Yt).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,fn).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,sn).getRegex()},mn={...dn,html:J(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,cn).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Wt,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:J(tn).replace(`hr`,Yt).replace(`heading`,` *#{1,6} *[^
|
|
34
|
+
]`).replace(`lheading`,$t).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},hn=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,gn=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,_n=/^( {2,}|\\)\n(?!\s*$)/,vn=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,yn=/[\p{P}\p{S}]/u,bn=/[\s\p{P}\p{S}]/u,xn=/[^\s\p{P}\p{S}]/u,Sn=J(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,bn).getRegex(),Cn=/(?!~)[\p{P}\p{S}]/u,wn=/(?!~)[\s\p{P}\p{S}]/u,Tn=/(?:[^\s\p{P}\p{S}]|~)/u,En=J(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,Gt?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),Dn=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,On=J(Dn,`u`).replace(/punct/g,yn).getRegex(),kn=J(Dn,`u`).replace(/punct/g,Cn).getRegex(),An=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,jn=J(An,`gu`).replace(/notPunctSpace/g,xn).replace(/punctSpace/g,bn).replace(/punct/g,yn).getRegex(),Mn=J(An,`gu`).replace(/notPunctSpace/g,Tn).replace(/punctSpace/g,wn).replace(/punct/g,Cn).getRegex(),Nn=J(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,xn).replace(/punctSpace/g,bn).replace(/punct/g,yn).getRegex(),Pn=J(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,yn).getRegex(),Fn=J(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,xn).replace(/punctSpace/g,bn).replace(/punct/g,yn).getRegex(),In=J(/\\(punct)/,`gu`).replace(/punct/g,yn).getRegex(),Ln=J(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Rn=J(cn).replace(`(?:-->|$)`,`-->`).getRegex(),zn=J(`^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,Rn).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Bn=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Vn=J(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace(`label`,Bn).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Hn=J(/^!?\[(label)\]\[(ref)\]/).replace(`label`,Bn).replace(`ref`,rn).getRegex(),Un=J(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,rn).getRegex(),Wn=J(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,Hn).replace(`nolink`,Un).getRegex(),Gn=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Kn={_backpedal:Wt,anyPunctuation:In,autolink:Ln,blockSkip:En,br:_n,code:gn,del:Wt,delLDelim:Wt,delRDelim:Wt,emStrongLDelim:On,emStrongRDelimAst:jn,emStrongRDelimUnd:Nn,escape:hn,link:Vn,nolink:Un,punctuation:Sn,reflink:Hn,reflinkSearch:Wn,tag:zn,text:vn,url:Wt},qn={...Kn,link:J(/^!?\[(label)\]\((.*?)\)/).replace(`label`,Bn).getRegex(),reflink:J(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,Bn).getRegex()},Jn={...Kn,emStrongRDelimAst:Mn,emStrongLDelim:kn,delLDelim:Pn,delRDelim:Fn,url:J(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`protocol`,Gn).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:J(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace(`protocol`,Gn).getRegex()},Yn={...Jn,br:J(_n).replace(`{2,}`,`*`).getRegex(),text:J(Jn.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},Xn={normal:dn,gfm:pn,pedantic:mn},Zn={normal:Kn,gfm:Jn,breaks:Yn,pedantic:qn},Qn={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},$n=e=>Qn[e];function er(e,t){if(t){if(Y.escapeTest.test(e))return e.replace(Y.escapeReplace,$n)}else if(Y.escapeTestNoEncode.test(e))return e.replace(Y.escapeReplaceNoEncode,$n);return e}function tr(e){try{e=encodeURI(e).replace(Y.percentDecode,`%`)}catch{return null}return e}function nr(e,t){let n=e.replace(Y.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(Y.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t){if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``)}for(;r<n.length;r++)n[r]=n[r].trim().replace(Y.slashPipe,`|`);return n}function rr(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function ir(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function ar(e,t=0){let n=t,r=``;for(let t of e)if(t===` `){let e=4-n%4;r+=` `.repeat(e),n+=e}else r+=t,n++;return r}function or(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,`$1`);r.state.inLink=!0;let c={type:e[0].charAt(0)===`!`?`image`:`link`,raw:n,href:a,title:o,text:s,tokens:r.inlineTokens(s)};return r.state.inLink=!1,c}function sr(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
|
|
35
|
+
`).map(e=>{let t=e.match(n.other.beginningSpace);if(t===null)return e;let[r]=t;return r.length>=i.length?e.slice(i.length):e}).join(`
|
|
36
|
+
`)}var cr=class{options;rules;lexer;constructor(e){this.options=e||Ht}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:`space`,raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=t[0].replace(this.rules.other.codeRemoveIndent,``);return{type:`code`,raw:t[0],codeBlockStyle:`indented`,text:this.options.pedantic?e:rr(e,`
|
|
37
|
+
`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=sr(e,t[3]||``,this.rules);return{type:`code`,raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,`$1`):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=rr(e,`#`);(this.options.pedantic||!t||this.rules.other.endingSpaceChar.test(t))&&(e=t.trim())}return{type:`heading`,raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:`hr`,raw:rr(t[0],`
|
|
38
|
+
`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=rr(t[0],`
|
|
39
|
+
`).split(`
|
|
40
|
+
`),n=``,r=``,i=[];for(;e.length>0;){let t=!1,a=[],o;for(o=0;o<e.length;o++)if(this.rules.other.blockquoteStart.test(e[o]))a.push(e[o]),t=!0;else if(!t)a.push(e[o]);else break;e=e.slice(o);let s=a.join(`
|
|
41
|
+
`),c=s.replace(this.rules.other.blockquoteSetextReplace,`
|
|
42
|
+
$1`).replace(this.rules.other.blockquoteSetextReplace2,``);n=n?`${n}
|
|
43
|
+
${s}`:s,r=r?`${r}
|
|
44
|
+
${c}`:c;let l=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,i,!0),this.lexer.state.top=l,e.length===0)break;let u=i.at(-1);if(u?.type===`code`)break;if(u?.type===`blockquote`){let t=u,a=t.raw+`
|
|
45
|
+
`+e.join(`
|
|
46
|
+
`),o=this.blockquote(a);i[i.length-1]=o,n=n.substring(0,n.length-t.raw.length)+o.raw,r=r.substring(0,r.length-t.text.length)+o.text;break}if(u?.type===`list`){let t=u,a=t.raw+`
|
|
47
|
+
`+e.join(`
|
|
48
|
+
`),o=this.list(a);i[i.length-1]=o,n=n.substring(0,n.length-u.raw.length)+o.raw,r=r.substring(0,r.length-t.raw.length)+o.raw,e=a.substring(i.at(-1).raw.length).split(`
|
|
49
|
+
`);continue}}return{type:`blockquote`,raw:n,tokens:i,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:`list`,raw:``,ordered:r,start:r?+n.slice(0,-1):``,loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:`[*+-]`);let a=this.rules.other.listItemRegex(n),o=!1;for(;e;){let n=!1,r=``,s=``;if(!(t=a.exec(e))||this.rules.block.hr.test(e))break;r=t[0],e=e.substring(r.length);let c=ar(t[2].split(`
|
|
50
|
+
`,1)[0],t[1].length),l=e.split(`
|
|
51
|
+
`,1)[0],u=!c.trim(),d=0;if(this.options.pedantic?(d=2,s=c.trimStart()):u?d=t[1].length+1:(d=c.search(this.rules.other.nonSpaceChar),d=d>4?1:d,s=c.slice(d),d+=t[1].length),u&&this.rules.other.blankLine.test(l)&&(r+=l+`
|
|
52
|
+
`,e=e.substring(l.length+1),n=!0),!n){let t=this.rules.other.nextBulletRegex(d),n=this.rules.other.hrRegex(d),i=this.rules.other.fencesBeginRegex(d),a=this.rules.other.headingBeginRegex(d),o=this.rules.other.htmlBeginRegex(d),f=this.rules.other.blockquoteBeginRegex(d);for(;e;){let p=e.split(`
|
|
53
|
+
`,1)[0],m;if(l=p,this.options.pedantic?(l=l.replace(this.rules.other.listReplaceNesting,` `),m=l):m=l.replace(this.rules.other.tabCharGlobal,` `),i.test(l)||a.test(l)||o.test(l)||f.test(l)||t.test(l)||n.test(l))break;if(m.search(this.rules.other.nonSpaceChar)>=d||!l.trim())s+=`
|
|
54
|
+
`+m.slice(d);else{if(u||c.replace(this.rules.other.tabCharGlobal,` `).search(this.rules.other.nonSpaceChar)>=4||i.test(c)||a.test(c)||n.test(c))break;s+=`
|
|
55
|
+
`+l}u=!l.trim(),r+=p+`
|
|
56
|
+
`,e=e.substring(p.length+1),c=m.slice(d)}}i.loose||(o?i.loose=!0:this.rules.other.doubleBlankLine.test(r)&&(o=!0)),i.items.push({type:`list_item`,raw:r,task:!!this.options.gfm&&this.rules.other.listIsTask.test(s),loose:!1,text:s,tokens:[]}),i.raw+=r}let s=i.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let e of i.items){if(this.lexer.state.top=!1,e.tokens=this.lexer.blockTokens(e.text,[]),e.task){if(e.text=e.text.replace(this.rules.other.listReplaceTask,``),e.tokens[0]?.type===`text`||e.tokens[0]?.type===`paragraph`){e.tokens[0].raw=e.tokens[0].raw.replace(this.rules.other.listReplaceTask,``),e.tokens[0].text=e.tokens[0].text.replace(this.rules.other.listReplaceTask,``);for(let e=this.lexer.inlineQueue.length-1;e>=0;e--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)){this.lexer.inlineQueue[e].src=this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask,``);break}}let t=this.rules.other.listTaskCheckbox.exec(e.raw);if(t){let n={type:`checkbox`,raw:t[0]+` `,checked:t[0]!==`[ ]`};e.checked=n.checked,i.loose?e.tokens[0]&&[`paragraph`,`text`].includes(e.tokens[0].type)&&`tokens`in e.tokens[0]&&e.tokens[0].tokens?(e.tokens[0].raw=n.raw+e.tokens[0].raw,e.tokens[0].text=n.raw+e.tokens[0].text,e.tokens[0].tokens.unshift(n)):e.tokens.unshift({type:`paragraph`,raw:n.raw,text:n.raw,tokens:[n]}):e.tokens.unshift(n)}}if(!i.loose){let t=e.tokens.filter(e=>e.type===`space`);i.loose=t.length>0&&t.some(e=>this.rules.other.anyLine.test(e.raw))}}if(i.loose)for(let e of i.items){e.loose=!0;for(let t of e.tokens)t.type===`text`&&(t.type=`paragraph`)}return i}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:`html`,block:!0,raw:t[0],pre:t[1]===`pre`||t[1]===`script`||t[1]===`style`,text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,` `),n=t[2]?t[2].replace(this.rules.other.hrefBrackets,`$1`).replace(this.rules.inline.anyPunctuation,`$1`):``,r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,`$1`):t[3];return{type:`def`,tag:e,raw:t[0],href:n,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=nr(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,``).split(`|`),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,``).split(`
|
|
57
|
+
`):[],a={type:`table`,raw:t[0],header:[],align:[],rows:[]};if(n.length===r.length){for(let e of r)this.rules.other.tableAlignRight.test(e)?a.align.push(`right`):this.rules.other.tableAlignCenter.test(e)?a.align.push(`center`):this.rules.other.tableAlignLeft.test(e)?a.align.push(`left`):a.align.push(null);for(let e=0;e<n.length;e++)a.header.push({text:n[e],tokens:this.lexer.inline(n[e]),header:!0,align:a.align[e]});for(let e of i)a.rows.push(nr(e,a.header.length).map((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:a.align[t]})));return a}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let e=t[1].trim();return{type:`heading`,raw:t[0],depth:t[2].charAt(0)===`=`?1:2,text:e,tokens:this.lexer.inline(e)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e=t[1].charAt(t[1].length-1)===`
|
|
58
|
+
`?t[1].slice(0,-1):t[1];return{type:`paragraph`,raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:`text`,raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:`escape`,raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:`html`,raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=rr(e.slice(0,-1),`\\`);if((e.length-t.length)%2==0)return}else{let e=ir(t[2],`()`);if(e===-2)return;if(e>-1){let n=(t[0].indexOf(`!`)===0?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=``}}let n=t[2],r=``;if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):``;return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(n=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?n.slice(1):n.slice(1,-1)),or(t,{href:n&&n.replace(this.rules.inline.anyPunctuation,`$1`),title:r&&r.replace(this.rules.inline.anyPunctuation,`$1`)},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=t[(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,` `).toLowerCase()];if(!e){let e=n[0].charAt(0);return{type:`text`,raw:e,text:e}}return or(n,e,n[0],this.lexer,this.rules)}}emStrong(e,t,n=``){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=0,c=r[0][0]===`*`?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+n);(r=c.exec(t))!=null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i)continue;if(a=[...i].length,r[3]||r[4]){o+=a;continue}if((r[5]||r[6])&&n%3&&!((n+a)%3)){s+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o+s);let t=[...r[0]][0].length,c=e.slice(0,n+r.index+t+a);if(Math.min(n,a)%2){let e=c.slice(1,-1);return{type:`em`,raw:c,text:e,tokens:this.lexer.inlineTokens(e)}}let l=c.slice(2,-2);return{type:`strong`,raw:c,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal,` `),n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:`codespan`,raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}}del(e,t,n=``){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=this.rules.inline.delRDelim;for(s.lastIndex=0,t=t.slice(-1*e.length+n);(r=s.exec(t))!=null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i||(a=[...i].length,a!==n))continue;if(r[3]||r[4]){o+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o);let t=[...r[0]][0].length,s=e.slice(0,n+r.index+t+a),c=s.slice(n,-n);return{type:`del`,raw:s,text:c,tokens:this.lexer.inlineTokens(c)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return t[2]===`@`?(e=t[1],n=`mailto:`+e):(e=t[1],n=e),{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if(t[2]===`@`)e=t[0],n=`mailto:`+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??``;while(r!==t[0]);e=t[0],n=t[1]===`www.`?`http://`+t[0]:t[0]}return{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:`text`,raw:t[0],text:t[0],escaped:e}}}},lr=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Ht,this.options.tokenizer=this.options.tokenizer||new cr,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:Y,block:Xn.normal,inline:Zn.normal};this.options.pedantic?(t.block=Xn.pedantic,t.inline=Zn.pedantic):this.options.gfm&&(t.block=Xn.gfm,t.inline=this.options.breaks?Zn.breaks:Zn.gfm),this.tokenizer.rules=t}static get rules(){return{block:Xn,inline:Zn}}static lex(t,n){return new e(n).lex(t)}static lexInline(t,n){return new e(n).inlineTokens(t)}lex(e){e=e.replace(Y.carriageReturn,`
|
|
59
|
+
`),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){for(this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(Y.tabCharGlobal,` `).replace(Y.spaceLine,``));e;){let r;if(this.options.extensions?.block?.some(n=>(r=n.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let n=t.at(-1);r.raw.length===1&&n!==void 0?n.raw+=`
|
|
60
|
+
`:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=(n.raw.endsWith(`
|
|
61
|
+
`)?``:`
|
|
62
|
+
`)+r.raw,n.text+=`
|
|
63
|
+
`+r.text,this.inlineQueue.at(-1).src=n.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=(n.raw.endsWith(`
|
|
64
|
+
`)?``:`
|
|
65
|
+
`)+r.raw,n.text+=`
|
|
66
|
+
`+r.raw,this.inlineQueue.at(-1).src=n.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title},t.push(r));continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}let i=e;if(this.options.extensions?.startBlock){let t=1/0,n=e.slice(1),r;this.options.extensions.startBlock.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(i=e.substring(0,t+1))}if(this.state.top&&(r=this.tokenizer.paragraph(i))){let a=t.at(-1);n&&a?.type===`paragraph`?(a.raw+=(a.raw.endsWith(`
|
|
67
|
+
`)?``:`
|
|
68
|
+
`)+r.raw,a.text+=`
|
|
69
|
+
`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):t.push(r),n=i.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);let n=t.at(-1);n?.type===`text`?(n.raw+=(n.raw.endsWith(`
|
|
70
|
+
`)?``:`
|
|
71
|
+
`)+r.raw,n.text+=`
|
|
72
|
+
`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(r);continue}if(e){let t=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw Error(t)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=e,r=null;if(this.tokens.links){let e=Object.keys(this.tokens.links);if(e.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)e.includes(r[0].slice(r[0].lastIndexOf(`[`)+1,-1))&&(n=n.slice(0,r.index)+`[`+`a`.repeat(r[0].length-2)+`]`+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null;)n=n.slice(0,r.index)+`++`+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let i;for(;(r=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)i=r[2]?r[2].length:0,n=n.slice(0,r.index+i)+`[`+`a`.repeat(r[0].length-i-2)+`]`+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let a=!1,o=``;for(;e;){a||(o=``),a=!1;let r;if(this.options.extensions?.inline?.some(n=>(r=n.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.escape(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.tag(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.link(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(r.raw.length);let n=t.at(-1);r.type===`text`&&n?.type===`text`?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if(r=this.tokenizer.emStrong(e,n,o)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.codespan(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.br(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.del(e,n,o)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.autolink(e)){e=e.substring(r.raw.length),t.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(e))){e=e.substring(r.raw.length),t.push(r);continue}let i=e;if(this.options.extensions?.startInline){let t=1/0,n=e.slice(1),r;this.options.extensions.startInline.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(i=e.substring(0,t+1))}if(r=this.tokenizer.inlineText(i)){e=e.substring(r.raw.length),r.raw.slice(-1)!==`_`&&(o=r.raw.slice(-1)),a=!0;let n=t.at(-1);n?.type===`text`?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if(e){let t=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw Error(t)}}return t}},ur=class{options;parser;constructor(e){this.options=e||Ht}space(e){return``}code({text:e,lang:t,escaped:n}){let r=(t||``).match(Y.notSpaceStart)?.[0],i=e.replace(Y.endingNewline,``)+`
|
|
73
|
+
`;return r?`<pre><code class="language-`+er(r)+`">`+(n?i:er(i,!0))+`</code></pre>
|
|
74
|
+
`:`<pre><code>`+(n?i:er(i,!0))+`</code></pre>
|
|
75
|
+
`}blockquote({tokens:e}){return`<blockquote>
|
|
76
|
+
${this.parser.parse(e)}</blockquote>
|
|
77
|
+
`}html({text:e}){return e}def(e){return``}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
|
|
78
|
+
`}hr(e){return`<hr>
|
|
79
|
+
`}list(e){let t=e.ordered,n=e.start,r=``;for(let t=0;t<e.items.length;t++){let n=e.items[t];r+=this.listitem(n)}let i=t?`ol`:`ul`,a=t&&n!==1?` start="`+n+`"`:``;return`<`+i+a+`>
|
|
80
|
+
`+r+`</`+i+`>
|
|
81
|
+
`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
|
|
82
|
+
`}checkbox({checked:e}){return`<input `+(e?`checked="" `:``)+`disabled="" type="checkbox"> `}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
|
|
83
|
+
`}table(e){let t=``,n=``;for(let t=0;t<e.header.length;t++)n+=this.tablecell(e.header[t]);t+=this.tablerow({text:n});let r=``;for(let t=0;t<e.rows.length;t++){let i=e.rows[t];n=``;for(let e=0;e<i.length;e++)n+=this.tablecell(i[e]);r+=this.tablerow({text:n})}return r&&=`<tbody>${r}</tbody>`,`<table>
|
|
84
|
+
<thead>
|
|
85
|
+
`+t+`</thead>
|
|
86
|
+
`+r+`</table>
|
|
87
|
+
`}tablerow({text:e}){return`<tr>
|
|
88
|
+
${e}</tr>
|
|
89
|
+
`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
|
|
90
|
+
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${er(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=tr(e);if(i===null)return r;e=i;let a=`<a href="`+e+`"`;return t&&(a+=` title="`+er(t)+`"`),a+=`>`+r+`</a>`,a}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=tr(e);if(i===null)return er(n);e=i;let a=`<img src="${e}" alt="${er(n)}"`;return t&&(a+=` title="${er(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:er(e.text)}},dr=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}checkbox({raw:e}){return e}},fr=class e{options;renderer;textRenderer;constructor(e){this.options=e||Ht,this.options.renderer=this.options.renderer||new ur,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new dr}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){this.renderer.parser=this;let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let e=r,n=this.options.extensions.renderers[e.type].call({parser:this},e);if(n!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`html`,`def`,`paragraph`,`text`].includes(e.type)){t+=n||``;continue}}let i=r;switch(i.type){case`space`:t+=this.renderer.space(i);break;case`hr`:t+=this.renderer.hr(i);break;case`heading`:t+=this.renderer.heading(i);break;case`code`:t+=this.renderer.code(i);break;case`table`:t+=this.renderer.table(i);break;case`blockquote`:t+=this.renderer.blockquote(i);break;case`list`:t+=this.renderer.list(i);break;case`checkbox`:t+=this.renderer.checkbox(i);break;case`html`:t+=this.renderer.html(i);break;case`def`:t+=this.renderer.def(i);break;case`paragraph`:t+=this.renderer.paragraph(i);break;case`text`:t+=this.renderer.text(i);break;default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`checkbox`:n+=t.checkbox(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},pr=class{options;block;constructor(e){this.options=e||Ht}static passThroughHooks=new Set([`preprocess`,`postprocess`,`processAllTokens`,`emStrongMask`]);static passThroughHooksRespectAsync=new Set([`preprocess`,`postprocess`,`processAllTokens`]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(){return this.block?lr.lex:lr.lexInline}provideParser(){return this.block?fr.parse:fr.parseInline}},mr=new class{defaults=Vt();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=fr;Renderer=ur;TextRenderer=dr;Lexer=lr;Tokenizer=cr;Hooks=pr;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new ur(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new cr(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new pr;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];t[r]=pr.passThroughHooks.has(n)?e=>{if(this.defaults.async&&pr.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await i.call(t,e);return a.call(t,n)})();let r=i.call(t,e);return a.call(t,r)}:(...e)=>{if(this.defaults.async)return(async()=>{let n=await i.apply(t,e);return n===!1&&(n=await a.apply(t,e)),n})();let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return lr.lex(e,t??this.defaults)}parser(e,t){return fr.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(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 t>`u`||t===null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let n=i.hooks?await i.hooks.preprocess(t):t,r=await(i.hooks?await i.hooks.provideLexer():e?lr.lex:lr.lexInline)(n,i),a=i.hooks?await i.hooks.processAllTokens(r):r;i.walkTokens&&await Promise.all(this.walkTokens(a,i.walkTokens));let o=await(i.hooks?await i.hooks.provideParser():e?fr.parse:fr.parseInline)(a,i);return i.hooks?await i.hooks.postprocess(o):o})().catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let n=(i.hooks?i.hooks.provideLexer():e?lr.lex:lr.lexInline)(t,i);i.hooks&&(n=i.hooks.processAllTokens(n)),i.walkTokens&&this.walkTokens(n,i.walkTokens);let r=(i.hooks?i.hooks.provideParser():e?fr.parse:fr.parseInline)(n,i);return i.hooks&&(r=i.hooks.postprocess(r)),r}catch(e){return a(e)}}}onError(e,t){return n=>{if(n.message+=`
|
|
91
|
+
Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+er(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function X(e,t){return mr.parse(e,t)}X.options=X.setOptions=function(e){return mr.setOptions(e),X.defaults=mr.defaults,Ut(X.defaults),X},X.getDefaults=Vt,X.defaults=Ht,X.use=function(...e){return mr.use(...e),X.defaults=mr.defaults,Ut(X.defaults),X},X.walkTokens=function(e,t){return mr.walkTokens(e,t)},X.parseInline=mr.parseInline,X.Parser=fr,X.parser=fr.parse,X.Renderer=ur,X.TextRenderer=dr,X.Lexer=lr,X.lexer=lr.lex,X.Tokenizer=cr,X.Hooks=pr,X.parse=X,X.options,X.setOptions,X.use,X.walkTokens,X.parseInline,fr.parse,lr.lex;function hr(...e){return e.filter(Boolean).join(` `)}function gr(e,t){return e?t?{...e,...t}:e:t}function _r({animation:e,index:t,as:n,asChild:r,className:i,style:a,children:o}){let s=hr(`fragment`,e,i);if(r){let e;try{e=F.Children.only(o)}catch{throw Error(`Fragment with asChild expects exactly one React element child.`)}if(!(0,F.isValidElement)(e)||e.type===F.Fragment)throw Error(`Fragment with asChild expects exactly one non-Fragment React element child.`);let n={className:hr(e.props.className,s),style:gr(e.props.style,a)};return t!==void 0&&(n[`data-fragment-index`]=t),(0,F.cloneElement)(e,n)}return(0,q.jsx)(n??`span`,{className:s,style:a,"data-fragment-index":t,children:o})}var vr=8,yr=1;function br(e){let{scrollHeight:t,clientHeight:n,scrollTop:r}=e;return t>n+yr&&r<=vr}function xr(e){let t=e.querySelector(`.fragment:not(.visible)`);return t?t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop:e.scrollHeight}function Sr(e,t){let n=(0,I.c)(4),[r,i]=(0,F.useState)(!1),a,o;return n[0]!==t||n[1]!==e?(a=()=>{let n=e.current,r=t.current;if(!n||!r)return;let a=0,o=()=>{cancelAnimationFrame(a),a=requestAnimationFrame(()=>{i(br({scrollHeight:xr(n),clientHeight:n.clientHeight,scrollTop:n.scrollTop}))})};o();let s=new ResizeObserver(o);s.observe(n),s.observe(r);let c=r.querySelector(`.fragment`)?new MutationObserver(o):null;return c?.observe(r,{subtree:!0,attributes:!0,attributeFilter:[`class`]}),n.addEventListener(`scroll`,o,{passive:!0}),()=>{cancelAnimationFrame(a),s.disconnect(),c?.disconnect(),n.removeEventListener(`scroll`,o)}},o=[e,t],n[0]=t,n[1]=e,n[2]=a,n[3]=o):(a=n[2],o=n[3]),(0,F.useEffect)(a,o),r}var Cr=e=>{let t=(0,I.c)(6),{className:n}=e,r;t[0]===n?r=t[1]:(r=b(`pointer-events-none absolute inset-x-0 bottom-0 z-10 flex flex-col items-center`,`animate-in fade-in-0 duration-200`,n),t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,q.jsx)(`div`,{className:`h-16 w-full bg-linear-to-t from-background via-background/80 to-transparent`}),t[2]=i):i=t[2];let a;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,q.jsxs)(`div`,{className:`absolute bottom-3 flex items-center gap-1 rounded-full border border-border/60 bg-background/90 px-2.5 py-1 text-xs text-muted-foreground shadow-sm backdrop-blur-sm`,children:[(0,q.jsx)(P,{className:`h-3.5 w-3.5`}),(0,q.jsx)(`span`,{children:`Scroll for more`})]}),t[3]=a):a=t[3];let o;return t[4]===r?o=t[5]:(o=(0,q.jsxs)(`div`,{className:r,"data-testid":`slide-scroll-hint`,"aria-hidden":!0,children:[i,a]}),t[4]=r,t[5]=o),o},wr=e=>{let t=(0,I.c)(10),{children:n,className:r}=e,i=(0,F.useRef)(null),a=(0,F.useRef)(null),o=Sr(i,a),s;t[0]===r?s=t[1]:(s=b(`relative h-full w-full`,r),t[0]=r,t[1]=s);let c;t[2]===n?c=t[3]:(c=(0,q.jsx)(`div`,{ref:i,className:`h-full w-full overflow-auto`,"data-testid":`slide-scroll-container`,children:(0,q.jsx)(`div`,{ref:a,className:`flex w-full min-h-full`,children:n})}),t[2]=n,t[3]=c);let l;t[4]===o?l=t[5]:(l=o&&(0,q.jsx)(Cr,{}),t[4]=o,t[5]=l);let u;return t[6]!==s||t[7]!==c||t[8]!==l?(u=(0,q.jsxs)(`div`,{className:s,children:[c,l]}),t[6]=s,t[7]=c,t[8]=l,t[9]=u):u=t[9],u};function Tr({cells:e,getType:t}){let n=[],r=null,i=null,a=()=>{let e={subslides:[]};return n.push(e),r=e,i=null,e},o=()=>{let e=r??a(),t={blocks:[]};return e.subslides.push(t),i=t,t},s=e=>{let t=i??o(),n={isFragment:e,cells:[]};return t.blocks.push(n),n};for(let n of e)switch(t(n)){case`skip`:break;case`slide`:a(),o(),s(!1).cells.push(n);break;case`sub-slide`:o(),s(!1).cells.push(n);break;case`fragment`:s(!0).cells.push(n)}return{stacks:n}}function Er({composition:e,cells:t,getId:n}){let r=new Map,i=new Map,a=new Map;for(let[e,r]of t.entries())a.set(n(r),e);return e.stacks.forEach((e,t)=>{e.subslides.forEach((e,o)=>{let s;for(let t of e.blocks){if(t.isFragment)break;let e=t.cells.at(-1);e&&(s=n(e))}if(s===void 0){let t=e.blocks[0]?.cells[0];t&&(s=n(t))}if(s!==void 0){let e=a.get(s);e!=null&&i.set(`${t},${o},-1`,e)}let c=-1;for(let s of e.blocks)if(s.isFragment){c++;for(let e of s.cells)r.set(n(e),{h:t,v:o,f:c});let e=s.cells.at(-1);if(e){let r=a.get(n(e));r!=null&&i.set(`${t},${o},${c}`,r)}}else for(let e of s.cells)r.set(n(e),{h:t,v:o,f:-1})})}),{cellToTarget:r,targetToCellIndex:i}}function Dr(e,t){let{h:n,v:r,f:i}=t;return e.get(`${n},${r},${i}`)??e.get(`${n},${r},-1`)}function Or({start:e,stop:t,step:n,cells:r,cellToTarget:i,getId:a}){for(let o=e;o!==t;o+=n){let e=i.get(a(r[o]));if(e)return e}}function kr({activeIndex:e,cells:t,cellToTarget:n,getId:r}){if(e==null)return;let i=t[e];return i?n.get(r(i))||(Or({start:e-1,stop:-1,step:-1,cells:t,cellToTarget:n,getId:r})??Or({start:e+1,stop:t.length,step:1,cells:t,cellToTarget:n,getId:r})):void 0}function Ar(e,t){let n={h:t.h,v:t.v,f:t.f>=0?t.f:-1};return e.h===n.h&&e.v===n.v&&e.f===n.f?null:n}var jr=({cell:e})=>{let[r]=d(),{theme:u}=ce(),p=de(e.id),m=t(_),h=a(),g=t(f),v=(0,F.useRef)(null),y=(0,F.useRef)(null),[x,S]=(0,F.useState)(),C=n(()=>{c({autoInstantiate:g,createNewCell:h.createNewCell})}),w=n(()=>void 0),T=r.display.cell_output,E=e.output!=null,D=i({executionTime:e.runElapsedTimeMs??e.lastExecutionTime,status:e.status,errored:e.errored,interrupted:e.interrupted,stopped:e.stopped}),O=o({edited:e.edited,interrupted:e.interrupted,staleInputs:e.staleInputs,disabled:e.config.disabled,status:e.status}),k=b(`marimo-cell`,`hover-actions-parent`,`interactive`,s({needsRun:O,errored:e.errored,stopped:e.stopped,disabled:e.config.disabled,status:e.status})),A=(0,q.jsx)(N,{cellId:e.id,status:e.status,output:e.output,stale:l(e,!1)}),j=(0,q.jsxs)(`div`,{className:`absolute top-1 right-2 z-10 flex items-center gap-1.5`,children:[(0,q.jsx)(ue,{editing:!0,status:e.status,disabled:e.config.disabled??!1,staleInputs:e.staleInputs,edited:e.edited,interrupted:e.interrupted,elapsedTime:e.runElapsedTimeMs??e.lastExecutionTime,runStartTimestamp:e.runStartTimestamp,lastRunStartTimestamp:e.lastRunStartTimestamp,uninstantiated:D}),(0,q.jsx)(ie,{code:e.code,editorView:v.current,currentLanguageAdapter:x,onAfterToggle:C,className:`flex items-center gap-1`}),(0,q.jsxs)(`div`,{className:`flex items-center shadow-none gap-1`,children:[(0,q.jsx)(se,{edited:e.edited,status:e.status,needsRun:O,connectionState:m.state,config:e.config,onClick:p}),(0,q.jsx)(oe,{status:e.status,connectionState:m.state})]})]}),ee=(0,q.jsxs)(`div`,{tabIndex:-1,className:k,...M(e.id,e.name),children:[(0,q.jsx)(ae,{theme:u,showPlaceholder:!1,id:e.id,code:e.code,config:e.config,status:e.status,serializedEditorState:e.serializedEditorState,runCell:p,setEditorView:e=>{v.current=e},userConfig:r,editorViewRef:v,editorViewParentRef:y,hasOutput:E,showHiddenCode:w,languageAdapter:x,setLanguageAdapter:S,showLanguageToggles:!1,inlineAiTooltip:!1,outputArea:T,tooltipParentSelector:`.reveal-viewport`}),j]});return(0,q.jsxs)(q.Fragment,{children:[T===`above`&&A,ee,T===`below`&&A]})},Mr=e=>{let t=(0,I.c)(22),{cell:n}=e,[r]=d(),i=r.display.cell_output,a;t[0]===n.code?a=t[1]:(a=he(n.code),t[0]=n.code,t[1]=a);let o=a,s=n.id,c=n.status,u=n.output,f;t[2]===n?f=t[3]:(f=l(n,!1),t[2]=n,t[3]=f);let p;t[4]!==n.id||t[5]!==n.output||t[6]!==n.status||t[7]!==f?(p=(0,q.jsx)(N,{cellId:s,status:c,output:u,stale:f}),t[4]=n.id,t[5]=n.output,t[6]=n.status,t[7]=f,t[8]=p):p=t[8];let m=p,h;t[9]!==n.id||t[10]!==n.name?(h=M(n.id,n.name),t[9]=n.id,t[10]=n.name,t[11]=h):h=t[11];let g;t[12]!==o.code||t[13]!==o.language?(g=(0,q.jsx)(y,{code:o.code,language:o.language,showHideCode:!1}),t[12]=o.code,t[13]=o.language,t[14]=g):g=t[14];let _;t[15]!==h||t[16]!==g?(_=(0,q.jsx)(`div`,{className:`marimo-cell`,...h,children:g}),t[15]=h,t[16]=g,t[17]=_):_=t[17];let v=_,b=i===`above`&&m,x=i===`below`&&m,S;return t[18]!==v||t[19]!==b||t[20]!==x?(S=(0,q.jsxs)(q.Fragment,{children:[b,v,x]}),t[18]=v,t[19]=b,t[20]=x,t[21]=S):S=t[21],S},Nr=300,Pr=e=>{let t=(0,I.c)(25),{layout:r,setLayout:i,cellId:a,className:o}=e,s=a?r.cells.get(a)?.speakerNotes??``:``,[c,l]=(0,F.useState)(s),u=(0,F.useRef)(!1),d;t[0]!==r||t[1]!==i?(d=(e,t)=>{u.current=!1;let n=r.cells.get(e);if((n?.speakerNotes??``)===t)return;let a=new Map(r.cells);a.set(e,{...n,speakerNotes:t}),i({...r,cells:a})},t[0]=r,t[1]=i,t[2]=d):d=t[2];let f=n(d),p=le(f,Nr),m=(0,F.useRef)(a),h,g;t[3]!==a||t[4]!==c||t[5]!==s||t[6]!==p?(h=()=>{if(m.current!==a){p.flush(),u.current=!1,l(s),m.current=a;return}!u.current&&s!==c&&l(s)},g=[a,s,c,p],t[3]=a,t[4]=c,t[5]=s,t[6]=p,t[7]=h,t[8]=g):(h=t[7],g=t[8]),(0,F.useEffect)(h,g);let _,v;t[9]===p?(_=t[10],v=t[11]):(_=()=>()=>{p.flush()},v=[p],t[9]=p,t[10]=_,t[11]=v),(0,F.useEffect)(_,v);let y;t[12]!==a||t[13]!==p?(y=e=>{l(e),a&&(u.current=!0,p(a,e))},t[12]=a,t[13]=p,t[14]=y):y=t[14];let x=y,S;t[15]===o?S=t[16]:(S=b(`h-full min-h-0 flex flex-col bg-muted/40 dark:bg-muted/20 border-t`,o),t[15]=o,t[16]=S);let C;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,q.jsxs)(`header`,{className:`flex items-center gap-1.5 px-3 h-8 shrink-0 text-xs font-medium uppercase tracking-wide text-muted-foreground`,children:[(0,q.jsx)(ge,{className:`h-3.5 w-3.5`}),(0,q.jsx)(`span`,{children:`Speaker notes`})]}),t[17]=C):C=t[17];let w;t[18]!==a||t[19]!==c||t[20]!==x?(w=(0,q.jsx)(`div`,{className:`flex-1 min-h-0 p-2`,children:a?(0,q.jsx)(`textarea`,{value:c,onChange:e=>x(e.target.value),onClick:T.stopPropagation(),placeholder:`Add notes for this slide. Visible to you in speaker view (press S during presentation).`,className:b(`h-full w-full resize-none rounded-sm border border-input/25 bg-background`,`px-3 py-2 text-sm leading-relaxed text-foreground placeholder:text-muted-foreground`,`ring-offset-background focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-accent`),"aria-label":`Speaker notes for the current slide`}):(0,q.jsx)(`div`,{className:`h-full flex items-center justify-center text-xs text-muted-foreground`,children:`Select a slide to add notes.`})}),t[18]=a,t[19]=c,t[20]=x,t[21]=w):w=t[21];let E;return t[22]!==S||t[23]!==w?(E=(0,q.jsxs)(`section`,{className:S,"aria-label":`Speaker notes`,onKeyDown:Fr,children:[C,w]}),t[22]=S,t[23]=w,t[24]=E):E=t[24],E};function Fr(e){return e.stopPropagation()}var Ir=`
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
`,Lr=(e,t)=>e.map(e=>t.get(e.id)?.speakerNotes??``).filter(e=>e.trim().length>0).join(`
|
|
96
|
+
|
|
97
|
+
`),Rr=(e,t)=>{let n=e.blocks.map(e=>Lr(e.cells,t)),r=e.blocks.map((e,t)=>e.isFragment?``:n[t]).filter(e=>e.length>0).join(`
|
|
98
|
+
|
|
99
|
+
`),i=new Map,a=[];return e.blocks.forEach((e,t)=>{if(!e.isFragment)return;let o=n[t];o.length>0&&a.push(o);let s=[r,...a].filter(e=>e.length>0).join(Ir);s.length>0&&i.set(t,s)}),{slideLevel:r,cumulativeByBlock:i}},zr=`<!--
|
|
100
|
+
NOTE: You need to build the notes plugin after making changes to this file.
|
|
101
|
+
-->
|
|
102
|
+
<html lang="en">
|
|
103
|
+
<head>
|
|
104
|
+
<meta charset="utf-8">
|
|
105
|
+
|
|
106
|
+
<title>reveal.js - Speaker View</title>
|
|
107
|
+
|
|
108
|
+
<style>
|
|
109
|
+
body {
|
|
110
|
+
font-family: Helvetica;
|
|
111
|
+
font-size: 18px;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
#current-slide,
|
|
115
|
+
#upcoming-slide,
|
|
116
|
+
#speaker-controls {
|
|
117
|
+
padding: 6px;
|
|
118
|
+
box-sizing: border-box;
|
|
119
|
+
-moz-box-sizing: border-box;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
#current-slide iframe,
|
|
123
|
+
#upcoming-slide iframe {
|
|
124
|
+
width: 100%;
|
|
125
|
+
height: 100%;
|
|
126
|
+
border: 1px solid #ddd;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
#current-slide .label,
|
|
130
|
+
#upcoming-slide .label {
|
|
131
|
+
position: absolute;
|
|
132
|
+
top: 10px;
|
|
133
|
+
left: 10px;
|
|
134
|
+
z-index: 2;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
#connection-status {
|
|
138
|
+
position: absolute;
|
|
139
|
+
top: 0;
|
|
140
|
+
left: 0;
|
|
141
|
+
width: 100%;
|
|
142
|
+
height: 100%;
|
|
143
|
+
z-index: 20;
|
|
144
|
+
padding: 30% 20% 20% 20%;
|
|
145
|
+
font-size: 18px;
|
|
146
|
+
color: #222;
|
|
147
|
+
background: #fff;
|
|
148
|
+
text-align: center;
|
|
149
|
+
box-sizing: border-box;
|
|
150
|
+
line-height: 1.4;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.overlay-element {
|
|
154
|
+
height: 34px;
|
|
155
|
+
line-height: 34px;
|
|
156
|
+
padding: 0 10px;
|
|
157
|
+
text-shadow: none;
|
|
158
|
+
background: rgba( 220, 220, 220, 0.8 );
|
|
159
|
+
color: #222;
|
|
160
|
+
font-size: 14px;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.overlay-element.interactive:hover {
|
|
164
|
+
background: rgba( 220, 220, 220, 1 );
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
#current-slide {
|
|
168
|
+
position: absolute;
|
|
169
|
+
width: 60%;
|
|
170
|
+
height: 100%;
|
|
171
|
+
top: 0;
|
|
172
|
+
left: 0;
|
|
173
|
+
padding-right: 0;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
#upcoming-slide {
|
|
177
|
+
position: absolute;
|
|
178
|
+
width: 40%;
|
|
179
|
+
height: 40%;
|
|
180
|
+
right: 0;
|
|
181
|
+
top: 0;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/* Speaker controls */
|
|
185
|
+
#speaker-controls {
|
|
186
|
+
position: absolute;
|
|
187
|
+
top: 40%;
|
|
188
|
+
right: 0;
|
|
189
|
+
width: 40%;
|
|
190
|
+
height: 60%;
|
|
191
|
+
overflow: auto;
|
|
192
|
+
font-size: 18px;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.speaker-controls-time.hidden,
|
|
196
|
+
.speaker-controls-notes.hidden {
|
|
197
|
+
display: none;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.speaker-controls-time .label,
|
|
201
|
+
.speaker-controls-pace .label,
|
|
202
|
+
.speaker-controls-notes .label {
|
|
203
|
+
text-transform: uppercase;
|
|
204
|
+
font-weight: normal;
|
|
205
|
+
font-size: 0.66em;
|
|
206
|
+
color: #666;
|
|
207
|
+
margin: 0;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.speaker-controls-time, .speaker-controls-pace {
|
|
211
|
+
border-bottom: 1px solid rgba( 200, 200, 200, 0.5 );
|
|
212
|
+
margin-bottom: 10px;
|
|
213
|
+
padding: 10px 16px;
|
|
214
|
+
padding-bottom: 20px;
|
|
215
|
+
cursor: pointer;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.speaker-controls-time .reset-button {
|
|
219
|
+
opacity: 0;
|
|
220
|
+
float: right;
|
|
221
|
+
color: #666;
|
|
222
|
+
text-decoration: none;
|
|
223
|
+
}
|
|
224
|
+
.speaker-controls-time:hover .reset-button {
|
|
225
|
+
opacity: 1;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
.speaker-controls-time .timer,
|
|
229
|
+
.speaker-controls-time .clock {
|
|
230
|
+
width: 50%;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.speaker-controls-time .timer,
|
|
234
|
+
.speaker-controls-time .clock,
|
|
235
|
+
.speaker-controls-time .pacing .hours-value,
|
|
236
|
+
.speaker-controls-time .pacing .minutes-value,
|
|
237
|
+
.speaker-controls-time .pacing .seconds-value {
|
|
238
|
+
font-size: 1.9em;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.speaker-controls-time .timer {
|
|
242
|
+
float: left;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.speaker-controls-time .clock {
|
|
246
|
+
float: right;
|
|
247
|
+
text-align: right;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.speaker-controls-time span.mute {
|
|
251
|
+
opacity: 0.3;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.speaker-controls-time .pacing-title {
|
|
255
|
+
margin-top: 5px;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.speaker-controls-time .pacing.ahead {
|
|
259
|
+
color: blue;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.speaker-controls-time .pacing.on-track {
|
|
263
|
+
color: green;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.speaker-controls-time .pacing.behind {
|
|
267
|
+
color: red;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
.speaker-controls-notes {
|
|
271
|
+
padding: 10px 16px;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.speaker-controls-notes .value {
|
|
275
|
+
margin-top: 5px;
|
|
276
|
+
line-height: 1.4;
|
|
277
|
+
font-size: 1.2em;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/* Layout selector\xA0*/
|
|
281
|
+
#speaker-layout {
|
|
282
|
+
position: absolute;
|
|
283
|
+
top: 10px;
|
|
284
|
+
right: 10px;
|
|
285
|
+
color: #222;
|
|
286
|
+
z-index: 10;
|
|
287
|
+
}
|
|
288
|
+
#speaker-layout select {
|
|
289
|
+
position: absolute;
|
|
290
|
+
width: 100%;
|
|
291
|
+
height: 100%;
|
|
292
|
+
top: 0;
|
|
293
|
+
left: 0;
|
|
294
|
+
border: 0;
|
|
295
|
+
box-shadow: 0;
|
|
296
|
+
cursor: pointer;
|
|
297
|
+
opacity: 0;
|
|
298
|
+
|
|
299
|
+
font-size: 1em;
|
|
300
|
+
background-color: transparent;
|
|
301
|
+
|
|
302
|
+
-moz-appearance: none;
|
|
303
|
+
-webkit-appearance: none;
|
|
304
|
+
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
#speaker-layout select:focus {
|
|
308
|
+
outline: none;
|
|
309
|
+
box-shadow: none;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
.clear {
|
|
313
|
+
clear: both;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/* Speaker layout: Wide */
|
|
317
|
+
body[data-speaker-layout="wide"] #current-slide,
|
|
318
|
+
body[data-speaker-layout="wide"] #upcoming-slide {
|
|
319
|
+
width: 50%;
|
|
320
|
+
height: 45%;
|
|
321
|
+
padding: 6px;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
body[data-speaker-layout="wide"] #current-slide {
|
|
325
|
+
top: 0;
|
|
326
|
+
left: 0;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
body[data-speaker-layout="wide"] #upcoming-slide {
|
|
330
|
+
top: 0;
|
|
331
|
+
left: 50%;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
body[data-speaker-layout="wide"] #speaker-controls {
|
|
335
|
+
top: 45%;
|
|
336
|
+
left: 0;
|
|
337
|
+
width: 100%;
|
|
338
|
+
height: 50%;
|
|
339
|
+
font-size: 1.25em;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/* Speaker layout: Tall */
|
|
343
|
+
body[data-speaker-layout="tall"] #current-slide,
|
|
344
|
+
body[data-speaker-layout="tall"] #upcoming-slide {
|
|
345
|
+
width: 45%;
|
|
346
|
+
height: 50%;
|
|
347
|
+
padding: 6px;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
body[data-speaker-layout="tall"] #current-slide {
|
|
351
|
+
top: 0;
|
|
352
|
+
left: 0;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
body[data-speaker-layout="tall"] #upcoming-slide {
|
|
356
|
+
top: 50%;
|
|
357
|
+
left: 0;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
body[data-speaker-layout="tall"] #speaker-controls {
|
|
361
|
+
padding-top: 40px;
|
|
362
|
+
top: 0;
|
|
363
|
+
left: 45%;
|
|
364
|
+
width: 55%;
|
|
365
|
+
height: 100%;
|
|
366
|
+
font-size: 1.25em;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
/* Speaker layout: Notes only */
|
|
370
|
+
body[data-speaker-layout="notes-only"] #current-slide,
|
|
371
|
+
body[data-speaker-layout="notes-only"] #upcoming-slide {
|
|
372
|
+
display: none;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
body[data-speaker-layout="notes-only"] #speaker-controls {
|
|
376
|
+
padding-top: 40px;
|
|
377
|
+
top: 0;
|
|
378
|
+
left: 0;
|
|
379
|
+
width: 100%;
|
|
380
|
+
height: 100%;
|
|
381
|
+
font-size: 1.25em;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
@media screen and (max-width: 1080px) {
|
|
385
|
+
body[data-speaker-layout="default"] #speaker-controls {
|
|
386
|
+
font-size: 16px;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
@media screen and (max-width: 900px) {
|
|
391
|
+
body[data-speaker-layout="default"] #speaker-controls {
|
|
392
|
+
font-size: 14px;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
@media screen and (max-width: 800px) {
|
|
397
|
+
body[data-speaker-layout="default"] #speaker-controls {
|
|
398
|
+
font-size: 12px;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
</style>
|
|
403
|
+
</head>
|
|
404
|
+
|
|
405
|
+
<body>
|
|
406
|
+
|
|
407
|
+
<div id="connection-status">Loading speaker view...</div>
|
|
408
|
+
|
|
409
|
+
<div id="current-slide"></div>
|
|
410
|
+
<div id="upcoming-slide"><span class="overlay-element label">Upcoming</span></div>
|
|
411
|
+
<div id="speaker-controls">
|
|
412
|
+
<div class="speaker-controls-time">
|
|
413
|
+
<h4 class="label">Time <span class="reset-button">Click to Reset</span></h4>
|
|
414
|
+
<div class="clock">
|
|
415
|
+
<span class="clock-value">0:00 AM</span>
|
|
416
|
+
</div>
|
|
417
|
+
<div class="timer">
|
|
418
|
+
<span class="hours-value">00</span><span class="minutes-value">:00</span><span class="seconds-value">:00</span>
|
|
419
|
+
</div>
|
|
420
|
+
<div class="clear"></div>
|
|
421
|
+
|
|
422
|
+
<h4 class="label pacing-title" style="display: none">Pacing – Time to finish current slide</h4>
|
|
423
|
+
<div class="pacing" style="display: none">
|
|
424
|
+
<span class="hours-value">00</span><span class="minutes-value">:00</span><span class="seconds-value">:00</span>
|
|
425
|
+
</div>
|
|
426
|
+
</div>
|
|
427
|
+
|
|
428
|
+
<div class="speaker-controls-notes hidden">
|
|
429
|
+
<h4 class="label">Notes</h4>
|
|
430
|
+
<div class="value"></div>
|
|
431
|
+
</div>
|
|
432
|
+
</div>
|
|
433
|
+
<div id="speaker-layout" class="overlay-element interactive">
|
|
434
|
+
<span class="speaker-layout-label"></span>
|
|
435
|
+
<select class="speaker-layout-dropdown"></select>
|
|
436
|
+
</div>
|
|
437
|
+
|
|
438
|
+
<script>
|
|
439
|
+
|
|
440
|
+
(function() {
|
|
441
|
+
|
|
442
|
+
var notes,
|
|
443
|
+
notesValue,
|
|
444
|
+
currentState,
|
|
445
|
+
currentSlide,
|
|
446
|
+
upcomingSlide,
|
|
447
|
+
layoutLabel,
|
|
448
|
+
layoutDropdown,
|
|
449
|
+
pendingCalls = {},
|
|
450
|
+
lastRevealApiCallId = 0,
|
|
451
|
+
connected = false
|
|
452
|
+
|
|
453
|
+
var connectionStatus = document.querySelector( '#connection-status' );
|
|
454
|
+
|
|
455
|
+
var SPEAKER_LAYOUTS = {
|
|
456
|
+
'default': 'Default',
|
|
457
|
+
'wide': 'Wide',
|
|
458
|
+
'tall': 'Tall',
|
|
459
|
+
'notes-only': 'Notes only'
|
|
460
|
+
};
|
|
461
|
+
|
|
462
|
+
setupLayout();
|
|
463
|
+
|
|
464
|
+
let openerOrigin;
|
|
465
|
+
|
|
466
|
+
try {
|
|
467
|
+
openerOrigin = window.opener.location.origin;
|
|
468
|
+
}
|
|
469
|
+
catch ( error ) { console.warn( error ) }
|
|
470
|
+
|
|
471
|
+
// In order to prevent XSS, the speaker view will only run if its
|
|
472
|
+
// opener has the same origin as itself
|
|
473
|
+
if( window.location.origin !== openerOrigin ) {
|
|
474
|
+
connectionStatus.innerHTML = 'Cross origin error.<br>The speaker window can only be opened from the same origin.';
|
|
475
|
+
return;
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
var connectionTimeout = setTimeout( function() {
|
|
479
|
+
connectionStatus.innerHTML = 'Error connecting to main window.<br>Please try closing and reopening the speaker view.';
|
|
480
|
+
}, 5000 );
|
|
481
|
+
|
|
482
|
+
window.addEventListener( 'message', function( event ) {
|
|
483
|
+
|
|
484
|
+
// Validate the origin of all messages to avoid parsing messages
|
|
485
|
+
// that aren't meant for us. Ignore when running off file:// so
|
|
486
|
+
// that the speaker view continues to work without a web server.
|
|
487
|
+
if( window.location.origin !== event.origin && window.location.origin !== 'file://' ) {
|
|
488
|
+
return
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
clearTimeout( connectionTimeout );
|
|
492
|
+
connectionStatus.style.display = 'none';
|
|
493
|
+
|
|
494
|
+
var data = JSON.parse( event.data );
|
|
495
|
+
|
|
496
|
+
// The overview mode is only useful to the reveal.js instance
|
|
497
|
+
// where navigation occurs so we don't sync it
|
|
498
|
+
if( data.state ) delete data.state.overview;
|
|
499
|
+
|
|
500
|
+
// Messages sent by the notes plugin inside of the main window
|
|
501
|
+
if( data && data.namespace === 'reveal-notes' ) {
|
|
502
|
+
if( data.type === 'connect' ) {
|
|
503
|
+
handleConnectMessage( data );
|
|
504
|
+
}
|
|
505
|
+
else if( data.type === 'state' ) {
|
|
506
|
+
handleStateMessage( data );
|
|
507
|
+
}
|
|
508
|
+
else if( data.type === 'return' ) {
|
|
509
|
+
pendingCalls[data.callId](data.result);
|
|
510
|
+
delete pendingCalls[data.callId];
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
// Messages sent by the reveal.js inside of the current slide preview
|
|
514
|
+
else if( data && data.namespace === 'reveal' ) {
|
|
515
|
+
const supportedEvents = [
|
|
516
|
+
'slidechanged',
|
|
517
|
+
'fragmentshown',
|
|
518
|
+
'fragmenthidden',
|
|
519
|
+
'paused',
|
|
520
|
+
'resumed',
|
|
521
|
+
'previewiframe',
|
|
522
|
+
'previewimage',
|
|
523
|
+
'previewvideo',
|
|
524
|
+
'closeoverlay'
|
|
525
|
+
];
|
|
526
|
+
|
|
527
|
+
if( /ready/.test( data.eventName ) ) {
|
|
528
|
+
// Send a message back to notify that the handshake is complete
|
|
529
|
+
window.opener.postMessage( JSON.stringify({ namespace: 'reveal-notes', type: 'connected'} ), '*' );
|
|
530
|
+
}
|
|
531
|
+
else if( supportedEvents.includes( data.eventName ) && currentState !== JSON.stringify( data.state ) ) {
|
|
532
|
+
dispatchStateToMainWindow( data.state );
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
} );
|
|
537
|
+
|
|
538
|
+
/**
|
|
539
|
+
* Updates the presentation in the main window to match the state
|
|
540
|
+
* of the presentation in the notes window.
|
|
541
|
+
*/
|
|
542
|
+
const dispatchStateToMainWindow = debounce(( state ) => {
|
|
543
|
+
window.opener.postMessage( JSON.stringify({ method: 'setState', args: [ state ]} ), '*' );
|
|
544
|
+
}, 500);
|
|
545
|
+
|
|
546
|
+
/**
|
|
547
|
+
* Asynchronously calls the Reveal.js API of the main frame.
|
|
548
|
+
*/
|
|
549
|
+
function callRevealApi( methodName, methodArguments, callback ) {
|
|
550
|
+
|
|
551
|
+
var callId = ++lastRevealApiCallId;
|
|
552
|
+
pendingCalls[callId] = callback;
|
|
553
|
+
window.opener.postMessage( JSON.stringify( {
|
|
554
|
+
namespace: 'reveal-notes',
|
|
555
|
+
type: 'call',
|
|
556
|
+
callId: callId,
|
|
557
|
+
methodName: methodName,
|
|
558
|
+
arguments: methodArguments
|
|
559
|
+
} ), '*' );
|
|
560
|
+
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
/**
|
|
564
|
+
* Called when the main window is trying to establish a
|
|
565
|
+
* connection.
|
|
566
|
+
*/
|
|
567
|
+
function handleConnectMessage( data ) {
|
|
568
|
+
|
|
569
|
+
if( connected === false ) {
|
|
570
|
+
connected = true;
|
|
571
|
+
|
|
572
|
+
setupIframes( data );
|
|
573
|
+
setupKeyboard();
|
|
574
|
+
setupNotes();
|
|
575
|
+
setupTimer();
|
|
576
|
+
setupHeartbeat();
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
/**
|
|
582
|
+
* Called when the main window sends an updated state.
|
|
583
|
+
*/
|
|
584
|
+
function handleStateMessage( data ) {
|
|
585
|
+
|
|
586
|
+
// Store the most recently set state to avoid circular loops
|
|
587
|
+
// applying the same state
|
|
588
|
+
currentState = JSON.stringify( data.state );
|
|
589
|
+
|
|
590
|
+
// No need for updating the notes in case of fragment changes
|
|
591
|
+
if ( data.notes ) {
|
|
592
|
+
notes.classList.remove( 'hidden' );
|
|
593
|
+
notesValue.style.whiteSpace = data.whitespace;
|
|
594
|
+
if( data.markdown ) {
|
|
595
|
+
notesValue.innerHTML = marked.parse( data.notes );
|
|
596
|
+
}
|
|
597
|
+
else {
|
|
598
|
+
notesValue.innerHTML = data.notes;
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
else {
|
|
602
|
+
notes.classList.add( 'hidden' );
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
// Don't show lightboxes in the upcoming slide
|
|
606
|
+
const { previewVideo, previewImage, previewIframe, ...upcomingState } = data.state;
|
|
607
|
+
|
|
608
|
+
// Update the note slides
|
|
609
|
+
currentSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );
|
|
610
|
+
upcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ upcomingState ] }), '*' );
|
|
611
|
+
upcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'next' }), '*' );
|
|
612
|
+
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
// Limit to max one state update per X ms
|
|
616
|
+
handleStateMessage = debounce( handleStateMessage, 200 );
|
|
617
|
+
|
|
618
|
+
/**
|
|
619
|
+
* Forward keyboard events to the current slide window.
|
|
620
|
+
* This enables keyboard events to work even if focus
|
|
621
|
+
* isn't set on the current slide iframe.
|
|
622
|
+
*
|
|
623
|
+
* Block F5 default handling, it reloads and disconnects
|
|
624
|
+
* the speaker notes window.
|
|
625
|
+
*/
|
|
626
|
+
function setupKeyboard() {
|
|
627
|
+
|
|
628
|
+
document.addEventListener( 'keydown', function( event ) {
|
|
629
|
+
if( event.keyCode === 116 || ( event.metaKey && event.keyCode === 82 ) ) {
|
|
630
|
+
event.preventDefault();
|
|
631
|
+
return false;
|
|
632
|
+
}
|
|
633
|
+
currentSlide.contentWindow.postMessage( JSON.stringify({ method: 'triggerKey', args: [ event.keyCode ] }), '*' );
|
|
634
|
+
} );
|
|
635
|
+
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
/**
|
|
639
|
+
* Creates the preview iframes.
|
|
640
|
+
*/
|
|
641
|
+
function setupIframes( data ) {
|
|
642
|
+
|
|
643
|
+
var params = [
|
|
644
|
+
'receiver',
|
|
645
|
+
'progress=false',
|
|
646
|
+
'history=false',
|
|
647
|
+
'transition=none',
|
|
648
|
+
'autoSlide=0',
|
|
649
|
+
'backgroundTransition=none'
|
|
650
|
+
].join( '&' );
|
|
651
|
+
|
|
652
|
+
var urlSeparator = /\\?/.test(data.url) ? '&' : '?';
|
|
653
|
+
var hash = '#/' + data.state.indexh + '/' + data.state.indexv;
|
|
654
|
+
var currentURL = data.url + urlSeparator + params + '&scrollActivationWidth=false&postMessageEvents=true' + hash;
|
|
655
|
+
var upcomingURL = data.url + urlSeparator + params + '&scrollActivationWidth=false&controls=false' + hash;
|
|
656
|
+
|
|
657
|
+
currentSlide = document.createElement( 'iframe' );
|
|
658
|
+
currentSlide.setAttribute( 'width', 1280 );
|
|
659
|
+
currentSlide.setAttribute( 'height', 1024 );
|
|
660
|
+
currentSlide.setAttribute( 'src', currentURL );
|
|
661
|
+
document.querySelector( '#current-slide' ).appendChild( currentSlide );
|
|
662
|
+
|
|
663
|
+
upcomingSlide = document.createElement( 'iframe' );
|
|
664
|
+
upcomingSlide.setAttribute( 'width', 640 );
|
|
665
|
+
upcomingSlide.setAttribute( 'height', 512 );
|
|
666
|
+
upcomingSlide.setAttribute( 'src', upcomingURL );
|
|
667
|
+
document.querySelector( '#upcoming-slide' ).appendChild( upcomingSlide );
|
|
668
|
+
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
/**
|
|
672
|
+
* Setup the notes UI.
|
|
673
|
+
*/
|
|
674
|
+
function setupNotes() {
|
|
675
|
+
|
|
676
|
+
notes = document.querySelector( '.speaker-controls-notes' );
|
|
677
|
+
notesValue = document.querySelector( '.speaker-controls-notes .value' );
|
|
678
|
+
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
/**
|
|
682
|
+
* We send out a heartbeat at all times to ensure we can
|
|
683
|
+
* reconnect with the main presentation window after reloads.
|
|
684
|
+
*/
|
|
685
|
+
function setupHeartbeat() {
|
|
686
|
+
|
|
687
|
+
setInterval( () => {
|
|
688
|
+
window.opener.postMessage( JSON.stringify({ namespace: 'reveal-notes', type: 'heartbeat'} ), '*' );
|
|
689
|
+
}, 1000 );
|
|
690
|
+
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
function getTimings( callback ) {
|
|
694
|
+
|
|
695
|
+
callRevealApi( 'getSlidesAttributes', [], function ( slideAttributes ) {
|
|
696
|
+
callRevealApi( 'getConfig', [], function ( config ) {
|
|
697
|
+
var totalTime = config.totalTime;
|
|
698
|
+
var minTimePerSlide = config.minimumTimePerSlide || 0;
|
|
699
|
+
var defaultTiming = config.defaultTiming;
|
|
700
|
+
if ((defaultTiming == null) && (totalTime == null)) {
|
|
701
|
+
callback(null);
|
|
702
|
+
return;
|
|
703
|
+
}
|
|
704
|
+
// Setting totalTime overrides defaultTiming
|
|
705
|
+
if (totalTime) {
|
|
706
|
+
defaultTiming = 0;
|
|
707
|
+
}
|
|
708
|
+
var timings = [];
|
|
709
|
+
for ( var i in slideAttributes ) {
|
|
710
|
+
var slide = slideAttributes[ i ];
|
|
711
|
+
var timing = defaultTiming;
|
|
712
|
+
if( slide.hasOwnProperty( 'data-timing' )) {
|
|
713
|
+
var t = slide[ 'data-timing' ];
|
|
714
|
+
timing = parseInt(t);
|
|
715
|
+
if( isNaN(timing) ) {
|
|
716
|
+
console.warn("Could not parse timing '" + t + "' of slide " + i + "; using default of " + defaultTiming);
|
|
717
|
+
timing = defaultTiming;
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
timings.push(timing);
|
|
721
|
+
}
|
|
722
|
+
if ( totalTime ) {
|
|
723
|
+
// After we've allocated time to individual slides, we summarize it and
|
|
724
|
+
// subtract it from the total time
|
|
725
|
+
var remainingTime = totalTime - timings.reduce( function(a, b) { return a + b; }, 0 );
|
|
726
|
+
// The remaining time is divided by the number of slides that have 0 seconds
|
|
727
|
+
// allocated at the moment, giving the average time-per-slide on the remaining slides
|
|
728
|
+
var remainingSlides = (timings.filter( function(x) { return x == 0 }) ).length
|
|
729
|
+
var timePerSlide = Math.round( remainingTime / remainingSlides, 0 )
|
|
730
|
+
// And now we replace every zero-value timing with that average
|
|
731
|
+
timings = timings.map( function(x) { return (x==0 ? timePerSlide : x) } );
|
|
732
|
+
}
|
|
733
|
+
var slidesUnderMinimum = timings.filter( function(x) { return (x < minTimePerSlide) } ).length
|
|
734
|
+
if ( slidesUnderMinimum ) {
|
|
735
|
+
message = "The pacing time for " + slidesUnderMinimum + " slide(s) is under the configured minimum of " + minTimePerSlide + " seconds. Check the data-timing attribute on individual slides, or consider increasing the totalTime or minimumTimePerSlide configuration options (or removing some slides).";
|
|
736
|
+
alert(message);
|
|
737
|
+
}
|
|
738
|
+
callback( timings );
|
|
739
|
+
} );
|
|
740
|
+
} );
|
|
741
|
+
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
/**
|
|
745
|
+
* Return the number of seconds allocated for presenting
|
|
746
|
+
* all slides up to and including this one.
|
|
747
|
+
*/
|
|
748
|
+
function getTimeAllocated( timings, callback ) {
|
|
749
|
+
|
|
750
|
+
callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {
|
|
751
|
+
var allocated = 0;
|
|
752
|
+
for (var i in timings.slice(0, currentSlide + 1)) {
|
|
753
|
+
allocated += timings[i];
|
|
754
|
+
}
|
|
755
|
+
callback( allocated );
|
|
756
|
+
} );
|
|
757
|
+
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
/**
|
|
761
|
+
* Create the timer and clock and start updating them
|
|
762
|
+
* at an interval.
|
|
763
|
+
*/
|
|
764
|
+
function setupTimer() {
|
|
765
|
+
|
|
766
|
+
var start = new Date(),
|
|
767
|
+
timeEl = document.querySelector( '.speaker-controls-time' ),
|
|
768
|
+
clockEl = timeEl.querySelector( '.clock-value' ),
|
|
769
|
+
hoursEl = timeEl.querySelector( '.hours-value' ),
|
|
770
|
+
minutesEl = timeEl.querySelector( '.minutes-value' ),
|
|
771
|
+
secondsEl = timeEl.querySelector( '.seconds-value' ),
|
|
772
|
+
pacingTitleEl = timeEl.querySelector( '.pacing-title' ),
|
|
773
|
+
pacingEl = timeEl.querySelector( '.pacing' ),
|
|
774
|
+
pacingHoursEl = pacingEl.querySelector( '.hours-value' ),
|
|
775
|
+
pacingMinutesEl = pacingEl.querySelector( '.minutes-value' ),
|
|
776
|
+
pacingSecondsEl = pacingEl.querySelector( '.seconds-value' );
|
|
777
|
+
|
|
778
|
+
var timings = null;
|
|
779
|
+
getTimings( function ( _timings ) {
|
|
780
|
+
|
|
781
|
+
timings = _timings;
|
|
782
|
+
if (_timings !== null) {
|
|
783
|
+
pacingTitleEl.style.removeProperty('display');
|
|
784
|
+
pacingEl.style.removeProperty('display');
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
// Update once directly
|
|
788
|
+
_updateTimer();
|
|
789
|
+
|
|
790
|
+
// Then update every second
|
|
791
|
+
setInterval( _updateTimer, 1000 );
|
|
792
|
+
|
|
793
|
+
} );
|
|
794
|
+
|
|
795
|
+
|
|
796
|
+
function _resetTimer() {
|
|
797
|
+
|
|
798
|
+
if (timings == null) {
|
|
799
|
+
start = new Date();
|
|
800
|
+
_updateTimer();
|
|
801
|
+
}
|
|
802
|
+
else {
|
|
803
|
+
// Reset timer to beginning of current slide
|
|
804
|
+
getTimeAllocated( timings, function ( slideEndTimingSeconds ) {
|
|
805
|
+
var slideEndTiming = slideEndTimingSeconds * 1000;
|
|
806
|
+
callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {
|
|
807
|
+
var currentSlideTiming = timings[currentSlide] * 1000;
|
|
808
|
+
var previousSlidesTiming = slideEndTiming - currentSlideTiming;
|
|
809
|
+
var now = new Date();
|
|
810
|
+
start = new Date(now.getTime() - previousSlidesTiming);
|
|
811
|
+
_updateTimer();
|
|
812
|
+
} );
|
|
813
|
+
} );
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
timeEl.addEventListener( 'click', function() {
|
|
819
|
+
_resetTimer();
|
|
820
|
+
return false;
|
|
821
|
+
} );
|
|
822
|
+
|
|
823
|
+
function _displayTime( hrEl, minEl, secEl, time) {
|
|
824
|
+
|
|
825
|
+
var sign = Math.sign(time) == -1 ? "-" : "";
|
|
826
|
+
time = Math.abs(Math.round(time / 1000));
|
|
827
|
+
var seconds = time % 60;
|
|
828
|
+
var minutes = Math.floor( time / 60 ) % 60 ;
|
|
829
|
+
var hours = Math.floor( time / ( 60 * 60 )) ;
|
|
830
|
+
hrEl.innerHTML = sign + zeroPadInteger( hours );
|
|
831
|
+
if (hours == 0) {
|
|
832
|
+
hrEl.classList.add( 'mute' );
|
|
833
|
+
}
|
|
834
|
+
else {
|
|
835
|
+
hrEl.classList.remove( 'mute' );
|
|
836
|
+
}
|
|
837
|
+
minEl.innerHTML = ':' + zeroPadInteger( minutes );
|
|
838
|
+
if (hours == 0 && minutes == 0) {
|
|
839
|
+
minEl.classList.add( 'mute' );
|
|
840
|
+
}
|
|
841
|
+
else {
|
|
842
|
+
minEl.classList.remove( 'mute' );
|
|
843
|
+
}
|
|
844
|
+
secEl.innerHTML = ':' + zeroPadInteger( seconds );
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
function _updateTimer() {
|
|
848
|
+
|
|
849
|
+
var diff, hours, minutes, seconds,
|
|
850
|
+
now = new Date();
|
|
851
|
+
|
|
852
|
+
diff = now.getTime() - start.getTime();
|
|
853
|
+
|
|
854
|
+
clockEl.innerHTML = now.toLocaleTimeString( 'en-US', { hour12: true, hour: '2-digit', minute:'2-digit' } );
|
|
855
|
+
_displayTime( hoursEl, minutesEl, secondsEl, diff );
|
|
856
|
+
if (timings !== null) {
|
|
857
|
+
_updatePacing(diff);
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
function _updatePacing(diff) {
|
|
863
|
+
|
|
864
|
+
getTimeAllocated( timings, function ( slideEndTimingSeconds ) {
|
|
865
|
+
var slideEndTiming = slideEndTimingSeconds * 1000;
|
|
866
|
+
|
|
867
|
+
callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {
|
|
868
|
+
var currentSlideTiming = timings[currentSlide] * 1000;
|
|
869
|
+
var timeLeftCurrentSlide = slideEndTiming - diff;
|
|
870
|
+
if (timeLeftCurrentSlide < 0) {
|
|
871
|
+
pacingEl.className = 'pacing behind';
|
|
872
|
+
}
|
|
873
|
+
else if (timeLeftCurrentSlide < currentSlideTiming) {
|
|
874
|
+
pacingEl.className = 'pacing on-track';
|
|
875
|
+
}
|
|
876
|
+
else {
|
|
877
|
+
pacingEl.className = 'pacing ahead';
|
|
878
|
+
}
|
|
879
|
+
_displayTime( pacingHoursEl, pacingMinutesEl, pacingSecondsEl, timeLeftCurrentSlide );
|
|
880
|
+
} );
|
|
881
|
+
} );
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
/**
|
|
887
|
+
* Sets up the speaker view layout and layout selector.
|
|
888
|
+
*/
|
|
889
|
+
function setupLayout() {
|
|
890
|
+
|
|
891
|
+
layoutDropdown = document.querySelector( '.speaker-layout-dropdown' );
|
|
892
|
+
layoutLabel = document.querySelector( '.speaker-layout-label' );
|
|
893
|
+
|
|
894
|
+
// Render the list of available layouts
|
|
895
|
+
for( var id in SPEAKER_LAYOUTS ) {
|
|
896
|
+
var option = document.createElement( 'option' );
|
|
897
|
+
option.setAttribute( 'value', id );
|
|
898
|
+
option.textContent = SPEAKER_LAYOUTS[ id ];
|
|
899
|
+
layoutDropdown.appendChild( option );
|
|
900
|
+
}
|
|
901
|
+
|
|
902
|
+
// Monitor the dropdown for changes
|
|
903
|
+
layoutDropdown.addEventListener( 'change', function( event ) {
|
|
904
|
+
|
|
905
|
+
setLayout( layoutDropdown.value );
|
|
906
|
+
|
|
907
|
+
}, false );
|
|
908
|
+
|
|
909
|
+
// Restore any currently persisted layout
|
|
910
|
+
setLayout( getLayout() );
|
|
911
|
+
|
|
912
|
+
}
|
|
913
|
+
|
|
914
|
+
/**
|
|
915
|
+
* Sets a new speaker view layout. The layout is persisted
|
|
916
|
+
* in local storage.
|
|
917
|
+
*/
|
|
918
|
+
function setLayout( value ) {
|
|
919
|
+
|
|
920
|
+
var title = SPEAKER_LAYOUTS[ value ];
|
|
921
|
+
|
|
922
|
+
layoutLabel.innerHTML = 'Layout' + ( title ? ( ': ' + title ) : '' );
|
|
923
|
+
layoutDropdown.value = value;
|
|
924
|
+
|
|
925
|
+
document.body.setAttribute( 'data-speaker-layout', value );
|
|
926
|
+
|
|
927
|
+
// Persist locally
|
|
928
|
+
if( supportsLocalStorage() ) {
|
|
929
|
+
window.localStorage.setItem( 'reveal-speaker-layout', value );
|
|
930
|
+
}
|
|
931
|
+
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
/**
|
|
935
|
+
* Returns the ID of the most recently set speaker layout
|
|
936
|
+
* or our default layout if none has been set.
|
|
937
|
+
*/
|
|
938
|
+
function getLayout() {
|
|
939
|
+
|
|
940
|
+
if( supportsLocalStorage() ) {
|
|
941
|
+
var layout = window.localStorage.getItem( 'reveal-speaker-layout' );
|
|
942
|
+
if( layout ) {
|
|
943
|
+
return layout;
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
// Default to the first record in the layouts hash
|
|
948
|
+
for( var id in SPEAKER_LAYOUTS ) {
|
|
949
|
+
return id;
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
function supportsLocalStorage() {
|
|
955
|
+
|
|
956
|
+
try {
|
|
957
|
+
localStorage.setItem('test', 'test');
|
|
958
|
+
localStorage.removeItem('test');
|
|
959
|
+
return true;
|
|
960
|
+
}
|
|
961
|
+
catch( e ) {
|
|
962
|
+
return false;
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
function zeroPadInteger( num ) {
|
|
968
|
+
|
|
969
|
+
var str = '00' + parseInt( num );
|
|
970
|
+
return str.substring( str.length - 2 );
|
|
971
|
+
|
|
972
|
+
}
|
|
973
|
+
|
|
974
|
+
/**
|
|
975
|
+
* Limits the frequency at which a function can be called.
|
|
976
|
+
*/
|
|
977
|
+
function debounce( fn, ms ) {
|
|
978
|
+
|
|
979
|
+
var lastTime = 0,
|
|
980
|
+
timeout;
|
|
981
|
+
|
|
982
|
+
return function() {
|
|
983
|
+
|
|
984
|
+
var args = arguments;
|
|
985
|
+
var context = this;
|
|
986
|
+
|
|
987
|
+
clearTimeout( timeout );
|
|
988
|
+
|
|
989
|
+
var timeSinceLastCall = Date.now() - lastTime;
|
|
990
|
+
if( timeSinceLastCall > ms ) {
|
|
991
|
+
fn.apply( context, args );
|
|
992
|
+
lastTime = Date.now();
|
|
993
|
+
}
|
|
994
|
+
else {
|
|
995
|
+
timeout = setTimeout( function() {
|
|
996
|
+
fn.apply( context, args );
|
|
997
|
+
lastTime = Date.now();
|
|
998
|
+
}, ms - timeSinceLastCall );
|
|
999
|
+
}
|
|
1000
|
+
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
})();
|
|
1006
|
+
|
|
1007
|
+
<\/script>
|
|
1008
|
+
</body>
|
|
1009
|
+
</html>`;function Br(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Vr=Br();function Hr(e){Vr=e}var Ur={exec:()=>null};function Z(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(Q.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var Wr=(()=>{try{return!0}catch{return!1}})(),Q={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,`i`),blockquoteBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}>`)},Gr=/^(?:[ \t]*(?:\n|$))+/,Kr=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,qr=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Jr=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Yr=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Xr=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Zr=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Qr=Z(Zr).replace(/bull/g,Xr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),$r=Z(Zr).replace(/bull/g,Xr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),ei=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,ti=/^[^\n]+/,ni=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,ri=Z(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,ni).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),ii=Z(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Xr).getRegex(),ai=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,oi=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,si=Z(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,oi).replace(`tag`,ai).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ci=Z(ei).replace(`hr`,Jr).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,ai).getRegex(),li={blockquote:Z(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,ci).getRegex(),code:Kr,def:ri,fences:qr,heading:Yr,hr:Jr,html:si,lheading:Qr,list:ii,newline:Gr,paragraph:ci,table:Ur,text:ti},ui=Z(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,Jr).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,ai).getRegex(),di={...li,lheading:$r,table:ui,paragraph:Z(ei).replace(`hr`,Jr).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,ui).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,ai).getRegex()},fi={...li,html:Z(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,oi).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Ur,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Z(ei).replace(`hr`,Jr).replace(`heading`,` *#{1,6} *[^
|
|
1010
|
+
]`).replace(`lheading`,Qr).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},pi=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,mi=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,hi=/^( {2,}|\\)\n(?!\s*$)/,gi=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,_i=/[\p{P}\p{S}]/u,vi=/[\s\p{P}\p{S}]/u,yi=/[^\s\p{P}\p{S}]/u,bi=Z(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,vi).getRegex(),xi=/(?!~)[\p{P}\p{S}]/u,Si=/(?!~)[\s\p{P}\p{S}]/u,Ci=/(?:[^\s\p{P}\p{S}]|~)/u,wi=/(?![*_])[\p{P}\p{S}]/u,Ti=/(?![*_])[\s\p{P}\p{S}]/u,Ei=/(?:[^\s\p{P}\p{S}]|[*_])/u,Di=Z(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,Wr?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),Oi=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,ki=Z(Oi,`u`).replace(/punct/g,_i).getRegex(),Ai=Z(Oi,`u`).replace(/punct/g,xi).getRegex(),ji=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,Mi=Z(ji,`gu`).replace(/notPunctSpace/g,yi).replace(/punctSpace/g,vi).replace(/punct/g,_i).getRegex(),Ni=Z(ji,`gu`).replace(/notPunctSpace/g,Ci).replace(/punctSpace/g,Si).replace(/punct/g,xi).getRegex(),Pi=Z(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,yi).replace(/punctSpace/g,vi).replace(/punct/g,_i).getRegex(),Fi=Z(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,wi).getRegex(),Ii=Z(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Ei).replace(/punctSpace/g,Ti).replace(/punct/g,wi).getRegex(),Li=Z(/\\(punct)/,`gu`).replace(/punct/g,_i).getRegex(),Ri=Z(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),zi=Z(oi).replace(`(?:-->|$)`,`-->`).getRegex(),Bi=Z(`^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,zi).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Vi=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,Hi=Z(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace(`label`,Vi).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Ui=Z(/^!?\[(label)\]\[(ref)\]/).replace(`label`,Vi).replace(`ref`,ni).getRegex(),Wi=Z(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,ni).getRegex(),Gi=Z(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,Ui).replace(`nolink`,Wi).getRegex(),Ki=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,qi={_backpedal:Ur,anyPunctuation:Li,autolink:Ri,blockSkip:Di,br:hi,code:mi,del:Ur,delLDelim:Ur,delRDelim:Ur,emStrongLDelim:ki,emStrongRDelimAst:Mi,emStrongRDelimUnd:Pi,escape:pi,link:Hi,nolink:Wi,punctuation:bi,reflink:Ui,reflinkSearch:Gi,tag:Bi,text:gi,url:Ur},Ji={...qi,link:Z(/^!?\[(label)\]\((.*?)\)/).replace(`label`,Vi).getRegex(),reflink:Z(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,Vi).getRegex()},Yi={...qi,emStrongRDelimAst:Ni,emStrongLDelim:Ai,delLDelim:Fi,delRDelim:Ii,url:Z(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`protocol`,Ki).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:Z(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace(`protocol`,Ki).getRegex()},Xi={...Yi,br:Z(hi).replace(`{2,}`,`*`).getRegex(),text:Z(Yi.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},Zi={normal:li,gfm:di,pedantic:fi},Qi={normal:qi,gfm:Yi,breaks:Xi,pedantic:Ji},$i={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},ea=e=>$i[e];function ta(e,t){if(t){if(Q.escapeTest.test(e))return e.replace(Q.escapeReplace,ea)}else if(Q.escapeTestNoEncode.test(e))return e.replace(Q.escapeReplaceNoEncode,ea);return e}function na(e){try{e=encodeURI(e).replace(Q.percentDecode,`%`)}catch{return null}return e}function ra(e,t){let n=e.replace(Q.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(Q.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t){if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``)}for(;r<n.length;r++)n[r]=n[r].trim().replace(Q.slashPipe,`|`);return n}function ia(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r&&e.charAt(r-i-1)===t;)i++;return e.slice(0,r-i)}function aa(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function oa(e,t=0){let n=t,r=``;for(let t of e)if(t===` `){let e=4-n%4;r+=` `.repeat(e),n+=e}else r+=t,n++;return r}function sa(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,`$1`);r.state.inLink=!0;let c={type:e[0].charAt(0)===`!`?`image`:`link`,raw:n,href:a,title:o,text:s,tokens:r.inlineTokens(s)};return r.state.inLink=!1,c}function ca(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
|
|
1011
|
+
`).map(e=>{let t=e.match(n.other.beginningSpace);if(t===null)return e;let[r]=t;return r.length>=i.length?e.slice(i.length):e}).join(`
|
|
1012
|
+
`)}var la=class{options;rules;lexer;constructor(e){this.options=e||Vr}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:`space`,raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=t[0].replace(this.rules.other.codeRemoveIndent,``);return{type:`code`,raw:t[0],codeBlockStyle:`indented`,text:this.options.pedantic?e:ia(e,`
|
|
1013
|
+
`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=ca(e,t[3]||``,this.rules);return{type:`code`,raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,`$1`):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=ia(e,`#`);(this.options.pedantic||!t||this.rules.other.endingSpaceChar.test(t))&&(e=t.trim())}return{type:`heading`,raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:`hr`,raw:ia(t[0],`
|
|
1014
|
+
`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=ia(t[0],`
|
|
1015
|
+
`).split(`
|
|
1016
|
+
`),n=``,r=``,i=[];for(;e.length>0;){let t=!1,a=[],o;for(o=0;o<e.length;o++)if(this.rules.other.blockquoteStart.test(e[o]))a.push(e[o]),t=!0;else if(!t)a.push(e[o]);else break;e=e.slice(o);let s=a.join(`
|
|
1017
|
+
`),c=s.replace(this.rules.other.blockquoteSetextReplace,`
|
|
1018
|
+
$1`).replace(this.rules.other.blockquoteSetextReplace2,``);n=n?`${n}
|
|
1019
|
+
${s}`:s,r=r?`${r}
|
|
1020
|
+
${c}`:c;let l=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,i,!0),this.lexer.state.top=l,e.length===0)break;let u=i.at(-1);if(u?.type===`code`)break;if(u?.type===`blockquote`){let t=u,a=t.raw+`
|
|
1021
|
+
`+e.join(`
|
|
1022
|
+
`),o=this.blockquote(a);i[i.length-1]=o,n=n.substring(0,n.length-t.raw.length)+o.raw,r=r.substring(0,r.length-t.text.length)+o.text;break}if(u?.type===`list`){let t=u,a=t.raw+`
|
|
1023
|
+
`+e.join(`
|
|
1024
|
+
`),o=this.list(a);i[i.length-1]=o,n=n.substring(0,n.length-u.raw.length)+o.raw,r=r.substring(0,r.length-t.raw.length)+o.raw,e=a.substring(i.at(-1).raw.length).split(`
|
|
1025
|
+
`);continue}}return{type:`blockquote`,raw:n,tokens:i,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:`list`,raw:``,ordered:r,start:r?+n.slice(0,-1):``,loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:`[*+-]`);let a=this.rules.other.listItemRegex(n),o=!1;for(;e;){let n=!1,r=``,s=``;if(!(t=a.exec(e))||this.rules.block.hr.test(e))break;r=t[0],e=e.substring(r.length);let c=oa(t[2].split(`
|
|
1026
|
+
`,1)[0],t[1].length),l=e.split(`
|
|
1027
|
+
`,1)[0],u=!c.trim(),d=0;if(this.options.pedantic?(d=2,s=c.trimStart()):u?d=t[1].length+1:(d=c.search(this.rules.other.nonSpaceChar),d=d>4?1:d,s=c.slice(d),d+=t[1].length),u&&this.rules.other.blankLine.test(l)&&(r+=l+`
|
|
1028
|
+
`,e=e.substring(l.length+1),n=!0),!n){let t=this.rules.other.nextBulletRegex(d),n=this.rules.other.hrRegex(d),i=this.rules.other.fencesBeginRegex(d),a=this.rules.other.headingBeginRegex(d),o=this.rules.other.htmlBeginRegex(d),f=this.rules.other.blockquoteBeginRegex(d);for(;e;){let p=e.split(`
|
|
1029
|
+
`,1)[0],m;if(l=p,this.options.pedantic?(l=l.replace(this.rules.other.listReplaceNesting,` `),m=l):m=l.replace(this.rules.other.tabCharGlobal,` `),i.test(l)||a.test(l)||o.test(l)||f.test(l)||t.test(l)||n.test(l))break;if(m.search(this.rules.other.nonSpaceChar)>=d||!l.trim())s+=`
|
|
1030
|
+
`+m.slice(d);else{if(u||c.replace(this.rules.other.tabCharGlobal,` `).search(this.rules.other.nonSpaceChar)>=4||i.test(c)||a.test(c)||n.test(c))break;s+=`
|
|
1031
|
+
`+l}u=!l.trim(),r+=p+`
|
|
1032
|
+
`,e=e.substring(p.length+1),c=m.slice(d)}}i.loose||(o?i.loose=!0:this.rules.other.doubleBlankLine.test(r)&&(o=!0)),i.items.push({type:`list_item`,raw:r,task:!!this.options.gfm&&this.rules.other.listIsTask.test(s),loose:!1,text:s,tokens:[]}),i.raw+=r}let s=i.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let e of i.items){if(this.lexer.state.top=!1,e.tokens=this.lexer.blockTokens(e.text,[]),e.task){if(e.text=e.text.replace(this.rules.other.listReplaceTask,``),e.tokens[0]?.type===`text`||e.tokens[0]?.type===`paragraph`){e.tokens[0].raw=e.tokens[0].raw.replace(this.rules.other.listReplaceTask,``),e.tokens[0].text=e.tokens[0].text.replace(this.rules.other.listReplaceTask,``);for(let e=this.lexer.inlineQueue.length-1;e>=0;e--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)){this.lexer.inlineQueue[e].src=this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask,``);break}}let t=this.rules.other.listTaskCheckbox.exec(e.raw);if(t){let n={type:`checkbox`,raw:t[0]+` `,checked:t[0]!==`[ ]`};e.checked=n.checked,i.loose?e.tokens[0]&&[`paragraph`,`text`].includes(e.tokens[0].type)&&`tokens`in e.tokens[0]&&e.tokens[0].tokens?(e.tokens[0].raw=n.raw+e.tokens[0].raw,e.tokens[0].text=n.raw+e.tokens[0].text,e.tokens[0].tokens.unshift(n)):e.tokens.unshift({type:`paragraph`,raw:n.raw,text:n.raw,tokens:[n]}):e.tokens.unshift(n)}}if(!i.loose){let t=e.tokens.filter(e=>e.type===`space`);i.loose=t.length>0&&t.some(e=>this.rules.other.anyLine.test(e.raw))}}if(i.loose)for(let e of i.items){e.loose=!0;for(let t of e.tokens)t.type===`text`&&(t.type=`paragraph`)}return i}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:`html`,block:!0,raw:t[0],pre:t[1]===`pre`||t[1]===`script`||t[1]===`style`,text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,` `),n=t[2]?t[2].replace(this.rules.other.hrefBrackets,`$1`).replace(this.rules.inline.anyPunctuation,`$1`):``,r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,`$1`):t[3];return{type:`def`,tag:e,raw:t[0],href:n,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=ra(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,``).split(`|`),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,``).split(`
|
|
1033
|
+
`):[],a={type:`table`,raw:t[0],header:[],align:[],rows:[]};if(n.length===r.length){for(let e of r)this.rules.other.tableAlignRight.test(e)?a.align.push(`right`):this.rules.other.tableAlignCenter.test(e)?a.align.push(`center`):this.rules.other.tableAlignLeft.test(e)?a.align.push(`left`):a.align.push(null);for(let e=0;e<n.length;e++)a.header.push({text:n[e],tokens:this.lexer.inline(n[e]),header:!0,align:a.align[e]});for(let e of i)a.rows.push(ra(e,a.header.length).map((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:a.align[t]})));return a}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:`heading`,raw:t[0],depth:t[2].charAt(0)===`=`?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e=t[1].charAt(t[1].length-1)===`
|
|
1034
|
+
`?t[1].slice(0,-1):t[1];return{type:`paragraph`,raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:`text`,raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:`escape`,raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:`html`,raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=ia(e.slice(0,-1),`\\`);if((e.length-t.length)%2==0)return}else{let e=aa(t[2],`()`);if(e===-2)return;if(e>-1){let n=(t[0].indexOf(`!`)===0?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=``}}let n=t[2],r=``;if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):``;return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(n=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?n.slice(1):n.slice(1,-1)),sa(t,{href:n&&n.replace(this.rules.inline.anyPunctuation,`$1`),title:r&&r.replace(this.rules.inline.anyPunctuation,`$1`)},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=t[(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,` `).toLowerCase()];if(!e){let e=n[0].charAt(0);return{type:`text`,raw:e,text:e}}return sa(n,e,n[0],this.lexer,this.rules)}}emStrong(e,t,n=``){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||r[3]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[2])||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=0,c=r[0][0]===`*`?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+n);(r=c.exec(t))!=null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i)continue;if(a=[...i].length,r[3]||r[4]){o+=a;continue}if((r[5]||r[6])&&n%3&&!((n+a)%3)){s+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o+s);let t=[...r[0]][0].length,c=e.slice(0,n+r.index+t+a);if(Math.min(n,a)%2){let e=c.slice(1,-1);return{type:`em`,raw:c,text:e,tokens:this.lexer.inlineTokens(e)}}let l=c.slice(2,-2);return{type:`strong`,raw:c,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal,` `),n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:`codespan`,raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}}del(e,t,n=``){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=this.rules.inline.delRDelim;for(s.lastIndex=0,t=t.slice(-1*e.length+n);(r=s.exec(t))!=null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i||(a=[...i].length,a!==n))continue;if(r[3]||r[4]){o+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o);let t=[...r[0]][0].length,s=e.slice(0,n+r.index+t+a),c=s.slice(n,-n);return{type:`del`,raw:s,text:c,tokens:this.lexer.inlineTokens(c)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return t[2]===`@`?(e=t[1],n=`mailto:`+e):(e=t[1],n=e),{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if(t[2]===`@`)e=t[0],n=`mailto:`+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??``;while(r!==t[0]);e=t[0],n=t[1]===`www.`?`http://`+t[0]:t[0]}return{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:`text`,raw:t[0],text:t[0],escaped:e}}}},ua=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Vr,this.options.tokenizer=this.options.tokenizer||new la,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:Q,block:Zi.normal,inline:Qi.normal};this.options.pedantic?(t.block=Zi.pedantic,t.inline=Qi.pedantic):this.options.gfm&&(t.block=Zi.gfm,t.inline=this.options.breaks?Qi.breaks:Qi.gfm),this.tokenizer.rules=t}static get rules(){return{block:Zi,inline:Qi}}static lex(t,n){return new e(n).lex(t)}static lexInline(t,n){return new e(n).inlineTokens(t)}lex(e){e=e.replace(Q.carriageReturn,`
|
|
1035
|
+
`),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){for(this.options.pedantic&&(e=e.replace(Q.tabCharGlobal,` `).replace(Q.spaceLine,``));e;){let r;if(this.options.extensions?.block?.some(n=>(r=n.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let n=t.at(-1);r.raw.length===1&&n!==void 0?n.raw+=`
|
|
1036
|
+
`:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=(n.raw.endsWith(`
|
|
1037
|
+
`)?``:`
|
|
1038
|
+
`)+r.raw,n.text+=`
|
|
1039
|
+
`+r.text,this.inlineQueue.at(-1).src=n.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=(n.raw.endsWith(`
|
|
1040
|
+
`)?``:`
|
|
1041
|
+
`)+r.raw,n.text+=`
|
|
1042
|
+
`+r.raw,this.inlineQueue.at(-1).src=n.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title},t.push(r));continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}let i=e;if(this.options.extensions?.startBlock){let t=1/0,n=e.slice(1),r;this.options.extensions.startBlock.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(i=e.substring(0,t+1))}if(this.state.top&&(r=this.tokenizer.paragraph(i))){let a=t.at(-1);n&&a?.type===`paragraph`?(a.raw+=(a.raw.endsWith(`
|
|
1043
|
+
`)?``:`
|
|
1044
|
+
`)+r.raw,a.text+=`
|
|
1045
|
+
`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):t.push(r),n=i.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);let n=t.at(-1);n?.type===`text`?(n.raw+=(n.raw.endsWith(`
|
|
1046
|
+
`)?``:`
|
|
1047
|
+
`)+r.raw,n.text+=`
|
|
1048
|
+
`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(r);continue}if(e){let t=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw Error(t)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n=e,r=null;if(this.tokens.links){let e=Object.keys(this.tokens.links);if(e.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)e.includes(r[0].slice(r[0].lastIndexOf(`[`)+1,-1))&&(n=n.slice(0,r.index)+`[`+`a`.repeat(r[0].length-2)+`]`+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null;)n=n.slice(0,r.index)+`++`+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let i;for(;(r=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)i=r[2]?r[2].length:0,n=n.slice(0,r.index+i)+`[`+`a`.repeat(r[0].length-i-2)+`]`+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let a=!1,o=``;for(;e;){a||(o=``),a=!1;let r;if(this.options.extensions?.inline?.some(n=>(r=n.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.escape(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.tag(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.link(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(r.raw.length);let n=t.at(-1);r.type===`text`&&n?.type===`text`?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if(r=this.tokenizer.emStrong(e,n,o)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.codespan(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.br(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.del(e,n,o)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.autolink(e)){e=e.substring(r.raw.length),t.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(e))){e=e.substring(r.raw.length),t.push(r);continue}let i=e;if(this.options.extensions?.startInline){let t=1/0,n=e.slice(1),r;this.options.extensions.startInline.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(i=e.substring(0,t+1))}if(r=this.tokenizer.inlineText(i)){e=e.substring(r.raw.length),r.raw.slice(-1)!==`_`&&(o=r.raw.slice(-1)),a=!0;let n=t.at(-1);n?.type===`text`?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if(e){let t=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw Error(t)}}return t}},da=class{options;parser;constructor(e){this.options=e||Vr}space(e){return``}code({text:e,lang:t,escaped:n}){let r=(t||``).match(Q.notSpaceStart)?.[0],i=e.replace(Q.endingNewline,``)+`
|
|
1049
|
+
`;return r?`<pre><code class="language-`+ta(r)+`">`+(n?i:ta(i,!0))+`</code></pre>
|
|
1050
|
+
`:`<pre><code>`+(n?i:ta(i,!0))+`</code></pre>
|
|
1051
|
+
`}blockquote({tokens:e}){return`<blockquote>
|
|
1052
|
+
${this.parser.parse(e)}</blockquote>
|
|
1053
|
+
`}html({text:e}){return e}def(e){return``}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
|
|
1054
|
+
`}hr(e){return`<hr>
|
|
1055
|
+
`}list(e){let t=e.ordered,n=e.start,r=``;for(let t=0;t<e.items.length;t++){let n=e.items[t];r+=this.listitem(n)}let i=t?`ol`:`ul`,a=t&&n!==1?` start="`+n+`"`:``;return`<`+i+a+`>
|
|
1056
|
+
`+r+`</`+i+`>
|
|
1057
|
+
`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
|
|
1058
|
+
`}checkbox({checked:e}){return`<input `+(e?`checked="" `:``)+`disabled="" type="checkbox"> `}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
|
|
1059
|
+
`}table(e){let t=``,n=``;for(let t=0;t<e.header.length;t++)n+=this.tablecell(e.header[t]);t+=this.tablerow({text:n});let r=``;for(let t=0;t<e.rows.length;t++){let i=e.rows[t];n=``;for(let e=0;e<i.length;e++)n+=this.tablecell(i[e]);r+=this.tablerow({text:n})}return r&&=`<tbody>${r}</tbody>`,`<table>
|
|
1060
|
+
<thead>
|
|
1061
|
+
`+t+`</thead>
|
|
1062
|
+
`+r+`</table>
|
|
1063
|
+
`}tablerow({text:e}){return`<tr>
|
|
1064
|
+
${e}</tr>
|
|
1065
|
+
`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
|
|
1066
|
+
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${ta(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=na(e);if(i===null)return r;e=i;let a=`<a href="`+e+`"`;return t&&(a+=` title="`+ta(t)+`"`),a+=`>`+r+`</a>`,a}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=na(e);if(i===null)return ta(n);e=i;let a=`<img src="${e}" alt="${ta(n)}"`;return t&&(a+=` title="${ta(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:ta(e.text)}},fa=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}checkbox({raw:e}){return e}},pa=class e{options;renderer;textRenderer;constructor(e){this.options=e||Vr,this.options.renderer=this.options.renderer||new da,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new fa}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let e=r,n=this.options.extensions.renderers[e.type].call({parser:this},e);if(n!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`html`,`def`,`paragraph`,`text`].includes(e.type)){t+=n||``;continue}}let i=r;switch(i.type){case`space`:t+=this.renderer.space(i);break;case`hr`:t+=this.renderer.hr(i);break;case`heading`:t+=this.renderer.heading(i);break;case`code`:t+=this.renderer.code(i);break;case`table`:t+=this.renderer.table(i);break;case`blockquote`:t+=this.renderer.blockquote(i);break;case`list`:t+=this.renderer.list(i);break;case`checkbox`:t+=this.renderer.checkbox(i);break;case`html`:t+=this.renderer.html(i);break;case`def`:t+=this.renderer.def(i);break;case`paragraph`:t+=this.renderer.paragraph(i);break;case`text`:t+=this.renderer.text(i);break;default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return t}parseInline(e,t=this.renderer){let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`checkbox`:n+=t.checkbox(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},ma=class{options;block;constructor(e){this.options=e||Vr}static passThroughHooks=new Set([`preprocess`,`postprocess`,`processAllTokens`,`emStrongMask`]);static passThroughHooksRespectAsync=new Set([`preprocess`,`postprocess`,`processAllTokens`]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(){return this.block?ua.lex:ua.lexInline}provideParser(){return this.block?pa.parse:pa.parseInline}},ha=new class{defaults=Br();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=pa;Renderer=da;TextRenderer=fa;Lexer=ua;Tokenizer=la;Hooks=ma;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new da(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new la(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new ma;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];t[r]=ma.passThroughHooks.has(n)?e=>{if(this.defaults.async&&ma.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await i.call(t,e);return a.call(t,n)})();let r=i.call(t,e);return a.call(t,r)}:(...e)=>{if(this.defaults.async)return(async()=>{let n=await i.apply(t,e);return n===!1&&(n=await a.apply(t,e)),n})();let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return ua.lex(e,t??this.defaults)}parser(e,t){return pa.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(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 t>`u`||t===null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let n=i.hooks?await i.hooks.preprocess(t):t,r=await(i.hooks?await i.hooks.provideLexer():e?ua.lex:ua.lexInline)(n,i),a=i.hooks?await i.hooks.processAllTokens(r):r;i.walkTokens&&await Promise.all(this.walkTokens(a,i.walkTokens));let o=await(i.hooks?await i.hooks.provideParser():e?pa.parse:pa.parseInline)(a,i);return i.hooks?await i.hooks.postprocess(o):o})().catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let n=(i.hooks?i.hooks.provideLexer():e?ua.lex:ua.lexInline)(t,i);i.hooks&&(n=i.hooks.processAllTokens(n)),i.walkTokens&&this.walkTokens(n,i.walkTokens);let r=(i.hooks?i.hooks.provideParser():e?pa.parse:pa.parseInline)(n,i);return i.hooks&&(r=i.hooks.postprocess(r)),r}catch(e){return a(e)}}}onError(e,t){return n=>{if(n.message+=`
|
|
1067
|
+
Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+ta(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function $(e,t){return ha.parse(e,t)}$.options=$.setOptions=function(e){return ha.setOptions(e),$.defaults=ha.defaults,Hr($.defaults),$},$.getDefaults=Br,$.defaults=Vr,$.use=function(...e){return ha.use(...e),$.defaults=ha.defaults,Hr($.defaults),$},$.walkTokens=function(e,t){return ha.walkTokens(e,t)},$.parseInline=ha.parseInline,$.Parser=pa,$.parser=pa.parse,$.Renderer=da,$.TextRenderer=fa,$.Lexer=ua,$.lexer=ua.lex,$.Tokenizer=la,$.Hooks=ma,$.parse=$,$.options,$.setOptions,$.use,$.walkTokens,$.parseInline,pa.parse,ua.lex;var ga=()=>{let e,t=null,n;function r(){if(t&&!t.closed)t.focus();else{if(t=window.open(`about:blank`,`reveal.js - Notes`,`width=1100,height=700`),t.marked=$,t.document.write(zr),!t){alert(`Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.`);return}a()}}function i(e){t&&!t.closed?t.focus():(t=e,window.addEventListener(`message`,l),u())}function a(){let r=n.getConfig().url,i=typeof r==`string`?r:window.location.protocol+`//`+window.location.host+window.location.pathname+window.location.search;e=setInterval(function(){t.postMessage(JSON.stringify({namespace:`reveal-notes`,type:`connect`,state:n.getState(),url:i}),`*`)},500),window.addEventListener(`message`,l)}function o(e,r,i){let a=n[e].apply(n,r);t.postMessage(JSON.stringify({namespace:`reveal-notes`,type:`return`,result:a,callId:i}),`*`)}function s(e){let r=n.getCurrentSlide(),i=r.querySelectorAll(`aside.notes`),a=r.querySelector(`.current-fragment`),o={namespace:`reveal-notes`,type:`state`,notes:``,markdown:!1,whitespace:`normal`,state:n.getState()};if(r.hasAttribute(`data-notes`)&&(o.notes=r.getAttribute(`data-notes`),o.whitespace=`pre-wrap`),a){let e=a.querySelector(`aside.notes`);e?(o.notes=e.innerHTML,o.markdown=typeof e.getAttribute(`data-markdown`)==`string`,i=null):a.hasAttribute(`data-notes`)&&(o.notes=a.getAttribute(`data-notes`),o.whitespace=`pre-wrap`,i=null)}i&&i.length&&(i=Array.from(i).filter(e=>e.closest(`.fragment`)===null),o.notes=i.map(e=>e.innerHTML).join(`
|
|
1068
|
+
`),o.markdown=i[0]&&typeof i[0].getAttribute(`data-markdown`)==`string`),t.postMessage(JSON.stringify(o),`*`)}function c(e){try{return window.location.origin===e.source.location.origin}catch{return!1}}function l(t){if(c(t))try{let n=JSON.parse(t.data);n&&n.namespace===`reveal-notes`&&n.type===`connected`?(clearInterval(e),u()):n&&n.namespace===`reveal-notes`&&n.type===`call`&&o(n.methodName,n.arguments,n.callId)}catch{}}function u(){n.on(`slidechanged`,s),n.on(`fragmentshown`,s),n.on(`fragmenthidden`,s),n.on(`overviewhidden`,s),n.on(`overviewshown`,s),n.on(`paused`,s),n.on(`resumed`,s),n.on(`previewiframe`,s),n.on(`previewimage`,s),n.on(`previewvideo`,s),n.on(`closeoverlay`,s),s()}return{id:`notes`,init:function(e){n=e,/receiver/i.test(window.location.search)||(window.location.search.match(/(\?|\&)notes/gi)===null?window.addEventListener(`message`,e=>{if(!t&&typeof e.data==`string`){let t;try{t=JSON.parse(e.data)}catch{}t&&t.namespace===`reveal-notes`&&t.type===`heartbeat`&&i(e.source)}}):r(),n.addKeyBinding({keyCode:83,key:`S`,description:`Speaker notes view`},function(){r()}))},open:r}},_a=16/9,va=67;function ya({deck:e,enabled:t,onToggle:n}){e.removeKeyBinding(va),t&&e.addKeyBinding({keyCode:va,key:`C`,description:`Toggle code editor`},n)}function ba(e){let t=e.getSlidesElement();if(t)for(let e of t.querySelectorAll(`section.stack[data-previous-indexv]`))e.removeAttribute(`data-previous-indexv`)}var xa=new Set([` `,`Spacebar`,`ArrowRight`,`ArrowDown`,`PageDown`]),Sa=new Set([`ArrowLeft`,`ArrowUp`,`PageUp`]);function Ca(e){return xa.has(e.key)?1:Sa.has(e.key)?-1:0}function wa(e){let t=(0,I.c)(4),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n={width:960,height:540},t[0]=n):n=t[0];let[r,i]=(0,F.useState)(n),a,o;return t[1]===e?(a=t[2],o=t[3]):(a=()=>{let t=e.current;if(!t)return;let n=new ResizeObserver(e=>{let{width:t,height:n}=e[0].contentRect;if(t<=0||n<=0)return;let r=Math.min(t,n*_a),a=r/_a;i({width:Math.round(r),height:Math.round(a)})});return n.observe(t),()=>n.disconnect()},o=[e],t[1]=e,t[2]=a,t[3]=o),(0,F.useEffect)(a,o),r}var Ta=e=>{let t=(0,I.c)(6),{text:n}=e,r,i;if(t[0]!==n){let e=n.split(`
|
|
1069
|
+
`);r=`notes`,i=e.map((t,n)=>{let r=n===e.length-1;return t===`---`?(0,q.jsx)(`hr`,{},n):(0,q.jsxs)(F.Fragment,{children:[t,!r&&(0,q.jsx)(`br`,{})]},n)}),t[0]=n,t[1]=r,t[2]=i}else r=t[1],i=t[2];let a;return t[3]!==r||t[4]!==i?(a=(0,q.jsx)(`aside`,{className:r,children:i}),t[3]=r,t[4]=i,t[5]=a):a=t[5],a};function Ea(e){let{cells:t,cellId:n,showCodeOverrides:r,codeAvailable:i}=e;return n==null||!i?!1:(t.get(n)?.showCode??!1)||r.has(n)}function Da(e){let{cell:t,noOutputIds:n,heldEditCellId:r,slideConfigs:i}=e;return n.has(t.id)||t.id===r?`skip`:i.get(t.id)?.type??`slide`}function Oa(e){let t=(0,I.c)(15),{activeCell:r,slideConfigs:i,noOutputIds:a}=e,o=r?.id??null,s;t[0]!==r||t[1]!==a?(s=r!=null&&a.has(r.id),t[0]=r,t[1]=a,t[2]=s):s=t[2];let c=s,l=r!=null&&i.get(r.id)?.type===`skip`||c,u;t[3]===o?u=t[4]:(u={activeCellId:o,cellId:null},t[3]=o,t[4]=u);let[d,f]=(0,F.useState)(u),p=d.cellId;d.activeCellId===o?c&&p!==o&&(p=o,f({activeCellId:o,cellId:p})):(p=c?o:null,f({activeCellId:o,cellId:p}));let m=!l&&o!=null&&p===o,h=m?p:null,g;t[5]===h?g=t[6]:(g={cellId:h,show:!0},t[5]=h,t[6]=g);let[_,v]=(0,F.useState)(g),y=_.show;_.cellId!==h&&(y=!0,v({cellId:h,show:!0}));let b;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(b=()=>v(ka),t[7]=b):b=t[7];let x=n(b),S=l||m?r??null:null,C;return t[8]!==h||t[9]!==y||t[10]!==m||t[11]!==c||t[12]!==S||t[13]!==x?(C={parkedPreviewCell:S,isHeldEdit:m,isNoOutputPreview:c,heldEditCellId:h,heldShowsCode:y,toggleHeldShowsCode:x},t[8]=h,t[9]=y,t[10]=m,t[11]=c,t[12]=S,t[13]=x,t[14]=C):C=t[14],C}function ka(e){return{...e,show:!e.show}}function Aa(e){switch(e??`center`){case`top`:return{margin:`0 20px auto`};case`bottom`:return{margin:`auto 20px 0`};default:return{margin:`auto 20px`}}}var ja=e=>{let t=(0,I.c)(13),{cell:n}=e,r;t[0]!==n.id||t[1]!==n.name?(r=M(n.id,n.name),t[0]=n.id,t[1]=n.name,t[2]=r):r=t[2];let i=n.id,a=n.status,o=n.output,s;t[3]===n?s=t[4]:(s=l(n,!1),t[3]=n,t[4]=s);let c;t[5]!==n.id||t[6]!==n.output||t[7]!==n.status||t[8]!==s?(c=(0,q.jsx)(N,{cellId:i,status:a,output:o,stale:s}),t[5]=n.id,t[6]=n.output,t[7]=n.status,t[8]=s,t[9]=c):c=t[9];let u;return t[10]!==r||t[11]!==c?(u=(0,q.jsx)(`div`,{className:`flex flex-col`,...r,children:c}),t[10]=r,t[11]=c,t[12]=u):u=t[12],u},Ma=e=>{let t=(0,I.c)(24),{subslide:n,resolveShowCode:r,isEditable:i,slideConfigs:a,contentStyle:o}=e,s,c,l,u,d,f;if(t[0]!==o||t[1]!==i||t[2]!==r||t[3]!==a||t[4]!==n){let{slideLevel:e,cumulativeByBlock:p}=Rr(n,a);l=e;let m=n.blocks.some(e=>e.cells.some(e=>r(e.id)));c=zt,s=wr,u=m?`mo-slide-content flex flex-col gap-3`:`mo-slide-content`,d=o,f=n.blocks.map((e,t)=>{let n=e.cells.map(e=>r(e.id)?i?(0,q.jsx)(jr,{cell:e},e.id):(0,q.jsx)(Mr,{cell:e},e.id):(0,q.jsx)(ja,{cell:e},e.id));if(e.isFragment){let e=p.get(t);return(0,q.jsxs)(_r,{as:`div`,children:[n,e&&(0,q.jsx)(Ta,{text:e})]},t)}return(0,q.jsx)(F.Fragment,{children:n},t)}),t[0]=o,t[1]=i,t[2]=r,t[3]=a,t[4]=n,t[5]=s,t[6]=c,t[7]=l,t[8]=u,t[9]=d,t[10]=f}else s=t[5],c=t[6],l=t[7],u=t[8],d=t[9],f=t[10];let p;t[11]!==u||t[12]!==d||t[13]!==f?(p=(0,q.jsx)(`div`,{className:u,style:d,children:f}),t[11]=u,t[12]=d,t[13]=f,t[14]=p):p=t[14];let m;t[15]!==s||t[16]!==p?(m=(0,q.jsx)(s,{children:p}),t[15]=s,t[16]=p,t[17]=m):m=t[17];let h;t[18]===l?h=t[19]:(h=l&&(0,q.jsx)(Ta,{text:l}),t[18]=l,t[19]=h);let g;return t[20]!==c||t[21]!==m||t[22]!==h?(g=(0,q.jsxs)(c,{children:[m,h]}),t[20]=c,t[21]=m,t[22]=h,t[23]=g):g=t[23],g};function Na(e){let{isNoOutputPreview:t,isEditable:n,showCode:r}=e;return t&&n||r}var Pa=e=>{let t=(0,I.c)(5),{cell:n,isNoOutputPreview:r,isEditable:i,showCode:a}=e;if(Na({isNoOutputPreview:r,isEditable:i,showCode:a})){let e;return t[0]!==n||t[1]!==i?(e=i?(0,q.jsx)(jr,{cell:n}):(0,q.jsx)(Mr,{cell:n}),t[0]=n,t[1]=i,t[2]=e):e=t[2],e}let o;return t[3]===n?o=t[4]:(o=(0,q.jsx)(ja,{cell:n}),t[3]=n,t[4]=o),o},Fa=e=>{let r=(0,I.c)(160),{slideCells:i,layout:a,setLayout:o,noOutputIds:s,activeIndex:c,onSlideChange:l,mode:u,configWidth:d,isEditable:f}=e,m=f!==void 0&&f,_=(0,F.useRef)(null),y=(0,F.useRef)(null),{width:x,height:D}=wa(_),M=S()!=null,N=t(g),P=t(ee).kind,ie=t(v),ae=P!==`wasm`||ie,oe;r[0]!==N||r[1]!==P?(oe=N||!A(P)?[]:[ga],r[0]=N,r[1]=P,r[2]=oe):oe=r[2];let se=oe,[ce,le]=(0,F.useState)(Ia),ue=k(i),de;r[3]===ue?de=r[4]:(de=!p()&&ue,r[3]=ue,r[4]=de);let he=de,ge;r[5]===N?ge=r[6]:(ge=j(N,window.location.search),r[5]=N,r[6]=ge);let _e=!ge&&he,ve=c==null?void 0:i[c],ye;r[7]!==ve||r[8]!==i?(ye=ve??i.at(0),r[7]=ve,r[8]=i,r[9]=ye):ye=r[9];let be=ye,xe;r[10]!==ve||r[11]!==a.cells||r[12]!==s?(xe={activeCell:ve,slideConfigs:a.cells,noOutputIds:s},r[10]=ve,r[11]=a.cells,r[12]=s,r[13]=xe):xe=r[13];let{parkedPreviewCell:L,isHeldEdit:R,isNoOutputPreview:z,heldEditCellId:Se,heldShowsCode:Ce,toggleHeldShowsCode:we}=Oa(xe),Te;r[14]!==he||r[15]!==a.cells||r[16]!==ce?(Te=e=>Ea({cells:a.cells,cellId:e,showCodeOverrides:ce,codeAvailable:he}),r[14]=he,r[15]=a.cells,r[16]=ce,r[17]=Te):Te=r[17];let B=Te,V=ve?.id??be?.id,Ee;r[18]!==V||r[19]!==Ce||r[20]!==R||r[21]!==B?(Ee=R?Ce:B(V),r[18]=V,r[19]=Ce,r[20]=R,r[21]=B,r[22]=Ee):Ee=r[22];let H=Ee,U;r[23]!==V||r[24]!==he||r[25]!==a.cells?(U=he&&V!=null&&(a.cells.get(V)?.showCode??!1),r[23]=V,r[24]=he,r[25]=a.cells,r[26]=U):U=r[26];let W=U,De;r[27]!==Se||r[28]!==a.cells||r[29]!==s?(De=e=>Da({cell:e,noOutputIds:s,heldEditCellId:Se,slideConfigs:a.cells}),r[27]=Se,r[28]=a.cells,r[29]=s,r[30]=De):De=r[30];let Oe;r[31]!==i||r[32]!==De?(Oe=Tr({cells:i,getType:De}),r[31]=i,r[32]=De,r[33]=Oe):Oe=r[33];let ke=Oe,Ae;r[34]!==ke||r[35]!==i?(Ae=Er({composition:ke,cells:i,getId:La}),r[34]=ke,r[35]=i,r[36]=Ae):Ae=r[36];let{cellToTarget:je,targetToCellIndex:Me}=Ae,Ne=a.deck?.transition??`slide`,Pe=a.deck?.verticalAlign,Fe;r[37]===Pe?Fe=r[38]:(Fe=Aa(Pe),r[37]=Pe,r[38]=Fe);let G=Fe,Ie;r[39]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=O(window.location.href),r[39]=Ie):Ie=r[39];let Le=Ie,Re;r[40]!==Ne||r[41]!==D||r[42]!==x?(Re={embedded:!0,width:x,height:D,center:!1,minScale:.2,maxScale:2,transition:Ne,keyboardCondition:Ra,url:Le,scrollActivationWidth:0},r[40]=Ne,r[41]=D,r[42]=x,r[43]=Re):Re=r[43];let ze=Re,Be;r[44]!==c||r[45]!==ae||r[46]!==je||r[47]!==i?(Be=e=>{if(c==null&&window.location.hash.startsWith(`#/`)){if(!ae)return;window.dispatchEvent(new HashChangeEvent(`hashchange`)),ba(e);return}let t=kr({activeIndex:c,cells:i,cellToTarget:je,getId:za}),n=t&&Ar(e.getIndices(),t);n&&(e.slide(n.h,n.v,n.f),ba(e))},r[44]=c,r[45]=ae,r[46]=je,r[47]=i,r[48]=Be):Be=r[48];let Ve=n(Be),He;r[49]===Ve?He=r[50]:(He=()=>{let e=y.current;e!=null&&Ve(e)},r[49]=Ve,r[50]=He);let Ue;r[51]!==c||r[52]!==ae||r[53]!==je||r[54]!==Ve||r[55]!==i?(Ue=[c,ae,je,i,Ve],r[51]=c,r[52]=ae,r[53]=je,r[54]=Ve,r[55]=i,r[56]=Ue):Ue=r[56],(0,F.useEffect)(He,Ue);let We;r[57]!==V||r[58]!==W||r[59]!==R||r[60]!==we?(We=()=>{if(!(V==null||W)){if(R){we();return}(0,F.startTransition)(()=>le(e=>{let t=new Set(e);return t.has(V)?t.delete(V):t.add(V),t}))}},r[57]=V,r[58]=W,r[59]=R,r[60]=we,r[61]=We):We=r[61];let Ge=n(We),Ke,qe;r[62]!==_e||r[63]!==Ge?(Ke=()=>{let e=y.current;return e&&ya({deck:e,enabled:_e,onToggle:Ge}),()=>{y.current?.removeKeyBinding(va)}},qe=[_e,Ge],r[62]=_e,r[63]=Ge,r[64]=Ke,r[65]=qe):(Ke=r[64],qe=r[65]),(0,F.useEffect)(Ke,qe);let Je;r[66]!==l||r[67]!==L||r[68]!==Me?(Je=e=>{if(L!=null)return;let t=Dr(Me,e.getIndices());t!=null&&l?.(t)},r[66]=l,r[67]=L,r[68]=Me,r[69]=Je):Je=r[69];let Ye=n(Je),Xe;r[70]===Ye?Xe=r[71]:(Xe=()=>{let e=y.current;e&&Ye(e)},r[70]=Ye,r[71]=Xe);let Ze=n(Xe),Qe;r[72]!==ae||r[73]!==_e||r[74]!==Ve||r[75]!==Ye||r[76]!==Ge?(Qe=e=>{Ve(e),ae&&Ye(e),ya({deck:e,enabled:_e,onToggle:Ge});let t=e.getSlidesElement()?.closest(`.reveal`);t instanceof HTMLElement&&(t.tabIndex=-1,t.focus({preventScroll:!0}))},r[72]=ae,r[73]=_e,r[74]=Ve,r[75]=Ye,r[76]=Ge,r[77]=Qe):Qe=r[77];let $e=n(Qe),et;r[78]!==c||r[79]!==l||r[80]!==L||r[81]!==i?(et=e=>{if(!L||c==null||T.fromInput(e))return;let t=Ca(e);if(t===0)return;e.preventDefault(),e.stopPropagation();let n=c+t;n<0||n>=i.length||l?.(n)},r[78]=c,r[79]=l,r[80]=L,r[81]=i,r[82]=et):et=r[82];let tt=n(et),K;r[83]===Ze?K=r[84]:(K=()=>{Ze()},r[83]=Ze,r[84]=K);let nt=n(K),rt;r[85]===Symbol.for(`react.memo_cache_sentinel`)?(rt={capture:!0},r[85]=rt):rt=r[85],h(document,`keydown`,tt,rt);let it=R?null:z?`Hidden as there is no output`:`Skipped in presentation`,at;r[86]!==Ce||r[87]!==R||r[88]!==L?.id||r[89]!==B?(at=R?Ce:B(L?.id),r[86]=Ce,r[87]=R,r[88]=L?.id,r[89]=B,r[90]=at):at=r[90];let ot=at,st;r[91]!==m||r[92]!==z||r[93]!==ot?(st=Na({isNoOutputPreview:z,isEditable:m,showCode:ot}),r[91]=m,r[92]=z,r[93]=ot,r[94]=st):st=r[94];let ct=st,lt;r[95]!==D||r[96]!==x?(lt={width:x,height:D},r[95]=D,r[96]=x,r[97]=lt):lt=r[97];let ut;if(r[98]!==ke.stacks||r[99]!==m||r[100]!==a.cells||r[101]!==B||r[102]!==G){let e;r[104]!==m||r[105]!==a.cells||r[106]!==B||r[107]!==G?(e=(e,t)=>e.subslides.length===1?(0,q.jsx)(Ma,{subslide:e.subslides[0],resolveShowCode:B,isEditable:m,slideConfigs:a.cells,contentStyle:G},t):(0,q.jsx)(Bt,{children:e.subslides.map((e,t)=>(0,q.jsx)(Ma,{subslide:e,resolveShowCode:B,isEditable:m,slideConfigs:a.cells,contentStyle:G},t))},t),r[104]=m,r[105]=a.cells,r[106]=B,r[107]=G,r[108]=e):e=r[108],ut=ke.stacks.map(e),r[98]=ke.stacks,r[99]=m,r[100]=a.cells,r[101]=B,r[102]=G,r[103]=ut}else ut=r[103];let dt;r[109]!==se||r[110]!==$e||r[111]!==nt||r[112]!==Ze||r[113]!==ze||r[114]!==ut?(dt=(0,q.jsx)(Ft,{deckRef:y,className:`aspect-video w-full overflow-hidden border rounded bg-background mo-slides-theme prose-slides focus:outline-hidden focus-visible:outline-hidden`,config:ze,onReady:$e,onSlideChange:nt,onFragmentShown:Ze,onFragmentHidden:Ze,plugins:se,children:ut}),r[109]=se,r[110]=$e,r[111]=nt,r[112]=Ze,r[113]=ze,r[114]=ut,r[115]=dt):dt=r[115];let ft;r[116]!==m||r[117]!==z||r[118]!==L||r[119]!==it||r[120]!==ot||r[121]!==ct||r[122]!==G?(ft=L&&(0,q.jsxs)(`div`,{className:`absolute inset-0 z-10 border rounded bg-background flex flex-col overflow-hidden`,"aria-label":it??void 0,children:[it&&(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 px-3 py-1.5 text-xs text-muted-foreground border-b bg-muted/40`,children:[(0,q.jsx)(re,{className:`h-3.5 w-3.5`}),(0,q.jsx)(`span`,{children:it})]}),(0,q.jsx)(`div`,{className:`flex-1 overflow-auto flex`,children:(0,q.jsx)(`div`,{className:ct?`mo-slide-content flex flex-col gap-3`:`mo-slide-content`,style:G,children:(0,q.jsx)(Pa,{cell:L,isNoOutputPreview:z,isEditable:m,showCode:ot})})})]},L.id),r[116]=m,r[117]=z,r[118]=L,r[119]=it,r[120]=ot,r[121]=ct,r[122]=G,r[123]=ft):ft=r[123];let pt;r[124]!==H||r[125]!==W||r[126]!==_e||r[127]!==Ge?(pt=_e&&(0,q.jsx)(w,{content:W?`Code is always shown for this slide`:H?`Hide code (C)`:`Show code (C)`,children:(0,q.jsx)(E,{"data-testid":`marimo-plugin-slides-toggle-code`,variant:`ghost`,size:`icon`,className:b(`text-muted-foreground h-7 w-7`,H&&`text-foreground bg-muted`,W&&`opacity-50 cursor-not-allowed`),"aria-pressed":H,"aria-disabled":W,"aria-label":W?`Code always shown`:H?`Hide code`:`Show code`,onClick:Ge,children:(0,q.jsx)(ne,{className:`h-4 w-4`})})}),r[124]=H,r[125]=W,r[126]=_e,r[127]=Ge,r[128]=pt):pt=r[128];let mt;r[129]===Symbol.for(`react.memo_cache_sentinel`)?(mt=(0,q.jsx)(w,{content:`Fullscreen (F)`,children:(0,q.jsx)(E,{"data-testid":`marimo-plugin-slides-fullscreen`,variant:`ghost`,size:`icon`,className:`text-muted-foreground h-7 w-7`,"aria-label":`Enter fullscreen`,onClick:()=>{y.current?.getViewportElement()?.requestFullscreen().catch(Ba)},children:(0,q.jsx)(C,{className:`h-4 w-4`})})}),r[129]=mt):mt=r[129];let ht;r[130]===pt?ht=r[131]:(ht=(0,q.jsxs)(`div`,{className:`absolute top-2 right-2 z-20 opacity-0 group-hover:opacity-70 text-muted-foreground transition-opacity`,children:[pt,mt]}),r[130]=pt,r[131]=ht);let gt;r[132]!==lt||r[133]!==dt||r[134]!==ft||r[135]!==ht?(gt=(0,q.jsx)(`div`,{ref:_,className:`h-full w-full min-w-0 flex items-center justify-center overflow-hidden`,children:(0,q.jsxs)(`div`,{className:`group relative`,style:lt,children:[dt,ft,ht]})}),r[132]=lt,r[133]=dt,r[134]=ft,r[135]=ht,r[136]=gt):gt=r[136];let _t=gt;if(u===`read`){let e;return r[137]===_t?e=r[138]:(e=(0,q.jsx)(`div`,{className:`flex-1 min-w-0 flex flex-row gap-3`,children:_t}),r[137]=_t,r[138]=e),e}let vt;r[139]===_t?vt=r[140]:(vt=(0,q.jsx)(me,{defaultSize:92,minSize:60,children:_t}),r[139]=_t,r[140]=vt);let yt;r[141]===Symbol.for(`react.memo_cache_sentinel`)?(yt={coarse:12,fine:4},r[141]=yt):yt=r[141];let bt;r[142]===M?bt=r[143]:(bt=(0,q.jsx)(pe,{className:`mo-slides-notes-resize`,hitAreaMargins:yt,disabled:M}),r[142]=M,r[143]=bt);let xt=be?.id,St;r[144]!==a||r[145]!==o||r[146]!==xt?(St=(0,q.jsx)(me,{defaultSize:10,minSize:4,collapsible:!0,collapsedSize:4,children:(0,q.jsx)(Pr,{layout:a,setLayout:o,cellId:xt})}),r[144]=a,r[145]=o,r[146]=xt,r[147]=St):St=r[147];let Ct;r[148]!==vt||r[149]!==bt||r[150]!==St?(Ct=(0,q.jsxs)(fe,{direction:`vertical`,autoSaveId:`marimo:slides:notes-panel`,className:`flex-1 min-w-0`,children:[vt,bt,St]}),r[148]=vt,r[149]=bt,r[150]=St,r[151]=Ct):Ct=r[151];let wt;r[152]!==be||r[153]!==d||r[154]!==a||r[155]!==o?(wt=(0,q.jsx)(te,{configWidth:d,layout:a,setLayout:o,activeConfigCell:be}),r[152]=be,r[153]=d,r[154]=a,r[155]=o,r[156]=wt):wt=r[156];let Tt;return r[157]!==Ct||r[158]!==wt?(Tt=(0,q.jsxs)(`div`,{className:`flex-1 min-w-0 flex flex-row gap-3`,children:[Ct,wt]}),r[157]=Ct,r[158]=wt,r[159]=Tt):Tt=r[159],Tt};function Ia(){return new Set}function La(e){return e.id}function Ra(e){return!T.fromInput(e)}function za(e){return e.id}function Ba(e){m.error(`Failed to request fullscreen`,e)}export{ja as CellOutputBlock,Da as deckSlideType,Fa as default,Na as parkedRendersSource,Ea as shouldShowCode,ya as syncCodeToggleKeyBinding,Oa as useParkedPreview};
|