@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>
14 lines • 63.9 kB
JavaScript
function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function _inheritsLoose(t,i){t.prototype=Object.create(i.prototype),_setPrototypeOf(t.prototype.constructor=t,i)}function _setPrototypeOf(t,i){return(_setPrototypeOf=Object.setPrototypeOf||function(t,i){return t.__proto__=i,t})(t,i)}function _defineProperties(t,i){for(var n=0;n<i.length;n++){var s=i[n];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,s.key,s)}}function _createClass(t,i,n){return i&&_defineProperties(t.prototype,i),n&&_defineProperties(t,n),t}
/*!
* RyuseiCode.js
* Version : 0.1.17
* License : MIT
* Copyright: 2021 Naotoshi Fujita
*/
!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t="undefined"!=typeof globalThis?globalThis:t||self).RyuseiCode=i()}(this,function(){"use strict";var s={selectAll:["A",!0]},h={default:["Ctrl","Shift","Alt"],mac:["⌘","⇧","⌥"]},r={language:"javascript",placeholder:"Enter code here…",minWidth:"200px",maxWidth:"100%",minHeight:"16em",maxHeight:"40em",indent:" ",tabSize:2,tabIndex:0,keymap:s,maxInitialLines:200,icons:{arrowUp:["m18.6 10.3c-6.59-6.85-6.59-6.85-6.59-6.85m-6.59 6.85 6.59-6.85m0 17v-17",3],arrowDown:["m5.41 13.7 6.59 6.85m6.59-6.85c-6.59 6.85-6.59 6.85-6.59 6.85m0-17v17",3],close:["m19 18-14-13m0 13 14-13",3]},i18n:{copy:"Copy",cut:"Cut",paste:"Paste",selectAll:"Select All",close:"Close",confirm:"OK",activate:"Activate",notice:"Notice",cancel:"Cancel",failedToCopy:"Can not copy on your environment.",scrollbar:"Drag to Scroll",inputLabel:"Edit contents",location:"Line: %s, Column: %s"}};function o(t,i){return-1<t.indexOf(i)}function e(t){return null!==t&&"object"==typeof t}function u(t){return Array.isArray(t)}function c(t){return"function"==typeof t}function f(t){return"string"==typeof t}function v(t){return void 0===t}function a(t){return t instanceof Text}function l(t){return t instanceof HTMLElement}function d(t){return t instanceof HTMLBRElement}function p(t,i){return void 0===i&&(i=!1),!u(t)||i&&!u(t[0])?[t]:t}var w=Array.prototype;function y(t,i,n){return w.slice.call(t,i,n)}function m(t,i,n){for(var s,h=arguments.length,r=new Array(3<h?h-3:0),o=3;o<h;o++)r[o-3]=arguments[o];return(s=w.splice).call.apply(s,[t,i,n].concat(r))}function g(){return document.activeElement}function _(i,t,n){i&&p(t).forEach(function(t){t&&i.classList[n?"add":"remove"](t)})}function b(t,i){_(t,i,!0)}function k(t,i){p(i).forEach(t.appendChild.bind(t))}function A(t,i){if(t)for(var n=Object.keys(t),s=0;s<n.length&&!1!==i(t[n[s]],n[s]);s++);return t}function L(s){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)&&A(n,function(t,i){v(n[i])||(s[i]=n[i])})}),s}function x(n,t){if(n){if(f(t))return n.getAttribute(t);e(t)&&A(t,function(t,i){null===t?n.removeAttribute(i):n.setAttribute(i,String(t))})}}function E(t,n){p(t).forEach(function(t){var i;!t||(i=t.parentNode||n&&n.parentNode)&&i.insertBefore(t,n)})}function C(t,i){if(c(t.closest))return t.closest(i);for(;t;){if(n=t,s=i,Element.prototype.matches=Element.prototype.matches||Element.prototype.msMatchesSelector,n.matches(s))return t;t=t.parentElement}var n,s;return null}function T(t,i,n){t=document.createElement(t);return i&&(f(i)||u(i)?b:x)(t,i),n&&k(n,t),t}function S(t,i){return T("div",t,i)}function D(t){c(t.setActive)?t.setActive():t.focus({preventScroll:!0})}function R(t,i){return t&&t.classList.contains(i)}function M(t){return t.clientHeight}function O(t,i){if(t){if(v(i))return t.innerHTML;t.innerHTML!==i&&(t.innerHTML=i)}}function H(t){return t&&t.defaultPrevented}var z=new WeakMap;function P(i,n,s,h){n.split(" ").forEach(function(t){i.addEventListener(t,s),h&&((t=z.get(h)||[]).push({elm:i,events:n,callback:s}),z.set(h,t))})}function B(i,t,n){c(n)?t.split(" ").forEach(function(t){i.removeEventListener(t,n)}):(t=z.get(n))&&(t.forEach(function(t){B(t.elm,t.events,t.callback)}),z.delete(n))}function F(t,i){t&&(t.cancelable&&t.preventDefault(),i&&t.stopPropagation())}function I(t,i){return t.querySelector(i)}function W(t,i){return t.querySelectorAll(i)}function j(t){return t.getBoundingClientRect()}function N(t){p(t).forEach(function(t){t&&t.parentNode&&t.parentNode.removeChild(t)})}function U(t,i){_(t,i,!1)}function X(n,t){if(f(t))return getComputedStyle(n)[t];A(t,function(t,i){v(t)||(n.style[i]=String(t))})}function $(t,i,n){return"<"+(n||"div")+" "+(t=L(i=void 0===i?{}:i,{class:p(t).filter(Boolean).join(" ")}),s="",A(t,function(t,i){i&&(t||!1===t||0===t)&&(s+=" "+i+'="'+t+'"')}),s.trim())+">";var s}function q(t,i){if(t){if(v(i))return t.textContent;t.textContent=i}}function G(t){return f(t)?t:t+"px"}function K(){return document.documentMode}function V(){return/android/i.test(navigator.userAgent)||(t=navigator.userAgent,/iPad|iPhone|iPod/.test(t)||-1<t.indexOf("Mac")&&1<navigator.maxTouchPoints);var t}var Y="ryuseicode";function Z(t,i){if(void 0===i&&(i=""),!t)throw new Error("["+Y+"] "+i)}function J(s,h,r,o,e){var u,c;function t(){o&&a();for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];c=f.bind.apply(f,[this].concat(i)),u||(v(u)&&r?c():u=e?requestAnimationFrame(c):setTimeout(c,h))}function f(){for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];s.apply(this,i),a()}function a(){(e?cancelAnimationFrame:clearTimeout)(u),u=null}return t.cancel=a,t.invoke=function(){u&&c()},t}function Q(t,i){return J(t,i,!1,!0)}function tt(t){setTimeout(t)}function it(t,i){return J(t,0,i,!1,!0)}var nt=[].concat(["ArrowDown","ArrowRight"],["ArrowUp","ArrowLeft"]),i={Up:"ArrowUp",Down:"ArrowDown",Right:"ArrowRight",Left:"ArrowLeft",Del:"Delete",Esc:"Escape",Spacebar:" "};function st(t){return i[t]||t}function ht(t,i,n,s){var h=Math.min(i,n),n=Math.max(i,n);return s?h<t&&t<n:h<=t&&t<=n}var rt=Math.max,ot=Math.min;function et(t,i,n){var s=ot(i,n),n=rt(i,n);return ot(rt(s,t),n)}var ut=Math.min,ct=Math.max,ft=Math.floor,at=Math.ceil,vt=Math.abs,lt=Math.round;function dt(t,i){return t[0]-i[0]||t[1]-i[1]}function pt(){return document.createRange()}function wt(){return window.getSelection()}function yt(t,i){var n=t.childNodes;if(!n.length&&!i)return{node:t,offset:0};if(i<=t.textContent.length)for(var s=0;s<n.length;s++){var h=n[s],r=h.textContent.length;if(a(h)){if(i<=r)return{node:h,offset:i}}else if(h instanceof Element){h=yt(h,i);if(h)return h}i-=r}return null}function mt(t,i,n,s){return void 0===s&&(s=t.length),((t=(n=void 0===n?0:n)||s!==t.length?t.slice(n,s):t).match(new RegExp(i,"g"))||[]).length}function gt(t,i,n,s){for(var h=(s=void 0===s?0:s)-1,r=n;(-1!==h||n===r)&&r--;)h=t.indexOf(i,h+1);return h}function _t(t,i){if(String.prototype.repeat)return t.repeat(i);for(var n="";0<i;)i%2&&(n+=t),i=ft(i/2),t+=t;return n}function bt(t,i){return t.slice(0,i.length)===i}var kt={};var t=function(){function t(t){this.Editor=t,this.event=t.event,this.options=t.options,this.language=t.language}var i=t.prototype;return i.mount=function(t){var n=this;this.elements=t,A(this.Editor.Components,function(t,i){n[i]=t})},i.destroy=function(){B(null,"",this)},i.on=function(t,i,n,s){this.event.on(t,n?i.bind(n):i,this,s)},i.off=function(t){this.event.off(t,this)},i.emit=function(t){for(var i,n=arguments.length,s=new Array(1<n?n-1:0),h=1;h<n;h++)s[h-1]=arguments[h];(i=this.event).emit.apply(i,[t].concat(s))},i.bind=function(t,i,n,s){P(t,i,s?n.bind(s):n,this)},i.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},i.invoke=function(t,i){for(var n,s=arguments.length,h=new Array(2<s?s-2:0),r=2;r<s;r++)h[r-2]=arguments[r];return(n=this.Editor).invoke.apply(n,[t,i].concat(h))},i.require=function(t){return this.Editor.require(t)},i.addIcons=function(t){var i=this.options;i.icons=L({},t,i.icons)},i.addI18n=function(t){var i=this.options;i.i18n=L({},t,i.i18n)},i.addKeyBindings=function(t){var i=this.options;i.keymap=L({},t,i.keymap)},i.getOptions=function(t,i){t=this.options[t];return v(t)||!0===t?i||{}:e(t)?L({},i,t):void Z(!1)},_createClass(t,[{key:"lines",get:function(){return this.Code.Lines}},{key:"i18n",get:function(){return this.options.i18n}}]),t}(),At=Y,Lt=Y+"__view",xt=Y+"__body",Et=Y+"__scroller",Ct=Y+"__container",Tt=Y+"__editor",St=Y+"__scrollbar",Dt=Y+"__lines",Rt=Y+"__line",Mt=Y+"__caret",Ot=Y+"__markers",Ht=Y+"__marker",zt=Y+"__context-menu",Pt=zt+"__group",Bt=zt+"__list",Ft=zt+"__button",It=Y+"__button",Wt="is-active",jt="is-rendered",Nt="is-anchor",Ut="is-focus",Xt="is-preserved",$t="is-focused",n="is-dragging",qt="is-empty",Gt="mounted",Kt="blur",Vt="readOnly",Yt="keydown",Zt="change",Jt="changed",Qt="compositionStart",ti="focusLineChanged",ii="chunkMoved",ni="selecting",si="selected",hi="scrolled",ri="scrollerScroll",oi="windowScroll",ei="resize",ui="scrollWidthChanged",ci="scrollHeightChanged",fi="contextMenuClicked",ai="fontLoaded",vi=Object.freeze({__proto__:null,IDLE:0,COLLAPSED:1,START:2,CHANGED:3,UPDATE:4,SELECTING:5,EXTEND:6,END:7,SELECTED:8,SELECTED_ALL:9,CLICKED_RIGHT:10}),li=function(){function t(t,i,n){var s=this;this.t=t,this.caret=S([Mt,Mt+"--"+i],n),this.i=Q(this.i.bind(this),30),t.event.on(ei,function(){s.n&&s.move(s.n)})}var i=t.prototype;return i.move=function(t){var i=this.t.Components.Measure.getOffset(t);X(this.caret,{top:G(i.top),left:G(i.left+-1),animation:"none"}),this.i(),this.n=t},i.show=function(){b(this.caret,Wt)},i.hide=function(){U(this.caret,Wt)},i.i=function(){X(this.caret,{animation:""})},t}(),di="primary",pi=function(i){function t(){var t=i.apply(this,arguments)||this;return t.s={},t}_inheritsLoose(t,i);var n=t.prototype;return n.mount=function(t){i.prototype.mount.call(this,t),this.h(),K()||V()||(this.register(di),this.r=this.get(di),this.o())},n.h=function(){this.e=S({class:"ryuseicode__carets",role:"presentation","aria-hidden":!0},this.elements.editor)},n.o=function(){var n=this,t=this.elements.editable,s=this.r,h=this.Editor;this.bind(t,"focus",function(){h.readOnly||s.show()}),this.bind(t,"blur",function(){s.hide()}),this.u=it(this.u.bind(this),!0),this.on(Vt,function(t,i){i?s.hide():h.isFocused()&&(n.u(),s.show())}),this.on(si,this.c,this),this.on(ni,this.u)},n.c=function(t,i){this.Editor.readOnly||i.is(3,1,8)&&this.u()},n.u=function(){this.r.move(this.Selection.get(!1).end)},n.register=function(t){var i=this.s;Z(!i[t]);var n=new li(this.Editor,t,this.e);return i[t]=n},n.get=function(t){return this.s[t=void 0===t?di:t]},_createClass(t,[{key:"rect",get:function(){return this.Selection.getRect(!0)}}]),t}(t),wi=function(n){function t(){var t=n.apply(this,arguments)||this;return t.start=0,t.margin=10,t.offsetY=0,t.f={},t.a={},t.v=0,t}_inheritsLoose(t,n);var i=t.prototype;return i.mount=function(t){n.prototype.mount.call(this,t);var i=t.scroller;this.l=i,this.p=t.lines,this.v=window.pageYOffset+i.scrollTop,this.w=this.y(),this.m=Q(this.m.bind(this),60),this.g(),this._(),this.o()},i.o=function(){var t=this,i=it(this.b.bind(this));this.bind(this.l,"scroll",function(){i(!0),t.emit(ri)}),this.bind(window,"scroll",function(){i(!1),t.emit(oi)}),this.bind(window,"scroll",it(function(){t.w=t.y(),t.k=null})),this.on(ei,function(){t.k=null,t.A()}),this.on(ci,function(){t.g(),t.k=null}),this.on(si,this.c,this,0),this.on(ni,function(){t.L(!0),t.x&&t.C(!0)})},i.c=function(t,i){i.is(1,3)&&(this.L(!0),this.L(!1),this.T&&this.C(!1),this.x&&this.C(!0))},i.b=function(t){var i,n=window.pageYOffset+this.l.scrollTop;this.w&&((i=this.v)<n?this.S():n<i&&this.D(),this.emit("scroll",!0),this.m(t)),this.v=n},i.m=function(t){this.emit(hi,t)},i.L=function(t){var i,n=t?Ut:Nt,s=this.Selection.get(!1)[t?"end":"start"][0],h=this.getBoundary(t),r=this.getLine(s);r||(i=this.getBoundary(!t)).row===s&&(r=i.line),r&&h.row!==s&&(this.R(t),b(r,n),L(h,{line:r,row:s}),this.M(t,!0))},i.R=function(t){var i=this.getBoundary(t),n=i.line;n&&(R(n,Xt)&&!R(n,t?Nt:Ut)?N(n):U(n,t?Ut:Nt),i.line=null,i.row=null)},i.C=function(t){var i=this.getBoundary(t);Z(i.line),this.emit(t?ti:"anchorLineChanged",i.line,i.row),t?this.x=!1:this.T=!1},i.M=function(t,i){t?this.x=i:this.T=i},i.g=function(){var t=this.Measure,i=t.lineHeight,n=t.scrollerRect,t=ut(n.height,window.innerHeight),n=at(t/i),t=n+2*this.margin;n!==this.visibleLines&&(0<(t=t-(i=this.elms.length))&&(this.O(this.start+i,t,"beforeend"),this.emit("chunkSupplied",this,t)),this.visibleLines=n)},i._=function(){var t=this.elms,i=this.length;t.length>i&&N(t.slice(i-t.length))},i.O=function(t,i,n){for(var s="",h=0;h<i;h++){var r=this.lines[t+h];s+=$(Rt)+(r?r.html:"")+"</div>"}return n&&this.p.insertAdjacentHTML(n,s),s},i.S=function(){var t,i,n=this.H();n>=this.length?this.z():0<n&&(i=this.Measure.lineHeight,this.offsetY+=i*n,this.start<0&&(this.offsetY=ct(this.offsetY+this.start*i,0)),t=this.elms,i=this.O(this.start+t.length,n),t[t.length-1].insertAdjacentHTML("afterend",i),N(this.P(0,n)),this.start+=n,this.B(),this.F(),this.emit(ii,this))},i.D=function(){var t,i,n,s=this.I();s>=this.length?this.z():0<s&&(t=this.Measure.lineHeight,N(this.P(-s)),i=this.elms,n=this.O(this.start-s,s),i[0].insertAdjacentHTML("beforebegin",n),this.start-=s,this.offsetY=ct(this.offsetY-t*s,0),this.B(),this.F(),this.emit(ii,this))},i.H=function(){if(this.end<this.lines.length){var t=this.Measure.lineHeight,i=this.margin,n=j(this.p).top,s=this.border[0];if(n+t*i<s)return ft((s-n)/t)}return 0},i.I=function(){if(0<this.start){var t=this.Measure,i=t.lineHeight,n=t.padding.bottom,s=this.margin,h=j(this.p),r=h.top,o=h.bottom,t=this.border,h=t[0],t=t[1];if(h<r)return s+ft((r-h)/i);if(t<o-i*s-n)return ft((o-n-t)/i)}return 0},i.P=function(t,i){return this.elms.slice(t,i).reduce(function(t,i){var n=R(i,Nt),s=R(i,Ut);return n||s?(b(i,Xt),x(i,{"aria-hidden":!0})):t.push(i),t},[])},i.B=function(){var t,i,n,s=this.Selection,h=this.f.line,r=this.a.line,o=s.anchor,e=s.focus,u=this.includes(o[0]),c=this.includes(e[0]),f=u&&R(h,Xt),a=c&&R(r,Xt);(f||a)&&(t=u?o[0]-this.start:-1,i=c?e[0]-this.start:-1,o=ut(t,i),c=ct(t,i),e=s.isBackward(),s=-1<o?(n=e?r:h,e?h:r):u?h:r,e=this.elms,u=n?e.slice(0,o):e.slice(0,c),o=n?e.slice(o+1,c):[],c=e.slice(c+1),f&&(U(h,Xt),x(h,{"aria-hidden":null}),N(e[t])),a&&t!=i&&(U(r,Xt),x(r,{"aria-hidden":null}),N(e[i])),E(u,n||s),E(o,s),s=s.nextElementSibling,c.length&&c[0]!==s&&E(c,s))},i.F=function(t){void 0===t&&(t=this.offsetY),this.p.style.top=t+"px"},i.z=function(){this.W(this.Measure.closest(this.l.scrollTop))},i.A=function(){var t,i;this.Measure.getTop(this.start)!==this.offsetY&&(t=this.a.row,i=this.includes(t),this.z(),i&&this.View.jump(t))},i.y=function(){var t=j(this.l),i=t.top,n=t.bottom,t=window.innerHeight;return ht(i,0,t)||ht(n,0,t)||i<0&&t<n},i.W=function(t){var i=this.Measure,n=this.length,s=i.padding.top,h=i.lineHeight,h=at(s/h);this.start=et(t-h,0,ct(this.lines.length-n+this.margin,0)),this.offsetY=i.getTop(this.start);i=this.P(0);i[0].insertAdjacentHTML("afterend",this.O(this.start,n)),N(i),this.F(),this.B(),this.emit(ii,this)},i.getBoundary=function(t){return t?this.a:this.f},i.addPreservedLine=function(t,i){var n,s=this.p,h=S({class:Rt+" "+(t?Ut:Nt)+" "+Xt,"aria-hidden":!0});return this.R(t),O(h,this.lines[i].html),i<this.start?(n=s,p(h).forEach(function(t){n.insertBefore(t,n.firstChild)})):k(s,h),L(this.getBoundary(t),{line:h,row:i}),this.M(t,!0),h},i.sync=function(t,i){void 0===t&&(t=this.elms),void 0===i&&(i=this.start);for(var n=0;n<t.length;n++){var s=this.lines[n+i];O(t[n],s?s.html:"")}},i.syncDiff=function(t,i){var n;vt(i)<10&&(n=t-this.start,t=this.elms,0<i?t[n]&&E(t.slice(-i),t[n].nextElementSibling):i<0&&k(this.p,t.slice(1+n,1+n-i)))},i.refresh=function(){this.S(),this.D()},i.scroll=function(t){this.l.scrollTop=t,this.b(!0)},i.getRow=function(t){t=this.elms.indexOf(t);return-1<t?t+this.start:-1},i.getLine=function(t){return this.elms[t-this.start]},i.includes=function(t){return ht(t,this.start,this.end)},_createClass(t,[{key:"end",get:function(){return this.start+this.length-1}},{key:"length",get:function(){return this.visibleLines+2*this.margin}},{key:"elms",get:function(){return y(W(this.p,"."+Rt+":not(."+Xt+")"))}},{key:"border",get:function(){var t,i;return this.k||(i=j(this.l),t=ct(i.top,0),i=ut(i.bottom,window.innerHeight),this.k=[t,i]),this.k}}]),t}(t),yi="\n",mi=function(){function t(){this.length=0}var i=t.prototype;return i.push=function(){for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];w.push.apply(this,i)},i.splice=function(t,i){for(var n=arguments.length,s=new Array(2<n?n-2:0),h=2;h<n;h++)s[h-2]=arguments[h];m.apply(void 0,[this,t,i].concat(s))},i.clear=function(){m(this,0,this.length)},t}();function gi(t,i){return t&&t[0]===i[0]&&(!i[1]||i[1].test(t[1]))&&(v(i[2])||t[2].state===i[2])}
/*!
* RyuseiLight.js
* Version : 1.2.0
* License : MIT
* Copyright: 2020 Naotoshi Fujita
*/var _i=function(){function t(t){this.j=0,this.depth=0,this.tokens=[],this.indentDepth=0,this.N=t}var i=t.prototype;return i.init=function(){var t=this.first,t=t&&t[2]||{};this.depth=t.depth||0,this.language=t.language||"",this.split=t.split,this.indentDepth=mt(this.getIndent(),this.N.indent),this.U=void 0,this.X=void 0},i.set=function(t,i){(!i||i>this.j)&&(this.tokens=t,this.j=i||Date.now(),this.init())},i.getIndent=function(){var t=this.first;if(t){if("space"===t[0])return t[1];if("comment"===t[0]){t=this.text.match(new RegExp("^"+this.N.indent+"+"));return t?t[0]:""}}return""},i.getInfo=function(t){t=this.tokens[t];return t&&t[2]},i.getInfoAt=function(t){var i=this.tokens,n=this.tokens.length;if(i.length){if(t===this.text.length)return i[n-1][2];for(var s=0;s<n;s++){var h=i[s][2];if(h.from<=t&&t<h.to)return h}}},i.isEmpty=function(){var t=this.tokens;return 1===t.length&&o(["lb","space"],t[0][0])},_createClass(t,[{key:"html",get:function(){if(!this.U){for(var t="",i=0;i<this.tokens.length;i++){var n=this.tokens[i];if(0===i&&n[1]===yi){t+="<br>";break}t+=n[2].html}this.U=t||"<br>"}return this.U}},{key:"text",get:function(){return v(this.X)&&(this.X=this.tokens.reduce(function(t,i){return i[1]!==yi&&(t+=i[1]),t},"")),this.X}},{key:"first",get:function(){return this.tokens[0]}}]),t}(),bi=function(h){function t(t,i,n){var s=h.call(this)||this;return s.$={},s.q=i,s.G=t,s.N=n,s}_inheritsLoose(t,h);var i=t.prototype;return i.insert=function(t,i){for(i=i||1;0<i--;)this.splice(t,0,new _i(this.N))},i.delete=function(t,i){this.splice(t,i)},i.sync=function(t,i,n,s,h){(s=void 0===s?"":s)&&(i=s+yi+i,n&&n++);var r,o=this.q.lexer.run(i,n);s&&o.shift();for(var e=0;e<o.length;e++){var u=t+e,c=o[e];this[u]||this.insert(u),this[u]&&(e===o.length-1&&(r=!this.K(this[u].tokens,c)),this[u].set(c,h))}return r},i.asyncSync=function(t,i,n,s,h,r){var o=this;void 0===h&&(h="");var e=this.$;e[t]&&clearTimeout(e[t]);var u=Date.now();e[t]=setTimeout(function(){o.sync(i,n,s,h,u),r&&r()},10)},i.findMinIndent=function(t,i){for(var n=void 0,s=t;s<=i;s++)var h=this[s].getIndent(),n=v(n)||n.length>h.length?h:n;return n||""},i.getInfoAt=function(t){var i=this[t[0]];return i?i.getInfoAt(t[1]):void 0},i.scanUp=function(t,i,n,s,h){void 0===s&&(s=0);var r=this.getInfoAt(t);if(r)for(var o=t[0],e=h?ct(0,o-h):0,u=o;e<=u;u--)for(var c=this[u].tokens,f=u===o?r.index:c.length-1;0<=f;f--){if(gi(c[f],i)){if(!s)return{row:u,info:this[u].getInfo(f)};s++}n&&gi(c[f],n)&&s--}},i.scanDown=function(t,i,n,s,h){void 0===s&&(s=0);var r=this.getInfoAt(t);if(r)for(var o=t[0],t=this.length,e=h?ut(t,o+h):t,u=o;u<e;u++)for(var c=this[u].tokens,f=u===o?r.index:0;f<c.length;f++){if(gi(c[f],i)){if(!s)return{row:u,info:this[u].getInfo(f)};s++}n&&gi(c[f],n)&&s--}},i.findBlockStart=function(t){var i=this.getInfoAt(t);if(i){if(i.split){var n=t[0]-i.distance,s=this[n];return[n,s.getInfo(s.tokens.length-1).from]}return[t[0],i.from]}},i.findBlockEnd=function(t){var i=this.getInfoAt(t);if(i){if(i.split&&!i.tail)for(var n=t[0]+1;n<this.length;n++){var s=this[n].getInfo(0);if(s&&s.tail)return[n,s.to]}return[t[0],i.to]}},i.syncSize=function(t,i){var n=i-this.length;return 0<n?n<100?this.insert(t,n):this.V(i):n<0&&this.delete(t,-n),n},i.destroy=function(){A(this.$,clearTimeout)},i.V=function(t){var i=this.length;if(t<i)this.splice(t,i-t);else if(i<t)for(;t-- >i;)this.push(new _i(this.N))},i.K=function(t,n){return t.length===n.length&&t.every(function(t,i){i=n[i];return t[0]===i[0]&&t[1]===i[1]&&t[2].depth===i[2].depth})},t}(mi),ki=function(i){function t(){var t=i.apply(this,arguments)||this;return t.minStart=1/0,t.maxEnd=0,t}_inheritsLoose(t,i);var n=t.prototype;return n.init=function(t){this.Lines?this.Lines.clear():this.Lines=new bi(this.event,this.Editor.language,this.options),this.value=t,this.Lines.sync(0,t)},n.before=function(t){var i=this.text;return t<0?"":i.slice(0,t<this.size-1?gt(i,yi,t+1)+1:i.length)},n.after=function(t){var i=this.text;return t<=0?i:i.slice(t<this.size?gt(i,yi,t)+1:i.length)},n.getLine=function(t){return t<this.size?this.sliceLines(t,t):""},n.sliceLines=function(t,i){var n=this.text,i=i<this.size-1?gt(n,yi,i+1)+1:this.text.length;return n.slice(gt(n,yi,t)+1,i)},n.sliceRange=function(t,i){t=this.Y(t),i=i?this.Y(i):this.text.length;return t<i?this.text.slice(t,i):""},n.replaceLines=function(t,i,n){Z(t<=i),this.text=this.before(t-1)+this.normalize(n)+this.after(i+1),this.sizeCache=0},n.replaceRange=function(t,i,n){var s=this.Y(t),t=this.Y(i),i=this.value;s<=t&&(this.text=i.slice(0,s)+this.normalize(n)+i.slice(t),this.sizeCache=0)},n.replaceLinesBy=function(t,i,r){var n=this.size;Z(i<n);var o=i===n-1,n=this.sliceLines(t,i).split(yi,i-t+1);this.replaceLines(t,i,n.reduce(function(t,i,n,s){var h=o&&n===s.length-1?"":yi;return t+r(i,n,s)+h},""))},n.search=function(t,i,n,s){var t=f(t)?t.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&"):t.source,h=[];if(t){var r=new RegExp(n?"\\b"+t+"\\b":t,i?"gi":"g");t:for(var o=0;o<this.Lines.length;o++)for(var e,u=this.Lines[o];e=r.exec(u.text);)if(e[0]||r.lastIndex++,h.push({start:[o,e.index],end:[o,e.index+e[0].length]}),s&&h.length>=s)break t}return h},n.destroy=function(){this.Lines&&this.Lines.destroy(),i.prototype.destroy.call(this)},n.Y=function(t){var i=t[0];return Z(i<this.size),gt(this.text,yi,i)+1+t[1]},n.normalize=function(t){return t.replace(/\r\n?/g,"\n")},_createClass(t,[{key:"value",get:function(){return this.text},set:function(t){this.text=this.normalize(t),this.sizeCache=0}},{key:"size",get:function(){return this.sizeCache=this.sizeCache||mt(this.text,yi)+1,this.sizeCache}}]),t}(t),Ai="0 0 24 24";function Li(t,i){t=document.createElementNS("http://www.w3.org/2000/svg",t);return x(t,i),t}var xi="main",Ei=[{id:"copy",shortcut:["C",!0]},{id:"cut",shortcut:["X",!0],disableOnReadOnly:!0},{id:"paste",shortcut:["V",!0],disableOnReadOnly:!0}],Ci=[{id:"selectAll",shortcut:["A",!0]}],Ti=function(n){function t(){var t=n.apply(this,arguments)||this;return t.Z=-1,t}_inheritsLoose(t,n);var i=t.prototype;return i.listen=function(){var t=this;n.prototype.listen.call(this);var i=this.elements;this.bind(i.editor,"mousedown",this.J,this),this.bind(document,"contextmenu",this.Q,this),this.bind(window,"keydown",this.tt,this),this.on([Kt,ri,oi],this.hide,this),this.bind(i.root,"focusin",function(){t.it(g())||t.wrapper.contains(g())||t.hide()})},i.create=function(){this.wrapper=S({class:zt,role:"menu"},this.elements.overlay)},i.J=function(t){2===t.button?(this.show(xi),this.nt(t.clientX,t.clientY)):this.hide()},i.Q=function(t){var i,n=this;if(this.isActive())return F(t);this.it(t.target)&&((i=this.Selection).is(0)||(this.View.jump(i.focus[0]),requestAnimationFrame(function(){var t=n.Caret.rect;n.show(xi),n.nt(t.left,t.bottom)})),F(t,!0))},i.tt=function(t){var i,n;this.isActive()&&(n="ArrowUp"===(i=st(t.key)),"ArrowDown"!==i&&!n||(this.a(n),F(t)))},i.a=function(t){var i=W(this.wrapper,"."+Ft),n=i.length;n&&(this.Z+=t?-1:1,this.Z<0?this.Z=n-1:this.Z>=n&&(this.Z=0),i[this.Z].focus())},i.nt=function(t,i){var n=this.wrapper,s=this.wrapper.clientWidth,h=document.documentElement,r=j(this.elements.root);t+s>h.clientWidth-5&&(t-=s),X(n,{top:G((i=ut(i,M(h)-M(n)-5))-r.top),left:G(t-r.left)})},i.it=function(t){return l(t)&&this.elements.editor.contains(t)},i.st=function(h){var r=this,t=this.groups[h],i=t.lists,n=t.elm;q(n,""),A(i,function(s,t){var i=T("ul",[Bt,Bt+"--"+t],n);s=s.map(function(t){return t.parent=T("li","ryuseicode__context-menu__item",i),t});t=r.createButtons(s,null,r,Ft);A(t,function(n,t){var i=r.ht(s,t);Z(i),x(n,{role:"menuitem"}),r.bind(n,"click",function(){r.emit(fi,r,h,t,n),r.hide()}),i.disableOnReadOnly&&(n.disabled=r.Editor.readOnly,r.on(Vt,function(t,i){n.disabled=i})),r.bind(n,"mouseover",function(){n.focus()})}),r.buttons=L({},r.buttons,t)})},i.ht=function(t,i){for(var n=0;n<t.length;n++)if(t[n].id===i)return t[n]},i.register=function(t,i,n){var s=this,h=this.groups;h[t]||(h[t]={elm:S([Pt,Pt+"--"+t]),lists:{}}),n.forEach(function(t){var i=s.i18n[t.i18n||t.id],n=t.shortcut?s.Keymap.getShortcut(t.shortcut):"";t.html=t.html||'<span class="ryuseicode__context-menu__button__label">'+i+"</span>"+(n?'<span class="ryuseicode__context-menu__button__shortcut">'+n+"</span>":"")});t=h[t].lists;t[i]=(t[i]||[]).concat(n)},i.show=function(t){this.groups[t]&&(this.st(t),n.prototype.show.call(this,t),this.Z=-1,this.emit("contextMenuOpened"))},i.hide=function(){this.isActive()&&(n.prototype.hide.call(this),this.buttons=null,this.emit("contextMenuClosed"))},t}(function(i){function t(){var t=i.apply(this,arguments)||this;return t.groups={},t}_inheritsLoose(t,i);var n=t.prototype;return n.mount=function(t){i.prototype.mount.call(this,t),this.create(),this.listen()},n.create=function(){Z(!1)},n.listen=function(){this.bind(window,"keydown",this.escape,this)},n.escape=function(t){this.isActive()&&"Escape"===st(t.key)&&(this.hide(),F(t))},n.append=function(t){k(this.wrapper,this.groups[t].elm)},n.autoFocus=function(t){t=this.groups[t].elm,t=I(t,"[tabindex]")||I(t,"input, button");t&&(t.focus(),t instanceof HTMLInputElement&&t.select())},n.createCloseButton=function(t){var i=this.createButtons({id:"close",icon:"close",click:"hide"},null,this).close;return x(i,t),i},n.createButtons=function(t,s,h,r){var o=this,e={};return p(t).forEach(function(i){var t=o.createButton(i,s,r),n=i.click;n&&o.bind(t,"click",function(t){f(n)?h[n]():n(t,o.Editor,i)}),e[i.id]=t},[]),e},n.createButton=function(t,i,n){var s=this.options.i18n,h=t.checkbox,r=t.tabindex,o=t.icon,s=s[t.i18n||t.id];n=[It].concat(o?It+"--icon":null,n);r=T("button",{title:o?s:null,type:"button",tabindex:v(r)?null:r,role:h?"checkbox":null,"aria-checked":h?"false":null,"aria-label":s},i||t.parent);return b(r,n),o?(h=this.options.icons[o])&&k(r,(i=h[0],n=h[1],o=h[2]||"round",h=Li("svg",{viewBox:Ai,class:"ryuseicode__icon"}),i=Li("path",{d:i,fill:"currentColor"}),n&&x(i,{"stroke-width":n,"stroke-linecap":o,stroke:"currentColor"}),x(h,{viewBox:Ai}),h.appendChild(i),h)):O(r,t.html||s),r},n.createField=function(t,i){var n=this.i18n[t.i18n||t.id],t=t.tabindex;return T("input",{class:"ryuseicode__input",placeholder:n,spellcheck:!1,tabindex:v(t)?null:t,"aria-label":n},i)},n.show=function(t){this.isActive()&&N(this.groups[this.group].elm),b(this.wrapper,Wt),this.append(t),this.group=t},n.hide=function(){this.isActive()&&(U(this.wrapper,Wt),N(this.groups[this.group].elm))},n.isActive=function(t){return R(this.wrapper,Wt)&&(!t||this.group===t)},n.isFocused=function(){return this.wrapper.contains(g())},t}(t)),Si=function(){function t(){}var i=t.prototype;return i.h=function(t){var i=T("textarea",{},document.body),n="-999999px";return X(i,{position:"absolute",top:n,left:n}),i.value=t,D(i),i.setSelectionRange(0,t.length),i},i.rt=function(){var t=this.h("");document.execCommand("paste");var i=t.value;return N(t),i},i.ot=function(t,i){t=this.h(t);try{document.execCommand("copy")}catch(t){i&&i()}N(t)},i.paste=function(t){var i=navigator.clipboard;i?i.readText().then(t):t(this.rt())},i.copy=function(t,i){var n=this,s=navigator.clipboard;s?s.writeText(t).catch(function(){n.ot(t,i)}):this.ot(t,i)},t}(),Di=function(i){function t(){var t=i.apply(this,arguments)||this;return t.et=new Si,t}_inheritsLoose(t,i);var n=t.prototype;return n.mount=function(t){i.prototype.mount.call(this,t),this.ut(),this.o()},n.o=function(){var i=this,t=this.elements.editable;this.on(Yt,this.tt,this),this.bind(t,"paste",this.ct,this),this.bind(t,"copy cut",function(t){i[t.type]()}),this.bind(t,"dragover drop paste cut",function(t){F(t,!0)}),this.on(fi,this.ft,this),K()&&this.bind(t,"compositionstart",function(t){i.at&&F(t,!0)})},n.tt=function(t,i){function n(t){return o(p(t),h)}var s=this.Selection,h=st(i.key);if(this.at=!1,this.Keymap.matches(i,"selectAll"))return s.selectAll(),F(i,!0);i.altKey||i.metaKey||i.ctrlKey||s.isMultiline()&&(1===h.length||n(["Process","Enter"])?(this.delete(),this.at=!0):n(["Delete","Backspace"])&&(this.delete(),F(i)))},n.ft=function(t,i,n,s){n===xi&&(n=this.Selection,"copy"===s||"cut"===s?(this.vt()||n.selectLine(void 0,"copy"===s,!0),this[s]()):"paste"===s?this.et.paste(this.paste.bind(this)):"selectAll"===s&&n.selectAll())},n.ct=function(t){var i=(t.clipboardData||window.clipboardData).getData("text");i&&this.paste(i),F(t)},n.ut=function(){var t=this.ContextMenu;t.register(xi,"edit",Ei),t.register(xi,"selection",Ci)},n.vt=function(){return!this.Selection.isCollapsed()},n.lt=function(){return!this.Editor.readOnly},n.delete=function(){this.vt()&&this.paste("","delete")},n.paste=function(t,i){var n,s,h,r,o,e,u;void 0===i&&(i="paste"),this.lt()&&("paste"===i&&this.emit("paste",t),n=this.Selection,s=this.Code,h=(e=n.get()).start,r=e.end,u=mt(t,yi)+1,u=[e=(o=h[0])+u-1,t.slice(t.lastIndexOf(yi)+1).length+(1<u?0:h[1])],this.emit(Zt,i),s.replaceRange(h,r,t),this.Sync.sync(o,e,e),n.set(u),this.emit(Jt,i))},n.copy=function(t,i){var n=this,s=this.i18n.failedToCopy;t=v(t)?this.Selection.toString():t,this.emit("copy",t);var h=this.Selection,r=h.get(!1);this.et.copy(t,function(){n.require("Dialog")?n.invoke("Dialog","message",s):alert(n.i18n.failedToCopy)}),i||h.set(r.start,r.end)},n.cut=function(){this.vt()&&this.lt()&&(this.emit("cut"),this.copy(void 0,!0),this.delete())},n.cutLine=function(){var t,i,n;this.lt()&&(this.emit("cut"),n=[i=(t=this.Selection).get().start[0],0],this.View.jump(i),t.selectLine(i,!1),this.copy(void 0,!0),t.update(n),this.emit(Zt),this.Code.replaceLines(i,i,""),this.Sync.sync(i,i),t.set(n),this.emit(Jt))},t}(t),Ri="composition",Mi=function(i){function t(){return i.apply(this,arguments)||this}_inheritsLoose(t,i);var n=t.prototype;return n.mount=function(t){i.prototype.mount.call(this,t),this.o()},n.o=function(){var s=this,t=this.elements.editable;this.bind(t,"keydown",this.tt,this),this.bind(t,K()?"textinput":"input",this.dt,this),this.bind(t,"compositionstart",this.pt,this),this.bind(t,"compositionupdate",this.wt,this),this.bind(t,"compositionend",this.yt,this),this.on(Gt,function(){s.line=s.Chunk.elms[0],s.row=0}),this.on(ti,function(t,i,n){s.line=i,s.row=n})},n.pt=function(t){if(this.disabled){var i=this.Editor,n=this.Selection,s=n.get(!1);return wt().removeAllRanges(),i.blur(),void tt(function(){i.focus(),n.set(s.start,s.end)})}this.composing=!0,this.set(Ri),this.emit(Qt,t),this.emit(Zt,Ri)},n.wt=function(t){var i=this;tt(function(){i.Selection.update(i.mt()),i.emit("compositionUpdate",t)})},n.yt=function(t){this.composing=!1,this.apply(),this.emit("compositionEnd",t)},n.tt=function(t){var i=st(t.key),n=t.altKey,s=t.shiftKey;if(this.disabled&&!nt.includes(i))return F(t,!0);this.emit(Yt,t),H(t)||(this.info=this.lines.getInfoAt(this.mt()),this.set("input",{key:i}),"Enter"!==i?this.Selection.isCollapsed()&&("Delete"!==i||s||n?"Backspace"!==i||n||this.gt(t):this._t(t)):this.bt(t))},n.dt=function(t){this.emit("input",this,t),this.composing||this.apply()},n.bt=function(t){this.composing||(this.set("newline",{key:"Enter",value:this.before+yi+this.after,position:[this.row+1,0]}),this.emit("newline",this),this.apply(),F(t))},n._t=function(t){var i=this.row,n=this.lines;this.col===this.value.length&&i<n.length-1&&(this.apply({type:"deleteNext",key:"Delete",value:this.value+n[i+1].text,startRow:i,endRow:i+1}),F(t))},n.gt=function(t){var i,n=this.row;0===this.col&&(0<n&&(i=this.lines[n-1].text,this.apply({type:"removePrev",key:"Backspace",value:i+this.value,startRow:n-1,position:[n-1,i.length]})),F(t))},n.kt=function(t,i){return t+((i=void 0===i?this.row:i)<this.lines.length-1?yi:"")},n.At=function(t,i){var n=this.Lt;return n&&(n.insertion?t=this.before+n.insertion+this.after:v(n.value)||(t=n.value)),this.kt(t,i)},n.xt=function(t){var i=this.Lt;if(i){if(i.position)return i.position;t[1]+=i.offset||0}return t},n.mt=function(){return[this.row,this.col]},n.set=function(t,i){void 0===i&&(i={});var n=this.Lt;n&&n.type===t?this.Lt=L(n,i):this.Lt=L({type:t},i)},n.get=function(){return this.Lt},n.apply=function(t){var i,n,s,h;this.Lt=t||this.Lt,this.Lt&&this.line&&(i=this.Selection,s=this.row,n=(h=this.Lt).type,t=void 0===(t=h.startRow)?s:t,s=void 0===(h=h.endRow)?s:h,h=this.mt(),n!==Ri&&this.emit(Zt,n),this.Code.replaceLines(t,s,this.At(this.value,s)),this.Sync.sync(t,s,s),i.set(this.xt(h)),this.emit(Jt,n),this.Lt=null,this.info=null)},n.char=function(t){return void 0===t&&(t=this.col),this.value.charAt(t)},_createClass(t,[{key:"value",get:function(){return q(this.line)||""},set:function(t){q(this.line,t)}},{key:"before",get:function(){return this.value.slice(0,this.col)}},{key:"after",get:function(){return this.value.slice(this.col)}},{key:"length",get:function(){return this.value.length}},{key:"col",get:function(){var t=this.line,i=wt();if(t&&0<i.rangeCount){i=i.getRangeAt(0).cloneRange();return i.setStart(t,0),i.toString().length}return 0}},{key:"disabled",get:function(){return this.Et},set:function(t){this.Et=t}}]),t}(t),Oi=function(i){function t(){var t=i.apply(this,arguments)||this;return t.Ct=[],t}_inheritsLoose(t,i);var n=t.prototype;return n.mount=function(t){var n=this;i.prototype.mount.call(this,t),this.Tt=L({},s,this.options.keymap),A(this.Tt,function(t){var i;t&&(i=n.Ct).push.apply(i,p(t,!0).map(function(t){return t[0].toUpperCase()}))}),this.on(Yt,this.tt,this,0)},n.tt=function(t,i){var n;this.Editor.readOnly||!o(this.Ct,st(i.key).toUpperCase())||(n=this.St(i))&&this.emit("keymap:"+n,i,n)},n.St=function(n){var s=this,h="";return A(this.Tt,function(t,i){if(s.matches(n,i))return h=i,!1}),h},n.matches=function(t,i){var n,s,i=this.Tt[i];return i&&(i=i,s=st((n=t).key).toUpperCase(),i&&p(i,!0).some(function(t){return s===t[0].toUpperCase()&&!t[1]==!n.ctrlKey&&!t[2]==!n.shiftKey&&!t[3]==!n.altKey}))},n.getShortcut=function(t){t=f(t)?this.Tt[t]:t;if(t){t=u(t[0])?t[0]:t;if(t){var n=h[/Mac/i.test(navigator.platform)?"mac":"default"];return t.slice(1).map(function(t,i){return t&&n[i]}).filter(Boolean).concat(t[0]).join("+")}}return""},t}(t),Hi=function(){function t(t){this.Dt={},this.Rt=T("canvas").getContext("2d"),this.Rt.font=t}var i=t.prototype;return i.Mt=function(t,i){var n=this.Dt,s=this.Rt;return(i=void 0===i?!0:i)&&n[t]||(n[t]=K()?s.measureText(_t(t,10)).width/10:s.measureText(t).width)},i.measure=function(t,i){void 0===i&&(i=!0);for(var n=0,s=0;s<t.length;s++)n+=this.Mt(t.charAt(s),i);return n},i.clear=function(){this.Dt={}},t}(),zi=function(i){function t(t){t=i.call(this,t)||this;return t.Ot={},t.on("mount",t.Ht,_assertThisInitialized(t),0),t}_inheritsLoose(t,i);var n=t.prototype;return n.Ht=function(t,i){this.elements=i,this.zt(),this.Pt(),this.o()},n.o=function(){var t=this;this.on(ei,function(){t.Bt=0,t.Pt(),t.zt(),t.Ft()},null,1),this.on(ai,function(){t.It.clear()},null,1),this.on([ci,hi,oi],this.Ft,this,1)},n.Pt=function(){var t=this.elements.editor,i=S(Rt,t);this.padding={top:parseFloat(X(t,"paddingTop"))||0,bottom:parseFloat(X(t,"paddingBottom"))||0,left:parseFloat(X(i,"paddingLeft"))||0,right:parseFloat(X(i,"paddingRight"))||0},N(i)},n.zt=function(){var t=this.Wt();this.jt!==t&&(this.It=new Hi(t),this.jt=t)},n.Wt=function(){var t=this.elements.lines;return X(t,"fontSize")+" "+X(t,"fontFamily")},n.Ft=function(){this.Ot={}},n.getTop=function(t){return et(t,0,this.lines.length-1)*this.lineHeight},n.getBottom=function(t){var i=t>=this.Code.size-1;return this.getTop(t+1)+(i?this.lineHeight:0)},n.closest=function(t){return et(lt((t-this.padding.top)/this.lineHeight),0,this.lines.length-1)},n.measureWidth=function(t,i){return this.It.measure(t,i=void 0===i?!0:i)},n.getOffset=function(t){var i=this.padding,n=t[0]===this.Selection.focus[0]?this.Input.value:this.Code.getLine(t[0]);return{top:this.getTop(t[0])+i.top,left:this.measureWidth(n.slice(0,t[1]))+i.left}},_createClass(t,[{key:"editorRect",get:function(){return this.Ot.editor=this.Ot.editor||j(this.elements.editor)}},{key:"scrollerRect",get:function(){return this.Ot.scroller=this.Ot.scroller||j(this.elements.scroller)}},{key:"containerRect",get:function(){return this.Ot.container=this.Ot.container||j(this.elements.container)}},{key:"lineHeight",get:function(){return this.Bt=this.Bt||parseFloat(X(this.elements.editor,"lineHeight"))}}]),t}(t),Pi=function(){function t(t,i){this.Editor=t,this.elements=i,this.scroller=i.scroller}var i=t.prototype;return i.calcBoundaries=function(t,i){var n=this.Editor.Components.Measure,s=0<dt(t,i);return{start:n.getOffset(s?i:t),end:n.getOffset(s?t:i)}},i.html=function(t,i,n){if((n=void 0===n?!0:n)&&this.cache)return this.cache;var s=this.Editor.Components.Measure,h=s.lineHeight,r=s.padding,o=this.calcBoundaries(t,i),n=o.start,s=o.end,t=s.top-n.top,i=t-h,o=ct(n.left,r.left),e="";return t?(e+=this.buildLine(n.top,o,"100%"),e+=this.buildLine(s.top,r.left,ct(s.left-r.left,0)),0<i&&(e+=this.buildLine(n.top+h,r.left,"100%",i))):e+=this.buildLine(n.top,o,ct(s.left-o,0)),this.cache=e},i.buildLine=function(t,i,n,s){n="top: "+G(t)+"; left: "+G(i)+"; width: "+G(n)+";";return s&&(n+=" height: "+G(s)+";"),'<div class="'+Ht+'" style="'+n+'"></div>'},t}(),Bi=function(s){function t(t,i,n){t=s.call(this,t,i)||this;return t.e=S([Ot].concat(n),i.background),t}_inheritsLoose(t,s);var i=t.prototype;return i.draw=function(t,i){O(this.e,this.html(t,i,!1))},i.clear=function(){O(this.e,"")},i.isInside=function(t,i){for(var n=this.e.children,s=0;s<n.length;s++){var h=j(n[s]);if(h.width&&ht(t,h.left,h.right)&&ht(i,h.top,h.bottom))return!0}return!1},i.destroy=function(){N(this.e)},t}(Pi),Fi=Ot+"--selection",Ii=function(n){function t(t,i){i=n.call(this,t,i,Fi)||this;return i.listen(),i}_inheritsLoose(t,n);var i=t.prototype;return i.listen=function(){var t=this,i=this.Editor.event;i.on(si,this.Nt.bind(this),this,0),i.on(ni,it(this.Ut.bind(this))),i.on(ei,function(){t.clear(),t.Ut()})},i.Nt=function(t,i,n,s){i.is(1,3)&&this.clear(),i.is(3,8)&&10!==s&&this.Ut()},i.Ut=function(){var t=this.Editor.Components.Selection;t.isCollapsed()?this.clear():(t=t.get(!1),this.draw(t.start,t.end))},t}(Bi),Wi=function(i){function t(){var t=i.apply(this,arguments)||this;return t.ranges={},t.groups={},t}_inheritsLoose(t,i);var n=t.prototype;return n.mount=function(t){i.prototype.mount.call(this,t),this.selection=new Ii(this.Editor,t);t=this.Xt.bind(this,!1);this.on(ii,J(t,200)),this.on(hi,t),this.on([ai,ei],this.Xt.bind(this,!0))},n.Xt=function(n){var s=this;this.Editor&&A(this.ranges,function(t,i){s.groups[i]&&s.$t(i,n)})},n.$t=function(t,n){var s=this,i=this.ranges[t],h="";i.forEach(function(t){var i=t.range;s.y(i)&&(h+=t.marker.html(i.start,i.end,!n))}),this.groups[t].innerHTML=h},n.y=function(t){var i=this.Chunk,n=t.start[0],t=t.end[0];return i.includes(n)||i.includes(t)||ht(i.start,n,t)},n.register=function(t,i,n,s){void 0===n&&(n=!0),void 0===s&&(s=Pi);var h,r=this.ranges;r[t]=r[t]||[],i=i.slice(0,1e4);for(var o=0;o<i.length;o++){var e=i[o];n&&h&&0===dt(h.end,e.start)?h.end=e.end:(h={start:e.start,end:e.end},r[t].push({range:h,marker:new s(this.Editor,this.elements)}))}this.groups[t]||(this.groups[t]=S([Ot,Ot+"--"+t],this.elements.background)),this.Xt()},n.clear=function(t){var n=this;t?this.ranges[t]&&(q(this.groups[t],""),this.clearRanges(t)):A(this.ranges,function(t,i){n.clear(i)})},n.clearRanges=function(t){this.ranges[t]=[]},t}(t),ji=function(t){function i(){return t.apply(this,arguments)||this}_inheritsLoose(i,t);var n=i.prototype;return n.isIn=function(t,i){var n=(t=p(t)).filter(function(t){return-1<t.indexOf("#")}),t=t.filter(function(t){return-1===t.indexOf("#")});return this.inState(n,i)&&this.inCategory(t,i)},n.inState=function(t,i){return this.qt(t,!1,i)},n.inCategory=function(t,i){return this.qt(t,!0,i)},n.qt=function(t,n,s){var h=this,i=(t=p(t)).filter(function(t){return bt(t,"!")}).map(function(t){return t.slice(1)});return(!i.length||!this.qt(i,n))&&(!(t=t.filter(function(t){return!bt(t,"!")})).length||t.some(function(t){var i=h.lines.getInfoAt(s||h.Selection.get().start);return i&&i[n?"category":"state"]===t}))},i}(t);function Ni(t,i){t.contentEditable=i?"true":"false"}var Ui=[0,0],Xi=function(){function t(t){this.handlers={},this.Gt=t}var i=t.prototype;return i.on=function(t,s,h,r){var o=this;void 0===r&&(r=10),p(t).filter(Boolean).join(" ").split(" ").forEach(function(t){var i=t.split("."),n=i[0],t=i[1],i=o.handlers[n]||[];i.push({event:n,callback:s,namespace:t,priority:r,key:h}),i.sort(function(t,i){return t.priority-i.priority}),o.handlers[n]=i})},i.off=function(t,s){var h=this;p(t).filter(Boolean).join(" ").split(" ").forEach(function(t){var i=t.split("."),t=i[0],n=i[1],i=h.handlers[t];i&&(h.handlers[t]=s||n?i.filter(function(t){return!(t.key===s&&t.namespace===n)}):[])})},i.emit=function(t){for(var i=arguments.length,n=new Array(1<i?i-1:0),s=1;s<i;s++)n[s-1]=arguments[s];var h=this.handlers[t],r={type:t,owner:this.Gt};h&&h.forEach(function(t){t.callback.apply(t,[r].concat(n))})},i.destroy=function(){this.handlers={}},t}(),$i=function(n){function t(t){var i=n.call(this,0)||this;return i.Kt={},i.t=t,i.Vt=t.elements,i.Yt=t.Components.Selection,i.o(),i}_inheritsLoose(t,n);var i=t.prototype;return i.o=function(){var t=this.Vt.editable,i=this.t.event,n=this.Kt,s=this.tt.bind(this);P(document,"selectionchange",this.Zt.bind(this),n),P(window,"pointerup",this.Jt.bind(this),n),P(t,"pointerdown",this.Qt.bind(this),n),P(t,"keydown",s,n),P(t,"keyup",this.ti.bind(this),n),i.on("focus",this.ii.bind(this)),i.on(Kt,this.ni.bind(this))},i.ii=function(){this.is(0)&&this.set(1)},i.ni=function(){this.t.Components&&(this.si()||this.set(0))},i.Zt=function(){g()===this.t.elements.editable&&(this.is(2,6)?this.set(3):this.is(3)?this.set(5):this.is(1,8)&&(wt().isCollapsed?(this.set(3),this.set(1)):(this.set(5),this.set(8))))},i.Qt=function(t){var i;H(t)||(this.device=t instanceof PointerEvent?"pointer":"keyboard",i=this.Yt,t instanceof PointerEvent&&2===t.button&&i.isInside(t.clientX,t.clientY)?this.set(10):this.set(t.shiftKey?6:2))},i.Jt=function(){this.device&&!this.is(0)&&(this.device=null,this.is(10)||(this.is(6)?this.set(8):(this.set(7),this.set(wt().isCollapsed?1:8))))},i.tt=function(t){o(nt,st(t.key))&&this.Qt(t)},i.ti=function(t){o(nt,st(t.key))&&this.Jt()},i.si=function(){return this.Vt.editor.contains(g())||this.t.Components.ContextMenu.isFocused()},i.update=function(t){this.is(2,6)||(this.set(4),this.set(t?1:8))},i.refresh=function(t){this.is(2,6)||(this.set(2),this.set(3),this.set(t?1:8))},i.destroy=function(){this.event.destroy(),B(null,"",this.Kt)},t}(function(){function t(t){this.event=new Xi,this.Lt=t}var i=t.prototype;return i.set=function(t){this.Lt===t||this.hi||(this.ri=this.Lt,this.Lt=t,this.event.emit("changed",t,this.ri))},i.is=function(){for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];return o(y(i),this.Lt)},i.isPrev=function(){for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];return o(y(i),this.ri)},i.hold=function(){this.hi=!0},i.release=function(){this.hi=!1},i.on=function(t,i,n){this.event.on(t,i,this,n)},t}()),qi=function(i){function t(){var t=i.apply(this,arguments)||this;return t.STATES=vi,t.anchor=Ui,t.focus=Ui,t}_inheritsLoose(t,i);var n=t.prototype;return n.mount=function(t){i.prototype.mount.call(this,t),this.state=new $i(this.Editor),this.o()},n.o=function(){var t=this.elements.editable;this.bind(document,"selectionchange",this.Zt,this),K()?this.bind(t,"dblclick",this.oi,this):this.bind(t,"mousedown",this.J,this),this.state.on("changed",this.Nt.bind(this)),this.on([ri,oi],this.b,this),this.on(hi,this.ei,this)},n.Zt=function(){var t;this.si()&&(!this.is(5,6)||(t=this.ui(!0))&&(this.focus=t,this.emit(ni)),this.emit("selectionChanged"))},n.J=function(t){1<t.detail&&(this.oi(),F(t))},n.oi=function(){var t,i,n=this.ci(this.anchor);n?this.set(n.start,n.end):(i=this.fi(!1))&&(t=i.node,n=wt(),(i=pt()).selectNode(t),n.removeAllRanges(),n.addRange(i),n=this.ui(),i=this.ui(!0),n&&i&&this.set(n,i))},n.Nt=function(t,i,n){if(4!==n&&10!==n&&(1!==i&&3!==i&&8!==i||(this.anchor=this.ui()||this.anchor,this.focus=this.ui(!0)||this.focus),2!==n&&8===i&&this.ai())){var s=this.lines,h=this.lines.length,s=s[h-1].text.length;if(0!==dt(this.anchor,[0,0])||0!==dt(this.focus,[h-1,s]))return void this.selectAll()}this.emit(si,this,i,n),5===i&&this.emit(ni)},n.b=function(){var t=this.Input,i=window.pageYOffset+this.elements.scroller.scrollTop;this.isMultiline()&&!t.disabled&&i!==this.v&&(this.Input.disabled=!0,this.v=i)},n.set=function(t,i){this.vi(t,i)||this.update(t,i)},n.get=function(t){void 0===t&&(t=!0);var i=this.anchor,n=this.focus,s=this.isBackward();return{start:s&&t?n:i,end:s&&t?i:n}},n.update=function(t,i,n){this.anchor=t,this.focus=i||t,n||this.state.update(this.isCollapsed())},n.selectLine=function(t,i,n){void 0===t&&(t=this.focus[0]),void 0===i&&(i=!0);var s,h=this.lines,r=h[t];r&&(s=[t,0],t=t<h.length-1?[t+1,0]:[t,r.text.length],r=n?t:s,t=n?s:t,i?this.set(r,t):this.update(r,t,!0))},n.reselect=function(){this.set(this.anchor,this.focus)},n.selectAll=function(){var t=this.lines,i=t.length-1;this.set([0,0],[i,t[i].text.length])},n.hold=function(){this.state.hold()},n.release=function(){this.state.release()},n.toString=function(){var t=this.get();return this.Code.sliceRange(t.start,t.end)},n.getRect=function(t){t=this.fi(t);if(t){for(var i=t.node,n=t.offset;l(i);)if(n=0,d(i=i.firstChild))return j(i);if(i){t=pt();return t.setStart(i,n),t.collapse(!0),j(t)}}return null},n.getLocation=function(){var t=this.focus;return function(t){for(var i=0;i<(arguments.length<=1?0:arguments.length-1);i++)t=t.replace("%s",String(i+1<1||arguments.length<=i+1?void 0:arguments[i+1]));return t}(this.i18n.location,t[0]+1,t[1]+1)},n.is=function(){var t;return(t=this.state).is.apply(t,arguments)},n.collapse=function(t){this.set(t?this.focus:this.anchor)},n.isBackward=function(){return 0<dt(this.anchor,this.focus)},n.isCollapsed=function(){return 0===dt(this.anchor,this.focus)},n.isMultiline=function(){return this.anchor[0]!==this.focus[0]},n.isInside=function(t,i){return this.Range.selection.isInside(t,i)},n.destroy=function(){this.state.destroy(),i.prototype.destroy.call(this)},n.vi=function(t,i){var n=this.Chunk,s=t[0]===(i=void 0===i?t:i)[0],h=n.getLine(t[0])||n.addPreservedLine(!1,t[0]),s=s?h:n.getLine(i[0])||n.addPreservedLine(!0,i[0]),n=0===dt(t,i),h=yt(h,t[1]),t=n?h:yt(s,i[1]);return h&&t&&(s=h.node,i=t.node,h.node=d(s)?s.parentNode:s,t.node=d(i)?i.parentNode:i,this.hold(),s=t,(i=h)&&s&&((t=wt()).setBaseAndExtent?t.setBaseAndExtent(i.node,i.offset,s.node,s.offset):((h=0<t.rangeCount?t.getRangeAt(0):document.createRange()).setStart(i.node,i.offset),h.setEnd(s.node,s.offset),t.removeAllRanges(),t.addRange(h))),this.release(),this.state.refresh(n)),!0},n.ui=function(t){var i=this.li(t),n=this.fi(t);if(i&&n){var s=this.Chunk,h=pt();h.setStart(i,0),h.setEnd(n.node,n.offset);t=s.getRow(i);if(t<0&&(n=s.getBoundary(!1),s=s.getBoundary(!0),n.line===i?t=n.row:s.line===i&&(t=s.row)),-1<t)return[t,h.toString().length]}return null},n.li=function(t){t=this.fi(t);if(t){t=t.node,t=a(t)?t.parentNode:t;if(l(t))return C(t,"."+Rt)}return null},n.ci=function(t){var i=t[0],n=t[1],t=this.lines[i];if(t)for(var s=t.text.split(/[^\w]/),h=0,r=0;r<s.length;r++){var o=0<r?h+1:0,e=o+s[r].length;if(o<=n&&n<e)return{start:[i,o],end:[i,e]};h=e}return null},n.fi=function(t){var i=this.elements.editable,n=wt(),s=t?"focus":"anchor",t=n[s+"Node"],s=n[s+"Offset"];return t===i&&(t=i.children[s],s=0),t?{node:t,offset:s}:null},n.ai=function(){var t=this.elements.lines,i=this.li(!1),n=this.li(!0),t=y(t.children).filter(function(t){return!R(t,qt)});return i===t[0]&&n===t[t.length-1]&&dt(this.anchor,this.focus)&&0===this.anchor[1]&&this.focus[1]===n.textContent.length},n.ei=function(){var t,i,n,s,h,r,o=this,e=this.Input,u=this.elements.editable,c=wt();!V()&&this.isMultiline()&&g()===u&&c.setBaseAndExtent?(t=this.elements.editable,i=c.anchorOffset,n=c.focusOffset,s=c.anchorNode,h=c.focusNode,x(t,{"aria-hidden":!0}),this.hold(),c.removeAllRanges(),window.InstallTrigger?(r=s.cloneNode(!0),u=h.cloneNode(!0),s.parentNode.replaceChild(r,s),h.parentNode.replaceChild(u,h),s=r,h=u):Ni(t,!1),setTimeout(function(){c.setBaseAndExtent(s,i,h,n),tt(function(){o.Editor.focus(),e.disabled=!1,Ni(t,!0),x(t,{"aria-hidden":null}),o.release()})},5)):e.disabled=!1},n.si=function(){return this.Editor&&this.Editor.isFocused()},t}(t),Gi=function(){function t(t){this.j=Date.now(),this.t=t,this.di=this.t.Components.Measure,this.pi=this.di.measureWidth(" "),this.Xt()}return t.prototype.Xt=function(){this.di.measureWidth(" ",!1)!==this.pi?this.t.event.emit(ai):Date.now()-this.j<5e3&&requestAnimationFrame(this.Xt.bind(this))},t}(),mi=function(i){function t(t){var n=i.call(this,t)||this;return n.wi={},n.yi(),n.on("view:open",function(t,i){n.emit("initStyle",n.add.bind(_assertThisInitialized(n))),i('<style id="'+n.options.id+'-style">'+n.st()+"</style>")}),n}_inheritsLoose(t,i);var n=t.prototype;return n.yi=function(){var n=this,s=this.options,t=this.options,i=t.lineHeight,t=t.tabSize;["width","height","minWidth","minHeight","maxWidth","maxHeight"].forEach(function(t){var i=s[t];i&&n.add("root",t,G(i))}),t&&(this.add("root","-moz-tab-size",t),this.add("root","tabSize",t));t=i?i+"em":void 0;this.add("."+Tt,