diff --git a/extensions/markdown/js/dist/forum.js b/extensions/markdown/js/dist/forum.js index 6aeaf67fc..3875fddee 100644 --- a/extensions/markdown/js/dist/forum.js +++ b/extensions/markdown/js/dist/forum.js @@ -1,2 +1,2 @@ -module.exports=function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=4)}([function(t,e){t.exports=flarum.core.compat["helpers/icon"]},function(t,e){t.exports=flarum.core.compat.extend},function(t,e){t.exports=flarum.core.compat["components/TextEditor"]},function(t,e,n){var i,r,o;"undefined"!=typeof self&&self,r=[],void 0===(o="function"==typeof(i=function(){var t=/mac|iphone|ipad|ipod/i.test(navigator.platform)?"metaKey":"ctrlKey",e=/^["'`*_[({<>})\]]$/,n=/[*_]/,i=/^[ \t]*(?:(?:[-+*]|\d+\.)[ \t]+(?:\[[ x]][ \t]+)?|>[ \t]*)*(?::[ \t]*)?/,r=/(?:[-+*]|\d+\.)[ \t]+(?:\[[ x]][ \t]+)?$/,o=/[-+*\[\]x\d.]/g,l=/[^ \t]/g,s=/(\d+)\.(?=[ \t]+$)/,a=/(?:(?:^[ \t]+)?(?:[-+*]|\d+\.|[>:])(?:[ \t]+\[[ x]])?[ \t]*|^[ \t]+)$/,c=/^(?!$)/gm,u={"`":/^``$/m,"~":/^~~$/m},d={"[":"]","(":")","{":"}","<":">"},f={"]":"[",")":"(","}":"{",">":"<"};function h(t){this._useTab=!0,this._useInline=!0,this._indent=" ",this._reOutdent=/^[ ]{4}/gm,this._reKey=p(!0,!0),this._handleKey=this._handleKey.bind(this),this.setElement(t)}function p(t,e){return new RegExp("^(?:Enter"+(t?"|Tab":"")+"|[io"+(e?"\"'`*_([{<>}\\])":"")+"])$")}function m(t,e,n,i){if(t.value=e,t.selectionStart=n,t.selectionEnd=arguments.length>3?i:n,"InputEvent"in window)try{var r=new InputEvent("input");t.dispatchEvent(r)}catch(i){}}return h.prototype={constructor:h,getElement:function(){return this._elem},setElement:function(t){this._elem&&this._elem.removeEventListener("keydown",this._handleKey),this._elem=t,t.addEventListener("keydown",this._handleKey)},getValue:function(){return this._elem.value},setValue:function(t){this._elem.value=t},getIndent:function(){return this._indent},setIndent:function(t){this._indent="number"==typeof t?new Array(t+1).join(" "):(t+"").replace(/[^ \t]/g," "),this._reOutdent=new RegExp("^"+this._indent,"mg")},isTabUsed:function(){return this._useTab},useTab:function(){this._useTab=!0,this._reKey=p(!0,this._useInline)},ignoreTab:function(){this._useTab=!1,this._reKey=p(!1,this._useInline)},isInlineEnabled:function(){return this._useInline},enableInline:function(){this._useInline=!0,this._reKey=p(this._useTab,!0)},disableInline:function(){this._useInline=!1,this._reKey=p(this._useTab,!1)},destroy:function(){this._elem.removeEventListener("keydown",this._handleKey),this._elem=this._reKey=this._handleKey=this._indent=this._reOutdent=null},_handleKey:function(h){if(!h.defaultPrevented&&this._reKey.test(h.key)){var p=h.target.value.substring(0,h.target.selectionStart),v=h.target.value.substring(h.target.selectionStart,h.target.selectionEnd),g=h.target.value.substring(h.target.selectionEnd);if("Enter"!==h.key||h.ctrlKey||h.altKey||h.metaKey)if("Tab"===h.key&&!h.shiftKey||"i"===h.key&&h[t])!function(t,e,n,i,r){var o=e.length,l=e.lastIndexOf("\n")+1;l ",multiline:!0,surroundWithNewlines:!0}),t}return p(e,_),e}();window.customElements.get("md-quote")||(window.MarkdownQuoteButtonElement=E,window.customElements.define("md-quote",E));var x=function(t){function e(){f(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"`",suffix:"`",blockPrefix:"```",blockSuffix:"```"}),t}return p(e,_),e}();window.customElements.get("md-code")||(window.MarkdownCodeButtonElement=x,window.customElements.define("md-code",x));var k=function(t){function e(){f(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"[",suffix:"](url)",replaceNext:"url",scanFor:"https?://"}),t}return p(e,_),d(e,[{key:"connectedCallback",value:function(){u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"connectedCallback",this).call(this),this.setAttribute("hotkey","k")}}]),e}();window.customElements.get("md-link")||(window.MarkdownLinkButtonElement=k,window.customElements.define("md-link",k));var O=function(t){function e(){f(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"- ",multiline:!0,surroundWithNewlines:!0}),t}return p(e,_),e}();window.customElements.get("md-unordered-list")||(window.MarkdownUnorderedListButtonElement=O,window.customElements.define("md-unordered-list",O));var S=function(t){function e(){f(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"1. ",multiline:!0,orderedList:!0}),t}return p(e,_),e}();window.customElements.get("md-ordered-list")||(window.MarkdownOrderedListButtonElement=S,window.customElements.define("md-ordered-list",S));var j=function(t){function e(){f(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"- [ ] ",multiline:!0,surroundWithNewlines:!0}),t}return p(e,_),d(e,[{key:"connectedCallback",value:function(){u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"connectedCallback",this).call(this),this.setAttribute("hotkey","L")}}]),e}();window.customElements.get("md-task-list")||(window.MarkdownTaskListButtonElement=j,window.customElements.define("md-task-list",j));var P=function(t){function e(){f(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"@",prefixSpace:!0}),t}return p(e,_),e}();window.customElements.get("md-mention")||(window.MarkdownMentionButtonElement=P,window.customElements.define("md-mention",P));var T=function(t){function e(){f(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"#",prefixSpace:!0}),t}return p(e,_),e}();window.customElements.get("md-ref")||(window.MarkdownRefButtonElement=T,window.customElements.define("md-ref",T));var M=navigator.userAgent.match(/Macintosh/)?"Meta":"Control",I=function(t){function e(){return f(this,e),h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this))}return p(e,v),d(e,[{key:"connectedCallback",value:function(){var t=function(t,e){if(e.metaKey&&"Meta"===M||e.ctrlKey&&"Control"===M){var n=t.querySelector('[hotkey="'+e.key+'"]');n&&(n.click(),e.preventDefault())}}.bind(null,this);this.field&&(this.field.addEventListener("keydown",t),K.set(this,t))}},{key:"disconnectedCallback",value:function(){var t=K.get(this);t&&this.field&&(this.field.removeEventListener("keydown",t),K.delete(this))}},{key:"field",get:function(){var t=this.getAttribute("for");if(t){var e=document.getElementById(t);return e instanceof HTMLTextAreaElement?e:null}}}]),e}(),K=new WeakMap;function A(t){return t.trim().split("\n").length>1}function C(t,e){return Array(e+1).join(t)}window.customElements.get("markdown-toolbar")||(window.MarkdownToolbarElement=I,window.customElements.define("markdown-toolbar",I));var L=null;function B(t,e){var n=t.value.slice(t.selectionStart,t.selectionEnd),i=void 0;i=e.orderedList?function(t){var e=/^\d+\.\s+/,n=void 0,i=void 0,r=t.value.slice(t.selectionStart,t.selectionEnd),o=r.split("\n");if(o.every(function(t){return e.test(t)}))o=o.map(function(t){return t.replace(e,"")}),r=o.join("\n");else{o=function(){var t=void 0,e=void 0,n=void 0,i=[];for(n=t=0,e=o.length;t0?l+"\n":r,v=A(p)&&s.length>0?"\n"+s:o;if(c){var g=t.value[t.selectionStart-1];0===t.selectionStart||null==g||g.match(/\s/)||(m=" "+m)}p=function(t,e,n){if(t.selectionStart===t.selectionEnd)t.selectionStart=function(t,e){for(;t[e]&&null!=t[e-1]&&!t[e-1].match(/\s/);)e--;return e}(t.value,t.selectionStart),t.selectionEnd=function(t,e){for(;t[e]&&!t[e].match(/\s/);)e++;return e}(t.value,t.selectionEnd);else{var i=t.selectionStart-e.length,r=t.selectionEnd+n.length,o=t.value.slice(i,t.selectionStart)===e,l=t.value.slice(t.selectionEnd,r)===n;o&&l&&(t.selectionStart=i,t.selectionEnd=r)}return t.value.slice(t.selectionStart,t.selectionEnd)}(t,m,v);var _=t.selectionStart,y=t.selectionEnd,b=a.length>0&&v.indexOf(a)>-1&&p.length>0;if(d){var w=W(t);n=w.newlinesToAppend,i=w.newlinesToPrepend,m=n+r,v+=i}if(p.startsWith(m)&&p.endsWith(v)){var E=p.slice(m.length,p.length-v.length);if(f===h){var x=f-m.length;x=Math.max(x,_),x=Math.min(x,_+E.length),_=y=x}else y=_+E.length;return{text:E,selectionStart:_,selectionEnd:y}}if(b){if(u.length>0&&p.match(u)){v=v.replace(a,p);var k=m+v;return _=y=_+m.length,{text:k,selectionStart:_,selectionEnd:y}}var O=m+p+v;return _=_+m.length+p.length+v.indexOf(a),y=_+a.length,{text:O,selectionStart:_,selectionEnd:y}}var S=m+p+v;_=f+m.length,y=h+m.length;var j=p.match(/^\s*|\s*$/g);if(e.trimFirst&&j){var P=j[0]||"",T=j[1]||"";S=P+m+p.trim()+v+T,_+=P.length,y-=T.length}return{text:S,selectionStart:_,selectionEnd:y}}(t,e),function(t,e){var n=e.text,i=e.selectionStart,r=e.selectionEnd,o=t.selectionStart,l=t.value.slice(0,o),s=t.value.slice(t.selectionEnd);if(null===L||!0===L){t.contentEditable="true";try{L=document.execCommand("insertText",!1,n)}catch(t){L=!1}t.contentEditable="false"}if(L&&!t.value.slice(0,t.selectionStart).endsWith(n)&&(L=!1),!L){try{document.execCommand("ms-beginUndoUnit")}catch(t){}t.value=l+n+s;try{document.execCommand("ms-endUndoUnit")}catch(t){}t.dispatchEvent(new CustomEvent("input",{bubbles:!0,cancelable:!0}))}null!=i&&null!=r?t.setSelectionRange(i,r):t.setSelectionRange(o,t.selectionEnd)}(t,i)}function W(t){var e=t.value.slice(0,t.selectionStart),n=t.value.slice(t.selectionEnd),i=e.match(/\n*$/),r=n.match(/^\n*/),o=i?i[0].length:0,l=r?r[0].length:0,s=void 0,a=void 0;return e.match(/\S/)&&o<2&&(s=C("\n",2-o)),n.match(/\S/)&&l<2&&(a=C("\n",2-l)),null==s&&(s=""),null==a&&(a=""),{newlinesToAppend:s,newlinesToPrepend:a}}function N(t,e){var n=t.closest("markdown-toolbar");if(n instanceof I){var i=c({},{prefix:"",suffix:"",blockPrefix:"",blockSuffix:"",multiline:!1,replaceNext:"",prefixSpace:!1,scanFor:"",surroundWithNewlines:!1,orderedList:!1,trimFirst:!1},e),r=n.field;r&&(r.focus(),B(r,i))}}var F=n(3),R=n.n(F);app.initializers.add("flarum-markdown",function(t){var e=1;Object(r.extend)(l.a.prototype,"init",function(){this.textareaId="textarea"+e++}),Object(r.extend)(l.a.prototype,"view",function(t){t.children[0].attrs.id=this.textareaId}),Object(r.extend)(l.a.prototype,"configTextarea",function(t,e,n,i){if(!n){var r=new R.a(e);r.disableInline(),i.onunload=function(){r.destroy()}}}),Object(r.extend)(l.a.prototype,"toolbarItems",function(e){var n={className:"Button Button--icon Button--link",config:function(t){return $(t).tooltip()}},r=function(e){return t.translator.trans("flarum-markdown.forum.composer."+e+"_tooltip")};e.add("markdown",m("markdown-toolbar",{for:this.textareaId},m("md-header",i({title:r("header")},n),a()("fas fa-heading")),m("md-bold",i({title:r("bold")+" "},n),a()("fas fa-bold")),m("md-italic",i({title:r("italic")+" "},n),a()("fas fa-italic")),m("md-quote",i({title:r("quote")},n),a()("fas fa-quote-left")),m("md-code",i({title:r("code")},n),a()("fas fa-code")),m("md-link",i({title:r("link")+" "},n),a()("fas fa-link")),m("md-unordered-list",i({title:r("unordered_list")},n),a()("fas fa-list-ul")),m("md-ordered-list",i({title:r("ordered_list")},n),a()("fas fa-list-ol"))),100)})})}]); +module.exports=function(t){var e={};function n(o){if(e[o])return e[o].exports;var i=e[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},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 o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(o,i,function(e){return t[e]}.bind(null,i));return o},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["helpers/icon"]},function(t,e){t.exports=flarum.core.compat.extend},function(t,e){t.exports=flarum.core.compat["components/TextEditor"]},function(t,e,n){var o,i,r;"undefined"!=typeof self&&self,i=[],void 0===(r="function"==typeof(o=function(){var t=/mac|iphone|ipad|ipod/i.test(navigator.platform)?"metaKey":"ctrlKey",e=/^["'`*_[({<>})\]]$/,n=/[*_]/,o=/^[ \t]*(?:(?:[-+*]|\d+\.)[ \t]+(?:\[[ x]][ \t]+)?|>[ \t]*)*(?::[ \t]*)?/,i=/(?:[-+*]|\d+\.)[ \t]+(?:\[[ x]][ \t]+)?$/,r=/[-+*\[\]x\d.]/g,l=/[^ \t]/g,a=/(\d+)\.(?=[ \t]+$)/,s=/(?:(?:^[ \t]+)?(?:[-+*]|\d+\.|[>:])(?:[ \t]+\[[ x]])?[ \t]*|^[ \t]+)$/,c=/^(?!$)/gm,u={"`":/^``$/m,"~":/^~~$/m},f={"[":"]","(":")","{":"}","<":">"},d={"]":"[",")":"(","}":"{",">":"<"};function h(t){this._useTab=!0,this._useInline=!0,this._indent=" ",this._reOutdent=/^[ ]{4}/gm,this._reKey=p(!0,!0),this._handleKey=this._handleKey.bind(this),this.setElement(t)}function p(t,e){return new RegExp("^(?:Enter"+(t?"|Tab":"")+"|[io"+(e?"\"'`*_([{<>}\\])":"")+"])$")}function m(t,e,n,o){if(t.value=e,t.selectionStart=n,t.selectionEnd=arguments.length>3?o:n,"InputEvent"in window)try{var i=new InputEvent("input");t.dispatchEvent(i)}catch(o){}}return h.prototype={constructor:h,getElement:function(){return this._elem},setElement:function(t){this._elem&&this._elem.removeEventListener("keydown",this._handleKey),this._elem=t,t.addEventListener("keydown",this._handleKey)},getValue:function(){return this._elem.value},setValue:function(t){this._elem.value=t},getIndent:function(){return this._indent},setIndent:function(t){this._indent="number"==typeof t?new Array(t+1).join(" "):(t+"").replace(/[^ \t]/g," "),this._reOutdent=new RegExp("^"+this._indent,"mg")},isTabUsed:function(){return this._useTab},useTab:function(){this._useTab=!0,this._reKey=p(!0,this._useInline)},ignoreTab:function(){this._useTab=!1,this._reKey=p(!1,this._useInline)},isInlineEnabled:function(){return this._useInline},enableInline:function(){this._useInline=!0,this._reKey=p(this._useTab,!0)},disableInline:function(){this._useInline=!1,this._reKey=p(this._useTab,!1)},destroy:function(){this._elem.removeEventListener("keydown",this._handleKey),this._elem=this._reKey=this._handleKey=this._indent=this._reOutdent=null},_handleKey:function(h){if(!h.defaultPrevented&&this._reKey.test(h.key)){var p=h.target.value.substring(0,h.target.selectionStart),v=h.target.value.substring(h.target.selectionStart,h.target.selectionEnd),g=h.target.value.substring(h.target.selectionEnd);if("Enter"!==h.key||h.ctrlKey||h.altKey||h.metaKey)if("Tab"===h.key&&!h.shiftKey||"i"===h.key&&h[t])!function(t,e,n,o,i){var r=e.length,l=e.lastIndexOf("\n")+1;l ",multiline:!0,surroundWithNewlines:!0}),t}return p(e,y),e}();window.customElements.get("md-quote")||(window.MarkdownQuoteButtonElement=E,window.customElements.define("md-quote",E));var C=function(t){function e(){d(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"`",suffix:"`",blockPrefix:"```",blockSuffix:"```"}),t}return p(e,y),e}();window.customElements.get("md-code")||(window.MarkdownCodeButtonElement=C,window.customElements.define("md-code",C));var k=function(t){function e(){d(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"[",suffix:"](url)",replaceNext:"url",scanFor:"https?://"}),t}return p(e,y),f(e,[{key:"connectedCallback",value:function(){u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"connectedCallback",this).call(this),this.setAttribute("hotkey","k")}}]),e}();window.customElements.get("md-link")||(window.MarkdownLinkButtonElement=k,window.customElements.define("md-link",k));var x=function(t){function e(){d(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"- ",multiline:!0,surroundWithNewlines:!0}),t}return p(e,y),e}();window.customElements.get("md-unordered-list")||(window.MarkdownUnorderedListButtonElement=x,window.customElements.define("md-unordered-list",x));var O=function(t){function e(){d(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"1. ",multiline:!0,orderedList:!0}),t}return p(e,y),e}();window.customElements.get("md-ordered-list")||(window.MarkdownOrderedListButtonElement=O,window.customElements.define("md-ordered-list",O));var S=function(t){function e(){d(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"- [ ] ",multiline:!0,surroundWithNewlines:!0}),t}return p(e,y),f(e,[{key:"connectedCallback",value:function(){u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"connectedCallback",this).call(this),this.setAttribute("hotkey","L")}}]),e}();window.customElements.get("md-task-list")||(window.MarkdownTaskListButtonElement=S,window.customElements.define("md-task-list",S));var j=function(t){function e(){d(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"@",prefixSpace:!0}),t}return p(e,y),e}();window.customElements.get("md-mention")||(window.MarkdownMentionButtonElement=j,window.customElements.define("md-mention",j));var N=function(t){function e(){d(this,e);var t=h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return g.set(t,{prefix:"#",prefixSpace:!0}),t}return p(e,y),e}();window.customElements.get("md-ref")||(window.MarkdownRefButtonElement=N,window.customElements.define("md-ref",N));var T=navigator.userAgent.match(/Macintosh/)?"Meta":"Control",M=function(t){function e(){return d(this,e),h(this,(e.__proto__||Object.getPrototypeOf(e)).call(this))}return p(e,v),f(e,[{key:"connectedCallback",value:function(){var t=function(t,e){if(e.metaKey&&"Meta"===T||e.ctrlKey&&"Control"===T){var n=t.querySelector('[hotkey="'+e.key+'"]');n&&(n.click(),e.preventDefault())}}.bind(null,this);this.field&&(this.field.addEventListener("keydown",t),A.set(this,t))}},{key:"disconnectedCallback",value:function(){var t=A.get(this);t&&this.field&&(this.field.removeEventListener("keydown",t),A.delete(this))}},{key:"field",get:function(){var t=this.getAttribute("for");if(t){var e=document.getElementById(t);return e instanceof HTMLTextAreaElement?e:null}}}]),e}(),A=new WeakMap;function P(t){return t.trim().split("\n").length>1}function L(t,e){return Array(e+1).join(t)}window.customElements.get("markdown-toolbar")||(window.MarkdownToolbarElement=M,window.customElements.define("markdown-toolbar",M));var D=null;function I(t,e){var n=t.value.slice(t.selectionStart,t.selectionEnd),o=void 0;o=e.orderedList?function(t){var e=/^\d+\.\s+/,n=void 0,o=void 0,i=t.value.slice(t.selectionStart,t.selectionEnd),r=i.split("\n");if(r.every(function(t){return e.test(t)}))r=r.map(function(t){return t.replace(e,"")}),i=r.join("\n");else{r=function(){var t=void 0,e=void 0,n=void 0,o=[];for(n=t=0,e=r.length;t0?l+"\n":i,v=P(p)&&a.length>0?"\n"+a:r;if(c){var g=t.value[t.selectionStart-1];0===t.selectionStart||null==g||g.match(/\s/)||(m=" "+m)}p=function(t,e,n){if(t.selectionStart===t.selectionEnd)t.selectionStart=function(t,e){for(;t[e]&&null!=t[e-1]&&!t[e-1].match(/\s/);)e--;return e}(t.value,t.selectionStart),t.selectionEnd=function(t,e){for(;t[e]&&!t[e].match(/\s/);)e++;return e}(t.value,t.selectionEnd);else{var o=t.selectionStart-e.length,i=t.selectionEnd+n.length,r=t.value.slice(o,t.selectionStart)===e,l=t.value.slice(t.selectionEnd,i)===n;r&&l&&(t.selectionStart=o,t.selectionEnd=i)}return t.value.slice(t.selectionStart,t.selectionEnd)}(t,m,v);var y=t.selectionStart,w=t.selectionEnd,b=s.length>0&&v.indexOf(s)>-1&&p.length>0;if(f){var _=F(t);n=_.newlinesToAppend,o=_.newlinesToPrepend,m=n+i,v+=o}if(p.startsWith(m)&&p.endsWith(v)){var E=p.slice(m.length,p.length-v.length);if(d===h){var C=d-m.length;C=Math.max(C,y),C=Math.min(C,y+E.length),y=w=C}else w=y+E.length;return{text:E,selectionStart:y,selectionEnd:w}}if(b){if(u.length>0&&p.match(u)){v=v.replace(s,p);var k=m+v;return y=w=y+m.length,{text:k,selectionStart:y,selectionEnd:w}}var x=m+p+v;return y=y+m.length+p.length+v.indexOf(s),w=y+s.length,{text:x,selectionStart:y,selectionEnd:w}}var O=m+p+v;y=d+m.length,w=h+m.length;var S=p.match(/^\s*|\s*$/g);if(e.trimFirst&&S){var j=S[0]||"",N=S[1]||"";O=j+m+p.trim()+v+N,y+=j.length,w-=N.length}return{text:O,selectionStart:y,selectionEnd:w}}(t,e),function(t,e){var n=e.text,o=e.selectionStart,i=e.selectionEnd,r=t.selectionStart,l=t.value.slice(0,r),a=t.value.slice(t.selectionEnd);if(null===D||!0===D){t.contentEditable="true";try{D=document.execCommand("insertText",!1,n)}catch(t){D=!1}t.contentEditable="false"}if(D&&!t.value.slice(0,t.selectionStart).endsWith(n)&&(D=!1),!D){try{document.execCommand("ms-beginUndoUnit")}catch(t){}t.value=l+n+a;try{document.execCommand("ms-endUndoUnit")}catch(t){}t.dispatchEvent(new CustomEvent("input",{bubbles:!0,cancelable:!0}))}null!=o&&null!=i?t.setSelectionRange(o,i):t.setSelectionRange(r,t.selectionEnd)}(t,o)}function F(t){var e=t.value.slice(0,t.selectionStart),n=t.value.slice(t.selectionEnd),o=e.match(/\n*$/),i=n.match(/^\n*/),r=o?o[0].length:0,l=i?i[0].length:0,a=void 0,s=void 0;return e.match(/\S/)&&r<2&&(a=L("\n",2-r)),n.match(/\S/)&&l<2&&(s=L("\n",2-l)),null==a&&(a=""),null==s&&(s=""),{newlinesToAppend:a,newlinesToPrepend:s}}function H(t,e){var n=t.closest("markdown-toolbar");if(n instanceof M){var o=c({},{prefix:"",suffix:"",blockPrefix:"",blockSuffix:"",multiline:!1,replaceNext:"",prefixSpace:!1,scanFor:"",surroundWithNewlines:!1,orderedList:!1,trimFirst:!1},e),i=n.field;i&&(i.focus(),I(i,o))}}var K=n(3),R=n.n(K);app.initializers.add("flarum-markdown",function(t){var e=1;Object(i.extend)(l.a.prototype,"init",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,"configTextarea",function(t,e,n,o){if(!n){var i=new R.a(e);i.disableInline(),o.onunload=function(){i.destroy()}}}),Object(i.extend)(l.a.prototype,"toolbarItems",function(e){var n={className:"Button Button--icon Button--link",config:function(t){return $(t).tooltip()}},i=function(e){return t.translator.trans("flarum-markdown.forum.composer."+e+"_tooltip")};e.add("markdown",m("markdown-toolbar",{for:this.textareaId},m("md-header",o({title:i("header")},n),s()("fas fa-heading")),m("md-bold",o({title:i("bold")+" "},n),s()("fas fa-bold")),m("md-italic",o({title:i("italic")+" "},n),s()("fas fa-italic")),m("md-quote",o({title:i("quote")},n),s()("fas fa-quote-left")),m("md-code",o({title:i("code")},n),s()("fas fa-code")),m("md-link",o({title:i("link")+" "},n),s()("fas fa-link")),m("md-unordered-list",o({title:i("unordered_list")},n),s()("fas fa-list-ul")),m("md-ordered-list",o({title:i("ordered_list")},n),s()("fas fa-list-ol"))),100)})})}]); //# sourceMappingURL=forum.js.map \ No newline at end of file diff --git a/extensions/markdown/js/dist/forum.js.map b/extensions/markdown/js/dist/forum.js.map index bb70219fd..307e51f00 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['helpers/icon']\"","webpack://@flarum/markdown/external \"flarum.core.compat['extend']\"","webpack://@flarum/markdown/external \"flarum.core.compat['components/TextEditor']\"","webpack://@flarum/markdown/./node_modules/mdarea/mdarea.js","webpack://@flarum/markdown/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@flarum/markdown/./node_modules/@github/markdown-toolbar-element/dist/index.esm.js","webpack://@flarum/markdown/./src/forum/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","flarum","core","compat","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","self","undefined","ctrlKey","test","navigator","platform","reInlineKey","reDoubledInline","rePrefix","reList","reCleanIndent","rePureIndent","reIncrement","reStripLast","reMkIndent","codeBlocks","`","~","openingParens","[","(","{","<","closingParens","]",")","}",">","MarkdownArea","elem","this","_useTab","_useInline","_indent","_reOutdent","_reKey","makeKeyRe","_handleKey","setElement","tab","inline","RegExp","apply","e","selectionStart","selectionEnd","arguments","length","window","evt","InputEvent","dispatchEvent","constructor","getElement","_elem","removeEventListener","addEventListener","getValue","setValue","getIndent","setIndent","indent","Array","join","replace","isTabUsed","useTab","ignoreTab","isInlineEnabled","enableInline","disableInline","destroy","defaultPrevented","prefix","target","substring","selection","postfix","altKey","metaKey","shiftKey","lastIndexOf","handleIndentKey","reOutdent","handleOutdentKey","charAt","handleInlineKey","shift","info","str","offset","line","exec","getLineInfo","isList","_","parseInt","increment","pure","toIndent","stripLast","handleEnterKey","preventDefault","_extends","assign","source","index_esm_extends","_get","receiver","Function","desc","getOwnPropertyDescriptor","parent","getPrototypeOf","_createClass","defineProperties","props","descriptor","configurable","writable","Constructor","protoProps","staticProps","_classCallCheck","instance","TypeError","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","_CustomElement","Reflect","construct","HTMLElement","styles","WeakMap","MarkdownButtonElement","_CustomElement2","_this","style","applyStyle","fn","event","keydown","hasAttribute","setAttribute","MarkdownHeaderButtonElement","_MarkdownButtonElemen","_this2","set","customElements","define","MarkdownBoldButtonElement","_MarkdownButtonElemen2","_this3","suffix","trimFirst","MarkdownItalicButtonElement","_MarkdownButtonElemen3","_this4","MarkdownQuoteButtonElement","_MarkdownButtonElemen4","_this5","multiline","surroundWithNewlines","MarkdownCodeButtonElement","_MarkdownButtonElemen5","_this6","blockPrefix","blockSuffix","MarkdownLinkButtonElement","_MarkdownButtonElemen6","_this7","replaceNext","scanFor","MarkdownUnorderedListButtonElement","_MarkdownButtonElemen7","_this8","MarkdownOrderedListButtonElement","_MarkdownButtonElemen8","_this9","orderedList","MarkdownTaskListButtonElement","_MarkdownButtonElemen9","_this10","MarkdownMentionButtonElement","_MarkdownButtonElemen10","_this11","prefixSpace","MarkdownRefButtonElement","_MarkdownButtonElemen11","_this12","modifierKey","userAgent","match","MarkdownToolbarElement","_CustomElement3","toolbar","button","querySelector","click","field","shortcutListeners","delete","id","getAttribute","document","getElementById","HTMLTextAreaElement","isMultipleLines","string","trim","split","repeat","canInsertText","styleSelectedText","textarea","styleArgs","text","slice","result","orderedListRegex","lines","every","map","len","index","results","push","_newlinesToSurroundSe2","newlinesToSurroundSelectedText","_newlinesToAppend2","newlinesToAppend","_newlinesToPrepend2","newlinesToPrepend","arg","startsWith","endsWith","_newlinesToSurroundSe","_newlinesToAppend","_newlinesToPrepend","multilineStyle","originalSelectionStart","originalSelectionEnd","selectedText","prefixToUse","suffixToUse","beforeSelection","wordSelectionStart","wordSelectionEnd","expandedSelectionStart","expandedSelectionEnd","beginsWithPrefix","endsWithSuffix","expandSelectedText","hasReplaceNext","indexOf","ref","replacementText","position","Math","max","min","_replacementText2","_replacementText3","_replacementText","whitespaceEdges","leadingWhitespace","trailingWhitespace","blockStyle","_ref","before","after","contentEditable","execCommand","error","CustomEvent","bubbles","cancelable","setSelectionRange","insertText","afterSelection","breaksBefore","breaksAfter","newlinesBeforeSelection","newlinesAfterSelection","closest","focus","app","initializers","add","extend","TextEditor","textareaId","vdom","children","attrs","element","isInitialized","context","editor","onunload","items","className","config","elm","$","tooltip","translator","trans","for","title","icon"],"mappings":"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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 = 4);\n","module.exports = flarum.core.compat['helpers/icon'];","module.exports = flarum.core.compat['extend'];","module.exports = flarum.core.compat['components/TextEditor'];","(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n root.MarkdownArea = factory();\n }\n})(typeof self !== 'undefined' ? self : this, function() {\n\n var isMac = /mac|iphone|ipad|ipod/i.test(navigator.platform),\n ctrlKey = isMac ? 'metaKey' : 'ctrlKey',\n reInlineKey = /^[\"'`*_[({<>})\\]]$/,\n reDoubledInline = /[*_]/,\n rePrefix = /^[ \\t]*(?:(?:[-+*]|\\d+\\.)[ \\t]+(?:\\[[ x]][ \\t]+)?|>[ \\t]*)*(?::[ \\t]*)?/,\n reList = /(?:[-+*]|\\d+\\.)[ \\t]+(?:\\[[ x]][ \\t]+)?$/,\n reCleanIndent = /[-+*\\[\\]x\\d.]/g,\n rePureIndent = /[^ \\t]/g,\n reIncrement = /(\\d+)\\.(?=[ \\t]+$)/,\n reStripLast = /(?:(?:^[ \\t]+)?(?:[-+*]|\\d+\\.|[>:])(?:[ \\t]+\\[[ x]])?[ \\t]*|^[ \\t]+)$/,\n reMkIndent = /^(?!$)/mg,\n codeBlocks = {'`': /^``$/m, '~': /^~~$/m},\n openingParens = {'[': ']', '(': ')', '{': '}', '<': '>'},\n closingParens = {']': '[', ')': '(', '}': '{', '>': '<'};\n\n\n function MarkdownArea(elem) {\n this._useTab = true;\n this._useInline = true;\n this._indent = ' ';\n this._reOutdent = /^[ ]{4}/mg;\n this._reKey = makeKeyRe(true, true);\n this._handleKey = this._handleKey.bind(this);\n this.setElement(elem);\n }\n\n MarkdownArea.prototype = {\n constructor: MarkdownArea,\n\n getElement: function () {\n return this._elem;\n },\n\n setElement: function (elem) {\n if (this._elem) {\n this._elem.removeEventListener('keydown', this._handleKey);\n }\n\n this._elem = elem;\n elem.addEventListener('keydown', this._handleKey);\n },\n\n getValue: function () {\n return this._elem.value;\n },\n\n setValue: function (value) {\n this._elem.value = value;\n },\n\n getIndent: function () {\n return this._indent;\n },\n\n setIndent: function (indent) {\n if (typeof indent === 'number') {\n this._indent = new Array(indent + 1).join(' ');\n } else {\n this._indent = (indent + '').replace(/[^ \\t]/g, ' ');\n }\n\n this._reOutdent = new RegExp('^' + this._indent, 'mg');\n },\n\n isTabUsed: function () {\n return this._useTab;\n },\n\n useTab: function () {\n this._useTab = true;\n this._reKey = makeKeyRe(true, this._useInline);\n },\n\n ignoreTab: function () {\n this._useTab = false;\n this._reKey = makeKeyRe(false, this._useInline);\n },\n\n isInlineEnabled: function() {\n return this._useInline;\n },\n\n enableInline: function () {\n this._useInline = true;\n this._reKey = makeKeyRe(this._useTab, true);\n },\n\n disableInline: function () {\n this._useInline = false;\n this._reKey = makeKeyRe(this._useTab, false);\n },\n\n destroy: function () {\n this._elem.removeEventListener('keydown', this._handleKey);\n this._elem = this._reKey = this._handleKey = this._indent = this._reOutdent = null;\n },\n\n _handleKey: function (evt) {\n if (!evt.defaultPrevented && this._reKey.test(evt.key)) {\n var prefix = evt.target.value.substring(0, evt.target.selectionStart),\n selection = evt.target.value.substring(evt.target.selectionStart, evt.target.selectionEnd),\n postfix = evt.target.value.substring(evt.target.selectionEnd);\n\n if (evt.key === 'Enter' && !evt.ctrlKey && !evt.altKey && !evt.metaKey) {\n handleEnterKey(this._elem, prefix, selection, postfix, evt.shiftKey);\n } else if (evt.key === 'Tab' && !evt.shiftKey || evt.key === 'i' && evt[ctrlKey]) {\n handleIndentKey(this._elem, prefix, selection, postfix, this._indent);\n } else if (evt.key === 'Tab' && evt.shiftKey || evt.key === 'o' && evt[ctrlKey]) {\n handleOutdentKey(this._elem, prefix, selection, postfix, this._indent, this._reOutdent);\n } else if (reInlineKey.test(evt.key)) {\n handleInlineKey(this._elem, prefix, selection, postfix, evt.key);\n } else {\n return;\n }\n\n evt.preventDefault();\n }\n }\n };\n\n\n function makeKeyRe(tab, inline) {\n return new RegExp('^(?:Enter' + (tab ? '|Tab' : '') + '|[io' + (inline ? '\"\\'`*_([{<>}\\\\])' : '') + '])$');\n }\n\n\n function handleEnterKey (elem, prefix, selection, postfix, shift) {\n var info = !selection ? getLineInfo(prefix) : null;\n\n if (!selection && info.prefix) {\n if (!shift && info.prefix === info.line) {\n prefix = prefix.substring(0, info.offset) + stripLast(info.prefix);\n } else if (!shift && isList(info.prefix)) {\n prefix += \"\\n\" + increment(info.prefix);\n } else {\n prefix += \"\\n\" + toIndent(info.prefix, shift);\n }\n } else {\n prefix += \"\\n\";\n }\n\n apply(elem, prefix + postfix, prefix.length);\n }\n\n function handleIndentKey (elem, prefix, selection, postfix, indent) {\n var s = prefix.length,\n n = prefix.lastIndexOf(\"\\n\") + 1;\n\n if (n < s) {\n selection = prefix.substring(n) + selection;\n prefix = prefix.substring(0, n);\n }\n\n if (n < s || !selection) {\n s += indent.length;\n }\n\n if (selection) {\n selection = selection.replace(reMkIndent, indent);\n } else {\n prefix += indent;\n }\n\n apply(elem, prefix + selection + postfix, s, selection ? n + selection.length : s);\n }\n\n function handleOutdentKey (elem, prefix, selection, postfix, indent, reOutdent) {\n var s = prefix.length,\n n = prefix.lastIndexOf(\"\\n\") + 1;\n\n if (n < s) {\n selection = prefix.substring(n) + selection;\n prefix = prefix.substring(0, n);\n\n if (selection.substring(0, indent.length) === indent) {\n s -= indent.length;\n }\n }\n\n selection = selection.replace(reOutdent, '');\n apply(elem, prefix + selection + postfix, s, n + selection.length);\n }\n\n function handleInlineKey (elem, prefix, selection, postfix, key) {\n if (!selection && !(key in openingParens) && postfix.charAt(0) === key) {\n apply(elem, prefix + (reDoubledInline.test(key) ? key + key : '') + postfix, prefix.length + 1);\n } else if (!selection && (key === \"'\" || key in closingParens)) {\n apply(elem, prefix + key + postfix, prefix.length + 1);\n } else if (!selection && key in codeBlocks && codeBlocks[key].test(prefix)) {\n apply(elem, prefix + key + \"language\\n\" + key + key + key + (postfix.charAt(0) !== \"\\n\" ? \"\\n\" : '') + postfix, prefix.length + 1, prefix.length + 9);\n } else {\n apply(\n elem,\n prefix + (closingParens[key] || key) + selection + (openingParens[key] || key) + postfix,\n prefix.length + 1,\n prefix.length + 1 + selection.length\n );\n }\n }\n\n function apply(elem, value, s, e) {\n elem.value = value;\n elem.selectionStart = s;\n elem.selectionEnd = arguments.length > 3 ? e : s;\n\n if ('InputEvent' in window) try {\n var evt = new InputEvent('input');\n elem.dispatchEvent(evt);\n } catch (e) { }\n }\n\n function getLineInfo(str) {\n var offset = str.lastIndexOf(\"\\n\") + 1,\n line = str.substring(offset),\n m = rePrefix.exec(line);\n\n return {\n line: line,\n offset: offset,\n prefix: m && m[0]\n };\n }\n\n function isList(prefix) {\n return reList.test(prefix);\n }\n\n function toIndent(prefix, pure) {\n return prefix.replace(pure ? rePureIndent : reCleanIndent, ' ');\n }\n\n function increment(prefix) {\n return prefix.replace(reIncrement, function (_, n) {\n return (parseInt(n) + 1) + '.';\n })\n }\n\n function stripLast(prefix) {\n return prefix.replace(reStripLast, '');\n }\n\n\n return MarkdownArea;\n\n});\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _CustomElement() {\n return Reflect.construct(HTMLElement, [], this.__proto__.constructor);\n}\n\n;\nObject.setPrototypeOf(_CustomElement.prototype, HTMLElement.prototype);\nObject.setPrototypeOf(_CustomElement, HTMLElement);\nfunction keydown(fn) {\n return function (event) {\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n fn(event);\n }\n };\n}\n\nvar styles = new WeakMap();\n\nvar MarkdownButtonElement = function (_CustomElement2) {\n _inherits(MarkdownButtonElement, _CustomElement2);\n\n function MarkdownButtonElement() {\n _classCallCheck(this, MarkdownButtonElement);\n\n var _this = _possibleConstructorReturn(this, (MarkdownButtonElement.__proto__ || Object.getPrototypeOf(MarkdownButtonElement)).call(this));\n\n var apply = function apply() {\n var style = styles.get(_this);\n if (!style) return;\n applyStyle(_this, style);\n };\n _this.addEventListener('keydown', keydown(apply));\n _this.addEventListener('click', apply);\n return _this;\n }\n\n _createClass(MarkdownButtonElement, [{\n key: 'connectedCallback',\n value: function connectedCallback() {\n if (!this.hasAttribute('tabindex')) {\n this.setAttribute('tabindex', '0');\n }\n\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'button');\n }\n }\n }, {\n key: 'click',\n value: function click() {\n var style = styles.get(this);\n if (!style) return;\n applyStyle(this, style);\n }\n }]);\n\n return MarkdownButtonElement;\n}(_CustomElement);\n\nvar MarkdownHeaderButtonElement = function (_MarkdownButtonElemen) {\n _inherits(MarkdownHeaderButtonElement, _MarkdownButtonElemen);\n\n function MarkdownHeaderButtonElement() {\n _classCallCheck(this, MarkdownHeaderButtonElement);\n\n var _this2 = _possibleConstructorReturn(this, (MarkdownHeaderButtonElement.__proto__ || Object.getPrototypeOf(MarkdownHeaderButtonElement)).call(this));\n\n styles.set(_this2, { prefix: '### ' });\n return _this2;\n }\n\n return MarkdownHeaderButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-header')) {\n window.MarkdownHeaderButtonElement = MarkdownHeaderButtonElement;\n window.customElements.define('md-header', MarkdownHeaderButtonElement);\n}\n\nvar MarkdownBoldButtonElement = function (_MarkdownButtonElemen2) {\n _inherits(MarkdownBoldButtonElement, _MarkdownButtonElemen2);\n\n function MarkdownBoldButtonElement() {\n _classCallCheck(this, MarkdownBoldButtonElement);\n\n var _this3 = _possibleConstructorReturn(this, (MarkdownBoldButtonElement.__proto__ || Object.getPrototypeOf(MarkdownBoldButtonElement)).call(this));\n\n styles.set(_this3, { prefix: '**', suffix: '**', trimFirst: true });\n return _this3;\n }\n\n _createClass(MarkdownBoldButtonElement, [{\n key: 'connectedCallback',\n value: function connectedCallback() {\n _get(MarkdownBoldButtonElement.prototype.__proto__ || Object.getPrototypeOf(MarkdownBoldButtonElement.prototype), 'connectedCallback', this).call(this);\n this.setAttribute('hotkey', 'b');\n }\n }]);\n\n return MarkdownBoldButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-bold')) {\n window.MarkdownBoldButtonElement = MarkdownBoldButtonElement;\n window.customElements.define('md-bold', MarkdownBoldButtonElement);\n}\n\nvar MarkdownItalicButtonElement = function (_MarkdownButtonElemen3) {\n _inherits(MarkdownItalicButtonElement, _MarkdownButtonElemen3);\n\n function MarkdownItalicButtonElement() {\n _classCallCheck(this, MarkdownItalicButtonElement);\n\n var _this4 = _possibleConstructorReturn(this, (MarkdownItalicButtonElement.__proto__ || Object.getPrototypeOf(MarkdownItalicButtonElement)).call(this));\n\n styles.set(_this4, { prefix: '_', suffix: '_', trimFirst: true });\n return _this4;\n }\n\n _createClass(MarkdownItalicButtonElement, [{\n key: 'connectedCallback',\n value: function connectedCallback() {\n _get(MarkdownItalicButtonElement.prototype.__proto__ || Object.getPrototypeOf(MarkdownItalicButtonElement.prototype), 'connectedCallback', this).call(this);\n this.setAttribute('hotkey', 'i');\n }\n }]);\n\n return MarkdownItalicButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-italic')) {\n window.MarkdownItalicButtonElement = MarkdownItalicButtonElement;\n window.customElements.define('md-italic', MarkdownItalicButtonElement);\n}\n\nvar MarkdownQuoteButtonElement = function (_MarkdownButtonElemen4) {\n _inherits(MarkdownQuoteButtonElement, _MarkdownButtonElemen4);\n\n function MarkdownQuoteButtonElement() {\n _classCallCheck(this, MarkdownQuoteButtonElement);\n\n var _this5 = _possibleConstructorReturn(this, (MarkdownQuoteButtonElement.__proto__ || Object.getPrototypeOf(MarkdownQuoteButtonElement)).call(this));\n\n styles.set(_this5, { prefix: '> ', multiline: true, surroundWithNewlines: true });\n return _this5;\n }\n\n return MarkdownQuoteButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-quote')) {\n window.MarkdownQuoteButtonElement = MarkdownQuoteButtonElement;\n window.customElements.define('md-quote', MarkdownQuoteButtonElement);\n}\n\nvar MarkdownCodeButtonElement = function (_MarkdownButtonElemen5) {\n _inherits(MarkdownCodeButtonElement, _MarkdownButtonElemen5);\n\n function MarkdownCodeButtonElement() {\n _classCallCheck(this, MarkdownCodeButtonElement);\n\n var _this6 = _possibleConstructorReturn(this, (MarkdownCodeButtonElement.__proto__ || Object.getPrototypeOf(MarkdownCodeButtonElement)).call(this));\n\n styles.set(_this6, { prefix: '`', suffix: '`', blockPrefix: '```', blockSuffix: '```' });\n return _this6;\n }\n\n return MarkdownCodeButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-code')) {\n window.MarkdownCodeButtonElement = MarkdownCodeButtonElement;\n window.customElements.define('md-code', MarkdownCodeButtonElement);\n}\n\nvar MarkdownLinkButtonElement = function (_MarkdownButtonElemen6) {\n _inherits(MarkdownLinkButtonElement, _MarkdownButtonElemen6);\n\n function MarkdownLinkButtonElement() {\n _classCallCheck(this, MarkdownLinkButtonElement);\n\n var _this7 = _possibleConstructorReturn(this, (MarkdownLinkButtonElement.__proto__ || Object.getPrototypeOf(MarkdownLinkButtonElement)).call(this));\n\n styles.set(_this7, { prefix: '[', suffix: '](url)', replaceNext: 'url', scanFor: 'https?://' });\n return _this7;\n }\n\n _createClass(MarkdownLinkButtonElement, [{\n key: 'connectedCallback',\n value: function connectedCallback() {\n _get(MarkdownLinkButtonElement.prototype.__proto__ || Object.getPrototypeOf(MarkdownLinkButtonElement.prototype), 'connectedCallback', this).call(this);\n this.setAttribute('hotkey', 'k');\n }\n }]);\n\n return MarkdownLinkButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-link')) {\n window.MarkdownLinkButtonElement = MarkdownLinkButtonElement;\n window.customElements.define('md-link', MarkdownLinkButtonElement);\n}\n\nvar MarkdownUnorderedListButtonElement = function (_MarkdownButtonElemen7) {\n _inherits(MarkdownUnorderedListButtonElement, _MarkdownButtonElemen7);\n\n function MarkdownUnorderedListButtonElement() {\n _classCallCheck(this, MarkdownUnorderedListButtonElement);\n\n var _this8 = _possibleConstructorReturn(this, (MarkdownUnorderedListButtonElement.__proto__ || Object.getPrototypeOf(MarkdownUnorderedListButtonElement)).call(this));\n\n styles.set(_this8, { prefix: '- ', multiline: true, surroundWithNewlines: true });\n return _this8;\n }\n\n return MarkdownUnorderedListButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-unordered-list')) {\n window.MarkdownUnorderedListButtonElement = MarkdownUnorderedListButtonElement;\n window.customElements.define('md-unordered-list', MarkdownUnorderedListButtonElement);\n}\n\nvar MarkdownOrderedListButtonElement = function (_MarkdownButtonElemen8) {\n _inherits(MarkdownOrderedListButtonElement, _MarkdownButtonElemen8);\n\n function MarkdownOrderedListButtonElement() {\n _classCallCheck(this, MarkdownOrderedListButtonElement);\n\n var _this9 = _possibleConstructorReturn(this, (MarkdownOrderedListButtonElement.__proto__ || Object.getPrototypeOf(MarkdownOrderedListButtonElement)).call(this));\n\n styles.set(_this9, { prefix: '1. ', multiline: true, orderedList: true });\n return _this9;\n }\n\n return MarkdownOrderedListButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-ordered-list')) {\n window.MarkdownOrderedListButtonElement = MarkdownOrderedListButtonElement;\n window.customElements.define('md-ordered-list', MarkdownOrderedListButtonElement);\n}\n\nvar MarkdownTaskListButtonElement = function (_MarkdownButtonElemen9) {\n _inherits(MarkdownTaskListButtonElement, _MarkdownButtonElemen9);\n\n function MarkdownTaskListButtonElement() {\n _classCallCheck(this, MarkdownTaskListButtonElement);\n\n var _this10 = _possibleConstructorReturn(this, (MarkdownTaskListButtonElement.__proto__ || Object.getPrototypeOf(MarkdownTaskListButtonElement)).call(this));\n\n styles.set(_this10, { prefix: '- [ ] ', multiline: true, surroundWithNewlines: true });\n return _this10;\n }\n\n _createClass(MarkdownTaskListButtonElement, [{\n key: 'connectedCallback',\n value: function connectedCallback() {\n _get(MarkdownTaskListButtonElement.prototype.__proto__ || Object.getPrototypeOf(MarkdownTaskListButtonElement.prototype), 'connectedCallback', this).call(this);\n this.setAttribute('hotkey', 'L');\n }\n }]);\n\n return MarkdownTaskListButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-task-list')) {\n window.MarkdownTaskListButtonElement = MarkdownTaskListButtonElement;\n window.customElements.define('md-task-list', MarkdownTaskListButtonElement);\n}\n\nvar MarkdownMentionButtonElement = function (_MarkdownButtonElemen10) {\n _inherits(MarkdownMentionButtonElement, _MarkdownButtonElemen10);\n\n function MarkdownMentionButtonElement() {\n _classCallCheck(this, MarkdownMentionButtonElement);\n\n var _this11 = _possibleConstructorReturn(this, (MarkdownMentionButtonElement.__proto__ || Object.getPrototypeOf(MarkdownMentionButtonElement)).call(this));\n\n styles.set(_this11, { prefix: '@', prefixSpace: true });\n return _this11;\n }\n\n return MarkdownMentionButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-mention')) {\n window.MarkdownMentionButtonElement = MarkdownMentionButtonElement;\n window.customElements.define('md-mention', MarkdownMentionButtonElement);\n}\n\nvar MarkdownRefButtonElement = function (_MarkdownButtonElemen11) {\n _inherits(MarkdownRefButtonElement, _MarkdownButtonElemen11);\n\n function MarkdownRefButtonElement() {\n _classCallCheck(this, MarkdownRefButtonElement);\n\n var _this12 = _possibleConstructorReturn(this, (MarkdownRefButtonElement.__proto__ || Object.getPrototypeOf(MarkdownRefButtonElement)).call(this));\n\n styles.set(_this12, { prefix: '#', prefixSpace: true });\n return _this12;\n }\n\n return MarkdownRefButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-ref')) {\n window.MarkdownRefButtonElement = MarkdownRefButtonElement;\n window.customElements.define('md-ref', MarkdownRefButtonElement);\n}\n\nvar modifierKey = navigator.userAgent.match(/Macintosh/) ? 'Meta' : 'Control';\n\nvar MarkdownToolbarElement = function (_CustomElement3) {\n _inherits(MarkdownToolbarElement, _CustomElement3);\n\n function MarkdownToolbarElement() {\n _classCallCheck(this, MarkdownToolbarElement);\n\n return _possibleConstructorReturn(this, (MarkdownToolbarElement.__proto__ || Object.getPrototypeOf(MarkdownToolbarElement)).call(this));\n }\n\n _createClass(MarkdownToolbarElement, [{\n key: 'connectedCallback',\n value: function connectedCallback() {\n var fn = shortcut.bind(null, this);\n if (this.field) {\n this.field.addEventListener('keydown', fn);\n shortcutListeners.set(this, fn);\n }\n }\n }, {\n key: 'disconnectedCallback',\n value: function disconnectedCallback() {\n var fn = shortcutListeners.get(this);\n if (fn && this.field) {\n this.field.removeEventListener('keydown', fn);\n shortcutListeners.delete(this);\n }\n }\n }, {\n key: 'field',\n get: function get() {\n var id = this.getAttribute('for');\n if (!id) return;\n var field = document.getElementById(id);\n return field instanceof HTMLTextAreaElement ? field : null;\n }\n }]);\n\n return MarkdownToolbarElement;\n}(_CustomElement);\n\nvar shortcutListeners = new WeakMap();\n\nfunction shortcut(toolbar, event) {\n if (event.metaKey && modifierKey === 'Meta' || event.ctrlKey && modifierKey === 'Control') {\n var button = toolbar.querySelector('[hotkey=\"' + event.key + '\"]');\n if (button) {\n button.click();\n event.preventDefault();\n }\n }\n}\n\nif (!window.customElements.get('markdown-toolbar')) {\n window.MarkdownToolbarElement = MarkdownToolbarElement;\n window.customElements.define('markdown-toolbar', MarkdownToolbarElement);\n}\n\nfunction isMultipleLines(string) {\n return string.trim().split('\\n').length > 1;\n}\n\nfunction repeat(string, n) {\n return Array(n + 1).join(string);\n}\n\nfunction wordSelectionStart(text, index) {\n while (text[index] && text[index - 1] != null && !text[index - 1].match(/\\s/)) {\n index--;\n }\n return index;\n}\n\nfunction wordSelectionEnd(text, index) {\n while (text[index] && !text[index].match(/\\s/)) {\n index++;\n }\n return index;\n}\n\nvar canInsertText = null;\n\nfunction insertText(textarea, _ref) {\n var text = _ref.text,\n selectionStart = _ref.selectionStart,\n selectionEnd = _ref.selectionEnd;\n\n var originalSelectionStart = textarea.selectionStart;\n var before = textarea.value.slice(0, originalSelectionStart);\n var after = textarea.value.slice(textarea.selectionEnd);\n\n if (canInsertText === null || canInsertText === true) {\n textarea.contentEditable = 'true';\n try {\n canInsertText = document.execCommand('insertText', false, text);\n } catch (error) {\n canInsertText = false;\n }\n textarea.contentEditable = 'false';\n }\n\n if (canInsertText && !textarea.value.slice(0, textarea.selectionStart).endsWith(text)) {\n canInsertText = false;\n }\n\n if (!canInsertText) {\n try {\n document.execCommand('ms-beginUndoUnit');\n } catch (e) {\n // Do nothing.\n }\n textarea.value = before + text + after;\n try {\n document.execCommand('ms-endUndoUnit');\n } catch (e) {\n // Do nothing.\n }\n textarea.dispatchEvent(new CustomEvent('input', { bubbles: true, cancelable: true }));\n }\n\n if (selectionStart != null && selectionEnd != null) {\n textarea.setSelectionRange(selectionStart, selectionEnd);\n } else {\n textarea.setSelectionRange(originalSelectionStart, textarea.selectionEnd);\n }\n}\n\nfunction styleSelectedText(textarea, styleArgs) {\n var text = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n\n var result = void 0;\n if (styleArgs.orderedList) {\n result = orderedList(textarea);\n } else if (styleArgs.multiline && isMultipleLines(text)) {\n result = multilineStyle(textarea, styleArgs);\n } else {\n result = blockStyle(textarea, styleArgs);\n }\n\n insertText(textarea, result);\n}\n\nfunction expandSelectedText(textarea, prefixToUse, suffixToUse) {\n if (textarea.selectionStart === textarea.selectionEnd) {\n textarea.selectionStart = wordSelectionStart(textarea.value, textarea.selectionStart);\n textarea.selectionEnd = wordSelectionEnd(textarea.value, textarea.selectionEnd);\n } else {\n var expandedSelectionStart = textarea.selectionStart - prefixToUse.length;\n var expandedSelectionEnd = textarea.selectionEnd + suffixToUse.length;\n var beginsWithPrefix = textarea.value.slice(expandedSelectionStart, textarea.selectionStart) === prefixToUse;\n var endsWithSuffix = textarea.value.slice(textarea.selectionEnd, expandedSelectionEnd) === suffixToUse;\n if (beginsWithPrefix && endsWithSuffix) {\n textarea.selectionStart = expandedSelectionStart;\n textarea.selectionEnd = expandedSelectionEnd;\n }\n }\n return textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n}\n\nfunction newlinesToSurroundSelectedText(textarea) {\n var beforeSelection = textarea.value.slice(0, textarea.selectionStart);\n var afterSelection = textarea.value.slice(textarea.selectionEnd);\n\n var breaksBefore = beforeSelection.match(/\\n*$/);\n var breaksAfter = afterSelection.match(/^\\n*/);\n var newlinesBeforeSelection = breaksBefore ? breaksBefore[0].length : 0;\n var newlinesAfterSelection = breaksAfter ? breaksAfter[0].length : 0;\n\n var newlinesToAppend = void 0;\n var newlinesToPrepend = void 0;\n\n if (beforeSelection.match(/\\S/) && newlinesBeforeSelection < 2) {\n newlinesToAppend = repeat('\\n', 2 - newlinesBeforeSelection);\n }\n\n if (afterSelection.match(/\\S/) && newlinesAfterSelection < 2) {\n newlinesToPrepend = repeat('\\n', 2 - newlinesAfterSelection);\n }\n\n if (newlinesToAppend == null) {\n newlinesToAppend = '';\n }\n\n if (newlinesToPrepend == null) {\n newlinesToPrepend = '';\n }\n\n return { newlinesToAppend: newlinesToAppend, newlinesToPrepend: newlinesToPrepend };\n}\n\nfunction blockStyle(textarea, arg) {\n var newlinesToAppend = void 0;\n var newlinesToPrepend = void 0;\n\n var prefix = arg.prefix,\n suffix = arg.suffix,\n blockPrefix = arg.blockPrefix,\n blockSuffix = arg.blockSuffix,\n replaceNext = arg.replaceNext,\n prefixSpace = arg.prefixSpace,\n scanFor = arg.scanFor,\n surroundWithNewlines = arg.surroundWithNewlines;\n\n var originalSelectionStart = textarea.selectionStart;\n var originalSelectionEnd = textarea.selectionEnd;\n\n var selectedText = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n var prefixToUse = isMultipleLines(selectedText) && blockPrefix.length > 0 ? blockPrefix + '\\n' : prefix;\n var suffixToUse = isMultipleLines(selectedText) && blockSuffix.length > 0 ? '\\n' + blockSuffix : suffix;\n\n if (prefixSpace) {\n var beforeSelection = textarea.value[textarea.selectionStart - 1];\n if (textarea.selectionStart !== 0 && beforeSelection != null && !beforeSelection.match(/\\s/)) {\n prefixToUse = ' ' + prefixToUse;\n }\n }\n selectedText = expandSelectedText(textarea, prefixToUse, suffixToUse);\n var selectionStart = textarea.selectionStart;\n var selectionEnd = textarea.selectionEnd;\n var hasReplaceNext = replaceNext.length > 0 && suffixToUse.indexOf(replaceNext) > -1 && selectedText.length > 0;\n if (surroundWithNewlines) {\n var ref = newlinesToSurroundSelectedText(textarea);\n newlinesToAppend = ref.newlinesToAppend;\n newlinesToPrepend = ref.newlinesToPrepend;\n prefixToUse = newlinesToAppend + prefix;\n suffixToUse += newlinesToPrepend;\n }\n\n if (selectedText.startsWith(prefixToUse) && selectedText.endsWith(suffixToUse)) {\n var replacementText = selectedText.slice(prefixToUse.length, selectedText.length - suffixToUse.length);\n if (originalSelectionStart === originalSelectionEnd) {\n var position = originalSelectionStart - prefixToUse.length;\n position = Math.max(position, selectionStart);\n position = Math.min(position, selectionStart + replacementText.length);\n selectionStart = selectionEnd = position;\n } else {\n selectionEnd = selectionStart + replacementText.length;\n }\n return { text: replacementText, selectionStart: selectionStart, selectionEnd: selectionEnd };\n } else if (!hasReplaceNext) {\n var _replacementText = prefixToUse + selectedText + suffixToUse;\n selectionStart = originalSelectionStart + prefixToUse.length;\n selectionEnd = originalSelectionEnd + prefixToUse.length;\n var whitespaceEdges = selectedText.match(/^\\s*|\\s*$/g);\n if (arg.trimFirst && whitespaceEdges) {\n var leadingWhitespace = whitespaceEdges[0] || '';\n var trailingWhitespace = whitespaceEdges[1] || '';\n _replacementText = leadingWhitespace + prefixToUse + selectedText.trim() + suffixToUse + trailingWhitespace;\n selectionStart += leadingWhitespace.length;\n selectionEnd -= trailingWhitespace.length;\n }\n return { text: _replacementText, selectionStart: selectionStart, selectionEnd: selectionEnd };\n } else if (scanFor.length > 0 && selectedText.match(scanFor)) {\n suffixToUse = suffixToUse.replace(replaceNext, selectedText);\n var _replacementText2 = prefixToUse + suffixToUse;\n selectionStart = selectionEnd = selectionStart + prefixToUse.length;\n return { text: _replacementText2, selectionStart: selectionStart, selectionEnd: selectionEnd };\n } else {\n var _replacementText3 = prefixToUse + selectedText + suffixToUse;\n selectionStart = selectionStart + prefixToUse.length + selectedText.length + suffixToUse.indexOf(replaceNext);\n selectionEnd = selectionStart + replaceNext.length;\n return { text: _replacementText3, selectionStart: selectionStart, selectionEnd: selectionEnd };\n }\n}\n\nfunction multilineStyle(textarea, arg) {\n var prefix = arg.prefix,\n suffix = arg.suffix,\n surroundWithNewlines = arg.surroundWithNewlines;\n\n var text = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n var selectionStart = textarea.selectionStart;\n var selectionEnd = textarea.selectionEnd;\n var lines = text.split('\\n');\n var undoStyle = lines.every(function (line) {\n return line.startsWith(prefix) && line.endsWith(suffix);\n });\n\n if (undoStyle) {\n text = lines.map(function (line) {\n return line.slice(prefix.length, line.length - suffix.length);\n }).join('\\n');\n selectionEnd = selectionStart + text.length;\n } else {\n text = lines.map(function (line) {\n return prefix + line + suffix;\n }).join('\\n');\n if (surroundWithNewlines) {\n var _newlinesToSurroundSe = newlinesToSurroundSelectedText(textarea),\n _newlinesToAppend = _newlinesToSurroundSe.newlinesToAppend,\n _newlinesToPrepend = _newlinesToSurroundSe.newlinesToPrepend;\n\n selectionStart += _newlinesToAppend.length;\n selectionEnd = selectionStart + text.length;\n text = _newlinesToAppend + text + _newlinesToPrepend;\n }\n }\n\n return { text: text, selectionStart: selectionStart, selectionEnd: selectionEnd };\n}\n\nfunction orderedList(textarea) {\n var orderedListRegex = /^\\d+\\.\\s+/;\n var selectionEnd = void 0;\n var selectionStart = void 0;\n var text = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n var lines = text.split('\\n');\n\n var undoStyling = lines.every(function (line) {\n return orderedListRegex.test(line);\n });\n\n if (undoStyling) {\n lines = lines.map(function (line) {\n return line.replace(orderedListRegex, '');\n });\n text = lines.join('\\n');\n } else {\n lines = function () {\n var i = void 0;\n var len = void 0;\n var index = void 0;\n var results = [];\n for (index = i = 0, len = lines.length; i < len; index = ++i) {\n var line = lines[index];\n results.push(index + 1 + '. ' + line);\n }\n return results;\n }();\n text = lines.join('\\n');\n\n var _newlinesToSurroundSe2 = newlinesToSurroundSelectedText(textarea),\n _newlinesToAppend2 = _newlinesToSurroundSe2.newlinesToAppend,\n _newlinesToPrepend2 = _newlinesToSurroundSe2.newlinesToPrepend;\n\n selectionStart = textarea.selectionStart + _newlinesToAppend2.length;\n selectionEnd = selectionStart + text.length;\n text = _newlinesToAppend2 + text + _newlinesToPrepend2;\n }\n\n return { text: text, selectionStart: selectionStart, selectionEnd: selectionEnd };\n}\n\nfunction applyStyle(button, styles) {\n var toolbar = button.closest('markdown-toolbar');\n if (!(toolbar instanceof MarkdownToolbarElement)) return;\n\n var defaults = {\n prefix: '',\n suffix: '',\n blockPrefix: '',\n blockSuffix: '',\n multiline: false,\n replaceNext: '',\n prefixSpace: false,\n scanFor: '',\n surroundWithNewlines: false,\n orderedList: false,\n trimFirst: false\n };\n\n var style = _extends({}, defaults, styles);\n\n var field = toolbar.field;\n if (field) {\n field.focus();\n styleSelectedText(field, style);\n }\n}\n\nexport default MarkdownToolbarElement;\n","import { extend } from 'flarum/extend';\nimport TextEditor from 'flarum/components/TextEditor';\nimport icon from 'flarum/helpers/icon';\n\nimport '@github/markdown-toolbar-element';\nimport MarkdownArea from 'mdarea/mdarea.js';\n\napp.initializers.add('flarum-markdown', function(app) {\n let index = 1;\n\n extend(TextEditor.prototype, 'init', function() {\n this.textareaId = 'textarea'+(index++);\n });\n\n extend(TextEditor.prototype, 'view', function(vdom) {\n vdom.children[0].attrs.id = this.textareaId;\n });\n\n extend(TextEditor.prototype, 'configTextarea', function(value, element, isInitialized, context) {\n if (isInitialized) return;\n\n const editor = new MarkdownArea(element);\n editor.disableInline();\n\n context.onunload = function() {\n editor.destroy();\n };\n });\n\n extend(TextEditor.prototype, 'toolbarItems', function(items) {\n const attrs = {\n className: 'Button Button--icon Button--link',\n config: elm => $(elm).tooltip()\n };\n\n const tooltip = name => app.translator.trans(`flarum-markdown.forum.composer.${name}_tooltip`);\n\n items.add('markdown', (\n \n {icon('fas fa-heading')}\n '} {...attrs}>{icon('fas fa-bold')}\n '} {...attrs}>{icon('fas fa-italic')}\n {icon('fas fa-quote-left')}\n {icon('fas fa-code')}\n '} {...attrs}>{icon('fas fa-link')}\n {icon('fas fa-list-ul')}\n {icon('fas fa-list-ol')}\n \n ), 100);\n });\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://@flarum/markdown/webpack/bootstrap","webpack://@flarum/markdown/external \"flarum.core.compat['helpers/icon']\"","webpack://@flarum/markdown/external \"flarum.core.compat['extend']\"","webpack://@flarum/markdown/external \"flarum.core.compat['components/TextEditor']\"","webpack://@flarum/markdown/./node_modules/mdarea/mdarea.js","webpack://@flarum/markdown/./node_modules/@webcomponents/custom-elements/custom-elements.min.js","webpack://@flarum/markdown/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@flarum/markdown/./node_modules/@github/markdown-toolbar-element/dist/index.esm.js","webpack://@flarum/markdown/./src/forum/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","flarum","core","compat","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","self","undefined","ctrlKey","test","navigator","platform","reInlineKey","reDoubledInline","rePrefix","reList","reCleanIndent","rePureIndent","reIncrement","reStripLast","reMkIndent","codeBlocks","`","~","openingParens","[","(","{","<","closingParens","]",")","}",">","MarkdownArea","elem","this","_useTab","_useInline","_indent","_reOutdent","_reKey","makeKeyRe","_handleKey","setElement","tab","inline","RegExp","apply","e","selectionStart","selectionEnd","arguments","length","window","evt","InputEvent","dispatchEvent","constructor","getElement","_elem","removeEventListener","addEventListener","getValue","setValue","getIndent","setIndent","indent","Array","join","replace","isTabUsed","useTab","ignoreTab","isInlineEnabled","enableInline","disableInline","destroy","defaultPrevented","prefix","target","substring","selection","postfix","altKey","metaKey","shiftKey","lastIndexOf","handleIndentKey","reOutdent","handleOutdentKey","charAt","handleInlineKey","shift","info","str","offset","line","exec","getLineInfo","isList","_","parseInt","increment","pure","toIndent","stripLast","handleEnterKey","preventDefault","aa","Set","split","g","b","a","has","isConnected","__CE_isImportDocument","Document","parentNode","ShadowRoot","host","nextSibling","q","nodeType","Node","ELEMENT_NODE","f","localName","getAttribute","import","add","firstChild","__CE_shadowRoot","u","Map","v","push","w","x","__CE_patched","y","__CE_state","connectedCallback","z","A","disconnectedCallback","B","h","__CE_hasRegistry","readyState","__CE_documentLoadHandled","delete","ownerDocument","defaultView","constructionStack","constructorFunction","Error","pop","__CE_definition","attributeChangedCallback","observedAttributes","C","document","MutationObserver","observe","childList","subtree","D","disconnect","E","F","j","indexOf","addedNodes","Function","TypeError","SyntaxError","k","adoptedCallback","set","ba","da","Promise","reject","some","CustomElementRegistry","define","upgrade","whenDefined","polyfillWrapFlushCallback","G","createElement","H","createElementNS","ea","importNode","fa","prepend","ha","append","ia","DocumentFragment","ja","I","cloneNode","J","appendChild","K","insertBefore","L","removeChild","M","replaceChild","N","getOwnPropertyDescriptor","O","Element","attachShadow","P","Q","R","setAttribute","S","removeAttribute","T","getAttributeNS","U","setAttributeNS","ka","removeAttributeNS","la","insertAdjacentElement","ma","insertAdjacentHTML","na","oa","V","before","pa","after","qa","replaceWith","ra","remove","sa","HTMLElement","W","ta","ua","va","Y","Z","customElements","forcePolyfill","X","setPrototypeOf","writable","configurable","wa","xa","TEXT_NODE","childNodes","slice","textContent","createTextNode","ya","toLowerCase","previousSibling","lastChild","String","innerHTML","content","namespaceURI","console","warn","za","Aa","_extends","assign","source","index_esm_extends","_get","receiver","desc","parent","getPrototypeOf","_createClass","defineProperties","props","descriptor","Constructor","protoProps","staticProps","_classCallCheck","instance","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","__proto__","_CustomElement","Reflect","construct","styles","WeakMap","MarkdownButtonElement","_CustomElement2","_this","style","applyStyle","fn","event","keydown","hasAttribute","MarkdownHeaderButtonElement","_MarkdownButtonElemen","_this2","MarkdownBoldButtonElement","_MarkdownButtonElemen2","_this3","suffix","trimFirst","MarkdownItalicButtonElement","_MarkdownButtonElemen3","_this4","MarkdownQuoteButtonElement","_MarkdownButtonElemen4","_this5","multiline","surroundWithNewlines","MarkdownCodeButtonElement","_MarkdownButtonElemen5","_this6","blockPrefix","blockSuffix","MarkdownLinkButtonElement","_MarkdownButtonElemen6","_this7","replaceNext","scanFor","MarkdownUnorderedListButtonElement","_MarkdownButtonElemen7","_this8","MarkdownOrderedListButtonElement","_MarkdownButtonElemen8","_this9","orderedList","MarkdownTaskListButtonElement","_MarkdownButtonElemen9","_this10","MarkdownMentionButtonElement","_MarkdownButtonElemen10","_this11","prefixSpace","MarkdownRefButtonElement","_MarkdownButtonElemen11","_this12","modifierKey","userAgent","match","MarkdownToolbarElement","_CustomElement3","toolbar","button","querySelector","click","field","shortcutListeners","id","getElementById","HTMLTextAreaElement","isMultipleLines","string","trim","repeat","canInsertText","styleSelectedText","textarea","styleArgs","text","result","orderedListRegex","lines","every","map","len","index","results","_newlinesToSurroundSe2","newlinesToSurroundSelectedText","_newlinesToAppend2","newlinesToAppend","_newlinesToPrepend2","newlinesToPrepend","arg","startsWith","endsWith","_newlinesToSurroundSe","_newlinesToAppend","_newlinesToPrepend","multilineStyle","originalSelectionStart","originalSelectionEnd","selectedText","prefixToUse","suffixToUse","beforeSelection","wordSelectionStart","wordSelectionEnd","expandedSelectionStart","expandedSelectionEnd","beginsWithPrefix","endsWithSuffix","expandSelectedText","hasReplaceNext","ref","replacementText","position","Math","max","min","_replacementText2","_replacementText3","_replacementText","whitespaceEdges","leadingWhitespace","trailingWhitespace","blockStyle","_ref","contentEditable","execCommand","error","CustomEvent","bubbles","cancelable","setSelectionRange","insertText","afterSelection","breaksBefore","breaksAfter","newlinesBeforeSelection","newlinesAfterSelection","closest","focus","app","initializers","extend","TextEditor","textareaId","vdom","children","attrs","element","isInitialized","context","editor","onunload","items","className","config","elm","$","tooltip","translator","trans","for","title","icon"],"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 = 5);\n","module.exports = flarum.core.compat['helpers/icon'];","module.exports = flarum.core.compat['extend'];","module.exports = flarum.core.compat['components/TextEditor'];","(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n root.MarkdownArea = factory();\n }\n})(typeof self !== 'undefined' ? self : this, function() {\n\n var isMac = /mac|iphone|ipad|ipod/i.test(navigator.platform),\n ctrlKey = isMac ? 'metaKey' : 'ctrlKey',\n reInlineKey = /^[\"'`*_[({<>})\\]]$/,\n reDoubledInline = /[*_]/,\n rePrefix = /^[ \\t]*(?:(?:[-+*]|\\d+\\.)[ \\t]+(?:\\[[ x]][ \\t]+)?|>[ \\t]*)*(?::[ \\t]*)?/,\n reList = /(?:[-+*]|\\d+\\.)[ \\t]+(?:\\[[ x]][ \\t]+)?$/,\n reCleanIndent = /[-+*\\[\\]x\\d.]/g,\n rePureIndent = /[^ \\t]/g,\n reIncrement = /(\\d+)\\.(?=[ \\t]+$)/,\n reStripLast = /(?:(?:^[ \\t]+)?(?:[-+*]|\\d+\\.|[>:])(?:[ \\t]+\\[[ x]])?[ \\t]*|^[ \\t]+)$/,\n reMkIndent = /^(?!$)/mg,\n codeBlocks = {'`': /^``$/m, '~': /^~~$/m},\n openingParens = {'[': ']', '(': ')', '{': '}', '<': '>'},\n closingParens = {']': '[', ')': '(', '}': '{', '>': '<'};\n\n\n function MarkdownArea(elem) {\n this._useTab = true;\n this._useInline = true;\n this._indent = ' ';\n this._reOutdent = /^[ ]{4}/mg;\n this._reKey = makeKeyRe(true, true);\n this._handleKey = this._handleKey.bind(this);\n this.setElement(elem);\n }\n\n MarkdownArea.prototype = {\n constructor: MarkdownArea,\n\n getElement: function () {\n return this._elem;\n },\n\n setElement: function (elem) {\n if (this._elem) {\n this._elem.removeEventListener('keydown', this._handleKey);\n }\n\n this._elem = elem;\n elem.addEventListener('keydown', this._handleKey);\n },\n\n getValue: function () {\n return this._elem.value;\n },\n\n setValue: function (value) {\n this._elem.value = value;\n },\n\n getIndent: function () {\n return this._indent;\n },\n\n setIndent: function (indent) {\n if (typeof indent === 'number') {\n this._indent = new Array(indent + 1).join(' ');\n } else {\n this._indent = (indent + '').replace(/[^ \\t]/g, ' ');\n }\n\n this._reOutdent = new RegExp('^' + this._indent, 'mg');\n },\n\n isTabUsed: function () {\n return this._useTab;\n },\n\n useTab: function () {\n this._useTab = true;\n this._reKey = makeKeyRe(true, this._useInline);\n },\n\n ignoreTab: function () {\n this._useTab = false;\n this._reKey = makeKeyRe(false, this._useInline);\n },\n\n isInlineEnabled: function() {\n return this._useInline;\n },\n\n enableInline: function () {\n this._useInline = true;\n this._reKey = makeKeyRe(this._useTab, true);\n },\n\n disableInline: function () {\n this._useInline = false;\n this._reKey = makeKeyRe(this._useTab, false);\n },\n\n destroy: function () {\n this._elem.removeEventListener('keydown', this._handleKey);\n this._elem = this._reKey = this._handleKey = this._indent = this._reOutdent = null;\n },\n\n _handleKey: function (evt) {\n if (!evt.defaultPrevented && this._reKey.test(evt.key)) {\n var prefix = evt.target.value.substring(0, evt.target.selectionStart),\n selection = evt.target.value.substring(evt.target.selectionStart, evt.target.selectionEnd),\n postfix = evt.target.value.substring(evt.target.selectionEnd);\n\n if (evt.key === 'Enter' && !evt.ctrlKey && !evt.altKey && !evt.metaKey) {\n handleEnterKey(this._elem, prefix, selection, postfix, evt.shiftKey);\n } else if (evt.key === 'Tab' && !evt.shiftKey || evt.key === 'i' && evt[ctrlKey]) {\n handleIndentKey(this._elem, prefix, selection, postfix, this._indent);\n } else if (evt.key === 'Tab' && evt.shiftKey || evt.key === 'o' && evt[ctrlKey]) {\n handleOutdentKey(this._elem, prefix, selection, postfix, this._indent, this._reOutdent);\n } else if (reInlineKey.test(evt.key)) {\n handleInlineKey(this._elem, prefix, selection, postfix, evt.key);\n } else {\n return;\n }\n\n evt.preventDefault();\n }\n }\n };\n\n\n function makeKeyRe(tab, inline) {\n return new RegExp('^(?:Enter' + (tab ? '|Tab' : '') + '|[io' + (inline ? '\"\\'`*_([{<>}\\\\])' : '') + '])$');\n }\n\n\n function handleEnterKey (elem, prefix, selection, postfix, shift) {\n var info = !selection ? getLineInfo(prefix) : null;\n\n if (!selection && info.prefix) {\n if (!shift && info.prefix === info.line) {\n prefix = prefix.substring(0, info.offset) + stripLast(info.prefix);\n } else if (!shift && isList(info.prefix)) {\n prefix += \"\\n\" + increment(info.prefix);\n } else {\n prefix += \"\\n\" + toIndent(info.prefix, shift);\n }\n } else {\n prefix += \"\\n\";\n }\n\n apply(elem, prefix + postfix, prefix.length);\n }\n\n function handleIndentKey (elem, prefix, selection, postfix, indent) {\n var s = prefix.length,\n n = prefix.lastIndexOf(\"\\n\") + 1;\n\n if (n < s) {\n selection = prefix.substring(n) + selection;\n prefix = prefix.substring(0, n);\n }\n\n if (n < s || !selection) {\n s += indent.length;\n }\n\n if (selection) {\n selection = selection.replace(reMkIndent, indent);\n } else {\n prefix += indent;\n }\n\n apply(elem, prefix + selection + postfix, s, selection ? n + selection.length : s);\n }\n\n function handleOutdentKey (elem, prefix, selection, postfix, indent, reOutdent) {\n var s = prefix.length,\n n = prefix.lastIndexOf(\"\\n\") + 1;\n\n if (n < s) {\n selection = prefix.substring(n) + selection;\n prefix = prefix.substring(0, n);\n\n if (selection.substring(0, indent.length) === indent) {\n s -= indent.length;\n }\n }\n\n selection = selection.replace(reOutdent, '');\n apply(elem, prefix + selection + postfix, s, n + selection.length);\n }\n\n function handleInlineKey (elem, prefix, selection, postfix, key) {\n if (!selection && !(key in openingParens) && postfix.charAt(0) === key) {\n apply(elem, prefix + (reDoubledInline.test(key) ? key + key : '') + postfix, prefix.length + 1);\n } else if (!selection && (key === \"'\" || key in closingParens)) {\n apply(elem, prefix + key + postfix, prefix.length + 1);\n } else if (!selection && key in codeBlocks && codeBlocks[key].test(prefix)) {\n apply(elem, prefix + key + \"language\\n\" + key + key + key + (postfix.charAt(0) !== \"\\n\" ? \"\\n\" : '') + postfix, prefix.length + 1, prefix.length + 9);\n } else {\n apply(\n elem,\n prefix + (closingParens[key] || key) + selection + (openingParens[key] || key) + postfix,\n prefix.length + 1,\n prefix.length + 1 + selection.length\n );\n }\n }\n\n function apply(elem, value, s, e) {\n elem.value = value;\n elem.selectionStart = s;\n elem.selectionEnd = arguments.length > 3 ? e : s;\n\n if ('InputEvent' in window) try {\n var evt = new InputEvent('input');\n elem.dispatchEvent(evt);\n } catch (e) { }\n }\n\n function getLineInfo(str) {\n var offset = str.lastIndexOf(\"\\n\") + 1,\n line = str.substring(offset),\n m = rePrefix.exec(line);\n\n return {\n line: line,\n offset: offset,\n prefix: m && m[0]\n };\n }\n\n function isList(prefix) {\n return reList.test(prefix);\n }\n\n function toIndent(prefix, pure) {\n return prefix.replace(pure ? rePureIndent : reCleanIndent, ' ');\n }\n\n function increment(prefix) {\n return prefix.replace(reIncrement, function (_, n) {\n return (parseInt(n) + 1) + '.';\n })\n }\n\n function stripLast(prefix) {\n return prefix.replace(reStripLast, '');\n }\n\n\n return MarkdownArea;\n\n});\n","(function(){\n'use strict';var aa=new Set(\"annotation-xml color-profile font-face font-face-src font-face-uri font-face-format font-face-name missing-glyph\".split(\" \"));function g(b){var a=aa.has(b);b=/^[a-z][.0-9_a-z]*-[\\-.0-9_a-z]*$/.test(b);return!a&&b}function l(b){var a=b.isConnected;if(void 0!==a)return a;for(;b&&!(b.__CE_isImportDocument||b instanceof Document);)b=b.parentNode||(window.ShadowRoot&&b instanceof ShadowRoot?b.host:void 0);return!(!b||!(b.__CE_isImportDocument||b instanceof Document))}\nfunction p(b,a){for(;a&&a!==b&&!a.nextSibling;)a=a.parentNode;return a&&a!==b?a.nextSibling:null}\nfunction q(b,a,d){d=void 0===d?new Set:d;for(var c=b;c;){if(c.nodeType===Node.ELEMENT_NODE){var e=c;a(e);var f=e.localName;if(\"link\"===f&&\"import\"===e.getAttribute(\"rel\")){c=e.import;if(c instanceof Node&&!d.has(c))for(d.add(c),c=c.firstChild;c;c=c.nextSibling)q(c,a,d);c=p(b,e);continue}else if(\"template\"===f){c=p(b,e);continue}if(e=e.__CE_shadowRoot)for(e=e.firstChild;e;e=e.nextSibling)q(e,a,d)}c=c.firstChild?c.firstChild:p(b,c)}}function t(b,a,d){b[a]=d};function u(){this.a=new Map;this.f=new Map;this.c=[];this.b=!1}function ba(b,a,d){b.a.set(a,d);b.f.set(d.constructorFunction,d)}function v(b,a){b.b=!0;b.c.push(a)}function w(b,a){b.b&&q(a,function(a){return x(b,a)})}function x(b,a){if(b.b&&!a.__CE_patched){a.__CE_patched=!0;for(var d=0;d ', multiline: true, surroundWithNewlines: true });\n return _this5;\n }\n\n return MarkdownQuoteButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-quote')) {\n window.MarkdownQuoteButtonElement = MarkdownQuoteButtonElement;\n window.customElements.define('md-quote', MarkdownQuoteButtonElement);\n}\n\nvar MarkdownCodeButtonElement = function (_MarkdownButtonElemen5) {\n _inherits(MarkdownCodeButtonElement, _MarkdownButtonElemen5);\n\n function MarkdownCodeButtonElement() {\n _classCallCheck(this, MarkdownCodeButtonElement);\n\n var _this6 = _possibleConstructorReturn(this, (MarkdownCodeButtonElement.__proto__ || Object.getPrototypeOf(MarkdownCodeButtonElement)).call(this));\n\n styles.set(_this6, { prefix: '`', suffix: '`', blockPrefix: '```', blockSuffix: '```' });\n return _this6;\n }\n\n return MarkdownCodeButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-code')) {\n window.MarkdownCodeButtonElement = MarkdownCodeButtonElement;\n window.customElements.define('md-code', MarkdownCodeButtonElement);\n}\n\nvar MarkdownLinkButtonElement = function (_MarkdownButtonElemen6) {\n _inherits(MarkdownLinkButtonElement, _MarkdownButtonElemen6);\n\n function MarkdownLinkButtonElement() {\n _classCallCheck(this, MarkdownLinkButtonElement);\n\n var _this7 = _possibleConstructorReturn(this, (MarkdownLinkButtonElement.__proto__ || Object.getPrototypeOf(MarkdownLinkButtonElement)).call(this));\n\n styles.set(_this7, { prefix: '[', suffix: '](url)', replaceNext: 'url', scanFor: 'https?://' });\n return _this7;\n }\n\n _createClass(MarkdownLinkButtonElement, [{\n key: 'connectedCallback',\n value: function connectedCallback() {\n _get(MarkdownLinkButtonElement.prototype.__proto__ || Object.getPrototypeOf(MarkdownLinkButtonElement.prototype), 'connectedCallback', this).call(this);\n this.setAttribute('hotkey', 'k');\n }\n }]);\n\n return MarkdownLinkButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-link')) {\n window.MarkdownLinkButtonElement = MarkdownLinkButtonElement;\n window.customElements.define('md-link', MarkdownLinkButtonElement);\n}\n\nvar MarkdownUnorderedListButtonElement = function (_MarkdownButtonElemen7) {\n _inherits(MarkdownUnorderedListButtonElement, _MarkdownButtonElemen7);\n\n function MarkdownUnorderedListButtonElement() {\n _classCallCheck(this, MarkdownUnorderedListButtonElement);\n\n var _this8 = _possibleConstructorReturn(this, (MarkdownUnorderedListButtonElement.__proto__ || Object.getPrototypeOf(MarkdownUnorderedListButtonElement)).call(this));\n\n styles.set(_this8, { prefix: '- ', multiline: true, surroundWithNewlines: true });\n return _this8;\n }\n\n return MarkdownUnorderedListButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-unordered-list')) {\n window.MarkdownUnorderedListButtonElement = MarkdownUnorderedListButtonElement;\n window.customElements.define('md-unordered-list', MarkdownUnorderedListButtonElement);\n}\n\nvar MarkdownOrderedListButtonElement = function (_MarkdownButtonElemen8) {\n _inherits(MarkdownOrderedListButtonElement, _MarkdownButtonElemen8);\n\n function MarkdownOrderedListButtonElement() {\n _classCallCheck(this, MarkdownOrderedListButtonElement);\n\n var _this9 = _possibleConstructorReturn(this, (MarkdownOrderedListButtonElement.__proto__ || Object.getPrototypeOf(MarkdownOrderedListButtonElement)).call(this));\n\n styles.set(_this9, { prefix: '1. ', multiline: true, orderedList: true });\n return _this9;\n }\n\n return MarkdownOrderedListButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-ordered-list')) {\n window.MarkdownOrderedListButtonElement = MarkdownOrderedListButtonElement;\n window.customElements.define('md-ordered-list', MarkdownOrderedListButtonElement);\n}\n\nvar MarkdownTaskListButtonElement = function (_MarkdownButtonElemen9) {\n _inherits(MarkdownTaskListButtonElement, _MarkdownButtonElemen9);\n\n function MarkdownTaskListButtonElement() {\n _classCallCheck(this, MarkdownTaskListButtonElement);\n\n var _this10 = _possibleConstructorReturn(this, (MarkdownTaskListButtonElement.__proto__ || Object.getPrototypeOf(MarkdownTaskListButtonElement)).call(this));\n\n styles.set(_this10, { prefix: '- [ ] ', multiline: true, surroundWithNewlines: true });\n return _this10;\n }\n\n _createClass(MarkdownTaskListButtonElement, [{\n key: 'connectedCallback',\n value: function connectedCallback() {\n _get(MarkdownTaskListButtonElement.prototype.__proto__ || Object.getPrototypeOf(MarkdownTaskListButtonElement.prototype), 'connectedCallback', this).call(this);\n this.setAttribute('hotkey', 'L');\n }\n }]);\n\n return MarkdownTaskListButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-task-list')) {\n window.MarkdownTaskListButtonElement = MarkdownTaskListButtonElement;\n window.customElements.define('md-task-list', MarkdownTaskListButtonElement);\n}\n\nvar MarkdownMentionButtonElement = function (_MarkdownButtonElemen10) {\n _inherits(MarkdownMentionButtonElement, _MarkdownButtonElemen10);\n\n function MarkdownMentionButtonElement() {\n _classCallCheck(this, MarkdownMentionButtonElement);\n\n var _this11 = _possibleConstructorReturn(this, (MarkdownMentionButtonElement.__proto__ || Object.getPrototypeOf(MarkdownMentionButtonElement)).call(this));\n\n styles.set(_this11, { prefix: '@', prefixSpace: true });\n return _this11;\n }\n\n return MarkdownMentionButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-mention')) {\n window.MarkdownMentionButtonElement = MarkdownMentionButtonElement;\n window.customElements.define('md-mention', MarkdownMentionButtonElement);\n}\n\nvar MarkdownRefButtonElement = function (_MarkdownButtonElemen11) {\n _inherits(MarkdownRefButtonElement, _MarkdownButtonElemen11);\n\n function MarkdownRefButtonElement() {\n _classCallCheck(this, MarkdownRefButtonElement);\n\n var _this12 = _possibleConstructorReturn(this, (MarkdownRefButtonElement.__proto__ || Object.getPrototypeOf(MarkdownRefButtonElement)).call(this));\n\n styles.set(_this12, { prefix: '#', prefixSpace: true });\n return _this12;\n }\n\n return MarkdownRefButtonElement;\n}(MarkdownButtonElement);\n\nif (!window.customElements.get('md-ref')) {\n window.MarkdownRefButtonElement = MarkdownRefButtonElement;\n window.customElements.define('md-ref', MarkdownRefButtonElement);\n}\n\nvar modifierKey = navigator.userAgent.match(/Macintosh/) ? 'Meta' : 'Control';\n\nvar MarkdownToolbarElement = function (_CustomElement3) {\n _inherits(MarkdownToolbarElement, _CustomElement3);\n\n function MarkdownToolbarElement() {\n _classCallCheck(this, MarkdownToolbarElement);\n\n return _possibleConstructorReturn(this, (MarkdownToolbarElement.__proto__ || Object.getPrototypeOf(MarkdownToolbarElement)).call(this));\n }\n\n _createClass(MarkdownToolbarElement, [{\n key: 'connectedCallback',\n value: function connectedCallback() {\n var fn = shortcut.bind(null, this);\n if (this.field) {\n this.field.addEventListener('keydown', fn);\n shortcutListeners.set(this, fn);\n }\n }\n }, {\n key: 'disconnectedCallback',\n value: function disconnectedCallback() {\n var fn = shortcutListeners.get(this);\n if (fn && this.field) {\n this.field.removeEventListener('keydown', fn);\n shortcutListeners.delete(this);\n }\n }\n }, {\n key: 'field',\n get: function get() {\n var id = this.getAttribute('for');\n if (!id) return;\n var field = document.getElementById(id);\n return field instanceof HTMLTextAreaElement ? field : null;\n }\n }]);\n\n return MarkdownToolbarElement;\n}(_CustomElement);\n\nvar shortcutListeners = new WeakMap();\n\nfunction shortcut(toolbar, event) {\n if (event.metaKey && modifierKey === 'Meta' || event.ctrlKey && modifierKey === 'Control') {\n var button = toolbar.querySelector('[hotkey=\"' + event.key + '\"]');\n if (button) {\n button.click();\n event.preventDefault();\n }\n }\n}\n\nif (!window.customElements.get('markdown-toolbar')) {\n window.MarkdownToolbarElement = MarkdownToolbarElement;\n window.customElements.define('markdown-toolbar', MarkdownToolbarElement);\n}\n\nfunction isMultipleLines(string) {\n return string.trim().split('\\n').length > 1;\n}\n\nfunction repeat(string, n) {\n return Array(n + 1).join(string);\n}\n\nfunction wordSelectionStart(text, index) {\n while (text[index] && text[index - 1] != null && !text[index - 1].match(/\\s/)) {\n index--;\n }\n return index;\n}\n\nfunction wordSelectionEnd(text, index) {\n while (text[index] && !text[index].match(/\\s/)) {\n index++;\n }\n return index;\n}\n\nvar canInsertText = null;\n\nfunction insertText(textarea, _ref) {\n var text = _ref.text,\n selectionStart = _ref.selectionStart,\n selectionEnd = _ref.selectionEnd;\n\n var originalSelectionStart = textarea.selectionStart;\n var before = textarea.value.slice(0, originalSelectionStart);\n var after = textarea.value.slice(textarea.selectionEnd);\n\n if (canInsertText === null || canInsertText === true) {\n textarea.contentEditable = 'true';\n try {\n canInsertText = document.execCommand('insertText', false, text);\n } catch (error) {\n canInsertText = false;\n }\n textarea.contentEditable = 'false';\n }\n\n if (canInsertText && !textarea.value.slice(0, textarea.selectionStart).endsWith(text)) {\n canInsertText = false;\n }\n\n if (!canInsertText) {\n try {\n document.execCommand('ms-beginUndoUnit');\n } catch (e) {\n // Do nothing.\n }\n textarea.value = before + text + after;\n try {\n document.execCommand('ms-endUndoUnit');\n } catch (e) {\n // Do nothing.\n }\n textarea.dispatchEvent(new CustomEvent('input', { bubbles: true, cancelable: true }));\n }\n\n if (selectionStart != null && selectionEnd != null) {\n textarea.setSelectionRange(selectionStart, selectionEnd);\n } else {\n textarea.setSelectionRange(originalSelectionStart, textarea.selectionEnd);\n }\n}\n\nfunction styleSelectedText(textarea, styleArgs) {\n var text = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n\n var result = void 0;\n if (styleArgs.orderedList) {\n result = orderedList(textarea);\n } else if (styleArgs.multiline && isMultipleLines(text)) {\n result = multilineStyle(textarea, styleArgs);\n } else {\n result = blockStyle(textarea, styleArgs);\n }\n\n insertText(textarea, result);\n}\n\nfunction expandSelectedText(textarea, prefixToUse, suffixToUse) {\n if (textarea.selectionStart === textarea.selectionEnd) {\n textarea.selectionStart = wordSelectionStart(textarea.value, textarea.selectionStart);\n textarea.selectionEnd = wordSelectionEnd(textarea.value, textarea.selectionEnd);\n } else {\n var expandedSelectionStart = textarea.selectionStart - prefixToUse.length;\n var expandedSelectionEnd = textarea.selectionEnd + suffixToUse.length;\n var beginsWithPrefix = textarea.value.slice(expandedSelectionStart, textarea.selectionStart) === prefixToUse;\n var endsWithSuffix = textarea.value.slice(textarea.selectionEnd, expandedSelectionEnd) === suffixToUse;\n if (beginsWithPrefix && endsWithSuffix) {\n textarea.selectionStart = expandedSelectionStart;\n textarea.selectionEnd = expandedSelectionEnd;\n }\n }\n return textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n}\n\nfunction newlinesToSurroundSelectedText(textarea) {\n var beforeSelection = textarea.value.slice(0, textarea.selectionStart);\n var afterSelection = textarea.value.slice(textarea.selectionEnd);\n\n var breaksBefore = beforeSelection.match(/\\n*$/);\n var breaksAfter = afterSelection.match(/^\\n*/);\n var newlinesBeforeSelection = breaksBefore ? breaksBefore[0].length : 0;\n var newlinesAfterSelection = breaksAfter ? breaksAfter[0].length : 0;\n\n var newlinesToAppend = void 0;\n var newlinesToPrepend = void 0;\n\n if (beforeSelection.match(/\\S/) && newlinesBeforeSelection < 2) {\n newlinesToAppend = repeat('\\n', 2 - newlinesBeforeSelection);\n }\n\n if (afterSelection.match(/\\S/) && newlinesAfterSelection < 2) {\n newlinesToPrepend = repeat('\\n', 2 - newlinesAfterSelection);\n }\n\n if (newlinesToAppend == null) {\n newlinesToAppend = '';\n }\n\n if (newlinesToPrepend == null) {\n newlinesToPrepend = '';\n }\n\n return { newlinesToAppend: newlinesToAppend, newlinesToPrepend: newlinesToPrepend };\n}\n\nfunction blockStyle(textarea, arg) {\n var newlinesToAppend = void 0;\n var newlinesToPrepend = void 0;\n\n var prefix = arg.prefix,\n suffix = arg.suffix,\n blockPrefix = arg.blockPrefix,\n blockSuffix = arg.blockSuffix,\n replaceNext = arg.replaceNext,\n prefixSpace = arg.prefixSpace,\n scanFor = arg.scanFor,\n surroundWithNewlines = arg.surroundWithNewlines;\n\n var originalSelectionStart = textarea.selectionStart;\n var originalSelectionEnd = textarea.selectionEnd;\n\n var selectedText = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n var prefixToUse = isMultipleLines(selectedText) && blockPrefix.length > 0 ? blockPrefix + '\\n' : prefix;\n var suffixToUse = isMultipleLines(selectedText) && blockSuffix.length > 0 ? '\\n' + blockSuffix : suffix;\n\n if (prefixSpace) {\n var beforeSelection = textarea.value[textarea.selectionStart - 1];\n if (textarea.selectionStart !== 0 && beforeSelection != null && !beforeSelection.match(/\\s/)) {\n prefixToUse = ' ' + prefixToUse;\n }\n }\n selectedText = expandSelectedText(textarea, prefixToUse, suffixToUse);\n var selectionStart = textarea.selectionStart;\n var selectionEnd = textarea.selectionEnd;\n var hasReplaceNext = replaceNext.length > 0 && suffixToUse.indexOf(replaceNext) > -1 && selectedText.length > 0;\n if (surroundWithNewlines) {\n var ref = newlinesToSurroundSelectedText(textarea);\n newlinesToAppend = ref.newlinesToAppend;\n newlinesToPrepend = ref.newlinesToPrepend;\n prefixToUse = newlinesToAppend + prefix;\n suffixToUse += newlinesToPrepend;\n }\n\n if (selectedText.startsWith(prefixToUse) && selectedText.endsWith(suffixToUse)) {\n var replacementText = selectedText.slice(prefixToUse.length, selectedText.length - suffixToUse.length);\n if (originalSelectionStart === originalSelectionEnd) {\n var position = originalSelectionStart - prefixToUse.length;\n position = Math.max(position, selectionStart);\n position = Math.min(position, selectionStart + replacementText.length);\n selectionStart = selectionEnd = position;\n } else {\n selectionEnd = selectionStart + replacementText.length;\n }\n return { text: replacementText, selectionStart: selectionStart, selectionEnd: selectionEnd };\n } else if (!hasReplaceNext) {\n var _replacementText = prefixToUse + selectedText + suffixToUse;\n selectionStart = originalSelectionStart + prefixToUse.length;\n selectionEnd = originalSelectionEnd + prefixToUse.length;\n var whitespaceEdges = selectedText.match(/^\\s*|\\s*$/g);\n if (arg.trimFirst && whitespaceEdges) {\n var leadingWhitespace = whitespaceEdges[0] || '';\n var trailingWhitespace = whitespaceEdges[1] || '';\n _replacementText = leadingWhitespace + prefixToUse + selectedText.trim() + suffixToUse + trailingWhitespace;\n selectionStart += leadingWhitespace.length;\n selectionEnd -= trailingWhitespace.length;\n }\n return { text: _replacementText, selectionStart: selectionStart, selectionEnd: selectionEnd };\n } else if (scanFor.length > 0 && selectedText.match(scanFor)) {\n suffixToUse = suffixToUse.replace(replaceNext, selectedText);\n var _replacementText2 = prefixToUse + suffixToUse;\n selectionStart = selectionEnd = selectionStart + prefixToUse.length;\n return { text: _replacementText2, selectionStart: selectionStart, selectionEnd: selectionEnd };\n } else {\n var _replacementText3 = prefixToUse + selectedText + suffixToUse;\n selectionStart = selectionStart + prefixToUse.length + selectedText.length + suffixToUse.indexOf(replaceNext);\n selectionEnd = selectionStart + replaceNext.length;\n return { text: _replacementText3, selectionStart: selectionStart, selectionEnd: selectionEnd };\n }\n}\n\nfunction multilineStyle(textarea, arg) {\n var prefix = arg.prefix,\n suffix = arg.suffix,\n surroundWithNewlines = arg.surroundWithNewlines;\n\n var text = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n var selectionStart = textarea.selectionStart;\n var selectionEnd = textarea.selectionEnd;\n var lines = text.split('\\n');\n var undoStyle = lines.every(function (line) {\n return line.startsWith(prefix) && line.endsWith(suffix);\n });\n\n if (undoStyle) {\n text = lines.map(function (line) {\n return line.slice(prefix.length, line.length - suffix.length);\n }).join('\\n');\n selectionEnd = selectionStart + text.length;\n } else {\n text = lines.map(function (line) {\n return prefix + line + suffix;\n }).join('\\n');\n if (surroundWithNewlines) {\n var _newlinesToSurroundSe = newlinesToSurroundSelectedText(textarea),\n _newlinesToAppend = _newlinesToSurroundSe.newlinesToAppend,\n _newlinesToPrepend = _newlinesToSurroundSe.newlinesToPrepend;\n\n selectionStart += _newlinesToAppend.length;\n selectionEnd = selectionStart + text.length;\n text = _newlinesToAppend + text + _newlinesToPrepend;\n }\n }\n\n return { text: text, selectionStart: selectionStart, selectionEnd: selectionEnd };\n}\n\nfunction orderedList(textarea) {\n var orderedListRegex = /^\\d+\\.\\s+/;\n var selectionEnd = void 0;\n var selectionStart = void 0;\n var text = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);\n var lines = text.split('\\n');\n\n var undoStyling = lines.every(function (line) {\n return orderedListRegex.test(line);\n });\n\n if (undoStyling) {\n lines = lines.map(function (line) {\n return line.replace(orderedListRegex, '');\n });\n text = lines.join('\\n');\n } else {\n lines = function () {\n var i = void 0;\n var len = void 0;\n var index = void 0;\n var results = [];\n for (index = i = 0, len = lines.length; i < len; index = ++i) {\n var line = lines[index];\n results.push(index + 1 + '. ' + line);\n }\n return results;\n }();\n text = lines.join('\\n');\n\n var _newlinesToSurroundSe2 = newlinesToSurroundSelectedText(textarea),\n _newlinesToAppend2 = _newlinesToSurroundSe2.newlinesToAppend,\n _newlinesToPrepend2 = _newlinesToSurroundSe2.newlinesToPrepend;\n\n selectionStart = textarea.selectionStart + _newlinesToAppend2.length;\n selectionEnd = selectionStart + text.length;\n text = _newlinesToAppend2 + text + _newlinesToPrepend2;\n }\n\n return { text: text, selectionStart: selectionStart, selectionEnd: selectionEnd };\n}\n\nfunction applyStyle(button, styles) {\n var toolbar = button.closest('markdown-toolbar');\n if (!(toolbar instanceof MarkdownToolbarElement)) return;\n\n var defaults = {\n prefix: '',\n suffix: '',\n blockPrefix: '',\n blockSuffix: '',\n multiline: false,\n replaceNext: '',\n prefixSpace: false,\n scanFor: '',\n surroundWithNewlines: false,\n orderedList: false,\n trimFirst: false\n };\n\n var style = _extends({}, defaults, styles);\n\n var field = toolbar.field;\n if (field) {\n field.focus();\n styleSelectedText(field, style);\n }\n}\n\nexport default MarkdownToolbarElement;\n","import { extend } from 'flarum/extend';\nimport TextEditor from 'flarum/components/TextEditor';\nimport icon from 'flarum/helpers/icon';\n\nimport '@webcomponents/custom-elements';\nimport '@github/markdown-toolbar-element';\nimport MarkdownArea from 'mdarea/mdarea.js';\n\napp.initializers.add('flarum-markdown', function(app) {\n let index = 1;\n\n extend(TextEditor.prototype, 'init', function() {\n this.textareaId = 'textarea'+(index++);\n });\n\n extend(TextEditor.prototype, 'view', function(vdom) {\n vdom.children[0].attrs.id = this.textareaId;\n });\n\n extend(TextEditor.prototype, 'configTextarea', function(value, element, isInitialized, context) {\n if (isInitialized) return;\n\n const editor = new MarkdownArea(element);\n editor.disableInline();\n\n context.onunload = function() {\n editor.destroy();\n };\n });\n\n extend(TextEditor.prototype, 'toolbarItems', function(items) {\n const attrs = {\n className: 'Button Button--icon Button--link',\n config: elm => $(elm).tooltip()\n };\n\n const tooltip = name => app.translator.trans(`flarum-markdown.forum.composer.${name}_tooltip`);\n\n items.add('markdown', (\n \n {icon('fas fa-heading')}\n '} {...attrs}>{icon('fas fa-bold')}\n '} {...attrs}>{icon('fas fa-italic')}\n {icon('fas fa-quote-left')}\n {icon('fas fa-code')}\n '} {...attrs}>{icon('fas fa-link')}\n {icon('fas fa-list-ul')}\n {icon('fas fa-list-ol')}\n \n ), 100);\n });\n});\n"],"sourceRoot":""} \ No newline at end of file