From e92307cf1675246964e4c321345c717622318a66 Mon Sep 17 00:00:00 2001 From: Bart van Bragt Date: Thu, 16 Apr 2026 22:07:28 +0200 Subject: [PATCH] build: commit compiled JS dist files for feat/analyzer-refactor branch --- js/dist/admin.js | 2 +- js/dist/admin.js.map | 2 +- js/dist/forum.js | 2 +- js/dist/forum.js.map | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/js/dist/admin.js b/js/dist/admin.js index 878ff3a..2a5db7f 100644 --- a/js/dist/admin.js +++ b/js/dist/admin.js @@ -1,2 +1,2 @@ -(()=>{var t={n:a=>{var e=a&&a.__esModule?()=>a.default:()=>a;return t.d(e,{a:e}),e},d:(a,e)=>{for(var r in e)t.o(e,r)&&!t.o(a,r)&&Object.defineProperty(a,r,{enumerable:!0,get:e[r]})},o:(t,a)=>Object.prototype.hasOwnProperty.call(t,a)};(()=>{"use strict";function a(t,e){return a=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,a){return t.__proto__=a,t},a(t,e)}const e=flarum.core.compat["admin/app"];var r=t.n(e);const n=flarum.core.compat["common/extend"],s=flarum.core.compat["admin/components/DashboardPage"];var i=t.n(s);const o=flarum.core.compat["admin/components/DashboardWidget"];var l=t.n(o);const c=flarum.core.compat["common/components/Alert"];var h=t.n(c),d=function(t){var e,n;function s(){return t.apply(this,arguments)||this}n=t,(e=s).prototype=Object.create(n.prototype),e.prototype.constructor=e,a(e,n);var i=s.prototype;return i.className=function(){return"ReindexWarningWidget"},i.content=function(){return m(h(),{type:"warning",dismissible:!1,icon:"fas fa-exclamation-triangle",title:r().translator.trans("blomstra-search.admin.reindex-required.title")},r().translator.trans("blomstra-search.admin.reindex-required.detail"))},s}(l());r().initializers.add("blomstra-search",function(){var t=r().data.settings["blomstra-search.active-index"],a=r().data.settings["blomstra-search.index-compatible"];t&&"v2"!==a&&(0,n.extend)(i().prototype,"availableWidgets",function(t){t.add("blomstra-search-reindex",m(d),110)});var e=new Map;["arabic","armenian","basque","bengali","brazilian","bulgarian","catalan","cjk","czech","danish","dutch","english","estonian","finnish","french","galician","german","greek","hindi","hungarian","indonesian","irish","italian","latvian","lithuanian","norwegian","persian","portuguese","romanian","russian","sorani","spanish","swedish","turkish","thai"].forEach(function(t){e.set(t,t)}),r().extensionData.for("blomstra-search").registerSetting(function(){var a=r().data.settings["blomstra-search.indexed-analyzer"];if(!t||!a)return null;var e=this.setting("blomstra-search.analyzer-language")()||"english",n=this.setting("blomstra-search.min-search-length")()||String(3),s=String(r().data.settings["blomstra-search.indexed-min-search-length"]||3);return e===a&&n===s?null:m(h(),{type:"warning",dismissible:!1,icon:"fas fa-exclamation-triangle"},r().translator.trans("blomstra-search.admin.index-settings-changed"))}).registerSetting({setting:"blomstra-search.elastic-endpoint",label:r().translator.trans("blomstra-search.admin.elastic-endpoint"),type:"input"}).registerSetting({setting:"blomstra-search.elastic-username",label:r().translator.trans("blomstra-search.admin.elastic-username"),type:"input"}).registerSetting({setting:"blomstra-search.elastic-password",label:r().translator.trans("blomstra-search.admin.elastic-password"),type:"password"}).registerSetting({setting:"blomstra-search.elastic-index",label:r().translator.trans("blomstra-search.admin.elastic-index"),default:"flarum",type:"input"}).registerSetting({setting:"blomstra-search.analyzer-language",label:r().translator.trans("blomstra-search.admin.analyzer.label"),help:r().translator.trans("blomstra-search.admin.analyzer.help"),type:"select",options:Object.fromEntries(e.entries()),default:"english"}).registerSetting({setting:"blomstra-search.search-discussion-subjects",label:r().translator.trans("blomstra-search.admin.search-discussion-subjects"),type:"switch"}).registerSetting({setting:"blomstra-search.search-post-bodies",label:r().translator.trans("blomstra-search.admin.search-post-bodies"),type:"switch"}).registerSetting({setting:"blomstra-search.min-search-length",label:r().translator.trans("blomstra-search.admin.min-search-length.label"),help:r().translator.trans("blomstra-search.admin.min-search-length.help"),type:"select",options:{1:"1",2:"2",3:"3",4:"4"},default:String(3)})})})(),module.exports={}})(); +(()=>{var a={n:t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},d:(t,e)=>{for(var n in e)a.o(e,n)&&!a.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o:(a,t)=>Object.prototype.hasOwnProperty.call(a,t)};(()=>{"use strict";function t(a,e){return t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(a,t){return a.__proto__=t,a},t(a,e)}const e=flarum.core.compat["admin/app"];var n=a.n(e);const r=flarum.core.compat["common/extend"],s=flarum.core.compat["admin/components/DashboardPage"];var i=a.n(s);const l=flarum.core.compat["admin/components/DashboardWidget"];var o=a.n(l);const c=flarum.core.compat["common/components/Alert"];var h=a.n(c),d=function(a){var e,r;function s(){return a.apply(this,arguments)||this}r=a,(e=s).prototype=Object.create(r.prototype),e.prototype.constructor=e,t(e,r);var i=s.prototype;return i.className=function(){return"ReindexWarningWidget"},i.content=function(){return m(h(),{type:"warning",dismissible:!1,icon:"fas fa-exclamation-triangle",title:n().translator.trans("blomstra-search.admin.reindex-required.title")},n().translator.trans("blomstra-search.admin.reindex-required.detail"))},s}(o());n().initializers.add("blomstra-search",function(){var a=n().data.settings["blomstra-search.active-index"],t=n().data.settings["blomstra-search.index-compatible"];a&&"v3"!==t&&(0,r.extend)(i().prototype,"availableWidgets",function(a){a.add("blomstra-search-reindex",m(d),110)}),n().extensionData.for("blomstra-search").registerSetting(function(){var t=n().data.settings["blomstra-search.indexed-analyzer"];if(!a||!t)return null;var e=this.setting("blomstra-search.analyzer-language")()||"english",r=this.setting("blomstra-search.stem-exclusion")()||"",s=n().data.settings["blomstra-search.indexed-stem-exclusion"]||"";return e===t&&r===s?null:m(h(),{type:"warning",dismissible:!1,icon:"fas fa-exclamation-triangle"},n().translator.trans("blomstra-search.admin.index-settings-changed"))}).registerSetting({setting:"blomstra-search.elastic-endpoint",label:n().translator.trans("blomstra-search.admin.elastic-endpoint"),type:"input"}).registerSetting({setting:"blomstra-search.elastic-username",label:n().translator.trans("blomstra-search.admin.elastic-username"),type:"input"}).registerSetting({setting:"blomstra-search.elastic-password",label:n().translator.trans("blomstra-search.admin.elastic-password"),type:"password"}).registerSetting({setting:"blomstra-search.elastic-index",label:n().translator.trans("blomstra-search.admin.elastic-index"),default:"flarum",type:"input"}).registerSetting({setting:"blomstra-search.search-discussion-subjects",label:n().translator.trans("blomstra-search.admin.search-discussion-subjects"),type:"switch"}).registerSetting({setting:"blomstra-search.search-post-bodies",label:n().translator.trans("blomstra-search.admin.search-post-bodies"),type:"switch"}).registerSetting({setting:"blomstra-search.analyzer-language",label:n().translator.trans("blomstra-search.admin.analyzer.label"),help:n().translator.trans("blomstra-search.admin.analyzer.help"),type:"select",options:{arabic:"Arabic",armenian:"Armenian",basque:"Basque",bengali:"Bengali",brazilian:"Brazilian Portuguese",bulgarian:"Bulgarian",catalan:"Catalan",cjk:"CJK (Chinese, Japanese, Korean)",czech:"Czech",danish:"Danish",dutch:"Dutch",english:"English",estonian:"Estonian",finnish:"Finnish",french:"French",galician:"Galician",german:"German",greek:"Greek",hindi:"Hindi",hungarian:"Hungarian",indonesian:"Indonesian",irish:"Irish",italian:"Italian",latvian:"Latvian",lithuanian:"Lithuanian",norwegian:"Norwegian",persian:"Persian",portuguese:"Portuguese",romanian:"Romanian",russian:"Russian",sorani:"Sorani (Kurdish)",spanish:"Spanish",swedish:"Swedish",turkish:"Turkish",thai:"Thai"},default:"english"}).registerSetting(function(){var a="cjk"===(this.setting("blomstra-search.analyzer-language")()||"english");return this.buildSettingComponent({setting:"blomstra-search.stem-exclusion",type:"textarea",label:n().translator.trans("blomstra-search.admin.settings.stem-exclusion.label"),help:n().translator.trans("blomstra-search.admin.settings.stem-exclusion.help"),disabled:a})}).registerSetting(function(){var a="cjk"===(this.setting("blomstra-search.analyzer-language")()||"english");return this.buildSettingComponent({setting:"blomstra-search.min-search-length",label:n().translator.trans("blomstra-search.admin.min-search-length.label"),help:n().translator.trans("blomstra-search.admin.min-search-length.help"),type:"select",options:{1:"1",2:"2",3:"3",4:"4"},default:n().data.settings["blomstra-search.min-search-length"],disabled:a})})})})(),module.exports={}})(); //# sourceMappingURL=admin.js.map \ No newline at end of file diff --git a/js/dist/admin.js.map b/js/dist/admin.js.map index 86245ef..2bf3e01 100644 --- a/js/dist/admin.js.map +++ b/js/dist/admin.js.map @@ -1 +1 @@ -{"version":3,"file":"admin.js","mappings":"MACA,IAAIA,EAAsB,CCA1BA,EAAyBC,IACxB,IAAIC,EAASD,GAAUA,EAAOE,WAC7B,IAAOF,EAAiB,QACxB,IAAM,EAEP,OADAD,EAAoBI,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,GCLRF,EAAwB,CAACM,EAASC,KACjC,IAAI,IAAIC,KAAOD,EACXP,EAAoBS,EAAEF,EAAYC,KAASR,EAAoBS,EAAEH,EAASE,IAC5EE,OAAOC,eAAeL,EAASE,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,MCJ3ER,EAAwB,CAACc,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,I,mBCAlF,SAASI,EAAgBC,EAAGC,GAC1B,OAAOF,EAAkBT,OAAOY,eAAiBZ,OAAOY,eAAeC,OAAS,SAAUH,EAAGC,GAC3F,OAAOD,EAAEI,UAAYH,EAAGD,CAC1B,EAAGD,EAAgBC,EAAGC,EACxB,CCJA,MAAM,EAA+BI,OAAOC,KAAKC,OAAO,a,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,iBCAlD,EAA+BF,OAAOC,KAAKC,OAAO,kC,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,oC,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,2B,aCUlDC,EAAoB,SAAAC,GCT1B,IAAwBT,EAAGX,EDSD,SAAAmB,IAAA,OAAAC,EAAAC,MAAA,KAAAC,YAAA,KCTCtB,EDSDoB,GCTFT,EDSEQ,GCRtBZ,UAAYN,OAAOsB,OAAOvB,EAAEO,WAAYI,EAAEJ,UAAUiB,YAAcb,EAAGE,EAAeF,EAAGX,GDQjE,IAAAyB,EAAAN,EAAAZ,UAgBvB,OAhBuBkB,EACxBC,UAAA,WACE,MAAO,sBACT,EAACD,EAEDE,QAAA,WACE,OAAOC,EACLC,IACA,CACEC,KAAM,UACNC,aAAa,EACbC,KAAM,8BACNC,MAAOC,IAAAA,WAAeC,MAAM,iDAE9BD,IAAAA,WAAeC,MAAM,iDAEzB,EAAChB,CAAA,CAhBuB,CAASiB,KAmBnCF,IAAAA,aAAiBG,IAAI,kBAAmB,WACtC,IAAMC,EAAcJ,IAAAA,KAASK,SAAS,gCAChCC,EAAgBN,IAAAA,KAASK,SAAS,oCAEpCD,GA3BwB,OA2BTE,IACjBC,EAAAA,EAAAA,QAAOC,IAAAA,UAAyB,mBAAoB,SAAUC,GAC5DA,EAAMN,IAAI,0BAA2BT,EAAET,GAAuB,IAChE,GAGF,IAAMyB,EAAY,IAAIC,IACtB,CACE,SACA,WACA,SACA,UACA,YACA,YACA,UACA,MACA,QACA,SACA,QACA,UACA,WACA,UACA,SACA,WACA,SACA,QACA,QACA,YACA,aACA,QACA,UACA,UACA,aACA,YACA,UACA,aACA,WACA,UACA,SACA,UACA,UACA,UACA,QACAC,QAAQ,SAACC,GACTH,EAAUI,IAAID,EAAUA,EAC1B,GAEAb,IAAAA,cAAiB,IACV,mBACJe,gBAAgB,WAEf,IAAMC,EAAkBhB,IAAAA,KAASK,SAAS,oCAC1C,IAAKD,IAAgBY,EAAiB,OAAO,KAE7C,IAAMC,EAAkBC,KAAKC,QAAQ,oCAAbD,IAAuD,UACzEE,EAAmBF,KAAKC,QAAQ,oCAAbD,IAAuDG,OAhFpD,GAiFtBC,EAAmBD,OAAOrB,IAAAA,KAASK,SAAS,8CAjFtB,GAmF5B,OAAIY,IAAoBD,GAAmBI,IAAqBE,EAAyB,KAElF5B,EACLC,IACA,CAAEC,KAAM,UAAWC,aAAa,EAAOC,KAAM,+BAC7CE,IAAAA,WAAeC,MAAM,gDAEzB,GACCc,gBAAgB,CACfI,QAAS,mCACTI,MAAOvB,IAAAA,WAAeC,MAAM,0CAC5BL,KAAM,UAEPmB,gBAAgB,CACfI,QAAS,mCACTI,MAAOvB,IAAAA,WAAeC,MAAM,0CAC5BL,KAAM,UAEPmB,gBAAgB,CACfI,QAAS,mCACTI,MAAOvB,IAAAA,WAAeC,MAAM,0CAC5BL,KAAM,aAEPmB,gBAAgB,CACfI,QAAS,gCACTI,MAAOvB,IAAAA,WAAeC,MAAM,uCAC5BuB,QAAS,SACT5B,KAAM,UAEPmB,gBAAgB,CACfI,QAAS,oCACTI,MAAOvB,IAAAA,WAAeC,MAAM,wCAC5BwB,KAAMzB,IAAAA,WAAeC,MAAM,uCAC3BL,KAAM,SACN8B,QAAS3D,OAAO4D,YAAYjB,EAAUkB,WACtCJ,QAAS,YAEVT,gBAAgB,CACfI,QAAS,6CACTI,MAAOvB,IAAAA,WAAeC,MAAM,oDAC5BL,KAAM,WAEPmB,gBAAgB,CACfI,QAAS,qCACTI,MAAOvB,IAAAA,WAAeC,MAAM,4CAC5BL,KAAM,WAEPmB,gBAAgB,CACfI,QAAS,oCACTI,MAAOvB,IAAAA,WAAeC,MAAM,iDAC5BwB,KAAMzB,IAAAA,WAAeC,MAAM,gDAC3BL,KAAM,SACN8B,QAAS,CAAE,EAAK,IAAK,EAAK,IAAK,EAAK,IAAK,EAAK,KAC9CF,QAASH,OAxImB,IA0IlC,E","sources":["webpack://@blomstra/search/webpack/bootstrap","webpack://@blomstra/search/webpack/runtime/compat get default export","webpack://@blomstra/search/webpack/runtime/define property getters","webpack://@blomstra/search/webpack/runtime/hasOwnProperty shorthand","webpack://@blomstra/search/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@blomstra/search/external root \"flarum.core.compat['admin/app']\"","webpack://@blomstra/search/external root \"flarum.core.compat['common/extend']\"","webpack://@blomstra/search/external root \"flarum.core.compat['admin/components/DashboardPage']\"","webpack://@blomstra/search/external root \"flarum.core.compat['admin/components/DashboardWidget']\"","webpack://@blomstra/search/external root \"flarum.core.compat['common/components/Alert']\"","webpack://@blomstra/search/./src/admin/index.ts","webpack://@blomstra/search/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","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 };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/app'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/components/DashboardPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/components/DashboardWidget'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Alert'];","import app from 'flarum/admin/app';\nimport { extend } from 'flarum/common/extend';\nimport DashboardPage from 'flarum/admin/components/DashboardPage';\nimport DashboardWidget from 'flarum/admin/components/DashboardWidget';\nimport Alert from 'flarum/common/components/Alert';\n\nconst REQUIRED_INDEX_COMPAT = 'v2';\n// Matches Flarum's Search.MIN_SEARCH_LEN — not imported here as Search is a forum-only component.\nconst DEFAULT_MIN_SEARCH_LENGTH = 3;\n\nclass ReindexWarningWidget extends DashboardWidget {\n className() {\n return 'ReindexWarningWidget';\n }\n\n content() {\n return m(\n Alert,\n {\n type: 'warning',\n dismissible: false,\n icon: 'fas fa-exclamation-triangle',\n title: app.translator.trans('blomstra-search.admin.reindex-required.title'),\n },\n app.translator.trans('blomstra-search.admin.reindex-required.detail')\n );\n }\n}\n\napp.initializers.add('blomstra-search', () => {\n const activeIndex = app.data.settings['blomstra-search.active-index'];\n const compatVersion = app.data.settings['blomstra-search.index-compatible'];\n\n if (activeIndex && compatVersion !== REQUIRED_INDEX_COMPAT) {\n extend(DashboardPage.prototype, 'availableWidgets', function (items) {\n items.add('blomstra-search-reindex', m(ReindexWarningWidget), 110);\n });\n }\n\n const languages = new Map();\n [\n 'arabic',\n 'armenian',\n 'basque',\n 'bengali',\n 'brazilian',\n 'bulgarian',\n 'catalan',\n 'cjk',\n 'czech',\n 'danish',\n 'dutch',\n 'english',\n 'estonian',\n 'finnish',\n 'french',\n 'galician',\n 'german',\n 'greek',\n 'hindi',\n 'hungarian',\n 'indonesian',\n 'irish',\n 'italian',\n 'latvian',\n 'lithuanian',\n 'norwegian',\n 'persian',\n 'portuguese',\n 'romanian',\n 'russian',\n 'sorani',\n 'spanish',\n 'swedish',\n 'turkish',\n 'thai',\n ].forEach((language) => {\n languages.set(language, language);\n });\n\n app.extensionData\n .for('blomstra-search')\n .registerSetting(function (this: any) {\n // No index yet, or first build predates this tracking — stay silent.\n const indexedAnalyzer = app.data.settings['blomstra-search.indexed-analyzer'];\n if (!activeIndex || !indexedAnalyzer) return null;\n\n const currentAnalyzer = this.setting('blomstra-search.analyzer-language')() || 'english';\n const currentMinLength = this.setting('blomstra-search.min-search-length')() || String(DEFAULT_MIN_SEARCH_LENGTH);\n const indexedMinLength = String(app.data.settings['blomstra-search.indexed-min-search-length'] || DEFAULT_MIN_SEARCH_LENGTH);\n\n if (currentAnalyzer === indexedAnalyzer && currentMinLength === indexedMinLength) return null;\n\n return m(\n Alert,\n { type: 'warning', dismissible: false, icon: 'fas fa-exclamation-triangle' },\n app.translator.trans('blomstra-search.admin.index-settings-changed')\n );\n })\n .registerSetting({\n setting: 'blomstra-search.elastic-endpoint',\n label: app.translator.trans('blomstra-search.admin.elastic-endpoint'),\n type: 'input',\n })\n .registerSetting({\n setting: 'blomstra-search.elastic-username',\n label: app.translator.trans('blomstra-search.admin.elastic-username'),\n type: 'input',\n })\n .registerSetting({\n setting: 'blomstra-search.elastic-password',\n label: app.translator.trans('blomstra-search.admin.elastic-password'),\n type: 'password',\n })\n .registerSetting({\n setting: 'blomstra-search.elastic-index',\n label: app.translator.trans('blomstra-search.admin.elastic-index'),\n default: 'flarum',\n type: 'input',\n })\n .registerSetting({\n setting: 'blomstra-search.analyzer-language',\n label: app.translator.trans('blomstra-search.admin.analyzer.label'),\n help: app.translator.trans('blomstra-search.admin.analyzer.help'),\n type: 'select',\n options: Object.fromEntries(languages.entries()),\n default: 'english',\n })\n .registerSetting({\n setting: 'blomstra-search.search-discussion-subjects',\n label: app.translator.trans('blomstra-search.admin.search-discussion-subjects'),\n type: 'switch',\n })\n .registerSetting({\n setting: 'blomstra-search.search-post-bodies',\n label: app.translator.trans('blomstra-search.admin.search-post-bodies'),\n type: 'switch',\n })\n .registerSetting({\n setting: 'blomstra-search.min-search-length',\n label: app.translator.trans('blomstra-search.admin.min-search-length.label'),\n help: app.translator.trans('blomstra-search.admin.min-search-length.help'),\n type: 'select',\n options: { '1': '1', '2': '2', '3': '3', '4': '4' },\n default: String(DEFAULT_MIN_SEARCH_LENGTH),\n });\n});\n","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 };"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","_setPrototypeOf","t","e","setPrototypeOf","bind","__proto__","flarum","core","compat","ReindexWarningWidget","_DashboardWidget","apply","arguments","create","constructor","_proto","className","content","m","Alert","type","dismissible","icon","title","app","trans","DashboardWidget","add","activeIndex","settings","compatVersion","extend","DashboardPage","items","languages","Map","forEach","language","set","registerSetting","indexedAnalyzer","currentAnalyzer","this","setting","currentMinLength","String","indexedMinLength","label","default","help","options","fromEntries","entries"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"admin.js","mappings":"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","sources":["webpack://@blomstra/search/webpack/bootstrap","webpack://@blomstra/search/webpack/runtime/compat get default export","webpack://@blomstra/search/webpack/runtime/define property getters","webpack://@blomstra/search/webpack/runtime/hasOwnProperty shorthand","webpack://@blomstra/search/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@blomstra/search/external root \"flarum.core.compat['admin/app']\"","webpack://@blomstra/search/external root \"flarum.core.compat['common/extend']\"","webpack://@blomstra/search/external root \"flarum.core.compat['admin/components/DashboardPage']\"","webpack://@blomstra/search/external root \"flarum.core.compat['admin/components/DashboardWidget']\"","webpack://@blomstra/search/external root \"flarum.core.compat['common/components/Alert']\"","webpack://@blomstra/search/./src/admin/index.ts","webpack://@blomstra/search/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","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 };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/app'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/components/DashboardPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/components/DashboardWidget'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Alert'];","import app from 'flarum/admin/app';\nimport { extend } from 'flarum/common/extend';\nimport DashboardPage from 'flarum/admin/components/DashboardPage';\nimport DashboardWidget from 'flarum/admin/components/DashboardWidget';\nimport Alert from 'flarum/common/components/Alert';\n\nconst REQUIRED_INDEX_COMPAT = 'v3';\n\nclass ReindexWarningWidget extends DashboardWidget {\n className() {\n return 'ReindexWarningWidget';\n }\n\n content() {\n return m(\n Alert,\n {\n type: 'warning',\n dismissible: false,\n icon: 'fas fa-exclamation-triangle',\n title: app.translator.trans('blomstra-search.admin.reindex-required.title'),\n },\n app.translator.trans('blomstra-search.admin.reindex-required.detail')\n );\n }\n}\n\napp.initializers.add('blomstra-search', () => {\n const activeIndex = app.data.settings['blomstra-search.active-index'];\n const compatVersion = app.data.settings['blomstra-search.index-compatible'];\n\n if (activeIndex && compatVersion !== REQUIRED_INDEX_COMPAT) {\n extend(DashboardPage.prototype, 'availableWidgets', function (items) {\n items.add('blomstra-search-reindex', m(ReindexWarningWidget), 110);\n });\n }\n\n const languages: Record = {\n arabic: 'Arabic',\n armenian: 'Armenian',\n basque: 'Basque',\n bengali: 'Bengali',\n brazilian: 'Brazilian Portuguese',\n bulgarian: 'Bulgarian',\n catalan: 'Catalan',\n cjk: 'CJK (Chinese, Japanese, Korean)',\n czech: 'Czech',\n danish: 'Danish',\n dutch: 'Dutch',\n english: 'English',\n estonian: 'Estonian',\n finnish: 'Finnish',\n french: 'French',\n galician: 'Galician',\n german: 'German',\n greek: 'Greek',\n hindi: 'Hindi',\n hungarian: 'Hungarian',\n indonesian: 'Indonesian',\n irish: 'Irish',\n italian: 'Italian',\n latvian: 'Latvian',\n lithuanian: 'Lithuanian',\n norwegian: 'Norwegian',\n persian: 'Persian',\n portuguese: 'Portuguese',\n romanian: 'Romanian',\n russian: 'Russian',\n sorani: 'Sorani (Kurdish)',\n spanish: 'Spanish',\n swedish: 'Swedish',\n turkish: 'Turkish',\n thai: 'Thai',\n };\n\n app.extensionData\n .for('blomstra-search')\n .registerSetting(function (this: any) {\n // No index yet, or first build predates this tracking — stay silent.\n const indexedAnalyzer = app.data.settings['blomstra-search.indexed-analyzer'];\n if (!activeIndex || !indexedAnalyzer) return null;\n\n const currentAnalyzer = this.setting('blomstra-search.analyzer-language')() || 'english';\n const currentStemExclusion = this.setting('blomstra-search.stem-exclusion')() || '';\n const indexedStemExclusion = app.data.settings['blomstra-search.indexed-stem-exclusion'] || '';\n\n if (currentAnalyzer === indexedAnalyzer && currentStemExclusion === indexedStemExclusion) return null;\n\n return m(\n Alert,\n { type: 'warning', dismissible: false, icon: 'fas fa-exclamation-triangle' },\n app.translator.trans('blomstra-search.admin.index-settings-changed')\n );\n })\n .registerSetting({\n setting: 'blomstra-search.elastic-endpoint',\n label: app.translator.trans('blomstra-search.admin.elastic-endpoint'),\n type: 'input',\n })\n .registerSetting({\n setting: 'blomstra-search.elastic-username',\n label: app.translator.trans('blomstra-search.admin.elastic-username'),\n type: 'input',\n })\n .registerSetting({\n setting: 'blomstra-search.elastic-password',\n label: app.translator.trans('blomstra-search.admin.elastic-password'),\n type: 'password',\n })\n .registerSetting({\n setting: 'blomstra-search.elastic-index',\n label: app.translator.trans('blomstra-search.admin.elastic-index'),\n default: 'flarum',\n type: 'input',\n })\n .registerSetting({\n setting: 'blomstra-search.search-discussion-subjects',\n label: app.translator.trans('blomstra-search.admin.search-discussion-subjects'),\n type: 'switch',\n })\n .registerSetting({\n setting: 'blomstra-search.search-post-bodies',\n label: app.translator.trans('blomstra-search.admin.search-post-bodies'),\n type: 'switch',\n })\n .registerSetting({\n setting: 'blomstra-search.analyzer-language',\n label: app.translator.trans('blomstra-search.admin.analyzer.label'),\n help: app.translator.trans('blomstra-search.admin.analyzer.help'),\n type: 'select',\n options: languages,\n default: 'english',\n })\n .registerSetting(function (this: any) {\n const isCjk = (this.setting('blomstra-search.analyzer-language')() || 'english') === 'cjk';\n return this.buildSettingComponent({\n setting: 'blomstra-search.stem-exclusion',\n type: 'textarea',\n label: app.translator.trans('blomstra-search.admin.settings.stem-exclusion.label'),\n help: app.translator.trans('blomstra-search.admin.settings.stem-exclusion.help'),\n disabled: isCjk,\n });\n })\n .registerSetting(function (this: any) {\n const isCjk = (this.setting('blomstra-search.analyzer-language')() || 'english') === 'cjk';\n return this.buildSettingComponent({\n setting: 'blomstra-search.min-search-length',\n label: app.translator.trans('blomstra-search.admin.min-search-length.label'),\n help: app.translator.trans('blomstra-search.admin.min-search-length.help'),\n type: 'select',\n options: { '1': '1', '2': '2', '3': '3', '4': '4' },\n default: app.data.settings['blomstra-search.min-search-length'],\n disabled: isCjk,\n });\n });\n});\n","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 };"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","_setPrototypeOf","t","e","setPrototypeOf","bind","__proto__","flarum","core","compat","ReindexWarningWidget","_DashboardWidget","apply","arguments","create","constructor","_proto","className","content","m","Alert","type","dismissible","icon","title","app","trans","DashboardWidget","add","activeIndex","settings","compatVersion","extend","DashboardPage","items","registerSetting","indexedAnalyzer","currentAnalyzer","this","setting","currentStemExclusion","indexedStemExclusion","label","default","help","options","arabic","armenian","basque","bengali","brazilian","bulgarian","catalan","cjk","czech","danish","dutch","english","estonian","finnish","french","galician","german","greek","hindi","hungarian","indonesian","irish","italian","latvian","lithuanian","norwegian","persian","portuguese","romanian","russian","sorani","spanish","swedish","turkish","thai","isCjk","buildSettingComponent","disabled"],"sourceRoot":""} \ No newline at end of file diff --git a/js/dist/forum.js b/js/dist/forum.js index 8c30d95..3331fba 100644 --- a/js/dist/forum.js +++ b/js/dist/forum.js @@ -1,3 +1,3 @@ /*! For license information please see forum.js.LICENSE.txt */ -(()=>{var t={163(t){t.exports=function(t,e){this.v=t,this.k=e},t.exports.__esModule=!0,t.exports.default=t.exports},110(t,e,r){var n=r(397);function o(){var e,r,s="function"==typeof Symbol?Symbol:{},a=s.iterator||"@@iterator",u=s.toStringTag||"@@toStringTag";function i(t,o,s,a){var u=o&&o.prototype instanceof p?o:p,i=Object.create(u.prototype);return n(i,"_invoke",function(t,n,o){var s,a,u,i=0,p=o||[],l=!1,f={p:0,n:0,v:e,a:m,f:m.bind(e,4),d:function(t,r){return s=t,a=0,u=e,f.n=r,c}};function m(t,n){for(a=t,u=n,r=0;!l&&i&&!o&&r3?(o=d===n)&&(u=s[(a=s[4])?5:(a=3,3)],s[4]=s[5]=e):s[0]<=m&&((o=t<2&&mn||n>d)&&(s[4]=t,s[5]=n,f.n=d,a=0))}if(o||t>1)return c;throw l=!0,n}return function(o,p,d){if(i>1)throw TypeError("Generator is already running");for(l&&1===p&&m(p,d),a=p,u=d;(r=a<2?e:u)||!l;){s||(a?a<3?(a>1&&(f.n=-1),m(a,u)):f.n=u:f.v=u);try{if(i=2,s){if(a||(o="next"),r=s[o]){if(!(r=r.call(s,u)))throw TypeError("iterator result is not an object");if(!r.done)return r;u=r.value,a<2&&(a=0)}else 1===a&&(r=s.return)&&r.call(s),a<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),a=1);s=e}else if((r=(l=f.n<0)?u:t.call(n,f))!==c)break}catch(t){s=e,a=1,u=t}finally{i=1}}return{value:r,done:l}}}(t,s,a),!0),i}var c={};function p(){}function l(){}function f(){}r=Object.getPrototypeOf;var m=[][a]?r(r([][a]())):(n(r={},a,function(){return this}),r),d=f.prototype=p.prototype=Object.create(m);function v(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,f):(t.__proto__=f,n(t,u,"GeneratorFunction")),t.prototype=Object.create(d),t}return l.prototype=f,n(d,"constructor",f),n(f,"constructor",l),l.displayName="GeneratorFunction",n(f,u,"GeneratorFunction"),n(d),n(d,u,"Generator"),n(d,a,function(){return this}),n(d,"toString",function(){return"[object Generator]"}),(t.exports=o=function(){return{w:i,m:v}},t.exports.__esModule=!0,t.exports.default=t.exports)()}t.exports=o,t.exports.__esModule=!0,t.exports.default=t.exports},996(t,e,r){var n=r(312);t.exports=function(t,e,r,o,s){var a=n(t,e,r,o,s);return a.next().then(function(t){return t.done?t.value:a.next()})},t.exports.__esModule=!0,t.exports.default=t.exports},312(t,e,r){var n=r(110),o=r(166);t.exports=function(t,e,r,s,a){return new o(n().w(t,e,r,s),a||Promise)},t.exports.__esModule=!0,t.exports.default=t.exports},166(t,e,r){var n=r(163),o=r(397);t.exports=function t(e,r){function s(t,o,a,u){try{var i=e[t](o),c=i.value;return c instanceof n?r.resolve(c.v).then(function(t){s("next",t,a,u)},function(t){s("throw",t,a,u)}):r.resolve(c).then(function(t){i.value=t,a(i)},function(t){return s("throw",t,a,u)})}catch(t){u(t)}}var a;this.next||(o(t.prototype),o(t.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),o(this,"_invoke",function(t,e,n){function o(){return new r(function(e,r){s(t,n,e,r)})}return a=a?a.then(o,o):o()},!0)},t.exports.__esModule=!0,t.exports.default=t.exports},397(t){function e(r,n,o,s){var a=Object.defineProperty;try{a({},"",{})}catch(r){a=0}t.exports=e=function(t,r,n,o){function s(r,n){e(t,r,function(t){return this._invoke(r,n,t)})}r?a?a(t,r,{value:n,enumerable:!o,configurable:!o,writable:!o}):t[r]=n:(s("next",0),s("throw",1),s("return",2))},t.exports.__esModule=!0,t.exports.default=t.exports,e(r,n,o,s)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},766(t){t.exports=function(t){var e=Object(t),r=[];for(var n in e)r.unshift(n);return function t(){for(;r.length;)if((n=r.pop())in e)return t.value=n,t.done=!1,t;return t.done=!0,t}},t.exports.__esModule=!0,t.exports.default=t.exports},24(t,e,r){var n=r(163),o=r(110),s=r(996),a=r(312),u=r(166),i=r(766),c=r(760);function p(){"use strict";var e=o(),r=e.m(p),l=(Object.getPrototypeOf?Object.getPrototypeOf(r):r.__proto__).constructor;function f(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===l||"GeneratorFunction"===(e.displayName||e.name))}var m={throw:1,return:2,break:3,continue:3};function d(t){var e,r;return function(n){e||(e={stop:function(){return r(n.a,2)},catch:function(){return n.v},abrupt:function(t,e){return r(n.a,m[t],e)},delegateYield:function(t,o,s){return e.resultName=o,r(n.d,c(t),s)},finish:function(t){return r(n.f,t)}},r=function(t,r,o){n.p=e.prev,n.n=e.next;try{return t(r,o)}finally{e.next=n.n}}),e.resultName&&(e[e.resultName]=n.v,e.resultName=void 0),e.sent=n.v,e.next=n.n;try{return t.call(this,e)}finally{n.p=e.prev,n.n=e.next}}}return(t.exports=p=function(){return{wrap:function(t,r,n,o){return e.w(d(t),r,n,o&&o.reverse())},isGeneratorFunction:f,mark:e.m,awrap:function(t,e){return new n(t,e)},AsyncIterator:u,async:function(t,e,r,n,o){return(f(e)?a:s)(d(t),e,r,n,o)},keys:i,values:c}},t.exports.__esModule=!0,t.exports.default=t.exports)()}t.exports=p,t.exports.__esModule=!0,t.exports.default=t.exports},760(t,e,r){var n=r(735).default;t.exports=function(t){if(null!=t){var e=t["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length))return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}}}throw new TypeError(n(t)+" is not iterable")},t.exports.__esModule=!0,t.exports.default=t.exports},735(t){function e(r){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},183(t,e,r){var n=r(24)();t.exports=n;try{regeneratorRuntime=n}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var s=e[n]={exports:{}};return t[n](s,s.exports,r),s.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";const t=flarum.core.compat["forum/app"];var e=r.n(t);const n=flarum.core.compat["forum/components/Search"];var o=r.n(n);const s=flarum.core.compat["common/extend"];function a(t,e,r,n,o,s,a){try{var u=t[s](a),i=u.value}catch(t){return void r(t)}u.done?e(i):Promise.resolve(i).then(n,o)}function u(t){return function(){var e=this,r=arguments;return new Promise(function(n,o){var s=t.apply(e,r);function u(t){a(s,n,o,u,i,"next",t)}function i(t){a(s,n,o,u,i,"throw",t)}u(void 0)})}}var i=r(183),c=r.n(i);const p=flarum.core.compat["common/helpers/highlight"];var l=r.n(p);const f=flarum.core.compat["common/components/LinkButton"];var d=r.n(f);const v=flarum.core.compat["common/components/Link"];var h=r.n(v),x=function(){function t(){this.results=new Map,this.type="discussions"}var r=t.prototype;return r.search=function(){var t=u(c().mark(function t(r){var n,o,s,a;return c().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return r=r.toLowerCase(),this.results.set(r,[]),n={filter:{q:r},page:{limit:3},include:"mostRelevantPost"},o=e().forum.attribute("apiUrl")+"/blomstra/search/"+this.type,t.next=6,e().request({params:n,url:o,method:"GET"});case 6:s=t.sent,a=e().store.pushPayload(s),this.results.set(r,a);case 9:case"end":return t.stop()}},t,this)}));return function(e){return t.apply(this,arguments)}}(),r.view=function(t){var r=this;t=t.toLowerCase();var n=(this.results.get(t)||[]).map(function(n){var o=n.mostRelevantPost();return m("li",{className:"DiscussionSearchResult","data-index":""+r.type+n.id()},m(h(),{href:e().route.discussion(n,o&&o.number())},m("div",{className:"DiscussionSearchResult-title"},l()(n.title(),t)),!!o&&m("div",{className:"DiscussionSearchResult-excerpt"},l()(o.contentPlain(),t,100))))});return[m("li",{className:"Dropdown-header"},e().translator.trans("core.forum.search.discussions_heading")),m("li",null,m(d(),{icon:"fas fa-search",href:e().route("index",{q:t,sort:"latest"})},e().translator.trans("core.forum.search.all_discussions_button",{query:t})))].concat(n)},t}();function y(){return y=Object.assign?Object.assign.bind():function(t){for(var e=1;e{var t={163(t){t.exports=function(t,e){this.v=t,this.k=e},t.exports.__esModule=!0,t.exports.default=t.exports},110(t,e,r){var n=r(397);function o(){var e,r,s="function"==typeof Symbol?Symbol:{},a=s.iterator||"@@iterator",u=s.toStringTag||"@@toStringTag";function i(t,o,s,a){var u=o&&o.prototype instanceof p?o:p,i=Object.create(u.prototype);return n(i,"_invoke",function(t,n,o){var s,a,u,i=0,p=o||[],l=!1,f={p:0,n:0,v:e,a:m,f:m.bind(e,4),d:function(t,r){return s=t,a=0,u=e,f.n=r,c}};function m(t,n){for(a=t,u=n,r=0;!l&&i&&!o&&r3?(o=d===n)&&(u=s[(a=s[4])?5:(a=3,3)],s[4]=s[5]=e):s[0]<=m&&((o=t<2&&mn||n>d)&&(s[4]=t,s[5]=n,f.n=d,a=0))}if(o||t>1)return c;throw l=!0,n}return function(o,p,d){if(i>1)throw TypeError("Generator is already running");for(l&&1===p&&m(p,d),a=p,u=d;(r=a<2?e:u)||!l;){s||(a?a<3?(a>1&&(f.n=-1),m(a,u)):f.n=u:f.v=u);try{if(i=2,s){if(a||(o="next"),r=s[o]){if(!(r=r.call(s,u)))throw TypeError("iterator result is not an object");if(!r.done)return r;u=r.value,a<2&&(a=0)}else 1===a&&(r=s.return)&&r.call(s),a<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),a=1);s=e}else if((r=(l=f.n<0)?u:t.call(n,f))!==c)break}catch(t){s=e,a=1,u=t}finally{i=1}}return{value:r,done:l}}}(t,s,a),!0),i}var c={};function p(){}function l(){}function f(){}r=Object.getPrototypeOf;var m=[][a]?r(r([][a]())):(n(r={},a,function(){return this}),r),d=f.prototype=p.prototype=Object.create(m);function v(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,f):(t.__proto__=f,n(t,u,"GeneratorFunction")),t.prototype=Object.create(d),t}return l.prototype=f,n(d,"constructor",f),n(f,"constructor",l),l.displayName="GeneratorFunction",n(f,u,"GeneratorFunction"),n(d),n(d,u,"Generator"),n(d,a,function(){return this}),n(d,"toString",function(){return"[object Generator]"}),(t.exports=o=function(){return{w:i,m:v}},t.exports.__esModule=!0,t.exports.default=t.exports)()}t.exports=o,t.exports.__esModule=!0,t.exports.default=t.exports},996(t,e,r){var n=r(312);t.exports=function(t,e,r,o,s){var a=n(t,e,r,o,s);return a.next().then(function(t){return t.done?t.value:a.next()})},t.exports.__esModule=!0,t.exports.default=t.exports},312(t,e,r){var n=r(110),o=r(166);t.exports=function(t,e,r,s,a){return new o(n().w(t,e,r,s),a||Promise)},t.exports.__esModule=!0,t.exports.default=t.exports},166(t,e,r){var n=r(163),o=r(397);t.exports=function t(e,r){function s(t,o,a,u){try{var i=e[t](o),c=i.value;return c instanceof n?r.resolve(c.v).then(function(t){s("next",t,a,u)},function(t){s("throw",t,a,u)}):r.resolve(c).then(function(t){i.value=t,a(i)},function(t){return s("throw",t,a,u)})}catch(t){u(t)}}var a;this.next||(o(t.prototype),o(t.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),o(this,"_invoke",function(t,e,n){function o(){return new r(function(e,r){s(t,n,e,r)})}return a=a?a.then(o,o):o()},!0)},t.exports.__esModule=!0,t.exports.default=t.exports},397(t){function e(r,n,o,s){var a=Object.defineProperty;try{a({},"",{})}catch(r){a=0}t.exports=e=function(t,r,n,o){function s(r,n){e(t,r,function(t){return this._invoke(r,n,t)})}r?a?a(t,r,{value:n,enumerable:!o,configurable:!o,writable:!o}):t[r]=n:(s("next",0),s("throw",1),s("return",2))},t.exports.__esModule=!0,t.exports.default=t.exports,e(r,n,o,s)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},766(t){t.exports=function(t){var e=Object(t),r=[];for(var n in e)r.unshift(n);return function t(){for(;r.length;)if((n=r.pop())in e)return t.value=n,t.done=!1,t;return t.done=!0,t}},t.exports.__esModule=!0,t.exports.default=t.exports},24(t,e,r){var n=r(163),o=r(110),s=r(996),a=r(312),u=r(166),i=r(766),c=r(760);function p(){"use strict";var e=o(),r=e.m(p),l=(Object.getPrototypeOf?Object.getPrototypeOf(r):r.__proto__).constructor;function f(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===l||"GeneratorFunction"===(e.displayName||e.name))}var m={throw:1,return:2,break:3,continue:3};function d(t){var e,r;return function(n){e||(e={stop:function(){return r(n.a,2)},catch:function(){return n.v},abrupt:function(t,e){return r(n.a,m[t],e)},delegateYield:function(t,o,s){return e.resultName=o,r(n.d,c(t),s)},finish:function(t){return r(n.f,t)}},r=function(t,r,o){n.p=e.prev,n.n=e.next;try{return t(r,o)}finally{e.next=n.n}}),e.resultName&&(e[e.resultName]=n.v,e.resultName=void 0),e.sent=n.v,e.next=n.n;try{return t.call(this,e)}finally{n.p=e.prev,n.n=e.next}}}return(t.exports=p=function(){return{wrap:function(t,r,n,o){return e.w(d(t),r,n,o&&o.reverse())},isGeneratorFunction:f,mark:e.m,awrap:function(t,e){return new n(t,e)},AsyncIterator:u,async:function(t,e,r,n,o){return(f(e)?a:s)(d(t),e,r,n,o)},keys:i,values:c}},t.exports.__esModule=!0,t.exports.default=t.exports)()}t.exports=p,t.exports.__esModule=!0,t.exports.default=t.exports},760(t,e,r){var n=r(735).default;t.exports=function(t){if(null!=t){var e=t["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length))return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}}}throw new TypeError(n(t)+" is not iterable")},t.exports.__esModule=!0,t.exports.default=t.exports},735(t){function e(r){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},183(t,e,r){var n=r(24)();t.exports=n;try{regeneratorRuntime=n}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var s=e[n]={exports:{}};return t[n](s,s.exports,r),s.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";const t=flarum.core.compat["forum/app"];var e=r.n(t);const n=flarum.core.compat["forum/components/Search"];var o=r.n(n);const s=flarum.core.compat["common/extend"];function a(t,e,r,n,o,s,a){try{var u=t[s](a),i=u.value}catch(t){return void r(t)}u.done?e(i):Promise.resolve(i).then(n,o)}function u(t){return function(){var e=this,r=arguments;return new Promise(function(n,o){var s=t.apply(e,r);function u(t){a(s,n,o,u,i,"next",t)}function i(t){a(s,n,o,u,i,"throw",t)}u(void 0)})}}var i=r(183),c=r.n(i);const p=flarum.core.compat["common/helpers/highlight"];var l=r.n(p);const f=flarum.core.compat["common/components/LinkButton"];var d=r.n(f);const v=flarum.core.compat["common/components/Link"];var h=r.n(v),x=function(){function t(){this.results=new Map,this.type="discussions"}var r=t.prototype;return r.search=function(){var t=u(c().mark(function t(r){var n,o,s,a;return c().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!e().forum.attribute("blomstraSearchPostBodies")){t.next=2;break}return t.abrupt("return");case 2:return r=r.toLowerCase(),this.results.set(r,[]),n={filter:{q:r,autocomplete:1},page:{limit:3},include:"mostRelevantPost"},o=e().forum.attribute("apiUrl")+"/blomstra/search/"+this.type,t.next=8,e().request({params:n,url:o,method:"GET"});case 8:s=t.sent,a=e().store.pushPayload(s),this.results.set(r,a);case 11:case"end":return t.stop()}},t,this)}));return function(e){return t.apply(this,arguments)}}(),r.view=function(t){var r=this;t=t.toLowerCase();var n=(this.results.get(t)||[]).map(function(n){var o=n.mostRelevantPost();return m("li",{className:"DiscussionSearchResult","data-index":""+r.type+n.id()},m(h(),{href:e().route.discussion(n,o&&o.number())},m("div",{className:"DiscussionSearchResult-title"},l()(n.title(),t)),!!o&&m("div",{className:"DiscussionSearchResult-excerpt"},l()(o.contentPlain(),t,100))))});return[m("li",{className:"Dropdown-header"},e().translator.trans("core.forum.search.discussions_heading")),m("li",null,m(d(),{icon:"fas fa-search",href:e().route("index",{q:t,sort:"latest"})},e().translator.trans("core.forum.search.all_discussions_button",{query:t})))].concat(n)},t}();function y(){return y=Object.assign?Object.assign.bind():function(t){for(var e=1;e 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));\n }\n if (o || r > 1) return a;\n throw y = !0, n;\n }\n return function (o, p, l) {\n if (f > 1) throw TypeError(\"Generator is already running\");\n for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {\n i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);\n try {\n if (f = 2, i) {\n if (c || (o = \"next\"), t = i[o]) {\n if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\");\n if (!t.done) return t;\n u = t.value, c < 2 && (c = 0);\n } else 1 === c && (t = i[\"return\"]) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1);\n i = e;\n } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;\n } catch (t) {\n i = e, c = 1, u = t;\n } finally {\n f = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r, o, i), !0), u;\n }\n var a = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {\n return this;\n }), t),\n u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), regeneratorDefine(u), regeneratorDefine(u, o, \"Generator\"), regeneratorDefine(u, n, function () {\n return this;\n }), regeneratorDefine(u, \"toString\", function () {\n return \"[object Generator]\";\n }), (module.exports = _regenerator = function _regenerator() {\n return {\n w: i,\n m: f\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nfunction _regeneratorAsync(n, e, r, t, o) {\n var a = regeneratorAsyncGen(n, e, r, t, o);\n return a.next().then(function (n) {\n return n.done ? n.value : a.next();\n });\n}\nmodule.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regenerator = require(\"./regenerator.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction AsyncIterator(t, e) {\n function n(r, o, i, f) {\n try {\n var c = t[r](o),\n u = c.value;\n return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {\n n(\"next\", t, i, f);\n }, function (t) {\n n(\"throw\", t, i, f);\n }) : e.resolve(u).then(function (t) {\n c.value = t, i(c);\n }, function (t) {\n return n(\"throw\", t, i, f);\n });\n } catch (t) {\n f(t);\n }\n }\n var r;\n this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, \"function\" == typeof Symbol && Symbol.asyncIterator || \"@asyncIterator\", function () {\n return this;\n })), regeneratorDefine(this, \"_invoke\", function (t, o, i) {\n function f() {\n return new e(function (e, r) {\n n(t, i, e, r);\n });\n }\n return r = r ? r.then(f, f) : f();\n }, !0);\n}\nmodule.exports = AsyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e) {\n i = 0;\n }\n module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n function o(r, n) {\n _regeneratorDefine(e, r, function (e) {\n return this._invoke(r, n, e);\n });\n }\n r ? i ? i(e, r, {\n value: n,\n enumerable: !t,\n configurable: !t,\n writable: !t\n }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _regeneratorDefine(e, r, n, t);\n}\nmodule.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorKeys(e) {\n var n = Object(e),\n r = [];\n for (var t in n) r.unshift(t);\n return function e() {\n for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;\n return e.done = !0, e;\n };\n}\nmodule.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regenerator = require(\"./regenerator.js\");\nvar regeneratorAsync = require(\"./regeneratorAsync.js\");\nvar regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nvar regeneratorKeys = require(\"./regeneratorKeys.js\");\nvar regeneratorValues = require(\"./regeneratorValues.js\");\nfunction _regeneratorRuntime() {\n \"use strict\";\n\n var r = regenerator(),\n e = r.m(_regeneratorRuntime),\n t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;\n function n(r) {\n var e = \"function\" == typeof r && r.constructor;\n return !!e && (e === t || \"GeneratorFunction\" === (e.displayName || e.name));\n }\n var o = {\n \"throw\": 1,\n \"return\": 2,\n \"break\": 3,\n \"continue\": 3\n };\n function a(r) {\n var e, t;\n return function (n) {\n e || (e = {\n stop: function stop() {\n return t(n.a, 2);\n },\n \"catch\": function _catch() {\n return n.v;\n },\n abrupt: function abrupt(r, e) {\n return t(n.a, o[r], e);\n },\n delegateYield: function delegateYield(r, o, a) {\n return e.resultName = o, t(n.d, regeneratorValues(r), a);\n },\n finish: function finish(r) {\n return t(n.f, r);\n }\n }, t = function t(r, _t, o) {\n n.p = e.prev, n.n = e.next;\n try {\n return r(_t, o);\n } finally {\n e.next = n.n;\n }\n }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;\n try {\n return r.call(this, e);\n } finally {\n n.p = e.prev, n.n = e.next;\n }\n };\n }\n return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return {\n wrap: function wrap(e, t, n, o) {\n return r.w(a(e), t, n, o && o.reverse());\n },\n isGeneratorFunction: n,\n mark: r.m,\n awrap: function awrap(r, e) {\n return new OverloadYield(r, e);\n },\n AsyncIterator: regeneratorAsyncIterator,\n async: function async(r, e, t, o, u) {\n return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);\n },\n keys: regeneratorKeys,\n values: regeneratorValues\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorValues(e) {\n if (null != e) {\n var t = e[\"function\" == typeof Symbol && Symbol.iterator || \"@@iterator\"],\n r = 0;\n if (t) return t.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) return {\n next: function next() {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n}\nmodule.exports = _regeneratorValues, 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))","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/app'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Search'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","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/helpers/highlight'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LinkButton'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Link'];","import app from 'flarum/forum/app';\nimport highlight from 'flarum/common/helpers/highlight';\nimport LinkButton from 'flarum/common/components/LinkButton';\nimport Link from 'flarum/common/components/Link';\nimport { SearchSource } from 'flarum/forum/components/Search';\nimport type Mithril from 'mithril';\n\n/**\n * The `DiscussionsSearchSource` finds and displays discussion search results in\n * the search dropdown.\n */\nexport default class DiscussionsSearchSource implements SearchSource {\n /**\n * Map of lowercase search queries to their respective model results\n */\n protected results = new Map();\n\n /**\n * Model name used for assembling API endpoint URL, and for frontend DOM.\n */\n private type = 'discussions';\n\n async search(query: string): Promise {\n query = query.toLowerCase();\n\n this.results.set(query, []);\n\n const params = {\n filter: { q: query },\n page: { limit: 3 },\n include: 'mostRelevantPost',\n };\n\n // Construct API search URI\n const url = `${app.forum.attribute('apiUrl')}/blomstra/search/${this.type}`;\n\n // Make API GET request\n const results = await app.request({ params, url, method: 'GET' });\n\n // Parse API response into models and push to store\n const models = app.store.pushPayload(results);\n\n // Add models to results map\n this.results.set(query, models);\n }\n\n view(query: string): Array {\n query = query.toLowerCase();\n\n // Get results from map\n const queryResults = this.results.get(query) || [];\n\n const results = queryResults.map((discussion: any) => {\n const mostRelevantPost = discussion.mostRelevantPost();\n\n return (\n
  • \n \n
    {highlight(discussion.title(), query)}
    \n {!!mostRelevantPost &&
    {highlight(mostRelevantPost.contentPlain(), query, 100)}
    }\n \n
  • \n );\n });\n\n return [\n
  • {app.translator.trans('core.forum.search.discussions_heading')}
  • ,\n
  • \n \n {app.translator.trans('core.forum.search.all_discussions_button', { query })}\n \n
  • ,\n ...results,\n ];\n }\n}\n","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 };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/states/DiscussionListState'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionListItem'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/TerminalPost'];","import app from 'flarum/forum/app';\n\nimport Search, { SearchAttrs, SearchSource } from 'flarum/forum/components/Search';\n\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\n\nimport DiscussionsSearchSource from './SearchSources/DiscussionsSearchSource';\nimport extendDiscussionState from './PaginatedListStates/extendDiscussionState';\nimport extendDiscussionListItem from './extendDiscussionListItem';\n\napp.initializers.add('blomstra-search', () => {\n extend(Search.prototype, 'sourceItems', function (this: Search, items: ItemList) {\n // app.forum is not available during initializers (it is set after they run),\n // so read the setting lazily here, at first render time.\n const minLength = (app.forum.attribute('blomstraSearchMinLength') as number) || Search.MIN_SEARCH_LEN;\n if (minLength !== Search.MIN_SEARCH_LEN) {\n (Search as any).MIN_SEARCH_LEN = minLength;\n }\n\n items.replace('discussions', new DiscussionsSearchSource());\n });\n});\n\napp.initializers.add(\n 'blomstra-search-early',\n () => {\n extendDiscussionState();\n extendDiscussionListItem();\n },\n 999999\n);\n","import app from 'flarum/forum/app';\n\nimport { override } from 'flarum/common/extend';\n\nimport DiscussionListState from 'flarum/forum/states/DiscussionListState';\n\nexport default function extendDiscussionState() {\n override(DiscussionListState.prototype, 'loadPage', async function (this: DiscussionListState, original, page: number = 1) {\n const preloaded = app.data.apiDocument || null;\n\n // If existing payload is given or no search is made, fallback on native page.\n if (preloaded || !this.requestParams()?.filter?.q) return original.call(this, page);\n\n const params = this.requestParams();\n params.page = {\n offset: this.pageSize * (page - 1),\n ...params.page,\n };\n\n // Default to latest sort when searching without an explicit sort parameter.\n // Matches the backend default and keeps the dropdown label in sync.\n if (!params.sort) {\n params.sort = '-lastPostedAt';\n }\n\n if (Array.isArray(params.include)) {\n params.include = params.include.join(',');\n }\n\n // Construct API search URI\n const url = `${app.forum.attribute('apiUrl')}/blomstra/search/${this.type}`;\n\n // Make API GET request\n const results = await app.request({ params, url, method: 'GET' });\n\n // Parse API response into models and push to store\n return app.store.pushPayload(results);\n });\n}\n","import { extend } from 'flarum/common/extend';\nimport DiscussionListItem from 'flarum/forum/components/DiscussionListItem';\nimport TerminalPost from 'flarum/forum/components/TerminalPost';\n\nexport default function extendDiscussionListItem() {\n extend(DiscussionListItem.prototype, 'infoItems', function (items) {\n const params = this.attrs.params;\n\n if (!params.q) return;\n\n const hasFieldSort = params.sort && params.sort !== 'relevance';\n\n if (hasFieldSort) {\n // Field sort active (latest, oldest, top, …): replace excerpt with TerminalPost.\n // An excerpt is meaningless when results are ordered by date/count rather than relevance.\n items.remove('excerpt');\n if (!items.has('terminalPost')) {\n items.add('terminalPost', );\n }\n } else if (!items.has('excerpt')) {\n // Relevance mode but no excerpt (mostRelevantPost was null or non-comment type).\n // Fall back to TerminalPost so the info section is never silently empty.\n items.add('terminalPost', );\n }\n });\n}\n"],"names":["module","exports","e","d","this","v","k","__esModule","regeneratorDefine","require","_regenerator","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","f","p","y","G","a","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","w","m","regeneratorAsyncGen","next","then","regenerator","regeneratorAsyncIterator","Promise","OverloadYield","AsyncIterator","resolve","asyncIterator","_regeneratorDefine","defineProperty","_invoke","enumerable","configurable","writable","unshift","pop","regeneratorAsync","regeneratorKeys","regeneratorValues","_regeneratorRuntime","constructor","name","stop","abrupt","delegateYield","resultName","finish","_t","prev","sent","wrap","reverse","isGeneratorFunction","mark","awrap","async","keys","values","_typeof","isNaN","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","definition","key","get","obj","prop","hasOwnProperty","flarum","core","compat","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","DiscussionsSearchSource","results","Map","type","_proto","search","_search","_callee","query","params","url","models","_context","toLowerCase","set","filter","q","page","limit","include","app","attribute","method","pushPayload","_x","view","_this","map","discussion","mostRelevantPost","className","id","Link","href","number","highlight","title","contentPlain","trans","LinkButton","icon","sort","concat","_extends","assign","add","extend","Search","items","minLength","replace","override","DiscussionListState","_ref","original","_this$requestParams","_this$requestParams$f","apiDocument","requestParams","offset","pageSize","Array","isArray","join","_x2","_x3","DiscussionListItem","attrs","remove","has","TerminalPost","lastPost","showFirstPost"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"forum.js","mappings":"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","sources":["webpack://@blomstra/search/./node_modules/@babel/runtime/helpers/OverloadYield.js","webpack://@blomstra/search/./node_modules/@babel/runtime/helpers/regenerator.js","webpack://@blomstra/search/./node_modules/@babel/runtime/helpers/regeneratorAsync.js","webpack://@blomstra/search/./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","webpack://@blomstra/search/./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","webpack://@blomstra/search/./node_modules/@babel/runtime/helpers/regeneratorDefine.js","webpack://@blomstra/search/./node_modules/@babel/runtime/helpers/regeneratorKeys.js","webpack://@blomstra/search/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://@blomstra/search/./node_modules/@babel/runtime/helpers/regeneratorValues.js","webpack://@blomstra/search/./node_modules/@babel/runtime/helpers/typeof.js","webpack://@blomstra/search/./node_modules/@babel/runtime/regenerator/index.js","webpack://@blomstra/search/webpack/bootstrap","webpack://@blomstra/search/webpack/runtime/compat get default export","webpack://@blomstra/search/webpack/runtime/define property getters","webpack://@blomstra/search/webpack/runtime/hasOwnProperty shorthand","webpack://@blomstra/search/external root \"flarum.core.compat['forum/app']\"","webpack://@blomstra/search/external root \"flarum.core.compat['forum/components/Search']\"","webpack://@blomstra/search/external root \"flarum.core.compat['common/extend']\"","webpack://@blomstra/search/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://@blomstra/search/external root \"flarum.core.compat['common/helpers/highlight']\"","webpack://@blomstra/search/external root \"flarum.core.compat['common/components/LinkButton']\"","webpack://@blomstra/search/external root \"flarum.core.compat['common/components/Link']\"","webpack://@blomstra/search/./src/forum/SearchSources/DiscussionsSearchSource.tsx","webpack://@blomstra/search/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@blomstra/search/external root \"flarum.core.compat['forum/states/DiscussionListState']\"","webpack://@blomstra/search/external root \"flarum.core.compat['forum/components/DiscussionListItem']\"","webpack://@blomstra/search/external root \"flarum.core.compat['forum/components/TerminalPost']\"","webpack://@blomstra/search/./src/forum/index.ts","webpack://@blomstra/search/./src/forum/PaginatedListStates/extendDiscussionState.tsx","webpack://@blomstra/search/./src/forum/extendDiscussionListItem.tsx"],"sourcesContent":["function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction _regenerator() {\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */\n var e,\n t,\n r = \"function\" == typeof Symbol ? Symbol : {},\n n = r.iterator || \"@@iterator\",\n o = r.toStringTag || \"@@toStringTag\";\n function i(r, n, o, i) {\n var c = n && n.prototype instanceof Generator ? n : Generator,\n u = Object.create(c.prototype);\n return regeneratorDefine(u, \"_invoke\", function (r, n, o) {\n var i,\n c,\n u,\n f = 0,\n p = o || [],\n y = !1,\n G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function d(t, r) {\n return i = t, c = 0, u = e, G.n = r, a;\n }\n };\n function d(r, n) {\n for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {\n var o,\n i = p[t],\n d = G.p,\n l = i[2];\n r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));\n }\n if (o || r > 1) return a;\n throw y = !0, n;\n }\n return function (o, p, l) {\n if (f > 1) throw TypeError(\"Generator is already running\");\n for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {\n i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);\n try {\n if (f = 2, i) {\n if (c || (o = \"next\"), t = i[o]) {\n if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\");\n if (!t.done) return t;\n u = t.value, c < 2 && (c = 0);\n } else 1 === c && (t = i[\"return\"]) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1);\n i = e;\n } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;\n } catch (t) {\n i = e, c = 1, u = t;\n } finally {\n f = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r, o, i), !0), u;\n }\n var a = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {\n return this;\n }), t),\n u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), regeneratorDefine(u), regeneratorDefine(u, o, \"Generator\"), regeneratorDefine(u, n, function () {\n return this;\n }), regeneratorDefine(u, \"toString\", function () {\n return \"[object Generator]\";\n }), (module.exports = _regenerator = function _regenerator() {\n return {\n w: i,\n m: f\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nfunction _regeneratorAsync(n, e, r, t, o) {\n var a = regeneratorAsyncGen(n, e, r, t, o);\n return a.next().then(function (n) {\n return n.done ? n.value : a.next();\n });\n}\nmodule.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regenerator = require(\"./regenerator.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction AsyncIterator(t, e) {\n function n(r, o, i, f) {\n try {\n var c = t[r](o),\n u = c.value;\n return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {\n n(\"next\", t, i, f);\n }, function (t) {\n n(\"throw\", t, i, f);\n }) : e.resolve(u).then(function (t) {\n c.value = t, i(c);\n }, function (t) {\n return n(\"throw\", t, i, f);\n });\n } catch (t) {\n f(t);\n }\n }\n var r;\n this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, \"function\" == typeof Symbol && Symbol.asyncIterator || \"@asyncIterator\", function () {\n return this;\n })), regeneratorDefine(this, \"_invoke\", function (t, o, i) {\n function f() {\n return new e(function (e, r) {\n n(t, i, e, r);\n });\n }\n return r = r ? r.then(f, f) : f();\n }, !0);\n}\nmodule.exports = AsyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e) {\n i = 0;\n }\n module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n function o(r, n) {\n _regeneratorDefine(e, r, function (e) {\n return this._invoke(r, n, e);\n });\n }\n r ? i ? i(e, r, {\n value: n,\n enumerable: !t,\n configurable: !t,\n writable: !t\n }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _regeneratorDefine(e, r, n, t);\n}\nmodule.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorKeys(e) {\n var n = Object(e),\n r = [];\n for (var t in n) r.unshift(t);\n return function e() {\n for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;\n return e.done = !0, e;\n };\n}\nmodule.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regenerator = require(\"./regenerator.js\");\nvar regeneratorAsync = require(\"./regeneratorAsync.js\");\nvar regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nvar regeneratorKeys = require(\"./regeneratorKeys.js\");\nvar regeneratorValues = require(\"./regeneratorValues.js\");\nfunction _regeneratorRuntime() {\n \"use strict\";\n\n var r = regenerator(),\n e = r.m(_regeneratorRuntime),\n t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;\n function n(r) {\n var e = \"function\" == typeof r && r.constructor;\n return !!e && (e === t || \"GeneratorFunction\" === (e.displayName || e.name));\n }\n var o = {\n \"throw\": 1,\n \"return\": 2,\n \"break\": 3,\n \"continue\": 3\n };\n function a(r) {\n var e, t;\n return function (n) {\n e || (e = {\n stop: function stop() {\n return t(n.a, 2);\n },\n \"catch\": function _catch() {\n return n.v;\n },\n abrupt: function abrupt(r, e) {\n return t(n.a, o[r], e);\n },\n delegateYield: function delegateYield(r, o, a) {\n return e.resultName = o, t(n.d, regeneratorValues(r), a);\n },\n finish: function finish(r) {\n return t(n.f, r);\n }\n }, t = function t(r, _t, o) {\n n.p = e.prev, n.n = e.next;\n try {\n return r(_t, o);\n } finally {\n e.next = n.n;\n }\n }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;\n try {\n return r.call(this, e);\n } finally {\n n.p = e.prev, n.n = e.next;\n }\n };\n }\n return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return {\n wrap: function wrap(e, t, n, o) {\n return r.w(a(e), t, n, o && o.reverse());\n },\n isGeneratorFunction: n,\n mark: r.m,\n awrap: function awrap(r, e) {\n return new OverloadYield(r, e);\n },\n AsyncIterator: regeneratorAsyncIterator,\n async: function async(r, e, t, o, u) {\n return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);\n },\n keys: regeneratorKeys,\n values: regeneratorValues\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorValues(e) {\n if (null != e) {\n var t = e[\"function\" == typeof Symbol && Symbol.iterator || \"@@iterator\"],\n r = 0;\n if (t) return t.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) return {\n next: function next() {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n}\nmodule.exports = _regeneratorValues, 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))","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/app'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Search'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","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/helpers/highlight'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LinkButton'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Link'];","import app from 'flarum/forum/app';\nimport highlight from 'flarum/common/helpers/highlight';\nimport LinkButton from 'flarum/common/components/LinkButton';\nimport Link from 'flarum/common/components/Link';\nimport { SearchSource } from 'flarum/forum/components/Search';\nimport type Mithril from 'mithril';\n\n/**\n * The `DiscussionsSearchSource` finds and displays discussion search results in\n * the search dropdown.\n */\nexport default class DiscussionsSearchSource implements SearchSource {\n /**\n * Map of lowercase search queries to their respective model results\n */\n protected results = new Map();\n\n /**\n * Model name used for assembling API endpoint URL, and for frontend DOM.\n */\n private type = 'discussions';\n\n async search(query: string): Promise {\n // Suppress ES instant results when \"search within comments\" is ON;\n // only usernames are shown in that mode.\n if (app.forum.attribute('blomstraSearchPostBodies')) {\n return;\n }\n\n query = query.toLowerCase();\n\n this.results.set(query, []);\n\n const params = {\n filter: { q: query, autocomplete: 1 },\n page: { limit: 3 },\n include: 'mostRelevantPost',\n };\n\n // Construct API search URI\n const url = `${app.forum.attribute('apiUrl')}/blomstra/search/${this.type}`;\n\n // Make API GET request\n const results = await app.request({ params, url, method: 'GET' });\n\n // Parse API response into models and push to store\n const models = app.store.pushPayload(results);\n\n // Add models to results map\n this.results.set(query, models);\n }\n\n view(query: string): Array {\n query = query.toLowerCase();\n\n // Get results from map\n const queryResults = this.results.get(query) || [];\n\n const results = queryResults.map((discussion: any) => {\n const mostRelevantPost = discussion.mostRelevantPost();\n\n return (\n
  • \n \n
    {highlight(discussion.title(), query)}
    \n {!!mostRelevantPost &&
    {highlight(mostRelevantPost.contentPlain(), query, 100)}
    }\n \n
  • \n );\n });\n\n return [\n
  • {app.translator.trans('core.forum.search.discussions_heading')}
  • ,\n
  • \n \n {app.translator.trans('core.forum.search.all_discussions_button', { query })}\n \n
  • ,\n ...results,\n ];\n }\n}\n","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 };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/states/DiscussionListState'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionListItem'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/TerminalPost'];","import app from 'flarum/forum/app';\n\nimport Search, { SearchAttrs, SearchSource } from 'flarum/forum/components/Search';\n\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\n\nimport DiscussionsSearchSource from './SearchSources/DiscussionsSearchSource';\nimport extendDiscussionState from './PaginatedListStates/extendDiscussionState';\nimport extendDiscussionListItem from './extendDiscussionListItem';\n\napp.initializers.add('blomstra-search', () => {\n extend(Search.prototype, 'sourceItems', function (this: Search, items: ItemList) {\n // app.forum is not available during initializers (it is set after they run),\n // so read the setting lazily here, at first render time.\n const minLength = (app.forum.attribute('blomstraSearchMinLength') as number) || Search.MIN_SEARCH_LEN;\n if (minLength !== Search.MIN_SEARCH_LEN) {\n (Search as any).MIN_SEARCH_LEN = minLength;\n }\n\n items.replace('discussions', new DiscussionsSearchSource());\n });\n});\n\napp.initializers.add(\n 'blomstra-search-early',\n () => {\n extendDiscussionState();\n extendDiscussionListItem();\n },\n 999999\n);\n","import app from 'flarum/forum/app';\n\nimport { override } from 'flarum/common/extend';\n\nimport DiscussionListState from 'flarum/forum/states/DiscussionListState';\n\nexport default function extendDiscussionState() {\n override(DiscussionListState.prototype, 'loadPage', async function (this: DiscussionListState, original, page: number = 1) {\n const preloaded = app.data.apiDocument || null;\n\n // If existing payload is given or no search is made, fallback on native page.\n if (preloaded || !this.requestParams()?.filter?.q) return original.call(this, page);\n\n const params = this.requestParams();\n params.page = {\n offset: this.pageSize * (page - 1),\n ...params.page,\n };\n\n // Default to latest sort when searching without an explicit sort parameter.\n // Matches the backend default and keeps the dropdown label in sync.\n if (!params.sort) {\n params.sort = '-lastPostedAt';\n }\n\n if (Array.isArray(params.include)) {\n params.include = params.include.join(',');\n }\n\n // Construct API search URI\n const url = `${app.forum.attribute('apiUrl')}/blomstra/search/${this.type}`;\n\n // Make API GET request\n const results = await app.request({ params, url, method: 'GET' });\n\n // Parse API response into models and push to store\n return app.store.pushPayload(results);\n });\n}\n","import { extend } from 'flarum/common/extend';\nimport DiscussionListItem from 'flarum/forum/components/DiscussionListItem';\nimport TerminalPost from 'flarum/forum/components/TerminalPost';\n\nexport default function extendDiscussionListItem() {\n extend(DiscussionListItem.prototype, 'infoItems', function (items) {\n const params = this.attrs.params;\n\n if (!params.q) return;\n\n const hasFieldSort = params.sort && params.sort !== 'relevance';\n\n if (hasFieldSort) {\n // Field sort active (latest, oldest, top, …): replace excerpt with TerminalPost.\n // An excerpt is meaningless when results are ordered by date/count rather than relevance.\n items.remove('excerpt');\n if (!items.has('terminalPost')) {\n items.add('terminalPost', );\n }\n } else if (!items.has('excerpt')) {\n // Relevance mode but no excerpt (mostRelevantPost was null or non-comment type).\n // Fall back to TerminalPost so the info section is never silently empty.\n items.add('terminalPost', );\n }\n });\n}\n"],"names":["module","exports","e","d","this","v","k","__esModule","regeneratorDefine","require","_regenerator","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","f","p","y","G","a","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","w","m","regeneratorAsyncGen","next","then","regenerator","regeneratorAsyncIterator","Promise","OverloadYield","AsyncIterator","resolve","asyncIterator","_regeneratorDefine","defineProperty","_invoke","enumerable","configurable","writable","unshift","pop","regeneratorAsync","regeneratorKeys","regeneratorValues","_regeneratorRuntime","constructor","name","stop","abrupt","delegateYield","resultName","finish","_t","prev","sent","wrap","reverse","isGeneratorFunction","mark","awrap","async","keys","values","_typeof","isNaN","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","definition","key","get","obj","prop","hasOwnProperty","flarum","core","compat","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","DiscussionsSearchSource","results","Map","type","_proto","search","_search","_callee","query","params","url","models","_context","app","attribute","toLowerCase","set","filter","q","autocomplete","page","limit","include","method","pushPayload","_x","view","_this","map","discussion","mostRelevantPost","className","id","Link","href","number","highlight","title","contentPlain","trans","LinkButton","icon","sort","concat","_extends","assign","add","extend","Search","items","minLength","replace","override","DiscussionListState","_ref","original","_this$requestParams","_this$requestParams$f","apiDocument","requestParams","offset","pageSize","Array","isArray","join","_x2","_x3","DiscussionListItem","attrs","remove","has","TerminalPost","lastPost","showFirstPost"],"sourceRoot":""} \ No newline at end of file