@ryusei/light
Version:
<div align="center"> <a href="https://light.ryuseijs.com"> <img alt="RyuseiLight" src="https://light.ryuseijs.com/images/svg/logo.svg" width="70"> </a>
9 lines (8 loc) • 19 kB
JavaScript
/*!
* RyuseiLight.js
* Version : 1.2.0
* License : MIT
* Copyright: 2020 Naotoshi Fujita
*/
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).RyuseiLight=t()}(this,(function(){"use strict";var n="\n",t="keyword",i="comment",r="tag",e="selector",o="attr",a="prop",s="value",u="prolog",c="string",f="number",l="boolean",d="function",p="class",v="operator",m="bracket",g="delimiter",h="space",b="text";function S(n){return null!==n&&"object"==typeof n}function y(n){return Array.isArray(n)}function _(n){return"string"==typeof n}function k(n){return void 0===n}function w(n){return n instanceof HTMLElement}function F(n){return y(n)?n:[n]}function x(n,t){F(t).forEach((function(t){t&&n.classList.add(t)}))}function A(n,t){t=F(t);for(var i=0;i<t.length;i++)n.appendChild(t[i])}function T(n,t){if(n)for(var i=Object.keys(n),r=0;r<i.length;r++)t(n[i[r]],i[r])}function $(n){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];return i.forEach((function(t){S(t)&&T(t,(function(i,r){k(t[r])||(n[r]=t[r])}))})),n}function C(n,t){if(_(t))return n.getAttribute(t)||"";S(t)&&T(t,(function(t,i){n.setAttribute(i,String(t))}))}function z(n,t){return void 0===t&&(t=document),t.querySelector(n)}function j(n,t){T(t,(function(t,i){n.style[i]=String(t)}))}function L(n,t){return"<"+(t||"div")+' class="'+n.join(" ")+'">'}function E(n,t){if(k(t))return n.textContent;n.textContent=t}function I(n,t){if(void 0===t&&(t=""),!n)throw new Error(t)}var N="ryuseilight";function B(n,t,i){var r=function(n,t){for(var i=0;i<n.length;i++)if(n[i][0]===t)return i;return-1}(n,t);r>-1?n.splice.apply(n,[r,0].concat(i)):n.push.apply(n,i)}function D(n,t){return n.charAt(0)===t}var O=!k(/x/.sticky),R=function(){function t(n){this.language=n,this.t(n)}var i=t.prototype;return i.t=function(n){var t=this;T(n.grammar,(function(i,r){n.grammar[r]=t.i(n,i)})),T(n.use,this.t.bind(this))},i.i=function(n,t){for(var i=[],r=0;r<t.length;r++){var e=t[r],o=t[r],a=o[0],s=o[1];D(a,"#")&&!s?i.push.apply(i,this.i(n,n.grammar[a.slice(1)])):function(){var t=s.toString().match(/[gimsy]*$/)[0].replace(/[gy]/g,""),r=s.source+(O?"":"|()");T(n.source,(function(n,t){r=r.replace(new RegExp("%"+t,"g"),n.source)})),e[1]=new RegExp(r,(O?"y":"g")+t),i.push(e)}()}return i},i.o=function(n,t,i,r){var e=0,o=0;this.u++;n:for(;e<n.length&&!this.l;){for(var a=0;a<i.length;a++){var s=i[a],u=s[1],c=s[2];u.lastIndex=e;var f=u.exec(n);if(f&&f[0]){if(o<e&&this.p([b,n.slice(o,e)],t,r),"@back"===c){o=e;break n}if(o=e+=this.v(f,t,s,r)||1,"@break"===c)break n;continue n}}e++}return o<e&&this.p([b,n.slice(o)],t,r),this.u--,e},i.p=function(t,i,r){for(var e=this.u,o=t[0],a=t[1],s=this.m,u=0,c=0;u>-1&&!this.l;){u=a.indexOf(n,c);var f=this.g[this.m],l=c===u&&!f.length,d=l?n:a.slice(c,u<0?void 0:u),p={depth:e,language:i.id,state:r};d&&(o!==b&&(p.head=u>-1&&!c,p.tail=u<0&&!!c,p.split=u>-1||!!c,p.distance=this.m-s),f.push([o===b&&l?"lb":o,d,p])),u>-1&&(this.m++,this.l=this.h&&this.m>=this.h,this.l||(c=u+1,this.g[this.m]=[]))}},i.v=function(n,t,i,r){var e=i[0];if(!e)return 0;var o=n[0];if("@debug"===i[3]&&console.log(o,i),D(e,"@")){I(t.use);var a=t.use[e.slice(1)];return I(a),this.o(o,a,a.grammar.main,e)}if(D(e,"#")){var s=t.grammar[e.slice(1)];return I(s),"@rest"===i[2]&&(o=n.input.slice(n.index)),this.o(o,t,s,e)}return this.p([e,o],t,r),o.length},i.tokenize=function(n,t){return this.g=[[]],this.m=0,this.u=-1,this.h=t||0,this.l=!1,this.o(n,this.language,this.language.grammar.main,"#main"),this.g},t}(),M=N,P="rl__body",H="rl__code",J="rl__token",Q="is-active",Z=function(){function n(){this.handlers={}}var t=n.prototype;return t.on=function(n,t,i){void 0===i&&(i=10);var r=this.handlers[n]=this.handlers[n]||[];r.push({callback:t,priority:i}),r.sort((function(n,t){return n.priority-t.priority}))},t.emit=function(n){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];(this.handlers[n]||[]).forEach((function(n){n.callback.apply(n,i)}))},t.destroy=function(){this.handlers={}},n}(),X={},G=function(){function n(n,t,i,r){void 0===r&&(r={}),this.lines=[],this.event=new Z,this.lines=n,this.info=t,this.root=i,this.options=r,this.t()}n.compose=function(n){T(n,(function(n,t){X[t]=n}))};var t=n.prototype;return t.t=function(){var n=this,t=this.lines;if(t.length){var i=t[t.length-1];i.length&&(1!==i.length||i[0][1].trim())||t.pop()}T(X,(function(t){t(n)})),this.event.emit("mounted")},t.S=function(n){for(var t=this.event,i=this.options.span?"span":"code",r=0;r<this.lines.length;r++){var e=this.lines[r],o=["rl__line"];t.emit("line:open",n,o,r),n(L(o));for(var a=function(r){var o=e[r],a=o[0].split("."),s="rl__"+a[0],u=a.slice(1).map((function(n){return s+"--"+n})),c=[J,s].concat(u);t.emit("token",o,c),n(""+L(c,i)+(o[1].replace(/&/g,"&").replace(/</g,"<")+"</")+i+">")},s=0;s<e.length;s++)a(s);n("</div>"),t.emit("line:closed",n,r)}},t.html=function(n){var t=this.event,i="</div>",r="",e=function(n){r+=n};n&&(r+=L([M+" "+M+"--"+this.info.id],"pre"));var o=["rl__container"];t.emit("open",e,o),r+=L(o);var a=[P+(this.options.wrap?" rl__body--wrap":"")];return t.emit("body:open",e,a),r+=L(a),t.emit("code:open",e),r+=L([H]),this.S(e),r+=i,t.emit("body:close",e),r+=i,t.emit("close",e),r+=i,t.emit("closed",e),n&&(r+="</pre>"),r},t.destroy=function(){this.event.emit("destroy"),this.event.destroy()},n}(),V=/[+-]?(\d+\.?\d*|\d*\.?\d+)([eE][+-]?\d+)?/,W=/\b(?:true|false)\b/,U=/[[\]{}()]/,Y=/[ \t]+/,q=/'(?:\\'|.)*?'/,K=/"(?:\\"|.)*?"/,nn=/\/\*[\s\S]*?(\*\/|$)/,tn=/\/\/.*/,rn=/\b(?:break|catch|class|continue|do|else|extends|finally|for|function|if|implements|in|instanceof|interface|new|null|return|throw|try|while)\b/;function en(){return{id:"css",name:"CSS",grammar:{main:[["#common"],["#findSingleAtrule"],["#findBlock"]],findBlock:[["#block",/(?:(?![\t\n\r ;\{\}])[\s\S])(?:(?![;\{\}])[\s\S])*\{[\s\S]*?\}/,"@rest"]],findSingleAtrule:[["#atrule",/@(?:(?![;\{])[\s\S])+?;/]],findAtrule:[["#atrule",/@(?:(?![;\{])[\s\S])*?(?=[;\{])/]],findSelector:[["#selector",/(?:(?![\t\n\r ;\{\}])[\s\S])[\s\S]*?(?=\{)/]],common:[[c,/(["'])[\s\S]*?(?:(?!\\)[\s\S])\1/],[i,nn],[h,Y]],block:[["#inner",/{/,"@rest"],[m,/}/,"@break"],["#findAtrule"],["#findSelector"],[h,Y]],inner:[[m,/{/],["#common"],["#findBlock"],["#props"],["#findAtrule"],["",/}/,"@back"]],atrule:[["#common"],["#url",/\burl\(/,"@rest"],[h,Y],["atrule",/[^\s();]+/],[g,/[:;,]/],["#paren",/\(/,"@rest"]],paren:[[m,/^\(/],["#common"],["#paren",/\(/,"@rest"],[m,/\)/,"@break"],["#props"]],selector:[["#common"],[v,/[>+~]/],[m,/[[\]()]/],[g,/=/],[e,/::?\S+/],[e,/[\W\d]\S+/],[r,/\b[a-z]+|\*/i],[e,/\S+/]],url:[["#common"],[d,/^url/],[m,/\(/],[c,/[^)]+/],[m,/\)/,"@break"]],props:[[a,/[a-z0-9-_\xA0-\uFFFF]+(?=:)/i],["#url",/\burl\(/,"@rest"],[d,/\b[\w-]+(?=\()\b/],[t,/!important|\b(?:initial|inherit|unset)/],[a,/[a-z0-9-]+(?=:)/],[f,/#([0-9a-f]{6}|[0-9a-f]{3})/i],[f,/\bU\+[0-9a-f?-]+/i],[f,/[+-]?(\d+\.?\d*|\d*\.?\d+)/],[g,/[:;,]/],["#paren",/\(/,"@rest"],[m,/[[\])]/],[h,Y]]}}}function on(){return{id:"javascript",name:"JavaScript",alias:["js"],source:{func:/[_$a-z\xA0-\uFFFF][_$a-z0-9\xA0-\uFFFF]*/},grammar:{main:[[c,q],[c,K],["#backtick",/`/,"@rest"],[i,nn],[i,tn],["regexp",/\/(\[.*?]|\\\/|.)+?\/[gimsuy]*/],[t,rn],[t,/\b(?:as|async|await|case|catch|const|debugger|default|delete|enum|export|from|import|let|package|private|protected|public|super|switch|static|this|typeof|undefined|var|void|with|yield)\b/],[t,/\b((get|set)(?=\s+%func))/i],[p,/\b[A-Z][\w$]*\b/],[d,/%func(?=\s*\()/i],[l,W],["decorator",/@[^\s(@]+/],["identifier",/\b[a-z_$][\w$]*\b/],[f,V],[v,/=>/],[v,/\+[+=]?|-[-=]?|\*\*?=?|[/%^]=?|&&?=?|\|\|?=?|\?\??=?|<<?=?|>>>=?|>>?=?|[!=]=?=?|[~:^]/],[m,U],[g,/[;.,]+/],[h,Y]],backtick:[[c,/^`/],[c,/(\$[^{]|\\[$`]|[^`$])+/],["#expression",/\${/,"@rest"],[c,/`/,"@break"]],expression:[[g,/^\${/],[g,/}/,"@break"],["#main"]]}}}function an(n){void 0===n&&(n={});var t=(n.script||on)(),e=(n.style||en)(),a=["cdata",/<!\[CDATA\[[\s\S]*\]\]>/i];return t.grammar.main.unshift(a),e.grammar.main.unshift(a),{id:"html",alias:["markup"],name:"HTML",use:{script:t,style:e},grammar:{main:[[i,/<!\x2D\x2D[\s\S]*?\x2D\x2D>/],[u,/<!DOCTYPE[\s\S]*?>/i],a,["#script",/<script[\s\S]*?>[\s\S]*?<\/script>/],["#style",/<style[\s\S]*?>[\s\S]*?<\/style>/],["#tag",/<[\s\S]*?>/],["entity",/&[\da-z]+;|&#\d+;/i],[h,Y]],script:[["#tag",/^<script[\s\S]*?>/],a,["@script",/[\s\S]+(?=<\/script>)/],["#tag",/<\/script>/]],style:[["#tag",/^<style[\s\S]*?>/],["@style",/[\s\S]+(?=<\/style>)/],["#tag",/<\/style>/]],tag:[["#closeTag",/<\/.+>/],["#tagContent"]],closeTag:[["tag.close",/[^\s/<>"'=]+/],["#tagContent"]],tagContent:[["#attr",/[\t\n\r ]+[\s\S]+(?=[\t\n\r \/>])/],[r,/[^\s/<>"'=]+/],[m,/[<>]/],[g,/[/]/]],attr:[[h,Y],[s,/(['"])(\\\1|.)*?\1/],[g,/[/=]/],[o,/[^\s/>"'=]+/]]}}}function sn(n){void 0===n&&(n={});var t=$((n.base||on)(),{id:"jsx",name:"JSX",alias:["react"]}),i=t.grammar;return B(i.main,p,[["#findPairedTag"],["#findSelfClosedTag"]]),$(i,{findPairedTag:[["#pairedTag",/(?:<[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*?([0-9A-Z_a-z]+)[\s\S]*?>[\s\S]*?<\/\1>)|<[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*?>[\s\S]*?<\/>/,"@rest"]],findSelfClosedTag:[["#selfClosedTag",/<(?:\{[\s\S]*?\}|(["'])[\s\S]*?\1|(?:(?!>)[\s\S]))+?\/>/]],findBracket:[["#code",/{/,"@rest"]],pairedTag:[["#openTag",/^</,"@rest"],["#findBracket"],["#findPairedTag"],["#findSelfClosedTag"],["#tagName",/<\/([\w][^\s]*?)?>/,"@break"],[h,Y]],code:[[m,/^{/],[m,/}/,"@break"],["#findBracket"],["#main"]],selfClosedTag:[["#openTag",/^</,"@rest"]],openTag:[["#tagName",/<\s*[^\s/>"'=]*/],["#findBracket"],[o,/[^\s/>"'=]+/],[s,/(['"])(\\\1|.)*?\1/],[h,Y],[g,/[/=]/],[m,/>/,"@break"]],tagName:[[m,/[<>]/],[h,Y],[g,/\//],[p,/[A-Z][\w$-]*/],[r,/[^\s/>"'=]+/]]}),t}function un(){return{id:"none",name:"",grammar:{main:[]}}}function cn(){var n=$(an(),{id:"xml",name:"XML",alias:[]});return n.grammar.main.unshift([u,/<\?[\s\S]*?\?>/]),n}function fn(){var n=$(on(),{id:"typescript",name:"TypeScript",alias:["ts"]}),i=n.grammar,r=i.main;return B(r,t,[[t,/\b(?:declare|keyof|namespace|readonly|type|string|number|boolean|bigint|symbol|object|any|never|unknown|infer|is)\b/]]),B(r,d,[["#functions",/([_$a-z\xA0-\uFFFF][_$a-z0-9\xA0-\uFFFF]*)?(?:<[^>]+?>)?\s*?\(/]]),$(i,{functions:[[d,/^[\w$]+/]].concat(r.filter((function(n){return"#functions"!==n[0]})))}),n}var ln=Object.freeze({__proto__:null,css:en,html:an,javascript:on,json:function(){return{id:"json",name:"JSON",grammar:{main:[[a,/".*?[^\\]"(?=:)/],[c,K],[t,/\bnull\b/],[f,/[+-]?(\d+\.?\d*)([eE][+-]?\d+)?/],[m,/[{}[\]]/],[l,W],[v,/:/],[g,/,/],[h,Y]]}}},jsx:sn,none:un,scss:function(){var n=$(en(),{id:"scss",name:"SCSS"}),t=n.grammar;return $(t,{findBlock:[["#block",/([\*-_a-z]|#\{(?:(?!;)[\s\S])*?\}|((#\{(?:(?!;)[\s\S])*?\}|(?:(?![\t-\r ;\{\}\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])[\s\S]))(#\{(?:(?!;)[\s\S])*?\}|(?:(?![#;\{\}])[\s\S])|#(?:(?!\{)[\s\S]))+?))(?!#)\{[\s\S]*?\}/i,"@rest"]],findSingleAtrule:[["#atrule",/@(#\{|(?:(?![;\{])[\s\S]))+?;/]],findAtrule:[["#atrule",/@(#\{|(?:(?![;\{])[\s\S]))*?(?=[;\{])/]],findSelector:[["#selector",/(?:(?!;)[\s\S])*?(?:(?!#)[\s\S])(?=\{)/,""]],findInterp:[["#interp",/#{/,"@rest"]],common:[["#string"],[i,nn],[i,tn],[g,/;/],[h,Y]],string:[["#singleQuote",/'/,"@rest"],["#doubleQuote",/"/,"@rest"]],singleQuote:[[c,/^'/],["#findInterp"],[c,/(\\'|#[^{]|[^'#])+/],[c,/'/,"@break"]],doubleQuote:[[c,/^"/],["#findInterp"],[c,/(\\"|#[^{]|[^"#])+/],[c,/"/,"@break"]],selector:[["#common"],["#findInterp"],[v,/[>+~]/],[m,/[[\]()]/],[g,/=/],[e,/::?\S+(?=#{)/],[e,/[\W\d]\S+(?=#{)/],[r,/\b[a-zA-Z]+\b|\*/],[e,/([^#\s]|#[^{\s])+/]],url:[["#common"],["#findInterp"],[d,/^url/],[m,/\(/],[c,/[^)]+(?=#{)/],[c,/[^)]+/],[m,/\)/,"@break"]],interp:[[g,/#{/],[g,/}/,"@break"],["#common"],["#props"]]}),t.inner.unshift(["#findInterp"]),B(t.atrule,"#url",[["#findInterp"]]),B(t.props,a,[["#findInterp"],["variable",/\$[\w-_]+/]]),n},svg:function(){return $(cn(),{id:"svg",name:"SVG",alias:[]})},tsx:function(){return $(sn({base:fn}),{id:"tsx",name:"TSX"})},typescript:fn,vue:function(n){void 0===n&&(n={});var t=$(an(n),{id:"vue",name:"Vue",alias:[]});return t.grammar.main.push(["@script",/{{[\s\S]*?}}/]),t},xml:cn}),dn={},pn=function(){function n(n){this._=[],this.k=$({},n)}n.register=function(n){F(n).forEach((function(n){var t=n.id;t&&!dn[t]&&(n.alias||[]).concat(t).forEach((function(t){dn[t]=new R(n)}))}))},n.tokenize=function(t,i,r){return n.F(i).tokenize(t,r)},n.has=function(n){return!!dn[n]},n.F=function(t){return dn.none||n.register({id:"none",name:"",grammar:{main:[]}}),dn[t]||dn.none};var t=n.prototype;return t.A=function(t,i,r){var e=(r=$({},this.k,r)).language,o=n.F(e).language,a=o.name,s=o.id;return new G(n.tokenize(t,e),{name:a,id:s},i,r)},t.apply=function(n,t){for(var i=_(n)?document.querySelectorAll(n):[n],r=0;r<i.length;r++){var e=i[r];if(w(e)){var o=$({},t,{language:C(e,"data-rl-language")||void 0}),a=this.A(E(e),e,o),s=e instanceof HTMLPreElement;s&&x(e,[M,M+"--"+a.info.id]),e.innerHTML=a.html(!s),a.event.emit("applied",e),this._.push(a)}}},t.html=function(n,t){return I(_(n),"Invalid code."),this.A(n,null,t).html(!0)},t.destroy=function(){this._.forEach((function(n){n.destroy()}))},n}();pn.compose=G.compose;var vn="data-rl-active-lines";function mn(n,t,i){var r="rl__figcaption";n('<figcaption class="'+r+" "+r+(i?"--bottom":"--top")+'">'),n("<span>"+t+"</span>"),n("</figcaption>")}var gn={html:"Copy",activeHtml:"Done",duration:1e3,ariaLabel:"Copy code to clipboard",position:"topRight"};function hn(n,t){var i,r=function(n,t,i){var r=document.createElement(n);return t&&x(r,t),i&&A(i,r),r}("textarea");r.textContent=n,j(r,{position:"absolute",left:"-99999px"}),A(document.body,r),r.focus(),r.select();try{document.execCommand("copy")}catch(n){alert("Failed to copy."),i=!0}document.body.removeChild(r),i||t()}var bn={addedSymbol:"+",deletedSymbol:"-"};function Sn(n,t,i,r){n.indexOf(i)>-1?r.push("is-added"):t.indexOf(i)>-1&&r.push("is-deleted")}var yn="rl__gutter__row";var _n=Object.freeze({__proto__:null,ActiveLines:function(n){var t=n.event,i=n.root,r=n.options,e=i&&function(n){var t=C(n,vn);if(t)try{return JSON.parse(t)}catch(n){i=n.message,console.error("[ryuseilight] "+i)}var i}(i)||r.activeLines;if(y(e)){var o=function(n){var t=[];return n.forEach((function(n){y(n)||(n=[n,n]);for(var i=(+n[0]||1)-1,r=(+n[1]||1)-1,e=i;e<=r;e++)t[e]=Q})),t}(e);t.on("gutter:row:open",(function(n,t,i){o[i]&&t.push(o[i])})),t.on("line:open",(function(n,t,i){o[i]&&t.push(o[i])}))}},Caption:function(n){var t=n.event,i=n.root,r=n.options,e=i&&C(i,"data-rl-caption");if(e||r.caption){var o=r.caption,a=$({},S(o)?o:null),s=a.position,u=a.html,c=e||u||(_(o)?o:"");if(c){var f="bottom"===s;t.on("open",(function(n){n('<figure class="rl__figure">'),f||mn(n,c)})),t.on("closed",(function(n){f&&mn(n,c,!0),n("</figure>")}))}}},Copy:function(t){var i=t.lines,r=t.event,e=t.options;if(e.copy){var o=$({},gn,S(e.copy)?e.copy:{}),a="rl__button__label";e.tools=o.position,r.on("tools:"+o.position,(function(n){n('<button type="button" class="rl__button rl__copy" aria-label="'+o.ariaLabel+'">'),n('<span class="'+a+" "+a+'--inactive">'+o.html+"</span>"),n('<span class="'+a+" "+a+'--active">'+o.activeHtml+"</span>"),n("</button>")})),r.on("applied",(function(t){var e=z(".rl__copy",t),a=i.map((function(n){return n.map((function(n){return n[1]})).join("")})).join(n);if(e){var s=function(){!function(n,t,i){var r=function(){i&&function(n,t){x(n,Q);var i="_rlTimer";n[i]&&clearTimeout(n[i]);n[i]=setTimeout((function(){n.classList.remove(Q)}),t)}(t,i)};navigator.clipboard?navigator.clipboard.writeText(n).then(r).catch((function(){return hn(n,r)})):hn(n,r)}(a,e,o.duration)};e.addEventListener("click",s),r.on("destroy",(function(){e.removeEventListener("click",s)}))}}))}},Diff:function(t){var i=t.event,r=t.lines,e=t.options;if(e.diff){e.gutter=!0;var o=$({},bn,S(e.diff)?e.diff:null),a=[],s=[];r.forEach((function(n,t){if(n.length){var i,r=n[0][1];D(r,o.addedSymbol)?(a.push(t),i=!0):D(r,o.deletedSymbol)&&(s.push(t),i=!0),i&&function(n,t){var i=t[0],r=i[0],e=i[1];if(n)1===e.length?t.shift():t[0]=[r,e.slice(1)];else{var o=[h," "];1===e.length?t[0]=o:(t[0]=[r,e.slice(1)],t.unshift(o))}}(o.removeSymbols,n)}})),(a.length||s.length)&&(i.on("line:open",(function(n,t,i){Sn(a,s,i,t)})),i.on("gutter:row:open",(function(n,t,i){Sn(a,s,i,t)})),i.on("gutter:row:opened",(function(t,i){var r=n;a.indexOf(i)>-1?r=o.addedSymbol:s.indexOf(i)>-1&&(r=o.deletedSymbol),t('<span class="rl__diff">'+r+"</span>")}),20),i.on("lineNumber:open",(function(n,t,i,r){r.skip=s.indexOf(i)>-1})))}},Gutter:function(n){var t=n.lines,i=n.event,r=n.root,e=n.options;i.on("mounted",(function(){var n,o,a;e.gutter&&(i.on("open",(function(n,t){t.push("has-gutter")})),i.on("code:open",(function(n){n('<div class="rl__gutter" aria-hidden="true">');for(var r=0;r<t.length;r++){var e=[yn];i.emit("gutter:row:open",n,e,r),n('<div class="'+e.join(" ")+'">'),i.emit("gutter:row:opened",n,r),n("</div>")}n("</div>")})),r&&"undefined"!=typeof window&&(window.addEventListener("resize",(n=s,o=100,function(){a||(a=setTimeout((function(){n(),a=null}),o))})),s(),i.on("destroy",(function(){window.removeEventListener("resize",s)}))));function s(){var n=r.getElementsByClassName(yn),t=z("."+H,r);if(n.length&&t)for(var i=0;i<t.children.length;i++){var e=n[i],o=t.children[i];w(e)&&e.clientHeight!==o.clientHeight&&j(e,{height:o.clientHeight+"px"})}}}))},LanguageName:function(n){var t=n.event,i=n.info,r=n.options,e=i.name;if(r.languageName&&e){var o="topLeft"===r.languageName?"topLeft":"topRight";r.overlay=r.overlay||{},r.overlay[o]=!0,t.on("overlay:"+o,(function(n){n('<span class="rl__name">'+i.name+"</span>")}))}},LineNumbers:function(t){var i=t.root,r=t.event,e=t.options,o=i?C(i,"data-rl-line-numbers"):"",a=""===o?+e.lineNumbers:+o;if(a||0===a){e.gutter=!0;var s=Math.floor(a)-1;r.on("gutter:row:opened",(function(t,i){var e=["rl__line-number"],o={skip:!1,content:i+1+s};r.emit("lineNumber:open",t,e,i,o),o.skip&&(o.content=n,s--),t('<span class="'+e.join(" ")+'">'+o.content+"</span>")}))}},Overlay:function(n){var t=n.event,i=n.options;t.on("mounted",(function(){var n=i.overlay,r=void 0===n?{}:n,e=i.tools,o=r.topRight,a=r.topLeft;[o=o||"topRight"===e,a=a||"topLeft"===e].forEach((function(n,i){n&&(e&&function(n,t){var i=t?"Left":"Right";n.on("overlay:top"+i,(function(t){t('<span class="rl__tools">'),n.emit("tools:top"+i,t),t("</span>")}))}(t,1===i),function(n,t){var i="rl__overlay";n.on("close",(function(r){r('<div class="'+i+" "+i+"--top-"+(t?"left":"right")+'">'),n.emit("overlay:top"+(t?"Left":"Right"),r),r("</div>")}))}(t,1===i))})),(o||a)&&t.on("open",(function(n,t){t.push("has-top-overlay")}))}))}});return T(ln,(function(n){pn.register(n())})),pn.compose(_n),pn}));
//# sourceMappingURL=ryuseilight-complete.min.js.map