UNPKG

@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 91.1 kB
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 c(t,i){return-1<t.indexOf(i)}function o(t){return null!==t&&"object"==typeof t}function e(t){return Array.isArray(t)}function u(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),!e(t)||i&&!e(t[0])?[t]:t}var _=Array.prototype;function m(t,i,n){return _.slice.call(t,i,n)}function g(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=_.splice).call.apply(s,[t,i,n].concat(r))}function w(){return document.activeElement}function y(i,t,n){i&&p(t).forEach(function(t){t&&i.classList[n?"add":"remove"](t)})}function b(t,i){y(t,i,!0)}function k(t,i){p(i).forEach(t.appendChild.bind(t))}function L(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 x(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){o(n)&&L(n,function(t,i){v(n[i])||(s[i]=n[i])})}),s}function C(n,t){if(n){if(f(t))return n.getAttribute(t);o(t)&&L(t,function(t,i){null===t?n.removeAttribute(i):n.setAttribute(i,String(t))})}}function A(t,n){p(t).forEach(function(t){var i;!t||(i=t.parentNode||n&&n.parentNode)&&i.insertBefore(t,n)})}function E(t,i){if(u(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)||e(i)?b:C)(t,i),n&&k(n,t),t}function M(t,i){return T("div",t,i)}function R(t){u(t.setActive)?t.setActive():t.focus({preventScroll:!0})}function D(t,i){return t&&t.classList.contains(i)}function z(t){return t.clientHeight}function S(t,i){if(t){if(v(i))return t.innerHTML;t.innerHTML!==i&&(t.innerHTML=i)}}function H(t){return t&&t.defaultPrevented}var O=new WeakMap;function j(i,n,s,h){n.split(" ").forEach(function(t){i.addEventListener(t,s),h&&((t=O.get(h)||[]).push({elm:i,events:n,callback:s}),O.set(h,t))})}function F(i,t,n){u(n)?t.split(" ").forEach(function(t){i.removeEventListener(t,n)}):(t=O.get(n))&&(t.forEach(function(t){F(t.elm,t.events,t.callback)}),O.delete(n))}function P(i,t){p(t).forEach(function(t){i.insertBefore(t,i.firstChild)})}function N(t,i){t&&(t.cancelable&&t.preventDefault(),i&&t.stopPropagation())}function B(t,i){return t.querySelector(i)}function W(t,i){return t.querySelectorAll(i)}function I(t){return t.getBoundingClientRect()}function U(t){p(t).forEach(function(t){t&&t.parentNode&&t.parentNode.removeChild(t)})}function G(t,i){y(t,i,!1)}function X(n,t){if(f(t))return getComputedStyle(n)[t];L(t,function(t,i){v(t)||(n.style[i]=String(t))})}function $(t,i,n){return"<"+(n||"div")+" "+(t=x(i=void 0===i?{}:i,{class:p(t).filter(Boolean).join(" ")}),s="",L(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 J(t){return f(t)?t:t+"px"}function K(){return document.documentMode}function Y(){return/android/i.test(navigator.userAgent)||(t=navigator.userAgent,/iPad|iPhone|iPod/.test(t)||-1<t.indexOf("Mac")&&1<navigator.maxTouchPoints);var t}var Z="ryuseicode";function V(t,i){if(void 0===i&&(i=""),!t)throw new Error("["+Z+"] "+i)}function Q(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 tt(t,i){return Q(t,i,!1,!0)}function it(t){setTimeout(t)}function nt(t,i){return Q(t,0,i,!1,!0)}var st=[].concat(["ArrowDown","ArrowRight"],["ArrowUp","ArrowLeft"]),i={Up:"ArrowUp",Down:"ArrowDown",Right:"ArrowRight",Left:"ArrowLeft",Del:"Delete",Esc:"Escape",Spacebar:" "};function ht(t){return i[t]||t}function rt(i,t){var n=ht(i.key).toUpperCase();return t&&p(t,!0).some(function(t){return n===t[0].toUpperCase()&&!t[1]==!i.ctrlKey&&!t[2]==!i.shiftKey&&!t[3]==!i.altKey})}function ot(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 et=Math.max,ut=Math.min;function ct(t,i,n){var s=ut(i,n),n=et(i,n);return ut(et(s,t),n)}var ft=Math.min,at=Math.max,vt=Math.floor,lt=Math.ceil,dt=Math.abs,pt=Math.round;function _t(t,i){return t[0]-i[0]||t[1]-i[1]}function mt(){return document.createRange()}function gt(){return window.getSelection()}function wt(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=wt(h,i);if(h)return h}i-=r}return null}function yt(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 bt(t,i){return t.slice(-i.length)===i}function kt(t){return t.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function Lt(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}function xt(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 Ct(t,i){if(String.prototype.repeat)return t.repeat(i);for(var n="";0<i;)i%2&&(n+=t),i=vt(i/2),t+=t;return n}function At(t,i){return t.slice(0,i.length)===i}var Et={};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,L(this.Editor.Components,function(t,i){n[i]=t})},i.destroy=function(){F(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){j(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=x({},t,i.icons)},i.addI18n=function(t){var i=this.options;i.i18n=x({},t,i.i18n)},i.addKeyBindings=function(t){var i=this.options;i.keymap=x({},t,i.keymap)},i.getOptions=function(t,i){t=this.options[t];return v(t)||!0===t?i||{}:o(t)?x({},i,t):void V(!1)},_createClass(t,[{key:"lines",get:function(){return this.Code.Lines}},{key:"i18n",get:function(){return this.options.i18n}}]),t}(),Tt=Z,Mt=Z+"__view",Rt=Z+"__body",Dt=Z+"__scroller",zt=Z+"__container",St=Z+"__editor",Ht=Z+"__scrollbar",Ot=Z+"__lines",jt=Z+"__line",Ft=Z+"__caret",Pt=Z+"__markers",Nt=Z+"__marker",Bt=Z+"__context-menu",Wt=Bt+"__group",It=Bt+"__list",Ut=Bt+"__button",Gt=Z+"__button",Xt="is-active",$t="is-rendered",qt="is-anchor",Jt="is-focus",Kt="is-preserved",Yt="is-focused",n="is-dragging",Zt="is-empty",Vt="mounted",Qt="focus",ti="blur",ii="readOnly",ni="keydown",si="newline",hi="change",ri="changed",oi="compositionStart",ei="focusLineChanged",ui="keymap",ci="chunkMoved",fi="chunkSupplied",ai="selecting",vi="selected",li="scrolled",di="scrollerScroll",pi="windowScroll",_i="resize",mi="scrollWidthChanged",gi="scrollHeightChanged",wi="synced",yi="contextMenuClicked",bi="reset",ki="initStyle",Li="fontLoaded",xi=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}),Ci=function(){function t(t,i,n){var s=this;this.t=t,this.caret=M([Ft,Ft+"--"+i],n),this.i=tt(this.i.bind(this),30),t.event.on(_i,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:J(i.top),left:J(i.left+-1),animation:"none"}),this.i(),this.n=t},i.show=function(){b(this.caret,Xt)},i.hide=function(){G(this.caret,Xt)},i.i=function(){X(this.caret,{animation:""})},t}(),Ai="primary",Ei=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()||Y()||(this.register(Ai),this.r=this.get(Ai),this.o())},n.h=function(){this.e=M({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=nt(this.u.bind(this),!0),this.on(ii,function(t,i){i?s.hide():h.isFocused()&&(n.u(),s.show())}),this.on(vi,this.c,this),this.on(ai,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;V(!i[t]);var n=new Ci(this.Editor,t,this.e);return i[t]=n},n.get=function(t){return this.s[t=void 0===t?Ai:t]},_createClass(t,[{key:"rect",get:function(){return this.Selection.getRect(!0)}}]),t}(t),Ti=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._=this.m(),this.g=tt(this.g.bind(this),60),this.w(),this.y(),this.o()},i.o=function(){var t=this,i=nt(this.b.bind(this));this.bind(this.l,"scroll",function(){i(!0),t.emit(di)}),this.bind(window,"scroll",function(){i(!1),t.emit(pi)}),this.bind(window,"scroll",nt(function(){t._=t.m(),t.k=null})),this.on(_i,function(){t.k=null,t.L()}),this.on(gi,function(){t.w(),t.k=null}),this.on(vi,this.c,this,0),this.on(ai,function(){t.x(!0),t.C&&t.A(!0)})},i.c=function(t,i){i.is(1,3)&&(this.x(!0),this.x(!1),this.T&&this.A(!1),this.C&&this.A(!0))},i.b=function(t){var i,n=window.pageYOffset+this.l.scrollTop;this._&&((i=this.v)<n?this.M():n<i&&this.R(),this.emit("scroll",!0),this.g(t)),this.v=n},i.g=function(t){this.emit(li,t)},i.x=function(t){var i,n=t?Jt:qt,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.D(t),b(r,n),x(h,{line:r,row:s}),this.z(t,!0))},i.D=function(t){var i=this.getBoundary(t),n=i.line;n&&(D(n,Kt)&&!D(n,t?qt:Jt)?U(n):G(n,t?Jt:qt),i.line=null,i.row=null)},i.A=function(t){var i=this.getBoundary(t);V(i.line),this.emit(t?ei:"anchorLineChanged",i.line,i.row),t?this.C=!1:this.T=!1},i.z=function(t,i){t?this.C=i:this.T=i},i.w=function(){var t=this.Measure,i=t.lineHeight,n=t.scrollerRect,t=ft(n.height,window.innerHeight),n=lt(t/i),t=n+2*this.margin;n!==this.visibleLines&&(0<(t=t-(i=this.elms.length))&&(this.S(this.start+i,t,"beforeend"),this.emit(fi,this,t)),this.visibleLines=n)},i.y=function(){var t=this.elms,i=this.length;t.length>i&&U(t.slice(i-t.length))},i.S=function(t,i,n){for(var s="",h=0;h<i;h++){var r=this.lines[t+h];s+=$(jt)+(r?r.html:"")+"</div>"}return n&&this.p.insertAdjacentHTML(n,s),s},i.M=function(){var t,i,n=this.H();n>=this.length?this.O():0<n&&(i=this.Measure.lineHeight,this.offsetY+=i*n,this.start<0&&(this.offsetY=at(this.offsetY+this.start*i,0)),t=this.elms,i=this.S(this.start+t.length,n),t[t.length-1].insertAdjacentHTML("afterend",i),U(this.j(0,n)),this.start+=n,this.F(),this.P(),this.emit(ci,this))},i.R=function(){var t,i,n,s=this.N();s>=this.length?this.O():0<s&&(t=this.Measure.lineHeight,U(this.j(-s)),i=this.elms,n=this.S(this.start-s,s),i[0].insertAdjacentHTML("beforebegin",n),this.start-=s,this.offsetY=at(this.offsetY-t*s,0),this.F(),this.P(),this.emit(ci,this))},i.H=function(){if(this.end<this.lines.length){var t=this.Measure.lineHeight,i=this.margin,n=I(this.p).top,s=this.border[0];if(n+t*i<s)return vt((s-n)/t)}return 0},i.N=function(){if(0<this.start){var t=this.Measure,i=t.lineHeight,n=t.padding.bottom,s=this.margin,h=I(this.p),r=h.top,o=h.bottom,t=this.border,h=t[0],t=t[1];if(h<r)return s+vt((r-h)/i);if(t<o-i*s-n)return vt((o-n-t)/i)}return 0},i.j=function(t,i){return this.elms.slice(t,i).reduce(function(t,i){var n=D(i,qt),s=D(i,Jt);return n||s?(b(i,Kt),C(i,{"aria-hidden":!0})):t.push(i),t},[])},i.F=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&&D(h,Kt),a=c&&D(r,Kt);(f||a)&&(t=u?o[0]-this.start:-1,i=c?e[0]-this.start:-1,o=ft(t,i),c=at(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&&(G(h,Kt),C(h,{"aria-hidden":null}),U(e[t])),a&&t!=i&&(G(r,Kt),C(r,{"aria-hidden":null}),U(e[i])),A(u,n||s),A(o,s),s=s.nextElementSibling,c.length&&c[0]!==s&&A(c,s))},i.P=function(t){void 0===t&&(t=this.offsetY),this.p.style.top=t+"px"},i.O=function(){this.B(this.Measure.closest(this.l.scrollTop))},i.L=function(){var t,i;this.Measure.getTop(this.start)!==this.offsetY&&(t=this.a.row,i=this.includes(t),this.O(),i&&this.View.jump(t))},i.m=function(){var t=I(this.l),i=t.top,n=t.bottom,t=window.innerHeight;return ot(i,0,t)||ot(n,0,t)||i<0&&t<n},i.B=function(t){var i=this.Measure,n=this.length,s=i.padding.top,h=i.lineHeight,h=lt(s/h);this.start=ct(t-h,0,at(this.lines.length-n+this.margin,0)),this.offsetY=i.getTop(this.start);i=this.j(0);i[0].insertAdjacentHTML("afterend",this.S(this.start,n)),U(i),this.P(),this.F(),this.emit(ci,this)},i.getBoundary=function(t){return t?this.a:this.f},i.addPreservedLine=function(t,i){var n=this.p,s=M({class:jt+" "+(t?Jt:qt)+" "+Kt,"aria-hidden":!0});return this.D(t),S(s,this.lines[i].html),(i<this.start?P:k)(n,s),x(this.getBoundary(t),{line:s,row:i}),this.z(t,!0),s},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];S(t[n],s?s.html:"")}},i.syncDiff=function(t,i){var n;dt(i)<10&&(n=t-this.start,t=this.elms,0<i?t[n]&&A(t.slice(-i),t[n].nextElementSibling):i<0&&k(this.p,t.slice(1+n,1+n-i)))},i.refresh=function(){this.M(),this.R()},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 ot(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 m(W(this.p,"."+jt+":not(."+Kt+")"))}},{key:"border",get:function(){var t,i;return this.k||(i=I(this.l),t=at(i.top,0),i=ft(i.bottom,window.innerHeight),this.k=[t,i]),this.k}}]),t}(t),Mi="\n",Ri=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];_.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];g.apply(void 0,[this,t,i].concat(s))},i.clear=function(){g(this,0,this.length)},t}();function Di(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 zi="comment",Si="bracket",Hi=function(){function t(t){this.W=0,this.depth=0,this.tokens=[],this.indentDepth=0,this.I=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=yt(this.getIndent(),this.I.indent),this.U=void 0,this.G=void 0},i.set=function(t,i){(!i||i>this.W)&&(this.tokens=t,this.W=i||Date.now(),this.init())},i.getIndent=function(){var t=this.first;if(t){if("space"===t[0])return t[1];if(t[0]===zi){t=this.text.match(new RegExp("^"+this.I.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&&c(["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]===Mi){t+="<br>";break}t+=n[2].html}this.U=t||"<br>"}return this.U}},{key:"text",get:function(){return v(this.G)&&(this.G=this.tokens.reduce(function(t,i){return i[1]!==Mi&&(t+=i[1]),t},"")),this.G}},{key:"first",get:function(){return this.tokens[0]}}]),t}(),Oi=function(h){function t(t,i,n){var s=h.call(this)||this;return s.X={},s.$=i,s.q=t,s.I=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 Hi(this.I))},i.delete=function(t,i){this.splice(t,i)},i.sync=function(t,i,n,s,h){(s=void 0===s?"":s)&&(i=s+Mi+i,n&&n++);var r,o=this.$.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.J(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.X;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?at(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(Di(c[f],i)){if(!s)return{row:u,info:this[u].getInfo(f)};s++}n&&Di(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?ft(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(Di(c[f],i)){if(!s)return{row:u,info:this[u].getInfo(f)};s++}n&&Di(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.K(i):n<0&&this.delete(t,-n),n},i.destroy=function(){L(this.X,clearTimeout)},i.K=function(t){var i=this.length;if(t<i)this.splice(t,i-t);else if(i<t)for(;t-- >i;)this.push(new Hi(this.I))},i.J=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}(Ri),ji=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 Oi(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?xt(i,Mi,t+1)+1:i.length)},n.after=function(t){var i=this.text;return t<=0?i:i.slice(t<this.size?xt(i,Mi,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?xt(n,Mi,i+1)+1:this.text.length;return n.slice(xt(n,Mi,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){V(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;V(i<n);var o=i===n-1,n=this.sliceLines(t,i).split(Mi,i-t+1);this.replaceLines(t,i,n.reduce(function(t,i,n,s){var h=o&&n===s.length-1?"":Mi;return t+r(i,n,s)+h},""))},n.search=function(t,i,n,s){var t=f(t)?kt(t):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 V(i<this.size),xt(this.text,Mi,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||yt(this.text,Mi)+1,this.sizeCache}}]),t}(t),Fi="0 0 24 24";function Pi(t,i){t=document.createElementNS("http://www.w3.org/2000/svg",t);return C(t,i),t}var Ni=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(){V(!1)},n.listen=function(){this.bind(window,"keydown",this.escape,this)},n.escape=function(t){this.isActive()&&"Escape"===ht(t.key)&&(this.hide(),N(t))},n.append=function(t){k(this.wrapper,this.groups[t].elm)},n.autoFocus=function(t){t=this.groups[t].elm,t=B(t,"[tabindex]")||B(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 C(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=[Gt].concat(o?Gt+"--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=Pi("svg",{viewBox:Fi,class:"ryuseicode__icon"}),i=Pi("path",{d:i,fill:"currentColor"}),n&&C(i,{"stroke-width":n,"stroke-linecap":o,stroke:"currentColor"}),C(h,{viewBox:Fi}),h.appendChild(i),h)):S(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()&&U(this.groups[this.group].elm),b(this.wrapper,Xt),this.append(t),this.group=t},n.hide=function(){this.isActive()&&(G(this.wrapper,Xt),U(this.groups[this.group].elm))},n.isActive=function(t){return D(this.wrapper,Xt)&&(!t||this.group===t)},n.isFocused=function(){return this.wrapper.contains(w())},t}(t),Bi="main",Wi=[{id:"copy",shortcut:["C",!0]},{id:"cut",shortcut:["X",!0],disableOnReadOnly:!0},{id:"paste",shortcut:["V",!0],disableOnReadOnly:!0}],Ii=[{id:"selectAll",shortcut:["A",!0]}],Ui=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.V,this),this.bind(document,"contextmenu",this.Q,this),this.bind(window,"keydown",this.tt,this),this.on([ti,di,pi],this.hide,this),this.bind(i.root,"focusin",function(){t.it(w())||t.wrapper.contains(w())||t.hide()})},i.create=function(){this.wrapper=M({class:Bt,role:"menu"},this.elements.overlay)},i.V=function(t){2===t.button?(this.show(Bi),this.nt(t.clientX,t.clientY)):this.hide()},i.Q=function(t){var i,n=this;if(this.isActive())return N(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(Bi),n.nt(t.left,t.bottom)})),N(t,!0))},i.tt=function(t){var i,n;this.isActive()&&(n="ArrowUp"===(i=ht(t.key)),"ArrowDown"!==i&&!n||(this.a(n),N(t)))},i.a=function(t){var i=W(this.wrapper,"."+Ut),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=I(this.elements.root);t+s>h.clientWidth-5&&(t-=s),X(n,{top:J((i=ft(i,z(h)-z(n)-5))-r.top),left:J(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,""),L(i,function(s,t){var i=T("ul",[It,It+"--"+t],n);s=s.map(function(t){return t.parent=T("li","ryuseicode__context-menu__item",i),t});t=r.createButtons(s,null,r,Ut);L(t,function(n,t){var i=r.ht(s,t);V(i),C(n,{role:"menuitem"}),r.bind(n,"click",function(){r.emit(yi,r,h,t,n),r.hide()}),i.disableOnReadOnly&&(n.disabled=r.Editor.readOnly,r.on(ii,function(t,i){n.disabled=i})),r.bind(n,"mouseover",function(){n.focus()})}),r.buttons=x({},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:M([Wt,Wt+"--"+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}(Ni),Gi=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,R(i),i.setSelectionRange(0,t.length),i},i.rt=function(){var t=this.h("");document.execCommand("paste");var i=t.value;return U(t),i},i.ot=function(t,i){t=this.h(t);try{document.execCommand("copy")}catch(t){i&&i()}U(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}(),Xi=function(i){function t(){var t=i.apply(this,arguments)||this;return t.et=new Gi,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(ni,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){N(t,!0)}),this.on(yi,this.ft,this),K()&&this.bind(t,"compositionstart",function(t){i.at&&N(t,!0)})},n.tt=function(t,i){function n(t){return c(p(t),h)}var s=this.Selection,h=ht(i.key);if(this.at=!1,this.Keymap.matches(i,"selectAll"))return s.selectAll(),N(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(),N(i)))},n.ft=function(t,i,n,s){n===Bi&&(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),N(t)},n.ut=function(){var t=this.ContextMenu;t.register(Bi,"edit",Wi),t.register(Bi,"selection",Ii)},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=yt(t,Mi)+1,u=[e=(o=h[0])+u-1,t.slice(t.lastIndexOf(Mi)+1).length+(1<u?0:h[1])],this.emit(hi,i),s.replaceRange(h,r,t),this.Sync.sync(o,e,e),n.set(u),this.emit(ri,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(hi),this.Code.replaceLines(i,i,""),this.Sync.sync(i,i),t.set(n),this.emit(ri))},t}(t),$i="composition",qi=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._t,this),this.bind(t,"compositionend",this.mt,this),this.on(Vt,function(){s.line=s.Chunk.elms[0],s.row=0}),this.on(ei,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 gt().removeAllRanges(),i.blur(),void it(function(){i.focus(),n.set(s.start,s.end)})}this.composing=!0,this.set($i),this.emit(oi,t),this.emit(hi,$i)},n._t=function(t){var i=this;it(function(){i.Selection.update(i.gt()),i.emit("compositionUpdate",t)})},n.mt=function(t){this.composing=!1,this.apply(),this.emit("compositionEnd",t)},n.tt=function(t){var i=ht(t.key),n=t.altKey,s=t.shiftKey;if(this.disabled&&!st.includes(i))return N(t,!0);this.emit(ni,t),H(t)||(this.info=this.lines.getInfoAt(this.gt()),this.set("input",{key:i}),"Enter"!==i?this.Selection.isCollapsed()&&("Delete"!==i||s||n?"Backspace"!==i||n||this.wt(t):this.yt(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+Mi+this.after,position:[this.row+1,0]}),this.emit(si,this),this.apply(),N(t))},n.yt=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}),N(t))},n.wt=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]})),N(t))},n.kt=function(t,i){return t+((i=void 0===i?this.row:i)<this.lines.length-1?Mi:"")},n.Lt=function(t,i){var n=this.xt;return n&&(n.insertion?t=this.before+n.insertion+this.after:v(n.value)||(t=n.value)),this.kt(t,i)},n.Ct=function(t){var i=this.xt;if(i){if(i.position)return i.position;t[1]+=i.offset||0}return t},n.gt=function(){return[this.row,this.col]},n.set=function(t,i){void 0===i&&(i={});var n=this.xt;n&&n.type===t?this.xt=x(n,i):this.xt=x({type:t},i)},n.get=function(){return this.xt},n.apply=function(t){var i,n,s,h;this.xt=t||this.xt,this.xt&&this.line&&(i=this.Selection,s=this.row,n=(h=this.xt).type,t=void 0===(t=h.startRow)?s:t,s=void 0===(h=h.endRow)?s:h,h=this.gt(),n!==$i&&this.emit(hi,n),this.Code.replaceLines(t,s,this.Lt(this.value,s)),this.Sync.sync(t,s,s),i.set(this.Ct(h)),this.emit(ri,n),this.xt=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=gt();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.At},set:function(t){this.At=t}}]),t}(t),Ji=function(i){function t(){var t=i.apply(this,arguments)||this;return t.Et=[],t}_inheritsLoose(t,i);var n=t.prototype;return n.mount=function(t){var n=this;i.prototype.mount.call(this,t),this.Tt=x({},s,this.options.keymap),L(this.Tt,function(t){var i;t&&(i=n.Et).push.apply(i,p(t,!0).map(function(t){return t[0].toUpperCase()}))}),this.on(ni,this.tt,this,0)},n.tt=function(t,i){var n;this.Editor.readOnly||!c(this.Et,ht(i.key).toUpperCase())||(n=this.Mt(i))&&this.emit(ui+":"+n,i,n)},n.Mt=function(n){var s=this,h="";return L(this.Tt,function(t,i){if(s.matches(n,i))return h=i,!1}),h},n.matches=function(t,i){i=this.Tt[i];return i&&rt(t,i)},n.getShortcut=function(t){t=f(t)?this.Tt[t]:t;if(t){t=e(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),Ki=function(){function t(t){this.Rt={},this.Dt=T("canvas").getContext("2d"),this.Dt.font=t}var i=t.prototype;return i.zt=function(t,i){var n=this.Rt,s=this.Dt;return(i=void 0===i?!0:i)&&n[t]||(n[t]=K()?s.measureText(Ct(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.zt(t.charAt(s),i);return n},i.clear=function(){this.Rt={}},t}(),Yi=function(i){function t(t){t=i.call(this,t)||this;return t.St={},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.Ot(),this.jt(),this.o()},n.o=function(){var t=this;this.on(_i,function(){t.Ft=0,t.jt(),t.Ot(),t.Pt()},null,1),this.on(Li,function(){t.Nt.clear()},null,1),this.on([gi,li,pi],this.Pt,this,1)},n.jt=function(){var t=this.elements.editor,i=M(jt,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},U(i)},n.Ot=function(){var t=this.Bt();this.Wt!==t&&(this.Nt=new Ki(t),this.Wt=t)},n.Bt=function(){var t=this.elements.lines;return X(t,"fontSize")+" "+X(t,"fontFamily")},n.Pt=function(){this.St={}},n.getTop=function(t){return ct(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 ct(pt((t-this.padding.top)/this.lineHeight),0,this.lines.length-1)},n.measureWidth=function(t,i){return this.Nt.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.St.editor=this.St.editor||I(this.elements.editor)}},{key:"scrollerRect",get:function(){return this.St.scroller=this.St.scroller||I(this.elements.scroller)}},{key:"containerRect",get:function(){return this.St.container=this.St.container||I(this.elements.container)}},{key:"lineHeight",get:function(){return this.Ft=this.Ft||parseFloat(X(this.elements.editor,"lineHeight"))}}]),t}(t),Zi=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<_t(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=at(n.left,r.left),e="";return t?(e+=this.buildLine(n.top,o,"100%"),e+=this.buildLine(s.top,r.left,at(s.left-r.left,0)),0<i&&(e+=this.buildLine(n.top+h,r.left,"100%",i))):e+=this.buildLine(n.top,o,at(s.left-o,0)),this.cache=e},i.buildLine=function(t,i,n,s){n="top: "+J(t)+"; left: "+J(i)+"; width: "+J(n)+";";return s&&(n+=" height: "+J(s)+";"),'<div class="'+Nt+'" style="'+n+'"></div>'},t}(),Vi=function(s){function t(t,i,n){t=s.call(this,t,i)||this;return t.e=M([Pt].concat(n),i.background),t}_inheritsLoose(t,s);var i=t.prototype;return i.draw=function(t,i){S(this.e,this.html(t,i,!1))},i.clear=function(){S(this.e,"")},i.isInside=function(t,i){for(var n=this.e.children,s=0;s<n.length;s++){var h=I(n[s]);if(h.width&&ot(t,h.left,h.right)&&ot(i,h.top,h.bottom))return!0}return!1},i.destroy=function(){U(this.e)},t}(Zi),Qi=Pt+"--selection",tn=function(n){function t(t,i){i=n.call(this,t,i,Qi)||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(vi,this.It.bind(this),this,0),i.on(ai,nt(this.Ut.bind(this))),i.on(_i,function(){t.clear(),t.Ut()})},i.It=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}(Vi),nn=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 tn(this.Editor,t);t=this.Gt.bind(this,!1);this.on(ci,Q(t,200)),this.on(li,t),this.on([Li,_i],this.Gt.bind(this,!0))},n.Gt=function(n){var s=this;this.Editor&&L(this.ranges,function(t,i){s.groups[i]&&s.Xt(i,n)})},n.Xt=function(t,n){var s=this,i=this.ranges[t],h="";i.forEach(function(t){var i=t.range;s.m(i)&&(h+=t.marker.html(i.start,i.end,!n))}),this.groups[t].innerHTML=h},n.m=function(t){var i=this.Chunk,n=t.start[0],t=t.end[0];return i.includes(n)||i.includes(t)||ot(i.start,n,t)},n.register=function(t,i,n,s){void 0===n&&(n=!0),void 0===s&&(s=Zi);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===_t(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]=M([Pt,Pt+"--"+t],this.elements.background)),this.Gt()},n.clear=function(t){var n=this;t?this.ranges[t]&&(q(this.groups[t],""),this.clearRanges(t)):L(this.ranges,function(t,i){n.clear(i)})},n.clearRanges=function(t){this.ranges[t]=[]},t}(t),sn=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.$t(t,!1,i)},n.inCategory=function(t,i){return this.$t(t,!0,i)},n.$t=function(t,n,s){var h=this,i=(t=p(t)).filter(function(t){return At(t,"!")}).map(function(t){return t.slice(1)});return(!i.length||!this.$t(i,n))&&(!(t=t.filter(function(t){return!At(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 hn(t,i){t.contentEditable=i?"true":"false"}var rn=[0,0],on=function(){function t(t){this.handlers={},this.qt=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.qt};h&&h.forEach(function(t){t.callback.apply(t,[r].concat(n))})},i.destroy=function(){this.handlers={}},t}(),en=function(n){function t(t){var i=n.call(this,0)||this;return i.Jt={},i.t=t,i.Kt=t.elements,i.Yt=t.Components.Selection,i.o(),i}_inheritsLoose(t,n);var i=t.prototype;return i.o=function(){var t=this.Kt.editable,i=this.t.event,n=this.Jt,s=this.tt.bind(this);j(document,"selectionchange",this.Zt.bind(this),n),j(window,"pointerup",this.Vt.bind(this),n),j(t,"pointerdown",this.Qt.bind(this),n),j(t,"keydown",s,n),j(t,"keyup",this.ti.bind(this),n),i.on(Qt,this.ii.bind(this)),i.on(ti,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(){w()===this.t.elements.editable&&(this.is(2,6)?this.set(3):this.is(3)?this.set(5):this.is(1,8)&&(gt().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.Vt=function(){this.device&&!this.is(0)&&(this.device=null,this.is(10)||(this.is(6)?this.set(8):(this.set(7),this.set(gt().isCollapsed?1:8))))},i.tt=function(t){c(st,ht(t.key))&&this.Qt(t)},i.ti=function(t){c(st,ht(t.key))&&this.Vt()},i.si=function(){return this.Kt.editor.contains(w())||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(),F(null,"",this.Jt)},t}(function(){function t(t){this.event=new on,this.xt=t}var i=t.prototype;return i.set=function(t){this.xt===t||this.hi||(this.ri=this.xt,this.xt=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 c(m(i),this.xt)},i.isPrev=function(){for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];return c(m(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}()),un=function(i){function t(){var t=i.apply(this,arguments)||this;return t.STATES=xi,t.anchor=rn,t.focus=rn,t}_inheritsLoose(t,i);var n=t.prototype;return n.mount=function(t){i.prototype.mount.call(this,t),this.state=new en(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.V,this),this.state.on("changed",this.It.bind(this)),this.on([di,pi],this.b,this),this.on(li,this.ei,this)},n.Zt=function(){var t;this.si()&&(!this.is(5,6)||(t=this.ui(!0))&&(this.focus=t,this.emit(ai)),this.emit("selectionChanged"))},n.V=function(t){1<t.detail&&(this.oi(),N(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=gt(),(i=mt()).selectNode(t),n.removeAllRanges(),n.addRange(i),n=this.ui(),i=this.ui(!0),n&&i&&this.set(n,i))},n.It=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!==_t(this.anchor,[0,0])||0!==_t(this.focus,[h-1,s]))return void this.selectAll()}this.emit(vi,this,i,n),5===i&&this.emit(ai)},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 I(i);if(i){t=mt();return t.setStart(i,n),t.collapse(!0),I(t)}}return null},n.getLocation=function(){var t=this.focus;return Lt(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<_t(this.anchor,this.focus)},n.isCollapsed=function(){return 0===_t(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===_t(t,i),h=wt(h,t[1]),t=n?h:wt(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=gt()).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=mt();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 E(t,"."+jt)}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=gt(),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=m(t.children).filter(function(t){return!D(t,Zt)});return i===t[0]&&n===t[t.length-1]&&_t(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=gt();!Y()&&this.isMultiline()&&w()===u&&c.setBaseAndExtent?(t=this.elements.editable,i=c.anchorOffset,n=c.focusOffset,s=c.anchorNode,h=c.focusNode,C(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):hn(t,!1),setTimeout(function(){c.setBaseAndExtent(s,i,h,n),it(function(){o.Editor.focus(),e.disabled=!1,hn(t,!0),C(t,{"aria-hidden":null}),o.release()})},5)):e.disabled=!1},n.si=function(){return this.Editor&&this.Editor.isFocused()},t}(t),cn=function(){function t(t){this.W=Date.now(),this.t=t,this.di=this.t.Components.Measure,this.pi=this.di.measureWidth(" "),this.Gt()}return t.prototype.Gt=function(){this.di.measureWidth(" ",!1)!==this.pi?this.t.event.emit(Li):Date.now()-this.W<5e3&&requestAnimationFrame(this.Gt.bind(this))},t}(),fn=function(i){function t(t){var n=i.call(this,t)||this;return n._i={},n.mi(),n.on("view:open",function(t,i){n.emit(ki,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.mi=function(){var n=this,s=this.options,t=this.options,i=t.lineHeight,t=t.tabSize;["width","height","minWidth","m