From d63cd16f15cbc458325d5161ffd50e59248aab81 Mon Sep 17 00:00:00 2001 From: flarum-bot Date: Mon, 20 Dec 2021 16:33:35 +0000 Subject: [PATCH] Bundled output for commit 7453bc338abd96e3ca8202742d707fbb0ce949fa Includes transpiled JS/TS. [skip ci] --- extensions/suspend/js/dist/forum.js | 2 +- extensions/suspend/js/dist/forum.js.map | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/suspend/js/dist/forum.js b/extensions/suspend/js/dist/forum.js index d52a2522a..a6d5dd47f 100644 --- a/extensions/suspend/js/dist/forum.js +++ b/extensions/suspend/js/dist/forum.js @@ -1,2 +1,2 @@ -module.exports=function(t){var e={};function n(s){if(e[s])return e[s].exports;var r=e[s]={i:s,l:!1,exports:{}};return t[s].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,s){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:s})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var s=Object.create(null);if(n.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(s,r,function(e){return t[e]}.bind(null,r));return s},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=19)}([function(t,e){t.exports=flarum.core.compat["forum/app"]},function(t,e){t.exports=flarum.core.compat.app},function(t,e){t.exports=flarum.core.compat.Model},function(t,e){t.exports=flarum.core.compat["models/User"]},function(t,e){t.exports=flarum.core.compat["utils/Stream"]},function(t,e){t.exports=flarum.core.compat["components/Button"]},function(t,e){t.exports=flarum.core.compat["components/Notification"]},function(t,e){t.exports=flarum.core.compat["utils/withAttr"]},function(t,e,n){t.exports=function(){"use strict";var t=6e4,e=36e5,n="millisecond",s="second",r="minute",a="hour",i="day",o="week",u="month",c="quarter",l="year",f="date",d="Invalid Date",m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,p=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,h={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},$=function(t,e,n){var s=String(t);return!s||s.length>=e?t:""+Array(e+1-s.length).join(n)+t},y={s:$,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),s=Math.floor(n/60),r=n%60;return(e<=0?"+":"-")+$(s,2,"0")+":"+$(r,2,"0")},m:function t(e,n){if(e.date()n&&(n=null),n&&(a=9999===n.getFullYear()?"indefinitely":"limited"),this.status=D()(a),this.reason=D()(s),this.message=D()(r),this.daysRemaining=D()("limited"===a&&1-dayjs().diff(n,"days"))},n.className=function(){return"SuspendUserModal Modal--medium"},n.title=function(){return M.a.translator.trans("flarum-suspend.forum.suspend_user.title",{user:this.attrs.user})},n.content=function(){return m("div",{className:"Modal-body"},m("div",{className:"Form"},m("div",{className:"Form-group"},m("label",null,M.a.translator.trans("flarum-suspend.forum.suspend_user.status_heading")),m("div",null,this.formItems().toArray())),m("div",{className:"Form-group"},m(c.a,{className:"Button Button--primary",loading:this.loading,type:"submit"},M.a.translator.trans("flarum-suspend.forum.suspend_user.submit_button")))))},n.radioItems=function(){var t=this,e=new T.a;return e.add("not-suspended",m("label",{className:"checkbox"},m("input",{type:"radio",name:"status",checked:!this.status(),value:"",onclick:O()("value",this.status)}),M.a.translator.trans("flarum-suspend.forum.suspend_user.not_suspended_label")),100),e.add("indefinitely",m("label",{className:"checkbox"},m("input",{type:"radio",name:"status",checked:"indefinitely"===this.status(),value:"indefinitely",onclick:O()("value",this.status)}),M.a.translator.trans("flarum-suspend.forum.suspend_user.indefinitely_label")),90),e.add("time-suspension",m("label",{className:"checkbox SuspendUserModal-days"},m("input",{type:"radio",name:"status",checked:"limited"===this.status(),value:"limited",onclick:function(e){t.status(e.target.value),m.redraw.sync(),t.$(".SuspendUserModal-days-input input").select(),e.redraw=!1}}),M.a.translator.trans("flarum-suspend.forum.suspend_user.limited_time_label"),"limited"===this.status()&&m("div",{className:"SuspendUserModal-days-input"},m("input",{type:"number",min:"0",value:this.daysRemaining(),oninput:O()("value",this.daysRemaining),className:"FormControl"}),M.a.translator.trans("flarum-suspend.forum.suspend_user.limited_time_days_text"))),80),e},n.formItems=function(){var t=new T.a;return t.add("radioItems",m("div",{className:"Form-group"},this.radioItems().toArray()),100),t.add("reason",m("div",{className:"Form-group"},m("label",null,M.a.translator.trans("flarum-suspend.forum.suspend_user.reason"),m("textarea",{className:"FormControl",bidi:this.reason,placeholder:M.a.translator.trans("flarum-suspend.forum.suspend_user.placeholder_optional"),rows:"2"}))),90),t.add("message",m("div",{className:"Form-group"},m("label",null,M.a.translator.trans("flarum-suspend.forum.suspend_user.display_message"),m("textarea",{className:"FormControl",bidi:this.message,placeholder:M.a.translator.trans("flarum-suspend.forum.suspend_user.placeholder_optional"),rows:"2"}))),80),t},n.onsubmit=function(t){var e=this;t.preventDefault(),this.loading=!0;var n=null;switch(this.status()){case"indefinitely":n=new Date("2038-01-01");break;case"limited":n=dayjs().add(this.daysRemaining(),"days").toDate()}this.attrs.user.save({suspendedUntil:n,suspendReason:this.reason(),suspendMessage:this.message()}).then((function(){return e.hide()}),this.loaded.bind(this))},e}(_.a),I=n(6),F=n.n(I),H=function(t){function e(){return t.apply(this,arguments)||this}g(e,t);var n=e.prototype;return n.icon=function(){return"fas fa-ban"},n.href=function(){return M.a.route.user(this.attrs.notification.subject())},n.content=function(){var t=this.attrs.notification,e=t.content(),n=dayjs(e).from(t.createdAt(),!0);return Y(e)?M.a.translator.trans("flarum-suspend.forum.notifications.user_suspended_indefinite_text"):M.a.translator.trans("flarum-suspend.forum.notifications.user_suspended_text",{timeReadable:n})},e}(F.a),A=function(t){function e(){return t.apply(this,arguments)||this}g(e,t);var n=e.prototype;return n.icon=function(){return"fas fa-ban"},n.href=function(){return M.a.route.user(this.attrs.notification.subject())},n.content=function(){this.attrs.notification;return M.a.translator.trans("flarum-suspend.forum.notifications.user_unsuspended_text")},e}(F.a),L=n(15),W=n.n(L),B=n(16),R=n.n(B),P=n(17),z=n.n(P),Z=function(t){function e(){return t.apply(this,arguments)||this}g(e,t);var n=e.prototype;return n.oninit=function(e){t.prototype.oninit.call(this,e),this.message=this.attrs.message,this.until=this.attrs.until},n.className=function(){return"SuspensionInfoModal Modal"},n.title=function(){return M.a.translator.trans("flarum-suspend.forum.suspension_info.title")},n.content=function(){var t=Y(new Date(this.until))?M.a.translator.trans("flarum-suspend.forum.suspension_info.indefinite"):M.a.translator.trans("flarum-suspend.forum.suspension_info.limited",{date:z()(this.until)});return m("div",{className:"Modal-body"},m("div",{className:"Form Form--centered"},m("p",{className:"helpText"},this.message),m("p",{className:"helpText"},t),m("div",{className:"Form-group"},m(R.a,{className:"Button Button--primary Button--block",onclick:this.hide.bind(this)},M.a.translator.trans("flarum-suspend.forum.suspension_info.dismiss_button")))))},n.hide=function(){localStorage.setItem("flarum-suspend.acknowledge-suspension",this.attrs.until.getTime()),this.attrs.state.close()},e}(W.a),J=function(){return setTimeout((function(){if(M.a.session.user){var t=M.a.session.user.suspendMessage(),e=M.a.session.user.suspendedUntil(),n=localStorage.getItem("flarum-suspend.acknowledge-suspension")===e.getTime().toString();t&&!n?M.a.modal.show(Z,{message:t,until:e}):!e&&localStorage.getItem("flarum-suspend.acknowledge-suspension")&&localStorage.removeItem("flarum-suspend.acknowledge-suspension")}}),0)},V={"suspend/components/suspendUserModal":j,"suspend/components/suspensionInfoModal":Z,"suspend/components/UserSuspendedNotification":H,"suspend/components/UserUnsuspendedNotification":A,"suspend/checkForSuspension":J},q=n(18);a.a.initializers.add("flarum-suspend",(function(){a.a.notificationComponents.userSuspended=H,a.a.notificationComponents.userUnsuspended=A,$.a.prototype.canSuspend=p.a.attribute("canSuspend"),$.a.prototype.suspendedUntil=p.a.attribute("suspendedUntil",p.a.transformDate),$.a.prototype.suspendReason=p.a.attribute("suspendReason"),$.a.prototype.suspendMessage=p.a.attribute("suspendMessage"),Object(s.extend)(o.a,"moderationControls",(function(t,e){e.canSuspend()&&t.add("suspend",c.a.component({icon:"fas fa-ban",onclick:function(){return a.a.modal.show(j,{user:e})}},a.a.translator.trans("flarum-suspend.forum.user_controls.suspend_button")))})),Object(s.extend)($.a.prototype,"badges",(function(t){var e=this.suspendedUntil();new Date=e?t:""+Array(e+1-s.length).join(n)+t},y={s:$,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),s=Math.floor(n/60),r=n%60;return(e<=0?"+":"-")+$(s,2,"0")+":"+$(r,2,"0")},m:function t(e,n){if(e.date()n&&(n=null),n&&(i=9999===n.getFullYear()?"indefinitely":"limited"),this.status=D()(i),this.reason=D()(s),this.message=D()(r),this.daysRemaining=D()("limited"===i&&1-dayjs().diff(n,"days"))},n.className=function(){return"SuspendUserModal Modal--medium"},n.title=function(){return M.a.translator.trans("flarum-suspend.forum.suspend_user.title",{user:this.attrs.user})},n.content=function(){return m("div",{className:"Modal-body"},m("div",{className:"Form"},m("div",{className:"Form-group"},m("label",null,M.a.translator.trans("flarum-suspend.forum.suspend_user.status_heading")),m("div",null,this.formItems().toArray())),m("div",{className:"Form-group"},m(c.a,{className:"Button Button--primary",loading:this.loading,type:"submit"},M.a.translator.trans("flarum-suspend.forum.suspend_user.submit_button")))))},n.radioItems=function(){var t=this,e=new T.a;return e.add("not-suspended",m("label",{className:"checkbox"},m("input",{type:"radio",name:"status",checked:!this.status(),value:"",onclick:O()("value",this.status)}),M.a.translator.trans("flarum-suspend.forum.suspend_user.not_suspended_label")),100),e.add("indefinitely",m("label",{className:"checkbox"},m("input",{type:"radio",name:"status",checked:"indefinitely"===this.status(),value:"indefinitely",onclick:O()("value",this.status)}),M.a.translator.trans("flarum-suspend.forum.suspend_user.indefinitely_label")),90),e.add("time-suspension",m("label",{className:"checkbox SuspendUserModal-days"},m("input",{type:"radio",name:"status",checked:"limited"===this.status(),value:"limited",onclick:function(e){t.status(e.target.value),m.redraw.sync(),t.$(".SuspendUserModal-days-input input").select(),e.redraw=!1}}),M.a.translator.trans("flarum-suspend.forum.suspend_user.limited_time_label"),"limited"===this.status()&&m("div",{className:"SuspendUserModal-days-input"},m("input",{type:"number",min:"0",value:this.daysRemaining(),oninput:O()("value",this.daysRemaining),className:"FormControl"}),M.a.translator.trans("flarum-suspend.forum.suspend_user.limited_time_days_text"))),80),e},n.formItems=function(){var t=new T.a;return t.add("radioItems",m("div",{className:"Form-group"},this.radioItems().toArray()),100),t.add("reason",m("div",{className:"Form-group"},m("label",null,M.a.translator.trans("flarum-suspend.forum.suspend_user.reason"),m("textarea",{className:"FormControl",bidi:this.reason,placeholder:M.a.translator.trans("flarum-suspend.forum.suspend_user.placeholder_optional"),rows:"2"}))),90),t.add("message",m("div",{className:"Form-group"},m("label",null,M.a.translator.trans("flarum-suspend.forum.suspend_user.display_message"),m("textarea",{className:"FormControl",bidi:this.message,placeholder:M.a.translator.trans("flarum-suspend.forum.suspend_user.placeholder_optional"),rows:"2"}))),80),t},n.onsubmit=function(t){var e=this;t.preventDefault(),this.loading=!0;var n=null;switch(this.status()){case"indefinitely":n=new Date("2038-01-01");break;case"limited":n=dayjs().add(this.daysRemaining(),"days").toDate()}this.attrs.user.save({suspendedUntil:n,suspendReason:this.reason(),suspendMessage:this.message()}).then((function(){return e.hide()}),this.loaded.bind(this))},e}(_.a),I=n(6),F=n.n(I),H=function(t){function e(){return t.apply(this,arguments)||this}g(e,t);var n=e.prototype;return n.icon=function(){return"fas fa-ban"},n.href=function(){return M.a.route.user(this.attrs.notification.subject())},n.content=function(){var t=this.attrs.notification,e=t.content(),n=dayjs(e).from(t.createdAt(),!0);return Y(e)?M.a.translator.trans("flarum-suspend.forum.notifications.user_suspended_indefinite_text"):M.a.translator.trans("flarum-suspend.forum.notifications.user_suspended_text",{timeReadable:n})},e}(F.a),A=function(t){function e(){return t.apply(this,arguments)||this}g(e,t);var n=e.prototype;return n.icon=function(){return"fas fa-ban"},n.href=function(){return M.a.route.user(this.attrs.notification.subject())},n.content=function(){this.attrs.notification;return M.a.translator.trans("flarum-suspend.forum.notifications.user_unsuspended_text")},e}(F.a),L=n(15),W=n.n(L),B=n(16),R=n.n(B),P=n(17),z=n.n(P),Z=function(t){function e(){return t.apply(this,arguments)||this}g(e,t);var n=e.prototype;return n.oninit=function(e){t.prototype.oninit.call(this,e),this.message=this.attrs.message,this.until=this.attrs.until},n.className=function(){return"SuspensionInfoModal Modal"},n.title=function(){return M.a.translator.trans("flarum-suspend.forum.suspension_info.title")},n.content=function(){var t=Y(new Date(this.until))?M.a.translator.trans("flarum-suspend.forum.suspension_info.indefinite"):M.a.translator.trans("flarum-suspend.forum.suspension_info.limited",{date:z()(this.until)});return m("div",{className:"Modal-body"},m("div",{className:"Form Form--centered"},m("p",{className:"helpText"},this.message),m("p",{className:"helpText"},t),m("div",{className:"Form-group"},m(R.a,{className:"Button Button--primary Button--block",onclick:this.hide.bind(this)},M.a.translator.trans("flarum-suspend.forum.suspension_info.dismiss_button")))))},n.hide=function(){localStorage.setItem("flarum-suspend.acknowledge-suspension",this.attrs.until.getTime()),this.attrs.state.close()},e}(W.a),J=function(){return setTimeout((function(){if(M.a.session.user){var t=M.a.session.user.suspendMessage(),e=M.a.session.user.suspendedUntil(),n=localStorage.getItem("flarum-suspend.acknowledge-suspension")===(null==e?void 0:e.getTime().toString());t&&!n?M.a.modal.show(Z,{message:t,until:e}):!e&&localStorage.getItem("flarum-suspend.acknowledge-suspension")&&localStorage.removeItem("flarum-suspend.acknowledge-suspension")}}),0)},V={"suspend/components/suspendUserModal":j,"suspend/components/suspensionInfoModal":Z,"suspend/components/UserSuspendedNotification":H,"suspend/components/UserUnsuspendedNotification":A,"suspend/checkForSuspension":J},q=n(18);i.a.initializers.add("flarum-suspend",(function(){i.a.notificationComponents.userSuspended=H,i.a.notificationComponents.userUnsuspended=A,$.a.prototype.canSuspend=p.a.attribute("canSuspend"),$.a.prototype.suspendedUntil=p.a.attribute("suspendedUntil",p.a.transformDate),$.a.prototype.suspendReason=p.a.attribute("suspendReason"),$.a.prototype.suspendMessage=p.a.attribute("suspendMessage"),Object(s.extend)(o.a,"moderationControls",(function(t,e){e.canSuspend()&&t.add("suspend",c.a.component({icon:"fas fa-ban",onclick:function(){return i.a.modal.show(j,{user:e})}},i.a.translator.trans("flarum-suspend.forum.user_controls.suspend_button")))})),Object(s.extend)($.a.prototype,"badges",(function(t){var e=this.suspendedUntil();new Date=e?t:\"\"+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date() until) until = null;\n\n if (until) {\n if (until.getFullYear() === 9999) status = 'indefinitely';\n else status = 'limited';\n }\n\n this.status = Stream(status);\n this.reason = Stream(reason);\n this.message = Stream(message);\n this.daysRemaining = Stream(status === 'limited' && -dayjs().diff(until, 'days') + 1);\n }\n\n className() {\n return 'SuspendUserModal Modal--medium';\n }\n\n title() {\n return app.translator.trans('flarum-suspend.forum.suspend_user.title', { user: this.attrs.user });\n }\n\n content() {\n return (\n
\n
\n
\n \n
{this.formItems().toArray()}
\n
\n\n
\n \n
\n
\n
\n );\n }\n\n radioItems() {\n const items = new ItemList();\n\n items.add(\n 'not-suspended',\n ,\n 100\n );\n\n items.add(\n 'indefinitely',\n ,\n 90\n );\n\n items.add(\n 'time-suspension',\n ,\n 80\n );\n\n return items;\n }\n\n formItems() {\n const items = new ItemList();\n\n items.add('radioItems',
{this.radioItems().toArray()}
, 100);\n\n items.add(\n 'reason',\n
\n \n
,\n 90\n );\n\n items.add(\n 'message',\n
\n \n
,\n 80\n );\n\n return items;\n }\n\n onsubmit(e) {\n e.preventDefault();\n\n this.loading = true;\n\n let suspendedUntil = null;\n switch (this.status()) {\n case 'indefinitely':\n suspendedUntil = getPermanentSuspensionDate();\n break;\n\n case 'limited':\n suspendedUntil = dayjs().add(this.daysRemaining(), 'days').toDate();\n break;\n\n default:\n // no default\n }\n\n this.attrs.user\n .save({ suspendedUntil, suspendReason: this.reason(), suspendMessage: this.message() })\n .then(() => this.hide(), this.loaded.bind(this));\n }\n}\n","import app from 'flarum/forum/app';\nimport Notification from 'flarum/components/Notification';\nimport { isPermanentSuspensionDate } from '../helpers/suspensionHelper';\n\nexport default class UserSuspendedNotification extends Notification {\n icon() {\n return 'fas fa-ban';\n }\n\n href() {\n return app.route.user(this.attrs.notification.subject());\n }\n\n content() {\n const notification = this.attrs.notification;\n const suspendedUntil = notification.content();\n const timeReadable = dayjs(suspendedUntil).from(notification.createdAt(), true);\n\n return isPermanentSuspensionDate(suspendedUntil)\n ? app.translator.trans('flarum-suspend.forum.notifications.user_suspended_indefinite_text')\n : app.translator.trans('flarum-suspend.forum.notifications.user_suspended_text', {\n timeReadable,\n });\n }\n}\n","import app from 'flarum/forum/app';\nimport Notification from 'flarum/components/Notification';\n\nexport default class UserUnsuspendedNotification extends Notification {\n icon() {\n return 'fas fa-ban';\n }\n\n href() {\n return app.route.user(this.attrs.notification.subject());\n }\n\n content() {\n const notification = this.attrs.notification;\n\n return app.translator.trans('flarum-suspend.forum.notifications.user_unsuspended_text');\n }\n}\n","import app from 'flarum/forum/app';\nimport Modal from 'flarum/common/components/Modal';\nimport Button from 'flarum/common/components/Button';\nimport fullTime from 'flarum/common/helpers/fullTime';\nimport { isPermanentSuspensionDate, localStorageKey } from '../helpers/suspensionHelper';\n\nexport default class SuspensionInfoModal extends Modal {\n oninit(vnode) {\n super.oninit(vnode);\n\n this.message = this.attrs.message;\n this.until = this.attrs.until;\n }\n\n className() {\n return 'SuspensionInfoModal Modal';\n }\n\n title() {\n return app.translator.trans('flarum-suspend.forum.suspension_info.title');\n }\n\n content() {\n const timespan = isPermanentSuspensionDate(new Date(this.until))\n ? app.translator.trans('flarum-suspend.forum.suspension_info.indefinite')\n : app.translator.trans('flarum-suspend.forum.suspension_info.limited', { date: fullTime(this.until) });\n\n return (\n
\n
\n

{this.message}

\n

{timespan}

\n\n
\n \n
\n
\n
\n );\n }\n\n hide() {\n localStorage.setItem(localStorageKey(), this.attrs.until.getTime());\n this.attrs.state.close();\n }\n}\n","import app from 'flarum/forum/app';\nimport SuspensionInfoModal from './components/SuspensionInfoModal';\nimport { localStorageKey } from './helpers/suspensionHelper';\n\nexport default function () {\n return setTimeout(() => {\n if (app.session.user) {\n const message = app.session.user.suspendMessage();\n const until = app.session.user.suspendedUntil();\n const alreadyDisplayed = localStorage.getItem(localStorageKey()) === until.getTime().toString();\n\n if (message && !alreadyDisplayed) {\n app.modal.show(SuspensionInfoModal, { message, until });\n } else if (!until && localStorage.getItem(localStorageKey())) {\n localStorage.removeItem(localStorageKey());\n }\n }\n }, 0);\n}\n","import SuspendUserModal from './components/SuspendUserModal';\nimport SuspensionInfoModal from './components/SuspensionInfoModal';\nimport UserSuspendedNotification from './components/UserSuspendedNotification';\nimport UserUnsuspendedNotification from './components/UserUnsuspendedNotification';\nimport checkForSuspension from './checkForSuspension';\n\nexport default {\n 'suspend/components/suspendUserModal': SuspendUserModal,\n 'suspend/components/suspensionInfoModal': SuspensionInfoModal,\n 'suspend/components/UserSuspendedNotification': UserSuspendedNotification,\n 'suspend/components/UserUnsuspendedNotification': UserUnsuspendedNotification,\n 'suspend/checkForSuspension': checkForSuspension,\n};\n","import { extend } from 'flarum/extend';\nimport app from 'flarum/app';\nimport UserControls from 'flarum/utils/UserControls';\nimport Button from 'flarum/components/Button';\nimport Badge from 'flarum/components/Badge';\nimport Model from 'flarum/Model';\nimport User from 'flarum/models/User';\n\nimport SuspendUserModal from './components/SuspendUserModal';\nimport UserSuspendedNotification from './components/UserSuspendedNotification';\nimport UserUnsuspendedNotification from './components/UserUnsuspendedNotification';\nimport checkForSuspension from './checkForSuspension';\n\napp.initializers.add('flarum-suspend', () => {\n app.notificationComponents.userSuspended = UserSuspendedNotification;\n app.notificationComponents.userUnsuspended = UserUnsuspendedNotification;\n\n User.prototype.canSuspend = Model.attribute('canSuspend');\n User.prototype.suspendedUntil = Model.attribute('suspendedUntil', Model.transformDate);\n User.prototype.suspendReason = Model.attribute('suspendReason');\n User.prototype.suspendMessage = Model.attribute('suspendMessage');\n\n extend(UserControls, 'moderationControls', (items, user) => {\n if (user.canSuspend()) {\n items.add(\n 'suspend',\n Button.component(\n {\n icon: 'fas fa-ban',\n onclick: () => app.modal.show(SuspendUserModal, { user }),\n },\n app.translator.trans('flarum-suspend.forum.user_controls.suspend_button')\n )\n );\n }\n });\n\n extend(User.prototype, 'badges', function (items) {\n const until = this.suspendedUntil();\n\n if (new Date() < until) {\n items.add(\n 'suspended',\n Badge.component({\n icon: 'fas fa-ban',\n type: 'suspended',\n label: app.translator.trans('flarum-suspend.forum.user_badge.suspended_tooltip'),\n })\n );\n }\n });\n\n checkForSuspension();\n});\n\n// Expose compat API\nimport suspendCompat from './compat';\nimport { compat } from '@flarum/core/forum';\n\nObject.assign(compat, suspendCompat);\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://@flarum/suspend/webpack/bootstrap","webpack://@flarum/suspend/external \"flarum.core.compat['forum/app']\"","webpack://@flarum/suspend/external \"flarum.core.compat['app']\"","webpack://@flarum/suspend/external \"flarum.core.compat['Model']\"","webpack://@flarum/suspend/external \"flarum.core.compat['models/User']\"","webpack://@flarum/suspend/external \"flarum.core.compat['utils/Stream']\"","webpack://@flarum/suspend/external \"flarum.core.compat['components/Button']\"","webpack://@flarum/suspend/external \"flarum.core.compat['components/Notification']\"","webpack://@flarum/suspend/external \"flarum.core.compat['utils/withAttr']\"","webpack://@flarum/suspend/./node_modules/dayjs/dayjs.min.js","webpack://@flarum/suspend/external \"flarum.core.compat['extend']\"","webpack://@flarum/suspend/external \"flarum.core.compat['common/utils/ItemList']\"","webpack://@flarum/suspend/external \"flarum.core.compat['utils/UserControls']\"","webpack://@flarum/suspend/external \"flarum.core.compat['components/Badge']\"","webpack://@flarum/suspend/external \"flarum.core.compat['components/Modal']\"","webpack://@flarum/suspend/./node_modules/dayjs/plugin/utc.js","webpack://@flarum/suspend/external \"flarum.core.compat['common/components/Modal']\"","webpack://@flarum/suspend/external \"flarum.core.compat['common/components/Button']\"","webpack://@flarum/suspend/external \"flarum.core.compat['common/helpers/fullTime']\"","webpack://@flarum/suspend/external \"flarum.core\"","webpack://@flarum/suspend/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@flarum/suspend/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@flarum/suspend/./src/forum/helpers/suspensionHelper.ts","webpack://@flarum/suspend/./src/forum/components/SuspendUserModal.js","webpack://@flarum/suspend/./src/forum/components/UserSuspendedNotification.js","webpack://@flarum/suspend/./src/forum/components/UserUnsuspendedNotification.js","webpack://@flarum/suspend/./src/forum/components/SuspensionInfoModal.js","webpack://@flarum/suspend/./src/forum/checkForSuspension.ts","webpack://@flarum/suspend/./src/forum/compat.js","webpack://@flarum/suspend/./src/forum/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","flarum","core","compat","e","u","a","f","h","$","y","M","weekdays","split","months","String","length","Array","join","g","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","w","D","ms","Q","toLowerCase","replace","v","_","S","args","arguments","O","locale","$L","utc","$u","x","$x","$offset","this","parse","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","Number","round","subtract","format","invalidDate","substr","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","A","mm","ss","SSS","Z","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","b","forEach","extend","$i","isDayjs","en","Ls","local","getUTCFullYear","getUTCMonth","getUTCDate","getUTCDay","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","$localOffset","isUTC","_setPrototypeOf","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","constructor","isPermanentSuspensionDate","dayjs","SuspendUserModal","oninit","vnode","until","attrs","user","suspendedUntil","reason","suspendReason","message","suspendMessage","status","Stream","daysRemaining","className","title","app","translator","trans","content","formItems","toArray","loading","type","radioItems","items","ItemList","checked","onclick","withAttr","target","redraw","sync","select","oninput","bidi","placeholder","rows","onsubmit","preventDefault","save","then","hide","loaded","Modal","UserSuspendedNotification","icon","href","route","notification","subject","timeReadable","from","createdAt","Notification","UserUnsuspendedNotification","SuspensionInfoModal","timespan","fullTime","localStorage","setItem","state","close","setTimeout","session","alreadyDisplayed","getItem","modal","show","removeItem","checkForSuspension","initializers","notificationComponents","userSuspended","userUnsuspended","User","canSuspend","Model","attribute","transformDate","UserControls","Button","component","Badge","label","assign","suspendCompat"],"mappings":"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","file":"forum.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 19);\n","module.exports = flarum.core.compat['forum/app'];","module.exports = flarum.core.compat['app'];","module.exports = flarum.core.compat['Model'];","module.exports = flarum.core.compat['models/User'];","module.exports = flarum.core.compat['utils/Stream'];","module.exports = flarum.core.compat['components/Button'];","module.exports = flarum.core.compat['components/Notification'];","module.exports = flarum.core.compat['utils/withAttr'];","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",$=\"Invalid Date\",l=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date() until) until = null;\n\n if (until) {\n if (until.getFullYear() === 9999) status = 'indefinitely';\n else status = 'limited';\n }\n\n this.status = Stream(status);\n this.reason = Stream(reason);\n this.message = Stream(message);\n this.daysRemaining = Stream(status === 'limited' && -dayjs().diff(until, 'days') + 1);\n }\n\n className() {\n return 'SuspendUserModal Modal--medium';\n }\n\n title() {\n return app.translator.trans('flarum-suspend.forum.suspend_user.title', { user: this.attrs.user });\n }\n\n content() {\n return (\n
\n
\n
\n \n
{this.formItems().toArray()}
\n
\n\n
\n \n
\n
\n
\n );\n }\n\n radioItems() {\n const items = new ItemList();\n\n items.add(\n 'not-suspended',\n ,\n 100\n );\n\n items.add(\n 'indefinitely',\n ,\n 90\n );\n\n items.add(\n 'time-suspension',\n ,\n 80\n );\n\n return items;\n }\n\n formItems() {\n const items = new ItemList();\n\n items.add('radioItems',
{this.radioItems().toArray()}
, 100);\n\n items.add(\n 'reason',\n
\n \n
,\n 90\n );\n\n items.add(\n 'message',\n
\n \n
,\n 80\n );\n\n return items;\n }\n\n onsubmit(e) {\n e.preventDefault();\n\n this.loading = true;\n\n let suspendedUntil = null;\n switch (this.status()) {\n case 'indefinitely':\n suspendedUntil = getPermanentSuspensionDate();\n break;\n\n case 'limited':\n suspendedUntil = dayjs().add(this.daysRemaining(), 'days').toDate();\n break;\n\n default:\n // no default\n }\n\n this.attrs.user\n .save({ suspendedUntil, suspendReason: this.reason(), suspendMessage: this.message() })\n .then(() => this.hide(), this.loaded.bind(this));\n }\n}\n","import app from 'flarum/forum/app';\nimport Notification from 'flarum/components/Notification';\nimport { isPermanentSuspensionDate } from '../helpers/suspensionHelper';\n\nexport default class UserSuspendedNotification extends Notification {\n icon() {\n return 'fas fa-ban';\n }\n\n href() {\n return app.route.user(this.attrs.notification.subject());\n }\n\n content() {\n const notification = this.attrs.notification;\n const suspendedUntil = notification.content();\n const timeReadable = dayjs(suspendedUntil).from(notification.createdAt(), true);\n\n return isPermanentSuspensionDate(suspendedUntil)\n ? app.translator.trans('flarum-suspend.forum.notifications.user_suspended_indefinite_text')\n : app.translator.trans('flarum-suspend.forum.notifications.user_suspended_text', {\n timeReadable,\n });\n }\n}\n","import app from 'flarum/forum/app';\nimport Notification from 'flarum/components/Notification';\n\nexport default class UserUnsuspendedNotification extends Notification {\n icon() {\n return 'fas fa-ban';\n }\n\n href() {\n return app.route.user(this.attrs.notification.subject());\n }\n\n content() {\n const notification = this.attrs.notification;\n\n return app.translator.trans('flarum-suspend.forum.notifications.user_unsuspended_text');\n }\n}\n","import app from 'flarum/forum/app';\nimport Modal from 'flarum/common/components/Modal';\nimport Button from 'flarum/common/components/Button';\nimport fullTime from 'flarum/common/helpers/fullTime';\nimport { isPermanentSuspensionDate, localStorageKey } from '../helpers/suspensionHelper';\n\nexport default class SuspensionInfoModal extends Modal {\n oninit(vnode) {\n super.oninit(vnode);\n\n this.message = this.attrs.message;\n this.until = this.attrs.until;\n }\n\n className() {\n return 'SuspensionInfoModal Modal';\n }\n\n title() {\n return app.translator.trans('flarum-suspend.forum.suspension_info.title');\n }\n\n content() {\n const timespan = isPermanentSuspensionDate(new Date(this.until))\n ? app.translator.trans('flarum-suspend.forum.suspension_info.indefinite')\n : app.translator.trans('flarum-suspend.forum.suspension_info.limited', { date: fullTime(this.until) });\n\n return (\n
\n
\n

{this.message}

\n

{timespan}

\n\n
\n \n
\n
\n
\n );\n }\n\n hide() {\n localStorage.setItem(localStorageKey(), this.attrs.until.getTime());\n this.attrs.state.close();\n }\n}\n","import app from 'flarum/forum/app';\nimport SuspensionInfoModal from './components/SuspensionInfoModal';\nimport { localStorageKey } from './helpers/suspensionHelper';\n\nexport default function () {\n return setTimeout(() => {\n if (app.session.user) {\n const message = app.session.user.suspendMessage();\n const until = app.session.user.suspendedUntil();\n const alreadyDisplayed = localStorage.getItem(localStorageKey()) === until?.getTime().toString();\n\n if (message && !alreadyDisplayed) {\n app.modal.show(SuspensionInfoModal, { message, until });\n } else if (!until && localStorage.getItem(localStorageKey())) {\n localStorage.removeItem(localStorageKey());\n }\n }\n }, 0);\n}\n","import SuspendUserModal from './components/SuspendUserModal';\nimport SuspensionInfoModal from './components/SuspensionInfoModal';\nimport UserSuspendedNotification from './components/UserSuspendedNotification';\nimport UserUnsuspendedNotification from './components/UserUnsuspendedNotification';\nimport checkForSuspension from './checkForSuspension';\n\nexport default {\n 'suspend/components/suspendUserModal': SuspendUserModal,\n 'suspend/components/suspensionInfoModal': SuspensionInfoModal,\n 'suspend/components/UserSuspendedNotification': UserSuspendedNotification,\n 'suspend/components/UserUnsuspendedNotification': UserUnsuspendedNotification,\n 'suspend/checkForSuspension': checkForSuspension,\n};\n","import { extend } from 'flarum/extend';\nimport app from 'flarum/app';\nimport UserControls from 'flarum/utils/UserControls';\nimport Button from 'flarum/components/Button';\nimport Badge from 'flarum/components/Badge';\nimport Model from 'flarum/Model';\nimport User from 'flarum/models/User';\n\nimport SuspendUserModal from './components/SuspendUserModal';\nimport UserSuspendedNotification from './components/UserSuspendedNotification';\nimport UserUnsuspendedNotification from './components/UserUnsuspendedNotification';\nimport checkForSuspension from './checkForSuspension';\n\napp.initializers.add('flarum-suspend', () => {\n app.notificationComponents.userSuspended = UserSuspendedNotification;\n app.notificationComponents.userUnsuspended = UserUnsuspendedNotification;\n\n User.prototype.canSuspend = Model.attribute('canSuspend');\n User.prototype.suspendedUntil = Model.attribute('suspendedUntil', Model.transformDate);\n User.prototype.suspendReason = Model.attribute('suspendReason');\n User.prototype.suspendMessage = Model.attribute('suspendMessage');\n\n extend(UserControls, 'moderationControls', (items, user) => {\n if (user.canSuspend()) {\n items.add(\n 'suspend',\n Button.component(\n {\n icon: 'fas fa-ban',\n onclick: () => app.modal.show(SuspendUserModal, { user }),\n },\n app.translator.trans('flarum-suspend.forum.user_controls.suspend_button')\n )\n );\n }\n });\n\n extend(User.prototype, 'badges', function (items) {\n const until = this.suspendedUntil();\n\n if (new Date() < until) {\n items.add(\n 'suspended',\n Badge.component({\n icon: 'fas fa-ban',\n type: 'suspended',\n label: app.translator.trans('flarum-suspend.forum.user_badge.suspended_tooltip'),\n })\n );\n }\n });\n\n checkForSuspension();\n});\n\n// Expose compat API\nimport suspendCompat from './compat';\nimport { compat } from '@flarum/core/forum';\n\nObject.assign(compat, suspendCompat);\n"],"sourceRoot":""} \ No newline at end of file