@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) • 5.42 kB
JavaScript
!function(n,t){"function"==typeof define&&define.amd?define([],t):"undefined"!=typeof exports?t():(t(),n.unknown={})}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,function(){"use strict";function o(n,t){return(o=Object.setPrototypeOf||function(n,t){return n.__proto__=t,n})(n,t)}function u(n,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(n,r.key,r)}}
/*!
* RyuseiCode.js
* Version : 0.1.17
* License : MIT
* Copyright: 2021 Naotoshi Fujita
*/
function e(n){return null!==n&&"object"==typeof n}function r(n){return Array.isArray(n)}function f(n){return"string"==typeof n}function v(n){return void 0===n}function c(n,t){return void 0===t&&(t=!1),!r(n)||t&&!r(n[0])?[n]:n}function s(n,t){var i,r;t=t,r=!0,(i=n)&&c(t).forEach(function(n){n&&i.classList[r?"add":"remove"](n)})}function h(n,t){if(n)for(var i=Object.keys(n),r=0;r<i.length&&!1!==t(n[i[r]],i[r]);r++);return n}function a(r){for(var n=arguments.length,t=new Array(1<n?n-1:0),i=1;i<n;i++)t[i-1]=arguments[i];return t.forEach(function(i){e(i)&&h(i,function(n,t){v(i[t])||(r[t]=i[t])})}),r}function p(n,t,i){n=document.createElement(n);return t&&(f(t)||r(t)?s:function(i,n){if(i){if(f(n))return i.getAttribute(n);e(n)&&h(n,function(n,t){null===n?i.removeAttribute(t):i.setAttribute(t,String(n))})}})(n,t),i&&(i=i,c(n).forEach(i.appendChild.bind(i))),n}var l=new WeakMap;function d(n,t){n&&(n.cancelable&&n.preventDefault(),t&&n.stopPropagation())}function m(n,t){return u=n,e=t,c=!(f=!1),i.cancel=o,i.invoke=function(){h&&a()},i;function i(){c&&o();for(var n=arguments.length,t=new Array(n),i=0;i<n;i++)t[i]=arguments[i];a=r.bind.apply(r,[this].concat(t)),h||(v(h)&&f?a():h=s?requestAnimationFrame(a):setTimeout(a,e))}function r(){for(var n=arguments.length,t=new Array(n),i=0;i<n;i++)t[i]=arguments[i];u.apply(this,t),o()}function o(){(s?cancelAnimationFrame:clearTimeout)(h),h=null}var u,e,f,c,s,h,a}var w={Up:"ArrowUp",Down:"ArrowDown",Right:"ArrowRight",Left:"ArrowLeft",Del:"Delete",Esc:"Escape",Spacebar:" "};function y(t,n){var i,r=(i=t.key,(w[i]||i).toUpperCase());return n&&c(n,!0).some(function(n){return r===n[0].toUpperCase()&&!n[1]==!t.ctrlKey&&!n[2]==!t.shiftKey&&!n[3]==!t.altKey})}var j={jumpToLine:"Jump to Line",jumpToolbar:"Jump Toolbar"},b={jumpToLine:["G",!0]},A="jump-to-line",n=function(t){var n;function i(n){n=t.call(this,n)||this;return n.addI18n(j),n.addKeyBindings(b),n}r=t,(n=i).prototype=Object.create(r.prototype),o(n.prototype.constructor=n,r);var r=i.prototype;return r.mount=function(n){(this.n=this.require("Toolbar"))&&(t.prototype.mount.call(this,n),this.t(),this.i())},r.t=function(){var n=p("div",void 0,void 0);this.r=this.n.createField({id:"jumpToLine",tabindex:1},n),this.getOptions("jump").hideLocation||(this.o=p("span",null,n)),this.n.register(A,n,this.i18n.jumpToolbar)},r.i=function(){var i=this;this.on("keymap:jumpToLine",function(n,t){i.u(),i.n.show(A),d(t)}),this.bind(this.r,"input",m(this.e.bind(this),10)),this.bind(this.r,"keydown",function(n){y(n,i.options.keymap.jumpToLine)&&d(n)})},r.e=function(){var n,t,i,r,o,u=parseInt(this.r.value)-1;!isNaN(u)&&(n=u,t=0,i=this.lines.length-1,o=Math.min(t,i),i=Math.max(t,i),r?o<n&&n<i:o<=n&&n<=i)&&(this.View.jump(u,!0),this.Selection.set([u,0]),this.r.focus(),this.u(),this.emit("jump:jumped"))},r.u=function(){this.o&&function(n,t){if(n){if(v(t))return n.textContent;n.textContent=t}}(this.o,this.Selection.getLocation())},i}(function(){function n(n){this.Editor=n,this.event=n.event,this.options=n.options,this.language=n.language}var t,i,r=n.prototype;return r.mount=function(n){var i=this;this.elements=n,h(this.Editor.Components,function(n,t){i[t]=n})},r.destroy=function(){!function t(i,n,r){"function"==typeof r?n.split(" ").forEach(function(n){i.removeEventListener(n,r)}):(n=l.get(r))&&(n.forEach(function(n){t(n.elm,n.events,n.callback)}),l.delete(r))}(null,"",this)},r.on=function(n,t,i,r){this.event.on(n,i?t.bind(i):t,this,r)},r.off=function(n){this.event.off(n,this)},r.emit=function(n){for(var t,i=arguments.length,r=new Array(1<i?i-1:0),o=1;o<i;o++)r[o-1]=arguments[o];(t=this.event).emit.apply(t,[n].concat(r))},r.bind=function(n,t,i,r){var o,u,e,f;o=n,u=t,e=r?i.bind(r):i,f=this,u.split(" ").forEach(function(n){o.addEventListener(n,e),f&&((n=l.get(f)||[]).push({elm:o,events:u,callback:e}),l.set(f,n))})},r.getLanguage=function(n){n=n||this.Selection.focus;var t=this.language,n=this.lines.getInfoAt(n);return n&&n.language&&t.use&&t.use[n.language]?t.use[n.language].config:t},r.invoke=function(n,t){for(var i,r=arguments.length,o=new Array(2<r?r-2:0),u=2;u<r;u++)o[u-2]=arguments[u];return(i=this.Editor).invoke.apply(i,[n,t].concat(o))},r.require=function(n){return this.Editor.require(n)},r.addIcons=function(n){var t=this.options;t.icons=a({},n,t.icons)},r.addI18n=function(n){var t=this.options;t.i18n=a({},n,t.i18n)},r.addKeyBindings=function(n){var t=this.options;t.keymap=a({},n,t.keymap)},r.getOptions=function(n,t){n=this.options[n];return v(n)||!0===n?t||{}:e(n)?a({},t,n):void function(n,t){if(void 0===t&&(t=""),!n)throw new Error("[ryuseicode] "+t)}(!1)},t=n,(r=[{key:"lines",get:function(){return this.Code.Lines}},{key:"i18n",get:function(){return this.options.i18n}}])&&u(t.prototype,r),i&&u(t,i),n}());"undefined"!=typeof window&&window.RyuseiCode&&window.RyuseiCode.compose({Jump:n})});