mirror of
https://github.com/hakimel/reveal.js.git
synced 2025-08-29 17:30:09 +02:00
switch from gulp to vite to build, add types for reveal.js config
This commit is contained in:
7
dist/plugin/search.js
vendored
Normal file
7
dist/plugin/search.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
(function(p,n){typeof exports=="object"&&typeof module<"u"?module.exports=n():typeof define=="function"&&define.amd?define(n):(p=typeof globalThis<"u"?globalThis:p||self,p.RevealSearch=n())})(this,function(){"use strict";/*!
|
||||
* Handles finding a text string anywhere in the slides and showing the next occurrence to the user
|
||||
* by navigatating to that slide and highlighting it.
|
||||
*
|
||||
* @author Jon Snyder <snyder.jon@gmail.com>, February 2013
|
||||
*/return()=>{let n,t,i,o,a,g,f;function v(){t=document.createElement("div"),t.classList.add("searchbox"),t.style.position="absolute",t.style.top="10px",t.style.right="10px",t.style.zIndex=10,t.innerHTML=`<input type="search" class="searchinput" placeholder="Search..." style="vertical-align: top;"/>
|
||||
</span>`,i=t.querySelector(".searchinput"),i.style.width="240px",i.style.fontSize="14px",i.style.padding="4px 6px",i.style.color="#000",i.style.background="#fff",i.style.borderRadius="2px",i.style.border="0",i.style.outline="0",i.style.boxShadow="0 2px 18px rgba(0, 0, 0, 0.2)",i.style["-webkit-appearance"]="none",n.getRevealElement().appendChild(t),i.addEventListener("keyup",function(r){switch(r.keyCode){case 13:r.preventDefault(),k(),g=!1;break;default:g=!0}},!1),C()}function w(){t||v(),t.style.display="inline",i.focus(),i.select()}function C(){t||v(),t.style.display="none",f&&f.remove()}function T(){t||v(),t.style.display!=="inline"?w():C()}function k(){if(g){var r=i.value;r===""?(f&&f.remove(),o=null):(f=new L("slidecontent"),o=f.apply(r),a=0)}o&&(o.length&&o.length<=a&&(a=0),o.length>a&&(n.slide(o[a].h,o[a].v),a++))}function L(r,d){var I=document.getElementById(r)||document.body,x=d||"EM",M=new RegExp("^(?:"+x+"|SCRIPT|FORM)$"),E=["#ff6","#a0ffff","#9f9","#f99","#f6f"],m=[],B=0,y="",c=[];this.setRegex=function(e){e=e.trim(),y=new RegExp("("+e+")","i")},this.getRegex=function(){return y.toString().replace(/^\/\\b\(|\)\\b\/i$/g,"").replace(/\|/g," ")},this.hiliteWords=function(e){if(!(e==null||!e)&&y&&!M.test(e.nodeName)){if(e.hasChildNodes())for(var l=0;l<e.childNodes.length;l++)this.hiliteWords(e.childNodes[l]);if(e.nodeType==3){var N,s;if((N=e.nodeValue)&&(s=y.exec(N))){for(var u=e;u!=null&&u.nodeName!="SECTION";)u=u.parentNode;for(var S=n.getIndices(u),D=c.length,R=!1,l=0;l<D;l++)c[l].h===S.h&&c[l].v===S.v&&(R=!0);R||c.push(S),m[s[0].toLowerCase()]||(m[s[0].toLowerCase()]=E[B++%E.length]);var h=document.createElement(x);h.appendChild(document.createTextNode(s[0])),h.style.backgroundColor=m[s[0].toLowerCase()],h.style.fontStyle="inherit",h.style.color="#000";var b=e.splitText(s.index);b.nodeValue=b.nodeValue.substring(s[0].length),e.parentNode.insertBefore(h,b)}}}},this.remove=function(){for(var e=document.getElementsByTagName(x),l;e.length&&(l=e[0]);)l.parentNode.replaceChild(l.firstChild,l)},this.apply=function(e){if(!(e==null||!e))return this.remove(),this.setRegex(e),this.hiliteWords(I),c}}return{id:"search",init:r=>{n=r,n.registerKeyboardShortcut("CTRL + Shift + F","Search"),document.addEventListener("keydown",function(d){d.key=="F"&&(d.ctrlKey||d.metaKey)&&(d.preventDefault(),T())},!1)},open:w}}});
|
Reference in New Issue
Block a user