@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
|
@@ -1,1069 +0,0 @@
|
|
|
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{D as i,Na as a,Pa as o,Ra as s,Wt as c,st as l}from"./cells-C6lBv8kg.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{t as v}from"./readonly-python-code-D2HXwAfT.js";import{t as y}from"./cn-ldLVeaqm.js";import{t as b}from"./jsx-runtime-B74pBk57.js";import{n as x}from"./fullscreen-0EEPR7uc.js";import{Nt as S}from"./JsonOutput-B7sDhGzR.js";import{t as C}from"./tooltip-D7dq6bnc.js";import{r as w,t as T}from"./button-Btj6GXNy.js";import{t as E}from"./createLucideIcon-B7HeEoG2.js";import{g as D,h as O,l as k,u as A}from"./layout-Uv1ZP5XB.js";import{a as j}from"./useNumberFormatter-DHJ9s6Vk.js";import{t as M}from"./code-CF0HKE9K.js";import{t as N}from"./eye-off-CFuPxa9F.js";import{n as ee,t as P}from"./cell-editor-BVb6iKbw.js";import{n as F,t as te}from"./RunButton-nocIODpS.js";import{r as ne}from"./useTheme-D3zvxdF3.js";import{n as I}from"./useDebounce-Dulm61-t.js";import{t as re}from"./CellStatus-DMQfH9wD.js";import{i as ie}from"./useRunCells-GCTS1YFv.js";import{n as ae,r as oe,t as se}from"./react-resizable-panels.browser.esm-BSRAHC4P.js";import{t as ce}from"./readonly-code-display-Bc0VX9i6.js";/* empty css */var le=E(`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`}]]),L=e(r(),1),R=u(),z=Object.defineProperty,ue=Object.defineProperties,de=Object.getOwnPropertyDescriptors,fe=Object.getOwnPropertySymbols,pe=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable,he=(e,t,n)=>t in e?z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,B=(e,t)=>{for(var n in t||={})pe.call(t,n)&&he(e,n,t[n]);if(fe)for(var n of fe(t))me.call(t,n)&&he(e,n,t[n]);return e},V=(e,t)=>ue(e,de(t)),ge=(e,t,n)=>he(e,typeof t==`symbol`?t:t+``,n),_e=(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())}),ve=(e,t)=>{for(let n in t)e[n]=t[n];return e},H=(e,t)=>Array.from(e.querySelectorAll(t)),ye=(e,t,n)=>{n?e.classList.add(t):e.classList.remove(t)},be=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},U=(e,t)=>{e.style.transform=t},xe=(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(xe(e,t))return e;e=e.parentElement}return null},Se=e=>{e||=document.documentElement;let t=e.requestFullscreen||e.webkitRequestFullscreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen;t&&t.apply(e)},Ce=(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},G=e=>{let t=document.createElement(`style`);return e&&e.length>0&&t.appendChild(document.createTextNode(e)),document.head.appendChild(t),t},we=()=>{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]=be(unescape(n))}return e.dependencies!==void 0&&delete e.dependencies,e},Te=(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},Ee={mp4:`video/mp4`,m4a:`video/mp4`,ogv:`video/ogg`,mpeg:`video/mpeg`,webm:`video/webm`},De=(e=``)=>{let t=e.split(`.`).pop();return t?Ee[t]:void 0},Oe=(e=``)=>encodeURI(e).replace(/%5B/g,`[`).replace(/%5D/g,`]`).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`),ke=navigator.userAgent,Ae=/(iphone|ipod|ipad|android)/gi.test(ke)||navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1,je=/android/gi.test(ke),Me=(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),Ne=class{constructor(e){ge(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;H(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))}),H(e,`video, audio`).forEach(e=>{let t=0;H(e,`source[data-src]`).forEach(e=>{e.setAttribute(`src`,e.getAttribute(`data-src`)),e.removeAttribute(`data-src`),e.setAttribute(`data-lazy-loaded`,``),t+=1}),Ae&&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(${Oe(decodeURI(e.trim()))})`).join(`,`);else if(o){let e=document.createElement(`video`);s&&e.setAttribute(`loop`,``),(c||this.Reveal.isSpeakerNotes())&&(e.muted=!0),Ae&&e.setAttribute(`playsinline`,``),o.split(`,`).forEach(t=>{let n=document.createElement(`source`);n.setAttribute(`src`,t);let r=De(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=>{Me(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`,H(t,`iframe[src]`).forEach(e=>{e.removeAttribute(`src`)})),H(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`)}),H(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)=>{H(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();H(e,`img[src$=".gif"]`).forEach(e=>{e.setAttribute(`src`,e.getAttribute(`src`))}),H(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}):Ae?(e.addEventListener(`canplay`,this.ensureMobileMediaPlaying),this.playMediaElement(e)):(e.removeEventListener(`loadeddata`,this.startEmbeddedMedia),e.addEventListener(`loadeddata`,this.startEmbeddedMedia))}}),t||(H(e,`iframe[src]`).forEach(e=>{W(e,`.fragment`)&&!W(e,`.fragment.visible`)||this.startEmbeddedIframe({target:e})}),H(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=ve({unloadIframes:!0},t),e&&e.parentNode&&(H(e,`video, audio`).forEach(e=>{!e.hasAttribute(`data-ignore`)&&typeof e.pause==`function`&&(e.setAttribute(`data-paused-by-reveal`,``),e.pause(),Ae&&e.removeEventListener(`canplay`,this.ensureMobileMediaPlaying))}),H(e,`iframe`).forEach(e=>{e.contentWindow&&e.contentWindow.postMessage(`slide:stop`,`*`),e.removeEventListener(`load`,this.preventIframeAutoFocus),e.removeEventListener(`load`,this.startEmbeddedIframe)}),H(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":""}`,`*`)}),H(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&&H(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()}},Pe=`.slides section`,Fe=`.slides>section`,Ie=`.slides>section.present>section`,Le=`.backgrounds>.slide-background`,Re=/registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener|showPreview/,ze=`h.v`,Be=`h/v`,Ve=`c`,He=`c/t`,Ue=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=ze;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=Ve);let i=e&&e.dataset.visibility===`uncounted`?0:1;switch(n=[],r){case Ve:n.push(this.Reveal.getSlidePastCount(e)+i);break;case He: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===Be?`/`:`.`;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()}},We=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===Ve||n===He){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)}},Ge=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},Ke=e=>(typeof e==`string`&&(e=Ge(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);H(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||!Ge(n)){let e=window.getComputedStyle(t);e&&e.backgroundColor&&(n=e.backgroundColor)}if(n){let e=Ge(n);if(e&&e.a!==0)return Ke(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)&&H(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()}},Je=0,Ye=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||G();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,Je++));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-`+Je++,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(){H(this.Reveal.getRevealElement(),`[data-auto-animate]:not([data-auto-animate=""])`).forEach(e=>{e.dataset.autoAnimate=``}),H(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=ve(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=>{xe(e.from,r)?e.options={scale:!1}:xe(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},[])}},Xe=500,Ze=4,Qe=6,$e=8,et=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=H(this.Reveal.getRevealElement(),Fe),n=H(this.Reveal.getRevealElement(),Le);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(),H(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,$e),this.progressBarScrollableHeight=this.progressBarHeight-this.playheadHeight;let r=t/e*this.progressBarHeight,i=Math.min(r/8,Ze);this.progressBarPlayhead.style.height=this.playheadHeight-i+`px`,r>Qe?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`)},Xe))}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()}},tt=class{constructor(e){this.Reveal=e}activate(){return _e(this,null,function*(){let e=this.Reveal.getConfig(),t=H(this.Reveal.getRevealElement(),Pe),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),G(`@page{size:`+i+`px `+a+`px; margin: 0px;}`),G(`.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 H(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`}},nt=class{constructor(e){this.Reveal=e}configure(e,t){e.fragments===!1?this.disable():t.fragments===!1&&this.enable()}disable(){H(this.Reveal.getSlidesElement(),`.fragment`).forEach(e=>{e.classList.add(`visible`),e.classList.remove(`current-fragment`)})}enable(){H(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=H(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)}},rt=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()),H(this.Reveal.getRevealElement(),Pe).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),U(e,`translate3d(`+t*this.overviewSlideWidth+`px, 0, 0)`),e.classList.contains(`stack`)&&H(e,`section`).forEach((e,n)=>{e.setAttribute(`data-index-h`,t),e.setAttribute(`data-index-v`,n),U(e,`translate3d(0, `+n*this.overviewSlideHeight+`px, 0)`)})}),Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach((e,t)=>{U(e,`translate3d(`+t*this.overviewSlideWidth+`px, 0, 0)`),H(e,`.slide-background`).forEach((e,t)=>{U(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()),H(this.Reveal.getRevealElement(),Pe).forEach(e=>{U(e,``),e.removeEventListener(`click`,this.onSlideClicked,!0)}),H(this.Reveal.getBackgroundsElement(),`.slide-background`).forEach(e=>{U(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)}}}},it=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?Se(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()}},at=class{constructor(e){ge(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 V(B({},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()}},ot=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=H(t,`.navigate-left`),this.controlsRight=H(t,`.navigate-right`),this.controlsUp=H(t,`.navigate-up`),this.controlsDown=H(t,`.navigate-down`),this.controlsPrev=H(t,`.navigate-prev`),this.controlsNext=H(t,`.navigate-next`),this.controlsFullscreen=H(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`];je&&(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();Se(t.embedded?n:n.parentElement)}},st=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()}},ct=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()}}},lt=(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)},ut=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`?lt(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=>{lt(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=[]}},dt=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()}},ft=40,pt=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(xe(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)je&&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>ft&&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>ft&&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))}},K=`focus`,mt=`blur`,ht=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!==K&&(this.Reveal.getRevealElement().classList.add(`focused`),document.addEventListener(`pointerdown`,this.onDocumentPointerDown,!1)),this.state=K}blur(){this.state!==mt&&(this.Reveal.getRevealElement().classList.remove(`focused`),document.removeEventListener(`pointerdown`,this.onDocumentPointerDown,!1)),this.state=mt}isFocused(){return this.state===K}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()}},gt=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()}},_t=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)}},vt={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:[]},yt=`6.0.0`;function bt(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 Ne(n),S=new Ue(n),C=new We(n),w=new Ye(n),T=new qe(n),E=new et(n),D=new tt(n),O=new nt(n),k=new rt(n),A=new it(n),j=new at(n),M=new ot(n),N=new st(n),ee=new ct(n),P=new ut(n),F=new dt(n),te=new ht(n),ne=new pt(n),I=new gt(n);function re(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=B(B(B(B(B({},vt),r),t),a),we()),/print-pdf/gi.test(window.location.search)&&(r.view=`print`),ie(),window.addEventListener(`load`,Oe,!1),P.load(r.plugins,r.dependencies).then(ae),new Promise(e=>n.on(`ready`,e))}function ie(){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 ae(){i!==!1&&(a=!0,se(),ce(),fe(),ue(),de(),q(),pe(),T.update(!0),oe(),j.readURL(),setTimeout(()=>{m.slides.classList.remove(`no-transition`),m.wrapper.classList.add(`ready`),G({type:`ready`,data:{indexh:o,indexv:s,currentSlide:l}})},1))}function oe(){let e=r.view===`print`,t=r.view===`scroll`||r.view===`reader`;(e||t)&&(e?he():ne.unbind(),m.viewport.classList.add(`loading-scroll-mode`),e?document.readyState===`complete`?D.activate():window.addEventListener(`load`,()=>D.activate()):E.activate())}function se(){r.showHiddenSlides||H(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 ce(){m.slides.classList.add(`no-transition`),Ae?m.wrapper.classList.add(`no-hover`):m.wrapper.classList.remove(`no-hover`),T.render(),S.render(),C.render(),M.render(),N.render(),I.render(),m.pauseOverlay=Ce(m.wrapper,`div`,`pause-overlay`,r.controls?`<button class="resume-button">Resume presentation</button>`:null),m.statusElement=le(),m.wrapper.setAttribute(`role`,`application`)}function le(){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 L(e){m.statusElement.textContent=e}function R(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+=z(n))}Array.from(e.childNodes).forEach(e=>{t+=R(e)}),[`P`,`DIV`,`UL`,`OL`,`LI`,`H1`,`H2`,`H3`,`H4`,`H5`,`H6`,`BLOCKQUOTE`].includes(e.tagName)&&t.trim()!==``&&(t=z(t))}}return t=t.trim(),t===``?``:t+` `}function z(e){let t=e.trim();return t===``?e:/[.!?]$/.test(t)?t:t+`.`}function ue(){setInterval(()=>{(!E.isActive()&&m.wrapper.scrollTop!==0||m.wrapper.scrollLeft!==0)&&(m.wrapper.scrollTop=0,m.wrapper.scrollLeft=0)},1e3)}function de(){document.addEventListener(`fullscreenchange`,an),document.addEventListener(`webkitfullscreenchange`,an)}function fe(){r.postMessage&&window.addEventListener(`message`,$t,!1)}function pe(e){let t=B({},r);if(typeof e==`object`&&ve(r,e),n.isReady()===!1)return;let i=m.wrapper.querySelectorAll(Pe).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&&Ct(),ye(m.wrapper,`embedded`,r.embedded),ye(m.wrapper,`rtl`,r.rtl),ye(m.wrapper,`center`,r.center),r.pause===!1&&Xe(),w.reset(),_&&=(_.destroy(),null),i>1&&r.autoSlide&&r.autoSlideStoppable&&(_=new _t(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),I.configure(r,t),te.configure(r,t),ee.configure(r,t),M.configure(r,t),N.configure(r,t),A.configure(r,t),O.configure(r,t),S.configure(r,t),xt()}function me(){window.addEventListener(`resize`,nn,!1),r.touch&&ne.bind(),r.keyboard&&A.bind(),r.progress&&N.bind(),r.respondToHashChanges&&j.bind(),M.bind(),te.bind(),m.slides.addEventListener(`click`,tn,!1),m.slides.addEventListener(`transitionend`,en,!1),m.pauseOverlay.addEventListener(`click`,Xe,!1),r.focusBodyOnPageVisibilityChange&&document.addEventListener(`visibilitychange`,rn,!1)}function he(){ne.unbind(),te.unbind(),A.unbind(),M.unbind(),N.unbind(),j.unbind(),window.removeEventListener(`resize`,nn,!1),m.slides.removeEventListener(`click`,tn,!1),m.slides.removeEventListener(`transitionend`,en,!1),m.pauseOverlay.removeEventListener(`click`,Xe,!1)}function ge(){i=!1,a!==!1&&(he(),Ut(),I.destroy(),te.destroy(),F.destroy(),P.destroy(),ee.destroy(),M.destroy(),N.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`,Oe,!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(Pe)).forEach(e=>{e.style.removeProperty(`display`),e.style.removeProperty(`top`),e.removeAttribute(`hidden`),e.removeAttribute(`aria-hidden`)}))}function _e(t,n,r){e.addEventListener(t,n,r)}function xe(t,n,r){e.removeEventListener(t,n,r)}function Se(e){typeof e.layout==`string`&&(p.layout=e.layout),typeof e.overview==`string`&&(p.overview=e.overview),p.layout?U(m.slides,p.layout+` `+p.overview):U(m.slides,p.overview)}function G({target:e=m.wrapper,type:t,data:n,bubbles:r=!0}){let i=document.createEvent(`HTMLEvents`,1,2);return i.initEvent(t,r,!0),ve(i,n),e.dispatchEvent(i),e===m.wrapper&&De(t),i}function Ee(e){G({type:`slidechanged`,data:{indexh:o,indexv:s,previousSlide:c,currentSlide:l,origin:e}})}function De(e,t){if(r.postMessageEvents&&window.parent!==window.self){let n={namespace:`reveal`,eventName:e,state:Y()};ve(n,t),window.parent.postMessage(JSON.stringify(n),`*`)}}function Oe(){if(m.wrapper&&!D.isActive()){let e=m.viewport.offsetWidth,t=m.viewport.offsetHeight;if(!r.disableLayout){Ae&&!r.embedded&&document.documentElement.style.setProperty(`--vh`,window.innerHeight*.01+`px`);let n=E.isActive()?Me(e,t):Me(),i=f;ke(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=``,Se({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`,Se({layout:`translate(-50%, -50%) scale(`+f+`)`}));let a=Array.from(m.wrapper.querySelectorAll(Pe));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&&G({type:`resize`,data:{oldScale:i,scale:f,size:n}})}je(),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(),N.update(),T.updateParallax(),k.isActive()&&k.update()}}function ke(e,t){H(m.slides,`section > .stretch, section > .r-stretch`).forEach(n=>{let r=Te(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 je(){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 Le(e,t){typeof e==`object`&&typeof e.setAttribute==`function`&&e.setAttribute(`data-previous-indexv`,t||0)}function ze(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 Be(e=l){return e&&e.parentNode&&!!e.parentNode.nodeName.match(/section/i)}function Ve(e=l){return e.classList.contains(`.stack`)||e.querySelector(`section`)!==null}function He(){return l&&Be(l)?!l.nextElementSibling:!1}function Ge(){return o===0&&s===0}function Ke(){return l?!(l.nextElementSibling||Be(l)&&l.parentNode.nextElementSibling):!1}function Je(){if(r.pause){let e=m.wrapper.classList.contains(`paused`);Ut(),m.wrapper.classList.add(`paused`),e===!1&&G({type:`paused`})}}function Xe(){let e=m.wrapper.classList.contains(`paused`);m.wrapper.classList.remove(`paused`),Ht(),e&&G({type:`resumed`})}function Ze(e){typeof e==`boolean`?e?Je():Xe():Qe()?Xe():Je()}function Qe(){return m.wrapper.classList.contains(`paused`)}function $e(e){typeof e==`boolean`?e?C.show():C.hide():C.isVisible()?C.hide():C.show()}function lt(e){typeof e==`boolean`?e?Gt():Wt():b?Gt():Wt()}function ft(){return!!(g&&!b)}function K(t,n,i,a){if(G({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(Fe);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=ze(u[t])),c&&c.parentNode&&c.parentNode.classList.contains(`stack`)&&Le(c.parentNode,s);let f=d.concat();d.length=0;let p=o||0,g=s||0;o=wt(Fe,t===void 0?o:t),s=wt(Ie,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=mt(c,l,p,g),b&&m.slides.classList.add(`disable-slide-transitions`)),Dt(),Oe(),k.isActive()&&k.update(),i!==void 0&&O.goto(i),c&&c!==l&&(c.classList.remove(`present`),c.setAttribute(`aria-hidden`,`true`),Ge()&&setTimeout(()=>{Ft().forEach(e=>{Le(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]),G({type:d[e]})}for(;f.length;)m.viewport.classList.remove(f.pop());_&&(x.afterSlideChanged(),Ee(a)),(_||!c)&&(x.stopEmbeddedContent(c),x.startEmbeddedContent(l)),requestAnimationFrame(()=>{L(R(l))}),N.update(),M.update(),I.update(),T.update(),T.updateParallax(),S.update(),O.update(),j.writeURL(),Ht(),b&&(setTimeout(()=>{m.slides.classList.remove(`disable-slide-transitions`)},0),r.autoAnimate&&w.run(c,l))}function mt(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 bt(e,t,n){let i=o||0;o=t,s=n;let a=l!==e;c=l,l=e,l&&c&&r.autoAnimate&&mt(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(()=>{L(R(l))}),Ee()}function xt(){he(),me(),Oe(),g=r.autoSlide,Ht(),T.create(),j.writeURL(),r.sortFragmentsOnSync===!0&&O.sortAll(),o!==void 0&&(o=wt(Fe,o),s=wt(Ie,s)),M.update(),N.update(),Dt(),I.update(),I.updateVisibility(),F.update(),T.update(!0),S.update(),x.formatEmbeddedContent(),r.autoPlayMedia===!1?x.stopEmbeddedContent(l,{unloadIframes:!1}):x.startEmbeddedContent(l),k.isActive()&&k.layout(),G({type:`sync`})}function St(e=l){T.sync(e),O.sync(e),x.load(e),T.update(),I.update(),G({type:`slidesync`,data:{slide:e}})}function q(){Nt().forEach(e=>{H(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 Ct(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&&Ct(i)})}function wt(e,t){let n=H(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&&!Be(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&&Tt(i)):e>t?(i.classList.add(c?`past`:`future`),r.fragments&&Et(i)):e===t&&r.fragments&&(o?Et(i):s&&Tt(i))}let e=n[t],c=e.classList.contains(`present`);e.classList.add(`present`),e.removeAttribute(`hidden`),e.removeAttribute(`aria-hidden`),c||G({target:e,type:`visible`,bubbles:!1});let l=e.getAttribute(`data-state`);l&&(d=d.concat(l.split(` `)))}else t=0;return t}function Tt(e){H(e,`.fragment`).forEach(e=>{e.classList.add(`visible`),e.classList.remove(`current-fragment`)})}function Et(e){H(e,`.fragment.visible`).forEach(e=>{e.classList.remove(`visible`,`current-fragment`)})}function Dt(){let e=Nt(),t=e.length,n,i;if(t&&o!==void 0){let a=k.isActive(),c=a?10:r.viewDistance;Ae&&(c=a?6:r.mobileViewDistance),D.isActive()&&(c=Number.MAX_VALUE);for(let l=0;l<t;l++){let u=e[l],d=H(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:ze(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(Fe),n=m.wrapper.querySelectorAll(Ie),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=Be(e),i=r?e.parentNode:e,a=Nt();t=Math.max(a.indexOf(i),0),n=void 0,r&&(n=Math.max(H(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 H(m.wrapper,`.slides section:not(.stack):not([data-visibility="uncounted"])`)}function Nt(){return H(m.wrapper,Fe)}function Pt(){return H(m.wrapper,`.slides>section>section`)}function Ft(){return H(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 J(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 Bt(e,t){let n=typeof e==`number`?J(e,t):e;if(n)return n.slideBackgroundElement}function Y(){let e=jt();return B({indexh:e.h,indexv:e.v,indexf:e.f,paused:Qe(),overview:k.isActive()},F.getState())}function Vt(e){if(typeof e==`object`){K(be(e.indexh),be(e.indexv),be(e.indexf));let t=be(e.paused),n=be(e.overview);typeof t==`boolean`&&t!==Qe()&&Ze(t),typeof n==`boolean`&&n!==k.isActive()&&k.toggle(n),F.setState(e)}}function Ht(){if(Ut(),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&&H(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&&!Qe()&&!k.isActive()&&(!Ke()||O.availableRoutes().next||r.loop===!0)&&(v=setTimeout(()=>{typeof r.autoSlideMethod==`function`?r.autoSlideMethod():Zt(),Ht()},g),y=Date.now()),_&&_.setPlaying(v!==-1)}}function Ut(){clearTimeout(v),v=-1}function Wt(){g&&!b&&(b=!0,G({type:`autoslidepaused`}),clearTimeout(v),_&&_.setPlaying(!1))}function Gt(){g&&b&&(b=!1,G({type:`autoslideresumed`}),Ht())}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?H(m.wrapper,`.slides>section.future`).pop():H(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&&He()&&(t.down=!1),t.down?Yt({skipFragments:e}):r.rtl?Kt({skipFragments:e}):qt({skipFragments:e})}}function Qt(e){r.autoSlideStoppable&&Wt()}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(Re.test(t.method)===!1){let e=n[t.method].apply(n,t.args);De(`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`,G({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){Oe()}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){Ke()&&r.loop===!1?(K(0,0),Gt()):b?Gt():Wt()}let sn={VERSION:yt,initialize:re,configure:pe,destroy:ge,sync:xt,syncSlide:St,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:_e,off:xe,addEventListener:_e,removeEventListener:xe,layout:Oe,shuffle:Ct,availableRoutes:Ot,availableFragments:O.availableRoutes.bind(O),toggleHelp:F.toggleHelp.bind(F),toggleOverview:k.toggle.bind(k),toggleScrollView:E.toggle.bind(E),togglePause:Ze,toggleAutoSlide:lt,toggleJumpToSlide:$e,isFirstSlide:Ge,isLastSlide:Ke,isLastVerticalSlide:He,isVerticalSlide:Be,isVerticalStack:Ve,isPaused:Qe,isAutoSliding:ft,isSpeakerNotes:I.isSpeakerNotesWindow.bind(I),isOverview:k.isActive.bind(k),isFocused:te.isFocused.bind(te),isOverlayOpen:F.isOpen.bind(F),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:F.previewIframe.bind(F),previewImage:F.previewImage.bind(F),previewVideo:F.previewVideo.bind(F),showPreview:F.previewIframe.bind(F),hidePreview:F.close.bind(F),addEventListeners:me,removeEventListeners:he,dispatchEvent:G,getState:Y,setState:Vt,getProgress:At,getIndices:jt,getSlidesAttributes:Rt,getSlidePastCount:kt,getTotalSlides:zt,getSlide:J,getPreviousSlide:()=>c,getCurrentSlide:()=>l,getSlideBackground:Bt,getSlideNotes:I.getSlideNotes.bind(I),getSlides:Mt,getHorizontalSlides:Nt,getVerticalSlides:Pt,hasHorizontalSlides:It,hasVerticalSlides:Lt,hasNavigatedHorizontally:()=>u.hasNavigatedHorizontally,hasNavigatedVertically:()=>u.hasNavigatedVertically,shouldAutoAnimateBetween:mt,addKeyBinding:A.addKeyBinding.bind(A),removeKeyBinding:A.removeKeyBinding.bind(A),triggerKey:A.triggerKey.bind(A),registerKeyboardShortcut:A.registerKeyboardShortcut.bind(A),getComputedSlideSize:Me,setCurrentScrollPage:bt,removeHiddenSlides:se,getScale:()=>f,getConfig:()=>r,getQueryHash:we,getSlidePath:j.getHash.bind(j),getRevealElement:()=>e,getSlidesElement:()=>m.slides,getViewportElement:()=>m.viewport,getBackgroundsElement:()=>T.element,registerPlugin:P.registerPlugin.bind(P),hasPlugin:P.hasPlugin.bind(P),getPlugin:P.getPlugin.bind(P),getPlugins:P.getRegisteredPlugins.bind(P)};return ve(n,V(B({},sn),{announceStatus:L,getStatusText:R,focus:te,scroll:E,progress:N,controls:M,location:j,overview:k,keyboard:A,fragments:O,backgrounds:T,slideContent:x,slideNumber:S,onUserInput:Qt,closeOverlay:F.close.bind(F),updateSlidesVisibility:Dt,layoutSlideContents:ke,transformSlides:Se,cueAutoSlide:Ht,cancelAutoSlide:Ut})),sn}var xt=bt,St=[];xt.initialize=e=>{let t=document.querySelector(`.reveal`);if(!(t instanceof HTMLElement))throw Error(`Unable to find presentation root (<div class="reveal">).`);return Object.assign(xt,new bt(t,e)),St.map(e=>e(xt)),xt.initialize()},[`configure`,`on`,`off`,`addEventListener`,`removeEventListener`,`registerPlugin`].forEach(e=>{xt[e]=(...t)=>{St.push(n=>n[e].call(null,...t))}}),xt.isReady=()=>!1,xt.VERSION=yt;var q=b(),Ct=(0,L.createContext)(null),wt=[];function Tt(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 Et(e,t){e&&(typeof e==`function`?e(t):e.current=t)}function Dt(e){return e.tagName===`SECTION`}function Ot(e,t,n){return Array.from(e.children).filter(Dt).map(e=>{let r=t.get(e);r===void 0&&(r=n.current++,t.set(e,r));let i=Ot(e,t,n);return i.length>0?[r,i]:r})}function kt(e,t,n){return e?JSON.stringify(Ot(e,t,n)):`[]`}function At({config:e,plugins:t=wt,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,L.useRef)(null),v=(0,L.useRef)(null),y=(0,L.useRef)(null),[b,x]=(0,L.useState)(null),S=(0,L.useRef)(t),C=(0,L.useRef)(!1),w=(0,L.useRef)(e),T=(0,L.useRef)(null),E=(0,L.useRef)(new WeakMap),D=(0,L.useRef)(1),O=(0,L.useRef)(!1),k=(0,L.useRef)(0);return(0,L.useEffect)(()=>{if(O.current=!0,k.current+=1,y.current)y.current.isReady()&&x(y.current);else{let t=new xt(_.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,L.useEffect)(()=>(Et(p,b),()=>Et(p,null)),[p,b]),(0,L.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,L.useLayoutEffect)(()=>{!b||!y.current?.isReady()||Tt(w.current,e)&&(C.current=!0,y.current.configure(e??{}),w.current=e)},[b,e]),(0,L.useLayoutEffect)(()=>{let e=C.current;C.current=!1;let t=kt(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)(Ct.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 jt={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 Mt(e){return JSON.stringify(Object.entries(e).filter(([e])=>e.startsWith(`data-`)).sort(([e],[t])=>e.localeCompare(t)))}function Nt(e,t){let n={...e},r=n;for(let[e,n]of Object.entries(jt)){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 Pt({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,L.useContext)(Ct),A=(0,L.useRef)(null),j=(0,L.useRef)(null),M=(0,L.useRef)(null),N=Nt(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}),ee=Mt(N);return(0,L.useLayoutEffect)(()=>{let e=A.current;if(!k||!e||typeof k.syncSlide!=`function`)return;if(j.current!==k){j.current=k,M.current=ee;return}if(ee===`[]`)return;let t=j.current===k,n=M.current===ee;t&&n||(k.syncSlide(e),j.current=k,M.current=ee)},[k,ee]),(0,q.jsx)(`section`,{ref:A,...N,children:e})}function Ft({className:e,style:t,children:n}){return(0,q.jsx)(`section`,{className:e,style:t,children:n})}function It(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Lt=It();function Rt(e){Lt=e}var zt={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 Bt=(()=>{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)}}>`)},Vt=/^(?:[ \t]*(?:\n|$))+/,Ht=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Ut=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Wt=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Gt=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Kt=/ {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+|$)/,Jt=J(qt).replace(/bull/g,Kt).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(),Yt=J(qt).replace(/bull/g,Kt).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(),Xt=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Zt=/^[^\n]+/,Qt=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,$t=J(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,Qt).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),en=J(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Kt).getRegex(),tn=`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`,nn=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,rn=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`,nn).replace(`tag`,tn).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),an=J(Xt).replace(`hr`,Wt).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`,tn).getRegex(),on={blockquote:J(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,an).getRegex(),code:Ht,def:$t,fences:Ut,heading:Gt,hr:Wt,html:rn,lheading:Jt,list:en,newline:Vt,paragraph:an,table:zt,text:Zt},sn=J(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,Wt).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`,tn).getRegex(),cn={...on,lheading:Yt,table:sn,paragraph:J(Xt).replace(`hr`,Wt).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,sn).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`,tn).getRegex()},ln={...on,html:J(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,nn).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:zt,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:J(Xt).replace(`hr`,Wt).replace(`heading`,` *#{1,6} *[^
|
|
34
|
-
]`).replace(`lheading`,Jt).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},un=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,dn=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,fn=/^( {2,}|\\)\n(?!\s*$)/,pn=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,mn=/[\p{P}\p{S}]/u,hn=/[\s\p{P}\p{S}]/u,gn=/[^\s\p{P}\p{S}]/u,_n=J(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,hn).getRegex(),vn=/(?!~)[\p{P}\p{S}]/u,yn=/(?!~)[\s\p{P}\p{S}]/u,bn=/(?:[^\s\p{P}\p{S}]|~)/u,xn=J(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,Bt?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),Sn=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Cn=J(Sn,`u`).replace(/punct/g,mn).getRegex(),wn=J(Sn,`u`).replace(/punct/g,vn).getRegex(),Tn=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,En=J(Tn,`gu`).replace(/notPunctSpace/g,gn).replace(/punctSpace/g,hn).replace(/punct/g,mn).getRegex(),Dn=J(Tn,`gu`).replace(/notPunctSpace/g,bn).replace(/punctSpace/g,yn).replace(/punct/g,vn).getRegex(),On=J(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,gn).replace(/punctSpace/g,hn).replace(/punct/g,mn).getRegex(),kn=J(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,mn).getRegex(),An=J(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,gn).replace(/punctSpace/g,hn).replace(/punct/g,mn).getRegex(),jn=J(/\\(punct)/,`gu`).replace(/punct/g,mn).getRegex(),Mn=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(),Nn=J(nn).replace(`(?:-->|$)`,`-->`).getRegex(),Pn=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`,Nn).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Fn=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,In=J(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace(`label`,Fn).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Ln=J(/^!?\[(label)\]\[(ref)\]/).replace(`label`,Fn).replace(`ref`,Qt).getRegex(),Rn=J(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,Qt).getRegex(),zn=J(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,Ln).replace(`nolink`,Rn).getRegex(),Bn=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Vn={_backpedal:zt,anyPunctuation:jn,autolink:Mn,blockSkip:xn,br:fn,code:dn,del:zt,delLDelim:zt,delRDelim:zt,emStrongLDelim:Cn,emStrongRDelimAst:En,emStrongRDelimUnd:On,escape:un,link:In,nolink:Rn,punctuation:_n,reflink:Ln,reflinkSearch:zn,tag:Pn,text:pn,url:zt},Hn={...Vn,link:J(/^!?\[(label)\]\((.*?)\)/).replace(`label`,Fn).getRegex(),reflink:J(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,Fn).getRegex()},Un={...Vn,emStrongRDelimAst:Dn,emStrongLDelim:wn,delLDelim:kn,delRDelim:An,url:J(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`protocol`,Bn).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`,Bn).getRegex()},Wn={...Un,br:J(fn).replace(`{2,}`,`*`).getRegex(),text:J(Un.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},Gn={normal:on,gfm:cn,pedantic:ln},Kn={normal:Vn,gfm:Un,breaks:Wn,pedantic:Hn},qn={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},Jn=e=>qn[e];function Yn(e,t){if(t){if(Y.escapeTest.test(e))return e.replace(Y.escapeReplace,Jn)}else if(Y.escapeTestNoEncode.test(e))return e.replace(Y.escapeReplaceNoEncode,Jn);return e}function Xn(e){try{e=encodeURI(e).replace(Y.percentDecode,`%`)}catch{return null}return e}function Zn(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 Qn(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 $n(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 er(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 tr(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 nr(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 rr=class{options;rules;lexer;constructor(e){this.options=e||Lt}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:Qn(e,`
|
|
37
|
-
`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=nr(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=Qn(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:Qn(t[0],`
|
|
38
|
-
`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=Qn(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=er(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=Zn(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(Zn(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=Qn(e.slice(0,-1),`\\`);if((e.length-t.length)%2==0)return}else{let e=$n(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)),tr(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 tr(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}}}},ir=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Lt,this.options.tokenizer=this.options.tokenizer||new rr,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:Gn.normal,inline:Kn.normal};this.options.pedantic?(t.block=Gn.pedantic,t.inline=Kn.pedantic):this.options.gfm&&(t.block=Gn.gfm,t.inline=this.options.breaks?Kn.breaks:Kn.gfm),this.tokenizer.rules=t}static get rules(){return{block:Gn,inline:Kn}}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}},ar=class{options;parser;constructor(e){this.options=e||Lt}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-`+Yn(r)+`">`+(n?i:Yn(i,!0))+`</code></pre>
|
|
74
|
-
`:`<pre><code>`+(n?i:Yn(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>${Yn(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=Xn(e);if(i===null)return r;e=i;let a=`<a href="`+e+`"`;return t&&(a+=` title="`+Yn(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=Xn(e);if(i===null)return Yn(n);e=i;let a=`<img src="${e}" alt="${Yn(n)}"`;return t&&(a+=` title="${Yn(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:Yn(e.text)}},or=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}},sr=class e{options;renderer;textRenderer;constructor(e){this.options=e||Lt,this.options.renderer=this.options.renderer||new ar,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new or}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}},cr=class{options;block;constructor(e){this.options=e||Lt}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?ir.lex:ir.lexInline}provideParser(){return this.block?sr.parse:sr.parseInline}},lr=new class{defaults=It();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=sr;Renderer=ar;TextRenderer=or;Lexer=ir;Tokenizer=rr;Hooks=cr;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 ar(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 rr(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 cr;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]=cr.passThroughHooks.has(n)?e=>{if(this.defaults.async&&cr.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 ir.lex(e,t??this.defaults)}parser(e,t){return sr.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?ir.lex:ir.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?sr.parse:sr.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?ir.lex:ir.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?sr.parse:sr.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>`+Yn(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function X(e,t){return lr.parse(e,t)}X.options=X.setOptions=function(e){return lr.setOptions(e),X.defaults=lr.defaults,Rt(X.defaults),X},X.getDefaults=It,X.defaults=Lt,X.use=function(...e){return lr.use(...e),X.defaults=lr.defaults,Rt(X.defaults),X},X.walkTokens=function(e,t){return lr.walkTokens(e,t)},X.parseInline=lr.parseInline,X.Parser=sr,X.parser=sr.parse,X.Renderer=ar,X.TextRenderer=or,X.Lexer=ir,X.lexer=ir.lex,X.Tokenizer=rr,X.Hooks=cr,X.parse=X,X.options,X.setOptions,X.use,X.walkTokens,X.parseInline,sr.parse,ir.lex;function ur(...e){return e.filter(Boolean).join(` `)}function dr(e,t){return e?t?{...e,...t}:e:t}function fr({animation:e,index:t,as:n,asChild:r,className:i,style:a,children:o}){let s=ur(`fragment`,e,i);if(r){let e;try{e=L.Children.only(o)}catch{throw Error(`Fragment with asChild expects exactly one React element child.`)}if(!(0,L.isValidElement)(e)||e.type===L.Fragment)throw Error(`Fragment with asChild expects exactly one non-Fragment React element child.`);let n={className:ur(e.props.className,s),style:dr(e.props.style,a)};return t!==void 0&&(n[`data-fragment-index`]=t),(0,L.cloneElement)(e,n)}return(0,q.jsx)(n??`span`,{className:s,style:a,"data-fragment-index":t,children:o})}var pr=8,mr=1;function hr(e){let{scrollHeight:t,clientHeight:n,scrollTop:r}=e;return t>n+mr&&r<=pr}function gr(e){let t=e.querySelector(`.fragment:not(.visible)`);return t?t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop:e.scrollHeight}function _r(e,t){let n=(0,R.c)(4),[r,i]=(0,L.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(hr({scrollHeight:gr(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,L.useEffect)(a,o),r}var vr=e=>{let t=(0,R.c)(6),{className:n}=e,r;t[0]===n?r=t[1]:(r=y(`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)(j,{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},yr=e=>{let t=(0,R.c)(10),{children:n,className:r}=e,i=(0,L.useRef)(null),a=(0,L.useRef)(null),o=_r(i,a),s;t[0]===r?s=t[1]:(s=y(`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)(vr,{}),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 br({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 xr({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 Sr(e,t){let{h:n,v:r,f:i}=t;return e.get(`${n},${r},${i}`)??e.get(`${n},${r},-1`)}function Cr({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 wr({activeIndex:e,cells:t,cellToTarget:n,getId:r}){if(e==null)return;let i=t[e];return i?n.get(r(i))||(Cr({start:e-1,stop:-1,step:-1,cells:t,cellToTarget:n,getId:r})??Cr({start:e+1,stop:t.length,step:1,cells:t,cellToTarget:n,getId:r})):void 0}function Tr(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 Er=({cell:e})=>{let[r]=d(),{theme:u}=ne(),p=ie(e.id),m=t(_),h=i(),g=t(f),v=(0,L.useRef)(null),b=(0,L.useRef)(null),[x,S]=(0,L.useState)(),C=n(()=>{c({autoInstantiate:g,createNewCell:h.createNewCell})}),w=n(()=>void 0),T=r.display.cell_output,E=e.output!=null,O=s({executionTime:e.runElapsedTimeMs??e.lastExecutionTime,status:e.status,errored:e.errored,interrupted:e.interrupted,stopped:e.stopped}),A=a({edited:e.edited,interrupted:e.interrupted,staleInputs:e.staleInputs,disabled:e.config.disabled,status:e.status}),j=y(`marimo-cell`,`hover-actions-parent`,`interactive`,o({needsRun:A,errored:e.errored,stopped:e.stopped,disabled:e.config.disabled,status:e.status})),M=(0,q.jsx)(D,{cellId:e.id,status:e.status,output:e.output,stale:l(e,!1)}),N=(0,q.jsxs)(`div`,{className:`absolute top-1 right-2 z-10 flex items-center gap-1.5`,children:[(0,q.jsx)(re,{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:O}),(0,q.jsx)(ee,{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)(te,{edited:e.edited,status:e.status,needsRun:A,connectionState:m.state,config:e.config,onClick:p}),(0,q.jsx)(F,{status:e.status,connectionState:m.state})]})]}),I=(0,q.jsxs)(`div`,{tabIndex:-1,className:j,...k(e.id,e.name),children:[(0,q.jsx)(P,{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:b,hasOutput:E,showHiddenCode:w,languageAdapter:x,setLanguageAdapter:S,showLanguageToggles:!1,inlineAiTooltip:!1,outputArea:T,tooltipParentSelector:`.reveal-viewport`}),N]});return(0,q.jsxs)(q.Fragment,{children:[T===`above`&&M,I,T===`below`&&M]})},Dr=e=>{let t=(0,R.c)(22),{cell:n}=e,[r]=d(),i=r.display.cell_output,a;t[0]===n.code?a=t[1]:(a=ce(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)(D,{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=k(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)(v,{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 y=_,b=i===`above`&&m,x=i===`below`&&m,S;return t[18]!==y||t[19]!==b||t[20]!==x?(S=(0,q.jsxs)(q.Fragment,{children:[b,y,x]}),t[18]=y,t[19]=b,t[20]=x,t[21]=S):S=t[21],S},Or=300,kr=e=>{let t=(0,R.c)(25),{layout:r,setLayout:i,cellId:a,className:o}=e,s=a?r.cells.get(a)?.speakerNotes??``:``,[c,l]=(0,L.useState)(s),u=(0,L.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=I(f,Or),m=(0,L.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,L.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,L.useEffect)(_,v);let b;t[12]!==a||t[13]!==p?(b=e=>{l(e),a&&(u.current=!0,p(a,e))},t[12]=a,t[13]=p,t[14]=b):b=t[14];let x=b,S;t[15]===o?S=t[16]:(S=y(`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)(le,{className:`h-3.5 w-3.5`}),(0,q.jsx)(`span`,{children:`Speaker notes`})]}),t[17]=C):C=t[17];let T;t[18]!==a||t[19]!==c||t[20]!==x?(T=(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:w.stopPropagation(),placeholder:`Add notes for this slide. Visible to you in speaker view (press S during presentation).`,className:y(`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]=T):T=t[21];let E;return t[22]!==S||t[23]!==T?(E=(0,q.jsxs)(`section`,{className:S,"aria-label":`Speaker notes`,onKeyDown:Ar,children:[C,T]}),t[22]=S,t[23]=T,t[24]=E):E=t[24],E};function Ar(e){return e.stopPropagation()}var jr=`
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
`,Mr=(e,t)=>e.map(e=>t.get(e.id)?.speakerNotes??``).filter(e=>e.trim().length>0).join(`
|
|
96
|
-
|
|
97
|
-
`),Nr=(e,t)=>{let n=e.blocks.map(e=>Mr(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(jr);s.length>0&&i.set(t,s)}),{slideLevel:r,cumulativeByBlock:i}},Pr=`<!--
|
|
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 Fr(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Ir=Fr();function Lr(e){Ir=e}var Rr={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 zr=(()=>{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)}}>`)},Br=/^(?:[ \t]*(?:\n|$))+/,Vr=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Hr=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Ur=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Wr=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Gr=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Kr=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,qr=Z(Kr).replace(/bull/g,Gr).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(),Jr=Z(Kr).replace(/bull/g,Gr).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(),Yr=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Xr=/^[^\n]+/,Zr=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Qr=Z(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,Zr).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),$r=Z(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Gr).getRegex(),ei=`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`,ti=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,ni=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`,ti).replace(`tag`,ei).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ri=Z(Yr).replace(`hr`,Ur).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`,ei).getRegex(),ii={blockquote:Z(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,ri).getRegex(),code:Vr,def:Qr,fences:Hr,heading:Wr,hr:Ur,html:ni,lheading:qr,list:$r,newline:Br,paragraph:ri,table:Rr,text:Xr},ai=Z(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,Ur).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`,ei).getRegex(),oi={...ii,lheading:Jr,table:ai,paragraph:Z(Yr).replace(`hr`,Ur).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,ai).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`,ei).getRegex()},si={...ii,html:Z(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,ti).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:Rr,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Z(Yr).replace(`hr`,Ur).replace(`heading`,` *#{1,6} *[^
|
|
1010
|
-
]`).replace(`lheading`,qr).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},ci=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,li=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,ui=/^( {2,}|\\)\n(?!\s*$)/,di=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,fi=/[\p{P}\p{S}]/u,pi=/[\s\p{P}\p{S}]/u,mi=/[^\s\p{P}\p{S}]/u,hi=Z(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,pi).getRegex(),gi=/(?!~)[\p{P}\p{S}]/u,_i=/(?!~)[\s\p{P}\p{S}]/u,vi=/(?:[^\s\p{P}\p{S}]|~)/u,yi=/(?![*_])[\p{P}\p{S}]/u,bi=/(?![*_])[\s\p{P}\p{S}]/u,xi=/(?:[^\s\p{P}\p{S}]|[*_])/u,Si=Z(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,zr?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),Ci=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,wi=Z(Ci,`u`).replace(/punct/g,fi).getRegex(),Ti=Z(Ci,`u`).replace(/punct/g,gi).getRegex(),Ei=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,Di=Z(Ei,`gu`).replace(/notPunctSpace/g,mi).replace(/punctSpace/g,pi).replace(/punct/g,fi).getRegex(),Oi=Z(Ei,`gu`).replace(/notPunctSpace/g,vi).replace(/punctSpace/g,_i).replace(/punct/g,gi).getRegex(),ki=Z(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,mi).replace(/punctSpace/g,pi).replace(/punct/g,fi).getRegex(),Ai=Z(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,yi).getRegex(),ji=Z(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,xi).replace(/punctSpace/g,bi).replace(/punct/g,yi).getRegex(),Mi=Z(/\\(punct)/,`gu`).replace(/punct/g,fi).getRegex(),Ni=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(),Pi=Z(ti).replace(`(?:-->|$)`,`-->`).getRegex(),Fi=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`,Pi).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Ii=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,Li=Z(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace(`label`,Ii).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Ri=Z(/^!?\[(label)\]\[(ref)\]/).replace(`label`,Ii).replace(`ref`,Zr).getRegex(),zi=Z(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,Zr).getRegex(),Bi=Z(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,Ri).replace(`nolink`,zi).getRegex(),Vi=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Hi={_backpedal:Rr,anyPunctuation:Mi,autolink:Ni,blockSkip:Si,br:ui,code:li,del:Rr,delLDelim:Rr,delRDelim:Rr,emStrongLDelim:wi,emStrongRDelimAst:Di,emStrongRDelimUnd:ki,escape:ci,link:Li,nolink:zi,punctuation:hi,reflink:Ri,reflinkSearch:Bi,tag:Fi,text:di,url:Rr},Ui={...Hi,link:Z(/^!?\[(label)\]\((.*?)\)/).replace(`label`,Ii).getRegex(),reflink:Z(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,Ii).getRegex()},Wi={...Hi,emStrongRDelimAst:Oi,emStrongLDelim:Ti,delLDelim:Ai,delRDelim:ji,url:Z(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`protocol`,Vi).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`,Vi).getRegex()},Gi={...Wi,br:Z(ui).replace(`{2,}`,`*`).getRegex(),text:Z(Wi.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},Ki={normal:ii,gfm:oi,pedantic:si},qi={normal:Hi,gfm:Wi,breaks:Gi,pedantic:Ui},Ji={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},Yi=e=>Ji[e];function Xi(e,t){if(t){if(Q.escapeTest.test(e))return e.replace(Q.escapeReplace,Yi)}else if(Q.escapeTestNoEncode.test(e))return e.replace(Q.escapeReplaceNoEncode,Yi);return e}function Zi(e){try{e=encodeURI(e).replace(Q.percentDecode,`%`)}catch{return null}return e}function Qi(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 $i(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 ea(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 ta(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 na(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 ra(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 ia=class{options;rules;lexer;constructor(e){this.options=e||Ir}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:$i(e,`
|
|
1013
|
-
`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=ra(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=$i(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:$i(t[0],`
|
|
1014
|
-
`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=$i(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=ta(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=Qi(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(Qi(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=$i(e.slice(0,-1),`\\`);if((e.length-t.length)%2==0)return}else{let e=ea(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)),na(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 na(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}}}},aa=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Ir,this.options.tokenizer=this.options.tokenizer||new ia,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:Ki.normal,inline:qi.normal};this.options.pedantic?(t.block=Ki.pedantic,t.inline=qi.pedantic):this.options.gfm&&(t.block=Ki.gfm,t.inline=this.options.breaks?qi.breaks:qi.gfm),this.tokenizer.rules=t}static get rules(){return{block:Ki,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}},oa=class{options;parser;constructor(e){this.options=e||Ir}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-`+Xi(r)+`">`+(n?i:Xi(i,!0))+`</code></pre>
|
|
1050
|
-
`:`<pre><code>`+(n?i:Xi(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>${Xi(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=Zi(e);if(i===null)return r;e=i;let a=`<a href="`+e+`"`;return t&&(a+=` title="`+Xi(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=Zi(e);if(i===null)return Xi(n);e=i;let a=`<img src="${e}" alt="${Xi(n)}"`;return t&&(a+=` title="${Xi(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:Xi(e.text)}},sa=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}},ca=class e{options;renderer;textRenderer;constructor(e){this.options=e||Ir,this.options.renderer=this.options.renderer||new oa,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new sa}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}},la=class{options;block;constructor(e){this.options=e||Ir}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?aa.lex:aa.lexInline}provideParser(){return this.block?ca.parse:ca.parseInline}},ua=new class{defaults=Fr();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=ca;Renderer=oa;TextRenderer=sa;Lexer=aa;Tokenizer=ia;Hooks=la;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 oa(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 ia(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 la;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]=la.passThroughHooks.has(n)?e=>{if(this.defaults.async&&la.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 aa.lex(e,t??this.defaults)}parser(e,t){return ca.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?aa.lex:aa.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?ca.parse:ca.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?aa.lex:aa.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?ca.parse:ca.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>`+Xi(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function $(e,t){return ua.parse(e,t)}$.options=$.setOptions=function(e){return ua.setOptions(e),$.defaults=ua.defaults,Lr($.defaults),$},$.getDefaults=Fr,$.defaults=Ir,$.use=function(...e){return ua.use(...e),$.defaults=ua.defaults,Lr($.defaults),$},$.walkTokens=function(e,t){return ua.walkTokens(e,t)},$.parseInline=ua.parseInline,$.Parser=ca,$.parser=ca.parse,$.Renderer=oa,$.TextRenderer=sa,$.Lexer=aa,$.lexer=aa.lex,$.Tokenizer=ia,$.Hooks=la,$.parse=$,$.options,$.setOptions,$.use,$.walkTokens,$.parseInline,ca.parse,aa.lex;var da=()=>{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(Pr),!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}},fa=16/9;function pa(e){let t=e.getSlidesElement();if(t)for(let e of t.querySelectorAll(`section.stack[data-previous-indexv]`))e.removeAttribute(`data-previous-indexv`)}var ma=new Set([` `,`Spacebar`,`ArrowRight`,`ArrowDown`,`PageDown`]),ha=new Set([`ArrowLeft`,`ArrowUp`,`PageUp`]);function ga(e){return ma.has(e.key)?1:ha.has(e.key)?-1:0}function _a(e){let t=(0,R.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,L.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*fa),a=r/fa;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,L.useEffect)(a,o),r}var va=e=>{let t=(0,R.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)(L.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 ya(e){let{cells:t,cellId:n,showCodeOverrides:r,codeToggleEnabled:i}=e;return n==null||!i?!1:(t.get(n)?.showCode??!1)||r.has(n)}function ba(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 xa(e){let t=(0,R.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,L.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,L.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(Sa),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 Sa(e){return{...e,show:!e.show}}function Ca(e){switch(e??`center`){case`top`:return{margin:`0 20px auto`};case`bottom`:return{margin:`auto 20px 0`};default:return{margin:`auto 20px`}}}var wa=e=>{let t=(0,R.c)(13),{cell:n}=e,r;t[0]!==n.id||t[1]!==n.name?(r=k(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)(D,{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},Ta=e=>{let t=(0,R.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}=Nr(n,a);l=e;let m=n.blocks.some(e=>e.cells.some(e=>r(e.id)));c=Pt,s=yr,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)(Er,{cell:e},e.id):(0,q.jsx)(Dr,{cell:e},e.id):(0,q.jsx)(wa,{cell:e},e.id));if(e.isFragment){let e=p.get(t);return(0,q.jsxs)(fr,{as:`div`,children:[n,e&&(0,q.jsx)(va,{text:e})]},t)}return(0,q.jsx)(L.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)(va,{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 Ea(e){let{isNoOutputPreview:t,isEditable:n,showCode:r}=e;return t&&n||r}var Da=e=>{let t=(0,R.c)(5),{cell:n,isNoOutputPreview:r,isEditable:i,showCode:a}=e;if(Ea({isNoOutputPreview:r,isEditable:i,showCode:a})){let e;return t[0]!==n||t[1]!==i?(e=i?(0,q.jsx)(Er,{cell:n}):(0,q.jsx)(Dr,{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)(wa,{cell:n}),t[3]=n,t[4]=o),o},Oa=e=>{let r=(0,R.c)(147),{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,L.useRef)(null),v=(0,L.useRef)(null),{width:b,height:E}=_a(_),D=x()!=null,k=t(g),j;r[0]===k?j=r[1]:(j=k?[]:[da],r[0]=k,r[1]=j);let ee=j,[P,F]=(0,L.useState)(ka),te=A(i),ne;r[2]===te?ne=r[3]:(ne=!p()&&te,r[2]=te,r[3]=ne);let I=ne,re=c==null?void 0:i[c],ie;r[4]!==re||r[5]!==i?(ie=re??i.at(0),r[4]=re,r[5]=i,r[6]=ie):ie=r[6];let ce=ie,le;r[7]!==re||r[8]!==a.cells||r[9]!==s?(le={activeCell:re,slideConfigs:a.cells,noOutputIds:s},r[7]=re,r[8]=a.cells,r[9]=s,r[10]=le):le=r[10];let{parkedPreviewCell:z,isHeldEdit:ue,isNoOutputPreview:de,heldEditCellId:fe,heldShowsCode:pe,toggleHeldShowsCode:me}=xa(le),he;r[11]!==I||r[12]!==a.cells||r[13]!==P?(he=e=>ya({cells:a.cells,cellId:e,showCodeOverrides:P,codeToggleEnabled:I}),r[11]=I,r[12]=a.cells,r[13]=P,r[14]=he):he=r[14];let B=he,V=re?.id??ce?.id,ge;r[15]!==V||r[16]!==pe||r[17]!==ue||r[18]!==B?(ge=ue?pe:B(V),r[15]=V,r[16]=pe,r[17]=ue,r[18]=B,r[19]=ge):ge=r[19];let _e=ge,ve;r[20]!==V||r[21]!==I||r[22]!==a.cells?(ve=I&&V!=null&&(a.cells.get(V)?.showCode??!1),r[20]=V,r[21]=I,r[22]=a.cells,r[23]=ve):ve=r[23];let H=ve,ye;r[24]!==fe||r[25]!==a.cells||r[26]!==s?(ye=e=>ba({cell:e,noOutputIds:s,heldEditCellId:fe,slideConfigs:a.cells}),r[24]=fe,r[25]=a.cells,r[26]=s,r[27]=ye):ye=r[27];let be;r[28]!==i||r[29]!==ye?(be=br({cells:i,getType:ye}),r[28]=i,r[29]=ye,r[30]=be):be=r[30];let U=be,xe;r[31]!==U||r[32]!==i?(xe=xr({composition:U,cells:i,getId:Aa}),r[31]=U,r[32]=i,r[33]=xe):xe=r[33];let{cellToTarget:W,targetToCellIndex:Se}=xe,Ce=a.deck?.transition??`slide`,G=a.deck?.verticalAlign,we;r[34]===G?we=r[35]:(we=Ca(G),r[34]=G,r[35]=we);let Te=we,Ee;if(r[36]===Symbol.for(`react.memo_cache_sentinel`)){let e=new URL(window.location.href);e.searchParams.set(`kiosk`,`true`),e.searchParams.set(`show-chrome`,`false`),Ee=e.toString(),r[36]=Ee}else Ee=r[36];let De=Ee,Oe;r[37]!==Ce||r[38]!==E||r[39]!==b?(Oe={embedded:!0,width:b,height:E,center:!1,minScale:.2,maxScale:2,transition:Ce,keyboardCondition:ja,url:De,scrollActivationWidth:0},r[37]=Ce,r[38]=E,r[39]=b,r[40]=Oe):Oe=r[40];let ke=Oe,Ae;r[41]!==c||r[42]!==W||r[43]!==i?(Ae=e=>{let t=wr({activeIndex:c,cells:i,cellToTarget:W,getId:Ma}),n=t&&Tr(e.getIndices(),t);n&&(e.slide(n.h,n.v,n.f),pa(e))},r[41]=c,r[42]=W,r[43]=i,r[44]=Ae):Ae=r[44];let je=n(Ae),Me;r[45]===je?Me=r[46]:(Me=()=>{let e=v.current;e!=null&&je(e)},r[45]=je,r[46]=Me);let Ne;r[47]!==c||r[48]!==W||r[49]!==je||r[50]!==i?(Ne=[c,W,i,je],r[47]=c,r[48]=W,r[49]=je,r[50]=i,r[51]=Ne):Ne=r[51],(0,L.useEffect)(Me,Ne);let Pe;r[52]!==V||r[53]!==H||r[54]!==ue||r[55]!==me?(Pe=()=>{if(!(V==null||H)){if(ue){me();return}(0,L.startTransition)(()=>F(e=>{let t=new Set(e);return t.has(V)?t.delete(V):t.add(V),t}))}},r[52]=V,r[53]=H,r[54]=ue,r[55]=me,r[56]=Pe):Pe=r[56];let Fe=n(Pe),Ie;r[57]!==I||r[58]!==je||r[59]!==Fe?(Ie=e=>{je(e),I&&e.addKeyBinding({keyCode:67,key:`C`,description:`Toggle code editor`},Fe);let t=e.getSlidesElement()?.closest(`.reveal`);t instanceof HTMLElement&&(t.tabIndex=-1,t.focus({preventScroll:!0}))},r[57]=I,r[58]=je,r[59]=Fe,r[60]=Ie):Ie=r[60];let Le=n(Ie),Re;r[61]!==l||r[62]!==z||r[63]!==Se?(Re=()=>{if(z!=null)return;let e=v.current;if(!e)return;let t=Sr(Se,e.getIndices());t!=null&&l?.(t)},r[61]=l,r[62]=z,r[63]=Se,r[64]=Re):Re=r[64];let ze=n(Re),Be;r[65]!==c||r[66]!==l||r[67]!==z||r[68]!==i?(Be=e=>{if(!z||c==null||w.fromInput(e))return;let t=ga(e);if(t===0)return;e.preventDefault(),e.stopPropagation();let n=c+t;n<0||n>=i.length||l?.(n)},r[65]=c,r[66]=l,r[67]=z,r[68]=i,r[69]=Be):Be=r[69];let Ve=n(Be),He;r[70]===ze?He=r[71]:(He=()=>{ze()},r[70]=ze,r[71]=He);let Ue=n(He),We;r[72]===Symbol.for(`react.memo_cache_sentinel`)?(We={capture:!0},r[72]=We):We=r[72],h(document,`keydown`,Ve,We);let Ge=ue?null:de?`Hidden as there is no output`:`Skipped in presentation`,Ke;r[73]!==pe||r[74]!==ue||r[75]!==z?.id||r[76]!==B?(Ke=ue?pe:B(z?.id),r[73]=pe,r[74]=ue,r[75]=z?.id,r[76]=B,r[77]=Ke):Ke=r[77];let qe=Ke,Je;r[78]!==m||r[79]!==de||r[80]!==qe?(Je=Ea({isNoOutputPreview:de,isEditable:m,showCode:qe}),r[78]=m,r[79]=de,r[80]=qe,r[81]=Je):Je=r[81];let Ye=Je,Xe;r[82]!==E||r[83]!==b?(Xe={width:b,height:E},r[82]=E,r[83]=b,r[84]=Xe):Xe=r[84];let Ze;if(r[85]!==U.stacks||r[86]!==m||r[87]!==a.cells||r[88]!==B||r[89]!==Te){let e;r[91]!==m||r[92]!==a.cells||r[93]!==B||r[94]!==Te?(e=(e,t)=>e.subslides.length===1?(0,q.jsx)(Ta,{subslide:e.subslides[0],resolveShowCode:B,isEditable:m,slideConfigs:a.cells,contentStyle:Te},t):(0,q.jsx)(Ft,{children:e.subslides.map((e,t)=>(0,q.jsx)(Ta,{subslide:e,resolveShowCode:B,isEditable:m,slideConfigs:a.cells,contentStyle:Te},t))},t),r[91]=m,r[92]=a.cells,r[93]=B,r[94]=Te,r[95]=e):e=r[95],Ze=U.stacks.map(e),r[85]=U.stacks,r[86]=m,r[87]=a.cells,r[88]=B,r[89]=Te,r[90]=Ze}else Ze=r[90];let Qe;r[96]!==ee||r[97]!==Le||r[98]!==Ue||r[99]!==ze||r[100]!==ke||r[101]!==Ze?(Qe=(0,q.jsx)(At,{deckRef:v,className:`aspect-video w-full overflow-hidden border rounded bg-background mo-slides-theme prose-slides focus:outline-hidden focus-visible:outline-hidden`,config:ke,onReady:Le,onSlideChange:Ue,onFragmentShown:ze,onFragmentHidden:ze,plugins:ee,children:Ze}),r[96]=ee,r[97]=Le,r[98]=Ue,r[99]=ze,r[100]=ke,r[101]=Ze,r[102]=Qe):Qe=r[102];let $e;r[103]!==m||r[104]!==de||r[105]!==z||r[106]!==Ge||r[107]!==qe||r[108]!==Ye||r[109]!==Te?($e=z&&(0,q.jsxs)(`div`,{className:`absolute inset-0 z-10 border rounded bg-background flex flex-col overflow-hidden`,"aria-label":Ge??void 0,children:[Ge&&(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)(N,{className:`h-3.5 w-3.5`}),(0,q.jsx)(`span`,{children:Ge})]}),(0,q.jsx)(`div`,{className:`flex-1 overflow-auto flex`,children:(0,q.jsx)(`div`,{className:Ye?`mo-slide-content flex flex-col gap-3`:`mo-slide-content`,style:Te,children:(0,q.jsx)(Da,{cell:z,isNoOutputPreview:de,isEditable:m,showCode:qe})})})]},z.id),r[103]=m,r[104]=de,r[105]=z,r[106]=Ge,r[107]=qe,r[108]=Ye,r[109]=Te,r[110]=$e):$e=r[110];let et;r[111]!==_e||r[112]!==H||r[113]!==I||r[114]!==Fe?(et=I&&(0,q.jsx)(C,{content:H?`Code is always shown for this slide`:_e?`Hide code (C)`:`Show code (C)`,children:(0,q.jsx)(T,{"data-testid":`marimo-plugin-slides-toggle-code`,variant:`ghost`,size:`icon`,className:y(`text-muted-foreground h-7 w-7`,_e&&`text-foreground bg-muted`,H&&`opacity-50 cursor-not-allowed`),"aria-pressed":_e,"aria-disabled":H,"aria-label":H?`Code always shown`:_e?`Hide code`:`Show code`,onClick:Fe,children:(0,q.jsx)(M,{className:`h-4 w-4`})})}),r[111]=_e,r[112]=H,r[113]=I,r[114]=Fe,r[115]=et):et=r[115];let tt;r[116]===Symbol.for(`react.memo_cache_sentinel`)?(tt=(0,q.jsx)(C,{content:`Fullscreen (F)`,children:(0,q.jsx)(T,{"data-testid":`marimo-plugin-slides-fullscreen`,variant:`ghost`,size:`icon`,className:`text-muted-foreground h-7 w-7`,"aria-label":`Enter fullscreen`,onClick:()=>{v.current?.getViewportElement()?.requestFullscreen().catch(Na)},children:(0,q.jsx)(S,{className:`h-4 w-4`})})}),r[116]=tt):tt=r[116];let nt;r[117]===et?nt=r[118]:(nt=(0,q.jsxs)(`div`,{className:`absolute top-2 right-2 z-20 opacity-0 group-hover:opacity-70 text-muted-foreground transition-opacity`,children:[et,tt]}),r[117]=et,r[118]=nt);let rt;r[119]!==Xe||r[120]!==Qe||r[121]!==$e||r[122]!==nt?(rt=(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:Xe,children:[Qe,$e,nt]})}),r[119]=Xe,r[120]=Qe,r[121]=$e,r[122]=nt,r[123]=rt):rt=r[123];let it=rt;if(u===`read`){let e;return r[124]===it?e=r[125]:(e=(0,q.jsx)(`div`,{className:`flex-1 min-w-0 flex flex-row gap-3`,children:it}),r[124]=it,r[125]=e),e}let at;r[126]===it?at=r[127]:(at=(0,q.jsx)(se,{defaultSize:92,minSize:60,children:it}),r[126]=it,r[127]=at);let ot;r[128]===Symbol.for(`react.memo_cache_sentinel`)?(ot={coarse:12,fine:4},r[128]=ot):ot=r[128];let st;r[129]===D?st=r[130]:(st=(0,q.jsx)(oe,{className:`mo-slides-notes-resize`,hitAreaMargins:ot,disabled:D}),r[129]=D,r[130]=st);let ct=ce?.id,lt;r[131]!==a||r[132]!==o||r[133]!==ct?(lt=(0,q.jsx)(se,{defaultSize:10,minSize:4,collapsible:!0,collapsedSize:4,children:(0,q.jsx)(kr,{layout:a,setLayout:o,cellId:ct})}),r[131]=a,r[132]=o,r[133]=ct,r[134]=lt):lt=r[134];let ut;r[135]!==at||r[136]!==st||r[137]!==lt?(ut=(0,q.jsxs)(ae,{direction:`vertical`,autoSaveId:`marimo:slides:notes-panel`,className:`flex-1 min-w-0`,children:[at,st,lt]}),r[135]=at,r[136]=st,r[137]=lt,r[138]=ut):ut=r[138];let dt;r[139]!==ce||r[140]!==d||r[141]!==a||r[142]!==o?(dt=(0,q.jsx)(O,{configWidth:d,layout:a,setLayout:o,activeConfigCell:ce}),r[139]=ce,r[140]=d,r[141]=a,r[142]=o,r[143]=dt):dt=r[143];let ft;return r[144]!==ut||r[145]!==dt?(ft=(0,q.jsxs)(`div`,{className:`flex-1 min-w-0 flex flex-row gap-3`,children:[ut,dt]}),r[144]=ut,r[145]=dt,r[146]=ft):ft=r[146],ft};function ka(){return new Set}function Aa(e){return e.id}function ja(e){return!w.fromInput(e)}function Ma(e){return e.id}function Na(e){m.error(`Failed to request fullscreen`,e)}export{wa as CellOutputBlock,ba as deckSlideType,Oa as default,Ea as parkedRendersSource,ya as shouldShowCode,xa as useParkedPreview};
|