diff --git a/js/dist/forum.js.map b/js/dist/forum.js.map index 733c893..b0c43d8 100644 --- a/js/dist/forum.js.map +++ b/js/dist/forum.js.map @@ -1 +1 @@ -{"version":3,"file":"forum.js","mappings":"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","sources":["webpack://@fof/best-answer/external assign \"flarum.extensions['fof-user-directory']\"","webpack://@fof/best-answer/./node_modules/flarum-webpack-config/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://@fof/best-answer/./node_modules/flarum-webpack-config/node_modules/@babel/runtime/helpers/typeof.js","webpack://@fof/best-answer/./node_modules/flarum-webpack-config/node_modules/@babel/runtime/regenerator/index.js","webpack://@fof/best-answer/webpack/bootstrap","webpack://@fof/best-answer/webpack/runtime/compat get default export","webpack://@fof/best-answer/webpack/runtime/define property getters","webpack://@fof/best-answer/webpack/runtime/hasOwnProperty shorthand","webpack://@fof/best-answer/webpack/runtime/make namespace object","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/app']\"","webpack://@fof/best-answer/./node_modules/flarum-webpack-config/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@fof/best-answer/./node_modules/flarum-webpack-config/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/Notification']\"","webpack://@fof/best-answer/./src/forum/components/SelectBestAnswerNotification.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['common/extend']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Button']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/utils/PostControls']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/DiscussionPage']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/CommentPost']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/utils/extractText']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/Post']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/Component']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/icon']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/humanTime']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Link']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/utils/ItemList']\"","webpack://@fof/best-answer/./src/forum/components/SelectBestAnswerItem.tsx","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/username']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/userOnline']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/utils/classList']\"","webpack://@fof/best-answer/./src/forum/components/BestAnswerFooterPreview.tsx","webpack://@fof/best-answer/./src/forum/addBestAnswerView.tsx","webpack://@fof/best-answer/external root \"flarum.core.compat['common/models/Discussion']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Badge']\"","webpack://@fof/best-answer/./src/forum/components/BestAnswerBadge.tsx","webpack://@fof/best-answer/./src/forum/components/AwardedBestAnswerNotification.ts","webpack://@fof/best-answer/./src/forum/components/BestAnswerInDiscussionNotification.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/NotificationGrid']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/UserCard']\"","webpack://@fof/best-answer/./node_modules/flarum-webpack-config/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@fof/best-answer/./src/common/addBestAnswerCountSort.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/Search']\"","webpack://@fof/best-answer/./node_modules/flarum-webpack-config/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/LinkButton']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/highlight']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['tags/common/helpers/tagsLabel']\"","webpack://@fof/best-answer/./src/forum/components/SolutionSearchItem.tsx","webpack://@fof/best-answer/./src/forum/components/SolutionSearchSource.tsx","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/DiscussionsSearchSource']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/IndexPage']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Dropdown']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/states/DiscussionListState']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/DiscussionComposer']\"","webpack://@fof/best-answer/./src/forum/components/index.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['common/extenders']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['tags/common/models/Tag']\"","webpack://@fof/best-answer/./src/common/extend.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['common/models/User']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/Model']\"","webpack://@fof/best-answer/./src/forum/extend.ts","webpack://@fof/best-answer/./src/forum/index.ts","webpack://@fof/best-answer/./src/forum/addBestAnswerAction.tsx","webpack://@fof/best-answer/./src/forum/addAnsweredBadge.tsx","webpack://@fof/best-answer/./src/forum/addBestAnswerCountToUsers.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendNotifications.ts","webpack://@fof/best-answer/./src/forum/extenders/extendSearch.ts","webpack://@fof/best-answer/./src/forum/extenders/extendDiscussionSearchSource.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendIndexPage.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendDiscussionListState.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendDiscussionComposer.tsx"],"sourcesContent":["module.exports = flarum.extensions['fof-user-directory'];","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\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'];","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Notification'];","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class SelectBestAnswerNotification extends Notification {\n icon() {\n return 'fas fa-comment-dots';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n return app.translator.trans('fof-best-answer.forum.notification.content');\n }\n\n excerpt() {\n return null;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Button'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/utils/PostControls'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/CommentPost'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/extractText'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Post'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Component'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/icon'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/humanTime'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Link'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/ItemList'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport icon from 'flarum/common/helpers/icon';\nimport humanTime from 'flarum/common/helpers/humanTime';\nimport Link from 'flarum/common/components/Link';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Discussion from 'flarum/common/models/Discussion';\nimport Mithril from 'mithril';\nimport Post from 'flarum/common/models/Post';\n\nexport interface ISelectBestAnswerItemAttrs extends ComponentAttrs {\n post: Post;\n discussion: Discussion;\n}\n\nexport default class SelectBestAnswerItem extends Component {\n post!: Post;\n discussion!: Discussion;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.post = this.attrs.post;\n this.discussion = this.attrs.discussion;\n }\n\n view() {\n return
  • {this.items().toArray()}
  • ;\n }\n\n getSetTime(discussion: Discussion) {\n if (!discussion.bestAnswerSetAt?.()) {\n return;\n }\n const bestAnswerSetAt = discussion.bestAnswerSetAt?.();\n if (!bestAnswerSetAt) {\n return;\n }\n return humanTime(bestAnswerSetAt);\n }\n\n items(): ItemList {\n const items = new ItemList();\n\n items.add(\n 'post',\n this.post ? (\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.best_answer_button')}\n \n ) : (\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.best_answer_button')}\n \n )\n );\n\n const bestAnswerUser = this.discussion.bestAnswerUser?.();\n\n bestAnswerUser &&\n items.add(\n 'user',\n \n {app.translator.trans('fof-best-answer.forum.best_answer_label', {\n user: this.discussion.bestAnswerUser?.(),\n time_set: this.getSetTime(this.discussion),\n a: m.route.set(app.route.user(bestAnswerUser))} />,\n })}\n \n );\n\n return items;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/username'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/userOnline'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/classList'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Mithril from 'mithril';\nimport username from 'flarum/common/helpers/username';\nimport userOnline from 'flarum/common/helpers/userOnline';\nimport Link from 'flarum/common/components/Link';\nimport classList from 'flarum/common/utils/classList';\nimport SelectBestAnswerItem from './SelectBestAnswerItem';\nimport Post from 'flarum/common/models/Post';\nimport User from 'flarum/common/models/User';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Discussion from 'flarum/common/models/Discussion';\nimport humanTime from 'flarum/common/helpers/humanTime';\n\nexport interface BestAnswerFooterPreviewAttrs extends ComponentAttrs {\n post: Post;\n user: User;\n discussion: Discussion;\n}\n\nexport default class BestAnswerFooterPreview extends Component {\n user!: User;\n post!: Post;\n discussion!: Discussion;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.user = this.attrs.user;\n this.post = this.attrs.post;\n this.discussion = this.attrs.discussion;\n }\n\n view() {\n const maxLines = app.forum.attribute('fof-best-answer.show_max_lines');\n\n return (\n
    app.current.get('stream').goToNumber(this.post.number())}>\n
    \n
      {this.headerItems().toArray()}
    \n
    \n
    0 && 'Post-body--truncate')} style={{ '--max-lines': maxLines }}>\n {m.trust(this.postContent())}\n
    \n
    \n );\n }\n\n postContent() {\n return this.post.contentHtml();\n }\n\n /**\n * To maintain compatibility with existing styling, custom themes, etc, each item here must be\n * wrapped in a
  • element.\n *\n * @todo: Remove this requirement for Flarum 2.0\n */\n headerItems(): ItemList {\n const items = new ItemList();\n\n items.add('user', this.userItem()), 100;\n items.add('meta', this.metaItem()), 90;\n items.add('bestAnswer', , -100);\n\n return items;\n }\n\n userItem(): Mithril.Children {\n return (\n
  • \n
    \n {this.user && userOnline(this.user)}\n

    {this.user ? {username(this.user)} : username(this.user)}

    \n
    \n
  • \n );\n }\n\n metaItem(): Mithril.Children {\n const post = this.post;\n return (\n
  • \n {humanTime(post.createdAt())}\n
  • \n );\n }\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport CommentPost from 'flarum/forum/components/CommentPost';\nimport PostComponent from 'flarum/forum/components/Post';\nimport SelectBestAnswerItem from './components/SelectBestAnswerItem';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport Button from 'flarum/common/components/Button';\nimport BestAnswerFooterPreview from './components/BestAnswerFooterPreview';\n\nexport default () => {\n extend(CommentPost.prototype, 'headerItems', function (items) {\n const post = this.attrs.post;\n const discussion = post.discussion();\n\n if (discussion?.hasBestAnswer() && discussion.bestAnswerPost() && discussion.bestAnswerPost()?.id() === post.id() && !post.isHidden()) {\n items.add('isBestAnswer', , -100);\n }\n });\n\n extend(CommentPost.prototype, 'footerItems', function (items) {\n const thisPost = this.attrs.post;\n const discussion = thisPost.discussion();\n const post = discussion.hasBestAnswer() && discussion.bestAnswerPost();\n\n if (post && !post.isHidden() && thisPost.number() === 1 && !thisPost.isHidden()) {\n const user = post.user();\n\n items.add('bestAnswerPost', , -10);\n }\n });\n\n extend(PostComponent.prototype, 'elementAttrs', function (elementAttrs) {\n const post = this.attrs.post;\n const discussion = post.discussion();\n\n if (discussion?.hasBestAnswer() && discussion.bestAnswerPost() && discussion.bestAnswerPost().id() === post.id() && !post.isHidden()) {\n elementAttrs.className ? (elementAttrs.className += ' Post--bestAnswer') : (elementAttrs.className = 'Post--bestAnswer');\n }\n });\n\n extend(DiscussionPage.prototype, 'sidebarItems', function (items) {\n if (!app.forum.attribute('bestAnswerDiscussionSidebarJumpButton')) return;\n\n // @ts-ignore\n const discussion = this.discussion;\n\n if (discussion === null) return;\n\n const post = discussion.hasBestAnswer() && discussion.bestAnswerPost();\n\n if (post && !post.isHidden() && post.number() !== 1 && !discussion.bestAnswerPost()?.isHidden()) {\n items.add(\n 'jumpToBestAnswer',\n app.current.get('stream').goToNumber(post.number())}\n aria-label={app.translator.trans('fof-best-answer.forum.discussion.jump_to_best_answer_button')}\n >\n {app.translator.trans('fof-best-answer.forum.discussion.jump_to_best_answer_button')}\n ,\n 90\n );\n }\n });\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/Discussion'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Badge'];","import Badge, { IBadgeAttrs } from 'flarum/common/components/Badge';\nimport app from 'flarum/forum/app';\nimport extractText from 'flarum/common/utils/extractText';\n\nexport default class BestAnswerBadge extends Badge {\n static initAttrs(attrs: IBadgeAttrs) {\n attrs.type = 'bestAnswer';\n attrs.icon = 'fas fa-check';\n attrs.label = extractText(app.translator.trans('fof-best-answer.forum.answered_badge'));\n }\n}\n","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class AwardedBestAnswerNotification extends Notification {\n icon() {\n return 'fas fa-check';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n const user = this.attrs.notification.fromUser();\n return app.translator.trans('fof-best-answer.forum.notification.awarded', {\n user: user,\n });\n }\n\n excerpt() {\n return null;\n }\n}\n","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class BestAnswerInDiscussionNotification extends Notification {\n icon() {\n return 'fas fa-check';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n const user = this.attrs.notification.fromUser();\n return app.translator.trans('fof-best-answer.forum.notification.best_answer_in_discussion', {\n user: user,\n });\n }\n\n excerpt() {\n return null;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/NotificationGrid'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/UserCard'];","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import { override } from 'flarum/common/extend';\n\nexport default () => {\n const FoFUserDirectory = require('@fof-user-directory');\n\n if (!FoFUserDirectory) return;\n\n override(FoFUserDirectory.SortMap.prototype, 'sortMap', (map) => ({\n ...map(),\n most_best_answers: '-bestAnswerCount',\n least_best_answers: 'bestAnswerCount',\n }));\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Search'];","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LinkButton'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/highlight'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['tags/common/helpers/tagsLabel'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Link from 'flarum/common/components/Link';\nimport highlight from 'flarum/common/helpers/highlight';\nimport type Discussion from 'flarum/common/models/Discussion';\nimport type Post from 'flarum/common/models/Post';\nimport type Mithril from 'mithril';\nimport tagsLabel from 'flarum/tags/common/helpers/tagsLabel';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport interface SolutionSearchItemAttrs extends ComponentAttrs {\n query: string;\n discussion: Discussion;\n bestAnswerPost: Post;\n mostRelevantPost: Post;\n tags: false | (Tag | undefined)[];\n}\n\nexport default class SolutionSearchItem extends Component {\n query!: string;\n discussion!: Discussion;\n bestAnswerPost!: Post | null | undefined;\n mostRelevantPost!: Post | null | undefined;\n tags!: false | (Tag | undefined)[];\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.query = this.attrs.query;\n this.discussion = this.attrs.discussion;\n this.bestAnswerPost = this.attrs.bestAnswerPost;\n this.mostRelevantPost = this.attrs.mostRelevantPost;\n this.tags = this.attrs.tags;\n }\n\n view() {\n return (\n
  • \n \n {this.viewItems().toArray()}\n \n
  • \n );\n }\n\n discussionTitle() {\n return this.discussion.title();\n }\n\n bestAnswerContent() {\n return this.bestAnswerPost?.contentPlain();\n }\n\n mostRelevantContent() {\n return this.mostRelevantPost?.contentPlain();\n }\n\n viewItems(): ItemList {\n const items = new ItemList();\n\n app.forum.attribute('showTagsInSearchResults') &&\n items.add('tags',
    {tagsLabel(this.tags)}
    , 100);\n\n items.add('discussion-title',
    {highlight(this.discussionTitle(), this.query)}
    , 90);\n\n !!this.mostRelevantPost &&\n items.add(\n 'most-relevant',\n
    {highlight(this.mostRelevantContent() ?? '', this.query, 100)}
    ,\n 80\n );\n\n !!this.bestAnswerPost &&\n items.add(\n 'best-answer',\n
    \n {highlight(this.bestAnswerContent() ?? '', this.query, 100)}\n
    ,\n 70\n );\n\n return items;\n }\n}\n","import app from 'flarum/forum/app';\nimport Discussion from 'flarum/common/models/Discussion';\nimport LinkButton from 'flarum/common/components/LinkButton';\nimport { SearchSource } from 'flarum/forum/components/Search';\nimport type Mithril from 'mithril';\nimport BestAnswerBadge from './BestAnswerBadge';\nimport SolutionSearchItem from './SolutionSearchItem';\n\nexport default class SolutionSearchSource implements SearchSource {\n protected results = new Map();\n queryString: string | null = null;\n\n async search(query: string): Promise {\n query = query.toLowerCase();\n\n this.results.set(query, []);\n\n this.setQueryString(query);\n\n const params = {\n filter: { q: this.queryString || query },\n page: { limit: this.limit() },\n include: this.includes().join(','),\n };\n\n return app.store.find('discussions', params).then((results) => {\n this.results.set(query, results);\n m.redraw();\n });\n }\n\n view(query: string): Array {\n query = query.toLowerCase();\n\n this.setQueryString(query);\n\n const results = (this.results.get(query) || []).map((discussion) => {\n const bestAnswerPost = discussion.bestAnswerPost();\n const mostRelevantPost = discussion.mostRelevantPost();\n const tags = discussion.tags();\n\n return (\n \n );\n }) as Array;\n\n return [\n
  • \n {app.translator.trans('fof-best-answer.forum.search.discussions_solutions_heading')}\n
  • ,\n
  • \n \n {app.translator.trans('fof-best-answer.forum.search.all_discussions_solutions_button', { query })}\n \n
  • ,\n ...results,\n ];\n }\n\n includes(): string[] {\n return ['mostRelevantPost', 'bestAnswerPost', 'tags'];\n }\n\n limit(): number {\n return 3;\n }\n\n queryMutators(): string[] {\n return ['is:solved'];\n }\n\n setQueryString(query: string): void {\n this.queryString = query + ' ' + this.queryMutators().join(' ');\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionsSearchSource'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/IndexPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Dropdown'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/states/DiscussionListState'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionComposer'];","import AwardedBestAnswerNotification from './AwardedBestAnswerNotification';\nimport BestAnswerBadge from './BestAnswerBadge';\nimport BestAnswerFooterPreview from './BestAnswerFooterPreview';\nimport BestAnswerInDiscussionNotification from './BestAnswerInDiscussionNotification';\nimport SelectBestAnswerItem from './SelectBestAnswerItem';\nimport SelectBestAnswerNotification from './SelectBestAnswerNotification';\nimport SolutionSearchItem from './SolutionSearchItem';\nimport SolutionSearchSource from './SolutionSearchSource';\n\nexport const components = {\n SelectBestAnswerItem,\n SolutionSearchSource,\n BestAnswerFooterPreview,\n AwardedBestAnswerNotification,\n BestAnswerBadge,\n BestAnswerInDiscussionNotification,\n SelectBestAnswerNotification,\n SolutionSearchItem,\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extenders'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['tags/common/models/Tag'];","import Extend from 'flarum/common/extenders';\nimport Tag from 'flarum/tags/common/models/Tag';\n\nexport default [\n new Extend.Model(Tag) //\n .attribute('isQnA')\n .attribute('reminders'),\n];\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/User'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Model'];","import Discussion from 'flarum/common/models/Discussion';\nimport commonExtend from '../common/extend';\nimport Extend from 'flarum/common/extenders';\nimport type Post from 'flarum/common/models/Post';\nimport User from 'flarum/common/models/User';\nimport Model from 'flarum/common/Model';\n\nexport default [\n ...commonExtend,\n\n new Extend.Model(Discussion) //\n .hasOne('bestAnswerPost')\n .hasOne('bestAnswerUser')\n .attribute('hasBestAnswer')\n .attribute('canSelectBestAnswer')\n .attribute('bestAnswerSetAt', Model.transformDate),\n\n new Extend.Model(User) //\n .attribute('bestAnswerCount'),\n];\n","import app from 'flarum/forum/app';\nimport SelectBestAnswerNotification from './components/SelectBestAnswerNotification';\nimport addBestAnswerAction from './addBestAnswerAction';\nimport addBestAnswerView from './addBestAnswerView';\nimport addAnsweredBadge from './addAnsweredBadge';\nimport AwardedBestAnswerNotification from './components/AwardedBestAnswerNotification';\nimport BestAnswerInDiscussionNotification from './components/BestAnswerInDiscussionNotification';\nimport extendNotifications from './extenders/extendNotifications';\nimport addBestAnswerCountToUsers from './addBestAnswerCountToUsers';\nimport addBestAnswerCountSort from '../common/addBestAnswerCountSort';\nimport extendSearch from './extenders/extendSearch';\nimport extendDiscussionsSearchSource from './extenders/extendDiscussionSearchSource';\nimport extendIndexPage from './extenders/extendIndexPage';\nimport extendDiscussionListState from './extenders/extendDiscussionListState';\nimport extendDiscussionComposer from './extenders/extendDiscussionComposer';\n\nexport * from './components';\n\nexport { default as extend } from './extend';\n\napp.initializers.add('fof/best-answer', () => {\n app.notificationComponents.selectBestAnswer = SelectBestAnswerNotification;\n app.notificationComponents.awardedBestAnswer = AwardedBestAnswerNotification;\n app.notificationComponents.bestAnswerInDiscussion = BestAnswerInDiscussionNotification;\n\n addAnsweredBadge();\n addBestAnswerAction();\n addBestAnswerView();\n addBestAnswerCountToUsers();\n addBestAnswerCountSort();\n\n extendNotifications();\n extendSearch();\n extendDiscussionsSearchSource();\n extendIndexPage();\n extendDiscussionListState();\n extendDiscussionComposer();\n});\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport Button from 'flarum/common/components/Button';\nimport PostControls from 'flarum/forum/utils/PostControls';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport CommentPost from 'flarum/forum/components/CommentPost';\nimport Discussion from 'flarum/common/models/Discussion';\nimport Post from 'flarum/common/models/Post';\nimport extractText from 'flarum/common/utils/extractText';\n\nexport default function addBestAnswerAction() {\n const ineligible = (discussion: Discussion, post: Post) => {\n return post.isHidden() || post.number() === 1 || !discussion.canSelectBestAnswer() || !app.session.user;\n };\n\n const blockSelectOwnPost = (post: Post): boolean => {\n const user = post.user();\n return !app.forum.attribute('canSelectBestAnswerOwnPost') && user !== false && user.id() === app.session.user?.id();\n };\n\n const isThisBestAnswer = (discussion: Discussion, post: Post): boolean => {\n const bestAnswerPost = discussion.bestAnswerPost();\n const hasBestAnswer = discussion.hasBestAnswer();\n return hasBestAnswer !== undefined && hasBestAnswer && bestAnswerPost !== null && bestAnswerPost.id() === post.id();\n };\n\n const actionLabel = (isBestAnswer: boolean): string => {\n return extractText(app.translator.trans(isBestAnswer ? 'fof-best-answer.forum.remove_best_answer' : 'fof-best-answer.forum.this_best_answer'));\n };\n\n const saveDiscussion = (discussion: Discussion, isBestAnswer: boolean, post: Post) =>\n discussion\n .save(\n {\n bestAnswerPostId: isBestAnswer ? post.id() : 0,\n bestAnswerUserId: app.session.user?.id(),\n relationships: isBestAnswer ? { bestAnswerPost: post, bestAnswerUser: app.session.user } : { bestAnswerPost: null },\n },\n {\n params: {\n include: 'tags',\n },\n }\n )\n .then(() => {\n if (!isBestAnswer) {\n if (discussion.data.relationships) {\n delete discussion.data.relationships.bestAnswerPost;\n delete discussion.data.relationships.bestAnswerUser;\n }\n }\n\n if (app.current.matches(DiscussionPage)) {\n app.current.get('stream').update();\n }\n\n m.redraw();\n\n if (isBestAnswer) {\n m.route.set(app.route.discussion(discussion));\n }\n });\n\n extend(PostControls, 'moderationControls', function (items, post) {\n if (app.forum.attribute('useAlternativeBestAnswerUi')) return;\n\n const discussion = post.discussion();\n let isBestAnswer = isThisBestAnswer(discussion, post);\n\n post.pushAttributes({ isBestAnswer });\n\n if (post.contentType() !== 'comment') return;\n\n if (ineligible(discussion, post) || blockSelectOwnPost(post) || !app.current.matches(DiscussionPage)) return;\n\n items.add(\n 'bestAnswer',\n {\n isBestAnswer = !isBestAnswer;\n\n saveDiscussion(discussion, isBestAnswer, post).finally(() => {\n isBestAnswer = isThisBestAnswer(discussion, post);\n });\n }}\n >\n {actionLabel(isBestAnswer)}\n \n );\n });\n\n extend(CommentPost.prototype, 'actionItems', function (items) {\n if (!app.forum.attribute('useAlternativeBestAnswerUi')) return;\n\n const post = this.attrs.post;\n const discussion = this.attrs.post.discussion();\n let isBestAnswer = isThisBestAnswer(discussion, post);\n let hasBestAnswer = discussion.bestAnswerPost() !== null;\n\n post.pushAttributes({ isBestAnswer });\n\n if (ineligible(discussion, post) || blockSelectOwnPost(post) || !app.current.matches(DiscussionPage)) return;\n\n items.add(\n 'bestAnswer',\n {\n hasBestAnswer = !hasBestAnswer;\n isBestAnswer = !isBestAnswer;\n\n saveDiscussion(discussion, isBestAnswer, post).finally(() => {\n hasBestAnswer = !!discussion.hasBestAnswer() && discussion.bestAnswerPost() !== null;\n isBestAnswer = isThisBestAnswer(discussion, post);\n });\n }}\n >\n {actionLabel(isBestAnswer)}\n \n );\n });\n}\n","import { extend } from 'flarum/common/extend';\nimport Discussion from 'flarum/common/models/Discussion';\nimport BestAnswerBadge from './components/BestAnswerBadge';\n\nexport default function () {\n extend(Discussion.prototype, 'badges', function (this: Discussion, items) {\n if (this.hasBestAnswer() && !items.has('hidden')) {\n items.add('bestAnswer', );\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport UserCard from 'flarum/forum/components/UserCard';\nimport icon from 'flarum/common/helpers/icon';\n\nimport type Mithril from 'mithril';\nimport type User from 'flarum/common/models/User';\n\nexport default function addBestAnswerCountToUsers() {\n extend(UserCard.prototype, 'infoItems', function (items: ItemList) {\n // @ts-expect-error\n const user = this.attrs.user as User;\n\n items.add(\n 'best-answer-count',\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.user.best-answer-count', {\n count: user.bestAnswerCount(),\n })}\n ,\n 55\n );\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport NotificationGrid from 'flarum/forum/components/NotificationGrid';\nimport type Mithril from 'mithril';\n\nexport default function () {\n extend(NotificationGrid.prototype, 'notificationTypes', function (items: ItemList<{ name: string; icon: string; label: Mithril.Children }>) {\n items.add('awardedBestAnswer', {\n name: 'awardedBestAnswer',\n icon: 'fas fa-check',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.awarded_best_answer'),\n });\n items.add('bestAnswerInDiscussion', {\n name: 'bestAnswerInDiscussion',\n icon: 'fas fa-check',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.best_answer_in_discussion'),\n });\n items.add('selectBestAnswer', {\n name: 'selectBestAnswer',\n icon: 'fas fa-stopwatch',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.select_best_answer'),\n });\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Search, { SearchSource } from 'flarum/forum/components/Search';\nimport SolutionSearchSource from '../components/SolutionSearchSource';\n\nexport default function extendSearch() {\n extend(Search.prototype, 'sourceItems', function (items: ItemList) {\n if (app.forum.attribute('solutionSearchEnabled')) {\n items.add('solution', new SolutionSearchSource(), 110);\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport DiscussionsSearchSource from 'flarum/forum/components/DiscussionsSearchSource';\n\nexport default function extendDiscussionsSearchSource() {\n extend(DiscussionsSearchSource.prototype, 'queryMutators', function (mutators: string[]) {\n // This will only apply when using flarum/core 1.8.6 or newer\n if (app.forum.attribute('removeSolutionResultsFromMainSearch')) {\n mutators.push('-is:solved');\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport Dropdown from 'flarum/common/components/Dropdown';\nimport Button from 'flarum/common/components/Button';\n\nexport default function extendIndexPage() {\n extend(IndexPage.prototype, 'sidebarItems', function (items) {\n const tag = this.currentTag();\n\n if (!tag?.isQnA?.()) return;\n\n const canStartDiscussion = app.forum.attribute('canStartDiscussion') || !app.session.user;\n const cta = items.get('newDiscussion');\n cta.children = app.translator.trans(\n canStartDiscussion ? 'fof-best-answer.forum.index.ask_question' : 'fof-best-answer.forum.index.cannot_ask_question'\n );\n\n if (items.has('startDiscussion')) {\n items.setContent('startDiscussion', cta);\n }\n });\n\n extend(IndexPage.prototype, 'viewItems', function (items) {\n if (!app.forum.attribute('showBestAnswerFilterUi')) {\n return;\n }\n\n const tag = this.currentTag();\n\n if (!tag?.isQnA?.()) {\n if (app.discussions.bestAnswer) {\n delete app.discussions.bestAnswer;\n app.discussions.refresh();\n }\n\n return;\n }\n\n const options = ['all', 'solved', 'unsolved'];\n\n const selected = app.discussions.bestAnswer as unknown as number;\n\n items.add(\n 'solved-filter',\n Dropdown.component(\n {\n buttonClassName: 'Button',\n label: app.translator.trans(\n `fof-best-answer.forum.filter.${options[selected] || Object.keys(options).map((key) => options[Number(key)])[0]}_label`\n ),\n accessibleToggleLabel: app.translator.trans('fof-best-answer.forum.filter.accessible_label'),\n },\n Object.keys(options).map((value) => {\n const label = options[Number(value)];\n const active = (selected || Object.keys(options)[0]) === value;\n\n return Button.component(\n {\n icon: active ? 'fas fa-check' : true,\n active: active,\n onclick: () => {\n app.discussions.bestAnswer = value;\n if (value === '0') {\n delete app.discussions.bestAnswer;\n }\n app.discussions.refresh();\n },\n },\n app.translator.trans(`fof-best-answer.forum.filter.${label}_label`)\n );\n })\n )\n );\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport DiscussionListState from 'flarum/forum/states/DiscussionListState';\nimport type { PaginatedListParams } from 'flarum/common/states/PaginatedListState';\n\nexport default function extendDiscussionListState() {\n extend(DiscussionListState.prototype, 'requestParams', function (params: PaginatedListParams) {\n if (app.discussions.bestAnswer) {\n const negate = app.discussions.bestAnswer === '2';\n const prepend = negate ? '-' : '';\n\n if (!params.filter) {\n params.filter = {};\n }\n\n params.filter[`${prepend}solved-discussions`] = 'true';\n\n if (params.filter.q) {\n params.filter.q += ` ${prepend}is:solved`;\n }\n }\n });\n}\n","import { extend } from 'flarum/common/extend';\nimport app from 'flarum/forum/app';\nimport DiscussionComposer from 'flarum/forum/components/DiscussionComposer';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport default function extendDiscussionComposer() {\n extend(DiscussionComposer.prototype, 'headerItems', function (items) {\n const tags = this.composer.fields.tags as Tag[];\n if (tags === undefined) return;\n\n const qna = tags.some((t) => t.isQnA());\n\n if (!qna) return;\n\n // @ts-expect-error\n this.attrs.titlePlaceholder = app.translator.trans('fof-best-answer.forum.composer.titlePlaceholder');\n\n if (items.has('discussionTitle')) {\n items.setContent(\n 'discussionTitle',\n

    \n \n

    \n );\n }\n });\n}\n"],"names":["module","exports","flarum","extensions","_typeof","require","_regeneratorRuntime","e","__esModule","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","this","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","definition","key","get","obj","prop","core","compat","_setPrototypeOf","bind","_inheritsLoose","SelectBestAnswerNotification","_Notification","apply","arguments","_proto","icon","href","discussion","attrs","notification","subject","app","content","trans","excerpt","Notification","SelectBestAnswerItem","_Component","_this","_len","args","Array","_key","concat","post","oninit","vnode","view","m","className","items","toArray","getSetTime","bestAnswerSetAt","humanTime","_this$discussion$best","_this$discussion","_this$discussion$best2","_this$discussion2","ItemList","add","Link","number","bestAnswerUser","user","time_set","onclick","route","set","Component","BestAnswerFooterPreview","_this2","maxLines","attribute","goToNumber","headerItems","classList","style","trust","postContent","contentHtml","userItem","metaItem","userOnline","username","createdAt","BestAnswerBadge","_Badge","initAttrs","label","extractText","Badge","AwardedBestAnswerNotification","fromUser","BestAnswerInDiscussionNotification","_extends","assign","asyncGeneratorStep","SolutionSearchItem","query","bestAnswerPost","mostRelevantPost","tags","id","viewItems","discussionTitle","title","bestAnswerContent","_this$bestAnswerPost","contentPlain","mostRelevantContent","_this$mostRelevantPos","_this$mostRelevantCon","_this$bestAnswerConte","tagsLabel","highlight","SolutionSearchSource","results","Map","queryString","search","_search","_callee","params","_context","toLowerCase","setQueryString","filter","q","page","limit","include","includes","join","find","redraw","_next","_throw","_x","map","LinkButton","queryMutators","components","Extend","Tag","commonExtend","Discussion","hasOne","Model","User","ineligible","blockSelectOwnPost","isThisBestAnswer","actionLabel","saveDiscussion","FoFUserDirectory","selectBestAnswer","awardedBestAnswer","bestAnswerInDiscussion","extend","hasBestAnswer","has","isHidden","canSelectBestAnswer","_app$session$user","isBestAnswer","_app$session$user2","save","bestAnswerPostId","bestAnswerUserId","relationships","data","matches","DiscussionPage","update","PostControls","pushAttributes","contentType","Button","CommentPost","_discussion$bestAnswe","thisPost","PostComponent","elementAttrs","_discussion$bestAnswe2","UserCard","count","bestAnswerCount","override","SortMap","most_best_answers","least_best_answers","NotificationGrid","Search","DiscussionsSearchSource","mutators","IndexPage","tag","currentTag","isQnA","canStartDiscussion","cta","children","setContent","options","selected","bestAnswer","Dropdown","buttonClassName","Number","accessibleToggleLabel","active","refresh","DiscussionListState","prepend","DiscussionComposer","composer","fields","some","titlePlaceholder","bidi","placeholder","disabled","onkeydown"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"forum.js","mappings":"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","sources":["webpack://@fof/best-answer/external assign \"flarum.extensions['fof-user-directory']\"","webpack://@fof/best-answer/./node_modules/flarum-webpack-config/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://@fof/best-answer/./node_modules/flarum-webpack-config/node_modules/@babel/runtime/helpers/typeof.js","webpack://@fof/best-answer/./node_modules/flarum-webpack-config/node_modules/@babel/runtime/regenerator/index.js","webpack://@fof/best-answer/webpack/bootstrap","webpack://@fof/best-answer/webpack/runtime/compat get default export","webpack://@fof/best-answer/webpack/runtime/define property getters","webpack://@fof/best-answer/webpack/runtime/hasOwnProperty shorthand","webpack://@fof/best-answer/webpack/runtime/make namespace object","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/app']\"","webpack://@fof/best-answer/./node_modules/flarum-webpack-config/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@fof/best-answer/./node_modules/flarum-webpack-config/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/Notification']\"","webpack://@fof/best-answer/./src/forum/components/SelectBestAnswerNotification.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['common/extend']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Button']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/utils/PostControls']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/DiscussionPage']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/CommentPost']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/utils/extractText']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/Post']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/Component']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/icon']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/humanTime']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Link']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/utils/ItemList']\"","webpack://@fof/best-answer/./src/forum/components/SelectBestAnswerItem.tsx","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/username']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/userOnline']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/utils/classList']\"","webpack://@fof/best-answer/./src/forum/components/BestAnswerFooterPreview.tsx","webpack://@fof/best-answer/./src/forum/addBestAnswerView.tsx","webpack://@fof/best-answer/external root \"flarum.core.compat['common/models/Discussion']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Badge']\"","webpack://@fof/best-answer/./src/forum/components/BestAnswerBadge.tsx","webpack://@fof/best-answer/./src/forum/components/AwardedBestAnswerNotification.ts","webpack://@fof/best-answer/./src/forum/components/BestAnswerInDiscussionNotification.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/NotificationGrid']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/UserCard']\"","webpack://@fof/best-answer/./node_modules/flarum-webpack-config/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@fof/best-answer/./src/common/addBestAnswerCountSort.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/Search']\"","webpack://@fof/best-answer/./node_modules/flarum-webpack-config/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/LinkButton']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/highlight']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['tags/common/helpers/tagsLabel']\"","webpack://@fof/best-answer/./src/forum/components/SolutionSearchItem.tsx","webpack://@fof/best-answer/./src/forum/components/SolutionSearchSource.tsx","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/DiscussionsSearchSource']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/IndexPage']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Dropdown']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/states/DiscussionListState']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/DiscussionComposer']\"","webpack://@fof/best-answer/./src/forum/components/index.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['common/extenders']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['tags/common/models/Tag']\"","webpack://@fof/best-answer/./src/common/extend.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['common/models/User']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/Model']\"","webpack://@fof/best-answer/./src/forum/extend.ts","webpack://@fof/best-answer/./src/forum/index.ts","webpack://@fof/best-answer/./src/forum/addBestAnswerAction.tsx","webpack://@fof/best-answer/./src/forum/addAnsweredBadge.tsx","webpack://@fof/best-answer/./src/forum/addBestAnswerCountToUsers.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendNotifications.ts","webpack://@fof/best-answer/./src/forum/extenders/extendSearch.ts","webpack://@fof/best-answer/./src/forum/extenders/extendDiscussionSearchSource.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendIndexPage.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendDiscussionListState.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendDiscussionComposer.tsx"],"sourcesContent":["module.exports = flarum.extensions['fof-user-directory'];","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\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'];","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Notification'];","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class SelectBestAnswerNotification extends Notification {\n icon() {\n return 'fas fa-comment-dots';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n return app.translator.trans('fof-best-answer.forum.notification.content');\n }\n\n excerpt() {\n return null;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Button'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/utils/PostControls'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/CommentPost'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/extractText'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Post'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Component'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/icon'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/humanTime'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Link'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/ItemList'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport icon from 'flarum/common/helpers/icon';\nimport humanTime from 'flarum/common/helpers/humanTime';\nimport Link from 'flarum/common/components/Link';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Discussion from 'flarum/common/models/Discussion';\nimport Mithril from 'mithril';\nimport Post from 'flarum/common/models/Post';\n\nexport interface ISelectBestAnswerItemAttrs extends ComponentAttrs {\n post: Post;\n discussion: Discussion;\n}\n\nexport default class SelectBestAnswerItem extends Component {\n post!: Post;\n discussion!: Discussion;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.post = this.attrs.post;\n this.discussion = this.attrs.discussion;\n }\n\n view() {\n return
  • {this.items().toArray()}
  • ;\n }\n\n getSetTime(discussion: Discussion) {\n if (!discussion.bestAnswerSetAt?.()) {\n return;\n }\n const bestAnswerSetAt = discussion.bestAnswerSetAt?.();\n if (!bestAnswerSetAt) {\n return;\n }\n return humanTime(bestAnswerSetAt);\n }\n\n items(): ItemList {\n const items = new ItemList();\n\n items.add(\n 'post',\n this.post ? (\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.best_answer_button')}\n \n ) : (\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.best_answer_button')}\n \n )\n );\n\n const bestAnswerUser = this.discussion.bestAnswerUser?.();\n\n bestAnswerUser &&\n items.add(\n 'user',\n \n {app.translator.trans('fof-best-answer.forum.best_answer_label', {\n user: this.discussion.bestAnswerUser?.(),\n time_set: this.getSetTime(this.discussion),\n a:
    m.route.set(app.route.user(bestAnswerUser))} />,\n })}\n \n );\n\n return items;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/username'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/userOnline'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/classList'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Mithril from 'mithril';\nimport username from 'flarum/common/helpers/username';\nimport userOnline from 'flarum/common/helpers/userOnline';\nimport Link from 'flarum/common/components/Link';\nimport classList from 'flarum/common/utils/classList';\nimport SelectBestAnswerItem from './SelectBestAnswerItem';\nimport Post from 'flarum/common/models/Post';\nimport User from 'flarum/common/models/User';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Discussion from 'flarum/common/models/Discussion';\nimport humanTime from 'flarum/common/helpers/humanTime';\n\nexport interface BestAnswerFooterPreviewAttrs extends ComponentAttrs {\n post: Post;\n user: User;\n discussion: Discussion;\n}\n\nexport default class BestAnswerFooterPreview extends Component {\n user!: User;\n post!: Post;\n discussion!: Discussion;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.user = this.attrs.user;\n this.post = this.attrs.post;\n this.discussion = this.attrs.discussion;\n }\n\n view() {\n const maxLines = app.forum.attribute('fof-best-answer.show_max_lines');\n\n return (\n
    app.current.get('stream').goToNumber(this.post.number())}>\n
    \n
      {this.headerItems().toArray()}
    \n
    \n
    0 && 'Post-body--truncate')} style={{ '--max-lines': maxLines }}>\n {m.trust(this.postContent())}\n
    \n
    \n );\n }\n\n postContent() {\n return this.post.contentHtml();\n }\n\n /**\n * To maintain compatibility with existing styling, custom themes, etc, each item here must be\n * wrapped in a
  • element.\n *\n * @todo: Remove this requirement for Flarum 2.0\n */\n headerItems(): ItemList {\n const items = new ItemList();\n\n items.add('user', this.userItem()), 100;\n items.add('meta', this.metaItem()), 90;\n items.add('bestAnswer', , -100);\n\n return items;\n }\n\n userItem(): Mithril.Children {\n return (\n
  • \n
    \n {this.user && userOnline(this.user)}\n

    {this.user ? {username(this.user)} : username(this.user)}

    \n
    \n
  • \n );\n }\n\n metaItem(): Mithril.Children {\n const post = this.post;\n return (\n
  • \n {humanTime(post.createdAt())}\n
  • \n );\n }\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport CommentPost from 'flarum/forum/components/CommentPost';\nimport PostComponent from 'flarum/forum/components/Post';\nimport SelectBestAnswerItem from './components/SelectBestAnswerItem';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport Button from 'flarum/common/components/Button';\nimport BestAnswerFooterPreview from './components/BestAnswerFooterPreview';\n\nexport default () => {\n extend(CommentPost.prototype, 'headerItems', function (items) {\n const post = this.attrs.post;\n const discussion = post.discussion();\n\n if (discussion?.hasBestAnswer() && discussion.bestAnswerPost() && discussion.bestAnswerPost()?.id() === post.id() && !post.isHidden()) {\n items.add('isBestAnswer', , -100);\n }\n });\n\n extend(CommentPost.prototype, 'footerItems', function (items) {\n const thisPost = this.attrs.post;\n const discussion = thisPost.discussion();\n const post = discussion.hasBestAnswer() && discussion.bestAnswerPost();\n\n if (post && !post.isHidden() && thisPost.number() === 1 && !thisPost.isHidden()) {\n const user = post.user();\n\n items.add('bestAnswerPost', , -10);\n }\n });\n\n extend(PostComponent.prototype, 'elementAttrs', function (elementAttrs) {\n const post = this.attrs.post;\n const discussion = post.discussion();\n\n if (discussion?.hasBestAnswer() && discussion.bestAnswerPost() && discussion.bestAnswerPost().id() === post.id() && !post.isHidden()) {\n elementAttrs.className ? (elementAttrs.className += ' Post--bestAnswer') : (elementAttrs.className = 'Post--bestAnswer');\n }\n });\n\n extend(DiscussionPage.prototype, 'sidebarItems', function (items) {\n if (!app.forum.attribute('bestAnswerDiscussionSidebarJumpButton')) return;\n\n // @ts-ignore\n const discussion = this.discussion;\n\n if (discussion === null) return;\n\n const post = discussion.hasBestAnswer() && discussion.bestAnswerPost();\n\n if (post && !post.isHidden() && post.number() !== 1 && !discussion.bestAnswerPost()?.isHidden()) {\n items.add(\n 'jumpToBestAnswer',\n app.current.get('stream').goToNumber(post.number())}\n aria-label={app.translator.trans('fof-best-answer.forum.discussion.jump_to_best_answer_button')}\n >\n {app.translator.trans('fof-best-answer.forum.discussion.jump_to_best_answer_button')}\n ,\n 90\n );\n }\n });\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/Discussion'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Badge'];","import Badge, { IBadgeAttrs } from 'flarum/common/components/Badge';\nimport app from 'flarum/forum/app';\nimport extractText from 'flarum/common/utils/extractText';\n\nexport default class BestAnswerBadge extends Badge {\n static initAttrs(attrs: IBadgeAttrs) {\n attrs.type = 'bestAnswer';\n attrs.icon = 'fas fa-check';\n attrs.label = extractText(app.translator.trans('fof-best-answer.forum.answered_badge'));\n }\n}\n","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class AwardedBestAnswerNotification extends Notification {\n icon() {\n return 'fas fa-check';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n const user = this.attrs.notification.fromUser();\n return app.translator.trans('fof-best-answer.forum.notification.awarded', {\n user: user,\n });\n }\n\n excerpt() {\n return null;\n }\n}\n","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class BestAnswerInDiscussionNotification extends Notification {\n icon() {\n return 'fas fa-check';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n const user = this.attrs.notification.fromUser();\n return app.translator.trans('fof-best-answer.forum.notification.best_answer_in_discussion', {\n user: user,\n });\n }\n\n excerpt() {\n return null;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/NotificationGrid'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/UserCard'];","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import { override } from 'flarum/common/extend';\n\nexport default () => {\n const FoFUserDirectory = require('@fof-user-directory');\n\n if (!FoFUserDirectory) return;\n\n override(FoFUserDirectory.SortMap.prototype, 'sortMap', (map) => ({\n ...map(),\n most_best_answers: '-bestAnswerCount',\n least_best_answers: 'bestAnswerCount',\n }));\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Search'];","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LinkButton'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/highlight'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['tags/common/helpers/tagsLabel'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Link from 'flarum/common/components/Link';\nimport highlight from 'flarum/common/helpers/highlight';\nimport type Discussion from 'flarum/common/models/Discussion';\nimport type Post from 'flarum/common/models/Post';\nimport type Mithril from 'mithril';\nimport tagsLabel from 'flarum/tags/common/helpers/tagsLabel';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport interface SolutionSearchItemAttrs extends ComponentAttrs {\n query: string;\n discussion: Discussion;\n bestAnswerPost: Post;\n mostRelevantPost: Post;\n tags: false | (Tag | undefined)[];\n}\n\nexport default class SolutionSearchItem extends Component {\n query!: string;\n discussion!: Discussion;\n bestAnswerPost!: Post | null | undefined;\n mostRelevantPost!: Post | null | undefined;\n tags!: false | (Tag | undefined)[];\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.query = this.attrs.query;\n this.discussion = this.attrs.discussion;\n this.bestAnswerPost = this.attrs.bestAnswerPost;\n this.mostRelevantPost = this.attrs.mostRelevantPost;\n this.tags = this.attrs.tags;\n }\n\n view() {\n return (\n
  • \n \n {this.viewItems().toArray()}\n \n
  • \n );\n }\n\n discussionTitle() {\n return this.discussion.title();\n }\n\n bestAnswerContent() {\n return this.bestAnswerPost?.contentPlain();\n }\n\n mostRelevantContent() {\n return this.mostRelevantPost?.contentPlain();\n }\n\n viewItems(): ItemList {\n const items = new ItemList();\n\n app.forum.attribute('showTagsInSearchResults') &&\n items.add('tags',
    {tagsLabel(this.tags)}
    , 100);\n\n items.add('discussion-title',
    {highlight(this.discussionTitle(), this.query)}
    , 90);\n\n !!this.mostRelevantPost &&\n items.add(\n 'most-relevant',\n
    {highlight(this.mostRelevantContent() ?? '', this.query, 100)}
    ,\n 80\n );\n\n !!this.bestAnswerPost &&\n items.add(\n 'best-answer',\n
    \n {highlight(this.bestAnswerContent() ?? '', this.query, 100)}\n
    ,\n 70\n );\n\n return items;\n }\n}\n","import app from 'flarum/forum/app';\nimport Discussion from 'flarum/common/models/Discussion';\nimport LinkButton from 'flarum/common/components/LinkButton';\nimport { SearchSource } from 'flarum/forum/components/Search';\nimport type Mithril from 'mithril';\nimport BestAnswerBadge from './BestAnswerBadge';\nimport SolutionSearchItem from './SolutionSearchItem';\n\nexport default class SolutionSearchSource implements SearchSource {\n protected results = new Map();\n queryString: string | null = null;\n\n async search(query: string): Promise {\n query = query.toLowerCase();\n\n this.results.set(query, []);\n\n this.setQueryString(query);\n\n const params = {\n filter: { q: this.queryString || query },\n page: { limit: this.limit() },\n include: this.includes().join(','),\n };\n\n return app.store.find('discussions', params).then((results) => {\n this.results.set(query, results);\n m.redraw();\n });\n }\n\n view(query: string): Array {\n query = query.toLowerCase();\n\n this.setQueryString(query);\n\n const results = (this.results.get(query) || []).map((discussion) => {\n const bestAnswerPost = discussion.bestAnswerPost();\n const mostRelevantPost = discussion.mostRelevantPost();\n const tags = discussion.tags();\n\n return (\n \n );\n }) as Array;\n\n return [\n
  • \n {app.translator.trans('fof-best-answer.forum.search.discussions_solutions_heading')}\n
  • ,\n
  • \n \n {app.translator.trans('fof-best-answer.forum.search.all_discussions_solutions_button', { query })}\n \n
  • ,\n ...results,\n ];\n }\n\n includes(): string[] {\n return ['mostRelevantPost', 'bestAnswerPost', 'tags'];\n }\n\n limit(): number {\n return 3;\n }\n\n queryMutators(): string[] {\n return ['is:solved'];\n }\n\n setQueryString(query: string): void {\n this.queryString = query + ' ' + this.queryMutators().join(' ');\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionsSearchSource'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/IndexPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Dropdown'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/states/DiscussionListState'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionComposer'];","import AwardedBestAnswerNotification from './AwardedBestAnswerNotification';\nimport BestAnswerBadge from './BestAnswerBadge';\nimport BestAnswerFooterPreview from './BestAnswerFooterPreview';\nimport BestAnswerInDiscussionNotification from './BestAnswerInDiscussionNotification';\nimport SelectBestAnswerItem from './SelectBestAnswerItem';\nimport SelectBestAnswerNotification from './SelectBestAnswerNotification';\nimport SolutionSearchItem from './SolutionSearchItem';\nimport SolutionSearchSource from './SolutionSearchSource';\n\nexport const components = {\n SelectBestAnswerItem,\n SolutionSearchSource,\n BestAnswerFooterPreview,\n AwardedBestAnswerNotification,\n BestAnswerBadge,\n BestAnswerInDiscussionNotification,\n SelectBestAnswerNotification,\n SolutionSearchItem,\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extenders'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['tags/common/models/Tag'];","import Extend from 'flarum/common/extenders';\nimport Tag from 'flarum/tags/common/models/Tag';\n\nexport default [\n new Extend.Model(Tag) //\n .attribute('isQnA')\n .attribute('reminders'),\n];\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/User'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Model'];","import Discussion from 'flarum/common/models/Discussion';\nimport commonExtend from '../common/extend';\nimport Extend from 'flarum/common/extenders';\nimport type Post from 'flarum/common/models/Post';\nimport User from 'flarum/common/models/User';\nimport Model from 'flarum/common/Model';\n\nexport default [\n ...commonExtend,\n\n new Extend.Model(Discussion) //\n .hasOne('bestAnswerPost')\n .hasOne('bestAnswerUser')\n .attribute('hasBestAnswer')\n .attribute('canSelectBestAnswer')\n .attribute('bestAnswerSetAt', Model.transformDate),\n\n new Extend.Model(User) //\n .attribute('bestAnswerCount'),\n];\n","import app from 'flarum/forum/app';\nimport SelectBestAnswerNotification from './components/SelectBestAnswerNotification';\nimport addBestAnswerAction from './addBestAnswerAction';\nimport addBestAnswerView from './addBestAnswerView';\nimport addAnsweredBadge from './addAnsweredBadge';\nimport AwardedBestAnswerNotification from './components/AwardedBestAnswerNotification';\nimport BestAnswerInDiscussionNotification from './components/BestAnswerInDiscussionNotification';\nimport extendNotifications from './extenders/extendNotifications';\nimport addBestAnswerCountToUsers from './addBestAnswerCountToUsers';\nimport addBestAnswerCountSort from '../common/addBestAnswerCountSort';\nimport extendSearch from './extenders/extendSearch';\nimport extendDiscussionsSearchSource from './extenders/extendDiscussionSearchSource';\nimport extendIndexPage from './extenders/extendIndexPage';\nimport extendDiscussionListState from './extenders/extendDiscussionListState';\nimport extendDiscussionComposer from './extenders/extendDiscussionComposer';\n\nexport * from './components';\n\nexport { default as extend } from './extend';\n\napp.initializers.add('fof/best-answer', () => {\n app.notificationComponents.selectBestAnswer = SelectBestAnswerNotification;\n app.notificationComponents.awardedBestAnswer = AwardedBestAnswerNotification;\n app.notificationComponents.bestAnswerInDiscussion = BestAnswerInDiscussionNotification;\n\n addAnsweredBadge();\n addBestAnswerAction();\n addBestAnswerView();\n addBestAnswerCountToUsers();\n addBestAnswerCountSort();\n\n extendNotifications();\n extendSearch();\n extendDiscussionsSearchSource();\n extendIndexPage();\n extendDiscussionListState();\n extendDiscussionComposer();\n});\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport Button from 'flarum/common/components/Button';\nimport PostControls from 'flarum/forum/utils/PostControls';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport CommentPost from 'flarum/forum/components/CommentPost';\nimport Discussion from 'flarum/common/models/Discussion';\nimport Post from 'flarum/common/models/Post';\nimport extractText from 'flarum/common/utils/extractText';\n\nexport default function addBestAnswerAction() {\n const ineligible = (discussion: Discussion, post: Post) => {\n return post.isHidden() || post.number() === 1 || !discussion.canSelectBestAnswer() || !app.session.user;\n };\n\n const blockSelectOwnPost = (post: Post): boolean => {\n const user = post.user();\n return !app.forum.attribute('canSelectBestAnswerOwnPost') && user !== false && user.id() === app.session.user?.id();\n };\n\n const isThisBestAnswer = (discussion: Discussion, post: Post): boolean => {\n const bestAnswerPost = discussion.bestAnswerPost();\n const hasBestAnswer = discussion.hasBestAnswer();\n return hasBestAnswer !== undefined && hasBestAnswer && bestAnswerPost !== null && bestAnswerPost.id() === post.id();\n };\n\n const actionLabel = (isBestAnswer: boolean): string => {\n return extractText(app.translator.trans(isBestAnswer ? 'fof-best-answer.forum.remove_best_answer' : 'fof-best-answer.forum.this_best_answer'));\n };\n\n const saveDiscussion = (discussion: Discussion, isBestAnswer: boolean, post: Post) =>\n discussion\n .save(\n {\n bestAnswerPostId: isBestAnswer ? post.id() : 0,\n bestAnswerUserId: app.session.user?.id(),\n relationships: isBestAnswer ? { bestAnswerPost: post, bestAnswerUser: app.session.user } : { bestAnswerPost: null },\n },\n {\n params: {\n include: 'tags',\n },\n }\n )\n .then(() => {\n if (!isBestAnswer) {\n if (discussion.data.relationships) {\n delete discussion.data.relationships.bestAnswerPost;\n delete discussion.data.relationships.bestAnswerUser;\n }\n }\n\n if (app.current.matches(DiscussionPage)) {\n app.current.get('stream').update();\n }\n\n m.redraw();\n\n if (isBestAnswer) {\n m.route.set(app.route.discussion(discussion));\n }\n });\n\n extend(PostControls, 'moderationControls', function (items, post) {\n if (app.forum.attribute('useAlternativeBestAnswerUi')) return;\n\n const discussion = post.discussion();\n let isBestAnswer = isThisBestAnswer(discussion, post);\n\n post.pushAttributes({ isBestAnswer });\n\n if (post.contentType() !== 'comment') return;\n\n if (ineligible(discussion, post) || blockSelectOwnPost(post) || !app.current.matches(DiscussionPage)) return;\n\n items.add(\n 'bestAnswer',\n {\n isBestAnswer = !isBestAnswer;\n\n saveDiscussion(discussion, isBestAnswer, post).finally(() => {\n isBestAnswer = isThisBestAnswer(discussion, post);\n });\n }}\n >\n {actionLabel(isBestAnswer)}\n \n );\n });\n\n extend(CommentPost.prototype, 'actionItems', function (items) {\n if (!app.forum.attribute('useAlternativeBestAnswerUi')) return;\n\n const post = this.attrs.post;\n const discussion = this.attrs.post.discussion();\n let isBestAnswer = isThisBestAnswer(discussion, post);\n let hasBestAnswer = discussion.bestAnswerPost() !== null;\n\n post.pushAttributes({ isBestAnswer });\n\n if (ineligible(discussion, post) || blockSelectOwnPost(post) || !app.current.matches(DiscussionPage)) return;\n\n items.add(\n 'bestAnswer',\n {\n hasBestAnswer = !hasBestAnswer;\n isBestAnswer = !isBestAnswer;\n\n saveDiscussion(discussion, isBestAnswer, post).finally(() => {\n hasBestAnswer = !!discussion.hasBestAnswer() && discussion.bestAnswerPost() !== null;\n isBestAnswer = isThisBestAnswer(discussion, post);\n });\n }}\n >\n {actionLabel(isBestAnswer)}\n \n );\n });\n}\n","import { extend } from 'flarum/common/extend';\nimport Discussion from 'flarum/common/models/Discussion';\nimport BestAnswerBadge from './components/BestAnswerBadge';\n\nexport default function () {\n extend(Discussion.prototype, 'badges', function (this: Discussion, items) {\n if (this.hasBestAnswer() && !items.has('hidden')) {\n items.add('bestAnswer', );\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport UserCard from 'flarum/forum/components/UserCard';\nimport icon from 'flarum/common/helpers/icon';\n\nimport type Mithril from 'mithril';\nimport type User from 'flarum/common/models/User';\n\nexport default function addBestAnswerCountToUsers() {\n extend(UserCard.prototype, 'infoItems', function (items: ItemList) {\n // @ts-expect-error\n const user = this.attrs.user as User;\n\n items.add(\n 'best-answer-count',\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.user.best-answer-count', {\n count: user.bestAnswerCount(),\n })}\n ,\n 55\n );\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport NotificationGrid from 'flarum/forum/components/NotificationGrid';\nimport type Mithril from 'mithril';\n\nexport default function () {\n extend(NotificationGrid.prototype, 'notificationTypes', function (items: ItemList<{ name: string; icon: string; label: Mithril.Children }>) {\n items.add('awardedBestAnswer', {\n name: 'awardedBestAnswer',\n icon: 'fas fa-check',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.awarded_best_answer'),\n });\n items.add('bestAnswerInDiscussion', {\n name: 'bestAnswerInDiscussion',\n icon: 'fas fa-check',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.best_answer_in_discussion'),\n });\n items.add('selectBestAnswer', {\n name: 'selectBestAnswer',\n icon: 'fas fa-stopwatch',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.select_best_answer'),\n });\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Search, { SearchSource } from 'flarum/forum/components/Search';\nimport SolutionSearchSource from '../components/SolutionSearchSource';\n\nexport default function extendSearch() {\n extend(Search.prototype, 'sourceItems', function (items: ItemList) {\n if (app.forum.attribute('solutionSearchEnabled')) {\n items.add('solution', new SolutionSearchSource(), 110);\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport DiscussionsSearchSource from 'flarum/forum/components/DiscussionsSearchSource';\n\nexport default function extendDiscussionsSearchSource() {\n extend(DiscussionsSearchSource.prototype, 'queryMutators', function (mutators: string[]) {\n // This will only apply when using flarum/core 1.8.6 or newer\n if (app.forum.attribute('removeSolutionResultsFromMainSearch')) {\n mutators.push('-is:solved');\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport Dropdown from 'flarum/common/components/Dropdown';\nimport Button from 'flarum/common/components/Button';\n\nexport default function extendIndexPage() {\n extend(IndexPage.prototype, 'sidebarItems', function (items) {\n const tag = this.currentTag();\n\n if (!tag?.isQnA?.()) return;\n\n const canStartDiscussion = app.forum.attribute('canStartDiscussion') || !app.session.user;\n const cta = items.get('newDiscussion');\n cta.children = app.translator.trans(\n canStartDiscussion ? 'fof-best-answer.forum.index.ask_question' : 'fof-best-answer.forum.index.cannot_ask_question'\n );\n\n if (items.has('startDiscussion')) {\n items.setContent('startDiscussion', cta);\n }\n });\n\n extend(IndexPage.prototype, 'viewItems', function (items) {\n if (!app.forum.attribute('showBestAnswerFilterUi')) {\n return;\n }\n\n const tag = this.currentTag();\n\n if (!tag?.isQnA?.()) {\n if (app.discussions.bestAnswer) {\n delete app.discussions.bestAnswer;\n app.discussions.refresh();\n }\n\n return;\n }\n\n const options = ['all', 'solved', 'unsolved'];\n\n const selected = app.discussions.bestAnswer as unknown as number;\n\n items.add(\n 'solved-filter',\n Dropdown.component(\n {\n buttonClassName: 'Button',\n label: app.translator.trans(\n `fof-best-answer.forum.filter.${options[selected] || Object.keys(options).map((key) => options[Number(key)])[0]}_label`\n ),\n accessibleToggleLabel: app.translator.trans('fof-best-answer.forum.filter.accessible_label'),\n },\n Object.keys(options).map((value) => {\n const label = options[Number(value)];\n const active = (selected || Object.keys(options)[0]) === value;\n\n return Button.component(\n {\n icon: active ? 'fas fa-check' : true,\n active: active,\n onclick: () => {\n app.discussions.bestAnswer = value;\n if (value === '0') {\n delete app.discussions.bestAnswer;\n }\n app.discussions.refresh();\n },\n },\n app.translator.trans(`fof-best-answer.forum.filter.${label}_label`)\n );\n })\n )\n );\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport DiscussionListState from 'flarum/forum/states/DiscussionListState';\nimport type { PaginatedListParams } from 'flarum/common/states/PaginatedListState';\n\nexport default function extendDiscussionListState() {\n extend(DiscussionListState.prototype, 'requestParams', function (params: PaginatedListParams) {\n if (app.discussions.bestAnswer) {\n const negate = app.discussions.bestAnswer === '2';\n const prepend = negate ? '-' : '';\n\n if (!params.filter) {\n params.filter = {};\n }\n\n params.filter[`${prepend}solved-discussions`] = 'true';\n\n if (params.filter.q) {\n params.filter.q += ` ${prepend}is:solved`;\n }\n }\n });\n}\n","import { extend } from 'flarum/common/extend';\nimport app from 'flarum/forum/app';\nimport DiscussionComposer from 'flarum/forum/components/DiscussionComposer';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport default function extendDiscussionComposer() {\n extend(DiscussionComposer.prototype, 'headerItems', function (items) {\n const tags = this.composer.fields.tags as Tag[];\n if (tags === undefined) return;\n\n const qna = tags.some((t) => t.isQnA());\n\n if (!qna) return;\n\n // @ts-expect-error\n this.attrs.titlePlaceholder = app.translator.trans('fof-best-answer.forum.composer.titlePlaceholder');\n\n if (items.has('discussionTitle')) {\n items.setContent(\n 'discussionTitle',\n

    \n \n

    \n );\n }\n });\n}\n"],"names":["module","exports","flarum","extensions","_typeof","require","_regeneratorRuntime","e","__esModule","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","this","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","definition","key","get","obj","prop","core","compat","_setPrototypeOf","bind","_inheritsLoose","SelectBestAnswerNotification","_Notification","apply","arguments","_proto","icon","href","discussion","attrs","notification","subject","app","content","trans","excerpt","Notification","SelectBestAnswerItem","_Component","_this","_len","args","Array","_key","concat","post","oninit","vnode","view","m","className","items","toArray","getSetTime","bestAnswerSetAt","humanTime","_this$discussion$best","_this$discussion","_this$discussion$best2","_this$discussion2","ItemList","add","Link","number","bestAnswerUser","user","time_set","onclick","route","set","Component","BestAnswerFooterPreview","_this2","maxLines","attribute","goToNumber","headerItems","classList","style","trust","postContent","contentHtml","userItem","metaItem","userOnline","username","createdAt","BestAnswerBadge","_Badge","initAttrs","label","extractText","Badge","AwardedBestAnswerNotification","fromUser","BestAnswerInDiscussionNotification","_extends","assign","asyncGeneratorStep","SolutionSearchItem","query","bestAnswerPost","mostRelevantPost","tags","id","viewItems","discussionTitle","title","bestAnswerContent","_this$bestAnswerPost","contentPlain","mostRelevantContent","_this$mostRelevantPos","_this$mostRelevantCon","_this$bestAnswerConte","tagsLabel","highlight","SolutionSearchSource","results","Map","queryString","search","_search","_callee","params","_context","toLowerCase","setQueryString","filter","q","page","limit","include","includes","join","find","redraw","_next","_throw","_x","map","LinkButton","queryMutators","components","Extend","Tag","commonExtend","Discussion","hasOne","Model","User","ineligible","blockSelectOwnPost","isThisBestAnswer","actionLabel","saveDiscussion","FoFUserDirectory","selectBestAnswer","awardedBestAnswer","bestAnswerInDiscussion","extend","hasBestAnswer","has","isHidden","canSelectBestAnswer","_app$session$user","isBestAnswer","_app$session$user2","save","bestAnswerPostId","bestAnswerUserId","relationships","data","matches","DiscussionPage","update","PostControls","pushAttributes","contentType","Button","CommentPost","_discussion$bestAnswe","thisPost","PostComponent","elementAttrs","_discussion$bestAnswe2","UserCard","count","bestAnswerCount","override","SortMap","most_best_answers","least_best_answers","NotificationGrid","Search","DiscussionsSearchSource","mutators","IndexPage","tag","currentTag","isQnA","canStartDiscussion","cta","children","setContent","options","selected","bestAnswer","Dropdown","buttonClassName","Number","accessibleToggleLabel","active","refresh","DiscussionListState","prepend","DiscussionComposer","composer","fields","some","titlePlaceholder","bidi","placeholder","disabled","onkeydown"],"sourceRoot":""} \ No newline at end of file