From a06ffc85c7cd50b331d109117643f658f865113b Mon Sep 17 00:00:00 2001 From: flarum-bot Date: Mon, 12 Nov 2018 11:40:21 +0000 Subject: [PATCH] Bundled output for commit 87909a8186bc59f092e54d25714de9567ed4242e [skip ci] --- extensions/markdown/js/dist/forum.js | 2 ++ extensions/markdown/js/dist/forum.js.map | 1 + 2 files changed, 3 insertions(+) create mode 100644 extensions/markdown/js/dist/forum.js create mode 100644 extensions/markdown/js/dist/forum.js.map diff --git a/extensions/markdown/js/dist/forum.js b/extensions/markdown/js/dist/forum.js new file mode 100644 index 000000000..6aeaf67fc --- /dev/null +++ b/extensions/markdown/js/dist/forum.js @@ -0,0 +1,2 @@ +module.exports=function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=4)}([function(t,e){t.exports=flarum.core.compat["helpers/icon"]},function(t,e){t.exports=flarum.core.compat.extend},function(t,e){t.exports=flarum.core.compat["components/TextEditor"]},function(t,e,n){var i,r,o;"undefined"!=typeof self&&self,r=[],void 0===(o="function"==typeof(i=function(){var t=/mac|iphone|ipad|ipod/i.test(navigator.platform)?"metaKey":"ctrlKey",e=/^["'`*_[({<>})\]]$/,n=/[*_]/,i=/^[ \t]*(?:(?:[-+*]|\d+\.)[ \t]+(?:\[[ x]][ \t]+)?|>[ \t]*)*(?::[ \t]*)?/,r=/(?:[-+*]|\d+\.)[ \t]+(?:\[[ x]][ \t]+)?$/,o=/[-+*\[\]x\d.]/g,l=/[^ \t]/g,s=/(\d+)\.(?=[ \t]+$)/,a=/(?:(?:^[ \t]+)?(?:[-+*]|\d+\.|[>:])(?:[ \t]+\[[ x]])?[ \t]*|^[ \t]+)$/,c=/^(?!$)/gm,u={"`":/^``$/m,"~":/^~~$/m},d={"[":"]","(":")","{":"}","<":">"},f={"]":"[",")":"(","}":"{",">":"<"};function h(t){this._useTab=!0,this._useInline=!0,this._indent=" ",this._reOutdent=/^[ ]{4}/gm,this._reKey=p(!0,!0),this._handleKey=this._handleKey.bind(this),this.setElement(t)}function p(t,e){return new RegExp("^(?:Enter"+(t?"|Tab":"")+"|[io"+(e?"\"'`*_([{<>}\\])":"")+"])$")}function m(t,e,n,i){if(t.value=e,t.selectionStart=n,t.selectionEnd=arguments.length>3?i:n,"InputEvent"in window)try{var r=new InputEvent("input");t.dispatchEvent(r)}catch(i){}}return h.prototype={constructor:h,getElement:function(){return this._elem},setElement:function(t){this._elem&&this._elem.removeEventListener("keydown",this._handleKey),this._elem=t,t.addEventListener("keydown",this._handleKey)},getValue:function(){return this._elem.value},setValue:function(t){this._elem.value=t},getIndent:function(){return this._indent},setIndent:function(t){this._indent="number"==typeof t?new Array(t+1).join(" "):(t+"").replace(/[^ \t]/g," "),this._reOutdent=new RegExp("^"+this._indent,"mg")},isTabUsed:function(){return this._useTab},useTab:function(){this._useTab=!0,this._reKey=p(!0,this._useInline)},ignoreTab:function(){this._useTab=!1,this._reKey=p(!1,this._useInline)},isInlineEnabled:function(){return this._useInline},enableInline:function(){this._useInline=!0,this._reKey=p(this._useTab,!0)},disableInline:function(){this._useInline=!1,this._reKey=p(this._useTab,!1)},destroy:function(){this._elem.removeEventListener("keydown",this._handleKey),this._elem=this._reKey=this._handleKey=this._indent=this._reOutdent=null},_handleKey:function(h){if(!h.defaultPrevented&&this._reKey.test(h.key)){var p=h.target.value.substring(0,h.target.selectionStart),v=h.target.value.substring(h.target.selectionStart,h.target.selectionEnd),g=h.target.value.substring(h.target.selectionEnd);if("Enter"!==h.key||h.ctrlKey||h.altKey||h.metaKey)if("Tab"===h.key&&!h.shiftKey||"i"===h.key&&h[t])!function(t,e,n,i,r){var o=e.length,l=e.lastIndexOf("\n")+1;l ",multiline:!0,surroundWithNewlines:!0}),t}return p(e,_),e}();window.customElements.get("md-quote")||(window.MarkdownQuoteButtonElement=E,window.customElements.define("md-quote",E));var x=function(t){function e(){f(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"`",suffix:"`",blockPrefix:"```",blockSuffix:"```"}),t}return p(e,_),e}();window.customElements.get("md-code")||(window.MarkdownCodeButtonElement=x,window.customElements.define("md-code",x));var k=function(t){function e(){f(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"[",suffix:"](url)",replaceNext:"url",scanFor:"https?://"}),t}return p(e,_),d(e,[{key:"connectedCallback",value:function(){u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"connectedCallback",this).call(this),this.setAttribute("hotkey","k")}}]),e}();window.customElements.get("md-link")||(window.MarkdownLinkButtonElement=k,window.customElements.define("md-link",k));var O=function(t){function e(){f(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"- ",multiline:!0,surroundWithNewlines:!0}),t}return p(e,_),e}();window.customElements.get("md-unordered-list")||(window.MarkdownUnorderedListButtonElement=O,window.customElements.define("md-unordered-list",O));var S=function(t){function e(){f(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"1. ",multiline:!0,orderedList:!0}),t}return p(e,_),e}();window.customElements.get("md-ordered-list")||(window.MarkdownOrderedListButtonElement=S,window.customElements.define("md-ordered-list",S));var j=function(t){function e(){f(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"- [ ] ",multiline:!0,surroundWithNewlines:!0}),t}return p(e,_),d(e,[{key:"connectedCallback",value:function(){u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"connectedCallback",this).call(this),this.setAttribute("hotkey","L")}}]),e}();window.customElements.get("md-task-list")||(window.MarkdownTaskListButtonElement=j,window.customElements.define("md-task-list",j));var P=function(t){function e(){f(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"@",prefixSpace:!0}),t}return p(e,_),e}();window.customElements.get("md-mention")||(window.MarkdownMentionButtonElement=P,window.customElements.define("md-mention",P));var T=function(t){function e(){f(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"#",prefixSpace:!0}),t}return p(e,_),e}();window.customElements.get("md-ref")||(window.MarkdownRefButtonElement=T,window.customElements.define("md-ref",T));var M=navigator.userAgent.match(/Macintosh/)?"Meta":"Control",I=function(t){function e(){return f(this,e),h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this))}return p(e,v),d(e,[{key:"connectedCallback",value:function(){var t=function(t,e){if(e.metaKey&&"Meta"===M||e.ctrlKey&&"Control"===M){var n=t.querySelector('[hotkey="'+e.key+'"]');n&&(n.click(),e.preventDefault())}}.bind(null,this);this.field&&(this.field.addEventListener("keydown",t),K.set(this,t))}},{key:"disconnectedCallback",value:function(){var t=K.get(this);t&&this.field&&(this.field.removeEventListener("keydown",t),K.delete(this))}},{key:"field",get:function(){var t=this.getAttribute("for");if(t){var e=document.getElementById(t);return e instanceof HTMLTextAreaElement?e:null}}}]),e}(),K=new WeakMap;function A(t){return t.trim().split("\n").length>1}function C(t,e){return Array(e+1).join(t)}window.customElements.get("markdown-toolbar")||(window.MarkdownToolbarElement=I,window.customElements.define("markdown-toolbar",I));var L=null;function B(t,e){var n=t.value.slice(t.selectionStart,t.selectionEnd),i=void 0;i=e.orderedList?function(t){var e=/^\d+\.\s+/,n=void 0,i=void 0,r=t.value.slice(t.selectionStart,t.selectionEnd),o=r.split("\n");if(o.every(function(t){return e.test(t)}))o=o.map(function(t){return t.replace(e,"")}),r=o.join("\n");else{o=function(){var t=void 0,e=void 0,n=void 0,i=[];for(n=t=0,e=o.length;t0?l+"\n":r,v=A(p)&&s.length>0?"\n"+s:o;if(c){var g=t.value[t.selectionStart-1];0===t.selectionStart||null==g||g.match(/\s/)||(m=" "+m)}p=function(t,e,n){if(t.selectionStart===t.selectionEnd)t.selectionStart=function(t,e){for(;t[e]&&null!=t[e-1]&&!t[e-1].match(/\s/);)e--;return e}(t.value,t.selectionStart),t.selectionEnd=function(t,e){for(;t[e]&&!t[e].match(/\s/);)e++;return e}(t.value,t.selectionEnd);else{var i=t.selectionStart-e.length,r=t.selectionEnd+n.length,o=t.value.slice(i,t.selectionStart)===e,l=t.value.slice(t.selectionEnd,r)===n;o&&l&&(t.selectionStart=i,t.selectionEnd=r)}return t.value.slice(t.selectionStart,t.selectionEnd)}(t,m,v);var _=t.selectionStart,y=t.selectionEnd,b=a.length>0&&v.indexOf(a)>-1&&p.length>0;if(d){var w=W(t);n=w.newlinesToAppend,i=w.newlinesToPrepend,m=n+r,v+=i}if(p.startsWith(m)&&p.endsWith(v)){var E=p.slice(m.length,p.length-v.length);if(f===h){var x=f-m.length;x=Math.max(x,_),x=Math.min(x,_+E.length),_=y=x}else y=_+E.length;return{text:E,selectionStart:_,selectionEnd:y}}if(b){if(u.length>0&&p.match(u)){v=v.replace(a,p);var k=m+v;return _=y=_+m.length,{text:k,selectionStart:_,selectionEnd:y}}var O=m+p+v;return _=_+m.length+p.length+v.indexOf(a),y=_+a.length,{text:O,selectionStart:_,selectionEnd:y}}var S=m+p+v;_=f+m.length,y=h+m.length;var j=p.match(/^\s*|\s*$/g);if(e.trimFirst&&j){var P=j[0]||"",T=j[1]||"";S=P+m+p.trim()+v+T,_+=P.length,y-=T.length}return{text:S,selectionStart:_,selectionEnd:y}}(t,e),function(t,e){var n=e.text,i=e.selectionStart,r=e.selectionEnd,o=t.selectionStart,l=t.value.slice(0,o),s=t.value.slice(t.selectionEnd);if(null===L||!0===L){t.contentEditable="true";try{L=document.execCommand("insertText",!1,n)}catch(t){L=!1}t.contentEditable="false"}if(L&&!t.value.slice(0,t.selectionStart).endsWith(n)&&(L=!1),!L){try{document.execCommand("ms-beginUndoUnit")}catch(t){}t.value=l+n+s;try{document.execCommand("ms-endUndoUnit")}catch(t){}t.dispatchEvent(new CustomEvent("input",{bubbles:!0,cancelable:!0}))}null!=i&&null!=r?t.setSelectionRange(i,r):t.setSelectionRange(o,t.selectionEnd)}(t,i)}function W(t){var e=t.value.slice(0,t.selectionStart),n=t.value.slice(t.selectionEnd),i=e.match(/\n*$/),r=n.match(/^\n*/),o=i?i[0].length:0,l=r?r[0].length:0,s=void 0,a=void 0;return e.match(/\S/)&&o<2&&(s=C("\n",2-o)),n.match(/\S/)&&l<2&&(a=C("\n",2-l)),null==s&&(s=""),null==a&&(a=""),{newlinesToAppend:s,newlinesToPrepend:a}}function N(t,e){var n=t.closest("markdown-toolbar");if(n instanceof I){var i=c({},{prefix:"",suffix:"",blockPrefix:"",blockSuffix:"",multiline:!1,replaceNext:"",prefixSpace:!1,scanFor:"",surroundWithNewlines:!1,orderedList:!1,trimFirst:!1},e),r=n.field;r&&(r.focus(),B(r,i))}}var F=n(3),R=n.n(F);app.initializers.add("flarum-markdown",function(t){var e=1;Object(r.extend)(l.a.prototype,"init",function(){this.textareaId="textarea"+e++}),Object(r.extend)(l.a.prototype,"view",function(t){t.children[0].attrs.id=this.textareaId}),Object(r.extend)(l.a.prototype,"configTextarea",function(t,e,n,i){if(!n){var r=new R.a(e);r.disableInline(),i.onunload=function(){r.destroy()}}}),Object(r.extend)(l.a.prototype,"toolbarItems",function(e){var n={className:"Button Button--icon Button--link",config:function(t){return $(t).tooltip()}},r=function(e){return t.translator.trans("flarum-markdown.forum.composer."+e+"_tooltip")};e.add("markdown",m("markdown-toolbar",{for:this.textareaId},m("md-header",i({title:r("header")},n),a()("fas fa-heading")),m("md-bold",i({title:r("bold")+" "},n),a()("fas fa-bold")),m("md-italic",i({title:r("italic")+" "},n),a()("fas fa-italic")),m("md-quote",i({title:r("quote")},n),a()("fas fa-quote-left")),m("md-code",i({title:r("code")},n),a()("fas fa-code")),m("md-link",i({title:r("link")+" "},n),a()("fas fa-link")),m("md-unordered-list",i({title:r("unordered_list")},n),a()("fas fa-list-ul")),m("md-ordered-list",i({title:r("ordered_list")},n),a()("fas fa-list-ol"))),100)})})}]); +//# sourceMappingURL=forum.js.map \ No newline at end of file diff --git a/extensions/markdown/js/dist/forum.js.map b/extensions/markdown/js/dist/forum.js.map new file mode 100644 index 000000000..bb70219fd --- /dev/null +++ b/extensions/markdown/js/dist/forum.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://@flarum/markdown/webpack/bootstrap","webpack://@flarum/markdown/external \"flarum.core.compat['helpers/icon']\"","webpack://@flarum/markdown/external \"flarum.core.compat['extend']\"","webpack://@flarum/markdown/external \"flarum.core.compat['components/TextEditor']\"","webpack://@flarum/markdown/./node_modules/mdarea/mdarea.js","webpack://@flarum/markdown/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@flarum/markdown/./node_modules/@github/markdown-toolbar-element/dist/index.esm.js","webpack://@flarum/markdown/./src/forum/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","flarum","core","compat","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","self","undefined","ctrlKey","test","navigator","platform","reInlineKey","reDoubledInline","rePrefix","reList","reCleanIndent","rePureIndent","reIncrement","reStripLast","reMkIndent","codeBlocks","`","~","openingParens","[","(","{","<","closingParens","]",")","}",">","MarkdownArea","elem","this","_useTab","_useInline","_indent","_reOutdent","_reKey","makeKeyRe","_handleKey","setElement","tab","inline","RegExp","apply","e","selectionStart","selectionEnd","arguments","length","window","evt","InputEvent","dispatchEvent","constructor","getElement","_elem","removeEventListener","addEventListener","getValue","setValue","getIndent","setIndent","indent","Array","join","replace","isTabUsed","useTab","ignoreTab","isInlineEnabled","enableInline","disableInline","destroy","defaultPrevented","prefix","target","substring","selection","postfix","altKey","metaKey","shiftKey","lastIndexOf","handleIndentKey","reOutdent","handleOutdentKey","charAt","handleInlineKey","shift","info","str","offset","line","exec","getLineInfo","isList","_","parseInt","increment","pure","toIndent","stripLast","handleEnterKey","preventDefault","_extends","assign","source","index_esm_extends","_get","receiver","Function","desc","getOwnPropertyDescriptor","parent","getPrototypeOf","_createClass","defineProperties","props","descriptor","configurable","writable","Constructor","protoProps","staticProps","_classCallCheck","instance","TypeError","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","_CustomElement","Reflect","construct","HTMLElement","styles","WeakMap","MarkdownButtonElement","_CustomElement2","_this","style","applyStyle","fn","event","keydown","hasAttribute","setAttribute","MarkdownHeaderButtonElement","_MarkdownButtonElemen","_this2","set","customElements","define","MarkdownBoldButtonElement","_MarkdownButtonElemen2","_this3","suffix","trimFirst","MarkdownItalicButtonElement","_MarkdownButtonElemen3","_this4","MarkdownQuoteButtonElement","_MarkdownButtonElemen4","_this5","multiline","surroundWithNewlines","MarkdownCodeButtonElement","_MarkdownButtonElemen5","_this6","blockPrefix","blockSuffix","MarkdownLinkButtonElement","_MarkdownButtonElemen6","_this7","replaceNext","scanFor","MarkdownUnorderedListButtonElement","_MarkdownButtonElemen7","_this8","MarkdownOrderedListButtonElement","_MarkdownButtonElemen8","_this9","orderedList","MarkdownTaskListButtonElement","_MarkdownButtonElemen9","_this10","MarkdownMentionButtonElement","_MarkdownButtonElemen10","_this11","prefixSpace","MarkdownRefButtonElement","_MarkdownButtonElemen11","_this12","modifierKey","userAgent","match","MarkdownToolbarElement","_CustomElement3","toolbar","button","querySelector","click","field","shortcutListeners","delete","id","getAttribute","document","getElementById","HTMLTextAreaElement","isMultipleLines","string","trim","split","repeat","canInsertText","styleSelectedText","textarea","styleArgs","text","slice","result","orderedListRegex","lines","every","map","len","index","results","push","_newlinesToSurroundSe2","newlinesToSurroundSelectedText","_newlinesToAppend2","newlinesToAppend","_newlinesToPrepend2","newlinesToPrepend","arg","startsWith","endsWith","_newlinesToSurroundSe","_newlinesToAppend","_newlinesToPrepend","multilineStyle","originalSelectionStart","originalSelectionEnd","selectedText","prefixToUse","suffixToUse","beforeSelection","wordSelectionStart","wordSelectionEnd","expandedSelectionStart","expandedSelectionEnd","beginsWithPrefix","endsWithSuffix","expandSelectedText","hasReplaceNext","indexOf","ref","replacementText","position","Math","max","min","_replacementText2","_replacementText3","_replacementText","whitespaceEdges","leadingWhitespace","trailingWhitespace","blockStyle","_ref","before","after","contentEditable","execCommand","error","CustomEvent","bubbles","cancelable","setSelectionRange","insertText","afterSelection","breaksBefore","breaksAfter","newlinesBeforeSelection","newlinesAfterSelection","closest","focus","app","initializers","add","extend","TextEditor","textareaId","vdom","children","attrs","element","isInitialized","context","editor","onunload","items","className","config","elm","$","tooltip","translator","trans","for","title","icon"],"mappings":"2BACA,IAAAA,KAGA,SAAAC,EAAAC,GAGA,GAAAF,EAAAE,GACA,OAAAF,EAAAE,GAAAC,QAGA,IAAAC,EAAAJ,EAAAE,IACAG,EAAAH,EACAI,GAAA,EACAH,YAUA,OANAI,EAAAL,GAAAM,KAAAJ,EAAAD,QAAAC,IAAAD,QAAAF,GAGAG,EAAAE,GAAA,EAGAF,EAAAD,QA0DA,OArDAF,EAAAQ,EAAAF,EAGAN,EAAAS,EAAAV,EAGAC,EAAAU,EAAA,SAAAR,EAAAS,EAAAC,GACAZ,EAAAa,EAAAX,EAAAS,IACAG,OAAAC,eAAAb,EAAAS,GAA0CK,YAAA,EAAAC,IAAAL,KAK1CZ,EAAAkB,EAAA,SAAAhB,GACA,oBAAAiB,eAAAC,aACAN,OAAAC,eAAAb,EAAAiB,OAAAC,aAAwDC,MAAA,WAExDP,OAAAC,eAAAb,EAAA,cAAiDmB,OAAA,KAQjDrB,EAAAsB,EAAA,SAAAD,EAAAE,GAEA,GADA,EAAAA,IAAAF,EAAArB,EAAAqB,IACA,EAAAE,EAAA,OAAAF,EACA,KAAAE,GAAA,iBAAAF,QAAAG,WAAA,OAAAH,EACA,IAAAI,EAAAX,OAAAY,OAAA,MAGA,GAFA1B,EAAAkB,EAAAO,GACAX,OAAAC,eAAAU,EAAA,WAAyCT,YAAA,EAAAK,UACzC,EAAAE,GAAA,iBAAAF,EAAA,QAAAM,KAAAN,EAAArB,EAAAU,EAAAe,EAAAE,EAAA,SAAAA,GAAgH,OAAAN,EAAAM,IAAqBC,KAAA,KAAAD,IACrI,OAAAF,GAIAzB,EAAA6B,EAAA,SAAA1B,GACA,IAAAS,EAAAT,KAAAqB,WACA,WAA2B,OAAArB,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAH,EAAAU,EAAAE,EAAA,IAAAA,GACAA,GAIAZ,EAAAa,EAAA,SAAAiB,EAAAC,GAAsD,OAAAjB,OAAAkB,UAAAC,eAAA1B,KAAAuB,EAAAC,IAGtD/B,EAAAkC,EAAA,GAIAlC,IAAAmC,EAAA,mBClFAhC,EAAAD,QAAAkC,OAAAC,KAAAC,OAAA,+BCAAnC,EAAAD,QAAAkC,OAAAC,KAAAC,OAAA,sBCAAnC,EAAAD,QAAAkC,OAAAC,KAAAC,OAAA,0CCAA,IAAAC,EAAAC,EAAAC,EAQC,oBAAAC,WANOF,UAAkBG,KAAAF,EAAA,mBAATF,EAMhB,WAED,IACAK,EADA,wBAAAC,KAAAC,UAAAC,UACA,oBACAC,EAAA,qBACAC,EAAA,OACAC,EAAA,0EACAC,EAAA,2CACAC,EAAA,iBACAC,EAAA,UACAC,EAAA,qBACAC,EAAA,wEACAC,EAAA,WACAC,GAAsBC,IAAA,QAAAC,IAAA,SACtBC,GAAyBC,IAAA,IAAAC,IAAA,IAAAC,IAAsB,IAAKC,IAAA,KACpDC,GAAyBC,IAAA,IAAAC,IAAA,IAAAC,IAAsB,IAAKC,IAAA,KAGpD,SAAAC,EAAAC,GACAC,KAAAC,SAAA,EACAD,KAAAE,YAAA,EACAF,KAAAG,QAAA,OACAH,KAAAI,WAAA,YACAJ,KAAAK,OAAAC,GAAA,MACAN,KAAAO,WAAAP,KAAAO,WAAAnD,KAAA4C,MACAA,KAAAQ,WAAAT,GAkGA,SAAAO,EAAAG,EAAAC,GACA,WAAAC,OAAA,aAAAF,EAAA,mBAAAC,EAAA,mBAA8F,WA8E9F,SAAAE,EAAAb,EAAAlD,EAAAc,EAAAkD,GAKA,GAJAd,EAAAlD,QACAkD,EAAAe,eAAAnD,EACAoC,EAAAgB,aAAAC,UAAAC,OAAA,EAAAJ,EAAAlD,EAEA,eAAAuD,OAAA,IACA,IAAAC,EAAA,IAAAC,WAAA,SACArB,EAAAsB,cAAAF,GACS,MAAAN,KAkCT,OAxNAf,EAAAtC,WACA8D,YAAAxB,EAEAyB,WAAA,WACA,OAAAvB,KAAAwB,OAGAhB,WAAA,SAAAT,GACAC,KAAAwB,OACAxB,KAAAwB,MAAAC,oBAAA,UAAAzB,KAAAO,YAGAP,KAAAwB,MAAAzB,EACAA,EAAA2B,iBAAA,UAAA1B,KAAAO,aAGAoB,SAAA,WACA,OAAA3B,KAAAwB,MAAA3E,OAGA+E,SAAA,SAAA/E,GACAmD,KAAAwB,MAAA3E,SAGAgF,UAAA,WACA,OAAA7B,KAAAG,SAGA2B,UAAA,SAAAC,GAEA/B,KAAAG,QADA,iBAAA4B,EACA,IAAAC,MAAAD,EAAA,GAAAE,KAAA,MAEAF,EAAA,IAAAG,QAAA,eAGAlC,KAAAI,WAAA,IAAAO,OAAA,IAAAX,KAAAG,QAAA,OAGAgC,UAAA,WACA,OAAAnC,KAAAC,SAGAmC,OAAA,WACApC,KAAAC,SAAA,EACAD,KAAAK,OAAAC,GAAA,EAAAN,KAAAE,aAGAmC,UAAA,WACArC,KAAAC,SAAA,EACAD,KAAAK,OAAAC,GAAA,EAAAN,KAAAE,aAGAoC,gBAAA,WACA,OAAAtC,KAAAE,YAGAqC,aAAA,WACAvC,KAAAE,YAAA,EACAF,KAAAK,OAAAC,EAAAN,KAAAC,SAAA,IAGAuC,cAAA,WACAxC,KAAAE,YAAA,EACAF,KAAAK,OAAAC,EAAAN,KAAAC,SAAA,IAGAwC,QAAA,WACAzC,KAAAwB,MAAAC,oBAAA,UAAAzB,KAAAO,YACAP,KAAAwB,MAAAxB,KAAAK,OAAAL,KAAAO,WAAAP,KAAAG,QAAAH,KAAAI,WAAA,MAGAG,WAAA,SAAAY,GACA,IAAAA,EAAAuB,kBAAA1C,KAAAK,OAAAhC,KAAA8C,EAAAhE,KAAA,CACA,IAAAwF,EAAAxB,EAAAyB,OAAA/F,MAAAgG,UAAA,EAAA1B,EAAAyB,OAAA9B,gBACAgC,EAAA3B,EAAAyB,OAAA/F,MAAAgG,UAAA1B,EAAAyB,OAAA9B,eAAAK,EAAAyB,OAAA7B,cACAgC,EAAA5B,EAAAyB,OAAA/F,MAAAgG,UAAA1B,EAAAyB,OAAA7B,cAEA,aAAAI,EAAAhE,KAAAgE,EAAA/C,SAAA+C,EAAA6B,QAAA7B,EAAA8B,QAEiB,WAAA9B,EAAAhE,MAAAgE,EAAA+B,UAAA,MAAA/B,EAAAhE,KAAAgE,EAAA/C,IAuCjB,SAAA2B,EAAA4C,EAAAG,EAAAC,EAAAhB,GACA,IAAApE,EAAAgF,EAAA1B,OACA5D,EAAAsF,EAAAQ,YAAA,QAEA9F,EAAAM,IACAmF,EAAAH,EAAAE,UAAAxF,GAAAyF,EACAH,IAAAE,UAAA,EAAAxF,KAGAA,EAAAM,IAAAmF,KACAnF,GAAAoE,EAAAd,QAGA6B,EACAA,IAAAZ,QAAAlD,EAAA+C,GAEAY,GAAAZ,EAGAnB,EAAAb,EAAA4C,EAAAG,EAAAC,EAAApF,EAAAmF,EAAAzF,EAAAyF,EAAA7B,OAAAtD,GAzDAyF,CAAApD,KAAAwB,MAAAmB,EAAAG,EAAAC,EAAA/C,KAAAG,cACiB,WAAAgB,EAAAhE,KAAAgE,EAAA+B,UAAA,MAAA/B,EAAAhE,KAAAgE,EAAA/C,IA2DjB,SAAA2B,EAAA4C,EAAAG,EAAAC,EAAAhB,EAAAsB,GACA,IAAA1F,EAAAgF,EAAA1B,OACA5D,EAAAsF,EAAAQ,YAAA,QAEA9F,EAAAM,IACAmF,EAAAH,EAAAE,UAAAxF,GAAAyF,EACAH,IAAAE,UAAA,EAAAxF,GAEAyF,EAAAD,UAAA,EAAAd,EAAAd,UAAAc,IACApE,GAAAoE,EAAAd,SAIA6B,IAAAZ,QAAAmB,EAAA,IACAzC,EAAAb,EAAA4C,EAAAG,EAAAC,EAAApF,EAAAN,EAAAyF,EAAA7B,QAxEAqC,CAAAtD,KAAAwB,MAAAmB,EAAAG,EAAAC,EAAA/C,KAAAG,QAAAH,KAAAI,gBACiB,KAAA5B,EAAAH,KAAA8C,EAAAhE,KAGjB,QAuEA,SAAA4C,EAAA4C,EAAAG,EAAAC,EAAA5F,GACA2F,GAAA3F,KAAAiC,GAAA2D,EAAAQ,OAAA,KAAApG,GAES2F,IAAA,MAAA3F,QAAAsC,GACTmB,EAAAb,EAAA4C,EAAAxF,EAAA4F,EAAAJ,EAAA1B,OAAA,IACS6B,GAAA3F,KAAA8B,KAAA9B,GAAAkB,KAAAsE,GACT/B,EAAAb,EAAA4C,EAAAxF,EAAA,aAAAA,OAAA,OAAA4F,EAAAQ,OAAA,YAAAR,EAAAJ,EAAA1B,OAAA,EAAA0B,EAAA1B,OAAA,GAEAL,EACAb,EACA4C,GAAAlD,EAAAtC,OAAA2F,GAAA1D,EAAAjC,OAAA4F,EACAJ,EAAA1B,OAAA,EACA0B,EAAA1B,OAAA,EAAA6B,EAAA7B,QAVAL,EAAAb,EAAA4C,GAAAlE,EAAAJ,KAAAlB,OAAA,IAAA4F,EAAAJ,EAAA1B,OAAA,GA3EAuC,CAAAxD,KAAAwB,MAAAmB,EAAAG,EAAAC,EAAA5B,EAAAhE,UAgBA,SAAA4C,EAAA4C,EAAAG,EAAAC,EAAAU,GACA,IAAAC,EAAAZ,EAAA,KAoFA,SAAAa,GACA,IAAAC,EAAAD,EAAAR,YAAA,QACAU,EAAAF,EAAAd,UAAAe,GACA5H,EAAA0C,EAAAoF,KAAAD,GAEA,OACAA,OACAD,SACAjB,OAAA3G,KAAA,IA5FA+H,CAAApB,IAEAG,GAAAY,EAAAf,OACAc,GAAAC,EAAAf,SAAAe,EAAAG,MAEaJ,GA2Fb,SAAAd,GACA,OAAAhE,EAAAN,KAAAsE,GA5FaqB,CAAAN,EAAAf,QACbA,GAAA,KAkGA,SAAAA,GACA,OAAAA,EAAAT,QAAApD,EAAA,SAAAmF,EAAA5G,GACA,OAAA6G,SAAA7G,GAAA,QApGA8G,CAAAT,EAAAf,QAEAA,GAAA,KA4FA,SAAAA,EAAAyB,GACA,OAAAzB,EAAAT,QAAAkC,EAAAvF,EAAAD,EAAA,KA7FAyF,CAAAX,EAAAf,OAAAc,GAJAd,IAAAE,UAAA,EAAAa,EAAAE,QA0GA,SAAAjB,GACA,OAAAA,EAAAT,QAAAnD,EAAA,IA3GAuF,CAAAZ,EAAAf,QAOAA,GAAA,KAGA/B,EAAAb,EAAA4C,EAAAI,EAAAJ,EAAA1B,QArCAsD,CAAAvE,KAAAwB,MAAAmB,EAAAG,EAAAC,EAAA5B,EAAA+B,UAWA/B,EAAAqD,oBA+HA1E,IA1P0B/B,EAAA6C,MAAAlF,EAAAsC,GAAAD,KAAApC,EAAAD,QAAAuC,iCCFX,SAAAwG,IAef,OAdAA,EAAAnI,OAAAoI,QAAA,SAAA9B,GACA,QAAAhH,EAAA,EAAmBA,EAAAoF,UAAAC,OAAsBrF,IAAA,CACzC,IAAA+I,EAAA3D,UAAApF,GAEA,QAAAuB,KAAAwH,EACArI,OAAAkB,UAAAC,eAAA1B,KAAA4I,EAAAxH,KACAyF,EAAAzF,GAAAwH,EAAAxH,IAKA,OAAAyF,IAGAhC,MAAAZ,KAAAgB,6DCfI4D,EAAQtI,OAAAoI,QAAA,SAAA9B,GAAuC,QAAAhH,EAAA,EAAgBA,EAAAoF,UAAAC,OAAsBrF,IAAA,CAAO,IAAA+I,EAAA3D,UAAApF,GAA2B,QAAAuB,KAAAwH,EAA0BrI,OAAAkB,UAAAC,eAAA1B,KAAA4I,EAAAxH,KAAyDyF,EAAAzF,GAAAwH,EAAAxH,IAAiC,OAAAyF,GAE/OiC,EAAA,SAAApI,EAAAa,EAAAC,EAAAuH,GAAqD,OAAAxH,MAAAyH,SAAAvH,WAAkD,IAAAwH,EAAA1I,OAAA2I,yBAAA3H,EAAAC,GAA8D,QAAAY,IAAA6G,EAAA,CAA0B,IAAAE,EAAA5I,OAAA6I,eAAA7H,GAA4C,cAAA4H,OAAuB,EAA2BzI,EAAAyI,EAAA3H,EAAAuH,GAA4C,aAAAE,EAA4B,OAAAA,EAAAnI,MAA4B,IAAAT,EAAA4I,EAAAvI,IAAuB,YAAA0B,IAAA/B,EAAgDA,EAAAL,KAAA+I,QAAhD,GAExZM,EAAA,WAAgC,SAAAC,EAAAzC,EAAA0C,GAA2C,QAAA1J,EAAA,EAAgBA,EAAA0J,EAAArE,OAAkBrF,IAAA,CAAO,IAAA2J,EAAAD,EAAA1J,GAA2B2J,EAAA/I,WAAA+I,EAAA/I,aAAA,EAAwD+I,EAAAC,cAAA,EAAgC,UAAAD,MAAAE,UAAA,GAAuDnJ,OAAAC,eAAAqG,EAAA2C,EAAApI,IAAAoI,IAA+D,gBAAAG,EAAAC,EAAAC,GAA2L,OAAlID,GAAAN,EAAAK,EAAAlI,UAAAmI,GAAqEC,GAAAP,EAAAK,EAAAE,GAA6DF,GAAxhB,GAEA,SAAAG,EAAAC,EAAAJ,GAAiD,KAAAI,aAAAJ,GAA0C,UAAAK,UAAA,qCAE3F,SAAAC,EAAA9H,EAAAnC,GAAiD,IAAAmC,EAAa,UAAA+H,eAAA,6DAAyF,OAAAlK,GAAA,iBAAAA,GAAA,mBAAAA,EAAAmC,EAAAnC,EAEvJ,SAAAmK,EAAAC,EAAAC,GAA0C,sBAAAA,GAAA,OAAAA,EAA+D,UAAAL,UAAA,kEAAAK,GAAuGD,EAAA3I,UAAAlB,OAAAY,OAAAkJ,KAAA5I,WAAyE8D,aAAezE,MAAAsJ,EAAA3J,YAAA,EAAAiJ,UAAA,EAAAD,cAAA,KAA6EY,IAAA9J,OAAA+J,eAAA/J,OAAA+J,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAErX,SAAAG,IACA,OAAAC,QAAAC,UAAAC,eAAA1G,KAAAsG,UAAAhF,aAIAhF,OAAA+J,eAAAE,EAAA/I,UAAAkJ,YAAAlJ,WACAlB,OAAA+J,eAAAE,EAAAG,aAUA,IAAAC,EAAA,IAAAC,QAEAC,EAAA,SAAAC,GAGA,SAAAD,IACAhB,EAAA7F,KAAA6G,GAEA,IAAAE,EAAAf,EAAAhG,MAAA6G,EAAAP,WAAAhK,OAAA6I,eAAA0B,IAAA9K,KAAAiE,OAEAY,EAAA,WACA,IAAAoG,EAAAL,EAAAlK,IAAAsK,GACAC,GACAC,EAAAF,EAAAC,IAIA,OAFAD,EAAArF,iBAAA,UAxBA,SAAAwF,GACA,gBAAAC,GACA,MAAAA,EAAAhK,KAAA,UAAAgK,EAAAhK,MACAgK,EAAA3C,iBACA0C,EAAAC,KAoBAC,CAAAxG,IACAmG,EAAArF,iBAAA,QAAAd,GACAmG,EAuBA,OArCAb,EAAAW,EAsCCN,GArBDnB,EAAAyB,IACA1J,IAAA,oBACAN,MAAA,WACAmD,KAAAqH,aAAA,aACArH,KAAAsH,aAAA,gBAGAtH,KAAAqH,aAAA,SACArH,KAAAsH,aAAA,oBAIAnK,IAAA,QACAN,MAAA,WACA,IAAAmK,EAAAL,EAAAlK,IAAAuD,MACAgH,GACAC,EAAAjH,KAAAgH,OAIAH,EAtCA,GAyCAU,EAAA,SAAAC,GAGA,SAAAD,IACA1B,EAAA7F,KAAAuH,GAEA,IAAAE,EAAAzB,EAAAhG,MAAAuH,EAAAjB,WAAAhK,OAAA6I,eAAAoC,IAAAxL,KAAAiE,OAGA,OADA2G,EAAAe,IAAAD,GAAwB9E,OAAA,SACxB8E,EAGA,OAXAvB,EAAAqB,EAYCV,GADDU,EAZA,GAeArG,OAAAyG,eAAAlL,IAAA,eACAyE,OAAAqG,8BACArG,OAAAyG,eAAAC,OAAA,YAAAL,IAGA,IAAAM,EAAA,SAAAC,GAGA,SAAAD,IACAhC,EAAA7F,KAAA6H,GAEA,IAAAE,EAAA/B,EAAAhG,MAAA6H,EAAAvB,WAAAhK,OAAA6I,eAAA0C,IAAA9L,KAAAiE,OAGA,OADA2G,EAAAe,IAAAK,GAAwBpF,OAAA,KAAAqF,OAAA,KAAAC,WAAA,IACxBF,EAWA,OAnBA7B,EAAA2B,EAoBChB,GATDzB,EAAAyC,IACA1K,IAAA,oBACAN,MAAA,WACAgI,EAAAgD,EAAArK,UAAA8I,WAAAhK,OAAA6I,eAAA0C,EAAArK,WAAA,oBAAAwC,MAAAjE,KAAAiE,MACAA,KAAAsH,aAAA,kBAIAO,EApBA,GAuBA3G,OAAAyG,eAAAlL,IAAA,aACAyE,OAAA2G,4BACA3G,OAAAyG,eAAAC,OAAA,UAAAC,IAGA,IAAAK,EAAA,SAAAC,GAGA,SAAAD,IACArC,EAAA7F,KAAAkI,GAEA,IAAAE,EAAApC,EAAAhG,MAAAkI,EAAA5B,WAAAhK,OAAA6I,eAAA+C,IAAAnM,KAAAiE,OAGA,OADA2G,EAAAe,IAAAU,GAAwBzF,OAAA,IAAAqF,OAAA,IAAAC,WAAA,IACxBG,EAWA,OAnBAlC,EAAAgC,EAoBCrB,GATDzB,EAAA8C,IACA/K,IAAA,oBACAN,MAAA,WACAgI,EAAAqD,EAAA1K,UAAA8I,WAAAhK,OAAA6I,eAAA+C,EAAA1K,WAAA,oBAAAwC,MAAAjE,KAAAiE,MACAA,KAAAsH,aAAA,kBAIAY,EApBA,GAuBAhH,OAAAyG,eAAAlL,IAAA,eACAyE,OAAAgH,8BACAhH,OAAAyG,eAAAC,OAAA,YAAAM,IAGA,IAAAG,EAAA,SAAAC,GAGA,SAAAD,IACAxC,EAAA7F,KAAAqI,GAEA,IAAAE,EAAAvC,EAAAhG,MAAAqI,EAAA/B,WAAAhK,OAAA6I,eAAAkD,IAAAtM,KAAAiE,OAGA,OADA2G,EAAAe,IAAAa,GAAwB5F,OAAA,KAAA6F,WAAA,EAAAC,sBAAA,IACxBF,EAGA,OAXArC,EAAAmC,EAYCxB,GADDwB,EAZA,GAeAnH,OAAAyG,eAAAlL,IAAA,cACAyE,OAAAmH,6BACAnH,OAAAyG,eAAAC,OAAA,WAAAS,IAGA,IAAAK,EAAA,SAAAC,GAGA,SAAAD,IACA7C,EAAA7F,KAAA0I,GAEA,IAAAE,EAAA5C,EAAAhG,MAAA0I,EAAApC,WAAAhK,OAAA6I,eAAAuD,IAAA3M,KAAAiE,OAGA,OADA2G,EAAAe,IAAAkB,GAAwBjG,OAAA,IAAAqF,OAAA,IAAAa,YAAA,MAAAC,YAAA,QACxBF,EAGA,OAXA1C,EAAAwC,EAYC7B,GADD6B,EAZA,GAeAxH,OAAAyG,eAAAlL,IAAA,aACAyE,OAAAwH,4BACAxH,OAAAyG,eAAAC,OAAA,UAAAc,IAGA,IAAAK,EAAA,SAAAC,GAGA,SAAAD,IACAlD,EAAA7F,KAAA+I,GAEA,IAAAE,EAAAjD,EAAAhG,MAAA+I,EAAAzC,WAAAhK,OAAA6I,eAAA4D,IAAAhN,KAAAiE,OAGA,OADA2G,EAAAe,IAAAuB,GAAwBtG,OAAA,IAAAqF,OAAA,SAAAkB,YAAA,MAAAC,QAAA,cACxBF,EAWA,OAnBA/C,EAAA6C,EAoBClC,GATDzB,EAAA2D,IACA5L,IAAA,oBACAN,MAAA,WACAgI,EAAAkE,EAAAvL,UAAA8I,WAAAhK,OAAA6I,eAAA4D,EAAAvL,WAAA,oBAAAwC,MAAAjE,KAAAiE,MACAA,KAAAsH,aAAA,kBAIAyB,EApBA,GAuBA7H,OAAAyG,eAAAlL,IAAA,aACAyE,OAAA6H,4BACA7H,OAAAyG,eAAAC,OAAA,UAAAmB,IAGA,IAAAK,EAAA,SAAAC,GAGA,SAAAD,IACAvD,EAAA7F,KAAAoJ,GAEA,IAAAE,EAAAtD,EAAAhG,MAAAoJ,EAAA9C,WAAAhK,OAAA6I,eAAAiE,IAAArN,KAAAiE,OAGA,OADA2G,EAAAe,IAAA4B,GAAwB3G,OAAA,KAAA6F,WAAA,EAAAC,sBAAA,IACxBa,EAGA,OAXApD,EAAAkD,EAYCvC,GADDuC,EAZA,GAeAlI,OAAAyG,eAAAlL,IAAA,uBACAyE,OAAAkI,qCACAlI,OAAAyG,eAAAC,OAAA,oBAAAwB,IAGA,IAAAG,EAAA,SAAAC,GAGA,SAAAD,IACA1D,EAAA7F,KAAAuJ,GAEA,IAAAE,EAAAzD,EAAAhG,MAAAuJ,EAAAjD,WAAAhK,OAAA6I,eAAAoE,IAAAxN,KAAAiE,OAGA,OADA2G,EAAAe,IAAA+B,GAAwB9G,OAAA,MAAA6F,WAAA,EAAAkB,aAAA,IACxBD,EAGA,OAXAvD,EAAAqD,EAYC1C,GADD0C,EAZA,GAeArI,OAAAyG,eAAAlL,IAAA,qBACAyE,OAAAqI,mCACArI,OAAAyG,eAAAC,OAAA,kBAAA2B,IAGA,IAAAI,EAAA,SAAAC,GAGA,SAAAD,IACA9D,EAAA7F,KAAA2J,GAEA,IAAAE,EAAA7D,EAAAhG,MAAA2J,EAAArD,WAAAhK,OAAA6I,eAAAwE,IAAA5N,KAAAiE,OAGA,OADA2G,EAAAe,IAAAmC,GAAyBlH,OAAA,SAAA6F,WAAA,EAAAC,sBAAA,IACzBoB,EAWA,OAnBA3D,EAAAyD,EAoBC9C,GATDzB,EAAAuE,IACAxM,IAAA,oBACAN,MAAA,WACAgI,EAAA8E,EAAAnM,UAAA8I,WAAAhK,OAAA6I,eAAAwE,EAAAnM,WAAA,oBAAAwC,MAAAjE,KAAAiE,MACAA,KAAAsH,aAAA,kBAIAqC,EApBA,GAuBAzI,OAAAyG,eAAAlL,IAAA,kBACAyE,OAAAyI,gCACAzI,OAAAyG,eAAAC,OAAA,eAAA+B,IAGA,IAAAG,EAAA,SAAAC,GAGA,SAAAD,IACAjE,EAAA7F,KAAA8J,GAEA,IAAAE,EAAAhE,EAAAhG,MAAA8J,EAAAxD,WAAAhK,OAAA6I,eAAA2E,IAAA/N,KAAAiE,OAGA,OADA2G,EAAAe,IAAAsC,GAAyBrH,OAAA,IAAAsH,aAAA,IACzBD,EAGA,OAXA9D,EAAA4D,EAYCjD,GADDiD,EAZA,GAeA5I,OAAAyG,eAAAlL,IAAA,gBACAyE,OAAA4I,+BACA5I,OAAAyG,eAAAC,OAAA,aAAAkC,IAGA,IAAAI,EAAA,SAAAC,GAGA,SAAAD,IACArE,EAAA7F,KAAAkK,GAEA,IAAAE,EAAApE,EAAAhG,MAAAkK,EAAA5D,WAAAhK,OAAA6I,eAAA+E,IAAAnO,KAAAiE,OAGA,OADA2G,EAAAe,IAAA0C,GAAyBzH,OAAA,IAAAsH,aAAA,IACzBG,EAGA,OAXAlE,EAAAgE,EAYCrD,GADDqD,EAZA,GAeAhJ,OAAAyG,eAAAlL,IAAA,YACAyE,OAAAgJ,2BACAhJ,OAAAyG,eAAAC,OAAA,SAAAsC,IAGA,IAAAG,EAAA/L,UAAAgM,UAAAC,MAAA,8BAEAC,EAAA,SAAAC,GAGA,SAAAD,IAGA,OAFA3E,EAAA7F,KAAAwK,GAEAxE,EAAAhG,MAAAwK,EAAAlE,WAAAhK,OAAA6I,eAAAqF,IAAAzO,KAAAiE,OA+BA,OApCAkG,EAAAsE,EAqCCjE,GA7BDnB,EAAAoF,IACArN,IAAA,oBACAN,MAAA,WACA,IAAAqK,EA8BA,SAAAwD,EAAAvD,GACA,GAAAA,EAAAlE,SAAA,SAAAoH,GAAAlD,EAAA/I,SAAA,YAAAiM,EAAA,CACA,IAAAM,EAAAD,EAAAE,cAAA,YAAAzD,EAAAhK,IAAA,MACAwN,IACAA,EAAAE,QACA1D,EAAA3C,oBAnCApH,KAAA,KAAA4C,MACAA,KAAA8K,QACA9K,KAAA8K,MAAApJ,iBAAA,UAAAwF,GACA6D,EAAArD,IAAA1H,KAAAkH,OAIA/J,IAAA,uBACAN,MAAA,WACA,IAAAqK,EAAA6D,EAAAtO,IAAAuD,MACAkH,GAAAlH,KAAA8K,QACA9K,KAAA8K,MAAArJ,oBAAA,UAAAyF,GACA6D,EAAAC,OAAAhL,UAIA7C,IAAA,QACAV,IAAA,WACA,IAAAwO,EAAAjL,KAAAkL,aAAA,OACA,GAAAD,EAAA,CACA,IAAAH,EAAAK,SAAAC,eAAAH,GACA,OAAAH,aAAAO,oBAAAP,EAAA,UAIAN,EArCA,GAwCAO,EAAA,IAAAnE,QAiBA,SAAA0E,EAAAC,GACA,OAAAA,EAAAC,OAAAC,MAAA,MAAAxK,OAAA,EAGA,SAAAyK,EAAAH,EAAAlO,GACA,OAAA2E,MAAA3E,EAAA,GAAA4E,KAAAsJ,GAVArK,OAAAyG,eAAAlL,IAAA,sBACAyE,OAAAsJ,yBACAtJ,OAAAyG,eAAAC,OAAA,mBAAA4C,IAyBA,IAAAmB,EAAA,KA+CA,SAAAC,EAAAC,EAAAC,GACA,IAAAC,EAAAF,EAAAhP,MAAAmP,MAAAH,EAAA/K,eAAA+K,EAAA9K,cAEAkL,OAAA,EAEAA,EADAH,EAAApC,YA0KA,SAAAmC,GACA,IAAAK,EAAA,YACAnL,OAAA,EACAD,OAAA,EACAiL,EAAAF,EAAAhP,MAAAmP,MAAAH,EAAA/K,eAAA+K,EAAA9K,cACAoL,EAAAJ,EAAAN,MAAA,MAMA,GAJAU,EAAAC,MAAA,SAAAvI,GACA,OAAAqI,EAAA7N,KAAAwF,KAIAsI,IAAAE,IAAA,SAAAxI,GACA,OAAAA,EAAA3B,QAAAgK,EAAA,MAEAH,EAAAI,EAAAlK,KAAA,UACG,CACHkK,EAAA,WACA,IAAAvQ,OAAA,EACA0Q,OAAA,EACAC,OAAA,EACAC,KACA,IAAAD,EAAA3Q,EAAA,EAAA0Q,EAAAH,EAAAlL,OAA6CrF,EAAA0Q,EAASC,IAAA3Q,EAAA,CACtD,IAAAiI,EAAAsI,EAAAI,GACAC,EAAAC,KAAAF,EAAA,OAAA1I,GAEA,OAAA2I,EATA,GAWAT,EAAAI,EAAAlK,KAAA,MAEA,IAAAyK,EAAAC,EAAAd,GACAe,EAAAF,EAAAG,iBACAC,EAAAJ,EAAAK,kBAEAjM,EAAA+K,EAAA/K,eAAA8L,EAAA3L,OACAF,EAAAD,EAAAiL,EAAA9K,OACA8K,EAAAa,EAAAb,EAAAe,EAGA,OAAUf,OAAAjL,iBAAAC,gBAhNV2I,CAAAmC,GACGC,EAAAtD,WAAA8C,EAAAS,GAoIH,SAAAF,EAAAmB,GACA,IAAArK,EAAAqK,EAAArK,OACAqF,EAAAgF,EAAAhF,OACAS,EAAAuE,EAAAvE,qBAEAsD,EAAAF,EAAAhP,MAAAmP,MAAAH,EAAA/K,eAAA+K,EAAA9K,cACAD,EAAA+K,EAAA/K,eACAC,EAAA8K,EAAA9K,aACAoL,EAAAJ,EAAAN,MAAA,MAKA,GAJAU,EAAAC,MAAA,SAAAvI,GACA,OAAAA,EAAAoJ,WAAAtK,IAAAkB,EAAAqJ,SAAAlF,KAIA+D,EAAAI,EAAAE,IAAA,SAAAxI,GACA,OAAAA,EAAAmI,MAAArJ,EAAA1B,OAAA4C,EAAA5C,OAAA+G,EAAA/G,UACKgB,KAAA,MACLlB,EAAAD,EAAAiL,EAAA9K,YAKA,GAHA8K,EAAAI,EAAAE,IAAA,SAAAxI,GACA,OAAAlB,EAAAkB,EAAAmE,IACK/F,KAAA,MACLwG,EAAA,CACA,IAAA0E,EAAAR,EAAAd,GACAuB,EAAAD,EAAAN,iBACAQ,EAAAF,EAAAJ,kBAEAjM,GAAAsM,EAAAnM,OACAF,EAAAD,EAAAiL,EAAA9K,OACA8K,EAAAqB,EAAArB,EAAAsB,EAIA,OAAUtB,OAAAjL,iBAAAC,gBApKVuM,CAAAzB,EAAAC,GAwDA,SAAAD,EAAAmB,GACA,IAAAH,OAAA,EACAE,OAAA,EAEApK,EAAAqK,EAAArK,OACAqF,EAAAgF,EAAAhF,OACAa,EAAAmE,EAAAnE,YACAC,EAAAkE,EAAAlE,YACAI,EAAA8D,EAAA9D,YACAe,EAAA+C,EAAA/C,YACAd,EAAA6D,EAAA7D,QACAV,EAAAuE,EAAAvE,qBAEA8E,EAAA1B,EAAA/K,eACA0M,EAAA3B,EAAA9K,aAEA0M,EAAA5B,EAAAhP,MAAAmP,MAAAH,EAAA/K,eAAA+K,EAAA9K,cACA2M,EAAApC,EAAAmC,IAAA5E,EAAA5H,OAAA,EAAA4H,EAAA,KAAAlG,EACAgL,EAAArC,EAAAmC,IAAA3E,EAAA7H,OAAA,OAAA6H,EAAAd,EAEA,GAAAiC,EAAA,CACA,IAAA2D,EAAA/B,EAAAhP,MAAAgP,EAAA/K,eAAA,GACA,IAAA+K,EAAA/K,gBAAA,MAAA8M,KAAArD,MAAA,QACAmD,EAAA,IAAAA,GAGAD,EA1EA,SAAA5B,EAAA6B,EAAAC,GACA,GAAA9B,EAAA/K,iBAAA+K,EAAA9K,aACA8K,EAAA/K,eA9EA,SAAAiL,EAAAQ,GACA,KAAAR,EAAAQ,IAAA,MAAAR,EAAAQ,EAAA,KAAAR,EAAAQ,EAAA,GAAAhC,MAAA,OACAgC,IAEA,OAAAA,EA0EAsB,CAAAhC,EAAAhP,MAAAgP,EAAA/K,gBACA+K,EAAA9K,aAxEA,SAAAgL,EAAAQ,GACA,KAAAR,EAAAQ,KAAAR,EAAAQ,GAAAhC,MAAA,OACAgC,IAEA,OAAAA,EAoEAuB,CAAAjC,EAAAhP,MAAAgP,EAAA9K,kBACG,CACH,IAAAgN,EAAAlC,EAAA/K,eAAA4M,EAAAzM,OACA+M,EAAAnC,EAAA9K,aAAA4M,EAAA1M,OACAgN,EAAApC,EAAAhP,MAAAmP,MAAA+B,EAAAlC,EAAA/K,kBAAA4M,EACAQ,EAAArC,EAAAhP,MAAAmP,MAAAH,EAAA9K,aAAAiN,KAAAL,EACAM,GAAAC,IACArC,EAAA/K,eAAAiN,EACAlC,EAAA9K,aAAAiN,GAGA,OAAAnC,EAAAhP,MAAAmP,MAAAH,EAAA/K,eAAA+K,EAAA9K,cA4DAoN,CAAAtC,EAAA6B,EAAAC,GACA,IAAA7M,EAAA+K,EAAA/K,eACAC,EAAA8K,EAAA9K,aACAqN,EAAAlF,EAAAjI,OAAA,GAAA0M,EAAAU,QAAAnF,IAAA,GAAAuE,EAAAxM,OAAA,EACA,GAAAwH,EAAA,CACA,IAAA6F,EAAA3B,EAAAd,GACAgB,EAAAyB,EAAAzB,iBACAE,EAAAuB,EAAAvB,kBACAW,EAAAb,EAAAlK,EACAgL,GAAAZ,EAGA,GAAAU,EAAAR,WAAAS,IAAAD,EAAAP,SAAAS,GAAA,CACA,IAAAY,EAAAd,EAAAzB,MAAA0B,EAAAzM,OAAAwM,EAAAxM,OAAA0M,EAAA1M,QACA,GAAAsM,IAAAC,EAAA,CACA,IAAAgB,EAAAjB,EAAAG,EAAAzM,OACAuN,EAAAC,KAAAC,IAAAF,EAAA1N,GACA0N,EAAAC,KAAAE,IAAAH,EAAA1N,EAAAyN,EAAAtN,QACAH,EAAAC,EAAAyN,OAEAzN,EAAAD,EAAAyN,EAAAtN,OAEA,OAAY8K,KAAAwC,EAAAzN,iBAAAC,gBACT,GAAAqN,EAaA,IAAAjF,EAAAlI,OAAA,GAAAwM,EAAAlD,MAAApB,GAAA,CACHwE,IAAAzL,QAAAgH,EAAAuE,GACA,IAAAmB,EAAAlB,EAAAC,EAEA,OADA7M,EAAAC,EAAAD,EAAA4M,EAAAzM,QACY8K,KAAA6C,EAAA9N,iBAAAC,gBAEZ,IAAA8N,EAAAnB,EAAAD,EAAAE,EAGA,OAFA7M,IAAA4M,EAAAzM,OAAAwM,EAAAxM,OAAA0M,EAAAU,QAAAnF,GACAnI,EAAAD,EAAAoI,EAAAjI,QACY8K,KAAA8C,EAAA/N,iBAAAC,gBArBZ,IAAA+N,EAAApB,EAAAD,EAAAE,EACA7M,EAAAyM,EAAAG,EAAAzM,OACAF,EAAAyM,EAAAE,EAAAzM,OACA,IAAA8N,EAAAtB,EAAAlD,MAAA,cACA,GAAAyC,EAAA/E,WAAA8G,EAAA,CACA,IAAAC,EAAAD,EAAA,OACAE,EAAAF,EAAA,OACAD,EAAAE,EAAAtB,EAAAD,EAAAjC,OAAAmC,EAAAsB,EACAnO,GAAAkO,EAAA/N,OACAF,GAAAkO,EAAAhO,OAEA,OAAY8K,KAAA+C,EAAAhO,iBAAAC,gBAnHZmO,CAAArD,EAAAC,GAtDA,SAAAD,EAAAsD,GACA,IAAApD,EAAAoD,EAAApD,KACAjL,EAAAqO,EAAArO,eACAC,EAAAoO,EAAApO,aAEAwM,EAAA1B,EAAA/K,eACAsO,EAAAvD,EAAAhP,MAAAmP,MAAA,EAAAuB,GACA8B,EAAAxD,EAAAhP,MAAAmP,MAAAH,EAAA9K,cAEA,UAAA4K,IAAA,IAAAA,EAAA,CACAE,EAAAyD,gBAAA,OACA,IACA3D,EAAAR,SAAAoE,YAAA,gBAAAxD,GACK,MAAAyD,GACL7D,GAAA,EAEAE,EAAAyD,gBAAA,QAOA,GAJA3D,IAAAE,EAAAhP,MAAAmP,MAAA,EAAAH,EAAA/K,gBAAAoM,SAAAnB,KACAJ,GAAA,IAGAA,EAAA,CACA,IACAR,SAAAoE,YAAA,oBACK,MAAA1O,IAGLgL,EAAAhP,MAAAuS,EAAArD,EAAAsD,EACA,IACAlE,SAAAoE,YAAA,kBACK,MAAA1O,IAGLgL,EAAAxK,cAAA,IAAAoO,YAAA,SAAqDC,SAAA,EAAAC,YAAA,KAGrD,MAAA7O,GAAA,MAAAC,EACA8K,EAAA+D,kBAAA9O,EAAAC,GAEA8K,EAAA+D,kBAAArC,EAAA1B,EAAA9K,cAgBA8O,CAAAhE,EAAAI,GAoBA,SAAAU,EAAAd,GACA,IAAA+B,EAAA/B,EAAAhP,MAAAmP,MAAA,EAAAH,EAAA/K,gBACAgP,EAAAjE,EAAAhP,MAAAmP,MAAAH,EAAA9K,cAEAgP,EAAAnC,EAAArD,MAAA,QACAyF,EAAAF,EAAAvF,MAAA,QACA0F,EAAAF,IAAA,GAAA9O,OAAA,EACAiP,EAAAF,IAAA,GAAA/O,OAAA,EAEA4L,OAAA,EACAE,OAAA,EAkBA,OAhBAa,EAAArD,MAAA,OAAA0F,EAAA,IACApD,EAAAnB,EAAA,OAAAuE,IAGAH,EAAAvF,MAAA,OAAA2F,EAAA,IACAnD,EAAArB,EAAA,OAAAwE,IAGA,MAAArD,IACAA,EAAA,IAGA,MAAAE,IACAA,EAAA,KAGUF,mBAAAE,qBA4JV,SAAA9F,EAAA0D,EAAAhE,GACA,IAAA+D,EAAAC,EAAAwF,QAAA,oBACA,GAAAzF,aAAAF,EAAA,CAEA,IAcAxD,EAAcpC,MAbdjC,OAAA,GACAqF,OAAA,GACAa,YAAA,GACAC,YAAA,GACAN,WAAA,EACAU,YAAA,GACAe,aAAA,EACAd,QAAA,GACAV,sBAAA,EACAiB,aAAA,EACAzB,WAAA,GAGyBtB,GAEzBmE,EAAAJ,EAAAI,MACAA,IACAA,EAAAsF,QACAxE,EAAAd,EAAA9D,KAIe,oBC/qBfqJ,IAAIC,aAAaC,IAAI,kBAAmB,SAASF,GAC/C,IAAI9D,EAAQ,EAEZiE,iBAAOC,IAAWjT,UAAW,OAAQ,WACnCwC,KAAK0Q,WAAa,WAAYnE,MAGhCiE,iBAAOC,IAAWjT,UAAW,OAAQ,SAASmT,GAC5CA,EAAKC,SAAS,GAAGC,MAAM5F,GAAKjL,KAAK0Q,aAGnCF,iBAAOC,IAAWjT,UAAW,iBAAkB,SAASX,EAAOiU,EAASC,EAAeC,GACrF,IAAID,EAAJ,CAEA,IAAME,EAAS,IAAInR,IAAagR,GAChCG,EAAOzO,gBAEPwO,EAAQE,SAAW,WACjBD,EAAOxO,cAIX+N,iBAAOC,IAAWjT,UAAW,eAAgB,SAAS2T,GACpD,IAAMN,GACJO,UAAW,mCACXC,OAAQ,SAAAC,GAAG,OAAIC,EAAED,GAAKE,YAGlBA,EAAU,SAAArV,GAAI,OAAIkU,EAAIoB,WAAWC,MAAf,kCAAuDvV,EAAvD,aAExBgV,EAAMZ,IAAI,WACRvU,EAAA,oBAAkB2V,IAAK3R,KAAK0Q,YAC1B1U,EAAA,YAAAyI,GAAWmN,MAAOJ,EAAQ,WAAeX,GAAQgB,IAAK,mBACtD7V,EAAA,UAAAyI,GAASmN,MAAOJ,EAAQ,QAAQ,YAAgBX,GAAQgB,IAAK,gBAC7D7V,EAAA,YAAAyI,GAAWmN,MAAOJ,EAAQ,UAAU,YAAgBX,GAAQgB,IAAK,kBACjE7V,EAAA,WAAAyI,GAAUmN,MAAOJ,EAAQ,UAAcX,GAAQgB,IAAK,sBACpD7V,EAAA,UAAAyI,GAASmN,MAAOJ,EAAQ,SAAaX,GAAQgB,IAAK,gBAClD7V,EAAA,UAAAyI,GAASmN,MAAOJ,EAAQ,QAAQ,YAAgBX,GAAQgB,IAAK,gBAC7D7V,EAAA,oBAAAyI,GAAmBmN,MAAOJ,EAAQ,mBAAuBX,GAAQgB,IAAK,mBACtE7V,EAAA,kBAAAyI,GAAiBmN,MAAOJ,EAAQ,iBAAqBX,GAAQgB,IAAK,oBAEnE","file":"forum.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","module.exports = flarum.core.compat['helpers/icon'];","module.exports = flarum.core.compat['extend'];","module.exports = flarum.core.compat['components/TextEditor'];","(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n root.MarkdownArea = factory();\n }\n})(typeof self !== 'undefined' ? self : this, function() {\n\n var isMac = /mac|iphone|ipad|ipod/i.test(navigator.platform),\n ctrlKey = isMac ? 'metaKey' : 'ctrlKey',\n reInlineKey = /^[\"'`*_[({<>})\\]]$/,\n reDoubledInline = /[*_]/,\n rePrefix = /^[ \\t]*(?:(?:[-+*]|\\d+\\.)[ \\t]+(?:\\[[ x]][ \\t]+)?|>[ \\t]*)*(?::[ \\t]*)?/,\n reList = /(?:[-+*]|\\d+\\.)[ \\t]+(?:\\[[ x]][ \\t]+)?$/,\n reCleanIndent = /[-+*\\[\\]x\\d.]/g,\n rePureIndent = /[^ \\t]/g,\n reIncrement = /(\\d+)\\.(?=[ \\t]+$)/,\n reStripLast = /(?:(?:^[ \\t]+)?(?:[-+*]|\\d+\\.|[>:])(?:[ \\t]+\\[[ x]])?[ \\t]*|^[ \\t]+)$/,\n reMkIndent = /^(?!$)/mg,\n codeBlocks = {'`': /^``$/m, '~': /^~~$/m},\n openingParens = {'[': ']', '(': ')', '{': '}', '<': '>'},\n closingParens = {']': '[', ')': '(', '}': '{', '>': '<'};\n\n\n function MarkdownArea(elem) {\n this._useTab = true;\n this._useInline = true;\n this._indent = ' ';\n this._reOutdent = /^[ ]{4}/mg;\n this._reKey = makeKeyRe(true, true);\n this._handleKey = this._handleKey.bind(this);\n this.setElement(elem);\n }\n\n MarkdownArea.prototype = {\n constructor: MarkdownArea,\n\n getElement: function () {\n return this._elem;\n },\n\n setElement: function (elem) {\n if (this._elem) {\n this._elem.removeEventListener('keydown', this._handleKey);\n }\n\n this._elem = elem;\n elem.addEventListener('keydown', this._handleKey);\n },\n\n getValue: function () {\n return this._elem.value;\n },\n\n setValue: function (value) {\n this._elem.value = value;\n },\n\n getIndent: function () {\n return this._indent;\n },\n\n setIndent: function (indent) {\n if (typeof indent === 'number') {\n this._indent = new Array(indent + 1).join(' ');\n } else {\n this._indent = (indent + '').replace(/[^ \\t]/g, ' ');\n }\n\n this._reOutdent = new RegExp('^' + this._indent, 'mg');\n },\n\n isTabUsed: function () {\n return this._useTab;\n },\n\n useTab: function () {\n this._useTab = true;\n this._reKey = makeKeyRe(true, this._useInline);\n },\n\n ignoreTab: function () {\n this._useTab = false;\n this._reKey = makeKeyRe(false, this._useInline);\n },\n\n isInlineEnabled: function() {\n return this._useInline;\n },\n\n enableInline: function () {\n this._useInline = true;\n this._reKey = makeKeyRe(this._useTab, true);\n },\n\n disableInline: function () {\n this._useInline = false;\n this._reKey = makeKeyRe(this._useTab, false);\n },\n\n destroy: function () {\n this._elem.removeEventListener('keydown', this._handleKey);\n this._elem = this._reKey = this._handleKey = this._indent = this._reOutdent = null;\n },\n\n _handleKey: function (evt) {\n if (!evt.defaultPrevented && this._reKey.test(evt.key)) {\n var prefix = evt.target.value.substring(0, evt.target.selectionStart),\n selection = evt.target.value.substring(evt.target.selectionStart, evt.target.selectionEnd),\n postfix = evt.target.value.substring(evt.target.selectionEnd);\n\n if (evt.key === 'Enter' && !evt.ctrlKey && !evt.altKey && !evt.metaKey) {\n handleEnterKey(this._elem, prefix, selection, postfix, evt.shiftKey);\n } else if (evt.key === 'Tab' && !evt.shiftKey || evt.key === 'i' && evt[ctrlKey]) {\n handleIndentKey(this._elem, prefix, selection, postfix, this._indent);\n } else if (evt.key === 'Tab' && evt.shiftKey || evt.key === 'o' && evt[ctrlKey]) {\n handleOutdentKey(this._elem, prefix, selection, postfix, this._indent, this._reOutdent);\n } else if (reInlineKey.test(evt.key)) {\n handleInlineKey(this._elem, prefix, selection, postfix, evt.key);\n } else {\n return;\n }\n\n evt.preventDefault();\n }\n }\n };\n\n\n function makeKeyRe(tab, inline) {\n return new RegExp('^(?:Enter' + (tab ? '|Tab' : '') + '|[io' + (inline ? '\"\\'`*_([{<>}\\\\])' : '') + '])$');\n }\n\n\n function handleEnterKey (elem, prefix, selection, postfix, shift) {\n var info = !selection ? getLineInfo(prefix) : null;\n\n if (!selection && info.prefix) {\n if (!shift && info.prefix === info.line) {\n prefix = prefix.substring(0, info.offset) + stripLast(info.prefix);\n } else if (!shift && isList(info.prefix)) {\n prefix += \"\\n\" + increment(info.prefix);\n } else {\n prefix += \"\\n\" + toIndent(info.prefix, shift);\n }\n } else {\n prefix += \"\\n\";\n }\n\n apply(elem, prefix + postfix, prefix.length);\n }\n\n function handleIndentKey (elem, prefix, selection, postfix, indent) {\n var s = prefix.length,\n n = prefix.lastIndexOf(\"\\n\") + 1;\n\n if (n < s) {\n selection = prefix.substring(n) + selection;\n prefix = prefix.substring(0, n);\n }\n\n if (n < s || !selection) {\n s += indent.length;\n }\n\n if (selection) {\n selection = selection.replace(reMkIndent, indent);\n } else {\n prefix += indent;\n }\n\n apply(elem, prefix + selection + postfix, s, selection ? n + selection.length : s);\n }\n\n function handleOutdentKey (elem, prefix, selection, postfix, indent, reOutdent) {\n var s = prefix.length,\n n = prefix.lastIndexOf(\"\\n\") + 1;\n\n if (n < s) {\n selection = prefix.substring(n) + selection;\n prefix = prefix.substring(0, n);\n\n if (selection.substring(0, indent.length) === indent) {\n s -= indent.length;\n }\n }\n\n selection = selection.replace(reOutdent, '');\n apply(elem, prefix + selection + postfix, s, n + selection.length);\n }\n\n function handleInlineKey (elem, prefix, selection, postfix, key) {\n if (!selection && !(key in openingParens) && postfix.charAt(0) === key) {\n apply(elem, prefix + (reDoubledInline.test(key) ? key + key : '') + postfix, prefix.length + 1);\n } else if (!selection && (key === \"'\" || key in closingParens)) {\n apply(elem, prefix + key + postfix, prefix.length + 1);\n } else if (!selection && key in codeBlocks && codeBlocks[key].test(prefix)) {\n apply(elem, prefix + key + \"language\\n\" + key + key + key + (postfix.charAt(0) !== \"\\n\" ? \"\\n\" : '') + postfix, prefix.length + 1, prefix.length + 9);\n } else {\n apply(\n elem,\n prefix + (closingParens[key] || key) + selection + (openingParens[key] || key) + postfix,\n prefix.length + 1,\n prefix.length + 1 + selection.length\n );\n }\n }\n\n function apply(elem, value, s, e) {\n elem.value = value;\n elem.selectionStart = s;\n elem.selectionEnd = arguments.length > 3 ? e : s;\n\n if ('InputEvent' in window) try {\n var evt = new InputEvent('input');\n elem.dispatchEvent(evt);\n } catch (e) { }\n }\n\n function getLineInfo(str) {\n var offset = str.lastIndexOf(\"\\n\") + 1,\n line = str.substring(offset),\n m = rePrefix.exec(line);\n\n return {\n line: line,\n offset: offset,\n prefix: m && m[0]\n };\n }\n\n function isList(prefix) {\n return reList.test(prefix);\n }\n\n function toIndent(prefix, pure) {\n return prefix.replace(pure ? rePureIndent : reCleanIndent, ' ');\n }\n\n function increment(prefix) {\n return prefix.replace(reIncrement, function (_, n) {\n return (parseInt(n) + 1) + '.';\n })\n }\n\n function stripLast(prefix) {\n return prefix.replace(reStripLast, '');\n }\n\n\n return MarkdownArea;\n\n});\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _CustomElement() {\n return Reflect.construct(HTMLElement, [], this.__proto__.constructor);\n}\n\n;\nObject.setPrototypeOf(_CustomElement.prototype, HTMLElement.prototype);\nObject.setPrototypeOf(_CustomElement, HTMLElement);\nfunction keydown(fn) {\n return function (event) {\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n fn(event);\n }\n };\n}\n\nvar styles = new WeakMap();\n\nvar MarkdownButtonElement = function (_CustomElement2) {\n _inherits(MarkdownButtonElement, _CustomElement2);\n\n function MarkdownButtonElement() {\n _classCallCheck(this, MarkdownButtonElement);\n\n var _this = _possibleConstructorReturn(this, (MarkdownButtonElement.__proto__ || Object.getPrototypeOf(MarkdownButtonElement)).call(this));\n\n var apply = function apply() {\n var style = styles.get(_this);\n if (!style) return;\n applyStyle(_this, style);\n };\n _this.addEventListener('keydown', keydown(apply));\n _this.addEventListener('click', apply);\n return _this;\n }\n\n _createClass(MarkdownButtonElement, [{\n key: 'connectedCallback',\n value: function connectedCallback() {\n if (!this.hasAttribute('tabindex')) {\n this.setAttribute('tabindex', '0');\n }\n\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'button');\n }\n }\n }, {\n key: 'click',\n value: function click() {\n var style = styles.get(this);\n if (!style) return;\n applyStyle(this, style);\n }\n }]);\n\n return MarkdownButtonElement;\n}(_CustomElement);\n\nvar MarkdownHeaderButtonElement = function (_MarkdownButtonElemen) {\n _inherits(MarkdownHeaderButtonElement, _MarkdownButtonElemen);\n\n function MarkdownHeaderButtonElement() {\n _classCallCheck(this, MarkdownHeaderButtonElement);\n\n var _this2 = _possibleConstructorReturn(this, (MarkdownHeaderButtonElement.__proto__ || Object.getPrototypeOf(MarkdownHeaderButtonElement)).call(this));\n\n styles.set(_this2, { prefix: '### ' });\n return _this2;\n }\n\n return MarkdownHeaderButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-header')) {\n window.MarkdownHeaderButtonElement = MarkdownHeaderButtonElement;\n window.customElements.define('md-header', MarkdownHeaderButtonElement);\n}\n\nvar MarkdownBoldButtonElement = function (_MarkdownButtonElemen2) {\n _inherits(MarkdownBoldButtonElement, _MarkdownButtonElemen2);\n\n function MarkdownBoldButtonElement() {\n _classCallCheck(this, MarkdownBoldButtonElement);\n\n var _this3 = _possibleConstructorReturn(this, (MarkdownBoldButtonElement.__proto__ || Object.getPrototypeOf(MarkdownBoldButtonElement)).call(this));\n\n styles.set(_this3, { prefix: '**', suffix: '**', trimFirst: true });\n return _this3;\n }\n\n _createClass(MarkdownBoldButtonElement, [{\n key: 'connectedCallback',\n value: function connectedCallback() {\n _get(MarkdownBoldButtonElement.prototype.__proto__ || Object.getPrototypeOf(MarkdownBoldButtonElement.prototype), 'connectedCallback', this).call(this);\n this.setAttribute('hotkey', 'b');\n }\n }]);\n\n return MarkdownBoldButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-bold')) {\n window.MarkdownBoldButtonElement = MarkdownBoldButtonElement;\n window.customElements.define('md-bold', MarkdownBoldButtonElement);\n}\n\nvar MarkdownItalicButtonElement = function (_MarkdownButtonElemen3) {\n _inherits(MarkdownItalicButtonElement, _MarkdownButtonElemen3);\n\n function MarkdownItalicButtonElement() {\n _classCallCheck(this, MarkdownItalicButtonElement);\n\n var _this4 = _possibleConstructorReturn(this, (MarkdownItalicButtonElement.__proto__ || Object.getPrototypeOf(MarkdownItalicButtonElement)).call(this));\n\n styles.set(_this4, { prefix: '_', suffix: '_', trimFirst: true });\n return _this4;\n }\n\n _createClass(MarkdownItalicButtonElement, [{\n key: 'connectedCallback',\n value: function connectedCallback() {\n _get(MarkdownItalicButtonElement.prototype.__proto__ || Object.getPrototypeOf(MarkdownItalicButtonElement.prototype), 'connectedCallback', this).call(this);\n this.setAttribute('hotkey', 'i');\n }\n }]);\n\n return MarkdownItalicButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-italic')) {\n window.MarkdownItalicButtonElement = MarkdownItalicButtonElement;\n window.customElements.define('md-italic', MarkdownItalicButtonElement);\n}\n\nvar MarkdownQuoteButtonElement = function (_MarkdownButtonElemen4) {\n _inherits(MarkdownQuoteButtonElement, _MarkdownButtonElemen4);\n\n function MarkdownQuoteButtonElement() {\n _classCallCheck(this, MarkdownQuoteButtonElement);\n\n var _this5 = _possibleConstructorReturn(this, (MarkdownQuoteButtonElement.__proto__ || Object.getPrototypeOf(MarkdownQuoteButtonElement)).call(this));\n\n styles.set(_this5, { prefix: '> ', multiline: true, surroundWithNewlines: true });\n return _this5;\n }\n\n return MarkdownQuoteButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-quote')) {\n window.MarkdownQuoteButtonElement = MarkdownQuoteButtonElement;\n window.customElements.define('md-quote', MarkdownQuoteButtonElement);\n}\n\nvar MarkdownCodeButtonElement = function (_MarkdownButtonElemen5) {\n _inherits(MarkdownCodeButtonElement, _MarkdownButtonElemen5);\n\n function MarkdownCodeButtonElement() {\n _classCallCheck(this, MarkdownCodeButtonElement);\n\n var _this6 = _possibleConstructorReturn(this, (MarkdownCodeButtonElement.__proto__ || Object.getPrototypeOf(MarkdownCodeButtonElement)).call(this));\n\n styles.set(_this6, { prefix: '`', suffix: '`', blockPrefix: '```', blockSuffix: '```' });\n return _this6;\n }\n\n return MarkdownCodeButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-code')) {\n window.MarkdownCodeButtonElement = MarkdownCodeButtonElement;\n window.customElements.define('md-code', MarkdownCodeButtonElement);\n}\n\nvar MarkdownLinkButtonElement = function (_MarkdownButtonElemen6) {\n _inherits(MarkdownLinkButtonElement, _MarkdownButtonElemen6);\n\n function MarkdownLinkButtonElement() {\n _classCallCheck(this, MarkdownLinkButtonElement);\n\n var _this7 = _possibleConstructorReturn(this, (MarkdownLinkButtonElement.__proto__ || Object.getPrototypeOf(MarkdownLinkButtonElement)).call(this));\n\n styles.set(_this7, { prefix: '[', suffix: '](url)', replaceNext: 'url', scanFor: 'https?://' });\n return _this7;\n }\n\n _createClass(MarkdownLinkButtonElement, [{\n key: 'connectedCallback',\n value: function connectedCallback() {\n _get(MarkdownLinkButtonElement.prototype.__proto__ || Object.getPrototypeOf(MarkdownLinkButtonElement.prototype), 'connectedCallback', this).call(this);\n this.setAttribute('hotkey', 'k');\n }\n }]);\n\n return MarkdownLinkButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-link')) {\n window.MarkdownLinkButtonElement = MarkdownLinkButtonElement;\n window.customElements.define('md-link', MarkdownLinkButtonElement);\n}\n\nvar MarkdownUnorderedListButtonElement = function (_MarkdownButtonElemen7) {\n _inherits(MarkdownUnorderedListButtonElement, _MarkdownButtonElemen7);\n\n function MarkdownUnorderedListButtonElement() {\n _classCallCheck(this, MarkdownUnorderedListButtonElement);\n\n var _this8 = _possibleConstructorReturn(this, (MarkdownUnorderedListButtonElement.__proto__ || Object.getPrototypeOf(MarkdownUnorderedListButtonElement)).call(this));\n\n styles.set(_this8, { prefix: '- ', multiline: true, surroundWithNewlines: true });\n return _this8;\n }\n\n return MarkdownUnorderedListButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-unordered-list')) {\n window.MarkdownUnorderedListButtonElement = MarkdownUnorderedListButtonElement;\n window.customElements.define('md-unordered-list', MarkdownUnorderedListButtonElement);\n}\n\nvar MarkdownOrderedListButtonElement = function (_MarkdownButtonElemen8) {\n _inherits(MarkdownOrderedListButtonElement, _MarkdownButtonElemen8);\n\n function MarkdownOrderedListButtonElement() {\n _classCallCheck(this, MarkdownOrderedListButtonElement);\n\n var _this9 = _possibleConstructorReturn(this, (MarkdownOrderedListButtonElement.__proto__ || Object.getPrototypeOf(MarkdownOrderedListButtonElement)).call(this));\n\n styles.set(_this9, { prefix: '1. ', multiline: true, orderedList: true });\n return _this9;\n }\n\n return MarkdownOrderedListButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-ordered-list')) {\n window.MarkdownOrderedListButtonElement = MarkdownOrderedListButtonElement;\n window.customElements.define('md-ordered-list', MarkdownOrderedListButtonElement);\n}\n\nvar MarkdownTaskListButtonElement = function (_MarkdownButtonElemen9) {\n _inherits(MarkdownTaskListButtonElement, _MarkdownButtonElemen9);\n\n function MarkdownTaskListButtonElement() {\n _classCallCheck(this, MarkdownTaskListButtonElement);\n\n var _this10 = _possibleConstructorReturn(this, (MarkdownTaskListButtonElement.__proto__ || Object.getPrototypeOf(MarkdownTaskListButtonElement)).call(this));\n\n styles.set(_this10, { prefix: '- [ ] ', multiline: true, surroundWithNewlines: true });\n return _this10;\n }\n\n _createClass(MarkdownTaskListButtonElement, [{\n key: 'connectedCallback',\n value: function connectedCallback() {\n _get(MarkdownTaskListButtonElement.prototype.__proto__ || Object.getPrototypeOf(MarkdownTaskListButtonElement.prototype), 'connectedCallback', this).call(this);\n this.setAttribute('hotkey', 'L');\n }\n }]);\n\n return MarkdownTaskListButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-task-list')) {\n window.MarkdownTaskListButtonElement = MarkdownTaskListButtonElement;\n window.customElements.define('md-task-list', MarkdownTaskListButtonElement);\n}\n\nvar MarkdownMentionButtonElement = function (_MarkdownButtonElemen10) {\n _inherits(MarkdownMentionButtonElement, _MarkdownButtonElemen10);\n\n function MarkdownMentionButtonElement() {\n _classCallCheck(this, MarkdownMentionButtonElement);\n\n var _this11 = _possibleConstructorReturn(this, (MarkdownMentionButtonElement.__proto__ || Object.getPrototypeOf(MarkdownMentionButtonElement)).call(this));\n\n styles.set(_this11, { prefix: '@', prefixSpace: true });\n return _this11;\n }\n\n return MarkdownMentionButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-mention')) {\n window.MarkdownMentionButtonElement = MarkdownMentionButtonElement;\n window.customElements.define('md-mention', MarkdownMentionButtonElement);\n}\n\nvar MarkdownRefButtonElement = function (_MarkdownButtonElemen11) {\n _inherits(MarkdownRefButtonElement, _MarkdownButtonElemen11);\n\n function MarkdownRefButtonElement() {\n _classCallCheck(this, MarkdownRefButtonElement);\n\n var _this12 = _possibleConstructorReturn(this, (MarkdownRefButtonElement.__proto__ || Object.getPrototypeOf(MarkdownRefButtonElement)).call(this));\n\n styles.set(_this12, { prefix: '#', prefixSpace: true });\n return _this12;\n }\n\n return MarkdownRefButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-ref')) {\n window.MarkdownRefButtonElement = MarkdownRefButtonElement;\n window.customElements.define('md-ref', MarkdownRefButtonElement);\n}\n\nvar modifierKey = navigator.userAgent.match(/Macintosh/) ? 'Meta' : 'Control';\n\nvar MarkdownToolbarElement = function (_CustomElement3) {\n _inherits(MarkdownToolbarElement, _CustomElement3);\n\n function MarkdownToolbarElement() {\n _classCallCheck(this, MarkdownToolbarElement);\n\n return _possibleConstructorReturn(this, (MarkdownToolbarElement.__proto__ || Object.getPrototypeOf(MarkdownToolbarElement)).call(this));\n }\n\n _createClass(MarkdownToolbarElement, [{\n key: 'connectedCallback',\n value: function connectedCallback() {\n var fn = shortcut.bind(null, this);\n if (this.field) {\n this.field.addEventListener('keydown', fn);\n shortcutListeners.set(this, fn);\n }\n }\n }, {\n key: 'disconnectedCallback',\n value: function disconnectedCallback() {\n var fn = shortcutListeners.get(this);\n if (fn && this.field) {\n this.field.removeEventListener('keydown', fn);\n shortcutListeners.delete(this);\n }\n }\n }, {\n key: 'field',\n get: function get() {\n var id = this.getAttribute('for');\n if (!id) return;\n var field = document.getElementById(id);\n return field instanceof HTMLTextAreaElement ? field : null;\n }\n }]);\n\n return MarkdownToolbarElement;\n}(_CustomElement);\n\nvar shortcutListeners = new WeakMap();\n\nfunction shortcut(toolbar, event) {\n if (event.metaKey && modifierKey === 'Meta' || event.ctrlKey && modifierKey === 'Control') {\n var button = toolbar.querySelector('[hotkey=\"' + event.key + '\"]');\n if (button) {\n button.click();\n event.preventDefault();\n }\n }\n}\n\nif (!window.customElements.get('markdown-toolbar')) {\n window.MarkdownToolbarElement = MarkdownToolbarElement;\n window.customElements.define('markdown-toolbar', MarkdownToolbarElement);\n}\n\nfunction isMultipleLines(string) {\n return string.trim().split('\\n').length > 1;\n}\n\nfunction repeat(string, n) {\n return Array(n + 1).join(string);\n}\n\nfunction wordSelectionStart(text, index) {\n while (text[index] && text[index - 1] != null && !text[index - 1].match(/\\s/)) {\n index--;\n }\n return index;\n}\n\nfunction wordSelectionEnd(text, index) {\n while (text[index] && !text[index].match(/\\s/)) {\n index++;\n }\n return index;\n}\n\nvar canInsertText = null;\n\nfunction insertText(textarea, _ref) {\n var text = _ref.text,\n selectionStart = _ref.selectionStart,\n selectionEnd = _ref.selectionEnd;\n\n var originalSelectionStart = textarea.selectionStart;\n var before = textarea.value.slice(0, originalSelectionStart);\n var after = textarea.value.slice(textarea.selectionEnd);\n\n if (canInsertText === null || canInsertText === true) {\n textarea.contentEditable = 'true';\n try {\n canInsertText = document.execCommand('insertText', false, text);\n } catch (error) {\n canInsertText = false;\n }\n textarea.contentEditable = 'false';\n }\n\n if (canInsertText && !textarea.value.slice(0, textarea.selectionStart).endsWith(text)) {\n canInsertText = false;\n }\n\n if (!canInsertText) {\n try {\n document.execCommand('ms-beginUndoUnit');\n } catch (e) {\n // Do nothing.\n }\n textarea.value = before + text + after;\n try {\n document.execCommand('ms-endUndoUnit');\n } catch (e) {\n // Do nothing.\n }\n textarea.dispatchEvent(new CustomEvent('input', { bubbles: true, cancelable: true }));\n }\n\n if (selectionStart != null && selectionEnd != null) {\n textarea.setSelectionRange(selectionStart, selectionEnd);\n } else {\n textarea.setSelectionRange(originalSelectionStart, textarea.selectionEnd);\n }\n}\n\nfunction styleSelectedText(textarea, styleArgs) {\n var text = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n\n var result = void 0;\n if (styleArgs.orderedList) {\n result = orderedList(textarea);\n } else if (styleArgs.multiline && isMultipleLines(text)) {\n result = multilineStyle(textarea, styleArgs);\n } else {\n result = blockStyle(textarea, styleArgs);\n }\n\n insertText(textarea, result);\n}\n\nfunction expandSelectedText(textarea, prefixToUse, suffixToUse) {\n if (textarea.selectionStart === textarea.selectionEnd) {\n textarea.selectionStart = wordSelectionStart(textarea.value, textarea.selectionStart);\n textarea.selectionEnd = wordSelectionEnd(textarea.value, textarea.selectionEnd);\n } else {\n var expandedSelectionStart = textarea.selectionStart - prefixToUse.length;\n var expandedSelectionEnd = textarea.selectionEnd + suffixToUse.length;\n var beginsWithPrefix = textarea.value.slice(expandedSelectionStart, textarea.selectionStart) === prefixToUse;\n var endsWithSuffix = textarea.value.slice(textarea.selectionEnd, expandedSelectionEnd) === suffixToUse;\n if (beginsWithPrefix && endsWithSuffix) {\n textarea.selectionStart = expandedSelectionStart;\n textarea.selectionEnd = expandedSelectionEnd;\n }\n }\n return textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n}\n\nfunction newlinesToSurroundSelectedText(textarea) {\n var beforeSelection = textarea.value.slice(0, textarea.selectionStart);\n var afterSelection = textarea.value.slice(textarea.selectionEnd);\n\n var breaksBefore = beforeSelection.match(/\\n*$/);\n var breaksAfter = afterSelection.match(/^\\n*/);\n var newlinesBeforeSelection = breaksBefore ? breaksBefore[0].length : 0;\n var newlinesAfterSelection = breaksAfter ? breaksAfter[0].length : 0;\n\n var newlinesToAppend = void 0;\n var newlinesToPrepend = void 0;\n\n if (beforeSelection.match(/\\S/) && newlinesBeforeSelection < 2) {\n newlinesToAppend = repeat('\\n', 2 - newlinesBeforeSelection);\n }\n\n if (afterSelection.match(/\\S/) && newlinesAfterSelection < 2) {\n newlinesToPrepend = repeat('\\n', 2 - newlinesAfterSelection);\n }\n\n if (newlinesToAppend == null) {\n newlinesToAppend = '';\n }\n\n if (newlinesToPrepend == null) {\n newlinesToPrepend = '';\n }\n\n return { newlinesToAppend: newlinesToAppend, newlinesToPrepend: newlinesToPrepend };\n}\n\nfunction blockStyle(textarea, arg) {\n var newlinesToAppend = void 0;\n var newlinesToPrepend = void 0;\n\n var prefix = arg.prefix,\n suffix = arg.suffix,\n blockPrefix = arg.blockPrefix,\n blockSuffix = arg.blockSuffix,\n replaceNext = arg.replaceNext,\n prefixSpace = arg.prefixSpace,\n scanFor = arg.scanFor,\n surroundWithNewlines = arg.surroundWithNewlines;\n\n var originalSelectionStart = textarea.selectionStart;\n var originalSelectionEnd = textarea.selectionEnd;\n\n var selectedText = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n var prefixToUse = isMultipleLines(selectedText) && blockPrefix.length > 0 ? blockPrefix + '\\n' : prefix;\n var suffixToUse = isMultipleLines(selectedText) && blockSuffix.length > 0 ? '\\n' + blockSuffix : suffix;\n\n if (prefixSpace) {\n var beforeSelection = textarea.value[textarea.selectionStart - 1];\n if (textarea.selectionStart !== 0 && beforeSelection != null && !beforeSelection.match(/\\s/)) {\n prefixToUse = ' ' + prefixToUse;\n }\n }\n selectedText = expandSelectedText(textarea, prefixToUse, suffixToUse);\n var selectionStart = textarea.selectionStart;\n var selectionEnd = textarea.selectionEnd;\n var hasReplaceNext = replaceNext.length > 0 && suffixToUse.indexOf(replaceNext) > -1 && selectedText.length > 0;\n if (surroundWithNewlines) {\n var ref = newlinesToSurroundSelectedText(textarea);\n newlinesToAppend = ref.newlinesToAppend;\n newlinesToPrepend = ref.newlinesToPrepend;\n prefixToUse = newlinesToAppend + prefix;\n suffixToUse += newlinesToPrepend;\n }\n\n if (selectedText.startsWith(prefixToUse) && selectedText.endsWith(suffixToUse)) {\n var replacementText = selectedText.slice(prefixToUse.length, selectedText.length - suffixToUse.length);\n if (originalSelectionStart === originalSelectionEnd) {\n var position = originalSelectionStart - prefixToUse.length;\n position = Math.max(position, selectionStart);\n position = Math.min(position, selectionStart + replacementText.length);\n selectionStart = selectionEnd = position;\n } else {\n selectionEnd = selectionStart + replacementText.length;\n }\n return { text: replacementText, selectionStart: selectionStart, selectionEnd: selectionEnd };\n } else if (!hasReplaceNext) {\n var _replacementText = prefixToUse + selectedText + suffixToUse;\n selectionStart = originalSelectionStart + prefixToUse.length;\n selectionEnd = originalSelectionEnd + prefixToUse.length;\n var whitespaceEdges = selectedText.match(/^\\s*|\\s*$/g);\n if (arg.trimFirst && whitespaceEdges) {\n var leadingWhitespace = whitespaceEdges[0] || '';\n var trailingWhitespace = whitespaceEdges[1] || '';\n _replacementText = leadingWhitespace + prefixToUse + selectedText.trim() + suffixToUse + trailingWhitespace;\n selectionStart += leadingWhitespace.length;\n selectionEnd -= trailingWhitespace.length;\n }\n return { text: _replacementText, selectionStart: selectionStart, selectionEnd: selectionEnd };\n } else if (scanFor.length > 0 && selectedText.match(scanFor)) {\n suffixToUse = suffixToUse.replace(replaceNext, selectedText);\n var _replacementText2 = prefixToUse + suffixToUse;\n selectionStart = selectionEnd = selectionStart + prefixToUse.length;\n return { text: _replacementText2, selectionStart: selectionStart, selectionEnd: selectionEnd };\n } else {\n var _replacementText3 = prefixToUse + selectedText + suffixToUse;\n selectionStart = selectionStart + prefixToUse.length + selectedText.length + suffixToUse.indexOf(replaceNext);\n selectionEnd = selectionStart + replaceNext.length;\n return { text: _replacementText3, selectionStart: selectionStart, selectionEnd: selectionEnd };\n }\n}\n\nfunction multilineStyle(textarea, arg) {\n var prefix = arg.prefix,\n suffix = arg.suffix,\n surroundWithNewlines = arg.surroundWithNewlines;\n\n var text = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n var selectionStart = textarea.selectionStart;\n var selectionEnd = textarea.selectionEnd;\n var lines = text.split('\\n');\n var undoStyle = lines.every(function (line) {\n return line.startsWith(prefix) && line.endsWith(suffix);\n });\n\n if (undoStyle) {\n text = lines.map(function (line) {\n return line.slice(prefix.length, line.length - suffix.length);\n }).join('\\n');\n selectionEnd = selectionStart + text.length;\n } else {\n text = lines.map(function (line) {\n return prefix + line + suffix;\n }).join('\\n');\n if (surroundWithNewlines) {\n var _newlinesToSurroundSe = newlinesToSurroundSelectedText(textarea),\n _newlinesToAppend = _newlinesToSurroundSe.newlinesToAppend,\n _newlinesToPrepend = _newlinesToSurroundSe.newlinesToPrepend;\n\n selectionStart += _newlinesToAppend.length;\n selectionEnd = selectionStart + text.length;\n text = _newlinesToAppend + text + _newlinesToPrepend;\n }\n }\n\n return { text: text, selectionStart: selectionStart, selectionEnd: selectionEnd };\n}\n\nfunction orderedList(textarea) {\n var orderedListRegex = /^\\d+\\.\\s+/;\n var selectionEnd = void 0;\n var selectionStart = void 0;\n var text = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n var lines = text.split('\\n');\n\n var undoStyling = lines.every(function (line) {\n return orderedListRegex.test(line);\n });\n\n if (undoStyling) {\n lines = lines.map(function (line) {\n return line.replace(orderedListRegex, '');\n });\n text = lines.join('\\n');\n } else {\n lines = function () {\n var i = void 0;\n var len = void 0;\n var index = void 0;\n var results = [];\n for (index = i = 0, len = lines.length; i < len; index = ++i) {\n var line = lines[index];\n results.push(index + 1 + '. ' + line);\n }\n return results;\n }();\n text = lines.join('\\n');\n\n var _newlinesToSurroundSe2 = newlinesToSurroundSelectedText(textarea),\n _newlinesToAppend2 = _newlinesToSurroundSe2.newlinesToAppend,\n _newlinesToPrepend2 = _newlinesToSurroundSe2.newlinesToPrepend;\n\n selectionStart = textarea.selectionStart + _newlinesToAppend2.length;\n selectionEnd = selectionStart + text.length;\n text = _newlinesToAppend2 + text + _newlinesToPrepend2;\n }\n\n return { text: text, selectionStart: selectionStart, selectionEnd: selectionEnd };\n}\n\nfunction applyStyle(button, styles) {\n var toolbar = button.closest('markdown-toolbar');\n if (!(toolbar instanceof MarkdownToolbarElement)) return;\n\n var defaults = {\n prefix: '',\n suffix: '',\n blockPrefix: '',\n blockSuffix: '',\n multiline: false,\n replaceNext: '',\n prefixSpace: false,\n scanFor: '',\n surroundWithNewlines: false,\n orderedList: false,\n trimFirst: false\n };\n\n var style = _extends({}, defaults, styles);\n\n var field = toolbar.field;\n if (field) {\n field.focus();\n styleSelectedText(field, style);\n }\n}\n\nexport default MarkdownToolbarElement;\n","import { extend } from 'flarum/extend';\nimport TextEditor from 'flarum/components/TextEditor';\nimport icon from 'flarum/helpers/icon';\n\nimport '@github/markdown-toolbar-element';\nimport MarkdownArea from 'mdarea/mdarea.js';\n\napp.initializers.add('flarum-markdown', function(app) {\n let index = 1;\n\n extend(TextEditor.prototype, 'init', function() {\n this.textareaId = 'textarea'+(index++);\n });\n\n extend(TextEditor.prototype, 'view', function(vdom) {\n vdom.children[0].attrs.id = this.textareaId;\n });\n\n extend(TextEditor.prototype, 'configTextarea', function(value, element, isInitialized, context) {\n if (isInitialized) return;\n\n const editor = new MarkdownArea(element);\n editor.disableInline();\n\n context.onunload = function() {\n editor.destroy();\n };\n });\n\n extend(TextEditor.prototype, 'toolbarItems', function(items) {\n const attrs = {\n className: 'Button Button--icon Button--link',\n config: elm => $(elm).tooltip()\n };\n\n const tooltip = name => app.translator.trans(`flarum-markdown.forum.composer.${name}_tooltip`);\n\n items.add('markdown', (\n \n {icon('fas fa-heading')}\n '} {...attrs}>{icon('fas fa-bold')}\n '} {...attrs}>{icon('fas fa-italic')}\n {icon('fas fa-quote-left')}\n {icon('fas fa-code')}\n '} {...attrs}>{icon('fas fa-link')}\n {icon('fas fa-list-ul')}\n {icon('fas fa-list-ol')}\n \n ), 100);\n });\n});\n"],"sourceRoot":""} \ No newline at end of file