{"version":3,"file":"forum.js","mappings":"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","sources":["webpack://@flarum/emoji/webpack/bootstrap","webpack://@flarum/emoji/webpack/runtime/compat get default export","webpack://@flarum/emoji/webpack/runtime/define property getters","webpack://@flarum/emoji/webpack/runtime/hasOwnProperty shorthand","webpack://@flarum/emoji/webpack/runtime/make namespace object","webpack://@flarum/emoji/external root \"flarum.core.compat['forum/app']\"","webpack://@flarum/emoji/external root \"flarum.core.compat['common/extend']\"","webpack://@flarum/emoji/external root \"flarum.core.compat['common/components/TextEditor']\"","webpack://@flarum/emoji/external root \"flarum.core.compat['common/components/TextEditorButton']\"","webpack://@flarum/emoji/external root \"flarum.core.compat['forum/utils/KeyboardNavigatable']\"","webpack://@flarum/emoji/../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@flarum/emoji/external root \"flarum.core.compat['common/Fragment']\"","webpack://@flarum/emoji/./src/forum/fragments/AutocompleteDropdown.js","webpack://@flarum/emoji/../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@flarum/emoji/../../../node_modules/twemoji/dist/twemoji.esm.js","webpack://@flarum/emoji/./src/forum/helpers/getEmojiIconCode.js","webpack://@flarum/emoji/./src/forum/cdn.js","webpack://@flarum/emoji/external root \"flarum.core.compat['common/models/Post']\"","webpack://@flarum/emoji/./src/forum/renderEmoji.js","webpack://@flarum/emoji/./src/forum/index.js","webpack://@flarum/emoji/./src/forum/addComposerAutocomplete.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/app'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/TextEditor'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/TextEditorButton'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/utils/KeyboardNavigatable'];","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Fragment'];","import Fragment from 'flarum/common/Fragment';\n\nexport default class AutocompleteDropdown extends Fragment {\n items = [];\n active = false;\n index = 0;\n keyWasJustPressed = false;\n\n view() {\n return (\n \n );\n }\n\n show(left, top) {\n this.$()\n .show()\n .css({\n left: left + 'px',\n top: top + 'px',\n });\n this.active = true;\n }\n\n hide() {\n this.$().hide();\n this.active = false;\n }\n\n navigate(delta) {\n this.keyWasJustPressed = true;\n this.setIndex(this.index + delta, true);\n clearTimeout(this.keyWasJustPressedTimeout);\n this.keyWasJustPressedTimeout = setTimeout(() => (this.keyWasJustPressed = false), 500);\n }\n\n complete() {\n this.$('li:not(.Dropdown-header)').eq(this.index).find('button').click();\n }\n\n setIndex(index, scrollToItem) {\n if (this.keyWasJustPressed && !scrollToItem) return;\n\n const $dropdown = this.$();\n const $items = $dropdown.find('li:not(.Dropdown-header)');\n let rangedIndex = index;\n\n if (rangedIndex < 0) {\n rangedIndex = $items.length - 1;\n } else if (rangedIndex >= $items.length) {\n rangedIndex = 0;\n }\n\n this.index = rangedIndex;\n\n const $item = $items.removeClass('active').eq(rangedIndex).addClass('active');\n\n if (scrollToItem) {\n const dropdownScroll = $dropdown.scrollTop();\n const dropdownTop = $dropdown.offset().top;\n const dropdownBottom = dropdownTop + $dropdown.outerHeight();\n const itemTop = $item.offset().top;\n const itemBottom = itemTop + $item.outerHeight();\n\n let scrollTop;\n if (itemTop < dropdownTop) {\n scrollTop = dropdownScroll - dropdownTop + itemTop - parseInt($dropdown.css('padding-top'), 10);\n } else if (itemBottom > dropdownBottom) {\n scrollTop = dropdownScroll - dropdownBottom + itemBottom + parseInt($dropdown.css('padding-bottom'), 10);\n }\n\n if (typeof scrollTop !== 'undefined') {\n $dropdown.stop(true).animate({ scrollTop }, 100);\n }\n }\n }\n}\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","/*! Copyright Twitter Inc. and other contributors. Licensed under MIT */\nvar twemoji=function(){\"use strict\";var twemoji={base:\"https://twemoji.maxcdn.com/v/13.1.1/\",ext:\".png\",size:\"72x72\",className:\"emoji\",convert:{fromCodePoint:fromCodePoint,toCodePoint:toCodePoint},onerror:function onerror(){if(this.parentNode){this.parentNode.replaceChild(createText(this.alt,false),this)}},parse:parse,replace:replace,test:test},escaper={\"&\":\"&\",\"<\":\"<\",\">\":\">\",\"'\":\"'\",'\"':\""\"},re=/(?:\\ud83d\\udc68\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffc-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83e\\uddd1\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83e\\uddd1\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc68\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffe]|\\ud83e\\uddd1\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffc-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83e\\uddd1\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83e\\uddd1\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udffe]|\\ud83e\\uddd1\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68|\\ud83d\\udc69\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d[\\udc68\\udc69]|\\ud83d\\udc68\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68|\\ud83d\\udc69\\u200d\\u2764\\ufe0f\\u200d\\ud83d[\\udc68\\udc69]|\\ud83e\\uddd1\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1|\\ud83d\\udc6b\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc6c\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc6d\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc8f\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc91\\ud83c[\\udffb-\\udfff]|\\ud83d[\\udc6b-\\udc6d\\udc8f\\udc91])|(?:\\ud83d[\\udc68\\udc69]|\\ud83e\\uddd1)(?:\\ud83c[\\udffb-\\udfff])?\\u200d(?:\\u2695\\ufe0f|\\u2696\\ufe0f|\\u2708\\ufe0f|\\ud83c[\\udf3e\\udf73\\udf7c\\udf84\\udf93\\udfa4\\udfa8\\udfeb\\udfed]|\\ud83d[\\udcbb\\udcbc\\udd27\\udd2c\\ude80\\ude92]|\\ud83e[\\uddaf-\\uddb3\\uddbc\\uddbd])|(?:\\ud83c[\\udfcb\\udfcc]|\\ud83d[\\udd74\\udd75]|\\u26f9)((?:\\ud83c[\\udffb-\\udfff]|\\ufe0f)\\u200d[\\u2640\\u2642]\\ufe0f)|(?:\\ud83c[\\udfc3\\udfc4\\udfca]|\\ud83d[\\udc6e\\udc70\\udc71\\udc73\\udc77\\udc81\\udc82\\udc86\\udc87\\ude45-\\ude47\\ude4b\\ude4d\\ude4e\\udea3\\udeb4-\\udeb6]|\\ud83e[\\udd26\\udd35\\udd37-\\udd39\\udd3d\\udd3e\\uddb8\\uddb9\\uddcd-\\uddcf\\uddd4\\uddd6-\\udddd])(?:\\ud83c[\\udffb-\\udfff])?\\u200d[\\u2640\\u2642]\\ufe0f|(?:\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83c\\udff3\\ufe0f\\u200d\\u26a7\\ufe0f|\\ud83c\\udff3\\ufe0f\\u200d\\ud83c\\udf08|\\ud83d\\ude36\\u200d\\ud83c\\udf2b\\ufe0f|\\u2764\\ufe0f\\u200d\\ud83d\\udd25|\\u2764\\ufe0f\\u200d\\ud83e\\ude79|\\ud83c\\udff4\\u200d\\u2620\\ufe0f|\\ud83d\\udc15\\u200d\\ud83e\\uddba|\\ud83d\\udc3b\\u200d\\u2744\\ufe0f|\\ud83d\\udc41\\u200d\\ud83d\\udde8|\\ud83d\\udc68\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc6f\\u200d\\u2640\\ufe0f|\\ud83d\\udc6f\\u200d\\u2642\\ufe0f|\\ud83d\\ude2e\\u200d\\ud83d\\udca8|\\ud83d\\ude35\\u200d\\ud83d\\udcab|\\ud83e\\udd3c\\u200d\\u2640\\ufe0f|\\ud83e\\udd3c\\u200d\\u2642\\ufe0f|\\ud83e\\uddde\\u200d\\u2640\\ufe0f|\\ud83e\\uddde\\u200d\\u2642\\ufe0f|\\ud83e\\udddf\\u200d\\u2640\\ufe0f|\\ud83e\\udddf\\u200d\\u2642\\ufe0f|\\ud83d\\udc08\\u200d\\u2b1b)|[#*0-9]\\ufe0f?\\u20e3|(?:[©®\\u2122\\u265f]\\ufe0f)|(?:\\ud83c[\\udc04\\udd70\\udd71\\udd7e\\udd7f\\ude02\\ude1a\\ude2f\\ude37\\udf21\\udf24-\\udf2c\\udf36\\udf7d\\udf96\\udf97\\udf99-\\udf9b\\udf9e\\udf9f\\udfcd\\udfce\\udfd4-\\udfdf\\udff3\\udff5\\udff7]|\\ud83d[\\udc3f\\udc41\\udcfd\\udd49\\udd4a\\udd6f\\udd70\\udd73\\udd76-\\udd79\\udd87\\udd8a-\\udd8d\\udda5\\udda8\\uddb1\\uddb2\\uddbc\\uddc2-\\uddc4\\uddd1-\\uddd3\\udddc-\\uddde\\udde1\\udde3\\udde8\\uddef\\uddf3\\uddfa\\udecb\\udecd-\\udecf\\udee0-\\udee5\\udee9\\udef0\\udef3]|[\\u203c\\u2049\\u2139\\u2194-\\u2199\\u21a9\\u21aa\\u231a\\u231b\\u2328\\u23cf\\u23ed-\\u23ef\\u23f1\\u23f2\\u23f8-\\u23fa\\u24c2\\u25aa\\u25ab\\u25b6\\u25c0\\u25fb-\\u25fe\\u2600-\\u2604\\u260e\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262a\\u262e\\u262f\\u2638-\\u263a\\u2640\\u2642\\u2648-\\u2653\\u2660\\u2663\\u2665\\u2666\\u2668\\u267b\\u267f\\u2692-\\u2697\\u2699\\u269b\\u269c\\u26a0\\u26a1\\u26a7\\u26aa\\u26ab\\u26b0\\u26b1\\u26bd\\u26be\\u26c4\\u26c5\\u26c8\\u26cf\\u26d1\\u26d3\\u26d4\\u26e9\\u26ea\\u26f0-\\u26f5\\u26f8\\u26fa\\u26fd\\u2702\\u2708\\u2709\\u270f\\u2712\\u2714\\u2716\\u271d\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u2764\\u27a1\\u2934\\u2935\\u2b05-\\u2b07\\u2b1b\\u2b1c\\u2b50\\u2b55\\u3030\\u303d\\u3297\\u3299])(?:\\ufe0f|(?!\\ufe0e))|(?:(?:\\ud83c[\\udfcb\\udfcc]|\\ud83d[\\udd74\\udd75\\udd90]|[\\u261d\\u26f7\\u26f9\\u270c\\u270d])(?:\\ufe0f|(?!\\ufe0e))|(?:\\ud83c[\\udf85\\udfc2-\\udfc4\\udfc7\\udfca]|\\ud83d[\\udc42\\udc43\\udc46-\\udc50\\udc66-\\udc69\\udc6e\\udc70-\\udc78\\udc7c\\udc81-\\udc83\\udc85-\\udc87\\udcaa\\udd7a\\udd95\\udd96\\ude45-\\ude47\\ude4b-\\ude4f\\udea3\\udeb4-\\udeb6\\udec0\\udecc]|\\ud83e[\\udd0c\\udd0f\\udd18-\\udd1c\\udd1e\\udd1f\\udd26\\udd30-\\udd39\\udd3d\\udd3e\\udd77\\uddb5\\uddb6\\uddb8\\uddb9\\uddbb\\uddcd-\\uddcf\\uddd1-\\udddd]|[\\u270a\\u270b]))(?:\\ud83c[\\udffb-\\udfff])?|(?:\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc65\\udb40\\udc6e\\udb40\\udc67\\udb40\\udc7f|\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc73\\udb40\\udc63\\udb40\\udc74\\udb40\\udc7f|\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc77\\udb40\\udc6c\\udb40\\udc73\\udb40\\udc7f|\\ud83c\\udde6\\ud83c[\\udde8-\\uddec\\uddee\\uddf1\\uddf2\\uddf4\\uddf6-\\uddfa\\uddfc\\uddfd\\uddff]|\\ud83c\\udde7\\ud83c[\\udde6\\udde7\\udde9-\\uddef\\uddf1-\\uddf4\\uddf6-\\uddf9\\uddfb\\uddfc\\uddfe\\uddff]|\\ud83c\\udde8\\ud83c[\\udde6\\udde8\\udde9\\uddeb-\\uddee\\uddf0-\\uddf5\\uddf7\\uddfa-\\uddff]|\\ud83c\\udde9\\ud83c[\\uddea\\uddec\\uddef\\uddf0\\uddf2\\uddf4\\uddff]|\\ud83c\\uddea\\ud83c[\\udde6\\udde8\\uddea\\uddec\\udded\\uddf7-\\uddfa]|\\ud83c\\uddeb\\ud83c[\\uddee-\\uddf0\\uddf2\\uddf4\\uddf7]|\\ud83c\\uddec\\ud83c[\\udde6\\udde7\\udde9-\\uddee\\uddf1-\\uddf3\\uddf5-\\uddfa\\uddfc\\uddfe]|\\ud83c\\udded\\ud83c[\\uddf0\\uddf2\\uddf3\\uddf7\\uddf9\\uddfa]|\\ud83c\\uddee\\ud83c[\\udde8-\\uddea\\uddf1-\\uddf4\\uddf6-\\uddf9]|\\ud83c\\uddef\\ud83c[\\uddea\\uddf2\\uddf4\\uddf5]|\\ud83c\\uddf0\\ud83c[\\uddea\\uddec-\\uddee\\uddf2\\uddf3\\uddf5\\uddf7\\uddfc\\uddfe\\uddff]|\\ud83c\\uddf1\\ud83c[\\udde6-\\udde8\\uddee\\uddf0\\uddf7-\\uddfb\\uddfe]|\\ud83c\\uddf2\\ud83c[\\udde6\\udde8-\\udded\\uddf0-\\uddff]|\\ud83c\\uddf3\\ud83c[\\udde6\\udde8\\uddea-\\uddec\\uddee\\uddf1\\uddf4\\uddf5\\uddf7\\uddfa\\uddff]|\\ud83c\\uddf4\\ud83c\\uddf2|\\ud83c\\uddf5\\ud83c[\\udde6\\uddea-\\udded\\uddf0-\\uddf3\\uddf7-\\uddf9\\uddfc\\uddfe]|\\ud83c\\uddf6\\ud83c\\udde6|\\ud83c\\uddf7\\ud83c[\\uddea\\uddf4\\uddf8\\uddfa\\uddfc]|\\ud83c\\uddf8\\ud83c[\\udde6-\\uddea\\uddec-\\uddf4\\uddf7-\\uddf9\\uddfb\\uddfd-\\uddff]|\\ud83c\\uddf9\\ud83c[\\udde6\\udde8\\udde9\\uddeb-\\udded\\uddef-\\uddf4\\uddf7\\uddf9\\uddfb\\uddfc\\uddff]|\\ud83c\\uddfa\\ud83c[\\udde6\\uddec\\uddf2\\uddf3\\uddf8\\uddfe\\uddff]|\\ud83c\\uddfb\\ud83c[\\udde6\\udde8\\uddea\\uddec\\uddee\\uddf3\\uddfa]|\\ud83c\\uddfc\\ud83c[\\uddeb\\uddf8]|\\ud83c\\uddfd\\ud83c\\uddf0|\\ud83c\\uddfe\\ud83c[\\uddea\\uddf9]|\\ud83c\\uddff\\ud83c[\\udde6\\uddf2\\uddfc]|\\ud83c[\\udccf\\udd8e\\udd91-\\udd9a\\udde6-\\uddff\\ude01\\ude32-\\ude36\\ude38-\\ude3a\\ude50\\ude51\\udf00-\\udf20\\udf2d-\\udf35\\udf37-\\udf7c\\udf7e-\\udf84\\udf86-\\udf93\\udfa0-\\udfc1\\udfc5\\udfc6\\udfc8\\udfc9\\udfcf-\\udfd3\\udfe0-\\udff0\\udff4\\udff8-\\udfff]|\\ud83d[\\udc00-\\udc3e\\udc40\\udc44\\udc45\\udc51-\\udc65\\udc6a\\udc6f\\udc79-\\udc7b\\udc7d-\\udc80\\udc84\\udc88-\\udc8e\\udc90\\udc92-\\udca9\\udcab-\\udcfc\\udcff-\\udd3d\\udd4b-\\udd4e\\udd50-\\udd67\\udda4\\uddfb-\\ude44\\ude48-\\ude4a\\ude80-\\udea2\\udea4-\\udeb3\\udeb7-\\udebf\\udec1-\\udec5\\uded0-\\uded2\\uded5-\\uded7\\udeeb\\udeec\\udef4-\\udefc\\udfe0-\\udfeb]|\\ud83e[\\udd0d\\udd0e\\udd10-\\udd17\\udd1d\\udd20-\\udd25\\udd27-\\udd2f\\udd3a\\udd3c\\udd3f-\\udd45\\udd47-\\udd76\\udd78\\udd7a-\\uddb4\\uddb7\\uddba\\uddbc-\\uddcb\\uddd0\\uddde-\\uddff\\ude70-\\ude74\\ude78-\\ude7a\\ude80-\\ude86\\ude90-\\udea8\\udeb0-\\udeb6\\udec0-\\udec2\\uded0-\\uded6]|[\\u23e9-\\u23ec\\u23f0\\u23f3\\u267e\\u26ce\\u2705\\u2728\\u274c\\u274e\\u2753-\\u2755\\u2795-\\u2797\\u27b0\\u27bf\\ue50a])|\\ufe0f/g,UFE0Fg=/\\uFE0F/g,U200D=String.fromCharCode(8205),rescaper=/[&<>'\"]/g,shouldntBeParsed=/^(?:iframe|noframes|noscript|script|select|style|textarea)$/,fromCharCode=String.fromCharCode;return twemoji;function createText(text,clean){return document.createTextNode(clean?text.replace(UFE0Fg,\"\"):text)}function escapeHTML(s){return s.replace(rescaper,replacer)}function defaultImageSrcGenerator(icon,options){return\"\".concat(options.base,options.size,\"/\",icon,options.ext)}function grabAllTextNodes(node,allText){var childNodes=node.childNodes,length=childNodes.length,subnode,nodeType;while(length--){subnode=childNodes[length];nodeType=subnode.nodeType;if(nodeType===3){allText.push(subnode)}else if(nodeType===1&&!(\"ownerSVGElement\"in subnode)&&!shouldntBeParsed.test(subnode.nodeName.toLowerCase())){grabAllTextNodes(subnode,allText)}}return allText}function grabTheRightIcon(rawText){return toCodePoint(rawText.indexOf(U200D)<0?rawText.replace(UFE0Fg,\"\"):rawText)}function parseNode(node,options){var allText=grabAllTextNodes(node,[]),length=allText.length,attrib,attrname,modified,fragment,subnode,text,match,i,index,img,rawText,iconId,src;while(length--){modified=false;fragment=document.createDocumentFragment();subnode=allText[length];text=subnode.nodeValue;i=0;while(match=re.exec(text)){index=match.index;if(index!==i){fragment.appendChild(createText(text.slice(i,index),true))}rawText=match[0];iconId=grabTheRightIcon(rawText);i=index+rawText.length;src=options.callback(iconId,options);if(iconId&&src){img=new Image;img.onerror=options.onerror;img.setAttribute(\"draggable\",\"false\");attrib=options.attributes(rawText,iconId);for(attrname in attrib){if(attrib.hasOwnProperty(attrname)&&attrname.indexOf(\"on\")!==0&&!img.hasAttribute(attrname)){img.setAttribute(attrname,attrib[attrname])}}img.className=options.className;img.alt=rawText;img.src=src;modified=true;fragment.appendChild(img)}if(!img)fragment.appendChild(createText(rawText,false));img=null}if(modified){if(i\")}return ret})}function replacer(m){return escaper[m]}function returnNull(){return null}function toSizeSquaredAsset(value){return typeof value===\"number\"?value+\"x\"+value:value}function fromCodePoint(codepoint){var code=typeof codepoint===\"string\"?parseInt(codepoint,16):codepoint;if(code<65536){return fromCharCode(code)}code-=65536;return fromCharCode(55296+(code>>10),56320+(code&1023))}function parse(what,how){if(!how||typeof how===\"function\"){how={callback:how}}return(typeof what===\"string\"?parseString:parseNode)(what,{callback:how.callback||defaultImageSrcGenerator,attributes:typeof how.attributes===\"function\"?how.attributes:returnNull,base:typeof how.base===\"string\"?how.base:twemoji.base,ext:how.ext||twemoji.ext,size:how.folder||toSizeSquaredAsset(how.size||twemoji.size),className:how.className||twemoji.className,onerror:how.onerror||twemoji.onerror})}function replace(text,callback){return String(text).replace(re,callback)}function test(text){re.lastIndex=0;var result=re.test(text);re.lastIndex=0;return result}function toCodePoint(unicodeSurrogates,sep){var r=[],c=0,p=0,i=0;while(i ({\n loading: 'lazy',\n }),\n};\n\n/**\n * Parses an HTML string into a `` node containing the HTML content.\n *\n * Vanilla JS implementation of jQuery's `$.parseHTML()`,\n * sourced from http://youmightnotneedjquery.com/\n */\nfunction parseHTML(str) {\n const tmp = document.implementation.createHTMLDocument();\n tmp.body.innerHTML = str;\n\n return tmp.body;\n}\n\nexport default function renderEmoji() {\n override(Post.prototype, 'contentHtml', function (original) {\n const contentHtml = original();\n\n if (this.oldContentHtml !== contentHtml) {\n // We need to parse the HTML string into a DOM node, then give it to Twemoji.\n //\n // This prevents some issues with the default find-replace that would be performed\n // on a string passed to `Twemoji.parse()`.\n //\n // The parse function can only handle a single DOM node provided, so we need to\n // wrap it in a node. In our `parseHTML` implementation, we wrap it in a ``\n // element. This gets stripped below.\n //\n // See https://github.com/flarum/core/issues/2958\n const emojifiedDom = twemoji.parse(parseHTML(contentHtml), options);\n\n // Steal the HTML string inside the emojified DOM `` tag.\n this.emojifiedContentHtml = emojifiedDom.innerHTML;\n\n this.oldContentHtml = contentHtml;\n }\n\n return this.emojifiedContentHtml;\n });\n\n override(s9e.TextFormatter, 'preview', (original, text, element) => {\n original(text, element);\n\n twemoji.parse(element, options);\n });\n}\n","import app from 'flarum/forum/app';\n\nimport addComposerAutocomplete from './addComposerAutocomplete';\nimport renderEmoji from './renderEmoji';\n\napp.initializers.add('flarum-emoji', () => {\n // After typing ':' in the composer, show a dropdown suggesting a bunch of\n // emoji that the user could use.\n addComposerAutocomplete();\n\n // render emoji as image in Posts content and title.\n renderEmoji();\n});\n","import emojiMap from 'simple-emoji-map';\n\nimport { extend } from 'flarum/common/extend';\nimport TextEditor from 'flarum/common/components/TextEditor';\nimport TextEditorButton from 'flarum/common/components/TextEditorButton';\nimport KeyboardNavigatable from 'flarum/forum/utils/KeyboardNavigatable';\n\nimport AutocompleteDropdown from './fragments/AutocompleteDropdown';\nimport getEmojiIconCode from './helpers/getEmojiIconCode';\nimport cdn from './cdn';\n\nexport default function addComposerAutocomplete() {\n const emojiKeys = Object.keys(emojiMap);\n const $container = $('
');\n const dropdown = new AutocompleteDropdown();\n\n extend(TextEditor.prototype, 'oncreate', function () {\n const $editor = this.$('.TextEditor-editor').wrap('
');\n\n this.navigator = new KeyboardNavigatable();\n this.navigator\n .when(() => dropdown.active)\n .onUp(() => dropdown.navigate(-1))\n .onDown(() => dropdown.navigate(1))\n .onSelect(dropdown.complete.bind(dropdown))\n .onCancel(dropdown.hide.bind(dropdown))\n .bindTo($editor);\n\n $editor.after($container);\n });\n\n extend(TextEditor.prototype, 'buildEditorParams', function (params) {\n let relEmojiStart;\n let absEmojiStart;\n let typed;\n\n const applySuggestion = (replacement) => {\n this.attrs.composer.editor.replaceBeforeCursor(absEmojiStart - 1, replacement + ' ');\n\n dropdown.hide();\n };\n\n params.inputListeners.push(() => {\n const selection = this.attrs.composer.editor.getSelectionRange();\n\n const cursor = selection[0];\n\n if (selection[1] - cursor > 0) return;\n\n // Search backwards from the cursor for an ':' symbol. If we find\n // one and followed by a whitespace, we will want to show the\n // autocomplete dropdown!\n const lastChunk = this.attrs.composer.editor.getLastNChars(15);\n absEmojiStart = 0;\n for (let i = lastChunk.length - 1; i >= 0; i--) {\n const character = lastChunk.substr(i, 1);\n // check what user typed, emoji names only contains alphanumeric,\n // underline, '+' and '-'\n if (!/[a-z0-9]|\\+|\\-|_|\\:/.test(character)) break;\n // make sure ':' preceded by a whitespace or newline\n if (character === ':' && (i == 0 || /\\s/.test(lastChunk.substr(i - 1, 1)))) {\n relEmojiStart = i + 1;\n absEmojiStart = cursor - lastChunk.length + i + 1;\n break;\n }\n }\n\n dropdown.hide();\n dropdown.active = false;\n\n if (absEmojiStart) {\n typed = lastChunk.substring(relEmojiStart).toLowerCase();\n\n const makeSuggestion = function ({ emoji, name, code }) {\n return (\n applySuggestion(emoji)}\n onmouseenter={function () {\n dropdown.setIndex($(this).parent().index() - 1);\n }}\n >\n {emoji}\n {name}\n \n );\n };\n\n const buildSuggestions = () => {\n const similarEmoji = [];\n\n // Build a regular expression to do a fuzzy match of the given input string\n const fuzzyRegexp = function (str) {\n const reEscape = new RegExp('\\\\(([' + '+.*?[]{}()^$|\\\\'.replace(/(.)/g, '\\\\$1') + '])\\\\)', 'g');\n return new RegExp('(.*)' + str.toLowerCase().replace(/(.)/g, '($1)(.*?)').replace(reEscape, '(\\\\$1)') + '$', 'i');\n };\n const regTyped = fuzzyRegexp(typed);\n\n let maxSuggestions = 7;\n\n const findMatchingEmojis = (matcher) => {\n for (let i = 0; i < emojiKeys.length && maxSuggestions > 0; i++) {\n const curEmoji = emojiKeys[i];\n\n if (similarEmoji.indexOf(curEmoji) === -1) {\n const names = emojiMap[curEmoji];\n for (let name of names) {\n if (matcher(name)) {\n --maxSuggestions;\n similarEmoji.push(curEmoji);\n break;\n }\n }\n }\n }\n };\n\n // First, try to find all emojis starting with the given string\n findMatchingEmojis((emoji) => emoji.indexOf(typed) === 0);\n\n // If there are still suggestions left, try for some fuzzy matches\n findMatchingEmojis((emoji) => regTyped.test(emoji));\n\n const suggestions = similarEmoji\n .map((emoji) => ({\n emoji,\n name: emojiMap[emoji][0],\n code: getEmojiIconCode(emoji),\n }))\n .map(makeSuggestion);\n\n if (suggestions.length) {\n dropdown.items = suggestions;\n m.render($container[0], dropdown.render());\n\n dropdown.show();\n const coordinates = this.attrs.composer.editor.getCaretCoordinates(absEmojiStart);\n const width = dropdown.$().outerWidth();\n const height = dropdown.$().outerHeight();\n const parent = dropdown.$().offsetParent();\n let left = coordinates.left;\n let top = coordinates.top + 15;\n\n // Keep the dropdown inside the editor.\n if (top + height > parent.height()) {\n top = coordinates.top - height - 15;\n }\n if (left + width > parent.width()) {\n left = parent.width() - width;\n }\n\n // Prevent the dropdown from going off screen on mobile\n top = Math.max(-(parent.offset().top - $(document).scrollTop()), top);\n left = Math.max(-parent.offset().left, left);\n\n dropdown.show(left, top);\n }\n };\n\n buildSuggestions();\n\n dropdown.setIndex(0);\n dropdown.$().scrollTop(0);\n dropdown.active = true;\n }\n });\n });\n\n extend(TextEditor.prototype, 'toolbarItems', function (items) {\n items.add(\n 'emoji',\n this.attrs.composer.editor.insertAtCursor(' :')} icon=\"far fa-smile\">\n {app.translator.trans('flarum-emoji.forum.composer.emoji_tooltip')}\n \n );\n });\n}\n"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","flarum","core","compat","_setPrototypeOf","p","setPrototypeOf","__proto__","AutocompleteDropdown","subClass","superClass","items","active","index","keyWasJustPressed","create","constructor","view","className","app","translator","trans","this","map","item","attrs","show","left","top","$","css","hide","navigate","delta","setIndex","clearTimeout","keyWasJustPressedTimeout","setTimeout","complete","eq","find","click","scrollToItem","$dropdown","$items","rangedIndex","length","$item","removeClass","addClass","scrollTop","dropdownScroll","dropdownTop","offset","dropdownBottom","outerHeight","itemTop","itemBottom","parseInt","stop","animate","Fragment","twemoji","base","ext","size","convert","fromCodePoint","codepoint","code","fromCharCode","toCodePoint","onerror","parentNode","replaceChild","createText","alt","parse","what","how","callback","parseString","parseNode","defaultImageSrcGenerator","attributes","returnNull","folder","replace","test","text","re","lastIndex","result","escaper","UFE0Fg","U200D","String","rescaper","shouldntBeParsed","clean","document","createTextNode","icon","options","concat","grabAllTextNodes","node","allText","subnode","nodeType","childNodes","push","nodeName","toLowerCase","grabTheRightIcon","rawText","indexOf","attrib","attrname","modified","fragment","match","i","img","iconId","src","createDocumentFragment","nodeValue","exec","appendChild","slice","Image","setAttribute","hasAttribute","str","ret","replacer","m","unicodeSurrogates","sep","r","c","charCodeAt","toString","join","getEmojiIconCode","emoji","loading","emojiKeys","$container","dropdown","keys","emojiMap","extend","TextEditor","$editor","wrap","navigator","KeyboardNavigatable","when","onUp","onDown","onSelect","bind","onCancel","bindTo","after","params","relEmojiStart","absEmojiStart","typed","inputListeners","selection","composer","editor","getSelectionRange","cursor","lastChunk","getLastNChars","character","substr","substring","makeSuggestion","name","onclick","replacement","replaceBeforeCursor","onmouseenter","parent","class","draggable","cdn","reEscape","similarEmoji","regTyped","RegExp","maxSuggestions","findMatchingEmojis","matcher","curEmoji","suggestions","render","coordinates","getCaretCoordinates","width","outerWidth","height","offsetParent","Math","max","buildSuggestions","add","insertAtCursor","override","Post","original","tmp","contentHtml","oldContentHtml","emojifiedDom","implementation","createHTMLDocument","body","innerHTML","emojifiedContentHtml","s9e","TextFormatter","element"],"sourceRoot":""}