diff --git a/extensions/messages/js/dist-typings/forum/components/DetailsModal.d.ts b/extensions/messages/js/dist-typings/forum/components/DetailsModal.d.ts
index cd938ea2a..6815042b0 100644
--- a/extensions/messages/js/dist-typings/forum/components/DetailsModal.d.ts
+++ b/extensions/messages/js/dist-typings/forum/components/DetailsModal.d.ts
@@ -1,4 +1,4 @@
-///
+///
import Modal, { type IInternalModalAttrs } from 'flarum/common/components/Modal';
import type Dialog from '../../common/models/Dialog';
import ItemList from 'flarum/common/utils/ItemList';
diff --git a/extensions/messages/js/dist/admin.js b/extensions/messages/js/dist/admin.js
index 46e47584c..89006758a 100644
--- a/extensions/messages/js/dist/admin.js
+++ b/extensions/messages/js/dist/admin.js
@@ -1,2 +1,2 @@
-(()=>{var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var a in r)e.o(r,a)&&!e.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:r[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};(()=>{"use strict";e.r(t),e.d(t,{extend:()=>f});const r=flarum.reg.get("core","admin/app");var a=e.n(r);const s=flarum.reg.get("core","common/Model");var n=e.n(s);const l=flarum.reg.get("core","common/utils/computed");var o=e.n(l);const i=flarum.reg.get("core","common/utils/string");class u extends(n()){content(){return n().attribute("content").call(this)}contentHtml(){return n().attribute("contentHtml").call(this)}renderFailed(){return n().attribute("renderFailed").call(this)}contentPlain(){return o()("contentHtml",(e=>"string"==typeof e?(0,i.getPlainContent)(e):e)).call(this)}createdAt(){return n().attribute("createdAt",n().transformDate).call(this)}dialog(){return n().hasOne("dialog").call(this)}user(){return n().hasOne("user").call(this)}}flarum.reg.add("flarum-messages","common/models/DialogMessage",u);const d=flarum.reg.get("core","common/app");var c=e.n(d);class m extends(n()){title(){return n().attribute("title").call(this)}type(){return n().attribute("type").call(this)}lastMessageAt(){return n().attribute("lastMessageAt",n().transformDate).call(this)}createdAt(){return n().attribute("createdAt",n().transformDate).call(this)}users(){return n().hasMany("users").call(this)}firstMessage(){return n().hasOne("firstMessage").call(this)}lastMessage(){return n().hasOne("lastMessage").call(this)}unreadCount(){return n().attribute("unreadCount").call(this)}lastReadMessageId(){return n().attribute("lastReadMessageId").call(this)}lastReadAt(){return n().attribute("lastReadAt",n().transformDate).call(this)}recipient(){let e=this.users();return e?e.find((e=>e&&e.id()!==c().session.user.id())):null}}flarum.reg.add("flarum-messages","common/models/Dialog",m);const g=flarum.reg.get("core","common/extenders"),f=[(new(e.n(g)().Store)).add("dialogs",m).add("dialog-messages",u)];a().initializers.add("flarum-messages",(()=>{a().extensionData.for("flarum-messages").registerPermission({icon:"fas fa-envelope-open-text",label:a().translator.trans("flarum-messages.admin.permissions.send_messages"),permission:"dialog.sendMessage",allowGuest:!1},"start",98)}))})(),module.exports=t})();
+(()=>{var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var a in r)e.o(r,a)&&!e.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:r[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};(()=>{"use strict";e.r(t),e.d(t,{extend:()=>h});const r=flarum.reg.get("core","admin/app");var a=e.n(r);const s=flarum.reg.get("core","common/extenders");var n=e.n(s);const l=flarum.reg.get("core","common/Model");var o=e.n(l);const i=flarum.reg.get("core","common/utils/computed");var u=e.n(i);const d=flarum.reg.get("core","common/utils/string");class c extends(o()){content(){return o().attribute("content").call(this)}contentHtml(){return o().attribute("contentHtml").call(this)}renderFailed(){return o().attribute("renderFailed").call(this)}contentPlain(){return u()("contentHtml",(e=>"string"==typeof e?(0,d.getPlainContent)(e):e)).call(this)}createdAt(){return o().attribute("createdAt",o().transformDate).call(this)}dialog(){return o().hasOne("dialog").call(this)}user(){return o().hasOne("user").call(this)}}flarum.reg.add("flarum-messages","common/models/DialogMessage",c);const m=flarum.reg.get("core","common/app");var g=e.n(m);class f extends(o()){title(){return o().attribute("title").call(this)}type(){return o().attribute("type").call(this)}lastMessageAt(){return o().attribute("lastMessageAt",o().transformDate).call(this)}createdAt(){return o().attribute("createdAt",o().transformDate).call(this)}users(){return o().hasMany("users").call(this)}firstMessage(){return o().hasOne("firstMessage").call(this)}lastMessage(){return o().hasOne("lastMessage").call(this)}unreadCount(){return o().attribute("unreadCount").call(this)}lastReadMessageId(){return o().attribute("lastReadMessageId").call(this)}lastReadAt(){return o().attribute("lastReadAt",o().transformDate).call(this)}recipient(){let e=this.users();return e?e.find((e=>e&&e.id()!==g().session.user.id())):null}}flarum.reg.add("flarum-messages","common/models/Dialog",f);const h=[(new(n().Store)).add("dialogs",f).add("dialog-messages",c),(new(n().Admin)).permission((()=>({icon:"fas fa-envelope-open-text",label:a().translator.trans("flarum-messages.admin.permissions.send_messages"),permission:"dialog.sendMessage",allowGuest:!1})),"start",98)];a().initializers.add("flarum-messages",(()=>{}))})(),module.exports=t})();
//# sourceMappingURL=admin.js.map
\ No newline at end of file
diff --git a/extensions/messages/js/dist/admin.js.map b/extensions/messages/js/dist/admin.js.map
index 0edf3f3b9..a1854bb47 100644
--- a/extensions/messages/js/dist/admin.js.map
+++ b/extensions/messages/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,CAAM,ECLdF,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,IAE1E,ECNDR,EAAwB,CAACc,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFf,EAAyBM,IACH,oBAAXa,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeL,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeL,EAAS,aAAc,CAAEe,OAAO,GAAO,G,qDCL9D,MAAM,EAA+BC,OAAOC,IAAIV,IAAI,OAAQ,a,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,gB,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,yB,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,uBCG7C,MAAMW,UAAsB,KACzCC,UACE,OAAO,cAAgB,WAAWP,KAAKQ,KACzC,CACAC,cACE,OAAO,cAAgB,eAAeT,KAAKQ,KAC7C,CACAE,eACE,OAAO,cAAgB,gBAAgBV,KAAKQ,KAC9C,CACAG,eACE,OAAO,IAAS,eAAeJ,GACN,iBAAZA,GACF,IAAAK,iBAAgBL,GAElBA,IACNP,KAAKQ,KACV,CACAK,YACE,OAAO,cAAgB,YAAa,mBAAqBb,KAAKQ,KAChE,CACAM,SACE,OAAO,WAAa,UAAUd,KAAKQ,KACrC,CACAO,OACE,OAAO,WAAa,QAAQf,KAAKQ,KACnC,EAEFJ,OAAOC,IAAIW,IAAI,kBAAmB,8BAA+BV,GC/BjE,MAAM,EAA+BF,OAAOC,IAAIV,IAAI,OAAQ,c,aCE7C,MAAMsB,UAAe,KAClCC,QACE,OAAO,cAAgB,SAASlB,KAAKQ,KACvC,CACAW,OACE,OAAO,cAAgB,QAAQnB,KAAKQ,KACtC,CACAY,gBACE,OAAO,cAAgB,gBAAiB,mBAAqBpB,KAAKQ,KACpE,CACAK,YACE,OAAO,cAAgB,YAAa,mBAAqBb,KAAKQ,KAChE,CACAa,QACE,OAAO,YAAc,SAASrB,KAAKQ,KACrC,CACAc,eACE,OAAO,WAAa,gBAAgBtB,KAAKQ,KAC3C,CACAe,cACE,OAAO,WAAa,eAAevB,KAAKQ,KAC1C,CACAgB,cACE,OAAO,cAAgB,eAAexB,KAAKQ,KAC7C,CACAiB,oBACE,OAAO,cAAgB,qBAAqBzB,KAAKQ,KACnD,CACAkB,aACE,OAAO,cAAgB,aAAc,mBAAqB1B,KAAKQ,KACjE,CACAmB,YACE,IAAIN,EAAQb,KAAKa,QACjB,OAAQA,EAAeA,EAAMO,MAAKb,GAAQA,GAAQA,EAAKc,OAAS,wBAAhD,IAClB,EAEFzB,OAAOC,IAAIW,IAAI,kBAAmB,uBAAwBC,GCtC1D,MAAM,EAA+Bb,OAAOC,IAAIV,IAAI,OAAQ,oBCC5D,ICEgB,I,MAAI,WAAeqB,IAAI,UAAWC,GACjDD,IAAI,kBAAmBV,ICFxB,qBAAqB,mBAAmB,KACtC,sBAAsB,mBAAmBwB,mBAAmB,CAC1DC,KAAM,4BACNC,MAAO,qBAAqB,mDAC5BC,WAAY,qBACZC,YAAY,GACX,QAAS,GAAG,G","sources":["webpack://@flarum/messages/webpack/bootstrap","webpack://@flarum/messages/webpack/runtime/compat get default export","webpack://@flarum/messages/webpack/runtime/define property getters","webpack://@flarum/messages/webpack/runtime/hasOwnProperty shorthand","webpack://@flarum/messages/webpack/runtime/make namespace object","webpack://@flarum/messages/external root \"flarum.reg.get('core', 'admin/app')\"","webpack://@flarum/messages/external root \"flarum.reg.get('core', 'common/Model')\"","webpack://@flarum/messages/external root \"flarum.reg.get('core', 'common/utils/computed')\"","webpack://@flarum/messages/external root \"flarum.reg.get('core', 'common/utils/string')\"","webpack://@flarum/messages/./src/common/models/DialogMessage.ts","webpack://@flarum/messages/external root \"flarum.reg.get('core', 'common/app')\"","webpack://@flarum/messages/./src/common/models/Dialog.ts","webpack://@flarum/messages/external root \"flarum.reg.get('core', 'common/extenders')\"","webpack://@flarum/messages/./src/admin/extend.ts","webpack://@flarum/messages/./src/common/extend.ts","webpack://@flarum/messages/./src/admin/index.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'admin/app');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/Model');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/utils/computed');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/utils/string');","import Model from 'flarum/common/Model';\nimport computed from 'flarum/common/utils/computed';\nimport { getPlainContent } from 'flarum/common/utils/string';\nexport default class DialogMessage extends Model {\n content() {\n return Model.attribute('content').call(this);\n }\n contentHtml() {\n return Model.attribute('contentHtml').call(this);\n }\n renderFailed() {\n return Model.attribute('renderFailed').call(this);\n }\n contentPlain() {\n return computed('contentHtml', content => {\n if (typeof content === 'string') {\n return getPlainContent(content);\n }\n return content;\n }).call(this);\n }\n createdAt() {\n return Model.attribute('createdAt', Model.transformDate).call(this);\n }\n dialog() {\n return Model.hasOne('dialog').call(this);\n }\n user() {\n return Model.hasOne('user').call(this);\n }\n}\nflarum.reg.add('flarum-messages', 'common/models/DialogMessage', DialogMessage);","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/app');","import Model from 'flarum/common/Model';\nimport app from 'flarum/common/app';\nexport default class Dialog extends Model {\n title() {\n return Model.attribute('title').call(this);\n }\n type() {\n return Model.attribute('type').call(this);\n }\n lastMessageAt() {\n return Model.attribute('lastMessageAt', Model.transformDate).call(this);\n }\n createdAt() {\n return Model.attribute('createdAt', Model.transformDate).call(this);\n }\n users() {\n return Model.hasMany('users').call(this);\n }\n firstMessage() {\n return Model.hasOne('firstMessage').call(this);\n }\n lastMessage() {\n return Model.hasOne('lastMessage').call(this);\n }\n unreadCount() {\n return Model.attribute('unreadCount').call(this);\n }\n lastReadMessageId() {\n return Model.attribute('lastReadMessageId').call(this);\n }\n lastReadAt() {\n return Model.attribute('lastReadAt', Model.transformDate).call(this);\n }\n recipient() {\n let users = this.users();\n return !users ? null : users.find(user => user && user.id() !== app.session.user.id());\n }\n}\nflarum.reg.add('flarum-messages', 'common/models/Dialog', Dialog);","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/extenders');","import commonExtend from '../common/extend';\nexport default [...commonExtend\n\n// Add your admin extenders here\n];","import DialogMessage from './models/DialogMessage';\nimport Dialog from './models/Dialog';\nimport Extend from 'flarum/common/extenders';\nexport default [new Extend.Store().add('dialogs', Dialog) //\n.add('dialog-messages', DialogMessage) //\n];","import app from 'flarum/admin/app';\nexport { default as extend } from './extend';\napp.initializers.add('flarum-messages', () => {\n app.extensionData.for('flarum-messages').registerPermission({\n icon: 'fas fa-envelope-open-text',\n label: app.translator.trans('flarum-messages.admin.permissions.send_messages'),\n permission: 'dialog.sendMessage',\n allowGuest: false\n }, 'start', 98);\n});"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","flarum","reg","DialogMessage","content","this","contentHtml","renderFailed","contentPlain","getPlainContent","createdAt","dialog","user","add","Dialog","title","type","lastMessageAt","users","firstMessage","lastMessage","unreadCount","lastReadMessageId","lastReadAt","recipient","find","id","registerPermission","icon","label","permission","allowGuest"],"sourceRoot":""}
\ No newline at end of file
+{"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,CAAM,ECLdF,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,IAE1E,ECNDR,EAAwB,CAACc,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFf,EAAyBM,IACH,oBAAXa,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeL,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeL,EAAS,aAAc,CAAEe,OAAO,GAAO,G,qDCL9D,MAAM,EAA+BC,OAAOC,IAAIV,IAAI,OAAQ,a,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,oB,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,gB,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,yB,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,uBCG7C,MAAMW,UAAsB,KACzCC,UACE,OAAO,cAAgB,WAAWP,KAAKQ,KACzC,CACAC,cACE,OAAO,cAAgB,eAAeT,KAAKQ,KAC7C,CACAE,eACE,OAAO,cAAgB,gBAAgBV,KAAKQ,KAC9C,CACAG,eACE,OAAO,IAAS,eAAeJ,GACN,iBAAZA,GACF,IAAAK,iBAAgBL,GAElBA,IACNP,KAAKQ,KACV,CACAK,YACE,OAAO,cAAgB,YAAa,mBAAqBb,KAAKQ,KAChE,CACAM,SACE,OAAO,WAAa,UAAUd,KAAKQ,KACrC,CACAO,OACE,OAAO,WAAa,QAAQf,KAAKQ,KACnC,EAEFJ,OAAOC,IAAIW,IAAI,kBAAmB,8BAA+BV,GC/BjE,MAAM,EAA+BF,OAAOC,IAAIV,IAAI,OAAQ,c,aCE7C,MAAMsB,UAAe,KAClCC,QACE,OAAO,cAAgB,SAASlB,KAAKQ,KACvC,CACAW,OACE,OAAO,cAAgB,QAAQnB,KAAKQ,KACtC,CACAY,gBACE,OAAO,cAAgB,gBAAiB,mBAAqBpB,KAAKQ,KACpE,CACAK,YACE,OAAO,cAAgB,YAAa,mBAAqBb,KAAKQ,KAChE,CACAa,QACE,OAAO,YAAc,SAASrB,KAAKQ,KACrC,CACAc,eACE,OAAO,WAAa,gBAAgBtB,KAAKQ,KAC3C,CACAe,cACE,OAAO,WAAa,eAAevB,KAAKQ,KAC1C,CACAgB,cACE,OAAO,cAAgB,eAAexB,KAAKQ,KAC7C,CACAiB,oBACE,OAAO,cAAgB,qBAAqBzB,KAAKQ,KACnD,CACAkB,aACE,OAAO,cAAgB,aAAc,mBAAqB1B,KAAKQ,KACjE,CACAmB,YACE,IAAIN,EAAQb,KAAKa,QACjB,OAAQA,EAAeA,EAAMO,MAAKb,GAAQA,GAAQA,EAAKc,OAAS,wBAAhD,IAClB,EAEFzB,OAAOC,IAAIW,IAAI,kBAAmB,uBAAwBC,GCnC1D,MCAA,IDAgB,IAAI,YAAeD,IAAI,UAAWC,GACjDD,IAAI,kBAAmBV,ICDS,IAAI,YAAewB,YAAW,KAAM,CACnEC,KAAM,4BACNC,MAAO,qBAAqB,mDAC5BF,WAAY,qBACZG,YAAY,KACV,QAAS,KCNb,qBAAqB,mBAAmB,Q","sources":["webpack://@flarum/messages/webpack/bootstrap","webpack://@flarum/messages/webpack/runtime/compat get default export","webpack://@flarum/messages/webpack/runtime/define property getters","webpack://@flarum/messages/webpack/runtime/hasOwnProperty shorthand","webpack://@flarum/messages/webpack/runtime/make namespace object","webpack://@flarum/messages/external root \"flarum.reg.get('core', 'admin/app')\"","webpack://@flarum/messages/external root \"flarum.reg.get('core', 'common/extenders')\"","webpack://@flarum/messages/external root \"flarum.reg.get('core', 'common/Model')\"","webpack://@flarum/messages/external root \"flarum.reg.get('core', 'common/utils/computed')\"","webpack://@flarum/messages/external root \"flarum.reg.get('core', 'common/utils/string')\"","webpack://@flarum/messages/./src/common/models/DialogMessage.ts","webpack://@flarum/messages/external root \"flarum.reg.get('core', 'common/app')\"","webpack://@flarum/messages/./src/common/models/Dialog.ts","webpack://@flarum/messages/./src/common/extend.ts","webpack://@flarum/messages/./src/admin/extend.ts","webpack://@flarum/messages/./src/admin/index.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'admin/app');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/extenders');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/Model');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/utils/computed');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/utils/string');","import Model from 'flarum/common/Model';\nimport computed from 'flarum/common/utils/computed';\nimport { getPlainContent } from 'flarum/common/utils/string';\nexport default class DialogMessage extends Model {\n content() {\n return Model.attribute('content').call(this);\n }\n contentHtml() {\n return Model.attribute('contentHtml').call(this);\n }\n renderFailed() {\n return Model.attribute('renderFailed').call(this);\n }\n contentPlain() {\n return computed('contentHtml', content => {\n if (typeof content === 'string') {\n return getPlainContent(content);\n }\n return content;\n }).call(this);\n }\n createdAt() {\n return Model.attribute('createdAt', Model.transformDate).call(this);\n }\n dialog() {\n return Model.hasOne('dialog').call(this);\n }\n user() {\n return Model.hasOne('user').call(this);\n }\n}\nflarum.reg.add('flarum-messages', 'common/models/DialogMessage', DialogMessage);","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/app');","import Model from 'flarum/common/Model';\nimport app from 'flarum/common/app';\nexport default class Dialog extends Model {\n title() {\n return Model.attribute('title').call(this);\n }\n type() {\n return Model.attribute('type').call(this);\n }\n lastMessageAt() {\n return Model.attribute('lastMessageAt', Model.transformDate).call(this);\n }\n createdAt() {\n return Model.attribute('createdAt', Model.transformDate).call(this);\n }\n users() {\n return Model.hasMany('users').call(this);\n }\n firstMessage() {\n return Model.hasOne('firstMessage').call(this);\n }\n lastMessage() {\n return Model.hasOne('lastMessage').call(this);\n }\n unreadCount() {\n return Model.attribute('unreadCount').call(this);\n }\n lastReadMessageId() {\n return Model.attribute('lastReadMessageId').call(this);\n }\n lastReadAt() {\n return Model.attribute('lastReadAt', Model.transformDate).call(this);\n }\n recipient() {\n let users = this.users();\n return !users ? null : users.find(user => user && user.id() !== app.session.user.id());\n }\n}\nflarum.reg.add('flarum-messages', 'common/models/Dialog', Dialog);","import DialogMessage from './models/DialogMessage';\nimport Dialog from './models/Dialog';\nimport Extend from 'flarum/common/extenders';\nexport default [new Extend.Store().add('dialogs', Dialog) //\n.add('dialog-messages', DialogMessage) //\n];","import Extend from 'flarum/common/extenders';\nimport commonExtend from '../common/extend';\nimport app from 'flarum/admin/app';\nexport default [...commonExtend, new Extend.Admin().permission(() => ({\n icon: 'fas fa-envelope-open-text',\n label: app.translator.trans('flarum-messages.admin.permissions.send_messages'),\n permission: 'dialog.sendMessage',\n allowGuest: false\n}), 'start', 98)];","import app from 'flarum/admin/app';\nexport { default as extend } from './extend';\napp.initializers.add('flarum-messages', () => {\n //\n});"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","flarum","reg","DialogMessage","content","this","contentHtml","renderFailed","contentPlain","getPlainContent","createdAt","dialog","user","add","Dialog","title","type","lastMessageAt","users","firstMessage","lastMessage","unreadCount","lastReadMessageId","lastReadAt","recipient","find","id","permission","icon","label","allowGuest"],"sourceRoot":""}
\ No newline at end of file