From 86577e26d259d3ef7b078d167f67610a359111b9 Mon Sep 17 00:00:00 2001 From: flarum-bot Date: Fri, 24 Apr 2020 12:32:32 +0000 Subject: [PATCH] Bundled output for commit cb3f14b1865a80f75b96bbcb5ff172d7e01b0cfd [skip ci] --- extensions/markdown/js/dist/forum.js | 6 +++--- extensions/markdown/js/dist/forum.js.map | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/extensions/markdown/js/dist/forum.js b/extensions/markdown/js/dist/forum.js index 5aa1ee828..730cf5998 100644 --- a/extensions/markdown/js/dist/forum.js +++ b/extensions/markdown/js/dist/forum.js @@ -1,6 +1,6 @@ -module.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=6)}([function(e,t){e.exports=flarum.core.compat.extend},function(e,t){e.exports=flarum.core.compat["components/TextEditor"]},function(e,t){e.exports=flarum.core.compat.Component},function(e,t,n){var i,r,l;"undefined"!=typeof self&&self,r=[],void 0===(l="function"==typeof(i=function(){var e=/mac|iphone|ipad|ipod/i.test(navigator.platform)?"metaKey":"ctrlKey",t=/^["'`*_[({<>})\]]$/,n=/[*_]/,i=/^[ \t]*(?:(?:[-+*]|\d+\.)[ \t]+(?:\[[ x]][ \t]+)?|>[ \t]*)*(?::[ \t]*)?/,r=/(?:[-+*]|\d+\.)[ \t]+(?:\[[ x]][ \t]+)?$/,l=/[-+*\[\]x\d.]/g,o=/[^ \t]/g,s=/(\d+)\.(?=[ \t]+$)/,a=/(?:(?:^[ \t]+)?(?:[-+*]|\d+\.|[>:])(?:[ \t]+\[[ x]])?[ \t]*|^[ \t]+)$/,c=/^(?!$)/gm,u={"`":/^``$/m,"~":/^~~$/m},f={"[":"]","(":")","{":"}","<":">"},h={"]":"[",")":"(","}":"{",">":"<"};function d(e){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(e)}function p(e,t){return new RegExp("^(?:Enter"+(e?"|Tab":"")+"|[io"+(t?"\"'`*_([{<>}\\])":"")+"])$")}function g(e,t,n,i){if(e.value=t,e.selectionStart=n,e.selectionEnd=3})\]]$/,n=/[*_]/,i=/^[ \t]*(?:(?:[-+*]|\d+\.)[ \t]+(?:\[[ x]][ \t]+)?|>[ \t]*)*(?::[ \t]*)?/,r=/(?:[-+*]|\d+\.)[ \t]+(?:\[[ x]][ \t]+)?$/,l=/[-+*\[\]x\d.]/g,o=/[^ \t]/g,s=/(\d+)\.(?=[ \t]+$)/,a=/(?:(?:^[ \t]+)?(?:[-+*]|\d+\.|[>:])(?:[ \t]+\[[ x]])?[ \t]*|^[ \t]+)$/,c=/^(?!$)/gm,u={"`":/^``$/m,"~":/^~~$/m},f={"[":"]","(":")","{":"}","<":">"},h={"]":"[",")":"(","}":"{",">":"<"};function d(e){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(e)}function p(e,t){return new RegExp("^(?:Enter"+(e?"|Tab":"")+"|[io"+(t?"\"'`*_([{<>}\\])":"")+"])$")}function g(e,t,n,i){if(e.value=t,e.selectionStart=n,e.selectionEnd=3this.length)&&(t=this.length),this.substring(t-e.length,t)===e})},function(e,t,n){"use strict";n.r(t);var i=n(0),r=n(1),l=n.n(r),o=n(3),s=n.n(o);n(5);function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var c=n(2),u=n.n(c),f=navigator.userAgent.match(/Macintosh/)?"Meta":"Control",h=function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var n=t.prototype;return n.config=function(e){e||document.getElementById(this.props.for).addEventListener("keydown",this.shortcut.bind(this))},n.view=function(){return m("div",{id:"MarkdownToolbar","data-for":this.props.for,style:{display:"inline-block"}},this.props.children)},n.shortcut=function(e){if(e.metaKey&&"Meta"===f||e.ctrlKey&&"Control"===f){var t=this.element.querySelector('[data-hotkey="'+e.key+'"]');t&&(t.click(),e.preventDefault())}},t}(u.a),d=n(4),p=n.n(d);function g(){return(g=Object.assign||function(e){for(var t=1;t1}function x(e,t){return Array(t+1).join(e)}function b(e,t,n){for(var i=t,r=n?/\n/:/\s/;e[i]&&!e[i].match(r);)i++;return i}function _(e){var t,n,i=e.value.slice(0,e.selectionStart),r=e.value.slice(e.selectionEnd),l=i.match(/\n*$/),o=r.match(/^\n*/),s=l?l[0].length:0,a=o?o[0].length:0;return i.match(/\S/)&&s<2&&(t=x("\n",2-s)),r.match(/\S/)&&a<2&&(n=x("\n",2-a)),null==t&&(t=""),null==n&&(n=""),{newlinesToAppend:t,newlinesToPrepend:n}}var E=function(e,t){var n=t.prefix,i=t.suffix,r=t.blockPrefix,l=t.blockSuffix,o=t.replaceNext,s=t.prefixSpace,a=t.scanFor,c=t.surroundWithNewlines,u=e.selectionStart,f=e.selectionEnd,h=e.value.slice(e.selectionStart,e.selectionEnd),d=y(h)&&r.length>0?r+"\n":n,p=y(h)&&l.length>0?"\n"+l:i;if(s){var g=e.value[e.selectionStart-1];0===e.selectionStart||null==g||g.match(/\s/)||(d=" "+d)}h=function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(e.selectionStart===e.selectionEnd)e.selectionStart=function(e,t){for(var n=t;e[n]&&null!=e[n-1]&&!e[n-1].match(/\s/);)n--;return n}(e.value,e.selectionStart),e.selectionEnd=b(e.value,e.selectionEnd,i);else{var r=e.selectionStart-t.length,l=e.selectionEnd+n.length,o=e.value.slice(r,e.selectionStart)===t,s=e.value.slice(e.selectionEnd,l)===n;o&&s&&(e.selectionStart=r,e.selectionEnd=l)}return e.value.slice(e.selectionStart,e.selectionEnd)}(e,d,p,t.multiline);var m=e.selectionStart,v=e.selectionEnd,x=o.length>0&&p.indexOf(o)>-1&&h.length>0;if(c){var E=_(e);d=E.newlinesToAppend+n,p+=E.newlinesToPrepend}if(h.startsWith(d)&&h.endsWith(p)){var S=h.slice(d.length,h.length-p.length);if(u===f){var k=u-d.length;k=Math.max(k,m),m=v=k=Math.min(k,m+S.length)}else v=m+S.length;return{text:S,selectionStart:m,selectionEnd:v}}if(x)return a.length>0&&h.match(a)?{text:d+(p=p.replace(o,h)),selectionStart:m=v=m+d.length,selectionEnd:v}:{text:d+h+p,selectionStart:m=m+d.length+h.length+p.indexOf(o),selectionEnd:v=m+o.length};var w=d+h+p;m=u+d.length,v=f+d.length;var T=h.match(/^\s*|\s*$/g);if(t.trimFirst&&T){var O=T[0]||"",I=T[1]||"";w=O+d+h.trim()+p+I,m+=O.length,v-=I.length}return{text:w,selectionStart:m,selectionEnd:v}},S=function(e,t){var n,i=e.value.slice(e.selectionStart,e.selectionEnd);n=t.orderedList?function(e){var t,n,i,r,l=/^\d+\.\s+/,o=e.selectionStart===e.selectionEnd,s=e.value.slice(e.selectionStart,e.selectionEnd),a=s,c=s.split("\n");if(o){var u=e.value.slice(0,e.selectionStart).split(/\n/);i=e.selectionStart-u[u.length-1].length,r=b(e.value,e.selectionStart,!0),a=e.value.slice(i,r)}var f=a.split("\n");if(f.every((function(e){return l.test(e)}))){if(s=(c=f.map((function(e){return e.replace(l,"")}))).join("\n"),o&&i&&r){var h=f[0].length-c[0].length;n=t=e.selectionStart-h,e.selectionStart=i,e.selectionEnd=r}}else{s=(c=function(){var e,t,n,i=[];for(n=e=0,t=c.length;e"),e},t}(u.a); +String.prototype.startsWith||Object.defineProperty(String.prototype,"startsWith",{value:function(e,t){return t=!t||t<0?0:+t,this.substring(t,t+e.length)===e}}),String.prototype.endsWith||(String.prototype.endsWith=function(e,t){return(void 0===t||t>this.length)&&(t=this.length),this.substring(t-e.length,t)===e})},function(e,t,n){"use strict";n.r(t);var i=n(0),r=n(1),l=n.n(r),o=n(3),s=n.n(o);n(5);function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var c=n(2),u=n.n(c),f=navigator.userAgent.match(/Macintosh/)?"Meta":"Control",h=function(e){function t(){return e.apply(this,arguments)||this}a(t,e);var n=t.prototype;return n.config=function(e){e||document.getElementById(this.props.for).addEventListener("keydown",this.shortcut.bind(this))},n.view=function(){return m("div",{id:"MarkdownToolbar","data-for":this.props.for,style:{display:"inline-block"}},this.props.children)},n.shortcut=function(e){if(e.metaKey&&"Meta"===f||e.ctrlKey&&"Control"===f){var t=this.element.querySelector('[data-hotkey="'+e.key+'"]');t&&(t.click(),e.preventDefault())}},t}(u.a),d=n(4),p=n.n(d);function g(){return(g=Object.assign||function(e){for(var t=1;t1}function x(e,t){return Array(t+1).join(e)}function b(e,t){for(var n=t;e[n]&&null!=e[n-1]&&!e[n-1].match(/\s/);)n--;return n}function _(e,t,n){for(var i=t,r=n?/\n/:/\s/;e[i]&&!e[i].match(r);)i++;return i}function E(e){var t,n,i=e.value.slice(0,e.selectionStart),r=e.value.slice(e.selectionEnd),l=i.match(/\n*$/),o=r.match(/^\n*/),s=l?l[0].length:0,a=o?o[0].length:0;return i.match(/\S/)&&s<2&&(t=x("\n",2-s)),r.match(/\S/)&&a<2&&(n=x("\n",2-a)),null==t&&(t=""),null==n&&(n=""),{newlinesToAppend:t,newlinesToPrepend:n}}var S=function(e,t){var n=t.prefix,i=t.suffix,r=t.blockPrefix,l=t.blockSuffix,o=t.replaceNext,s=t.prefixSpace,a=t.scanFor,c=t.surroundWithNewlines,u=e.selectionStart,f=e.selectionEnd,h=e.value.slice(e.selectionStart,e.selectionEnd),d=y(h)&&r.length>0?r+"\n":n,p=y(h)&&l.length>0?"\n"+l:i;if(s){var g=e.value[e.selectionStart-1];0===e.selectionStart||null==g||g.match(/\s/)||(d=" "+d)}h=function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(e.selectionStart===e.selectionEnd)e.selectionStart=b(e.value,e.selectionStart),e.selectionEnd=_(e.value,e.selectionEnd,i);else{var r=e.selectionStart-t.length,l=e.selectionEnd+n.length,o=e.value.slice(r,e.selectionStart)===t,s=e.value.slice(e.selectionEnd,l)===n;o&&s&&(e.selectionStart=r,e.selectionEnd=l)}return e.value.slice(e.selectionStart,e.selectionEnd)}(e,d,p,t.multiline);var m=e.selectionStart,v=e.selectionEnd,x=o.length>0&&p.indexOf(o)>-1&&h.length>0;if(c){var S=E(e);d=S.newlinesToAppend+n,p+=S.newlinesToPrepend}if(h.startsWith(d)&&h.endsWith(p)){var k=h.slice(d.length,h.length-p.length);if(u===f){var w=u-d.length;w=Math.max(w,m),m=v=w=Math.min(w,m+k.length)}else v=m+k.length;return{text:k,selectionStart:m,selectionEnd:v}}if(x)return a.length>0&&h.match(a)?{text:d+(p=p.replace(o,h)),selectionStart:m=v=m+d.length,selectionEnd:v}:{text:d+h+p,selectionStart:m=m+d.length+h.length+p.indexOf(o),selectionEnd:v=m+o.length};var T=d+h+p;m=u+d.length,v=f+d.length;var O=h.match(/^\s*|\s*$/g);if(t.trimFirst&&O){var I=O[0]||"",K=O[1]||"";T=I+d+h.trim()+p+K,m+=I.length,v-=K.length}return{text:T,selectionStart:m,selectionEnd:v}},k=function(e,t){var n,i=e.value.slice(e.selectionStart,e.selectionEnd);n=t.orderedList?function(e){var t,n,i,r,l=/^\d+\.\s+/,o=e.selectionStart===e.selectionEnd,s=e.value.slice(e.selectionStart,e.selectionEnd),a=s,c=s.split("\n");if(o){var u=e.value.slice(0,e.selectionStart).split(/\n/);i=e.selectionStart-u[u.length-1].length,r=_(e.value,e.selectionStart,!0),a=e.value.slice(i,r)}var f=a.split("\n");if(f.every((function(e){return l.test(e)}))){if(s=(c=f.map((function(e){return e.replace(l,"")}))).join("\n"),o&&i&&r){var h=f[0].length-c[0].length;n=t=e.selectionStart-h,e.selectionStart=i,e.selectionEnd=r}}else{s=(c=function(){var e,t,n,i=[];for(n=e=0,t=c.length;e"),e},t}(u.a); /*! * Includes modified code from GitHub Markdown Toolbar Element * https://github.com/github/markdown-toolbar-element/ @@ -9,5 +9,5 @@ String.prototype.startsWith||Object.defineProperty(String.prototype,"startsWith" * Released under the MIT license * https://github.com/github/markdown-toolbar-element/blob/master/LICENSE */ -app.initializers.add("flarum-markdown",(function(e){var t=1;Object(i.extend)(l.a.prototype,"init",(function(){this.textareaId="textarea"+t++})),Object(i.extend)(l.a.prototype,"view",(function(e){e.children[0].attrs.id=this.textareaId})),Object(i.extend)(l.a.prototype,"configTextarea",(function(e,t,n,i){if(!n){var r=new s.a(t);r.disableInline(),r.ignoreTab(),i.onunload=function(){r.destroy()}}})),Object(i.extend)(l.a.prototype,"toolbarItems",(function(t){var n=function(t){return e.translator.trans("flarum-markdown.forum.composer."+t+"_tooltip")};t.add("markdown",m(h,{for:this.textareaId},m(w,{title:n("header"),icon:"fas fa-heading",style:{prefix:"### "}}),m(w,{title:n("bold"),icon:"fas fa-bold",style:{prefix:"**",suffix:"**",trimFirst:!0},hotkey:"b"}),m(w,{title:n("italic"),icon:"fas fa-italic",style:{prefix:"_",suffix:"_",trimFirst:!0},hotkey:"i"}),m(w,{title:n("quote"),icon:"fas fa-quote-left",style:{prefix:"> ",multiline:!0,surroundWithNewlines:!0}}),m(w,{title:n("code"),icon:"fas fa-code",style:{prefix:"`",suffix:"`",blockPrefix:"```",blockSuffix:"```"}}),m(w,{title:n("link"),icon:"fas fa-link",style:{prefix:"[",suffix:"](url)",replaceNext:"url",scanFor:"https?://"}}),m(w,{title:n("image"),icon:"fas fa-image",style:{prefix:"![",suffix:"](src)",replaceNext:"src",scanFor:"https?://"}}),m(w,{title:n("unordered_list"),icon:"fas fa-list-ul",style:{prefix:"- ",multiline:!0,surroundWithNewlines:!0}}),m(w,{title:n("ordered_list"),icon:"fas fa-list-ol",style:{prefix:"1. ",multiline:!0,orderedList:!0}})),100)}))}))}]); +app.initializers.add("flarum-markdown",(function(e){var t=1;Object(i.extend)(l.a.prototype,"init",(function(){this.textareaId="textarea"+t++})),Object(i.extend)(l.a.prototype,"view",(function(e){e.children[0].attrs.id=this.textareaId})),Object(i.extend)(l.a.prototype,"configTextarea",(function(e,t,n,i){if(!n){var r=new s.a(t);r.disableInline(),r.ignoreTab(),i.onunload=function(){r.destroy()}}})),Object(i.extend)(l.a.prototype,"toolbarItems",(function(t){var n=function(t){return e.translator.trans("flarum-markdown.forum.composer."+t+"_tooltip")};t.add("markdown",m(h,{for:this.textareaId},m(T,{title:n("header"),icon:"fas fa-heading",style:{prefix:"### "}}),m(T,{title:n("bold"),icon:"fas fa-bold",style:{prefix:"**",suffix:"**",trimFirst:!0},hotkey:"b"}),m(T,{title:n("italic"),icon:"fas fa-italic",style:{prefix:"_",suffix:"_",trimFirst:!0},hotkey:"i"}),m(T,{title:n("quote"),icon:"fas fa-quote-left",style:{prefix:"> ",multiline:!0,surroundWithNewlines:!0}}),m(T,{title:n("code"),icon:"fas fa-code",style:{prefix:"`",suffix:"`",blockPrefix:"```",blockSuffix:"```"}}),m(T,{title:n("link"),icon:"fas fa-link",style:{prefix:"[",suffix:"](url)",replaceNext:"url",scanFor:"https?://"}}),m(T,{title:n("image"),icon:"fas fa-image",style:{prefix:"![",suffix:"](src)",replaceNext:"src",scanFor:"https?://"}}),m(T,{title:n("unordered_list"),icon:"fas fa-list-ul",style:{prefix:"- ",multiline:!0,surroundWithNewlines:!0}}),m(T,{title:n("ordered_list"),icon:"fas fa-list-ol",style:{prefix:"1. ",multiline:!0,orderedList:!0}})),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 index 08a58fff9..a4c8027c9 100644 --- a/extensions/markdown/js/dist/forum.js.map +++ b/extensions/markdown/js/dist/forum.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://@flarum/markdown/webpack/bootstrap","webpack://@flarum/markdown/external \"flarum.core.compat['extend']\"","webpack://@flarum/markdown/external \"flarum.core.compat['components/TextEditor']\"","webpack://@flarum/markdown/external \"flarum.core.compat['Component']\"","webpack://@flarum/markdown/./node_modules/mdarea/mdarea.min.js","webpack://@flarum/markdown/external \"flarum.core.compat['helpers/icon']\"","webpack://@flarum/markdown/./src/forum/polyfills.js","webpack://@flarum/markdown/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@flarum/markdown/./src/forum/components/MarkdownToolbar.js","webpack://@flarum/markdown/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@flarum/markdown/./src/forum/util/insertText.js","webpack://@flarum/markdown/./src/forum/util/styles.js","webpack://@flarum/markdown/./src/forum/util/apply.js","webpack://@flarum/markdown/./src/forum/components/MarkdownButton.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","self","a","test","navigator","platform","f","_","g","y","b","v","K","e","this","_useTab","_useInline","_indent","_reOutdent","_reKey","_handleKey","setElement","RegExp","x","selectionStart","selectionEnd","arguments","length","window","InputEvent","dispatchEvent","constructor","getElement","_elem","removeEventListener","addEventListener","getValue","setValue","getIndent","setIndent","Array","join","replace","isTabUsed","useTab","ignoreTab","isInlineEnabled","enableInline","disableInline","destroy","defaultPrevented","target","substring","ctrlKey","altKey","metaKey","shiftKey","lastIndexOf","h","u","charAt","line","offset","prefix","exec","parseInt","preventDefault","String","startsWith","search","pos","endsWith","this_len","undefined","_inheritsLoose","subClass","superClass","__proto__","modifierKey","userAgent","match","MarkdownToolbar","config","isInitialized","document","getElementById","props","for","shortcut","view","id","data-for","style","display","children","event","button","element","querySelector","click","Component","_extends","assign","source","apply","canInsertText","isMultipleLines","string","trim","split","repeat","wordSelectionEnd","text","multiline","index","breakpoint","newlinesToSurroundSelectedText","textarea","newlinesToAppend","newlinesToPrepend","beforeSelection","slice","afterSelection","breaksBefore","breaksAfter","newlinesBeforeSelection","newlinesAfterSelection","blockStyle","arg","suffix","blockPrefix","blockSuffix","replaceNext","prefixSpace","scanFor","surroundWithNewlines","originalSelectionStart","originalSelectionEnd","selectedText","prefixToUse","suffixToUse","wordSelectionStart","expandedSelectionStart","expandedSelectionEnd","beginsWithPrefix","endsWithSuffix","expandSelectedText","hasReplaceNext","indexOf","ref","replacementText","position","Math","max","min","whitespaceEdges","trimFirst","leadingWhitespace","trailingWhitespace","styleSelectedText","styleArgs","result","orderedList","startOfLine","endOfLine","orderedListRegex","noInitialSelection","textToUnstyle","lines","linesBefore","linesToUnstyle","every","map","lengthDiff","len","results","push","multilineStyle","before","after","contentEditable","execCommand","error","createEvent","initEvent","setSelectionRange","insertText","MarkdownButton","$","tooltip","className","title","data-hotkey","hotkey","onclick","onkeydown","keydown","icon","stylesToApply","toolbar","parentElement","field","dataset","focus","app","initializers","add","extend","TextEditor","textareaId","vdom","attrs","context","editor","MarkdownArea","onunload","items","translator","trans"],"mappings":"2BACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,G,gBClFrDhC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAe,Q,cCA5CnC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,0B,cCApCnC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAkB,W,gBCA/C,UAAiJ,oBAAoBC,MAAKA,KAArH,EAAO,QAAI,0BAAF,EAAsH,WAAW,IAAIC,EAAE,wBAAwBC,KAAKC,UAAUC,UAAU,UAAU,UAAU9B,EAAE,qBAAqB+B,EAAE,OAAOC,EAAE,0EAA0EpC,EAAE,2CAA2CqC,EAAE,iBAAiBC,EAAE,UAAUb,EAAE,qBAAqB1B,EAAE,wEAAwEE,EAAE,WAAWsC,EAAE,CAAC,IAAI,QAAQ,IAAI,SAASC,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,SAASC,EAAEA,GAAGC,KAAKC,SAAQ,EAAGD,KAAKE,YAAW,EAAGF,KAAKG,QAAQ,OAAOH,KAAKI,WAAW,YAAYJ,KAAKK,OAAOnC,GAAE,GAAG,GAAI8B,KAAKM,WAAWN,KAAKM,WAAW9B,KAAKwB,MAAMA,KAAKO,WAAWR,GAAG,SAAS7B,EAAE6B,EAAE7B,GAAG,OAAO,IAAIsC,OAAO,aAAaT,EAAE,OAAO,IAAI,QAAQ7B,EAAE,mBAAmB,IAAI,OAAO,SAASuC,EAAEV,EAAE7B,EAAEO,EAAEzB,GAAG,GAAG+C,EAAE9B,MAAMC,EAAE6B,EAAEW,eAAejC,EAAEsB,EAAEY,aAAa,EAAEC,UAAUC,OAAO7D,EAAEyB,EAAE,eAAeqC,OAAO,IAAI,IAAI/B,EAAE,IAAIgC,WAAW,SAAShB,EAAEiB,cAAcjC,GAAG,MAAM/B,KAAK,OAAO+C,EAAEnB,UAAU,CAACqC,YAAYlB,EAAEmB,WAAW,WAAW,OAAOlB,KAAKmB,OAAOZ,WAAW,SAASR,GAAGC,KAAKmB,OAAOnB,KAAKmB,MAAMC,oBAAoB,UAAUpB,KAAKM,aAAaN,KAAKmB,MAAMpB,GAAGsB,iBAAiB,UAAUrB,KAAKM,aAAagB,SAAS,WAAW,OAAOtB,KAAKmB,MAAMlD,OAAOsD,SAAS,SAASxB,GAAGC,KAAKmB,MAAMlD,MAAM8B,GAAGyB,UAAU,WAAW,OAAOxB,KAAKG,SAASsB,UAAU,SAAS1B,GAAGC,KAAKG,QAAQ,iBAAiBJ,EAAE,IAAI2B,MAAM3B,EAAE,GAAG4B,KAAK,MAAM5B,EAAE,IAAI6B,QAAQ,UAAU,KAAK5B,KAAKI,WAAW,IAAII,OAAO,IAAIR,KAAKG,QAAQ,OAAO0B,UAAU,WAAW,OAAO7B,KAAKC,SAAS6B,OAAO,WAAW9B,KAAKC,SAAQ,EAAGD,KAAKK,OAAOnC,GAAE,EAAG8B,KAAKE,aAAa6B,UAAU,WAAW/B,KAAKC,SAAQ,EAAGD,KAAKK,OAAOnC,GAAE,EAAG8B,KAAKE,aAAa8B,gBAAgB,WAAW,OAAOhC,KAAKE,YAAY+B,aAAa,WAAWjC,KAAKE,YAAW,EAAGF,KAAKK,OAAOnC,EAAE8B,KAAKC,SAAQ,IAAKiC,cAAc,WAAWlC,KAAKE,YAAW,EAAGF,KAAKK,OAAOnC,EAAE8B,KAAKC,SAAQ,IAAKkC,QAAQ,WAAWnC,KAAKmB,MAAMC,oBAAoB,UAAUpB,KAAKM,YAAYN,KAAKmB,MAAMnB,KAAKK,OAAOL,KAAKM,WAAWN,KAAKG,QAAQH,KAAKI,WAAW,MAAME,WAAW,SAASP,GAAG,IAAIA,EAAEqC,kBAAkBpC,KAAKK,OAAOhB,KAAKU,EAAExB,KAAK,CAAC,IAAIL,EAAE6B,EAAEsC,OAAOpE,MAAMqE,UAAU,EAAEvC,EAAEsC,OAAO3B,gBAAgBjC,EAAEsB,EAAEsC,OAAOpE,MAAMqE,UAAUvC,EAAEsC,OAAO3B,eAAeX,EAAEsC,OAAO1B,cAAc3D,EAAE+C,EAAEsC,OAAOpE,MAAMqE,UAAUvC,EAAEsC,OAAO1B,cAAc,GAAG,UAAUZ,EAAExB,KAAKwB,EAAEwC,SAASxC,EAAEyC,QAAQzC,EAAE0C,QAAQ,GAAG,QAAQ1C,EAAExB,MAAMwB,EAAE2C,UAAU,MAAM3C,EAAExB,KAAKwB,EAAEX,IAAI,SAASW,EAAE7B,EAAEO,EAAEzB,EAAE+B,GAAG,IAAIjB,EAAEI,EAAE2C,OAAO5D,EAAEiB,EAAEyE,YAAY,MAAM,EAAE1F,EAAEa,IAAIW,EAAEP,EAAEoE,UAAUrF,GAAGwB,EAAEP,EAAEA,EAAEoE,UAAU,EAAErF,KAAKA,EAAEa,IAAIW,KAAKX,GAAGiB,EAAE8B,QAAQpC,EAAEA,EAAEA,EAAEmD,QAAQtE,EAAEyB,GAAGb,GAAGa,EAAE0B,EAAEV,EAAE7B,EAAEO,EAAEzB,EAAEc,EAAEW,EAAExB,EAAEwB,EAAEoC,OAAO/C,GAAlL,CAAsLkC,KAAKmB,MAAMjD,EAAEO,EAAEzB,EAAEgD,KAAKG,cAAc,GAAG,QAAQJ,EAAExB,KAAKwB,EAAE2C,UAAU,MAAM3C,EAAExB,KAAKwB,EAAEX,IAAI,SAASW,EAAE7B,EAAEO,EAAEzB,EAAE+B,EAAEjB,GAAG,IAAIb,EAAEiB,EAAE2C,OAAO+B,EAAE1E,EAAEyE,YAAY,MAAM,EAAEC,EAAE3F,IAAIwB,EAAEP,EAAEoE,UAAUM,GAAGnE,EAAEP,EAAEA,EAAEoE,UAAU,EAAEM,GAAGnE,EAAE6D,UAAU,EAAEvD,EAAE8B,UAAU9B,IAAI9B,GAAG8B,EAAE8B,SAA2BJ,EAAEV,EAAE7B,GAAtBO,EAAEA,EAAEmD,QAAQ9D,EAAE,KAAYd,EAAEC,EAAE2F,EAAEnE,EAAEoC,QAAvL,CAAgMb,KAAKmB,MAAMjD,EAAEO,EAAEzB,EAAEgD,KAAKG,QAAQH,KAAKI,gBAAgB,CAAC,IAAI3C,EAAE4B,KAAKU,EAAExB,KAAK,OAAOQ,EAAEiB,KAAKmB,MAAMrD,EAAEI,EAAEjB,EAAEwB,EAAEmE,EAAE5F,EAAE6F,EAAE9C,EAAExB,IAAItB,GAAG4F,KAAKhD,GAAG+C,EAAEE,OAAO,KAAKD,GAAG5F,IAAI,MAAM4F,GAAGA,KAAK/C,GAAGW,EAAE1B,EAAEjB,EAAE+E,EAAED,EAAE9E,EAAE+C,OAAO,IAAI5D,GAAG4F,KAAKjD,GAAGA,EAAEiD,GAAGxD,KAAKvB,GAAG2C,EAAE1B,EAAEjB,EAAE+E,EAAE,aAAaA,EAAEA,EAAEA,GAAG,OAAOD,EAAEE,OAAO,GAAG,KAAK,IAAIF,EAAE9E,EAAE+C,OAAO,EAAE/C,EAAE+C,OAAO,GAAGJ,EAAE1B,EAAEjB,GAAGgC,EAAE+C,IAAIA,GAAG5F,GAAG4C,EAAEgD,IAAIA,GAAGD,EAAE9E,EAAE+C,OAAO,EAAE/C,EAAE+C,OAAO,EAAE5D,EAAE4D,QAAQJ,EAAE1B,EAAEjB,GAAG0B,EAAEH,KAAKwD,GAAGA,EAAEA,EAAE,IAAID,EAAE9E,EAAE+C,OAAO,QAAQ,SAASd,EAAE7B,EAAEO,EAAEzB,EAAE+B,GAAG,IAA6G9B,EAAE2F,EAAEC,EAAEzD,EAAgPI,EAAMlC,EAArWQ,EAAEW,EAAE,MAAUmE,GAAJ3F,EAAEiB,GAAMyE,YAAY,MAAM,EAA+B,CAACI,KAA9BF,EAAE5F,EAAEqF,UAAUM,GAAuBI,OAAOJ,EAAEK,QAA7B7D,EAAEK,EAAEyD,KAAKL,KAA8BzD,EAAE,MAAkBX,GAAGX,EAAEmF,OAAOlE,GAAGjB,EAAEmF,SAASnF,EAAEiF,MAAMhE,IAAIzB,EAAEQ,EAAEmF,OAAO5F,EAAEgC,KAAK/B,IAAIY,GAAG,KAAKJ,EAAEmF,OAAOrB,QAAQ9C,GAAE,SAASiB,EAAE7B,GAAG,OAAOiF,SAASjF,GAAG,EAAE,OAAMA,GAAG,MAAiBsB,EAAET,EAAXjB,EAAEmF,OAAarB,QAAQpC,EAAEG,EAAED,EAAE,MAAMxB,EAAEA,EAAEoE,UAAU,EAAExE,EAAEkF,QAAQlF,EAAEmF,OAAOrB,QAAQxE,EAAE,IAAIc,GAAG,KAAmBuC,EAAEV,EAAE7B,EAAElB,EAAEkB,EAAE2C,QAAzY,CAAkZb,KAAKmB,MAAMjD,EAAEO,EAAEzB,EAAE+C,EAAE2C,UAAU3C,EAAEqD,iBAAiB,IAAIrE,EAAEjB,EAAEb,EAAE2F,EAAEC,IAAI9C,IAAjsH,gC,cCAhEhD,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,iB;;ACC/BmE,OAAOzE,UAAU0E,YACpB5F,OAAOC,eAAe0F,OAAOzE,UAAW,aAAc,CACpDX,MAAO,SAASsF,EAAQC,GAEtB,OADAA,GAAOA,GAAOA,EAAM,EAAI,GAAKA,EACtBxD,KAAKsC,UAAUkB,EAAKA,EAAMD,EAAO1C,UAAY0C,KAKrDF,OAAOzE,UAAU6E,WACpBJ,OAAOzE,UAAU6E,SAAW,SAASF,EAAQG,GAI3C,YAHiBC,IAAbD,GAA0BA,EAAW1D,KAAKa,UAC5C6C,EAAW1D,KAAKa,QAEXb,KAAKsC,UAAUoB,EAAWH,EAAO1C,OAAQ6C,KAAcH,K,oFCfnD,SAASK,EAAeC,EAAUC,GAC/CD,EAASjF,UAAYlB,OAAOY,OAAOwF,EAAWlF,WAC9CiF,EAASjF,UAAUqC,YAAc4C,EACjCA,EAASE,UAAYD,E,oBCDjBE,EAAc1E,UAAU2E,UAAUC,MAAM,aAAe,OAAS,UAEjDC,E,gGACnBC,OAAA,SAAOC,GACDA,GAEUC,SAASC,eAAevE,KAAKwE,MAAMC,KAE3CpD,iBAAiB,UAAWrB,KAAK0E,SAASlG,KAAKwB,Q,EAGvD2E,KAAA,WACE,OAAO,SAAKC,GAAG,kBAAkBC,WAAU7E,KAAKwE,MAAMC,IAAKK,MAAO,CAAEC,QAAS,iBAC1E/E,KAAKwE,MAAMQ,W,EAIhBN,SAAA,SAASO,GACP,GAAKA,EAAMxC,SAA2B,SAAhBuB,GAA4BiB,EAAM1C,SAA2B,YAAhByB,EAA4B,CAC7F,IAAMkB,EAASlF,KAAKmF,QAAQC,cAAb,iBAA4CH,EAAM1G,IAAlD,MAEX2G,IACFA,EAAOG,QACPJ,EAAM7B,oB,GArB+BkC,K,gBCJ9B,SAASC,IAetB,OAdAA,EAAW7H,OAAO8H,QAAU,SAAUnD,GACpC,IAAK,IAAIrF,EAAI,EAAGA,EAAI4D,UAAUC,OAAQ7D,IAAK,CACzC,IAAIyI,EAAS7E,UAAU5D,GAEvB,IAAK,IAAIuB,KAAOkH,EACV/H,OAAOkB,UAAUC,eAAe1B,KAAKsI,EAAQlH,KAC/C8D,EAAO9D,GAAOkH,EAAOlH,IAK3B,OAAO8D,IAGOqD,MAAM1F,KAAMY,WCVvB,IAAI+E,EAAgB,KCApB,SAASC,EAAgBC,GAC9B,OAAOA,EAAOC,OAAOC,MAAM,MAAMlF,OAAS,EAGrC,SAASmF,EAAOH,EAAQpH,GAC7B,OAAOiD,MAAMjD,EAAI,GAAGkD,KAAKkE,GAapB,SAASI,EAAiBC,EAAMlJ,EAAGmJ,GAIxC,IAHA,IAAIC,EAAQpJ,EACNqJ,EAAaF,EAAY,KAAO,KAE/BD,EAAKE,KAAWF,EAAKE,GAAOlC,MAAMmC,IACvCD,IAGF,OAAOA,EAwBF,SAASE,EAA+BC,GAC7C,IAMIC,EACAC,EAPEC,EAAkBH,EAAStI,MAAM0I,MAAM,EAAGJ,EAAS7F,gBACnDkG,EAAiBL,EAAStI,MAAM0I,MAAMJ,EAAS5F,cAC/CkG,EAAeH,EAAgBxC,MAAM,QACrC4C,EAAcF,EAAe1C,MAAM,QACnC6C,EAA0BF,EAAeA,EAAa,GAAGhG,OAAS,EAClEmG,EAAyBF,EAAcA,EAAY,GAAGjG,OAAS,EAoBrE,OAhBI6F,EAAgBxC,MAAM,OAAS6C,EAA0B,IAC3DP,EAAmBR,EAAO,KAAM,EAAIe,IAGlCH,EAAe1C,MAAM,OAAS8C,EAAyB,IACzDP,EAAoBT,EAAO,KAAM,EAAIgB,IAGf,MAApBR,IACFA,EAAmB,IAGI,MAArBC,IACFA,EAAoB,IAGf,CACLD,mBACAC,qBAIG,IAAMQ,EAAa,SAACV,EAAUW,GACnC,IAEQjE,EAAsGiE,EAAtGjE,OAAQkE,EAA8FD,EAA9FC,OAAQC,EAAsFF,EAAtFE,YAAaC,EAAyEH,EAAzEG,YAAaC,EAA4DJ,EAA5DI,YAAaC,EAA+CL,EAA/CK,YAAaC,EAAkCN,EAAlCM,QAASC,EAAyBP,EAAzBO,qBAC/EC,EAAyBnB,EAAS7F,eAClCiH,EAAuBpB,EAAS5F,aAClCiH,EAAerB,EAAStI,MAAM0I,MAAMJ,EAAS7F,eAAgB6F,EAAS5F,cACtEkH,EAAcjC,EAAgBgC,IAAiBR,EAAYvG,OAAS,EAAOuG,EAA7D,KAA+EnE,EAC7F6E,EAAclC,EAAgBgC,IAAiBP,EAAYxG,OAAS,EAAtD,KAA+DwG,EAAgBF,EAEjG,GAAII,EAAa,CACf,IAAMb,EAAkBH,EAAStI,MAAMsI,EAAS7F,eAAiB,GACjC,IAA5B6F,EAAS7F,gBAA2C,MAAnBgG,GAA4BA,EAAgBxC,MAAM,QACrF2D,EAAc,IAAIA,GAItBD,EAtEK,SAA4BrB,EAAUsB,EAAaC,GACxD,IAAI3B,EAAYvF,UAAUC,OAAS,QAAsB8C,IAAjB/C,UAAU,IAAmBA,UAAU,GAE/E,GAAI2F,EAAS7F,iBAAmB6F,EAAS5F,aACvC4F,EAAS7F,eAzBN,SAA4BwF,EAAMlJ,GAGvC,IAFA,IAAIoJ,EAAQpJ,EAELkJ,EAAKE,IAA6B,MAAnBF,EAAKE,EAAQ,KAAeF,EAAKE,EAAQ,GAAGlC,MAAM,OACtEkC,IAGF,OAAOA,EAkBqB2B,CAAmBxB,EAAStI,MAAOsI,EAAS7F,gBACtE6F,EAAS5F,aAAesF,EAAiBM,EAAStI,MAAOsI,EAAS5F,aAAcwF,OAC3E,CACL,IAAM6B,EAAyBzB,EAAS7F,eAAiBmH,EAAYhH,OAC/DoH,EAAuB1B,EAAS5F,aAAemH,EAAYjH,OAC3DqH,EAAmB3B,EAAStI,MAAM0I,MAAMqB,EAAwBzB,EAAS7F,kBAAoBmH,EAC7FM,EAAiB5B,EAAStI,MAAM0I,MAAMJ,EAAS5F,aAAcsH,KAA0BH,EAEzFI,GAAoBC,IACtB5B,EAAS7F,eAAiBsH,EAC1BzB,EAAS5F,aAAesH,GAI5B,OAAO1B,EAAStI,MAAM0I,MAAMJ,EAAS7F,eAAgB6F,EAAS5F,cAoD/CyH,CAAmB7B,EAAUsB,EAAaC,EAAaZ,EAAIf,WAC1E,IAAIzF,EAAiB6F,EAAS7F,eAC1BC,EAAe4F,EAAS5F,aACtB0H,EAAiBf,EAAYzG,OAAS,GAAKiH,EAAYQ,QAAQhB,IAAgB,GAAKM,EAAa/G,OAAS,EAEhH,GAAI4G,EAAsB,CACxB,IAAMc,EAAMjC,EAA+BC,GAG3CsB,EAFmBU,EAAI/B,iBAEUvD,EACjC6E,GAFoBS,EAAI9B,kBAK1B,GAAImB,EAAatE,WAAWuE,IAAgBD,EAAanE,SAASqE,GAAc,CAC9E,IAAMU,EAAkBZ,EAAajB,MAAMkB,EAAYhH,OAAQ+G,EAAa/G,OAASiH,EAAYjH,QACjG,GAAI6G,IAA2BC,EAAsB,CACnD,IAAIc,EAAWf,EAAyBG,EAAYhH,OACpD4H,EAAWC,KAAKC,IAAIF,EAAU/H,GAE9BA,EAAiBC,EADjB8H,EAAWC,KAAKE,IAAIH,EAAU/H,EAAiB8H,EAAgB3H,aAI/DF,EAAeD,EAAiB8H,EAAgB3H,OAElD,MAAO,CAAEqF,KAAMsC,EAAiB9H,iBAAgBC,gBAE7C,GAAK0H,EAcL,OAAIb,EAAQ3G,OAAS,GAAK+G,EAAa1D,MAAMsD,GAIzC,CAAEtB,KAFe2B,GADxBC,EAAcA,EAAYlG,QAAQ0F,EAAaM,IAGflH,eADhCA,EAAiBC,EAAeD,EAAiBmH,EAAYhH,OACbF,gBAMzC,CAAEuF,KAHe2B,EAAcD,EAAeE,EAGrBpH,eAFhCA,EAAiBA,EAAiBmH,EAAYhH,OAAS+G,EAAa/G,OAASiH,EAAYQ,QAAQhB,GAEjD3G,aADhDA,EAAeD,EAAiB4G,EAAYzG,QAtB5C,IAAI2H,EAAkBX,EAAcD,EAAeE,EACnDpH,EAAiBgH,EAAyBG,EAAYhH,OACtDF,EAAegH,EAAuBE,EAAYhH,OAClD,IAAMgI,EAAkBjB,EAAa1D,MAAM,cAC3C,GAAIgD,EAAI4B,WAAaD,EAAiB,CACpC,IAAME,EAAoBF,EAAgB,IAAM,GAC1CG,EAAqBH,EAAgB,IAAM,GACjDL,EAAkBO,EAAoBlB,EAAcD,EAAa9B,OAASgC,EAAckB,EACxFtI,GAAkBqI,EAAkBlI,OACpCF,GAAgBqI,EAAmBnI,OAErC,MAAO,CAAEqF,KAAMsC,EAAiB9H,iBAAgBC,iBCtIvCsI,EAAoB,SAAC1C,EAAU2C,GAC1C,IACIC,EADEjD,EAAOK,EAAStI,MAAM0I,MAAMJ,EAAS7F,eAAgB6F,EAAS5F,cAGlEwI,EADED,EAAUE,YD0KW,SAAC7C,GAC1B,IAEI5F,EACAD,EAIA2I,EAAaC,EAPXC,EAAmB,YACnBC,EAAqBjD,EAAS7F,iBAAmB6F,EAAS5F,aAG5DuF,EAAOK,EAAStI,MAAM0I,MAAMJ,EAAS7F,eAAgB6F,EAAS5F,cAC9D8I,EAAgBvD,EAChBwD,EAAQxD,EAAKH,MAAM,MAEvB,GAAIyD,EAAoB,CACtB,IAAMG,EAAcpD,EAAStI,MAAM0I,MAAM,EAAGJ,EAAS7F,gBAAgBqF,MAAM,MAC3EsD,EAAc9C,EAAS7F,eAAiBiJ,EAAYA,EAAY9I,OAAS,GAAGA,OAC5EyI,EAAYrD,EAAiBM,EAAStI,MAAOsI,EAAS7F,gBAAgB,GACtE+I,EAAgBlD,EAAStI,MAAM0I,MAAM0C,EAAaC,GAEpD,IAAMM,EAAiBH,EAAc1D,MAAM,MAE3C,GADoB6D,EAAeC,OAAM,SAAA9G,GAAI,OAAIwG,EAAiBlK,KAAK0D,OAIrE,GADAmD,GADAwD,EAAQE,EAAeE,KAAI,SAAA/G,GAAI,OAAIA,EAAKnB,QAAQ2H,EAAkB,QACrD5H,KAAK,MACd6H,GAAsBH,GAAeC,EAAW,CAClD,IAAMS,EAAaH,EAAe,GAAG/I,OAAS6I,EAAM,GAAG7I,OACvDH,EAAiBC,EAAe4F,EAAS7F,eAAiBqJ,EAC1DxD,EAAS7F,eAAiB2I,EAC1B9C,EAAS5F,aAAe2I,OAGvB,CAYHpD,GAXAwD,EAAS,WACP,IAAI1M,EACAgN,EACA5D,EACE6D,EAAU,GAChB,IAAK7D,EAAQpJ,EAAI,EAAGgN,EAAMN,EAAM7I,OAAQ7D,EAAIgN,EAAK5D,IAAUpJ,EAAG,CAC5D,IAAM+F,EAAO2G,EAAMtD,GACnB6D,EAAQC,KAAQ9D,EAAQ,EAAxB,KAA8BrD,GAEhC,OAAOkH,EATA,IAWItI,KAAK,MAZf,MAa6C2E,EAA+BC,GAAvEC,EAbL,EAaKA,iBAAkBC,EAbvB,EAauBA,kBAE1B9F,GADAD,EAAiB6F,EAAS7F,eAAiB8F,EAAiB3F,QAC5BqF,EAAKrF,OACjC2I,IACF9I,EAAiBC,GACnBuF,EAAOM,EAAmBN,EAAOO,EAEnC,MAAO,CAAEP,OAAMxF,iBAAgBC,gBCxNpByI,CAAY7C,GAEd2C,EAAU/C,WAAaP,EAAgBM,GDgJpB,SAACK,EAAUW,GAAQ,IACvCjE,EAAyCiE,EAAzCjE,OAAQkE,EAAiCD,EAAjCC,OAAQM,EAAyBP,EAAzBO,qBACpBvB,EAAOK,EAAStI,MAAM0I,MAAMJ,EAAS7F,eAAgB6F,EAAS5F,cAC9DD,EAAiB6F,EAAS7F,eAC1BC,EAAe4F,EAAS5F,aACtB+I,EAAQxD,EAAKH,MAAM,MAEzB,GADkB2D,EAAMG,OAAM,SAAA9G,GAAI,OAAIA,EAAKO,WAAWL,IAAWF,EAAKU,SAAS0D,MAG7ExG,EAAeD,GADfwF,EAAOwD,EAAMI,KAAI,SAAA/G,GAAI,OAAIA,EAAK4D,MAAM1D,EAAOpC,OAAQkC,EAAKlC,OAASsG,EAAOtG,WAASc,KAAK,OACjDd,YAIrC,GADAqF,EAAOwD,EAAMI,KAAI,SAAA/G,GAAI,OAAIE,EAASF,EAAOoE,KAAQxF,KAAK,MAClD8F,EAAsB,OACwBnB,EAA+BC,GAAvEC,EADgB,EAChBA,iBAAkBC,EADF,EACEA,kBAE1B9F,GADAD,GAAkB8F,EAAiB3F,QACHqF,EAAKrF,OACrCqF,EAAOM,EAAmBN,EAAOO,EAGrC,MAAO,CAAEP,OAAMxF,iBAAgBC,gBCnKpBwJ,CAAe5D,EAAU2C,GAGzBjC,EAAWV,EAAU2C,GFXnB,SAAC3C,EAAD,GAAsD,IAAzCL,EAAyC,EAAzCA,KAAMxF,EAAmC,EAAnCA,eAAgBC,EAAmB,EAAnBA,aAC1C+G,EAAyBnB,EAAS7F,eAClC0J,EAAS7D,EAAStI,MAAM0I,MAAM,EAAGe,GACjC2C,EAAQ9D,EAAStI,MAAM0I,MAAMJ,EAAS5F,cAE5C,GAAsB,OAAlBgF,IAA4C,IAAlBA,EAAwB,CACpDY,EAAS+D,gBAAkB,OAC3B,IACE3E,EAAgBrB,SAASiG,YAAY,cAAc,EAAOrE,GAE5D,MAAOsE,GACL7E,GAAgB,EAElBY,EAAS+D,gBAAkB,QAK7B,GAHI3E,IAAkBY,EAAStI,MAAM0I,MAAM,EAAGJ,EAAS7F,gBAAgB+C,SAASyC,KAC9EP,GAAgB,IAEbA,EAAe,CAClB,IACErB,SAASiG,YAAY,oBAEvB,MAAOxK,IAGPwG,EAAStI,MAAQmM,EAASlE,EAAOmE,EACjC,IACE/F,SAASiG,YAAY,kBAEvB,MAAOxK,IAKP,IAAMkF,EAAQX,SAASmG,YAAY,SAEnCxF,EAAMyF,UAAU,SAAS,GAAM,GAE/BnE,EAASvF,cAAciE,GAEH,MAAlBvE,GAA0C,MAAhBC,EAC5B4F,EAASoE,kBAAkBjK,EAAgBC,GAG3C4F,EAASoE,kBAAkBjD,EAAwBnB,EAAS5F,cE9B9DiK,CAAWrE,EAAU4C,ICjBjBnF,EAAc1E,UAAU2E,UAAUC,MAAM,aAAe,IAAM,OAE9C2G,E,gGACnBzG,OAAA,SAAOC,GACDA,GAEJrE,KAAK8K,IAAIC,W,EAGXpG,KAAA,WACE,OAAO,YAAQqG,UAAU,mCAAmCC,MAAOjL,KAAKiL,QAASC,cAAalL,KAAKwE,MAAM2G,OAC1FC,QAASpL,KAAKqF,MAAM7G,KAAKwB,MAAOqL,UAAWrL,KAAKsL,QAAQ9M,KAAKwB,OACzEuL,IAAKvL,KAAKwE,MAAM+G,Q,EAIrBD,QAAA,SAAQrG,GACY,MAAdA,EAAM1G,KAA6B,UAAd0G,EAAM1G,MAC7B0G,EAAM7B,iBACNpD,KAAKqF,U,EAITA,MAAA,WACE,ODJYH,ECIClF,KAAKmF,QDJEqG,ECIOxL,KAAKwE,MAAMM,MDHlC2G,EAAUvG,EAAOwG,cAgBjB5G,EAAQ,EAAc,GAdX,CACf7B,OAAQ,GACRkE,OAAQ,GACRC,YAAa,GACbC,YAAa,GACblB,WAAW,EACXmB,YAAa,GACbC,aAAa,EACbC,QAAS,GACTC,sBAAsB,EACtB2B,aAAa,EACbN,WAAW,GAG6B0C,SAEpCG,EAAQrH,SAASC,eAAekH,EAAQG,QAAQnH,QAGpDkH,EAAME,QACN5C,EAAkB0C,EAAO7G,KAvBd,IAACI,EAAQsG,EAChBC,EAgBA3G,EAEA6G,G,ECZNV,MAAA,WACE,IAAIF,EAAU/K,KAAKwE,MAAMyG,MAIzB,OAFIjL,KAAKwE,MAAM2G,SAAQJ,GAAW,KAAK/G,EAAT,IAAwBhE,KAAKwE,MAAM2G,OAAnC,KAEvBJ,G,GA9BiCzF;;;;;;;;;ACW5CwG,IAAIC,aAAaC,IAAI,mBAAmB,SAASF,GAE/C,IAAI1F,EAAQ,EAEZ6F,iBAAOC,IAAWtN,UAAW,QAAQ,WACnCoB,KAAKmM,WAAa,WAAY/F,OAGhC6F,iBAAOC,IAAWtN,UAAW,QAAQ,SAASwN,GAC5CA,EAAKpH,SAAS,GAAGqH,MAAMzH,GAAK5E,KAAKmM,cAGnCF,iBAAOC,IAAWtN,UAAW,kBAAkB,SAASX,EAAOkH,EAASd,EAAeiI,GACrF,IAAIjI,EAAJ,CAEA,IAAMkI,EAAS,IAAIC,IAAarH,GAChCoH,EAAOrK,gBACPqK,EAAOxK,YAEPuK,EAAQG,SAAW,WACjBF,EAAOpK,eAIX8J,iBAAOC,IAAWtN,UAAW,gBAAgB,SAAS8N,GACpD,IAAM3B,EAAU,SAAAxN,GAAI,OAAIuO,EAAIa,WAAWC,MAAf,kCAAuDrP,EAAvD,aAExBmP,EAAMV,IAAI,WACR,EAAC,EAAD,CAAiBvH,IAAKzE,KAAKmM,YACzB,EAAC,EAAD,CAAgBlB,MAAOF,EAAQ,UAAWQ,KAAK,iBAAiBzG,MAAO,CAAE7B,OAAQ,UACjF,EAAC,EAAD,CAAgBgI,MAAOF,EAAQ,QAASQ,KAAK,cAAczG,MAAO,CAAE7B,OAAQ,KAAMkE,OAAQ,KAAM2B,WAAW,GAAQqC,OAAO,MAC1H,EAAC,EAAD,CAAgBF,MAAOF,EAAQ,UAAWQ,KAAK,gBAAgBzG,MAAO,CAAE7B,OAAQ,IAAKkE,OAAQ,IAAK2B,WAAW,GAAQqC,OAAO,MAC5H,EAAC,EAAD,CAAgBF,MAAOF,EAAQ,SAAUQ,KAAK,oBAAoBzG,MAAO,CAAE7B,OAAQ,KAAMkD,WAAW,EAAMsB,sBAAsB,KAChI,EAAC,EAAD,CAAgBwD,MAAOF,EAAQ,QAASQ,KAAK,cAAczG,MAAO,CAAE7B,OAAQ,IAAKkE,OAAQ,IAAKC,YAAa,MAAOC,YAAa,SAC/H,EAAC,EAAD,CAAgB4D,MAAOF,EAAQ,QAASQ,KAAK,cAAczG,MAAO,CAAE7B,OAAQ,IAAKkE,OAAQ,SAAUG,YAAa,MAAOE,QAAS,eAChI,EAAC,EAAD,CAAgByD,MAAOF,EAAQ,SAAUQ,KAAK,eAAezG,MAAO,CAAE7B,OAAQ,KAAMkE,OAAQ,SAAUG,YAAa,MAAOE,QAAS,eACnI,EAAC,EAAD,CAAgByD,MAAOF,EAAQ,kBAAmBQ,KAAK,iBAAiBzG,MAAO,CAAE7B,OAAQ,KAAMkD,WAAW,EAAMsB,sBAAsB,KACtI,EAAC,EAAD,CAAgBwD,MAAOF,EAAQ,gBAAiBQ,KAAK,iBAAiBzG,MAAO,CAAE7B,OAAQ,MAAOkD,WAAW,EAAMiD,aAAa,MAE7H","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 = 6);\n","module.exports = flarum.core.compat['extend'];","module.exports = flarum.core.compat['components/TextEditor'];","module.exports = flarum.core.compat['Component'];","!function(e,t){\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof module&&module.exports?module.exports=t():e.MarkdownArea=t()}(\"undefined\"!=typeof self?self:this,function(){var a=/mac|iphone|ipad|ipod/i.test(navigator.platform)?\"metaKey\":\"ctrlKey\",o=/^[\"'`*_[({<>})\\]]$/,f=/[*_]/,_=/^[ \\t]*(?:(?:[-+*]|\\d+\\.)[ \\t]+(?:\\[[ x]][ \\t]+)?|>[ \\t]*)*(?::[ \\t]*)?/,c=/(?:[-+*]|\\d+\\.)[ \\t]+(?:\\[[ x]][ \\t]+)?$/,g=/[-+*\\[\\]x\\d.]/g,y=/[^ \\t]/g,p=/(\\d+)\\.(?=[ \\t]+$)/,m=/(?:(?:^[ \\t]+)?(?:[-+*]|\\d+\\.|[>:])(?:[ \\t]+\\[[ x]])?[ \\t]*|^[ \\t]+)$/,d=/^(?!$)/gm,b={\"`\":/^``$/m,\"~\":/^~~$/m},v={\"[\":\"]\",\"(\":\")\",\"{\":\"}\",\"<\":\">\"},K={\"]\":\"[\",\")\":\"(\",\"}\":\"{\",\">\":\"<\"};function e(e){this._useTab=!0,this._useInline=!0,this._indent=\" \",this._reOutdent=/^[ ]{4}/gm,this._reKey=t(!0,!0),this._handleKey=this._handleKey.bind(this),this.setElement(e)}function t(e,t){return new RegExp(\"^(?:Enter\"+(e?\"|Tab\":\"\")+\"|[io\"+(t?\"\\\"'`*_([{<>}\\\\])\":\"\")+\"])$\")}function x(e,t,n,i){if(e.value=t,e.selectionStart=n,e.selectionEnd=3 this.length) {\n this_len = this.length;\n }\n return this.substring(this_len - search.length, this_len) === search;\n };\n}\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import Component from 'flarum/Component';\n\nconst modifierKey = navigator.userAgent.match(/Macintosh/) ? 'Meta' : 'Control';\n\nexport default class MarkdownToolbar extends Component {\n config(isInitialized) {\n if (isInitialized) return;\n\n const field = document.getElementById(this.props.for);\n\n field.addEventListener('keydown', this.shortcut.bind(this));\n }\n\n view() {\n return
\n {this.props.children}\n
;\n }\n\n shortcut(event) {\n if ((event.metaKey && modifierKey === 'Meta') || (event.ctrlKey && modifierKey === 'Control')) {\n const button = this.element.querySelector(`[data-hotkey=\"${event.key}\"]`);\n\n if (button) {\n button.click();\n event.preventDefault()\n }\n }\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}","/*\n * Original Copyright GitHub, Inc. Licensed under the MIT License.\n * See license text at https://github.com/github/markdown-toolbar-element/blob/master/LICENSE.\n */\n\nexport let canInsertText = null;\n\nexport default (textarea, { text, selectionStart, selectionEnd }) => {\n const originalSelectionStart = textarea.selectionStart;\n const before = textarea.value.slice(0, originalSelectionStart);\n const 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 }\n catch (error) {\n canInsertText = false;\n }\n textarea.contentEditable = 'false';\n }\n if (canInsertText && !textarea.value.slice(0, textarea.selectionStart).endsWith(text)) {\n canInsertText = false;\n }\n if (!canInsertText) {\n try {\n document.execCommand('ms-beginUndoUnit');\n }\n catch (e) {\n // Do nothing.\n }\n textarea.value = before + text + after;\n try {\n document.execCommand('ms-endUndoUnit');\n }\n catch (e) {\n // Do nothing.\n }\n\n // fire custom event, works on IE\n const event = document.createEvent('Event');\n\n event.initEvent('input', true, true);\n\n textarea.dispatchEvent(event);\n }\n if (selectionStart != null && selectionEnd != null) {\n textarea.setSelectionRange(selectionStart, selectionEnd);\n }\n else {\n textarea.setSelectionRange(originalSelectionStart, textarea.selectionEnd);\n }\n};\n","/*\n * Original Copyright GitHub, Inc. Licensed under the MIT License.\n * See license text at https://github.com/github/markdown-toolbar-element/blob/master/LICENSE.\n */\n\nexport function isMultipleLines(string) {\n return string.trim().split('\\n').length > 1;\n}\n\nexport function repeat(string, n) {\n return Array(n + 1).join(string);\n}\n\nexport function wordSelectionStart(text, i) {\n let index = i;\n\n while (text[index] && text[index - 1] != null && !text[index - 1].match(/\\s/)) {\n index--;\n }\n\n return index;\n}\n\nexport function wordSelectionEnd(text, i, multiline) {\n let index = i;\n const breakpoint = multiline ? /\\n/ : /\\s/;\n\n while (text[index] && !text[index].match(breakpoint)) {\n index++;\n }\n\n return index;\n}\n\nexport function expandSelectedText(textarea, prefixToUse, suffixToUse) {\n let multiline = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (textarea.selectionStart === textarea.selectionEnd) {\n textarea.selectionStart = wordSelectionStart(textarea.value, textarea.selectionStart);\n textarea.selectionEnd = wordSelectionEnd(textarea.value, textarea.selectionEnd, multiline);\n } else {\n const expandedSelectionStart = textarea.selectionStart - prefixToUse.length;\n const expandedSelectionEnd = textarea.selectionEnd + suffixToUse.length;\n const beginsWithPrefix = textarea.value.slice(expandedSelectionStart, textarea.selectionStart) === prefixToUse;\n const endsWithSuffix = textarea.value.slice(textarea.selectionEnd, expandedSelectionEnd) === suffixToUse;\n\n if (beginsWithPrefix && endsWithSuffix) {\n textarea.selectionStart = expandedSelectionStart;\n textarea.selectionEnd = expandedSelectionEnd;\n }\n }\n\n return textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n}\n\nexport function newlinesToSurroundSelectedText(textarea) {\n const beforeSelection = textarea.value.slice(0, textarea.selectionStart);\n const afterSelection = textarea.value.slice(textarea.selectionEnd);\n const breaksBefore = beforeSelection.match(/\\n*$/);\n const breaksAfter = afterSelection.match(/^\\n*/);\n const newlinesBeforeSelection = breaksBefore ? breaksBefore[0].length : 0;\n const newlinesAfterSelection = breaksAfter ? breaksAfter[0].length : 0;\n let newlinesToAppend;\n let newlinesToPrepend;\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 {\n newlinesToAppend,\n newlinesToPrepend\n };\n}\n\nexport const blockStyle = (textarea, arg) => {\n let newlinesToAppend;\n let newlinesToPrepend;\n const { prefix, suffix, blockPrefix, blockSuffix, replaceNext, prefixSpace, scanFor, surroundWithNewlines } = arg;\n const originalSelectionStart = textarea.selectionStart;\n const originalSelectionEnd = textarea.selectionEnd;\n let selectedText = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n let prefixToUse = isMultipleLines(selectedText) && blockPrefix.length > 0 ? `${blockPrefix}\\n` : prefix;\n let suffixToUse = isMultipleLines(selectedText) && blockSuffix.length > 0 ? `\\n${blockSuffix}` : suffix;\n\n if (prefixSpace) {\n const beforeSelection = textarea.value[textarea.selectionStart - 1];\n if (textarea.selectionStart !== 0 && beforeSelection != null && !beforeSelection.match(/\\s/)) {\n prefixToUse = ` ${prefixToUse}`;\n }\n }\n\n selectedText = expandSelectedText(textarea, prefixToUse, suffixToUse, arg.multiline);\n let selectionStart = textarea.selectionStart;\n let selectionEnd = textarea.selectionEnd;\n const hasReplaceNext = replaceNext.length > 0 && suffixToUse.indexOf(replaceNext) > -1 && selectedText.length > 0;\n\n if (surroundWithNewlines) {\n const 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 const replacementText = selectedText.slice(prefixToUse.length, selectedText.length - suffixToUse.length);\n if (originalSelectionStart === originalSelectionEnd) {\n let position = originalSelectionStart - prefixToUse.length;\n position = Math.max(position, selectionStart);\n position = Math.min(position, selectionStart + replacementText.length);\n selectionStart = selectionEnd = position;\n }\n else {\n selectionEnd = selectionStart + replacementText.length;\n }\n return { text: replacementText, selectionStart, selectionEnd };\n }\n else if (!hasReplaceNext) {\n let replacementText = prefixToUse + selectedText + suffixToUse;\n selectionStart = originalSelectionStart + prefixToUse.length;\n selectionEnd = originalSelectionEnd + prefixToUse.length;\n const whitespaceEdges = selectedText.match(/^\\s*|\\s*$/g);\n if (arg.trimFirst && whitespaceEdges) {\n const leadingWhitespace = whitespaceEdges[0] || '';\n const 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, selectionEnd };\n }\n else if (scanFor.length > 0 && selectedText.match(scanFor)) {\n suffixToUse = suffixToUse.replace(replaceNext, selectedText);\n const replacementText = prefixToUse + suffixToUse;\n selectionStart = selectionEnd = selectionStart + prefixToUse.length;\n return { text: replacementText, selectionStart, selectionEnd };\n }\n else {\n const replacementText = prefixToUse + selectedText + suffixToUse;\n selectionStart = selectionStart + prefixToUse.length + selectedText.length + suffixToUse.indexOf(replaceNext);\n selectionEnd = selectionStart + replaceNext.length;\n return { text: replacementText, selectionStart, selectionEnd };\n }\n}\n\nexport const multilineStyle = (textarea, arg) => {\n const { prefix, suffix, surroundWithNewlines } = arg;\n let text = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n let selectionStart = textarea.selectionStart;\n let selectionEnd = textarea.selectionEnd;\n const lines = text.split('\\n');\n const undoStyle = lines.every(line => line.startsWith(prefix) && line.endsWith(suffix));\n if (undoStyle) {\n text = lines.map(line => line.slice(prefix.length, line.length - suffix.length)).join('\\n');\n selectionEnd = selectionStart + text.length;\n }\n else {\n text = lines.map(line => prefix + line + suffix).join('\\n');\n if (surroundWithNewlines) {\n const { newlinesToAppend, newlinesToPrepend } = newlinesToSurroundSelectedText(textarea);\n selectionStart += newlinesToAppend.length;\n selectionEnd = selectionStart + text.length;\n text = newlinesToAppend + text + newlinesToPrepend;\n }\n }\n return { text, selectionStart, selectionEnd };\n}\n\nexport const orderedList = (textarea) => {\n const orderedListRegex = /^\\d+\\.\\s+/;\n const noInitialSelection = textarea.selectionStart === textarea.selectionEnd;\n let selectionEnd;\n let selectionStart;\n let text = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n let textToUnstyle = text;\n let lines = text.split('\\n');\n let startOfLine, endOfLine;\n if (noInitialSelection) {\n const linesBefore = textarea.value.slice(0, textarea.selectionStart).split(/\\n/);\n startOfLine = textarea.selectionStart - linesBefore[linesBefore.length - 1].length;\n endOfLine = wordSelectionEnd(textarea.value, textarea.selectionStart, true);\n textToUnstyle = textarea.value.slice(startOfLine, endOfLine);\n }\n const linesToUnstyle = textToUnstyle.split('\\n');\n const undoStyling = linesToUnstyle.every(line => orderedListRegex.test(line));\n if (undoStyling) {\n lines = linesToUnstyle.map(line => line.replace(orderedListRegex, ''));\n text = lines.join('\\n');\n if (noInitialSelection && startOfLine && endOfLine) {\n const lengthDiff = linesToUnstyle[0].length - lines[0].length;\n selectionStart = selectionEnd = textarea.selectionStart - lengthDiff;\n textarea.selectionStart = startOfLine;\n textarea.selectionEnd = endOfLine;\n }\n }\n else {\n lines = (function () {\n let i;\n let len;\n let index;\n const results = [];\n for (index = i = 0, len = lines.length; i < len; index = ++i) {\n const line = lines[index];\n results.push(`${index + 1}. ${line}`);\n }\n return results;\n })();\n text = lines.join('\\n');\n const { newlinesToAppend, newlinesToPrepend } = newlinesToSurroundSelectedText(textarea);\n selectionStart = textarea.selectionStart + newlinesToAppend.length;\n selectionEnd = selectionStart + text.length;\n if (noInitialSelection)\n selectionStart = selectionEnd;\n text = newlinesToAppend + text + newlinesToPrepend;\n }\n return { text, selectionStart, selectionEnd };\n}\n","/*\n * Original Copyright GitHub, Inc. Licensed under the MIT License.\n * See license text at https://github.com/github/markdown-toolbar-element/blob/master/LICENSE.\n */\n\nimport insertText from './insertText';\nimport { blockStyle, isMultipleLines, multilineStyle, orderedList } from './styles';\n\nexport const styleSelectedText = (textarea, styleArgs) => {\n const text = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n let result;\n if (styleArgs.orderedList) {\n result = orderedList(textarea);\n }\n else if (styleArgs.multiline && isMultipleLines(text)) {\n result = multilineStyle(textarea, styleArgs);\n }\n else {\n result = blockStyle(textarea, styleArgs);\n }\n\n insertText(textarea, result);\n};\n\nexport default (button, stylesToApply) => {\n const toolbar = button.parentElement;\n\n const 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 const style = Object.assign({}, defaults, stylesToApply);\n\n const field = document.getElementById(toolbar.dataset.for);\n\n if (field) {\n field.focus();\n styleSelectedText(field, style);\n }\n}\n","import Component from 'flarum/Component';\nimport icon from 'flarum/helpers/icon';\nimport apply from '../util/apply';\n\nconst modifierKey = navigator.userAgent.match(/Macintosh/) ? '⌘' : 'ctrl';\n\nexport default class MarkdownButton extends Component {\n config(isInitialized) {\n if (isInitialized) return;\n\n this.$().tooltip();\n }\n\n view() {\n return ;\n }\n\n keydown(event) {\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.click();\n }\n }\n\n click() {\n return apply(this.element, this.props.style);\n }\n\n title() {\n let tooltip = this.props.title;\n\n if (this.props.hotkey) tooltip += ` <${modifierKey}-${this.props.hotkey}>`;\n\n return tooltip;\n }\n}\n","/*!\n * Includes modified code from GitHub Markdown Toolbar Element\n * https://github.com/github/markdown-toolbar-element/\n *\n * Original Copyright GitHub, Inc.\n * Released under the MIT license\n * https://github.com/github/markdown-toolbar-element/blob/master/LICENSE\n */\n\nimport { extend } from 'flarum/extend';\nimport TextEditor from 'flarum/components/TextEditor';\nimport MarkdownArea from 'mdarea';\n\nimport './polyfills';\nimport MarkdownToolbar from './components/MarkdownToolbar';\nimport MarkdownButton from './components/MarkdownButton';\n\napp.initializers.add('flarum-markdown', function(app) {\n\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 editor.ignoreTab();\n\n context.onunload = function() {\n editor.destroy();\n };\n });\n\n extend(TextEditor.prototype, 'toolbarItems', function(items) {\n const tooltip = name => app.translator.trans(`flarum-markdown.forum.composer.${name}_tooltip`);\n\n items.add('markdown', (\n \n \n \n \n ', multiline: true, surroundWithNewlines: true }} />\n \n \n \n \n \n \n ), 100);\n });\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://@flarum/markdown/webpack/bootstrap","webpack://@flarum/markdown/external \"flarum.core.compat['extend']\"","webpack://@flarum/markdown/external \"flarum.core.compat['components/TextEditor']\"","webpack://@flarum/markdown/external \"flarum.core.compat['Component']\"","webpack://@flarum/markdown/./node_modules/mdarea/mdarea.min.js","webpack://@flarum/markdown/external \"flarum.core.compat['helpers/icon']\"","webpack://@flarum/markdown/./src/forum/polyfills.js","webpack://@flarum/markdown/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@flarum/markdown/./src/forum/components/MarkdownToolbar.js","webpack://@flarum/markdown/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@flarum/markdown/./src/forum/util/insertText.js","webpack://@flarum/markdown/./src/forum/util/styles.js","webpack://@flarum/markdown/./src/forum/util/apply.js","webpack://@flarum/markdown/./src/forum/components/MarkdownButton.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","self","a","test","navigator","platform","f","_","g","y","b","v","K","e","this","_useTab","_useInline","_indent","_reOutdent","_reKey","_handleKey","setElement","RegExp","x","selectionStart","selectionEnd","arguments","length","window","InputEvent","dispatchEvent","constructor","getElement","_elem","removeEventListener","addEventListener","getValue","setValue","getIndent","setIndent","Array","join","replace","isTabUsed","useTab","ignoreTab","isInlineEnabled","enableInline","disableInline","destroy","defaultPrevented","target","substring","ctrlKey","altKey","metaKey","shiftKey","lastIndexOf","h","u","charAt","line","offset","prefix","exec","parseInt","preventDefault","String","startsWith","search","pos","endsWith","this_len","undefined","_inheritsLoose","subClass","superClass","__proto__","modifierKey","userAgent","match","MarkdownToolbar","config","isInitialized","document","getElementById","props","for","shortcut","view","id","data-for","style","display","children","event","button","element","querySelector","click","Component","_extends","assign","source","apply","canInsertText","isMultipleLines","string","trim","split","repeat","wordSelectionStart","text","index","wordSelectionEnd","multiline","breakpoint","newlinesToSurroundSelectedText","textarea","newlinesToAppend","newlinesToPrepend","beforeSelection","slice","afterSelection","breaksBefore","breaksAfter","newlinesBeforeSelection","newlinesAfterSelection","blockStyle","arg","suffix","blockPrefix","blockSuffix","replaceNext","prefixSpace","scanFor","surroundWithNewlines","originalSelectionStart","originalSelectionEnd","selectedText","prefixToUse","suffixToUse","expandedSelectionStart","expandedSelectionEnd","beginsWithPrefix","endsWithSuffix","expandSelectedText","hasReplaceNext","indexOf","ref","replacementText","position","Math","max","min","whitespaceEdges","trimFirst","leadingWhitespace","trailingWhitespace","styleSelectedText","styleArgs","result","orderedList","startOfLine","endOfLine","orderedListRegex","noInitialSelection","textToUnstyle","lines","linesBefore","linesToUnstyle","every","map","lengthDiff","len","results","push","multilineStyle","before","after","contentEditable","execCommand","error","createEvent","initEvent","setSelectionRange","insertText","MarkdownButton","$","tooltip","className","title","data-hotkey","hotkey","onclick","onkeydown","keydown","icon","stylesToApply","toolbar","parentElement","field","dataset","focus","app","initializers","add","extend","TextEditor","textareaId","vdom","attrs","context","editor","MarkdownArea","onunload","items","translator","trans"],"mappings":"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","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 = 6);\n","module.exports = flarum.core.compat['extend'];","module.exports = flarum.core.compat['components/TextEditor'];","module.exports = flarum.core.compat['Component'];","!function(e,t){\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof module&&module.exports?module.exports=t():e.MarkdownArea=t()}(\"undefined\"!=typeof self?self:this,function(){var a=/mac|iphone|ipad|ipod/i.test(navigator.platform)?\"metaKey\":\"ctrlKey\",o=/^[\"'`*_[({<>})\\]]$/,f=/[*_]/,_=/^[ \\t]*(?:(?:[-+*]|\\d+\\.)[ \\t]+(?:\\[[ x]][ \\t]+)?|>[ \\t]*)*(?::[ \\t]*)?/,c=/(?:[-+*]|\\d+\\.)[ \\t]+(?:\\[[ x]][ \\t]+)?$/,g=/[-+*\\[\\]x\\d.]/g,y=/[^ \\t]/g,p=/(\\d+)\\.(?=[ \\t]+$)/,m=/(?:(?:^[ \\t]+)?(?:[-+*]|\\d+\\.|[>:])(?:[ \\t]+\\[[ x]])?[ \\t]*|^[ \\t]+)$/,d=/^(?!$)/gm,b={\"`\":/^``$/m,\"~\":/^~~$/m},v={\"[\":\"]\",\"(\":\")\",\"{\":\"}\",\"<\":\">\"},K={\"]\":\"[\",\")\":\"(\",\"}\":\"{\",\">\":\"<\"};function e(e){this._useTab=!0,this._useInline=!0,this._indent=\" \",this._reOutdent=/^[ ]{4}/gm,this._reKey=t(!0,!0),this._handleKey=this._handleKey.bind(this),this.setElement(e)}function t(e,t){return new RegExp(\"^(?:Enter\"+(e?\"|Tab\":\"\")+\"|[io\"+(t?\"\\\"'`*_([{<>}\\\\])\":\"\")+\"])$\")}function x(e,t,n,i){if(e.value=t,e.selectionStart=n,e.selectionEnd=3 this.length) {\n this_len = this.length;\n }\n return this.substring(this_len - search.length, this_len) === search;\n };\n}\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import Component from 'flarum/Component';\n\nconst modifierKey = navigator.userAgent.match(/Macintosh/) ? 'Meta' : 'Control';\n\nexport default class MarkdownToolbar extends Component {\n config(isInitialized) {\n if (isInitialized) return;\n\n const field = document.getElementById(this.props.for);\n\n field.addEventListener('keydown', this.shortcut.bind(this));\n }\n\n view() {\n return
\n {this.props.children}\n
;\n }\n\n shortcut(event) {\n if ((event.metaKey && modifierKey === 'Meta') || (event.ctrlKey && modifierKey === 'Control')) {\n const button = this.element.querySelector(`[data-hotkey=\"${event.key}\"]`);\n\n if (button) {\n button.click();\n event.preventDefault()\n }\n }\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}","/*\n * Original Copyright GitHub, Inc. Licensed under the MIT License.\n * See license text at https://github.com/github/markdown-toolbar-element/blob/master/LICENSE.\n */\n\nexport let canInsertText = null;\n\nexport default (textarea, { text, selectionStart, selectionEnd }) => {\n const originalSelectionStart = textarea.selectionStart;\n const before = textarea.value.slice(0, originalSelectionStart);\n const 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 }\n catch (error) {\n canInsertText = false;\n }\n textarea.contentEditable = 'false';\n }\n if (canInsertText && !textarea.value.slice(0, textarea.selectionStart).endsWith(text)) {\n canInsertText = false;\n }\n if (!canInsertText) {\n try {\n document.execCommand('ms-beginUndoUnit');\n }\n catch (e) {\n // Do nothing.\n }\n textarea.value = before + text + after;\n try {\n document.execCommand('ms-endUndoUnit');\n }\n catch (e) {\n // Do nothing.\n }\n\n // fire custom event, works on IE\n const event = document.createEvent('Event');\n\n event.initEvent('input', true, true);\n\n textarea.dispatchEvent(event);\n }\n if (selectionStart != null && selectionEnd != null) {\n textarea.setSelectionRange(selectionStart, selectionEnd);\n }\n else {\n textarea.setSelectionRange(originalSelectionStart, textarea.selectionEnd);\n }\n};\n","/*\n * Original Copyright GitHub, Inc. Licensed under the MIT License.\n * See license text at https://github.com/github/markdown-toolbar-element/blob/master/LICENSE.\n */\n\nexport function isMultipleLines(string) {\n return string.trim().split('\\n').length > 1;\n}\n\nexport function repeat(string, n) {\n return Array(n + 1).join(string);\n}\n\nexport function wordSelectionStart(text, i) {\n let index = i;\n\n while (text[index] && text[index - 1] != null && !text[index - 1].match(/\\s/)) {\n index--;\n }\n\n return index;\n}\n\nexport function wordSelectionEnd(text, i, multiline) {\n let index = i;\n const breakpoint = multiline ? /\\n/ : /\\s/;\n\n while (text[index] && !text[index].match(breakpoint)) {\n index++;\n }\n\n return index;\n}\n\nexport function expandSelectedText(textarea, prefixToUse, suffixToUse) {\n let multiline = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (textarea.selectionStart === textarea.selectionEnd) {\n textarea.selectionStart = wordSelectionStart(textarea.value, textarea.selectionStart);\n textarea.selectionEnd = wordSelectionEnd(textarea.value, textarea.selectionEnd, multiline);\n } else {\n const expandedSelectionStart = textarea.selectionStart - prefixToUse.length;\n const expandedSelectionEnd = textarea.selectionEnd + suffixToUse.length;\n const beginsWithPrefix = textarea.value.slice(expandedSelectionStart, textarea.selectionStart) === prefixToUse;\n const endsWithSuffix = textarea.value.slice(textarea.selectionEnd, expandedSelectionEnd) === suffixToUse;\n\n if (beginsWithPrefix && endsWithSuffix) {\n textarea.selectionStart = expandedSelectionStart;\n textarea.selectionEnd = expandedSelectionEnd;\n }\n }\n\n return textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n}\n\nexport function newlinesToSurroundSelectedText(textarea) {\n const beforeSelection = textarea.value.slice(0, textarea.selectionStart);\n const afterSelection = textarea.value.slice(textarea.selectionEnd);\n const breaksBefore = beforeSelection.match(/\\n*$/);\n const breaksAfter = afterSelection.match(/^\\n*/);\n const newlinesBeforeSelection = breaksBefore ? breaksBefore[0].length : 0;\n const newlinesAfterSelection = breaksAfter ? breaksAfter[0].length : 0;\n let newlinesToAppend;\n let newlinesToPrepend;\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 {\n newlinesToAppend,\n newlinesToPrepend\n };\n}\n\nexport const blockStyle = (textarea, arg) => {\n let newlinesToAppend;\n let newlinesToPrepend;\n const { prefix, suffix, blockPrefix, blockSuffix, replaceNext, prefixSpace, scanFor, surroundWithNewlines } = arg;\n const originalSelectionStart = textarea.selectionStart;\n const originalSelectionEnd = textarea.selectionEnd;\n let selectedText = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n let prefixToUse = isMultipleLines(selectedText) && blockPrefix.length > 0 ? `${blockPrefix}\\n` : prefix;\n let suffixToUse = isMultipleLines(selectedText) && blockSuffix.length > 0 ? `\\n${blockSuffix}` : suffix;\n\n if (prefixSpace) {\n const beforeSelection = textarea.value[textarea.selectionStart - 1];\n if (textarea.selectionStart !== 0 && beforeSelection != null && !beforeSelection.match(/\\s/)) {\n prefixToUse = ` ${prefixToUse}`;\n }\n }\n\n selectedText = expandSelectedText(textarea, prefixToUse, suffixToUse, arg.multiline);\n let selectionStart = textarea.selectionStart;\n let selectionEnd = textarea.selectionEnd;\n const hasReplaceNext = replaceNext.length > 0 && suffixToUse.indexOf(replaceNext) > -1 && selectedText.length > 0;\n\n if (surroundWithNewlines) {\n const 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 const replacementText = selectedText.slice(prefixToUse.length, selectedText.length - suffixToUse.length);\n if (originalSelectionStart === originalSelectionEnd) {\n let position = originalSelectionStart - prefixToUse.length;\n position = Math.max(position, selectionStart);\n position = Math.min(position, selectionStart + replacementText.length);\n selectionStart = selectionEnd = position;\n }\n else {\n selectionEnd = selectionStart + replacementText.length;\n }\n return { text: replacementText, selectionStart, selectionEnd };\n }\n else if (!hasReplaceNext) {\n let replacementText = prefixToUse + selectedText + suffixToUse;\n selectionStart = originalSelectionStart + prefixToUse.length;\n selectionEnd = originalSelectionEnd + prefixToUse.length;\n const whitespaceEdges = selectedText.match(/^\\s*|\\s*$/g);\n if (arg.trimFirst && whitespaceEdges) {\n const leadingWhitespace = whitespaceEdges[0] || '';\n const 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, selectionEnd };\n }\n else if (scanFor.length > 0 && selectedText.match(scanFor)) {\n suffixToUse = suffixToUse.replace(replaceNext, selectedText);\n const replacementText = prefixToUse + suffixToUse;\n selectionStart = selectionEnd = selectionStart + prefixToUse.length;\n return { text: replacementText, selectionStart, selectionEnd };\n }\n else {\n const replacementText = prefixToUse + selectedText + suffixToUse;\n selectionStart = selectionStart + prefixToUse.length + selectedText.length + suffixToUse.indexOf(replaceNext);\n selectionEnd = selectionStart + replaceNext.length;\n return { text: replacementText, selectionStart, selectionEnd };\n }\n}\n\nexport const multilineStyle = (textarea, arg) => {\n const { prefix, suffix, surroundWithNewlines } = arg;\n let text = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n let selectionStart = textarea.selectionStart;\n let selectionEnd = textarea.selectionEnd;\n const lines = text.split('\\n');\n const undoStyle = lines.every(line => line.startsWith(prefix) && line.endsWith(suffix));\n if (undoStyle) {\n text = lines.map(line => line.slice(prefix.length, line.length - suffix.length)).join('\\n');\n selectionEnd = selectionStart + text.length;\n }\n else {\n text = lines.map(line => prefix + line + suffix).join('\\n');\n if (surroundWithNewlines) {\n const { newlinesToAppend, newlinesToPrepend } = newlinesToSurroundSelectedText(textarea);\n selectionStart += newlinesToAppend.length;\n selectionEnd = selectionStart + text.length;\n text = newlinesToAppend + text + newlinesToPrepend;\n }\n }\n return { text, selectionStart, selectionEnd };\n}\n\nexport const orderedList = (textarea) => {\n const orderedListRegex = /^\\d+\\.\\s+/;\n const noInitialSelection = textarea.selectionStart === textarea.selectionEnd;\n let selectionEnd;\n let selectionStart;\n let text = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n let textToUnstyle = text;\n let lines = text.split('\\n');\n let startOfLine, endOfLine;\n if (noInitialSelection) {\n const linesBefore = textarea.value.slice(0, textarea.selectionStart).split(/\\n/);\n startOfLine = textarea.selectionStart - linesBefore[linesBefore.length - 1].length;\n endOfLine = wordSelectionEnd(textarea.value, textarea.selectionStart, true);\n textToUnstyle = textarea.value.slice(startOfLine, endOfLine);\n }\n const linesToUnstyle = textToUnstyle.split('\\n');\n const undoStyling = linesToUnstyle.every(line => orderedListRegex.test(line));\n if (undoStyling) {\n lines = linesToUnstyle.map(line => line.replace(orderedListRegex, ''));\n text = lines.join('\\n');\n if (noInitialSelection && startOfLine && endOfLine) {\n const lengthDiff = linesToUnstyle[0].length - lines[0].length;\n selectionStart = selectionEnd = textarea.selectionStart - lengthDiff;\n textarea.selectionStart = startOfLine;\n textarea.selectionEnd = endOfLine;\n }\n }\n else {\n lines = (function () {\n let i;\n let len;\n let index;\n const results = [];\n for (index = i = 0, len = lines.length; i < len; index = ++i) {\n const line = lines[index];\n results.push(`${index + 1}. ${line}`);\n }\n return results;\n })();\n text = lines.join('\\n');\n const { newlinesToAppend, newlinesToPrepend } = newlinesToSurroundSelectedText(textarea);\n selectionStart = textarea.selectionStart + newlinesToAppend.length;\n selectionEnd = selectionStart + text.length;\n if (noInitialSelection)\n selectionStart = selectionEnd;\n text = newlinesToAppend + text + newlinesToPrepend;\n }\n return { text, selectionStart, selectionEnd };\n}\n","/*\n * Original Copyright GitHub, Inc. Licensed under the MIT License.\n * See license text at https://github.com/github/markdown-toolbar-element/blob/master/LICENSE.\n */\n\nimport insertText from './insertText';\nimport { blockStyle, isMultipleLines, multilineStyle, orderedList } from './styles';\n\nexport const styleSelectedText = (textarea, styleArgs) => {\n const text = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n let result;\n if (styleArgs.orderedList) {\n result = orderedList(textarea);\n }\n else if (styleArgs.multiline && isMultipleLines(text)) {\n result = multilineStyle(textarea, styleArgs);\n }\n else {\n result = blockStyle(textarea, styleArgs);\n }\n\n insertText(textarea, result);\n};\n\nexport default (button, stylesToApply) => {\n const toolbar = button.parentElement;\n\n const 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 const style = Object.assign({}, defaults, stylesToApply);\n\n const field = document.getElementById(toolbar.dataset.for);\n\n if (field) {\n field.focus();\n styleSelectedText(field, style);\n }\n}\n","import Component from 'flarum/Component';\nimport icon from 'flarum/helpers/icon';\nimport apply from '../util/apply';\n\nconst modifierKey = navigator.userAgent.match(/Macintosh/) ? '⌘' : 'ctrl';\n\nexport default class MarkdownButton extends Component {\n config(isInitialized) {\n if (isInitialized) return;\n\n this.$().tooltip();\n }\n\n view() {\n return ;\n }\n\n keydown(event) {\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.click();\n }\n }\n\n click() {\n return apply(this.element, this.props.style);\n }\n\n title() {\n let tooltip = this.props.title;\n\n if (this.props.hotkey) tooltip += ` <${modifierKey}-${this.props.hotkey}>`;\n\n return tooltip;\n }\n}\n","/*!\n * Includes modified code from GitHub Markdown Toolbar Element\n * https://github.com/github/markdown-toolbar-element/\n *\n * Original Copyright GitHub, Inc.\n * Released under the MIT license\n * https://github.com/github/markdown-toolbar-element/blob/master/LICENSE\n */\n\nimport { extend } from 'flarum/extend';\nimport TextEditor from 'flarum/components/TextEditor';\nimport MarkdownArea from 'mdarea';\n\nimport './polyfills';\nimport MarkdownToolbar from './components/MarkdownToolbar';\nimport MarkdownButton from './components/MarkdownButton';\n\napp.initializers.add('flarum-markdown', function(app) {\n\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 editor.ignoreTab();\n\n context.onunload = function() {\n editor.destroy();\n };\n });\n\n extend(TextEditor.prototype, 'toolbarItems', function(items) {\n const tooltip = name => app.translator.trans(`flarum-markdown.forum.composer.${name}_tooltip`);\n\n items.add('markdown', (\n \n \n \n \n ', multiline: true, surroundWithNewlines: true }} />\n \n \n \n \n \n \n ), 100);\n });\n});\n"],"sourceRoot":""} \ No newline at end of file