From 9579871378b97d20ccaeb16012e3d26cd1049e76 Mon Sep 17 00:00:00 2001 From: flarum-bot Date: Sat, 27 Feb 2021 03:19:41 +0000 Subject: [PATCH] Bundled output for commit 690f4619f83739f22d72ec5387ac4f6b7b616d42 [skip ci] --- extensions/markdown/js/dist/forum.js | 11 +---------- extensions/markdown/js/dist/forum.js.map | 2 +- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/extensions/markdown/js/dist/forum.js b/extensions/markdown/js/dist/forum.js index f43391f4c..ed937859e 100644 --- a/extensions/markdown/js/dist/forum.js +++ b/extensions/markdown/js/dist/forum.js @@ -1,11 +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=5)}([function(t,e){t.exports=flarum.core.compat.extend},function(t,e){t.exports=flarum.core.compat["components/TextEditor"]},function(t,e){t.exports=flarum.core.compat.Component},function(t,e,n){var i,r,l;"undefined"!=typeof self&&self,r=[],void 0===(l="function"==typeof(i=function(){var t=/mac|iphone|ipad|ipod/i.test(navigator.platform)?"metaKey":"ctrlKey",e=/[*_]/,n=/^[ \t]*(?:(?:[-+*]|\d+\.)[ \t]+(?:\[[ x]][ \t]+)?|>[ \t]*)*(?::[ \t]*)?/,i=/[-=\s"'`<>\[\](){}+*^$\\.|]$/,r=/(?:[-+*]|\d+\.)[ \t]+(?:\[[ x]][ \t]+)?$/,l=/^(?:\n|$)/,o=/[-+*\[\]x\d.]/g,s=/[^ \t]/g,a=/(\d+)\.(?=[ \t]+$)/,c=/(?:(?:^[ \t]+)?(?:[-+*]|\d+\.|[>:])(?:[ \t]+\[[ x]])?[ \t]*|^[ \t]+)$/,u=/^(?!$)/gm,f={"`":/^``$/m,"~":/^~~$/m},h={"[":"]","(":")","{":"}","<":">"},d={"]":"[",")":"(","}":"{",">":"<"},p={enter:["Enter","Shift+Enter"],indent:["Tab","Cmd+m"],outdent:["Shift+Tab","Cmd+Shift+m"],inline:['"',"'","`","*","_","[","]","(",")","{","}","<",">"]};function m(t,e){var n,i;this._options=((n=e)||(n={}),n.keyMap=function(t){t||(t={});var e={},n=[];for(var i in p)if(p.hasOwnProperty(i)){var r=t[i]||p[i];Array.isArray(r)||(r=r.toString().trim().split(/\s*[|,]\s*/g)),n.push.apply(n,r.map((function(t){return(t=v(t)).key in e||(e[t.key]=0),++e[t.key],{key:t,action:i}})))}return n.forEach((function(t){var n;11}function x(t,e){return Array(e+1).join(t)}function b(t,e){for(var n=e;t[n]&&null!=t[n-1]&&!t[n-1].match(/\s/);)n--;return n}function k(t,e,n){for(var i=e,r=n?/\n/:/\s/;t[i]&&!t[i].match(r);)i++;return i}function E(t){var e,n,i=t.value.slice(0,t.selectionStart),r=t.value.slice(t.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&&(e=x("\n",2-s)),r.match(/\S/)&&a<2&&(n=x("\n",2-a)),null==e&&(e=""),null==n&&(n=""),{newlinesToAppend:e,newlinesToPrepend:n}}var S=function(t,e){var n=e.prefix,i=e.suffix,r=e.blockPrefix,l=e.blockSuffix,o=e.replaceNext,s=e.prefixSpace,a=e.scanFor,c=e.surroundWithNewlines,u=t.selectionStart,f=t.selectionEnd,h=t.value.slice(t.selectionStart,t.selectionEnd),d=g(h)&&r.length>0?r+"\n":n,p=g(h)&&l.length>0?"\n"+l:i;if(s){var m=t.value[t.selectionStart-1];0===t.selectionStart||null==m||m.match(/\s/)||(d=" "+d)}h=function(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(t.selectionStart===t.selectionEnd)t.selectionStart=b(t.value,t.selectionStart),t.selectionEnd=k(t.value,t.selectionEnd,i);else{var r=t.selectionStart-e.length,l=t.selectionEnd+n.length,o=t.value.slice(r,t.selectionStart)===e,s=t.value.slice(t.selectionEnd,l)===n;o&&s&&(t.selectionStart=r,t.selectionEnd=l)}return t.value.slice(t.selectionStart,t.selectionEnd)}(t,d,p,e.multiline);var v=t.selectionStart,y=t.selectionEnd,x=o.length>0&&p.indexOf(o)>-1&&h.length>0;if(c){var S=E(t);d=S.newlinesToAppend+n,p+=S.newlinesToPrepend}if(h.startsWith(d)&&h.endsWith(p)){var _=h.slice(d.length,h.length-p.length);if(u===f){var w=u-d.length;w=Math.max(w,v),v=y=w=Math.min(w,v+_.length)}else y=v+_.length;return{text:_,selectionStart:v,selectionEnd:y}}if(x)return a.length>0&&h.match(a)?{text:d+(p=p.replace(o,h)),selectionStart:v=y=v+d.length,selectionEnd:y}:{text:d+h+p,selectionStart:v=v+d.length+h.length+p.indexOf(o),selectionEnd:y=v+o.length};var O=d+h+p;v=u+d.length,y=f+d.length;var j=h.match(/^\s*|\s*$/g);if(e.trimFirst&&j){var K=j[0]||"",M=j[1]||"";O=K+d+h.trim()+p+M,v+=K.length,y-=M.length}return{text:O,selectionStart:v,selectionEnd:y}},_=function(t,e){var n,i=t.value.slice(t.selectionStart,t.selectionEnd);n=e.orderedList?function(t){var e,n,i,r,l=/^\d+\.\s+/,o=t.selectionStart===t.selectionEnd,s=t.value.slice(t.selectionStart,t.selectionEnd),a=s,c=s.split("\n");if(o){var u=t.value.slice(0,t.selectionStart).split(/\n/);i=t.selectionStart-u[u.length-1].length,r=k(t.value,t.selectionStart,!0),a=t.value.slice(i,r)}var f=a.split("\n");if(f.every((function(t){return l.test(t)}))){if(s=(c=f.map((function(t){return t.replace(l,"")}))).join("\n"),o&&i&&r){var h=f[0].length-c[0].length;n=e=t.selectionStart-h,t.selectionStart=i,t.selectionEnd=r}}else{s=(c=function(){var t,e,n,i=[];for(n=t=0,e=c.length;t"),t},e}(u.a); -/*! - * Includes modified code from GitHub Markdown Toolbar Element - * https://github.com/github/markdown-toolbar-element/ - * - * Original Copyright GitHub, Inc. - * Released under the MIT license - * https://github.com/github/markdown-toolbar-element/blob/master/LICENSE - */ -app.initializers.add("flarum-markdown",(function(t){var e=1;Object(i.extend)(l.a.prototype,"oninit",(function(){this.textareaId="textarea"+e++})),Object(i.extend)(l.a.prototype,"view",(function(t){t.children[0].attrs.id=this.textareaId})),Object(i.extend)(l.a.prototype,"oncreate",(function(){this.editor=new s.a(this.$("textarea")[0],{keyMap:{indent:["Ctrl+m"],outdent:["Ctrl+M"],inline:[]}})})),Object(i.extend)(l.a.prototype,"onremove",(function(){this.editor.destroy()})),Object(i.extend)(l.a.prototype,"toolbarItems",(function(e){var n=function(e){return t.translator.trans("flarum-markdown.forum.composer."+e+"_tooltip")};e.add("markdown",m(h,{for:this.textareaId},m(O,{title:n("header"),icon:"fas fa-heading",style:{prefix:"### "}}),m(O,{title:n("bold"),icon:"fas fa-bold",style:{prefix:"**",suffix:"**",trimFirst:!0},hotkey:"b"}),m(O,{title:n("italic"),icon:"fas fa-italic",style:{prefix:"_",suffix:"_",trimFirst:!0},hotkey:"i"}),m(O,{title:n("quote"),icon:"fas fa-quote-left",style:{prefix:"> ",multiline:!0,surroundWithNewlines:!0}}),m(O,{title:n("code"),icon:"fas fa-code",style:{prefix:"`",suffix:"`",blockPrefix:"```",blockSuffix:"```"}}),m(O,{title:n("link"),icon:"fas fa-link",style:{prefix:"[",suffix:"](https://)",replaceNext:"https://",scanFor:"https?://"}}),m(O,{title:n("image"),icon:"fas fa-image",style:{prefix:"![",suffix:"](https://)",replaceNext:"https://",scanFor:"https?://"}}),m(O,{title:n("unordered_list"),icon:"fas fa-list-ul",style:{prefix:"- ",multiline:!0,surroundWithNewlines:!0}}),m(O,{title:n("ordered_list"),icon:"fas fa-list-ol",style:{prefix:"1. ",multiline:!0,orderedList:!0}})),100)}))}))}]); +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.Component},function(e,t){e.exports=flarum.core.compat["components/TextEditor"]},function(e,t){e.exports=flarum.core.compat["utils/BasicEditorDriver"]},function(e,t,n){e.exports=function(){"use strict";const e=/^[ \t]*(?:(?:[-+*]|\d+\.)[ \t]+(?:\[[ x]][ \t]+)?|>[ \t]*)*(?::[ \t]*)?/,t=/(?:[-+*]|\d+\.)[ \t]+(?:\[[ x]][ \t]+)?$/,n=/[-+*\[\]x\d.]/g,i=/[^ \t]/g,r=/(\d+)\.(?=[ \t]+$)/,o=/(?:(?:^[ \t]+)?(?:[-+*]|\d+\.|[>:])(?:[ \t]+\[[ x]])?[ \t]*|^[ \t]+)$/,l=/[*_]/,s=/[-=\s"'`<>\[\](){}+*^$\\.|]$/,c=/^(?:\n|$)/,a=/^(?!$)/gm,u={"`":/^``$/m,"~":/^~~$/m},d={"[":"]","(":")","{":"}","<":">"},f={"]":"[",")":"(","}":"{",">":"<"},h={enter:(n,i,l,s,a)=>{const u=l?null:function(t){const n=t.lastIndexOf("\n")+1,i=t.substring(n),r=e.exec(i);return{line:i,offset:n,prefix:r&&r[0]}}(i);if(u)if(u.line&&u.line.charAt(u.line.length-1)in d){const e=u.prefix?y(u.prefix,!0):"";s="\n"+e+s,a.shiftKey||(i+="\n"+e+n.indent)}else u.prefix?!a.shiftKey&&u.prefix===u.line&&c.test(s)?i=i.substring(0,u.offset)+function(e){return e.replace(o,"")}(u.prefix):!a.shiftKey&&function(e){return t.test(e)}(u.prefix)?i+="\n"+function(e){return e.replace(r,(function(e,t){return parseInt(t)+1+"."}))}(u.prefix):i+="\n"+y(u.prefix,a.shiftKey):i+="\n";else i+="\n";return{v:i+s,s:i.length}},indent:(e,t,n,i)=>{let r=t.length,o=t.lastIndexOf("\n")+1;return o{let r=t.length,o=t.lastIndexOf("\n")+1;return on||r.key in d||i.charAt(0)!==r.key?n||("'"!==r.key||s.test(t))&&!(r.key in f)?!n&&r.key in u&&u[r.key].test(t)?{v:t+r.key+"language\n"+r.key+r.key+r.key+("\n"!==i.charAt(0)?"\n":"")+i,s:t.length+1,e:t.length+9}:r.key===t.slice(-1)&&r.key===i.slice(0,1)?{v:t.slice(0,-1)+n+i.slice(1),s:t.length-1,e:t.length-1+n.length}:{v:t+(f[r.key]||r.key)+n+(d[r.key]||r.key)+i,s:t.length+1,e:t.length+1+n.length}:{v:t+r.key+i,s:t.length+1}:{v:t+(l.test(r.key)?r.key+r.key:"")+i,s:t.length+1}};class p{constructor(e){this.options=e}handleKey(e,t,n,i){const r=this.options.keyMap.find(e=>function(e,t){for(const n in t)if(t.hasOwnProperty(n)&&e[n]!==t[n])return!1;return!0}(i,e.key));if(r&&h[r.action])return h[r.action](this.options,e,t,n,i)}}function y(e,t){return e.replace(t?i:n," ")}const m=/mac|iphone|ipad|ipod/i.test(navigator.platform),v=/firefox/i.test(navigator.userAgent),x=m?"metaKey":"ctrlKey",g={enter:["Enter","Shift+Enter"],indent:["Tab","Cmd+m"],outdent:["Shift+Tab","Cmd+Shift+m"],inline:['"',"'","`","*","_","[","]","(",")","{","}","<",">"]};function k(e={}){const t={},n=[];for(let i in g)if(g.hasOwnProperty(i)){let r=e[i]||g[i];Array.isArray(r)||(r=r.toString().trim().split(/\s*[|,]\s*/g)),n.push.apply(n,r.map(e=>{const n=b(e);return n.key in t||(t[n.key]=0),++t[n.key],{key:n,action:i}}))}return n.forEach(e=>{var n;t[e.key.key]>1&&("ctrlKey"in(n=e.key)||(n.ctrlKey=!1),"altKey"in n||(n.altKey=!1),"shiftKey"in n||(n.shiftKey=!1),"metaKey"in n||(n.metaKey=!1))}),n}function b(e){const t={};return e.trim().split(/\s*\+\s*/g).forEach((function(e){switch(e.toLowerCase()){case"cmd":t[x]=!0;break;case"ctrl":case"alt":case"shift":case"meta":t[e.toLowerCase()+"Key"]=!0;break;default:t.key=e}})),t}function E(){const e=document.createElement("div");return e.setAttribute("aria-hidden","true"),e.tabIndex=-1,e.contentEditable=!0,e.textContent="0",e.addEventListener("focus",()=>setTimeout(()=>e.blur(),0)),e.style.position="fixed",e.style.overflow="hidden",e.style.left="-1000px",e.style.top="50%",e.style.width=e.style.height="1px",e.style.opacity="0",e}function S(e,t=!1){return{s:e.selectionStart,e:e.selectionEnd,x:e.scrollLeft,y:e.scrollTop,v:e.value.replace(/\u00A0/g," "),c:t}}function w(e,t){e.lock=!0;const n=void 0===t.e?t.s:t.e,i=void 0===t.x?e.elem.scrollLeft:t.x,r=void 0===t.y?e.elem.scrollTop:t.y;T(e,{...t,e:n,x:i,y:r,c:!0},!0),e.lock=!1}function O(e,t){if(!e.elem||t.defaultPrevented)return;if(v&&t[x]&&"z"===t.key)return void e.elem.blur();const n=S(e.elem),i=n.v.substring(0,n.s),r=n.v.substring(n.s,n.e),o=n.v.substring(n.e);for(let n=0,l=e.options.extensions.length;ne.cleanup&&e.cleanup(this)),this.ed.elem.removeEventListener("input",this.ed.onInput),this.ed.elem.removeEventListener("keydown",this.ed.onKeyDown)),this.ed.elem=e,e.addEventListener("keydown",this.ed.onKeyDown),e.addEventListener("input",this.ed.onInput),C(this.ed),this.ed.options.extensions.forEach(e=>e.init&&e.init(this))}getValue(){return this.ed.elem.value.replace(/\u00A0/g," ")}setValue(e,t=!1){this.ed.elem.value=e,t||C(this.ed)}pushState(e){w(this.ed,e)}destroy(){return this.ed.options.extensions.forEach(e=>e.cleanup&&e.cleanup(this)),this.ed.elem.removeEventListener("keydown",this.ed.onKeyDown),this.ed.elem.removeEventListener("input",this.ed.onInput),this.ed.helper.removeEventListener("input",this.ed.onUndo),document.body.removeChild(this.ed.helper),this.ed.options.extensions.forEach(e=>e.destroy&&e.destroy()),Object.assign(this.ed,{elem:null,helper:null,options:null,reOutdent:null,onKeyDown:null,onInput:null,onUndo:null,history:null}),Object.assign(this,{ed:null}),null}}return function(e){e.version="v2.0.9"}(I||(I={})),I}()},function(e,t){e.exports=flarum.core.compat["helpers/icon"]},function(e,t,n){"use strict";n.r(t);var i=n(0),r=n(2),o=n.n(r),l=n(3),s=n.n(l),c=n(4),a=n.n(c);function u(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var d=n(1),f=n.n(d),h=navigator.userAgent.match(/Macintosh/)?"Meta":"Control",p=function(e){function t(){return e.apply(this,arguments)||this}u(t,e);var n=t.prototype;return n.oncreate=function(t){e.prototype.oncreate.call(this,t),this.attrs.setShortcutHandler(this.shortcut.bind(this))},n.view=function(e){return m("div",{id:"MarkdownToolbar","data-for":this.attrs.for,style:{display:"inline-block"}},e.children)},n.shortcut=function(e){if(e.metaKey&&"Meta"===h||e.ctrlKey&&"Control"===h){var t=this.element.querySelector('[data-hotkey="'+e.key+'"]');t&&(t.click(),e.preventDefault())}},t}(f.a),y=n(5),v=n.n(y);function x(){return(x=Object.assign||function(e){for(var t=1;t1}function b(e,t){return Array(t+1).join(e)}function E(e,t){for(var n=t;e[n]&&null!=e[n-1]&&!e[n-1].match(/\s/);)n--;return n}function S(e,t,n){for(var i=t,r=n?/\n/:/\s/;e[i]&&!e[i].match(r);)i++;return i}function w(e){var t,n,i=e.value.slice(0,e.selectionStart),r=e.value.slice(e.selectionEnd),o=i.match(/\n*$/),l=r.match(/^\n*/),s=o?o[0].length:0,c=l?l[0].length:0;return i.match(/\S/)&&s<2&&(t=b("\n",2-s)),r.match(/\S/)&&c<2&&(n=b("\n",2-c)),null==t&&(t=""),null==n&&(n=""),{newlinesToAppend:t,newlinesToPrepend:n}}var O=function(e,t){var n=t.prefix,i=t.suffix,r=t.blockPrefix,o=t.blockSuffix,l=t.replaceNext,s=t.prefixSpace,c=t.scanFor,a=t.surroundWithNewlines,u=e.selectionStart,d=e.selectionEnd,f=e.value.slice(e.selectionStart,e.selectionEnd),h=k(f)&&r.length>0?r+"\n":n,p=k(f)&&o.length>0?"\n"+o:i;if(s){var y=e.value[e.selectionStart-1];0===e.selectionStart||null==y||y.match(/\s/)||(h=" "+h)}f=function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(e.selectionStart===e.selectionEnd)e.selectionStart=E(e.value,e.selectionStart),e.selectionEnd=S(e.value,e.selectionEnd,i);else{var r=e.selectionStart-t.length,o=e.selectionEnd+n.length,l=e.value.slice(r,e.selectionStart)===t,s=e.value.slice(e.selectionEnd,o)===n;l&&s&&(e.selectionStart=r,e.selectionEnd=o)}return e.value.slice(e.selectionStart,e.selectionEnd)}(e,h,p,t.multiline);var m=e.selectionStart,v=e.selectionEnd,x=l.length>0&&p.indexOf(l)>-1&&f.length>0;if(a){var g=w(e);h=g.newlinesToAppend+n,p+=g.newlinesToPrepend}if(f.startsWith(h)&&f.endsWith(p)){var b=f.slice(h.length,f.length-p.length);if(u===d){var O=u-h.length;O=Math.max(O,m),m=v=O=Math.min(O,m+b.length)}else v=m+b.length;return{text:b,selectionStart:m,selectionEnd:v}}if(x)return c.length>0&&f.match(c)?{text:h+(p=p.replace(l,f)),selectionStart:m=v=m+h.length,selectionEnd:v}:{text:h+f+p,selectionStart:m=m+h.length+f.length+p.indexOf(l),selectionEnd:v=m+l.length};var j=h+f+p;m=u+h.length,v=d+h.length;var K=f.match(/^\s*|\s*$/g);if(t.trimFirst&&K){var C=K[0]||"",T=K[1]||"";j=C+h+f.trim()+p+T,m+=C.length,v-=T.length}return{text:j,selectionStart:m,selectionEnd:v}},j=function(e,t){var n,i=e.value.slice(e.selectionStart,e.selectionEnd);n=t.orderedList?function(e){var t,n,i,r,o=/^\d+\.\s+/,l=e.selectionStart===e.selectionEnd,s=e.value.slice(e.selectionStart,e.selectionEnd),c=s,a=s.split("\n");if(l){var u=e.value.slice(0,e.selectionStart).split(/\n/);i=e.selectionStart-u[u.length-1].length,r=S(e.value,e.selectionStart,!0),c=e.value.slice(i,r)}var d=c.split("\n");if(d.every((function(e){return o.test(e)}))){if(s=(a=d.map((function(e){return e.replace(o,"")}))).join("\n"),l&&i&&r){var f=d[0].length-a[0].length;n=t=e.selectionStart-f,e.selectionStart=i,e.selectionEnd=r}}else{s=(a=function(){var e,t,n,i=[];for(n=e=0,t=a.length;e"),e},t}(f.a),T=function(){};app.initializers.add("flarum-markdown",(function(e){var t=1;Object(i.extend)(o.a.prototype,"oninit",(function(){this.textareaId="textarea"+t++})),Object(i.extend)(o.a.prototype,"buildEditorParams",(function(e){e.textareaId=this.textareaId})),Object(i.extend)(s.a.prototype,"build",(function(e,t,n){this.el.id=n.textareaId,this.el.addEventListener("keydown",(function(e){return T.apply(void 0,arguments)})),this.mdarea=new a.a(this.el,{keyMap:{indent:["Ctrl+m"],outdent:["Ctrl+M"],inline:[]}})})),Object(i.override)(s.a.prototype,"destroy",(function(e){this.mdarea.destroy(),e()})),Object(i.extend)(o.a.prototype,"toolbarItems",(function(t){var n=function(t){return e.translator.trans("flarum-markdown.forum.composer."+t+"_tooltip")};t.add("markdown",m(p,{for:this.textareaId,setShortcutHandler:function(e){return T=e}},m(C,{title:n("header"),icon:"fas fa-heading",style:{prefix:"### "}}),m(C,{title:n("bold"),icon:"fas fa-bold",style:{prefix:"**",suffix:"**",trimFirst:!0},hotkey:"b"}),m(C,{title:n("italic"),icon:"fas fa-italic",style:{prefix:"_",suffix:"_",trimFirst:!0},hotkey:"i"}),m(C,{title:n("quote"),icon:"fas fa-quote-left",style:{prefix:"> ",multiline:!0,surroundWithNewlines:!0}}),m(C,{title:n("code"),icon:"fas fa-code",style:{prefix:"`",suffix:"`",blockPrefix:"```",blockSuffix:"```"}}),m(C,{title:n("link"),icon:"fas fa-link",style:{prefix:"[",suffix:"](https://)",replaceNext:"https://",scanFor:"https?://"}}),m(C,{title:n("image"),icon:"fas fa-image",style:{prefix:"![",suffix:"](https://)",replaceNext:"https://",scanFor:"https?://"}}),m(C,{title:n("unordered_list"),icon:"fas fa-list-ul",style:{prefix:"- ",multiline:!0,surroundWithNewlines:!0}}),m(C,{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 ef59ba8ec..381551942 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/./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","test","navigator","platform","u","f","y","g","_","v","k","enter","indent","outdent","inline","e","this","_options","keyMap","Array","isArray","toString","trim","split","push","apply","map","action","forEach","ctrlKey","altKey","shiftKey","metaKey","length","join","_reOutdent","RegExp","_handleKey","setElement","toLowerCase","b","selectionStart","selectionEnd","arguments","window","InputEvent","dispatchEvent","x","replace","constructor","getElement","_elem","removeEventListener","addEventListener","getValue","setValue","destroy","defaultPrevented","find","substring","a","h","lastIndexOf","line","offset","prefix","exec","charAt","parseInt","slice","preventDefault","_inheritsLoose","subClass","superClass","__proto__","modifierKey","userAgent","match","MarkdownToolbar","oncreate","vnode","document","getElementById","attrs","for","shortcut","view","id","data-for","style","display","children","event","button","element","querySelector","click","Component","_extends","assign","target","source","canInsertText","isMultipleLines","string","repeat","wordSelectionStart","text","index","wordSelectionEnd","multiline","breakpoint","newlinesToSurroundSelectedText","textarea","newlinesToAppend","newlinesToPrepend","beforeSelection","afterSelection","breaksBefore","breaksAfter","newlinesBeforeSelection","newlinesAfterSelection","blockStyle","arg","suffix","blockPrefix","blockSuffix","replaceNext","prefixSpace","scanFor","surroundWithNewlines","originalSelectionStart","originalSelectionEnd","selectedText","prefixToUse","suffixToUse","undefined","expandedSelectionStart","expandedSelectionEnd","beginsWithPrefix","endsWithSuffix","expandSelectedText","hasReplaceNext","indexOf","ref","startsWith","endsWith","replacementText","position","Math","max","min","whitespaceEdges","trimFirst","leadingWhitespace","trailingWhitespace","styleSelectedText","styleArgs","result","orderedList","startOfLine","endOfLine","orderedListRegex","noInitialSelection","textToUnstyle","lines","linesBefore","linesToUnstyle","every","lengthDiff","len","results","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","editor","MarkdownArea","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,IAAIV,EAAE,wBAAwBW,KAAKC,UAAUC,UAAU,UAAU,UAAUC,EAAE,OAAOjC,EAAE,0EAA0EkC,EAAE,+BAA+BV,EAAE,2CAA2CW,EAAE,YAAYzC,EAAE,iBAAiB+B,EAAE,UAAU3B,EAAE,qBAAqBsC,EAAE,wEAAwErC,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/B,EAAE,CAACgC,MAAM,CAAC,QAAQ,eAAeC,OAAO,CAAC,MAAM,SAASC,QAAQ,CAAC,YAAY,eAAeC,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,SAASC,EAAEA,EAAEhC,GAAG,IAAIO,EAAEzB,EAAEmD,KAAKC,WAAW3B,EAAEP,KAAKO,EAAE,IAAIA,EAAE4B,OAAO,SAASH,GAAGA,IAAIA,EAAE,IAAI,IAAIzB,EAAE,GAAGP,EAAE,GAAG,IAAI,IAAIlB,KAAKc,EAAE,GAAGA,EAAEe,eAAe7B,GAAG,CAAC,IAAI+B,EAAEmB,EAAElD,IAAIc,EAAEd,GAAGsD,MAAMC,QAAQxB,KAAKA,EAAEA,EAAEyB,WAAWC,OAAOC,MAAM,gBAAgBxC,EAAEyC,KAAKC,MAAM1C,EAAEa,EAAE8B,KAAI,SAASX,GAAG,OAAOA,EAAEjD,EAAEiD,IAAI3B,OAAOE,IAAIA,EAAEyB,EAAE3B,KAAK,KAAKE,EAAEyB,EAAE3B,KAAK,CAACA,IAAI2B,EAAEY,OAAO9D,OAAM,OAAOkB,EAAE6C,SAAQ,SAASb,GAAG,IAAIhC,EAAE,EAAEO,EAAEyB,EAAE3B,IAAIA,OAAO,YAAYL,EAAEgC,EAAE3B,OAAOL,EAAE8C,SAAQ,GAAI,WAAW9C,IAAIA,EAAE+C,QAAO,GAAI,aAAa/C,IAAIA,EAAEgD,UAAS,GAAI,YAAYhD,IAAIA,EAAEiD,SAAQ,OAAOjD,EAAvb,CAA0bO,EAAE4B,QAAQ5B,EAAEsB,QAAQ,iBAAiB/C,EAAEyB,EAAEsB,QAAQ,KAAK/C,GAAGA,EAAE,IAAIoE,QAAQ,IAAId,MAAMtD,EAAE,GAAGqE,KAAK,MAAM5C,GAAG0B,KAAKmB,WAAW,IAAIC,OAAO,IAAIpB,KAAKC,SAASL,OAAO,MAAMI,KAAKqB,WAAWrB,KAAKqB,WAAWhD,KAAK2B,MAAMA,KAAKsB,WAAWvB,GAAG,SAASjD,EAAEiD,GAAG,IAAIhC,EAAE,GAAG,OAAOgC,EAAEO,OAAOC,MAAM,aAAaK,SAAQ,SAASb,GAAG,OAAOA,EAAEwB,eAAe,IAAI,MAAMxD,EAAEO,IAAG,EAAG,MAAM,IAAI,OAAO,IAAI,MAAM,IAAI,QAAQ,IAAI,OAAOP,EAAEgC,EAAEwB,cAAc,QAAO,EAAG,MAAM,QAAQxD,EAAEK,IAAI2B,MAAKhC,EAAE,SAASyD,EAAEzB,EAAEhC,EAAEO,EAAEzB,GAAG,GAAGkD,EAAEjC,MAAMC,EAAEgC,EAAE0B,eAAenD,EAAEyB,EAAE2B,aAAa,EAAEC,UAAUV,OAAOpE,EAAEyB,EAAE,eAAesD,OAAO,IAAI,IAAIhD,EAAE,IAAIiD,WAAW,SAAS9B,EAAE+B,cAAclD,GAAG,MAAM/B,KAAK,SAASkF,EAAEhC,EAAEhC,GAAG,OAAOgC,EAAEiC,QAAQjE,EAAEa,EAAE/B,EAAE,KAAK,OAAOkD,EAAEtB,UAAU,CAACwD,YAAYlC,EAAEmC,WAAW,WAAW,OAAOlC,KAAKmC,OAAOb,WAAW,SAASvB,GAAGC,KAAKmC,OAAOnC,KAAKmC,MAAMC,oBAAoB,UAAUpC,KAAKqB,aAAarB,KAAKmC,MAAMpC,GAAGsC,iBAAiB,UAAUrC,KAAKqB,aAAaiB,SAAS,WAAW,OAAOtC,KAAKmC,MAAMrE,OAAOyE,SAAS,SAASxC,GAAGC,KAAKmC,MAAMrE,MAAMiC,GAAGyC,QAAQ,WAAWxC,KAAKmC,MAAMC,oBAAoB,UAAUpC,KAAKqB,YAAYrB,KAAKmC,MAAMnC,KAAKC,SAASD,KAAKmB,WAAWnB,KAAKqB,WAAW,MAAMA,WAAW,SAAStD,GAAG,IAAIA,EAAE0E,iBAAiB,CAAC,IAAI1C,EAAEC,KAAKC,SAASC,OAAOwC,MAAK,SAAS3C,GAAG,OAAO,SAASA,EAAEhC,GAAG,IAAI,IAAIO,KAAKP,EAAE,GAAGA,EAAEW,eAAeJ,IAAIyB,EAAEzB,KAAKP,EAAEO,GAAG,OAAM,EAAG,OAAM,EAAhF,CAAoFP,EAAEgC,EAAE3B,QAAO,GAAG2B,EAAE,CAAC,IAAIzB,EAAE0B,KAAKmC,MAAMrE,MAAM6E,UAAU,EAAE3C,KAAKmC,MAAMV,gBAAgB5E,EAAEmD,KAAKmC,MAAMrE,MAAM6E,UAAU3C,KAAKmC,MAAMV,eAAezB,KAAKmC,MAAMT,cAAc9C,EAAEoB,KAAKmC,MAAMrE,MAAM6E,UAAU3C,KAAKmC,MAAMT,cAAc,OAAO3B,EAAEY,QAAQ,IAAI,SAAS,SAASZ,EAAEhC,EAAEO,EAAEzB,EAAE+B,EAAEjB,GAAG,IAA6GiF,EAAEtF,EAAEuF,EAAEzD,EAAiWlC,EAAhdJ,EAAEwB,EAAE,MAAUhB,GAAJsF,EAAE7E,GAAM+E,YAAY,MAAM,EAA+B,CAACC,KAA9BF,EAAED,EAAED,UAAUrF,GAAuB0F,OAAO1F,EAAE2F,QAA7B7D,EAAEjC,EAAE+F,KAAKL,KAA8BzD,EAAE,KAAiB,GAAGd,EAAEP,GAAG,UAAU,GAAGjB,EAAEiG,MAAMjG,EAAEiG,KAAKI,OAAOrG,EAAEiG,KAAK9B,OAAO,KAAKxB,EAAE,CAAC,IAAIJ,EAAEvC,EAAEmG,OAAOlB,EAAEjF,EAAEmG,QAAO,GAAI,GAAGpG,EAAE,KAAKwC,EAAExC,EAAEc,IAAII,GAAG,KAAKsB,EAAET,QAAQ9B,EAAEmG,QAAQtF,GAAGb,EAAEmG,SAASnG,EAAEiG,MAAMzD,EAAEL,KAAKpC,GAAGkB,EAAEA,EAAE4E,UAAU,EAAE7F,EAAEkG,QAAQlG,EAAEmG,OAAOjB,QAAQzC,EAAE,KAAK5B,IAAIT,EAAEJ,EAAEmG,OAAOtE,EAAEM,KAAK/B,IAAIa,GAAG,KAAKjB,EAAEmG,OAAOjB,QAAQ/E,GAAE,SAAS8C,EAAEhC,GAAG,OAAOqF,SAASrF,GAAG,EAAE,OAAMA,GAAG,KAAKgE,EAAEjF,EAAEmG,OAAOtF,GAAGI,GAAG,KAAWyD,EAAEzB,EAAEhC,EAAElB,EAAEkB,EAAEkD,QAAtf,CAA+fjB,KAAKmC,MAAM7D,EAAEzB,EAAE+B,EAAEoB,KAAKC,SAASL,OAAO7B,EAAEgD,UAAU,MAAM,IAAI,UAAU,SAAShB,EAAEhC,EAAEO,EAAEzB,EAAE+B,GAAG,IAAIjB,EAAEI,EAAEkD,OAAOnE,EAAEiB,EAAE+E,YAAY,MAAM,EAAEhG,EAAEa,IAAIW,EAAEP,EAAE4E,UAAU7F,GAAGwB,EAAEP,EAAEA,EAAE4E,UAAU,EAAE7F,KAAKA,EAAEa,IAAIW,KAAKX,GAAGiB,EAAEqC,QAAQ3C,EAAEA,EAAEA,EAAE0D,QAAQ9E,EAAE0B,GAAGb,GAAGa,EAAE4C,EAAEzB,EAAEhC,EAAEO,EAAEzB,EAAEc,EAAEW,EAAExB,EAAEwB,EAAE2C,OAAOtD,GAAlL,CAAsLqC,KAAKmC,MAAM7D,EAAEzB,EAAE+B,EAAEoB,KAAKC,SAASL,QAAQ,MAAM,IAAI,WAAW,SAASG,EAAEhC,EAAEO,EAAEzB,EAAE+B,EAAEjB,GAAG,IAAIb,EAAEiB,EAAEkD,OAAO2B,EAAE7E,EAAE+E,YAAY,MAAM,EAAEF,EAAE9F,IAAIwB,EAAEP,EAAE4E,UAAUC,GAAGtE,EAAEP,EAAEA,EAAE4E,UAAU,EAAEC,GAAGtE,EAAEqE,UAAU,EAAE/D,EAAEqC,UAAUrC,IAAI9B,GAAG8B,EAAEqC,SAA2BO,EAAEzB,EAAEhC,GAAtBO,EAAEA,EAAE0D,QAAQrE,EAAE,KAAYd,EAAEC,EAAE8F,EAAEtE,EAAE2C,QAAvL,CAAgMjB,KAAKmC,MAAM7D,EAAEzB,EAAE+B,EAAEoB,KAAKC,SAASL,OAAOI,KAAKmB,YAAY,MAAM,IAAI,SAASxD,EAAEqC,KAAKmC,MAAMrF,EAAEwB,EAAEsE,EAAE/F,EAAES,EAAEsB,EAAEiE,EAAE9E,EAAEK,IAAIwE,GAAGC,KAAKpD,GAAGnC,EAAE6F,OAAO,KAAKN,EAAGD,IAAI,MAAMC,GAAIxD,EAAEJ,KAAKnC,OAAI+F,KAAKnD,IAA0BkD,GAAGC,KAAKrD,GAAGA,EAAEqD,GAAG5D,KAAKnC,GAAG0E,EAAE7D,EAAEb,EAAE+F,EAAE,aAAaA,EAAEA,EAAEA,GAAG,OAAOvF,EAAE6F,OAAO,GAAG,KAAK,IAAI7F,EAAER,EAAEmE,OAAO,EAAEnE,EAAEmE,OAAO,GAAG4B,IAAI/F,EAAEuG,OAAO,IAAIR,IAAIvF,EAAE+F,MAAM,EAAE,GAAG7B,EAAE7D,EAAEb,EAAEuG,MAAM,GAAG,GAAGT,EAAEtF,EAAE+F,MAAM,GAAGvG,EAAEmE,OAAO,EAAEnE,EAAEmE,OAAO,EAAE2B,EAAE3B,QAAQO,EAAE7D,EAAEb,GAAG4C,EAAEmD,IAAIA,GAAGD,GAAGnD,EAAEoD,IAAIA,GAAGvF,EAAER,EAAEmE,OAAO,EAAEnE,EAAEmE,OAAO,EAAE2B,EAAE3B,QAAvRO,EAAE7D,EAAEb,EAAE+F,EAAEvF,EAAER,EAAEmE,OAAO,GAA4QO,EAAE7D,EAAEb,GAAGsC,EAAEH,KAAK4D,GAAGA,EAAEA,EAAE,IAAIvF,EAAER,EAAEmE,OAAO,GAAGlD,EAAEuF,kBAAkB,IAAI3F,EAAEb,EAAE8F,EAAEtF,EAAEuF,IAAI9C,IAA/wI,gC,cCAhEnD,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,iB,+ECArB,SAASwE,EAAeC,EAAUC,GAC/CD,EAAS/E,UAAYlB,OAAOY,OAAOsF,EAAWhF,WAC9C+E,EAAS/E,UAAUwD,YAAcuB,EACjCA,EAASE,UAAYD,E,oBCDjBE,EAAczE,UAAU0E,UAAUC,MAAM,aAAe,OAAS,UAEjDC,E,gGACnBC,SAAA,SAASC,GACP,YAAMD,SAAN,UAAeC,GAEDC,SAASC,eAAelE,KAAKmE,MAAMC,KAE3C/B,iBAAiB,UAAWrC,KAAKqE,SAAShG,KAAK2B,Q,EAGvDsE,KAAA,SAAKN,GACH,OAAO,SAAKO,GAAG,kBAAkBC,WAAUxE,KAAKmE,MAAMC,IAAKK,MAAO,CAAEC,QAAS,iBAC1EV,EAAMW,W,EAIXN,SAAA,SAASO,GACP,GAAKA,EAAM5D,SAA2B,SAAhB2C,GAA4BiB,EAAM/D,SAA2B,YAAhB8C,EAA4B,CAC7F,IAAMkB,EAAS7E,KAAK8E,QAAQC,cAAb,iBAA4CH,EAAMxG,IAAlD,MAEXyG,IACFA,EAAOG,QACPJ,EAAMtB,oB,GArB+B2B,K,gBCJ9B,SAASC,IAetB,OAdAA,EAAW3H,OAAO4H,QAAU,SAAUC,GACpC,IAAK,IAAIvI,EAAI,EAAGA,EAAI8E,UAAUV,OAAQpE,IAAK,CACzC,IAAIwI,EAAS1D,UAAU9E,GAEvB,IAAK,IAAIuB,KAAOiH,EACV9H,OAAOkB,UAAUC,eAAe1B,KAAKqI,EAAQjH,KAC/CgH,EAAOhH,GAAOiH,EAAOjH,IAK3B,OAAOgH,IAGO3E,MAAMT,KAAM2B,WCVvB,IAAI2D,EAAgB,KCApB,SAASC,EAAgBC,GAC9B,OAAOA,EAAOlF,OAAOC,MAAM,MAAMU,OAAS,EAGrC,SAASwE,EAAOD,EAAQlH,GAC7B,OAAO6B,MAAM7B,EAAI,GAAG4C,KAAKsE,GAGpB,SAASE,EAAmBC,EAAM9I,GAGvC,IAFA,IAAI+I,EAAQ/I,EAEL8I,EAAKC,IAA6B,MAAnBD,EAAKC,EAAQ,KAAeD,EAAKC,EAAQ,GAAG/B,MAAM,OACtE+B,IAGF,OAAOA,EAGF,SAASC,EAAiBF,EAAM9I,EAAGiJ,GAIxC,IAHA,IAAIF,EAAQ/I,EACNkJ,EAAaD,EAAY,KAAO,KAE/BH,EAAKC,KAAWD,EAAKC,GAAO/B,MAAMkC,IACvCH,IAGF,OAAOA,EAwBF,SAASI,EAA+BC,GAC7C,IAMIC,EACAC,EAPEC,EAAkBH,EAASnI,MAAMuF,MAAM,EAAG4C,EAASxE,gBACnD4E,EAAiBJ,EAASnI,MAAMuF,MAAM4C,EAASvE,cAC/C4E,EAAeF,EAAgBvC,MAAM,QACrC0C,EAAcF,EAAexC,MAAM,QACnC2C,EAA0BF,EAAeA,EAAa,GAAGrF,OAAS,EAClEwF,EAAyBF,EAAcA,EAAY,GAAGtF,OAAS,EAoBrE,OAhBImF,EAAgBvC,MAAM,OAAS2C,EAA0B,IAC3DN,EAAmBT,EAAO,KAAM,EAAIe,IAGlCH,EAAexC,MAAM,OAAS4C,EAAyB,IACzDN,EAAoBV,EAAO,KAAM,EAAIgB,IAGf,MAApBP,IACFA,EAAmB,IAGI,MAArBC,IACFA,EAAoB,IAGf,CACLD,mBACAC,qBAIG,IAAMO,EAAa,SAACT,EAAUU,GACnC,IAEQ1D,EAAsG0D,EAAtG1D,OAAQ2D,EAA8FD,EAA9FC,OAAQC,EAAsFF,EAAtFE,YAAaC,EAAyEH,EAAzEG,YAAaC,EAA4DJ,EAA5DI,YAAaC,EAA+CL,EAA/CK,YAAaC,EAAkCN,EAAlCM,QAASC,EAAyBP,EAAzBO,qBAC/EC,EAAyBlB,EAASxE,eAClC2F,EAAuBnB,EAASvE,aAClC2F,EAAepB,EAASnI,MAAMuF,MAAM4C,EAASxE,eAAgBwE,EAASvE,cACtE4F,EAAc/B,EAAgB8B,IAAiBR,EAAY5F,OAAS,EAAO4F,EAA7D,KAA+E5D,EAC7FsE,EAAchC,EAAgB8B,IAAiBP,EAAY7F,OAAS,EAAtD,KAA+D6F,EAAgBF,EAEjG,GAAII,EAAa,CACf,IAAMZ,EAAkBH,EAASnI,MAAMmI,EAASxE,eAAiB,GACjC,IAA5BwE,EAASxE,gBAA2C,MAAnB2E,GAA4BA,EAAgBvC,MAAM,QACrFyD,EAAc,IAAIA,GAItBD,EAtEK,SAA4BpB,EAAUqB,EAAaC,GACxD,IAAIzB,EAAYnE,UAAUV,OAAS,QAAsBuG,IAAjB7F,UAAU,IAAmBA,UAAU,GAE/E,GAAIsE,EAASxE,iBAAmBwE,EAASvE,aACvCuE,EAASxE,eAAiBiE,EAAmBO,EAASnI,MAAOmI,EAASxE,gBACtEwE,EAASvE,aAAemE,EAAiBI,EAASnI,MAAOmI,EAASvE,aAAcoE,OAC3E,CACL,IAAM2B,EAAyBxB,EAASxE,eAAiB6F,EAAYrG,OAC/DyG,EAAuBzB,EAASvE,aAAe6F,EAAYtG,OAC3D0G,EAAmB1B,EAASnI,MAAMuF,MAAMoE,EAAwBxB,EAASxE,kBAAoB6F,EAC7FM,EAAiB3B,EAASnI,MAAMuF,MAAM4C,EAASvE,aAAcgG,KAA0BH,EAEzFI,GAAoBC,IACtB3B,EAASxE,eAAiBgG,EAC1BxB,EAASvE,aAAegG,GAI5B,OAAOzB,EAASnI,MAAMuF,MAAM4C,EAASxE,eAAgBwE,EAASvE,cAoD/CmG,CAAmB5B,EAAUqB,EAAaC,EAAaZ,EAAIb,WAC1E,IAAIrE,EAAiBwE,EAASxE,eAC1BC,EAAeuE,EAASvE,aACtBoG,EAAiBf,EAAY9F,OAAS,GAAKsG,EAAYQ,QAAQhB,IAAgB,GAAKM,EAAapG,OAAS,EAEhH,GAAIiG,EAAsB,CACxB,IAAMc,EAAMhC,EAA+BC,GAG3CqB,EAFmBU,EAAI9B,iBAEUjD,EACjCsE,GAFoBS,EAAI7B,kBAK1B,GAAIkB,EAAaY,WAAWX,IAAgBD,EAAaa,SAASX,GAAc,CAC9E,IAAMY,EAAkBd,EAAahE,MAAMiE,EAAYrG,OAAQoG,EAAapG,OAASsG,EAAYtG,QACjG,GAAIkG,IAA2BC,EAAsB,CACnD,IAAIgB,EAAWjB,EAAyBG,EAAYrG,OACpDmH,EAAWC,KAAKC,IAAIF,EAAU3G,GAE9BA,EAAiBC,EADjB0G,EAAWC,KAAKE,IAAIH,EAAU3G,EAAiB0G,EAAgBlH,aAI/DS,EAAeD,EAAiB0G,EAAgBlH,OAElD,MAAO,CAAE0E,KAAMwC,EAAiB1G,iBAAgBC,gBAE7C,GAAKoG,EAcL,OAAIb,EAAQhG,OAAS,GAAKoG,EAAaxD,MAAMoD,GAIzC,CAAEtB,KAFe2B,GADxBC,EAAcA,EAAYvF,QAAQ+E,EAAaM,IAGf5F,eADhCA,EAAiBC,EAAeD,EAAiB6F,EAAYrG,OACbS,gBAMzC,CAAEiE,KAHe2B,EAAcD,EAAeE,EAGrB9F,eAFhCA,EAAiBA,EAAiB6F,EAAYrG,OAASoG,EAAapG,OAASsG,EAAYQ,QAAQhB,GAEjDrF,aADhDA,EAAeD,EAAiBsF,EAAY9F,QAtB5C,IAAIkH,EAAkBb,EAAcD,EAAeE,EACnD9F,EAAiB0F,EAAyBG,EAAYrG,OACtDS,EAAe0F,EAAuBE,EAAYrG,OAClD,IAAMuH,EAAkBnB,EAAaxD,MAAM,cAC3C,GAAI8C,EAAI8B,WAAaD,EAAiB,CACpC,IAAME,EAAoBF,EAAgB,IAAM,GAC1CG,EAAqBH,EAAgB,IAAM,GACjDL,EAAkBO,EAAoBpB,EAAcD,EAAa/G,OAASiH,EAAcoB,EACxFlH,GAAkBiH,EAAkBzH,OACpCS,GAAgBiH,EAAmB1H,OAErC,MAAO,CAAE0E,KAAMwC,EAAiB1G,iBAAgBC,iBCtIvCkH,EAAoB,SAAC3C,EAAU4C,GAC1C,IACIC,EADEnD,EAAOM,EAASnI,MAAMuF,MAAM4C,EAASxE,eAAgBwE,EAASvE,cAGlEoH,EADED,EAAUE,YD0KW,SAAC9C,GAC1B,IAEIvE,EACAD,EAIAuH,EAAaC,EAPXC,EAAmB,YACnBC,EAAqBlD,EAASxE,iBAAmBwE,EAASvE,aAG5DiE,EAAOM,EAASnI,MAAMuF,MAAM4C,EAASxE,eAAgBwE,EAASvE,cAC9D0H,EAAgBzD,EAChB0D,EAAQ1D,EAAKpF,MAAM,MAEvB,GAAI4I,EAAoB,CACtB,IAAMG,EAAcrD,EAASnI,MAAMuF,MAAM,EAAG4C,EAASxE,gBAAgBlB,MAAM,MAC3EyI,EAAc/C,EAASxE,eAAiB6H,EAAYA,EAAYrI,OAAS,GAAGA,OAC5EgI,EAAYpD,EAAiBI,EAASnI,MAAOmI,EAASxE,gBAAgB,GACtE2H,EAAgBnD,EAASnI,MAAMuF,MAAM2F,EAAaC,GAEpD,IAAMM,EAAiBH,EAAc7I,MAAM,MAE3C,GADoBgJ,EAAeC,OAAM,SAAAzG,GAAI,OAAImG,EAAiBjK,KAAK8D,OAIrE,GADA4C,GADA0D,EAAQE,EAAe7I,KAAI,SAAAqC,GAAI,OAAIA,EAAKf,QAAQkH,EAAkB,QACrDhI,KAAK,MACdiI,GAAsBH,GAAeC,EAAW,CAClD,IAAMQ,EAAaF,EAAe,GAAGtI,OAASoI,EAAM,GAAGpI,OACvDQ,EAAiBC,EAAeuE,EAASxE,eAAiBgI,EAC1DxD,EAASxE,eAAiBuH,EAC1B/C,EAASvE,aAAeuH,OAGvB,CAYHtD,GAXA0D,EAAS,WACP,IAAIxM,EACA6M,EACA9D,EACE+D,EAAU,GAChB,IAAK/D,EAAQ/I,EAAI,EAAG6M,EAAML,EAAMpI,OAAQpE,EAAI6M,EAAK9D,IAAU/I,EAAG,CAC5D,IAAMkG,EAAOsG,EAAMzD,GACnB+D,EAAQnJ,KAAQoF,EAAQ,EAAxB,KAA8B7C,GAEhC,OAAO4G,EATA,IAWIzI,KAAK,MAZf,MAa6C8E,EAA+BC,GAAvEC,EAbL,EAaKA,iBAAkBC,EAbvB,EAauBA,kBAE1BzE,GADAD,EAAiBwE,EAASxE,eAAiByE,EAAiBjF,QAC5B0E,EAAK1E,OACjCkI,IACF1H,EAAiBC,GACnBiE,EAAOO,EAAmBP,EAAOQ,EAEnC,MAAO,CAAER,OAAMlE,iBAAgBC,gBCxNpBqH,CAAY9C,GAEd4C,EAAU/C,WAAaP,EAAgBI,GDgJpB,SAACM,EAAUU,GAAQ,IACvC1D,EAAyC0D,EAAzC1D,OAAQ2D,EAAiCD,EAAjCC,OAAQM,EAAyBP,EAAzBO,qBACpBvB,EAAOM,EAASnI,MAAMuF,MAAM4C,EAASxE,eAAgBwE,EAASvE,cAC9DD,EAAiBwE,EAASxE,eAC1BC,EAAeuE,EAASvE,aACtB2H,EAAQ1D,EAAKpF,MAAM,MAEzB,GADkB8I,EAAMG,OAAM,SAAAzG,GAAI,OAAIA,EAAKkF,WAAWhF,IAAWF,EAAKmF,SAAStB,MAG7ElF,EAAeD,GADfkE,EAAO0D,EAAM3I,KAAI,SAAAqC,GAAI,OAAIA,EAAKM,MAAMJ,EAAOhC,OAAQ8B,EAAK9B,OAAS2F,EAAO3F,WAASC,KAAK,OACjDD,YAIrC,GADA0E,EAAO0D,EAAM3I,KAAI,SAAAqC,GAAI,OAAIE,EAASF,EAAO6D,KAAQ1F,KAAK,MAClDgG,EAAsB,OACwBlB,EAA+BC,GAAvEC,EADgB,EAChBA,iBAAkBC,EADF,EACEA,kBAE1BzE,GADAD,GAAkByE,EAAiBjF,QACH0E,EAAK1E,OACrC0E,EAAOO,EAAmBP,EAAOQ,EAGrC,MAAO,CAAER,OAAMlE,iBAAgBC,gBCnKpBkI,CAAe3D,EAAU4C,GAGzBnC,EAAWT,EAAU4C,GFXnB,SAAC5C,EAAD,GAAsD,IAAzCN,EAAyC,EAAzCA,KAAMlE,EAAmC,EAAnCA,eAAgBC,EAAmB,EAAnBA,aAC1CyF,EAAyBlB,EAASxE,eAClCoI,EAAS5D,EAASnI,MAAMuF,MAAM,EAAG8D,GACjC2C,EAAQ7D,EAASnI,MAAMuF,MAAM4C,EAASvE,cAE5C,GAAsB,OAAlB4D,IAA4C,IAAlBA,EAAwB,CACpDW,EAAS8D,gBAAkB,OAC3B,IACEzE,EAAgBrB,SAAS+F,YAAY,cAAc,EAAOrE,GAE5D,MAAOsE,GACL3E,GAAgB,EAElBW,EAAS8D,gBAAkB,QAK7B,GAHIzE,IAAkBW,EAASnI,MAAMuF,MAAM,EAAG4C,EAASxE,gBAAgByG,SAASvC,KAC9EL,GAAgB,IAEbA,EAAe,CAClB,IACErB,SAAS+F,YAAY,oBAEvB,MAAOjK,IAGPkG,EAASnI,MAAQ+L,EAASlE,EAAOmE,EACjC,IACE7F,SAAS+F,YAAY,kBAEvB,MAAOjK,IAKP,IAAM6E,EAAQX,SAASiG,YAAY,SAEnCtF,EAAMuF,UAAU,SAAS,GAAM,GAE/BlE,EAASnE,cAAc8C,GAEH,MAAlBnD,GAA0C,MAAhBC,EAC5BuE,EAASmE,kBAAkB3I,EAAgBC,GAG3CuE,EAASmE,kBAAkBjD,EAAwBlB,EAASvE,cE9B9D2I,CAAWpE,EAAU6C,ICjBjBnF,EAAczE,UAAU0E,UAAUC,MAAM,aAAe,IAAM,OAE9CyG,E,gGACnBvG,SAAA,SAASC,GACP,YAAMD,SAAN,UAAeC,GAEfhE,KAAKuK,IAAIC,W,EAGXlG,KAAA,WACE,OACE,YAAQmG,UAAU,mCAAmCC,MAAO1K,KAAK0K,QAASC,cAAa3K,KAAKmE,MAAMyG,OAChGC,QAAS7K,KAAKgF,MAAM3G,KAAK2B,MAAO8K,UAAW9K,KAAK+K,QAAQ1M,KAAK2B,OAC5DgL,IAAKhL,KAAKmE,MAAM6G,Q,EAKvBD,QAAA,SAAQnG,GACY,MAAdA,EAAMxG,KAA6B,UAAdwG,EAAMxG,MAC7BwG,EAAMtB,iBACNtD,KAAKgF,U,EAITA,MAAA,WACE,ODNYH,ECMC7E,KAAK8E,QDNEmG,ECMOjL,KAAKmE,MAAMM,MDLlCyG,EAAUrG,EAAOsG,cAgBjB1G,EAAQ,EAAc,GAdX,CACfxB,OAAQ,GACR2D,OAAQ,GACRC,YAAa,GACbC,YAAa,GACbhB,WAAW,EACXiB,YAAa,GACbC,aAAa,EACbC,QAAS,GACTC,sBAAsB,EACtB6B,aAAa,EACbN,WAAW,GAG6BwC,SAEpCG,EAAQnH,SAASC,eAAegH,EAAQG,QAAQjH,QAGpDgH,EAAME,QACN1C,EAAkBwC,EAAO3G,KAvBd,IAACI,EAAQoG,EAChBC,EAgBAzG,EAEA2G,G,ECVNV,MAAA,WACE,IAAIF,EAAUxK,KAAKmE,MAAMuG,MAIzB,OAFI1K,KAAKmE,MAAMyG,SAAQJ,GAAW,KAAK7G,EAAT,IAAwB3D,KAAKmE,MAAMyG,OAAnC,KAEvBJ,G,GAhCiCvF;;;;;;;;;ACU5CsG,IAAIC,aAAaC,IAAI,mBAAmB,SAASF,GAC/C,IAAI3F,EAAQ,EAEZ8F,iBAAOC,IAAWlN,UAAW,UAAU,WACrCuB,KAAK4L,WAAa,WAAYhG,OAGhC8F,iBAAOC,IAAWlN,UAAW,QAAQ,SAASoN,GAC5CA,EAAKlH,SAAS,GAAGR,MAAMI,GAAKvE,KAAK4L,cAGnCF,iBAAOC,IAAWlN,UAAW,YAAY,WACvCuB,KAAK8L,OAAS,IAAIC,IAAa/L,KAAKuK,EAAE,YAAY,GAAI,CACpDrK,OAAQ,CACNN,OAAQ,CAAC,UACTC,QAAS,CAAC,UACVC,OAAQ,SAKd4L,iBAAOC,IAAWlN,UAAW,YAAY,WACvCuB,KAAK8L,OAAOtJ,aAGdkJ,iBAAOC,IAAWlN,UAAW,gBAAgB,SAASuN,GACpD,IAAMxB,EAAU,SAAApN,GAAI,OAAImO,EAAIU,WAAWC,MAAf,kCAAuD9O,EAAvD,aAExB4O,EAAMP,IAAI,WACR,EAAC,EAAD,CAAiBrH,IAAKpE,KAAK4L,YACzB,EAAC,EAAD,CAAgBlB,MAAOF,EAAQ,UAAWQ,KAAK,iBAAiBvG,MAAO,CAAExB,OAAQ,UACjF,EAAC,EAAD,CAAgByH,MAAOF,EAAQ,QAASQ,KAAK,cAAcvG,MAAO,CAAExB,OAAQ,KAAM2D,OAAQ,KAAM6B,WAAW,GAAQmC,OAAO,MAC1H,EAAC,EAAD,CAAgBF,MAAOF,EAAQ,UAAWQ,KAAK,gBAAgBvG,MAAO,CAAExB,OAAQ,IAAK2D,OAAQ,IAAK6B,WAAW,GAAQmC,OAAO,MAC5H,EAAC,EAAD,CAAgBF,MAAOF,EAAQ,SAAUQ,KAAK,oBAAoBvG,MAAO,CAAExB,OAAQ,KAAM6C,WAAW,EAAMoB,sBAAsB,KAChI,EAAC,EAAD,CAAgBwD,MAAOF,EAAQ,QAASQ,KAAK,cAAcvG,MAAO,CAAExB,OAAQ,IAAK2D,OAAQ,IAAKC,YAAa,MAAOC,YAAa,SAC/H,EAAC,EAAD,CAAgB4D,MAAOF,EAAQ,QAASQ,KAAK,cAAcvG,MAAO,CAAExB,OAAQ,IAAK2D,OAAQ,cAAeG,YAAa,WAAYE,QAAS,eAC1I,EAAC,EAAD,CAAgByD,MAAOF,EAAQ,SAAUQ,KAAK,eAAevG,MAAO,CAAExB,OAAQ,KAAM2D,OAAQ,cAAeG,YAAa,WAAYE,QAAS,eAC7I,EAAC,EAAD,CAAgByD,MAAOF,EAAQ,kBAAmBQ,KAAK,iBAAiBvG,MAAO,CAAExB,OAAQ,KAAM6C,WAAW,EAAMoB,sBAAsB,KACtI,EAAC,EAAD,CAAgBwD,MAAOF,EAAQ,gBAAiBQ,KAAK,iBAAiBvG,MAAO,CAAExB,OAAQ,MAAO6C,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 = 5);\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 n=/mac|iphone|ipad|ipod/i.test(navigator.platform)?\"metaKey\":\"ctrlKey\",u=/[*_]/,d=/^[ \\t]*(?:(?:[-+*]|\\d+\\.)[ \\t]+(?:\\[[ x]][ \\t]+)?|>[ \\t]*)*(?::[ \\t]*)?/,f=/[-=\\s\"'`<>\\[\\](){}+*^$\\\\.|]$/,p=/(?:[-+*]|\\d+\\.)[ \\t]+(?:\\[[ x]][ \\t]+)?$/,y=/^(?:\\n|$)/,i=/[-+*\\[\\]x\\d.]/g,s=/[^ \\t]/g,m=/(\\d+)\\.(?=[ \\t]+$)/,g=/(?:(?:^[ \\t]+)?(?:[-+*]|\\d+\\.|[>:])(?:[ \\t]+\\[[ x]])?[ \\t]*|^[ \\t]+)$/,c=/^(?!$)/gm,_={\"`\":/^``$/m,\"~\":/^~~$/m},v={\"[\":\"]\",\"(\":\")\",\"{\":\"}\",\"<\":\">\"},k={\"]\":\"[\",\")\":\"(\",\"}\":\"{\",\">\":\"<\"},r={enter:[\"Enter\",\"Shift+Enter\"],indent:[\"Tab\",\"Cmd+m\"],outdent:[\"Shift+Tab\",\"Cmd+Shift+m\"],inline:['\"',\"'\",\"`\",\"*\",\"_\",\"[\",\"]\",\"(\",\")\",\"{\",\"}\",\"<\",\">\"]};function e(e,t){var n,i;this._options=((n=t)||(n={}),n.keyMap=function(e){e||(e={});var n={},t=[];for(var i in r)if(r.hasOwnProperty(i)){var s=e[i]||r[i];Array.isArray(s)||(s=s.toString().trim().split(/\\s*[|,]\\s*/g)),t.push.apply(t,s.map(function(e){return(e=l(e)).key in n||(n[e.key]=0),++n[e.key],{key:e,action:i}}))}return t.forEach(function(e){var t;1\n {vnode.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 oncreate(vnode) {\n super.oncreate(vnode);\n\n this.$().tooltip();\n }\n\n view() {\n return (\n \n );\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.attrs.style);\n }\n\n title() {\n let tooltip = this.attrs.title;\n\n if (this.attrs.hotkey) tooltip += ` <${modifierKey}-${this.attrs.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 MarkdownToolbar from './components/MarkdownToolbar';\nimport MarkdownButton from './components/MarkdownButton';\n\napp.initializers.add('flarum-markdown', function(app) {\n let index = 1;\n\n extend(TextEditor.prototype, 'oninit', 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, 'oncreate', function() {\n this.editor = new MarkdownArea(this.$('textarea')[0], {\n keyMap: {\n indent: ['Ctrl+m'],\n outdent: ['Ctrl+M'],\n inline: []\n }\n });\n });\n\n extend(TextEditor.prototype, 'onremove', function () {\n this.editor.destroy();\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['Component']\"","webpack://@flarum/markdown/external \"flarum.core.compat['components/TextEditor']\"","webpack://@flarum/markdown/external \"flarum.core.compat['utils/BasicEditorDriver']\"","webpack://@flarum/markdown/./node_modules/mdarea/dist/index.min.js","webpack://@flarum/markdown/external \"flarum.core.compat['helpers/icon']\"","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","e","u","a","h","f","enter","lastIndexOf","substring","exec","line","offset","prefix","charAt","length","shiftKey","indent","test","replace","parseInt","v","outdent","reOutdent","inline","slice","y","this","options","keyMap","find","action","navigator","platform","g","userAgent","x","k","b","Array","isArray","toString","trim","split","push","apply","map","E","forEach","ctrlKey","altKey","metaKey","toLowerCase","K","document","createElement","setAttribute","tabIndex","contentEditable","textContent","addEventListener","setTimeout","blur","style","position","overflow","left","top","width","height","opacity","w","selectionStart","selectionEnd","scrollLeft","scrollTop","L","lock","elem","T","A","defaultPrevented","extensions","handleKey","preventDefault","C","type","execCommand","O","idx","helper","state","history","S","I","$","splice","focus","assign","scrollTo","D","join","RegExp","ed","onKeyDown","onInput","onUndo","body","appendChild","setElement","cleanup","removeEventListener","init","removeChild","destroy","version","_inheritsLoose","subClass","superClass","constructor","__proto__","modifierKey","match","MarkdownToolbar","oncreate","vnode","attrs","setShortcutHandler","shortcut","view","id","data-for","for","display","children","event","button","element","querySelector","click","Component","_extends","target","arguments","source","canInsertText","isMultipleLines","string","repeat","wordSelectionStart","text","index","wordSelectionEnd","multiline","breakpoint","newlinesToSurroundSelectedText","textarea","newlinesToAppend","newlinesToPrepend","beforeSelection","afterSelection","breaksBefore","breaksAfter","newlinesBeforeSelection","newlinesAfterSelection","blockStyle","arg","suffix","blockPrefix","blockSuffix","replaceNext","prefixSpace","scanFor","surroundWithNewlines","originalSelectionStart","originalSelectionEnd","selectedText","prefixToUse","suffixToUse","undefined","expandedSelectionStart","expandedSelectionEnd","beginsWithPrefix","endsWithSuffix","expandSelectedText","hasReplaceNext","indexOf","ref","startsWith","endsWith","replacementText","Math","max","min","whitespaceEdges","trimFirst","leadingWhitespace","trailingWhitespace","styleSelectedText","styleArgs","result","orderedList","startOfLine","endOfLine","orderedListRegex","noInitialSelection","textToUnstyle","lines","linesBefore","linesToUnstyle","every","lengthDiff","len","results","multilineStyle","before","after","error","createEvent","initEvent","dispatchEvent","setSelectionRange","insertText","MarkdownButton","tooltip","className","title","data-hotkey","hotkey","onclick","onkeydown","keydown","icon","stylesToApply","toolbar","parentElement","field","getElementById","dataset","shortcutHandler","app","initializers","add","extend","TextEditor","textareaId","params","BasicEditorDriver","_","dom","el","mdarea","MarkdownArea","override","original","items","translator","trans","handler"],"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['Component'];","module.exports = flarum.core.compat['components/TextEditor'];","module.exports = flarum.core.compat['utils/BasicEditorDriver'];","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).MarkdownArea=t()}(this,(function(){\"use strict\";const e=/^[ \\t]*(?:(?:[-+*]|\\d+\\.)[ \\t]+(?:\\[[ x]][ \\t]+)?|>[ \\t]*)*(?::[ \\t]*)?/,t=/(?:[-+*]|\\d+\\.)[ \\t]+(?:\\[[ x]][ \\t]+)?$/,n=/[-+*\\[\\]x\\d.]/g,i=/[^ \\t]/g,s=/(\\d+)\\.(?=[ \\t]+$)/,o=/(?:(?:^[ \\t]+)?(?:[-+*]|\\d+\\.|[>:])(?:[ \\t]+\\[[ x]])?[ \\t]*|^[ \\t]+)$/,r=/[*_]/,l=/[-=\\s\"'`<>\\[\\](){}+*^$\\\\.|]$/,u=/^(?:\\n|$)/,c=/^(?!$)/gm,d={\"`\":/^``$/m,\"~\":/^~~$/m},a={\"[\":\"]\",\"(\":\")\",\"{\":\"}\",\"<\":\">\"},h={\"]\":\"[\",\")\":\"(\",\"}\":\"{\",\">\":\"<\"},f={enter:(n,i,r,l,c)=>{const d=r?null:function(t){const n=t.lastIndexOf(\"\\n\")+1,i=t.substring(n),s=e.exec(i);return{line:i,offset:n,prefix:s&&s[0]}}(i);if(d)if(d.line&&d.line.charAt(d.line.length-1)in a){const e=d.prefix?p(d.prefix,!0):\"\";l=\"\\n\"+e+l,c.shiftKey||(i+=\"\\n\"+e+n.indent)}else d.prefix?!c.shiftKey&&d.prefix===d.line&&u.test(l)?i=i.substring(0,d.offset)+function(e){return e.replace(o,\"\")}(d.prefix):!c.shiftKey&&function(e){return t.test(e)}(d.prefix)?i+=\"\\n\"+function(e){return e.replace(s,(function(e,t){return parseInt(t)+1+\".\"}))}(d.prefix):i+=\"\\n\"+p(d.prefix,c.shiftKey):i+=\"\\n\";else i+=\"\\n\";return{v:i+l,s:i.length}},indent:(e,t,n,i)=>{let s=t.length,o=t.lastIndexOf(\"\\n\")+1;return o{let s=t.length,o=t.lastIndexOf(\"\\n\")+1;return on||s.key in a||i.charAt(0)!==s.key?n||(\"'\"!==s.key||l.test(t))&&!(s.key in h)?!n&&s.key in d&&d[s.key].test(t)?{v:t+s.key+\"language\\n\"+s.key+s.key+s.key+(\"\\n\"!==i.charAt(0)?\"\\n\":\"\")+i,s:t.length+1,e:t.length+9}:s.key===t.slice(-1)&&s.key===i.slice(0,1)?{v:t.slice(0,-1)+n+i.slice(1),s:t.length-1,e:t.length-1+n.length}:{v:t+(h[s.key]||s.key)+n+(a[s.key]||s.key)+i,s:t.length+1,e:t.length+1+n.length}:{v:t+s.key+i,s:t.length+1}:{v:t+(r.test(s.key)?s.key+s.key:\"\")+i,s:t.length+1}};class y{constructor(e){this.options=e}handleKey(e,t,n,i){const s=this.options.keyMap.find((e=>function(e,t){for(const n in t)if(t.hasOwnProperty(n)&&e[n]!==t[n])return!1;return!0}(i,e.key)));if(s&&f[s.action])return f[s.action](this.options,e,t,n,i)}}function p(e,t){return e.replace(t?i:n,\" \")}const m=/mac|iphone|ipad|ipod/i.test(navigator.platform),g=/firefox/i.test(navigator.userAgent),x=m?\"metaKey\":\"ctrlKey\",k={enter:[\"Enter\",\"Shift+Enter\"],indent:[\"Tab\",\"Cmd+m\"],outdent:[\"Shift+Tab\",\"Cmd+Shift+m\"],inline:['\"',\"'\",\"`\",\"*\",\"_\",\"[\",\"]\",\"(\",\")\",\"{\",\"}\",\"<\",\">\"]};function v(e={}){const t=function(e=4){\"number\"!=typeof e&&(e=(e+\"\").length);return new Array(e+1).join(\" \")}(e.indent),n={indent:t,reOutdent:new RegExp(\"^\"+t,\"mg\"),keyMap:b(e.keyMap),extensions:e.extensions||[]};return n.extensions.push(new y(n)),n}function b(e={}){const t={},n=[];for(let i in k)if(k.hasOwnProperty(i)){let s=e[i]||k[i];Array.isArray(s)||(s=s.toString().trim().split(/\\s*[|,]\\s*/g)),n.push.apply(n,s.map((e=>{const n=E(e);return n.key in t||(t[n.key]=0),++t[n.key],{key:n,action:i}})))}return n.forEach((e=>{var n;t[e.key.key]>1&&(\"ctrlKey\"in(n=e.key)||(n.ctrlKey=!1),\"altKey\"in n||(n.altKey=!1),\"shiftKey\"in n||(n.shiftKey=!1),\"metaKey\"in n||(n.metaKey=!1))})),n}function E(e){const t={};return e.trim().split(/\\s*\\+\\s*/g).forEach((function(e){switch(e.toLowerCase()){case\"cmd\":t[x]=!0;break;case\"ctrl\":case\"alt\":case\"shift\":case\"meta\":t[e.toLowerCase()+\"Key\"]=!0;break;default:t.key=e}})),t}function K(){const e=document.createElement(\"div\");return e.setAttribute(\"aria-hidden\",\"true\"),e.tabIndex=-1,e.contentEditable=!0,e.textContent=\"0\",e.addEventListener(\"focus\",(()=>setTimeout((()=>e.blur()),0))),e.style.position=\"fixed\",e.style.overflow=\"hidden\",e.style.left=\"-1000px\",e.style.top=\"50%\",e.style.width=e.style.height=\"1px\",e.style.opacity=\"0\",e}function w(e,t=!1){return{s:e.selectionStart,e:e.selectionEnd,x:e.scrollLeft,y:e.scrollTop,v:e.value.replace(/\\u00A0/g,\" \"),c:t}}function L(e,t){e.lock=!0;const n=void 0===t.e?t.s:t.e,i=void 0===t.x?e.elem.scrollLeft:t.x,s=void 0===t.y?e.elem.scrollTop:t.y;T(e,{...t,e:n,x:i,y:s,c:!0},!0),e.lock=!1}function A(e,t){if(!e.elem||t.defaultPrevented)return;if(g&&t[x]&&\"z\"===t.key)return void e.elem.blur();const n=w(e.elem),i=n.v.substring(0,n.s),s=n.v.substring(n.s,n.e),o=n.v.substring(n.e);for(let n=0,r=e.options.extensions.length;ne.cleanup&&e.cleanup(this))),this.ed.elem.removeEventListener(\"input\",this.ed.onInput),this.ed.elem.removeEventListener(\"keydown\",this.ed.onKeyDown)),this.ed.elem=e,e.addEventListener(\"keydown\",this.ed.onKeyDown),e.addEventListener(\"input\",this.ed.onInput),I(this.ed),this.ed.options.extensions.forEach((e=>e.init&&e.init(this)))}getValue(){return this.ed.elem.value.replace(/\\u00A0/g,\" \")}setValue(e,t=!1){this.ed.elem.value=e,t||I(this.ed)}pushState(e){L(this.ed,e)}destroy(){return this.ed.options.extensions.forEach((e=>e.cleanup&&e.cleanup(this))),this.ed.elem.removeEventListener(\"keydown\",this.ed.onKeyDown),this.ed.elem.removeEventListener(\"input\",this.ed.onInput),this.ed.helper.removeEventListener(\"input\",this.ed.onUndo),document.body.removeChild(this.ed.helper),this.ed.options.extensions.forEach((e=>e.destroy&&e.destroy())),Object.assign(this.ed,{elem:null,helper:null,options:null,reOutdent:null,onKeyDown:null,onInput:null,onUndo:null,history:null}),Object.assign(this,{ed:null}),null}}return function(e){e.version=\"v2.0.9\"}(D||(D={})),D}));\n//# sourceMappingURL=index.min.js.map\n","module.exports = flarum.core.compat['helpers/icon'];","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 oncreate(vnode) {\n super.oncreate(vnode);\n\n this.attrs.setShortcutHandler(this.shortcut.bind(this));\n }\n\n view(vnode) {\n return
\n {vnode.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 oncreate(vnode) {\n super.oncreate(vnode);\n\n this.$().tooltip();\n }\n\n view() {\n return (\n \n );\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.attrs.style);\n }\n\n title() {\n let tooltip = this.attrs.title;\n\n if (this.attrs.hotkey) tooltip += ` <${modifierKey}-${this.attrs.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, override } from 'flarum/extend';\nimport TextEditor from 'flarum/components/TextEditor';\nimport BasicEditorDriver from 'flarum/utils/BasicEditorDriver';\nimport MarkdownArea from 'mdarea';\n\nimport MarkdownToolbar from './components/MarkdownToolbar';\nimport MarkdownButton from './components/MarkdownButton';\n\nlet shortcutHandler = () => { };\n\napp.initializers.add('flarum-markdown', function (app) {\n let index = 1;\n\n extend(TextEditor.prototype, 'oninit', function () {\n this.textareaId = 'textarea' + (index++);\n });\n\n extend(TextEditor.prototype, 'buildEditorParams', function (params) {\n params.textareaId = this.textareaId;\n });\n\n extend(BasicEditorDriver.prototype, 'build', function (_, dom, params) {\n this.el.id = params.textareaId;\n\n // We can't bind shortcutHandler directly in case `build`\n // runs before MarkdownToolbar's `oninit`.\n this.el.addEventListener('keydown', function (e) {\n return shortcutHandler(...arguments);\n });\n\n this.mdarea = new MarkdownArea(this.el, {\n keyMap: {\n indent: ['Ctrl+m'],\n outdent: ['Ctrl+M'],\n inline: []\n }\n });\n });\n\n override(BasicEditorDriver.prototype, 'destroy', function (original) {\n this.mdarea.destroy();\n original();\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 shortcutHandler = handler}>\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