@ryusei/code
Version:
<div align="center"> <a href="https://code.ryuseijs.com"> <img alt="RyuseiCode" src="https://code.ryuseijs.com/images/svg/logo.svg" width="70"> </a>
9 lines (8 loc) • 6.6 kB
JavaScript
!function(t,i){"function"==typeof define&&define.amd?define([],i):"undefined"!=typeof exports?i():(i(),t.unknown={})}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,function(){"use strict";function o(t,i){return(o=Object.setPrototypeOf||function(t,i){return t.__proto__=i,t})(t,i)}function u(t,i){for(var n=0;n<i.length;n++){var r=i[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}
/*!
* RyuseiCode.js
* Version : 0.1.17
* License : MIT
* Copyright: 2021 Naotoshi Fujita
*/
function e(t){return null!==t&&"object"==typeof t}function r(t){return Array.isArray(t)}function s(t){return"string"==typeof t}function f(t){return void 0===t}function h(t,i){return void 0===i&&(i=!1),!r(t)||i&&!r(t[0])?[t]:t}var c=Array.prototype;function a(i,t,n){i&&h(t).forEach(function(t){t&&i.classList[n?"add":"remove"](t)})}function v(t,i){a(t,i,!0)}function d(t,i){if(t)for(var n=Object.keys(t),r=0;r<n.length&&!1!==i(t[n[r]],n[r]);r++);return t}function l(r){for(var t=arguments.length,i=new Array(1<t?t-1:0),n=1;n<t;n++)i[n-1]=arguments[n];return i.forEach(function(n){e(n)&&d(n,function(t,i){f(n[i])||(r[i]=n[i])})}),r}function p(t,i,n){t=document.createElement(t);return i&&(s(i)||r(i)?v:function(n,t){if(n){if(s(t))return n.getAttribute(t);e(t)&&d(t,function(t,i){null===t?n.removeAttribute(i):n.setAttribute(i,String(t))})}})(t,i),n&&(n=n,h(t).forEach(n.appendChild.bind(n))),t}var y=new WeakMap;function g(t,i){return t.querySelector(i)}function w(t,i,n){return"<"+(n||"div")+" "+(t=l(i=void 0===i?{}:i,{class:h(t).filter(Boolean).join(" ")}),r="",d(t,function(t,i){i&&(t||!1===t||0===t)&&(r+=" "+i+'="'+t+'"')}),r.trim())+">";var r}function M(t,i){if(t){if(f(i))return t.textContent;t.textContent=i}}var _="ryuseicode";var b=Math.min,k=(Math.max,Math.floor);Math.ceil,Math.abs,Math.round;var m="is-active",S="initStyle",j=_+"__gutter",A=j+"__float",L=j+"__row",O=j+"__number",H={selectLine:!0,start:1,sticky:!0},t=function(r){var t;function i(t){var n=r.call(this,t)||this;return n.t=n.getOptions("gutter",H),n.i=n.t.start,n.on(S,function(t,i){i("."+j,"fontFamily",n.options.monospaceFont)}),n.n(),n}n=r,(t=i).prototype=Object.create(n.prototype),o(t.prototype.constructor=t,n);var n=i.prototype;return n.n=function(){var o=this;this.on("root:open",function(t,i,n){n.push("has-gutter")}),this.on("editor:open",function(t,i,n,r){i(w([j,o.t.sticky?"ryuseicode__gutter--sticky":""],{"aria-hidden":!0})),i(w(A)),i(o.r(r,i)),i(function(t,i){if(String.prototype.repeat)return t.repeat(i);for(var n="";0<i;)i%2&&(n+=t),i=k(i/2),t+=t;return n}("</div>",2))}),this.on(S,function(t,i){var n=o.options.lineHeight;i("."+L,{height:n?n+"em":void 0,lineHeight:n})})},n.r=function(t,i){for(var n=[],r=b(t.length,this.options.maxInitialLines)+1,o=0;o<r;o++){var u=(o===r-1?t.length-1:o)+this.i;i(w(L)),i('<span class="'+O+'">'+u+"</span>"),this.emit("gutter:row",n,o,u),i("</div>")}return n.join("")},n.mount=function(t){var i,n;r.prototype.mount.call(this,t),this.o=g(t.root,"."+j),this.u=g(this.o,"."+A),this.o&&(i=this.u.children,0<(t=this.Chunk.length-i.length)?this.e(t):t<0&&h(c.slice.call(i,t,n)).forEach(function(t){t&&t.parentNode&&t.parentNode.removeChild(t)}),this.s(),this.f())},n.e=function(t){for(var i,n=0;n<t;n++)p("span",O,(i=this.u,p("div",L,i)))},n.s=function(){var r=this;this.on("chunkSupplied",function(t,i,n){r.e(n)}),this.on(["chunkMoved","scrollHeightChanged","resize"],this.f,this),this.on("activeLine:updated",this.h,this),this.on("activeLine:deactivated",this.c,this),this.t.selectLine&&this.bind(this.o,"pointerdown",this.a,this)},n.a=function(t){var i,n,r,o=t.target;o instanceof HTMLElement&&(r=O,(n=o)&&n.classList.contains(r))&&(o=+M(o),isNaN(o)||(this.Selection.selectLine(o-this.i,!0,!0),(t=t)&&(t.cancelable&&t.preventDefault(),i&&t.stopPropagation())))},n.f=function(){for(var t,i,n,r,o=this.Chunk.start,u=this.i,e=this.lines.length,s=this.u.children,f=0;f<s.length;f++){var h=s[f],c=(f===s.length-1?e-1:o+f)+u;M(h.firstChild,(t=c,n=e+(i=u)-1,h=r=void 0,h=Math.min(i,n),n=Math.max(i,n),(r?h<t&&t<n:h<=t&&t<=n)?""+c:""))}this.v(),this.h()},n.v=function(){var t=this.Chunk,i=this.Chunk.start,i=t.offsetY+(i<0?i*this.Measure.lineHeight:0);!function(n,t){if(s(t))return getComputedStyle(n)[t];d(t,function(t,i){f(t)||(n.style[i]=String(t))})}(this.u,{top:s(i=i)?i:i+"px"})},n.h=function(){var t=this.Selection.focus[0],t=this.d(t);this.c(),t&&this.Editor.isFocused()&&(v(t,m),this.l=t,this.emit("gutter:activated",t))},n.c=function(){var t=this.l;t&&(a(t,m,!1),this.emit("gutter:deactivated",t),this.l=null)},n.d=function(t){return-1<t?this.u.children[t-this.Chunk.start]:void 0},i}(function(){function t(t){this.Editor=t,this.event=t.event,this.options=t.options,this.language=t.language}var i,n,r=t.prototype;return r.mount=function(t){var n=this;this.elements=t,d(this.Editor.Components,function(t,i){n[i]=t})},r.destroy=function(){!function i(n,t,r){"function"==typeof r?t.split(" ").forEach(function(t){n.removeEventListener(t,r)}):(t=y.get(r))&&(t.forEach(function(t){i(t.elm,t.events,t.callback)}),y.delete(r))}(null,"",this)},r.on=function(t,i,n,r){this.event.on(t,n?i.bind(n):i,this,r)},r.off=function(t){this.event.off(t,this)},r.emit=function(t){for(var i,n=arguments.length,r=new Array(1<n?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];(i=this.event).emit.apply(i,[t].concat(r))},r.bind=function(t,i,n,r){var o,u,e,s;o=t,u=i,e=r?n.bind(r):n,s=this,u.split(" ").forEach(function(t){o.addEventListener(t,e),s&&((t=y.get(s)||[]).push({elm:o,events:u,callback:e}),y.set(s,t))})},r.getLanguage=function(t){t=t||this.Selection.focus;var i=this.language,t=this.lines.getInfoAt(t);return t&&t.language&&i.use&&i.use[t.language]?i.use[t.language].config:i},r.invoke=function(t,i){for(var n,r=arguments.length,o=new Array(2<r?r-2:0),u=2;u<r;u++)o[u-2]=arguments[u];return(n=this.Editor).invoke.apply(n,[t,i].concat(o))},r.require=function(t){return this.Editor.require(t)},r.addIcons=function(t){var i=this.options;i.icons=l({},t,i.icons)},r.addI18n=function(t){var i=this.options;i.i18n=l({},t,i.i18n)},r.addKeyBindings=function(t){var i=this.options;i.keymap=l({},t,i.keymap)},r.getOptions=function(t,i){t=this.options[t];return f(t)||!0===t?i||{}:e(t)?l({},i,t):void function(t,i){if(void 0===i&&(i=""),!t)throw new Error("["+_+"] "+i)}(!1)},i=t,(r=[{key:"lines",get:function(){return this.Code.Lines}},{key:"i18n",get:function(){return this.options.i18n}}])&&u(i.prototype,r),n&&u(i,n),t}());"undefined"!=typeof window&&window.RyuseiCode&&window.RyuseiCode.compose({Gutter:t})});