diff --git a/extensions/markdown/js/dist/forum.js b/extensions/markdown/js/dist/forum.js index 8b8a1c7ca..6a5519d22 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(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)})})}]); +module.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},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 r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},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=7)}([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 r,o,i;"undefined"!=typeof self&&self,o=[],void 0===(i="function"==typeof(r=function(){var t=/mac|iphone|ipad|ipod/i.test(navigator.platform)?"metaKey":"ctrlKey",e=/^["'`*_[({<>})\]]$/,n=/[*_]/,r=/^[ \t]*(?:(?:[-+*]|\d+\.)[ \t]+(?:\[[ x]][ \t]+)?|>[ \t]*)*(?::[ \t]*)?/,o=/(?:[-+*]|\d+\.)[ \t]+(?:\[[ x]][ \t]+)?$/,i=/[-+*\[\]x\d.]/g,a=/[^ \t]/g,l=/(\d+)\.(?=[ \t]+$)/,c=/(?:(?:^[ \t]+)?(?:[-+*]|\d+\.|[>:])(?:[ \t]+\[[ x]])?[ \t]*|^[ \t]+)$/,s=/^(?!$)/gm,u={"`":/^``$/m,"~":/^~~$/m},f={"[":"]","(":")","{":"}","<":">"},p={"]":"[",")":"(","}":"{",">":"<"};function d(t){this._useTab=!0,this._useInline=!0,this._indent=" ",this._reOutdent=/^[ ]{4}/gm,this._reKey=h(!0,!0),this._handleKey=this._handleKey.bind(this),this.setElement(t)}function h(t,e){return new RegExp("^(?:Enter"+(t?"|Tab":"")+"|[io"+(e?"\"'`*_([{<>}\\])":"")+"])$")}function y(t,e,n,r){if(t.value=e,t.selectionStart=n,t.selectionEnd=arguments.length>3?r:n,"InputEvent"in window)try{var o=new InputEvent("input");t.dispatchEvent(o)}catch(r){}}return d.prototype={constructor:d,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=h(!0,this._useInline)},ignoreTab:function(){this._useTab=!1,this._reKey=h(!1,this._useInline)},isInlineEnabled:function(){return this._useInline},enableInline:function(){this._useInline=!0,this._reKey=h(this._useTab,!0)},disableInline:function(){this._useInline=!1,this._reKey=h(this._useTab,!1)},destroy:function(){this._elem.removeEventListener("keydown",this._handleKey),this._elem=this._reKey=this._handleKey=this._indent=this._reOutdent=null},_handleKey:function(d){if(!d.defaultPrevented&&this._reKey.test(d.key)){var h=d.target.value.substring(0,d.target.selectionStart),b=d.target.value.substring(d.target.selectionStart,d.target.selectionEnd),g=d.target.value.substring(d.target.selectionEnd);if("Enter"!==d.key||d.ctrlKey||d.altKey||d.metaKey)if("Tab"===d.key&&!d.shiftKey||"i"===d.key&&d[t])!function(t,e,n,r,o){var i=e.length,a=e.lastIndexOf("\n")+1;a ",multiline:!0,surroundWithNewlines:!0}),t}return h(e,g),e}();window.customElements.get("md-quote")||(window.MarkdownQuoteButtonElement=_,window.customElements.define("md-quote",_));var O=function(t){function e(){p(this,e);var t=d(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return b.set(t,{prefix:"`",suffix:"`",blockPrefix:"```",blockSuffix:"```"}),t}return h(e,g),e}();window.customElements.get("md-code")||(window.MarkdownCodeButtonElement=O,window.customElements.define("md-code",O));var j=function(t){function e(){p(this,e);var t=d(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return b.set(t,{prefix:"[",suffix:"](url)",replaceNext:"url",scanFor:"https?://"}),t}return h(e,g),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=j,window.customElements.define("md-link",j));var x=function(t){function e(){p(this,e);var t=d(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return b.set(t,{prefix:"- ",multiline:!0,surroundWithNewlines:!0}),t}return h(e,g),e}();window.customElements.get("md-unordered-list")||(window.MarkdownUnorderedListButtonElement=x,window.customElements.define("md-unordered-list",x));var P=function(t){function e(){p(this,e);var t=d(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return b.set(t,{prefix:"1. ",multiline:!0,orderedList:!0}),t}return h(e,g),e}();window.customElements.get("md-ordered-list")||(window.MarkdownOrderedListButtonElement=P,window.customElements.define("md-ordered-list",P));var T=function(t){function e(){p(this,e);var t=d(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return b.set(t,{prefix:"- [ ] ",multiline:!0,surroundWithNewlines:!0}),t}return h(e,g),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=T,window.customElements.define("md-task-list",T));var k=function(t){function e(){p(this,e);var t=d(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return b.set(t,{prefix:"@",prefixSpace:!0}),t}return h(e,g),e}();window.customElements.get("md-mention")||(window.MarkdownMentionButtonElement=k,window.customElements.define("md-mention",k));var C=function(t){function e(){p(this,e);var t=d(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return b.set(t,{prefix:"#",prefixSpace:!0}),t}return h(e,g),e}();window.customElements.get("md-ref")||(window.MarkdownRefButtonElement=C,window.customElements.define("md-ref",C));var S=navigator.userAgent.match(/Macintosh/)?"Meta":"Control",N=function(t){function e(){return p(this,e),d(this,(e.__proto__||Object.getPrototypeOf(e)).call(this))}return h(e,y),f(e,[{key:"connectedCallback",value:function(){var t=function(t,e){if(e.metaKey&&"Meta"===S||e.ctrlKey&&"Control"===S){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 D(t){return t.trim().split("\n").length>1}function M(t,e){return Array(e+1).join(t)}window.customElements.get("markdown-toolbar")||(window.MarkdownToolbarElement=N,window.customElements.define("markdown-toolbar",N));var L=null;function F(t,e){var n=t.value.slice(t.selectionStart,t.selectionEnd),r=void 0;r=e.orderedList?function(t){var e=/^\d+\.\s+/,n=void 0,r=void 0,o=t.value.slice(t.selectionStart,t.selectionEnd),i=o.split("\n");if(i.every(function(t){return e.test(t)}))i=i.map(function(t){return t.replace(e,"")}),o=i.join("\n");else{i=function(){var t=void 0,e=void 0,n=void 0,r=[];for(n=t=0,e=i.length;t0?a+"\n":o,b=D(h)&&l.length>0?"\n"+l:i;if(s){var g=t.value[t.selectionStart-1];0===t.selectionStart||null==g||g.match(/\s/)||(y=" "+y)}h=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 r=t.selectionStart-e.length,o=t.selectionEnd+n.length,i=t.value.slice(r,t.selectionStart)===e,a=t.value.slice(t.selectionEnd,o)===n;i&&a&&(t.selectionStart=r,t.selectionEnd=o)}return t.value.slice(t.selectionStart,t.selectionEnd)}(t,y,b);var v=t.selectionStart,w=t.selectionEnd,m=c.length>0&&b.indexOf(c)>-1&&h.length>0;if(f){var E=K(t);n=E.newlinesToAppend,r=E.newlinesToPrepend,y=n+o,b+=r}if(h.startsWith(y)&&h.endsWith(b)){var _=h.slice(y.length,h.length-b.length);if(p===d){var O=p-y.length;O=Math.max(O,v),O=Math.min(O,v+_.length),v=w=O}else w=v+_.length;return{text:_,selectionStart:v,selectionEnd:w}}if(m){if(u.length>0&&h.match(u)){b=b.replace(c,h);var j=y+b;return v=w=v+y.length,{text:j,selectionStart:v,selectionEnd:w}}var x=y+h+b;return v=v+y.length+h.length+b.indexOf(c),w=v+c.length,{text:x,selectionStart:v,selectionEnd:w}}var P=y+h+b;v=p+y.length,w=d+y.length;var T=h.match(/^\s*|\s*$/g);if(e.trimFirst&&T){var k=T[0]||"",C=T[1]||"";P=k+y+h.trim()+b+C,v+=k.length,w-=C.length}return{text:P,selectionStart:v,selectionEnd:w}}(t,e),function(t,e){var n=e.text,r=e.selectionStart,o=e.selectionEnd,i=t.selectionStart,a=t.value.slice(0,i),l=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=a+n+l;try{document.execCommand("ms-endUndoUnit")}catch(t){}t.dispatchEvent(new CustomEvent("input",{bubbles:!0,cancelable:!0}))}null!=r&&null!=o?t.setSelectionRange(r,o):t.setSelectionRange(i,t.selectionEnd)}(t,r)}function K(t){var e=t.value.slice(0,t.selectionStart),n=t.value.slice(t.selectionEnd),r=e.match(/\n*$/),o=n.match(/^\n*/),i=r?r[0].length:0,a=o?o[0].length:0,l=void 0,c=void 0;return e.match(/\S/)&&i<2&&(l=M("\n",2-i)),n.match(/\S/)&&a<2&&(c=M("\n",2-a)),null==l&&(l=""),null==c&&(c=""),{newlinesToAppend:l,newlinesToPrepend:c}}function I(t,e){var n=t.closest("markdown-toolbar");if(n instanceof N){var r=s({},{prefix:"",suffix:"",blockPrefix:"",blockSuffix:"",multiline:!1,replaceNext:"",prefixSpace:!1,scanFor:"",surroundWithNewlines:!1,orderedList:!1,trimFirst:!1},e),o=n.field;o&&(o.focus(),F(o,r))}}var H=n(3),R=n.n(H);app.initializers.add("flarum-markdown",function(t){var e=1;Object(o.extend)(a.a.prototype,"init",function(){this.textareaId="textarea"+e++}),Object(o.extend)(a.a.prototype,"view",function(t){t.children[0].attrs.id=this.textareaId}),Object(o.extend)(a.a.prototype,"configTextarea",function(t,e,n,r){if(!n){var o=new R.a(e);o.disableInline(),r.onunload=function(){o.destroy()}}}),Object(o.extend)(a.a.prototype,"toolbarItems",function(e){var n={className:"Button Button--icon Button--link",config:function(t){return $(t).tooltip()}},o=function(e){return t.translator.trans("flarum-markdown.forum.composer."+e+"_tooltip")};e.add("markdown",m("markdown-toolbar",{for:this.textareaId},m("md-header",r({title:o("header")},n),c()("fas fa-heading")),m("md-bold",r({title:o("bold")+" "},n),c()("fas fa-bold")),m("md-italic",r({title:o("italic")+" "},n),c()("fas fa-italic")),m("md-quote",r({title:o("quote")},n),c()("fas fa-quote-left")),m("md-code",r({title:o("code")},n),c()("fas fa-code")),m("md-link",r({title:o("link")+" "},n),c()("fas fa-link")),m("md-unordered-list",r({title:o("unordered_list")},n),c()("fas fa-list-ul")),m("md-ordered-list",r({title:o("ordered_list")},n),c()("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 78db489be..e820c92c1 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/@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","str","offset","line","info","exec","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","ca","Promise","E","F","j","indexOf","addedNodes","Function","TypeError","SyntaxError","k","adoptedCallback","set","ba","da","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","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","fn","_this","style","applyStyle","event","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 +{"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/harmony-reflect/reflect.js","webpack://@flarum/markdown/(webpack)/buildin/global.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","str","offset","line","info","exec","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","ca","Promise","E","F","j","indexOf","addedNodes","Function","TypeError","SyntaxError","k","adoptedCallback","set","ba","da","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","xa","TEXT_NODE","childNodes","slice","textContent","createTextNode","ya","toLowerCase","previousSibling","lastChild","String","innerHTML","content","namespaceURI","console","warn","za","Aa","global","isStandardAttribute","toPropertyDescriptor","obj","desc","setter","isAccessorDescriptor","isDataDescriptor","isGenericDescriptor","isEmptyDescriptor","isEquivalentDescriptor","desc1","desc2","sameValue","normalizeAndCompletePropertyDescriptor","attributes","internalDesc","toCompletePropertyDescriptor","normalizePropertyDescriptor","WeakMap","Object_isExtensible","Object_getPrototypeOf","Object_getOwnPropertyNames","prim_preventExtensions","preventExtensions","prim_isExtensible","seal","freeze","isExtensible","prim_getPrototypeOf","isSealed","isFrozen","getPrototypeOf","prim_getOwnPropertyDescriptor","prim_defineProperty","prim_defineProperties","defineProperties","prim_keys","keys","prim_getOwnPropertyNames","getOwnPropertyNames","prim_getOwnPropertySymbols","getOwnPropertySymbols","prim_assign","assign","prim_isArray","isArray","prim_concat","concat","prim_isPrototypeOf","isPrototypeOf","prim_hasOwnProperty","isFixed","isSealedDesc","isCompatibleDescriptor","extensible","current","setIntegrityLevel","level","ownProps","pendingException","currentDesc","Reflect","testIntegrityLevel","Validator","handler","getTrap","trapName","trap","targetDesc","getPropertyDescriptor","val","descObj","success","deleteProperty","res","ownKeys","trapResult","propNames","numProps","result","forEach","ownProp","state","allegedProto","newProto","getPropertyNames","receiver","fixedDesc","enumerate","nxt","next","done","ownEnumerableProps","ownEnumerableProp","iterate","thisBinding","args","construct","newTarget","directProxies","safeWeakMapGet","map","type","arg","makeUnwrapping0ArgMethod","primitive","builtin","vHandler","subject","vhandler","normalizedDesc","descs","names","noProxies","output","index","source","nextKey","valueOf","toString","Date","vHandler2","prim_setPrototypeOf","__proto__setter","protoDesc","proto","ownDesc","existingDesc","updateDesc","newDesc","idx","instance","Proxy","primCreate","primCreateFunction","createFunction","revokedHandler","proxy","revocable","revoke","_target","_handler","eval","_extends","index_esm_extends","_get","parent","_createClass","props","descriptor","Constructor","protoProps","staticProps","_classCallCheck","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","__proto__","_CustomElement","styles","MarkdownButtonElement","_CustomElement2","fn","_this","style","applyStyle","event","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","orderedListRegex","lines","every","len","results","_newlinesToSurroundSe2","newlinesToSurroundSelectedText","_newlinesToAppend2","newlinesToAppend","_newlinesToPrepend2","newlinesToPrepend","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 = 7);\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 true\n return x !== x && y !== y;\n}\n\n/**\n * Returns a fresh property descriptor that is guaranteed\n * to be complete (i.e. contain all the standard attributes).\n * Additionally, any non-standard enumerable properties of\n * attributes are copied over to the fresh descriptor.\n *\n * If attributes is undefined, returns undefined.\n *\n * See also: http://wiki.ecmascript.org/doku.php?id=harmony:proxies_semantics\n */\nfunction normalizeAndCompletePropertyDescriptor(attributes) {\n if (attributes === undefined) { return undefined; }\n var desc = toCompletePropertyDescriptor(attributes);\n // Note: no need to call FromPropertyDescriptor(desc), as we represent\n // \"internal\" property descriptors as proper Objects from the start\n for (var name in attributes) {\n if (!isStandardAttribute(name)) {\n Object.defineProperty(desc, name,\n { value: attributes[name],\n writable: true,\n enumerable: true,\n configurable: true });\n }\n }\n return desc;\n}\n\n/**\n * Returns a fresh property descriptor whose standard\n * attributes are guaranteed to be data properties of the right type.\n * Additionally, any non-standard enumerable properties of\n * attributes are copied over to the fresh descriptor.\n *\n * If attributes is undefined, will throw a TypeError.\n *\n * See also: http://wiki.ecmascript.org/doku.php?id=harmony:proxies_semantics\n */\nfunction normalizePropertyDescriptor(attributes) {\n var desc = toPropertyDescriptor(attributes);\n // Note: no need to call FromGenericPropertyDescriptor(desc), as we represent\n // \"internal\" property descriptors as proper Objects from the start\n for (var name in attributes) {\n if (!isStandardAttribute(name)) {\n Object.defineProperty(desc, name,\n { value: attributes[name],\n writable: true,\n enumerable: true,\n configurable: true });\n }\n }\n return desc;\n}\n\n// store a reference to the real ES5 primitives before patching them later\nvar prim_preventExtensions = Object.preventExtensions,\n prim_seal = Object.seal,\n prim_freeze = Object.freeze,\n prim_isExtensible = Object.isExtensible,\n prim_isSealed = Object.isSealed,\n prim_isFrozen = Object.isFrozen,\n prim_getPrototypeOf = Object.getPrototypeOf,\n prim_getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n prim_defineProperty = Object.defineProperty,\n prim_defineProperties = Object.defineProperties,\n prim_keys = Object.keys,\n prim_getOwnPropertyNames = Object.getOwnPropertyNames,\n prim_getOwnPropertySymbols = Object.getOwnPropertySymbols,\n prim_assign = Object.assign,\n prim_isArray = Array.isArray,\n prim_concat = Array.prototype.concat,\n prim_isPrototypeOf = Object.prototype.isPrototypeOf,\n prim_hasOwnProperty = Object.prototype.hasOwnProperty;\n\n// these will point to the patched versions of the respective methods on\n// Object. They are used within this module as the \"intrinsic\" bindings\n// of these methods (i.e. the \"original\" bindings as defined in the spec)\nvar Object_isFrozen,\n Object_isSealed,\n Object_isExtensible,\n Object_getPrototypeOf,\n Object_getOwnPropertyNames;\n\n/**\n * A property 'name' is fixed if it is an own property of the target.\n */\nfunction isFixed(name, target) {\n return ({}).hasOwnProperty.call(target, name);\n}\nfunction isSealed(name, target) {\n var desc = Object.getOwnPropertyDescriptor(target, name);\n if (desc === undefined) { return false; }\n return desc.configurable === false;\n}\nfunction isSealedDesc(desc) {\n return desc !== undefined && desc.configurable === false;\n}\n\n/**\n * Performs all validation that Object.defineProperty performs,\n * without actually defining the property. Returns a boolean\n * indicating whether validation succeeded.\n *\n * Implementation transliterated from ES5.1 section 8.12.9\n */\nfunction isCompatibleDescriptor(extensible, current, desc) {\n if (current === undefined && extensible === false) {\n return false;\n }\n if (current === undefined && extensible === true) {\n return true;\n }\n if (isEmptyDescriptor(desc)) {\n return true;\n }\n if (isEquivalentDescriptor(current, desc)) {\n return true;\n }\n if (current.configurable === false) {\n if (desc.configurable === true) {\n return false;\n }\n if ('enumerable' in desc && desc.enumerable !== current.enumerable) {\n return false;\n }\n }\n if (isGenericDescriptor(desc)) {\n return true;\n }\n if (isDataDescriptor(current) !== isDataDescriptor(desc)) {\n if (current.configurable === false) {\n return false;\n }\n return true;\n }\n if (isDataDescriptor(current) && isDataDescriptor(desc)) {\n if (current.configurable === false) {\n if (current.writable === false && desc.writable === true) {\n return false;\n }\n if (current.writable === false) {\n if ('value' in desc && !sameValue(desc.value, current.value)) {\n return false;\n }\n }\n }\n return true;\n }\n if (isAccessorDescriptor(current) && isAccessorDescriptor(desc)) {\n if (current.configurable === false) {\n if ('set' in desc && !sameValue(desc.set, current.set)) {\n return false;\n }\n if ('get' in desc && !sameValue(desc.get, current.get)) {\n return false;\n }\n }\n }\n return true;\n}\n\n// ES6 7.3.11 SetIntegrityLevel\n// level is one of \"sealed\" or \"frozen\"\nfunction setIntegrityLevel(target, level) {\n var ownProps = Object_getOwnPropertyNames(target);\n var pendingException = undefined;\n if (level === \"sealed\") {\n var l = +ownProps.length;\n var k;\n for (var i = 0; i < l; i++) {\n k = String(ownProps[i]);\n try {\n Object.defineProperty(target, k, { configurable: false });\n } catch (e) {\n if (pendingException === undefined) {\n pendingException = e;\n }\n }\n }\n } else {\n // level === \"frozen\"\n var l = +ownProps.length;\n var k;\n for (var i = 0; i < l; i++) {\n k = String(ownProps[i]);\n try {\n var currentDesc = Object.getOwnPropertyDescriptor(target, k);\n if (currentDesc !== undefined) {\n var desc;\n if (isAccessorDescriptor(currentDesc)) {\n desc = { configurable: false }\n } else {\n desc = { configurable: false, writable: false }\n }\n Object.defineProperty(target, k, desc);\n } \n } catch (e) {\n if (pendingException === undefined) {\n pendingException = e;\n }\n }\n }\n }\n if (pendingException !== undefined) {\n throw pendingException;\n }\n return Reflect.preventExtensions(target);\n}\n\n// ES6 7.3.12 TestIntegrityLevel\n// level is one of \"sealed\" or \"frozen\"\nfunction testIntegrityLevel(target, level) {\n var isExtensible = Object_isExtensible(target);\n if (isExtensible) return false;\n \n var ownProps = Object_getOwnPropertyNames(target);\n var pendingException = undefined;\n var configurable = false;\n var writable = false;\n \n var l = +ownProps.length;\n var k;\n var currentDesc;\n for (var i = 0; i < l; i++) {\n k = String(ownProps[i]);\n try {\n currentDesc = Object.getOwnPropertyDescriptor(target, k);\n configurable = configurable || currentDesc.configurable;\n if (isDataDescriptor(currentDesc)) {\n writable = writable || currentDesc.writable;\n }\n } catch (e) {\n if (pendingException === undefined) {\n pendingException = e;\n configurable = true;\n }\n }\n }\n if (pendingException !== undefined) {\n throw pendingException;\n }\n if (level === \"frozen\" && writable === true) {\n return false;\n }\n if (configurable === true) {\n return false;\n }\n return true;\n}\n\n// ---- The Validator handler wrapper around user handlers ----\n\n/**\n * @param target the object wrapped by this proxy.\n * As long as the proxy is extensible, only non-configurable properties\n * are checked against the target. Once the proxy becomes non-extensible,\n * invariants w.r.t. non-extensibility are also enforced.\n *\n * @param handler the handler of the direct proxy. The object emulated by\n * this handler is validated against the target object of the direct proxy.\n * Any violations that the handler makes against the invariants\n * of the target will cause a TypeError to be thrown.\n *\n * Both target and handler must be proper Objects at initialization time.\n */\nfunction Validator(target, handler) {\n // for non-revokable proxies, these are const references\n // for revokable proxies, on revocation:\n // - this.target is set to null\n // - this.handler is set to a handler that throws on all traps\n this.target = target;\n this.handler = handler;\n}\n\nValidator.prototype = {\n\n /**\n * If getTrap returns undefined, the caller should perform the\n * default forwarding behavior.\n * If getTrap returns normally otherwise, the return value\n * will be a callable trap function. When calling the trap function,\n * the caller is responsible for binding its |this| to |this.handler|.\n */\n getTrap: function(trapName) {\n var trap = this.handler[trapName];\n if (trap === undefined) {\n // the trap was not defined,\n // perform the default forwarding behavior\n return undefined;\n }\n\n if (typeof trap !== \"function\") {\n throw new TypeError(trapName + \" trap is not callable: \"+trap);\n }\n\n return trap;\n },\n\n // === fundamental traps ===\n\n /**\n * If name denotes a fixed property, check:\n * - whether targetHandler reports it as existent\n * - whether the returned descriptor is compatible with the fixed property\n * If the proxy is non-extensible, check:\n * - whether name is not a new property\n * Additionally, the returned descriptor is normalized and completed.\n */\n getOwnPropertyDescriptor: function(name) {\n \"use strict\";\n\n var trap = this.getTrap(\"getOwnPropertyDescriptor\");\n if (trap === undefined) {\n return Reflect.getOwnPropertyDescriptor(this.target, name);\n }\n\n name = String(name);\n var desc = trap.call(this.handler, this.target, name);\n desc = normalizeAndCompletePropertyDescriptor(desc);\n\n var targetDesc = Object.getOwnPropertyDescriptor(this.target, name);\n var extensible = Object.isExtensible(this.target);\n\n if (desc === undefined) {\n if (isSealedDesc(targetDesc)) {\n throw new TypeError(\"cannot report non-configurable property '\"+name+\n \"' as non-existent\");\n }\n if (!extensible && targetDesc !== undefined) {\n // if handler is allowed to return undefined, we cannot guarantee\n // that it will not return a descriptor for this property later.\n // Once a property has been reported as non-existent on a non-extensible\n // object, it should forever be reported as non-existent\n throw new TypeError(\"cannot report existing own property '\"+name+\n \"' as non-existent on a non-extensible object\");\n }\n return undefined;\n }\n\n // at this point, we know (desc !== undefined), i.e.\n // targetHandler reports 'name' as an existing property\n\n // Note: we could collapse the following two if-tests into a single\n // test. Separating out the cases to improve error reporting.\n\n if (!extensible) {\n if (targetDesc === undefined) {\n throw new TypeError(\"cannot report a new own property '\"+\n name + \"' on a non-extensible object\");\n }\n }\n\n if (name !== undefined) {\n if (!isCompatibleDescriptor(extensible, targetDesc, desc)) {\n throw new TypeError(\"cannot report incompatible property descriptor \"+\n \"for property '\"+name+\"'\");\n }\n }\n \n if (desc.configurable === false) {\n if (targetDesc === undefined || targetDesc.configurable === true) {\n // if the property is configurable or non-existent on the target,\n // but is reported as a non-configurable property, it may later be\n // reported as configurable or non-existent, which violates the\n // invariant that if the property might change or disappear, the\n // configurable attribute must be true.\n throw new TypeError(\n \"cannot report a non-configurable descriptor \" +\n \"for configurable or non-existent property '\" + name + \"'\");\n }\n if ('writable' in desc && desc.writable === false) {\n if (targetDesc.writable === true) {\n // if the property is non-configurable, writable on the target,\n // but is reported as non-configurable, non-writable, it may later\n // be reported as non-configurable, writable again, which violates\n // the invariant that a non-configurable, non-writable property\n // may not change state.\n throw new TypeError(\n \"cannot report non-configurable, writable property '\" + name +\n \"' as non-configurable, non-writable\");\n }\n }\n }\n\n return desc;\n },\n\n /**\n * In the direct proxies design with refactored prototype climbing,\n * this trap is deprecated. For proxies-as-prototypes, instead\n * of calling this trap, the get, set, has or enumerate traps are\n * called instead.\n *\n * In this implementation, we \"abuse\" getPropertyDescriptor to\n * support trapping the get or set traps for proxies-as-prototypes.\n * We do this by returning a getter/setter pair that invokes\n * the corresponding traps.\n *\n * While this hack works for inherited property access, it has some\n * quirks:\n *\n * In Firefox, this trap is only called after a prior invocation\n * of the 'has' trap has returned true. Hence, expect the following\n * behavior:\n * \n * var child = Object.create(Proxy(target, handler));\n * child[name] // triggers handler.has(target, name)\n * // if that returns true, triggers handler.get(target, name, child)\n * \n *\n * On v8, the 'in' operator, when applied to an object that inherits\n * from a proxy, will call getPropertyDescriptor and walk the proto-chain.\n * That calls the below getPropertyDescriptor trap on the proxy. The\n * result of the 'in'-operator is then determined by whether this trap\n * returns undefined or a property descriptor object. That is why\n * we first explicitly trigger the 'has' trap to determine whether\n * the property exists.\n *\n * This has the side-effect that when enumerating properties on\n * an object that inherits from a proxy in v8, only properties\n * for which 'has' returns true are returned:\n *\n * \n * var child = Object.create(Proxy(target, handler));\n * for (var prop in child) {\n * // only enumerates prop if (prop in child) returns true\n * }\n * \n */\n getPropertyDescriptor: function(name) {\n var handler = this;\n\n if (!handler.has(name)) return undefined;\n\n return {\n get: function() {\n return handler.get(this, name);\n },\n set: function(val) {\n if (handler.set(this, name, val)) {\n return val;\n } else {\n throw new TypeError(\"failed assignment to \"+name);\n }\n },\n enumerable: true,\n configurable: true\n };\n },\n\n /**\n * If name denotes a fixed property, check for incompatible changes.\n * If the proxy is non-extensible, check that new properties are rejected.\n */\n defineProperty: function(name, desc) {\n // TODO(tvcutsem): the current tracemonkey implementation of proxies\n // auto-completes 'desc', which is not correct. 'desc' should be\n // normalized, but not completed. Consider:\n // Object.defineProperty(proxy, 'foo', {enumerable:false})\n // This trap will receive desc =\n // {value:undefined,writable:false,enumerable:false,configurable:false}\n // This will also set all other attributes to their default value,\n // which is unexpected and different from [[DefineOwnProperty]].\n // Bug filed: https://bugzilla.mozilla.org/show_bug.cgi?id=601329\n\n var trap = this.getTrap(\"defineProperty\");\n if (trap === undefined) {\n // default forwarding behavior\n return Reflect.defineProperty(this.target, name, desc);\n }\n\n name = String(name);\n var descObj = normalizePropertyDescriptor(desc);\n var success = trap.call(this.handler, this.target, name, descObj);\n success = !!success; // coerce to Boolean\n\n if (success === true) {\n\n var targetDesc = Object.getOwnPropertyDescriptor(this.target, name);\n var extensible = Object.isExtensible(this.target);\n\n // Note: we could collapse the following two if-tests into a single\n // test. Separating out the cases to improve error reporting.\n\n if (!extensible) {\n if (targetDesc === undefined) {\n throw new TypeError(\"cannot successfully add a new property '\"+\n name + \"' to a non-extensible object\");\n }\n }\n\n if (targetDesc !== undefined) {\n if (!isCompatibleDescriptor(extensible, targetDesc, desc)) {\n throw new TypeError(\"cannot define incompatible property \"+\n \"descriptor for property '\"+name+\"'\");\n }\n if (isDataDescriptor(targetDesc) &&\n targetDesc.configurable === false &&\n targetDesc.writable === true) {\n if (desc.configurable === false && desc.writable === false) {\n // if the property is non-configurable, writable on the target\n // but was successfully reported to be updated to\n // non-configurable, non-writable, it can later be reported\n // again as non-configurable, writable, which violates\n // the invariant that non-configurable, non-writable properties\n // cannot change state\n throw new TypeError(\n \"cannot successfully define non-configurable, writable \" +\n \" property '\" + name + \"' as non-configurable, non-writable\");\n }\n }\n }\n\n if (desc.configurable === false && !isSealedDesc(targetDesc)) {\n // if the property is configurable or non-existent on the target,\n // but is successfully being redefined as a non-configurable property,\n // it may later be reported as configurable or non-existent, which violates\n // the invariant that if the property might change or disappear, the\n // configurable attribute must be true.\n throw new TypeError(\n \"cannot successfully define a non-configurable \" +\n \"descriptor for configurable or non-existent property '\" +\n name + \"'\");\n }\n\n }\n\n return success;\n },\n\n /**\n * On success, check whether the target object is indeed non-extensible.\n */\n preventExtensions: function() {\n var trap = this.getTrap(\"preventExtensions\");\n if (trap === undefined) {\n // default forwarding behavior\n return Reflect.preventExtensions(this.target);\n }\n\n var success = trap.call(this.handler, this.target);\n success = !!success; // coerce to Boolean\n if (success) {\n if (Object_isExtensible(this.target)) {\n throw new TypeError(\"can't report extensible object as non-extensible: \"+\n this.target);\n }\n }\n return success;\n },\n\n /**\n * If name denotes a sealed property, check whether handler rejects.\n */\n delete: function(name) {\n \"use strict\";\n var trap = this.getTrap(\"deleteProperty\");\n if (trap === undefined) {\n // default forwarding behavior\n return Reflect.deleteProperty(this.target, name);\n }\n\n name = String(name);\n var res = trap.call(this.handler, this.target, name);\n res = !!res; // coerce to Boolean\n\n var targetDesc;\n if (res === true) {\n targetDesc = Object.getOwnPropertyDescriptor(this.target, name);\n if (targetDesc !== undefined && targetDesc.configurable === false) {\n throw new TypeError(\"property '\" + name + \"' is non-configurable \"+\n \"and can't be deleted\");\n }\n if (targetDesc !== undefined && !Object_isExtensible(this.target)) {\n // if the property still exists on a non-extensible target but\n // is reported as successfully deleted, it may later be reported\n // as present, which violates the invariant that an own property,\n // deleted from a non-extensible object cannot reappear.\n throw new TypeError(\n \"cannot successfully delete existing property '\" + name +\n \"' on a non-extensible object\");\n }\n }\n\n return res;\n },\n\n /**\n * The getOwnPropertyNames trap was replaced by the ownKeys trap,\n * which now also returns an array (of strings or symbols) and\n * which performs the same rigorous invariant checks as getOwnPropertyNames\n *\n * See issue #48 on how this trap can still get invoked by external libs\n * that don't use the patched Object.getOwnPropertyNames function.\n */\n getOwnPropertyNames: function() {\n // Note: removed deprecation warning to avoid dependency on 'console'\n // (and on node, should anyway use util.deprecate). Deprecation warnings\n // can also be annoying when they are outside of the user's control, e.g.\n // when an external library calls unpatched Object.getOwnPropertyNames.\n // Since there is a clean fallback to `ownKeys`, the fact that the\n // deprecated method is still called is mostly harmless anyway.\n // See also issues #65 and #66.\n // console.warn(\"getOwnPropertyNames trap is deprecated. Use ownKeys instead\");\n return this.ownKeys();\n },\n\n /**\n * Checks whether the trap result does not contain any new properties\n * if the proxy is non-extensible.\n *\n * Any own non-configurable properties of the target that are not included\n * in the trap result give rise to a TypeError. As such, we check whether the\n * returned result contains at least all sealed properties of the target\n * object.\n *\n * Additionally, the trap result is normalized.\n * Instead of returning the trap result directly:\n * - create and return a fresh Array,\n * - of which each element is coerced to a String\n *\n * This trap is called a.o. by Reflect.ownKeys, Object.getOwnPropertyNames\n * and Object.keys (the latter filters out only the enumerable own properties).\n */\n ownKeys: function() {\n var trap = this.getTrap(\"ownKeys\");\n if (trap === undefined) {\n // default forwarding behavior\n return Reflect.ownKeys(this.target);\n }\n\n var trapResult = trap.call(this.handler, this.target);\n\n // propNames is used as a set of strings\n var propNames = Object.create(null);\n var numProps = +trapResult.length;\n var result = new Array(numProps);\n\n for (var i = 0; i < numProps; i++) {\n var s = String(trapResult[i]);\n if (!Object.isExtensible(this.target) && !isFixed(s, this.target)) {\n // non-extensible proxies don't tolerate new own property names\n throw new TypeError(\"ownKeys trap cannot list a new \"+\n \"property '\"+s+\"' on a non-extensible object\");\n }\n\n propNames[s] = true;\n result[i] = s;\n }\n\n var ownProps = Object_getOwnPropertyNames(this.target);\n var target = this.target;\n ownProps.forEach(function (ownProp) {\n if (!propNames[ownProp]) {\n if (isSealed(ownProp, target)) {\n throw new TypeError(\"ownKeys trap failed to include \"+\n \"non-configurable property '\"+ownProp+\"'\");\n }\n if (!Object.isExtensible(target) &&\n isFixed(ownProp, target)) {\n // if handler is allowed to report ownProp as non-existent,\n // we cannot guarantee that it will never later report it as\n // existent. Once a property has been reported as non-existent\n // on a non-extensible object, it should forever be reported as\n // non-existent\n throw new TypeError(\"ownKeys trap cannot report existing own property '\"+\n ownProp+\"' as non-existent on a non-extensible object\");\n }\n }\n });\n\n return result;\n },\n\n /**\n * Checks whether the trap result is consistent with the state of the\n * wrapped target.\n */\n isExtensible: function() {\n var trap = this.getTrap(\"isExtensible\");\n if (trap === undefined) {\n // default forwarding behavior\n return Reflect.isExtensible(this.target);\n }\n\n var result = trap.call(this.handler, this.target);\n result = !!result; // coerce to Boolean\n var state = Object_isExtensible(this.target);\n if (result !== state) {\n if (result) {\n throw new TypeError(\"cannot report non-extensible object as extensible: \"+\n this.target);\n } else {\n throw new TypeError(\"cannot report extensible object as non-extensible: \"+\n this.target);\n }\n }\n return state;\n },\n\n /**\n * Check whether the trap result corresponds to the target's [[Prototype]]\n */\n getPrototypeOf: function() {\n var trap = this.getTrap(\"getPrototypeOf\");\n if (trap === undefined) {\n // default forwarding behavior\n return Reflect.getPrototypeOf(this.target);\n }\n\n var allegedProto = trap.call(this.handler, this.target);\n\n if (!Object_isExtensible(this.target)) {\n var actualProto = Object_getPrototypeOf(this.target);\n if (!sameValue(allegedProto, actualProto)) {\n throw new TypeError(\"prototype value does not match: \" + this.target);\n }\n }\n\n return allegedProto;\n },\n\n /**\n * If target is non-extensible and setPrototypeOf trap returns true,\n * check whether the trap result corresponds to the target's [[Prototype]]\n */\n setPrototypeOf: function(newProto) {\n var trap = this.getTrap(\"setPrototypeOf\");\n if (trap === undefined) {\n // default forwarding behavior\n return Reflect.setPrototypeOf(this.target, newProto);\n }\n\n var success = trap.call(this.handler, this.target, newProto);\n\n success = !!success;\n if (success && !Object_isExtensible(this.target)) {\n var actualProto = Object_getPrototypeOf(this.target);\n if (!sameValue(newProto, actualProto)) {\n throw new TypeError(\"prototype value does not match: \" + this.target);\n }\n }\n\n return success;\n },\n\n /**\n * In the direct proxies design with refactored prototype climbing,\n * this trap is deprecated. For proxies-as-prototypes, for-in will\n * call the enumerate() trap. If that trap is not defined, the\n * operation is forwarded to the target, no more fallback on this\n * fundamental trap.\n */\n getPropertyNames: function() {\n throw new TypeError(\"getPropertyNames trap is deprecated\");\n },\n\n // === derived traps ===\n\n /**\n * If name denotes a fixed property, check whether the trap returns true.\n */\n has: function(name) {\n var trap = this.getTrap(\"has\");\n if (trap === undefined) {\n // default forwarding behavior\n return Reflect.has(this.target, name);\n }\n\n name = String(name);\n var res = trap.call(this.handler, this.target, name);\n res = !!res; // coerce to Boolean\n\n if (res === false) {\n if (isSealed(name, this.target)) {\n throw new TypeError(\"cannot report existing non-configurable own \"+\n \"property '\"+ name + \"' as a non-existent \"+\n \"property\");\n }\n if (!Object.isExtensible(this.target) &&\n isFixed(name, this.target)) {\n // if handler is allowed to return false, we cannot guarantee\n // that it will not return true for this property later.\n // Once a property has been reported as non-existent on a non-extensible\n // object, it should forever be reported as non-existent\n throw new TypeError(\"cannot report existing own property '\"+name+\n \"' as non-existent on a non-extensible object\");\n }\n }\n\n // if res === true, we don't need to check for extensibility\n // even for a non-extensible proxy that has no own name property,\n // the property may have been inherited\n\n return res;\n },\n\n /**\n * If name denotes a fixed non-configurable, non-writable data property,\n * check its return value against the previously asserted value of the\n * fixed property.\n */\n get: function(receiver, name) {\n\n // experimental support for invoke() trap on platforms that\n // support __noSuchMethod__\n /*\n if (name === '__noSuchMethod__') {\n var handler = this;\n return function(name, args) {\n return handler.invoke(receiver, name, args);\n }\n }\n */\n\n var trap = this.getTrap(\"get\");\n if (trap === undefined) {\n // default forwarding behavior\n return Reflect.get(this.target, name, receiver);\n }\n\n name = String(name);\n var res = trap.call(this.handler, this.target, name, receiver);\n\n var fixedDesc = Object.getOwnPropertyDescriptor(this.target, name);\n // check consistency of the returned value\n if (fixedDesc !== undefined) { // getting an existing property\n if (isDataDescriptor(fixedDesc) &&\n fixedDesc.configurable === false &&\n fixedDesc.writable === false) { // own frozen data property\n if (!sameValue(res, fixedDesc.value)) {\n throw new TypeError(\"cannot report inconsistent value for \"+\n \"non-writable, non-configurable property '\"+\n name+\"'\");\n }\n } else { // it's an accessor property\n if (isAccessorDescriptor(fixedDesc) &&\n fixedDesc.configurable === false &&\n fixedDesc.get === undefined) {\n if (res !== undefined) {\n throw new TypeError(\"must report undefined for non-configurable \"+\n \"accessor property '\"+name+\"' without getter\");\n }\n }\n }\n }\n\n return res;\n },\n\n /**\n * If name denotes a fixed non-configurable, non-writable data property,\n * check that the trap rejects the assignment.\n */\n set: function(receiver, name, val) {\n var trap = this.getTrap(\"set\");\n if (trap === undefined) {\n // default forwarding behavior\n return Reflect.set(this.target, name, val, receiver);\n }\n\n name = String(name);\n var res = trap.call(this.handler, this.target, name, val, receiver);\n res = !!res; // coerce to Boolean\n\n // if success is reported, check whether property is truly assignable\n if (res === true) {\n var fixedDesc = Object.getOwnPropertyDescriptor(this.target, name);\n if (fixedDesc !== undefined) { // setting an existing property\n if (isDataDescriptor(fixedDesc) &&\n fixedDesc.configurable === false &&\n fixedDesc.writable === false) {\n if (!sameValue(val, fixedDesc.value)) {\n throw new TypeError(\"cannot successfully assign to a \"+\n \"non-writable, non-configurable property '\"+\n name+\"'\");\n }\n } else {\n if (isAccessorDescriptor(fixedDesc) &&\n fixedDesc.configurable === false && // non-configurable\n fixedDesc.set === undefined) { // accessor with undefined setter\n throw new TypeError(\"setting a property '\"+name+\"' that has \"+\n \" only a getter\");\n }\n }\n }\n }\n\n return res;\n },\n\n /**\n * Any own enumerable non-configurable properties of the target that are not\n * included in the trap result give rise to a TypeError. As such, we check\n * whether the returned result contains at least all sealed enumerable properties\n * of the target object.\n *\n * The trap should return an iterator.\n *\n * However, as implementations of pre-direct proxies still expect enumerate\n * to return an array of strings, we convert the iterator into an array.\n */\n enumerate: function() {\n var trap = this.getTrap(\"enumerate\");\n if (trap === undefined) {\n // default forwarding behavior\n var trapResult = Reflect.enumerate(this.target);\n var result = [];\n var nxt = trapResult.next();\n while (!nxt.done) {\n result.push(String(nxt.value));\n nxt = trapResult.next();\n }\n return result;\n }\n\n var trapResult = trap.call(this.handler, this.target);\n \n if (trapResult === null ||\n trapResult === undefined ||\n trapResult.next === undefined) {\n throw new TypeError(\"enumerate trap should return an iterator, got: \"+\n trapResult); \n }\n \n // propNames is used as a set of strings\n var propNames = Object.create(null);\n \n // var numProps = +trapResult.length;\n var result = []; // new Array(numProps);\n \n // trapResult is supposed to be an iterator\n // drain iterator to array as current implementations still expect\n // enumerate to return an array of strings\n var nxt = trapResult.next();\n \n while (!nxt.done) {\n var s = String(nxt.value);\n if (propNames[s]) {\n throw new TypeError(\"enumerate trap cannot list a \"+\n \"duplicate property '\"+s+\"'\");\n }\n propNames[s] = true;\n result.push(s);\n nxt = trapResult.next();\n }\n \n /*for (var i = 0; i < numProps; i++) {\n var s = String(trapResult[i]);\n if (propNames[s]) {\n throw new TypeError(\"enumerate trap cannot list a \"+\n \"duplicate property '\"+s+\"'\");\n }\n\n propNames[s] = true;\n result[i] = s;\n } */\n\n var ownEnumerableProps = Object.keys(this.target);\n var target = this.target;\n ownEnumerableProps.forEach(function (ownEnumerableProp) {\n if (!propNames[ownEnumerableProp]) {\n if (isSealed(ownEnumerableProp, target)) {\n throw new TypeError(\"enumerate trap failed to include \"+\n \"non-configurable enumerable property '\"+\n ownEnumerableProp+\"'\");\n }\n if (!Object.isExtensible(target) &&\n isFixed(ownEnumerableProp, target)) {\n // if handler is allowed not to report ownEnumerableProp as an own\n // property, we cannot guarantee that it will never report it as\n // an own property later. Once a property has been reported as\n // non-existent on a non-extensible object, it should forever be\n // reported as non-existent\n throw new TypeError(\"cannot report existing own property '\"+\n ownEnumerableProp+\"' as non-existent on a \"+\n \"non-extensible object\");\n }\n }\n });\n\n return result;\n },\n\n /**\n * The iterate trap is deprecated by the enumerate trap.\n */\n iterate: Validator.prototype.enumerate,\n\n /**\n * Any own non-configurable properties of the target that are not included\n * in the trap result give rise to a TypeError. As such, we check whether the\n * returned result contains at least all sealed properties of the target\n * object.\n *\n * The trap result is normalized.\n * The trap result is not returned directly. Instead:\n * - create and return a fresh Array,\n * - of which each element is coerced to String,\n * - which does not contain duplicates\n *\n * FIXME: keys trap is deprecated\n */\n /*\n keys: function() {\n var trap = this.getTrap(\"keys\");\n if (trap === undefined) {\n // default forwarding behavior\n return Reflect.keys(this.target);\n }\n\n var trapResult = trap.call(this.handler, this.target);\n\n // propNames is used as a set of strings\n var propNames = Object.create(null);\n var numProps = +trapResult.length;\n var result = new Array(numProps);\n\n for (var i = 0; i < numProps; i++) {\n var s = String(trapResult[i]);\n if (propNames[s]) {\n throw new TypeError(\"keys trap cannot list a \"+\n \"duplicate property '\"+s+\"'\");\n }\n if (!Object.isExtensible(this.target) && !isFixed(s, this.target)) {\n // non-extensible proxies don't tolerate new own property names\n throw new TypeError(\"keys trap cannot list a new \"+\n \"property '\"+s+\"' on a non-extensible object\");\n }\n\n propNames[s] = true;\n result[i] = s;\n }\n\n var ownEnumerableProps = Object.keys(this.target);\n var target = this.target;\n ownEnumerableProps.forEach(function (ownEnumerableProp) {\n if (!propNames[ownEnumerableProp]) {\n if (isSealed(ownEnumerableProp, target)) {\n throw new TypeError(\"keys trap failed to include \"+\n \"non-configurable enumerable property '\"+\n ownEnumerableProp+\"'\");\n }\n if (!Object.isExtensible(target) &&\n isFixed(ownEnumerableProp, target)) {\n // if handler is allowed not to report ownEnumerableProp as an own\n // property, we cannot guarantee that it will never report it as\n // an own property later. Once a property has been reported as\n // non-existent on a non-extensible object, it should forever be\n // reported as non-existent\n throw new TypeError(\"cannot report existing own property '\"+\n ownEnumerableProp+\"' as non-existent on a \"+\n \"non-extensible object\");\n }\n }\n });\n\n return result;\n },\n */\n \n /**\n * New trap that reifies [[Call]].\n * If the target is a function, then a call to\n * proxy(...args)\n * Triggers this trap\n */\n apply: function(target, thisBinding, args) {\n var trap = this.getTrap(\"apply\");\n if (trap === undefined) {\n return Reflect.apply(target, thisBinding, args);\n }\n\n if (typeof this.target === \"function\") {\n return trap.call(this.handler, target, thisBinding, args);\n } else {\n throw new TypeError(\"apply: \"+ target + \" is not a function\");\n }\n },\n\n /**\n * New trap that reifies [[Construct]].\n * If the target is a function, then a call to\n * new proxy(...args)\n * Triggers this trap\n */\n construct: function(target, args, newTarget) {\n var trap = this.getTrap(\"construct\");\n if (trap === undefined) {\n return Reflect.construct(target, args, newTarget);\n }\n\n if (typeof target !== \"function\") {\n throw new TypeError(\"new: \"+ target + \" is not a function\");\n }\n\n if (newTarget === undefined) {\n newTarget = target;\n } else {\n if (typeof newTarget !== \"function\") {\n throw new TypeError(\"new: \"+ newTarget + \" is not a function\");\n } \n }\n return trap.call(this.handler, target, args, newTarget);\n }\n};\n\n// ---- end of the Validator handler wrapper handler ----\n\n// In what follows, a 'direct proxy' is a proxy\n// whose handler is a Validator. Such proxies can be made non-extensible,\n// sealed or frozen without losing the ability to trap.\n\n// maps direct proxies to their Validator handlers\nvar directProxies = new WeakMap();\n\n// patch Object.{preventExtensions,seal,freeze} so that\n// they recognize fixable proxies and act accordingly\nObject.preventExtensions = function(subject) {\n var vhandler = directProxies.get(subject);\n if (vhandler !== undefined) {\n if (vhandler.preventExtensions()) {\n return subject;\n } else {\n throw new TypeError(\"preventExtensions on \"+subject+\" rejected\");\n }\n } else {\n return prim_preventExtensions(subject);\n }\n};\nObject.seal = function(subject) {\n setIntegrityLevel(subject, \"sealed\");\n return subject;\n};\nObject.freeze = function(subject) {\n setIntegrityLevel(subject, \"frozen\");\n return subject;\n};\nObject.isExtensible = Object_isExtensible = function(subject) {\n var vHandler = directProxies.get(subject);\n if (vHandler !== undefined) {\n return vHandler.isExtensible();\n } else {\n return prim_isExtensible(subject);\n }\n};\nObject.isSealed = Object_isSealed = function(subject) {\n return testIntegrityLevel(subject, \"sealed\");\n};\nObject.isFrozen = Object_isFrozen = function(subject) {\n return testIntegrityLevel(subject, \"frozen\");\n};\nObject.getPrototypeOf = Object_getPrototypeOf = function(subject) {\n var vHandler = directProxies.get(subject);\n if (vHandler !== undefined) {\n return vHandler.getPrototypeOf();\n } else {\n return prim_getPrototypeOf(subject);\n }\n};\n\n// patch Object.getOwnPropertyDescriptor to directly call\n// the Validator.prototype.getOwnPropertyDescriptor trap\n// This is to circumvent an assertion in the built-in Proxy\n// trapping mechanism of v8, which disallows that trap to\n// return non-configurable property descriptors (as per the\n// old Proxy design)\nObject.getOwnPropertyDescriptor = function(subject, name) {\n var vhandler = directProxies.get(subject);\n if (vhandler !== undefined) {\n return vhandler.getOwnPropertyDescriptor(name);\n } else {\n return prim_getOwnPropertyDescriptor(subject, name);\n }\n};\n\n// patch Object.defineProperty to directly call\n// the Validator.prototype.defineProperty trap\n// This is to circumvent two issues with the built-in\n// trap mechanism:\n// 1) the current tracemonkey implementation of proxies\n// auto-completes 'desc', which is not correct. 'desc' should be\n// normalized, but not completed. Consider:\n// Object.defineProperty(proxy, 'foo', {enumerable:false})\n// This trap will receive desc =\n// {value:undefined,writable:false,enumerable:false,configurable:false}\n// This will also set all other attributes to their default value,\n// which is unexpected and different from [[DefineOwnProperty]].\n// Bug filed: https://bugzilla.mozilla.org/show_bug.cgi?id=601329\n// 2) the current spidermonkey implementation does not\n// throw an exception when this trap returns 'false', but instead silently\n// ignores the operation (this is regardless of strict-mode)\n// 2a) v8 does throw an exception for this case, but includes the rather\n// unhelpful error message:\n// 'Proxy handler # returned false from 'defineProperty' trap'\nObject.defineProperty = function(subject, name, desc) {\n var vhandler = directProxies.get(subject);\n if (vhandler !== undefined) {\n var normalizedDesc = normalizePropertyDescriptor(desc);\n var success = vhandler.defineProperty(name, normalizedDesc);\n if (success === false) {\n throw new TypeError(\"can't redefine property '\"+name+\"'\");\n }\n return subject;\n } else {\n return prim_defineProperty(subject, name, desc);\n }\n};\n\nObject.defineProperties = function(subject, descs) {\n var vhandler = directProxies.get(subject);\n if (vhandler !== undefined) {\n var names = Object.keys(descs);\n for (var i = 0; i < names.length; i++) {\n var name = names[i];\n var normalizedDesc = normalizePropertyDescriptor(descs[name]);\n var success = vhandler.defineProperty(name, normalizedDesc);\n if (success === false) {\n throw new TypeError(\"can't redefine property '\"+name+\"'\");\n }\n }\n return subject;\n } else {\n return prim_defineProperties(subject, descs);\n }\n};\n\nObject.keys = function(subject) {\n var vHandler = directProxies.get(subject);\n if (vHandler !== undefined) {\n var ownKeys = vHandler.ownKeys();\n var result = [];\n for (var i = 0; i < ownKeys.length; i++) {\n var k = String(ownKeys[i]);\n var desc = Object.getOwnPropertyDescriptor(subject, k);\n if (desc !== undefined && desc.enumerable === true) {\n result.push(k);\n }\n }\n return result;\n } else {\n return prim_keys(subject);\n }\n}\n\nObject.getOwnPropertyNames = Object_getOwnPropertyNames = function(subject) {\n var vHandler = directProxies.get(subject);\n if (vHandler !== undefined) {\n return vHandler.ownKeys();\n } else {\n return prim_getOwnPropertyNames(subject);\n }\n}\n\n// fixes issue #71 (Calling Object.getOwnPropertySymbols() on a Proxy\n// throws an error)\nif (prim_getOwnPropertySymbols !== undefined) {\n Object.getOwnPropertySymbols = function(subject) {\n var vHandler = directProxies.get(subject);\n if (vHandler !== undefined) {\n // as this shim does not support symbols, a Proxy never advertises\n // any symbol-valued own properties\n return [];\n } else {\n return prim_getOwnPropertySymbols(subject);\n }\n };\n}\n\n// fixes issue #72 ('Illegal access' error when using Object.assign)\n// Object.assign polyfill based on a polyfill posted on MDN: \n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/\\\n// Global_Objects/Object/assign\n// Note that this polyfill does not support Symbols, but this Proxy Shim\n// does not support Symbols anyway.\nif (prim_assign !== undefined) {\n Object.assign = function (target) {\n \n // check if any argument is a proxy object\n var noProxies = true;\n for (var i = 0; i < arguments.length; i++) {\n var vHandler = directProxies.get(arguments[i]);\n if (vHandler !== undefined) {\n noProxies = false;\n break;\n }\n }\n if (noProxies) {\n // not a single argument is a proxy, perform built-in algorithm\n return prim_assign.apply(Object, arguments);\n }\n \n // there is at least one proxy argument, use the polyfill\n \n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n}\n\n// returns whether an argument is a reference to an object,\n// which is legal as a WeakMap key.\nfunction isObject(arg) {\n var type = typeof arg;\n return (type === 'object' && arg !== null) || (type === 'function');\n};\n\n// a wrapper for WeakMap.get which returns the undefined value\n// for keys that are not objects (in which case the underlying\n// WeakMap would have thrown a TypeError).\nfunction safeWeakMapGet(map, key) {\n return isObject(key) ? map.get(key) : undefined;\n};\n\n// returns a new function of zero arguments that recursively\n// unwraps any proxies specified as the |this|-value.\n// The primitive is assumed to be a zero-argument method\n// that uses its |this|-binding.\nfunction makeUnwrapping0ArgMethod(primitive) {\n return function builtin() {\n var vHandler = safeWeakMapGet(directProxies, this);\n if (vHandler !== undefined) {\n return builtin.call(vHandler.target);\n } else {\n return primitive.call(this);\n }\n }\n};\n\n// returns a new function of 1 arguments that recursively\n// unwraps any proxies specified as the |this|-value.\n// The primitive is assumed to be a 1-argument method\n// that uses its |this|-binding.\nfunction makeUnwrapping1ArgMethod(primitive) {\n return function builtin(arg) {\n var vHandler = safeWeakMapGet(directProxies, this);\n if (vHandler !== undefined) {\n return builtin.call(vHandler.target, arg);\n } else {\n return primitive.call(this, arg);\n }\n }\n};\n\nObject.prototype.valueOf =\n makeUnwrapping0ArgMethod(Object.prototype.valueOf);\nObject.prototype.toString =\n makeUnwrapping0ArgMethod(Object.prototype.toString);\nFunction.prototype.toString =\n makeUnwrapping0ArgMethod(Function.prototype.toString);\nDate.prototype.toString =\n makeUnwrapping0ArgMethod(Date.prototype.toString);\n\nObject.prototype.isPrototypeOf = function builtin(arg) {\n // bugfix thanks to Bill Mark:\n // built-in isPrototypeOf does not unwrap proxies used\n // as arguments. So, we implement the builtin ourselves,\n // based on the ECMAScript 6 spec. Our encoding will\n // make sure that if a proxy is used as an argument,\n // its getPrototypeOf trap will be called.\n while (true) {\n var vHandler2 = safeWeakMapGet(directProxies, arg);\n if (vHandler2 !== undefined) {\n arg = vHandler2.getPrototypeOf();\n if (arg === null) {\n return false;\n } else if (sameValue(arg, this)) {\n return true;\n }\n } else {\n return prim_isPrototypeOf.call(this, arg);\n }\n }\n};\n\nArray.isArray = function(subject) {\n var vHandler = safeWeakMapGet(directProxies, subject);\n if (vHandler !== undefined) {\n return Array.isArray(vHandler.target);\n } else {\n return prim_isArray(subject);\n }\n};\n\nfunction isProxyArray(arg) {\n var vHandler = safeWeakMapGet(directProxies, arg);\n if (vHandler !== undefined) {\n return Array.isArray(vHandler.target);\n }\n return false;\n}\n\n// Array.prototype.concat internally tests whether one of its\n// arguments is an Array, by checking whether [[Class]] == \"Array\"\n// As such, it will fail to recognize proxies-for-arrays as arrays.\n// We patch Array.prototype.concat so that it \"unwraps\" proxies-for-arrays\n// by making a copy. This will trigger the exact same sequence of\n// traps on the proxy-for-array as if we would not have unwrapped it.\n// See for more.\nArray.prototype.concat = function(/*...args*/) {\n var length;\n for (var i = 0; i < arguments.length; i++) {\n if (isProxyArray(arguments[i])) {\n length = arguments[i].length;\n arguments[i] = Array.prototype.slice.call(arguments[i], 0, length);\n }\n }\n return prim_concat.apply(this, arguments);\n};\n\n// setPrototypeOf support on platforms that support __proto__\n\nvar prim_setPrototypeOf = Object.setPrototypeOf;\n\n// patch and extract original __proto__ setter\nvar __proto__setter = (function() {\n var protoDesc = prim_getOwnPropertyDescriptor(Object.prototype,'__proto__');\n if (protoDesc === undefined ||\n typeof protoDesc.set !== \"function\") {\n return function() {\n throw new TypeError(\"setPrototypeOf not supported on this platform\");\n }\n }\n\n // see if we can actually mutate a prototype with the generic setter\n // (e.g. Chrome v28 doesn't allow setting __proto__ via the generic setter)\n try {\n protoDesc.set.call({},{});\n } catch (e) {\n return function() {\n throw new TypeError(\"setPrototypeOf not supported on this platform\");\n }\n }\n\n prim_defineProperty(Object.prototype, '__proto__', {\n set: function(newProto) {\n return Object.setPrototypeOf(this, Object(newProto));\n }\n });\n\n return protoDesc.set;\n}());\n\nObject.setPrototypeOf = function(target, newProto) {\n var handler = directProxies.get(target);\n if (handler !== undefined) {\n if (handler.setPrototypeOf(newProto)) {\n return target;\n } else {\n throw new TypeError(\"proxy rejected prototype mutation\");\n }\n } else {\n if (!Object_isExtensible(target)) {\n throw new TypeError(\"can't set prototype on non-extensible object: \" +\n target);\n }\n if (prim_setPrototypeOf)\n return prim_setPrototypeOf(target, newProto);\n\n if (Object(newProto) !== newProto || newProto === null) {\n throw new TypeError(\"Object prototype may only be an Object or null: \" +\n newProto);\n // throw new TypeError(\"prototype must be an object or null\")\n }\n __proto__setter.call(target, newProto);\n return target;\n }\n}\n\nObject.prototype.hasOwnProperty = function(name) {\n var handler = safeWeakMapGet(directProxies, this);\n if (handler !== undefined) {\n var desc = handler.getOwnPropertyDescriptor(name);\n return desc !== undefined;\n } else {\n return prim_hasOwnProperty.call(this, name);\n }\n}\n\n// ============= Reflection module =============\n// see http://wiki.ecmascript.org/doku.php?id=harmony:reflect_api\n\nvar Reflect = {\n getOwnPropertyDescriptor: function(target, name) {\n return Object.getOwnPropertyDescriptor(target, name);\n },\n defineProperty: function(target, name, desc) {\n\n // if target is a proxy, invoke its \"defineProperty\" trap\n var handler = directProxies.get(target);\n if (handler !== undefined) {\n return handler.defineProperty(target, name, desc);\n }\n\n // Implementation transliterated from [[DefineOwnProperty]]\n // see ES5.1 section 8.12.9\n // this is the _exact same algorithm_ as the isCompatibleDescriptor\n // algorithm defined above, except that at every place it\n // returns true, this algorithm actually does define the property.\n var current = Object.getOwnPropertyDescriptor(target, name);\n var extensible = Object.isExtensible(target);\n if (current === undefined && extensible === false) {\n return false;\n }\n if (current === undefined && extensible === true) {\n Object.defineProperty(target, name, desc); // should never fail\n return true;\n }\n if (isEmptyDescriptor(desc)) {\n return true;\n }\n if (isEquivalentDescriptor(current, desc)) {\n return true;\n }\n if (current.configurable === false) {\n if (desc.configurable === true) {\n return false;\n }\n if ('enumerable' in desc && desc.enumerable !== current.enumerable) {\n return false;\n }\n }\n if (isGenericDescriptor(desc)) {\n // no further validation necessary\n } else if (isDataDescriptor(current) !== isDataDescriptor(desc)) {\n if (current.configurable === false) {\n return false;\n }\n } else if (isDataDescriptor(current) && isDataDescriptor(desc)) {\n if (current.configurable === false) {\n if (current.writable === false && desc.writable === true) {\n return false;\n }\n if (current.writable === false) {\n if ('value' in desc && !sameValue(desc.value, current.value)) {\n return false;\n }\n }\n }\n } else if (isAccessorDescriptor(current) && isAccessorDescriptor(desc)) {\n if (current.configurable === false) {\n if ('set' in desc && !sameValue(desc.set, current.set)) {\n return false;\n }\n if ('get' in desc && !sameValue(desc.get, current.get)) {\n return false;\n }\n }\n }\n Object.defineProperty(target, name, desc); // should never fail\n return true;\n },\n deleteProperty: function(target, name) {\n var handler = directProxies.get(target);\n if (handler !== undefined) {\n return handler.delete(name);\n }\n \n var desc = Object.getOwnPropertyDescriptor(target, name);\n if (desc === undefined) {\n return true;\n }\n if (desc.configurable === true) {\n delete target[name];\n return true;\n }\n return false; \n },\n getPrototypeOf: function(target) {\n return Object.getPrototypeOf(target);\n },\n setPrototypeOf: function(target, newProto) {\n \n var handler = directProxies.get(target);\n if (handler !== undefined) {\n return handler.setPrototypeOf(newProto);\n }\n \n if (Object(newProto) !== newProto || newProto === null) {\n throw new TypeError(\"Object prototype may only be an Object or null: \" +\n newProto);\n }\n \n if (!Object_isExtensible(target)) {\n return false;\n }\n \n var current = Object.getPrototypeOf(target);\n if (sameValue(current, newProto)) {\n return true;\n }\n \n if (prim_setPrototypeOf) {\n try {\n prim_setPrototypeOf(target, newProto);\n return true;\n } catch (e) {\n return false;\n }\n }\n\n __proto__setter.call(target, newProto);\n return true;\n },\n preventExtensions: function(target) {\n var handler = directProxies.get(target);\n if (handler !== undefined) {\n return handler.preventExtensions();\n }\n prim_preventExtensions(target);\n return true;\n },\n isExtensible: function(target) {\n return Object.isExtensible(target);\n },\n has: function(target, name) {\n return name in target;\n },\n get: function(target, name, receiver) {\n receiver = receiver || target;\n\n // if target is a proxy, invoke its \"get\" trap\n var handler = directProxies.get(target);\n if (handler !== undefined) {\n return handler.get(receiver, name);\n }\n\n var desc = Object.getOwnPropertyDescriptor(target, name);\n if (desc === undefined) {\n var proto = Object.getPrototypeOf(target);\n if (proto === null) {\n return undefined;\n }\n return Reflect.get(proto, name, receiver);\n }\n if (isDataDescriptor(desc)) {\n return desc.value;\n }\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return desc.get.call(receiver);\n },\n // Reflect.set implementation based on latest version of [[SetP]] at\n // http://wiki.ecmascript.org/doku.php?id=harmony:proto_climbing_refactoring\n set: function(target, name, value, receiver) {\n receiver = receiver || target;\n\n // if target is a proxy, invoke its \"set\" trap\n var handler = directProxies.get(target);\n if (handler !== undefined) {\n return handler.set(receiver, name, value);\n }\n\n // first, check whether target has a non-writable property\n // shadowing name on receiver\n var ownDesc = Object.getOwnPropertyDescriptor(target, name);\n\n if (ownDesc === undefined) {\n // name is not defined in target, search target's prototype\n var proto = Object.getPrototypeOf(target);\n\n if (proto !== null) {\n // continue the search in target's prototype\n return Reflect.set(proto, name, value, receiver);\n }\n\n // Rev16 change. Cf. https://bugs.ecmascript.org/show_bug.cgi?id=1549\n // target was the last prototype, now we know that 'name' is not shadowed\n // by an existing (accessor or data) property, so we can add the property\n // to the initial receiver object\n // (this branch will intentionally fall through to the code below)\n ownDesc =\n { value: undefined,\n writable: true,\n enumerable: true,\n configurable: true };\n }\n\n // we now know that ownDesc !== undefined\n if (isAccessorDescriptor(ownDesc)) {\n var setter = ownDesc.set;\n if (setter === undefined) return false;\n setter.call(receiver, value); // assumes Function.prototype.call\n return true;\n }\n // otherwise, isDataDescriptor(ownDesc) must be true\n if (ownDesc.writable === false) return false;\n // we found an existing writable data property on the prototype chain.\n // Now update or add the data property on the receiver, depending on\n // whether the receiver already defines the property or not.\n var existingDesc = Object.getOwnPropertyDescriptor(receiver, name);\n if (existingDesc !== undefined) {\n var updateDesc =\n { value: value,\n // FIXME: it should not be necessary to describe the following\n // attributes. Added to circumvent a bug in tracemonkey:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=601329\n writable: existingDesc.writable,\n enumerable: existingDesc.enumerable,\n configurable: existingDesc.configurable };\n Object.defineProperty(receiver, name, updateDesc);\n return true;\n } else {\n if (!Object.isExtensible(receiver)) return false;\n var newDesc =\n { value: value,\n writable: true,\n enumerable: true,\n configurable: true };\n Object.defineProperty(receiver, name, newDesc);\n return true;\n }\n },\n /*invoke: function(target, name, args, receiver) {\n receiver = receiver || target;\n\n var handler = directProxies.get(target);\n if (handler !== undefined) {\n return handler.invoke(receiver, name, args);\n }\n\n var fun = Reflect.get(target, name, receiver);\n return Function.prototype.apply.call(fun, receiver, args);\n },*/\n enumerate: function(target) {\n var handler = directProxies.get(target);\n var result;\n if (handler !== undefined) {\n // handler.enumerate should return an iterator directly, but the\n // iterator gets converted to an array for backward-compat reasons,\n // so we must re-iterate over the array\n result = handler.enumerate(handler.target);\n } else {\n result = [];\n for (var name in target) { result.push(name); }; \n }\n var l = +result.length;\n var idx = 0;\n return {\n next: function() {\n if (idx === l) return { done: true };\n return { done: false, value: result[idx++] };\n }\n };\n },\n // imperfect ownKeys implementation: in ES6, should also include\n // symbol-keyed properties.\n ownKeys: function(target) {\n return Object_getOwnPropertyNames(target);\n },\n apply: function(target, receiver, args) {\n // target.apply(receiver, args)\n return Function.prototype.apply.call(target, receiver, args);\n },\n construct: function(target, args, newTarget) {\n // return new target(...args);\n\n // if target is a proxy, invoke its \"construct\" trap\n var handler = directProxies.get(target);\n if (handler !== undefined) {\n return handler.construct(handler.target, args, newTarget);\n }\n \n if (typeof target !== \"function\") {\n throw new TypeError(\"target is not a function: \" + target);\n }\n if (newTarget === undefined || newTarget === target) {\n // If newTarget is undefined, then newTarget is set to `target` and\n // `Reflect.construct(target, ...args)` becomes equivalent to\n // `new target(...args)`\n // if `target` is an ES2015 Class constructor, it must be called using\n // the `new` operator. Hence we use the new operator on a bound function\n // to trigger the [[Construct]] internal method. This technique will work \n // for both plain constructor functions and ES2015 classes\n return new (Function.prototype.bind.apply(target, [null].concat(args)));\n } else {\n if (typeof newTarget !== \"function\") {\n throw new TypeError(\"newTarget is not a function: \" + target);\n }\n // if newTarget is a *different* constructor function, we need to\n // emulate [[Construct]] by falling back to [[Call]] with a hand-crafted\n // new instance inheriting from newTarget.prototype\n // Unfortunately this won't work if target is an ES2015 Constructor\n // function, whose [[Call]] method throws an error (it must be invoked\n // using the `new` operator)\n var proto = newTarget.prototype;\n var instance = (Object(proto) === proto) ? Object.create(proto) : {};\n var result = Function.prototype.apply.call(target, instance, args);\n return Object(result) === result ? result : instance;\n }\n }\n};\n\n// feature-test whether the Reflect global exists\nif (global.Reflect !== undefined) {\n // Reflect exists, add/override the shimmed methods\n Object.getOwnPropertyNames(Reflect).forEach(function (key) {\n global.Reflect[key] = Reflect[key];\n });\n} else {\n // Reflect doesn't exist, define it as the shimmed Reflect object\n global.Reflect = Reflect;\n}\n\n// feature-test whether the Proxy global exists, with\n// the harmony-era Proxy.create API\nif (typeof Proxy !== \"undefined\" &&\n typeof Proxy.create !== \"undefined\") {\n\n var primCreate = Proxy.create,\n primCreateFunction = Proxy.createFunction;\n\n var revokedHandler = primCreate({\n get: function() { throw new TypeError(\"proxy is revoked\"); }\n });\n\n global.Proxy = function(target, handler) {\n // check that target is an Object\n if (Object(target) !== target) {\n throw new TypeError(\"Proxy target must be an Object, given \"+target);\n }\n // check that handler is an Object\n if (Object(handler) !== handler) {\n throw new TypeError(\"Proxy handler must be an Object, given \"+handler);\n }\n\n var vHandler = new Validator(target, handler);\n var proxy;\n if (typeof target === \"function\") {\n proxy = primCreateFunction(vHandler,\n // call trap\n function() {\n var args = Array.prototype.slice.call(arguments);\n return vHandler.apply(target, this, args);\n },\n // construct trap\n function() {\n var args = Array.prototype.slice.call(arguments);\n return vHandler.construct(target, args);\n });\n } else {\n proxy = primCreate(vHandler, Object.getPrototypeOf(target));\n }\n directProxies.set(proxy, vHandler);\n return proxy;\n };\n\n global.Proxy.revocable = function(target, handler) {\n var proxy = new Proxy(target, handler);\n var revoke = function() {\n var vHandler = directProxies.get(proxy);\n if (vHandler !== null) {\n vHandler.target = null;\n vHandler.handler = revokedHandler;\n }\n return undefined;\n };\n return {proxy: proxy, revoke: revoke};\n }\n \n // add the old Proxy.create and Proxy.createFunction methods\n // so old code that still depends on the harmony-era Proxy object\n // is not broken. Also ensures that multiple versions of this\n // library should load fine\n global.Proxy.create = primCreate;\n global.Proxy.createFunction = primCreateFunction;\n\n} else {\n // Proxy global not defined, or old API not available\n if (typeof Proxy === \"undefined\") {\n // Proxy global not defined, add a Proxy function stub\n global.Proxy = function(_target, _handler) {\n throw new Error(\"proxies not supported on this platform. On v8/node/iojs, make sure to pass the --harmony_proxies flag\");\n };\n }\n // Proxy global defined but old API not available\n // presumably Proxy global already supports new API, leave untouched\n}\n\n// for node.js modules, export every property in the Reflect object\n// as part of the module interface\nif (typeof exports !== 'undefined') {\n Object.keys(Reflect).forEach(function (key) {\n exports[key] = Reflect[key];\n });\n}\n\n// function-as-module pattern\n}(typeof exports !== 'undefined' ? global : this));","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\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 '@webcomponents/custom-elements';\nimport 'harmony-reflect';\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