Browse Source

wip #887: more permissions rewamp

Rafał Pitoń 7 years ago
parent
commit
29a437f34f

+ 3 - 3
frontend/src/components/thread/moderation/thread/controls.js

@@ -142,7 +142,7 @@ export default class extends React.Component {
 
   getPinGloballyButton() {
     if (this.props.thread.weight === 2) return null;
-    if (this.props.thread.acl.can_pin !== 2) return null;
+    if (!this.props.thread.acl.can_pin_globally) return null;
 
     return (
       <li>
@@ -162,7 +162,7 @@ export default class extends React.Component {
 
   getPinLocallyButton() {
     if (this.props.thread.weight === 1) return null;
-    if (this.props.thread.acl.can_pin === 0) return null;
+    if (!this.props.thread.acl.can_pin) return null;
 
     return (
       <li>
@@ -182,7 +182,7 @@ export default class extends React.Component {
 
   getUnpinButton() {
     if (this.props.thread.weight === 0) return null;
-    if (this.props.thread.acl.can_pin === 0) return null;
+    if (!this.props.thread.acl.can_pin) return null;
 
     return (
       <li>

+ 1 - 0
frontend/src/components/thread/moderation/thread/is-visible.js

@@ -6,6 +6,7 @@ export default function(thread) {
     thread.acl.can_hide ||
     thread.acl.can_move ||
     thread.acl.can_pin ||
+    thread.acl.can_pin_globally ||
     thread.acl.can_unhide
   );
 }

+ 3 - 3
frontend/src/components/threads/moderation/controls.js

@@ -203,7 +203,7 @@ export default class extends React.Component {
   /* jshint ignore:end */
 
   getPinGloballyButton() {
-    if (this.props.moderation.can_pin !== 2) return null;
+    if (!this.props.moderation.can_pin_globally) return null;
 
     /* jshint ignore:start */
     return (
@@ -224,7 +224,7 @@ export default class extends React.Component {
   }
 
   getPinLocallyButton() {
-    if (this.props.moderation.can_pin === 0) return null;
+    if (!this.props.moderation.can_pin) return null;
 
     /* jshint ignore:start */
     return (
@@ -245,7 +245,7 @@ export default class extends React.Component {
   }
 
   getUnpinButton() {
-    if (this.props.moderation.can_pin === 0) return null;
+    if (!this.props.moderation.can_pin) return null;
 
     /* jshint ignore:start */
     return (

+ 6 - 0
frontend/src/components/threads/utils.js

@@ -84,6 +84,7 @@ export function getModerationActions(threads) {
     can_merge: 0,
     can_move: 0,
     can_pin: 0,
+    can_pin_globally: 0,
     can_unhide: 0
   };
 
@@ -116,6 +117,10 @@ export function getModerationActions(threads) {
       moderation.can_pin = thread.acl.can_pin;
     }
 
+    if (thread.acl.can_pin_globally > moderation.can_pin_globally) {
+      moderation.can_pin_globally = thread.acl.can_pin_globally;
+    }
+
     if (thread.acl.can_unhide > moderation.can_unhide) {
       moderation.can_unhide = thread.acl.can_unhide;
     }
@@ -128,6 +133,7 @@ export function getModerationActions(threads) {
       moderation.can_merge ||
       moderation.can_move ||
       moderation.can_pin ||
+      moderation.can_pin_globally ||
       moderation.can_unhide
     );
   });

+ 7 - 7
misago/static/misago/js/misago.js

@@ -12,13 +12,13 @@ api:e.profile.api.posts,emptyMessage:t,header:a,title:gettext("Posts")},e))}Obje
 className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Change username"))),this.getModalBody()))}}]),t}(m["default"]);a["default"]=M},{"../../../reducers/username-history":334,"../../../reducers/users":335,"../../../services/ajax":336,"../../../services/snackbar":347,"../../../services/store":348,"../../../utils/validators":364,"../../button":5,"../../form":52,"../../form-group":51,"../../modal-loader":57,"../../modal-message":58,react:"react"}],170:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../../button"),d=n(c),f=e("../../form"),p=n(f),m=e("../../form-group"),h=n(m),b=e("../../modal-loader"),v=n(b),y=e("../../modal-message"),g=n(y),_=e("../../yes-no-switch"),E=n(_),w=e("../../../index"),O=n(w),k=e("../../../services/ajax"),x=n(k),N=e("../../../services/polls"),j=n(N),P=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.countdown=function(){window.setTimeout(function(){a.state.countdown>1?(a.setState({countdown:a.state.countdown-1}),a.countdown()):a.state.confirm||a.setState({confirm:!0})},1e3)},a.state={isLoaded:!1,isLoading:!1,isDeleted:!1,error:null,countdown:5,confirm:!1,with_content:!1},a}return l(t,e),s(t,[{key:"componentDidMount",value:function(){var e=this;x["default"].get(this.props.profile.api["delete"]).then(function(){e.setState({isLoaded:!0}),e.countdown()},function(t){e.setState({isLoaded:!0,error:t.detail})})}},{key:"send",value:function(){return x["default"].post(this.props.profile.api["delete"],{with_content:this.state.with_content})}},{key:"handleSuccess",value:function(){j["default"].stop("user-profile"),this.state.with_content?this.setState({isDeleted:interpolate(gettext("%(username)s's account, threads, posts and other content has been deleted."),{username:this.props.profile.username},!0)}):this.setState({isDeleted:interpolate(gettext("%(username)s's account has been deleted and other content has been hidden."),{username:this.props.profile.username},!0)})}},{key:"getButtonLabel",value:function(){return this.state.confirm?interpolate(gettext("Delete %(username)s"),{username:this.props.profile.username},!0):interpolate(gettext("Please wait... (%(countdown)ss)"),{countdown:this.state.countdown},!0)}},{key:"getForm",value:function(){return u["default"].createElement("form",{onSubmit:this.handleSubmit},u["default"].createElement("div",{className:"modal-body"},u["default"].createElement(h["default"],{label:gettext("User content"),"for":"id_with_content"},u["default"].createElement(E["default"],{id:"id_with_content",disabled:this.state.isLoading,labelOn:gettext("Delete together with user's account"),labelOff:gettext("Hide after deleting user's account"),onChange:this.bindInput("with_content"),value:this.state.with_content}))),u["default"].createElement("div",{className:"modal-footer"},u["default"].createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},gettext("Cancel")),u["default"].createElement(d["default"],{className:"btn-danger",loading:this.state.isLoading,disabled:!this.state.confirm},this.getButtonLabel())))}},{key:"getDeletedBody",value:function(){return u["default"].createElement("div",{className:"modal-body"},u["default"].createElement("div",{className:"message-icon"},u["default"].createElement("span",{className:"material-icon"},"info_outline")),u["default"].createElement("div",{className:"message-body"},u["default"].createElement("p",{className:"lead"},this.state.isDeleted),u["default"].createElement("p",null,u["default"].createElement("a",{href:O["default"].get("USERS_LIST_URL")},gettext("Return to users list")))))}},{key:"getModalBody",value:function(){return this.state.error?u["default"].createElement(g["default"],{icon:"remove_circle_outline",message:this.state.error}):this.state.isLoaded?this.state.isDeleted?this.getDeletedBody():this.getForm():u["default"].createElement(v["default"],null)}},{key:"getClassName",value:function(){return this.state.error||this.state.isDeleted?"modal-dialog modal-message modal-delete-account":"modal-dialog modal-delete-account"}},{key:"render",value:function(){return u["default"].createElement("div",{className:this.getClassName(),role:"document"},u["default"].createElement("div",{className:"modal-content"},u["default"].createElement("div",{className:"modal-header"},u["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},u["default"].createElement("span",{"aria-hidden":"true"},"×")),u["default"].createElement("h4",{className:"modal-title"},gettext("Delete user account"))),this.getModalBody()))}}]),t}(p["default"]);a["default"]=P},{"../../../index":275,"../../../services/ajax":336,"../../../services/polls":345,"../../button":5,"../../form":52,"../../form-group":51,"../../modal-loader":57,"../../modal-message":58,"../../yes-no-switch":273,react:"react"}],171:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("react-redux"),d=e("./avatar-controls"),f=n(d),p=e("./change-username"),m=n(p),h=e("./delete-account"),b=n(h),v=e("../../../services/modal"),y=n(v),g=function(e){return{tick:e.tick,user:e.auth,profile:e.profile}},_=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.showAvatarDialog=function(){y["default"].show((0,c.connect)(g)(f["default"]))},n.showRenameDialog=function(){y["default"].show((0,c.connect)(g)(m["default"]))},n.showDeleteDialog=function(){y["default"].show((0,c.connect)(g)(b["default"]))},l=a,o(n,l)}return l(t,e),s(t,[{key:"getAvatarButton",value:function(){return this.props.profile.acl.can_moderate_avatar?u["default"].createElement("li",null,u["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.showAvatarDialog},u["default"].createElement("span",{className:"material-icon"},"portrait"),gettext("Avatar controls"))):null}},{key:"getRenameButton",value:function(){return this.props.profile.acl.can_rename?u["default"].createElement("li",null,u["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.showRenameDialog},u["default"].createElement("span",{className:"material-icon"},"credit_card"),gettext("Change username"))):null}},{key:"getDeleteButton",value:function(){return this.props.profile.acl.can_delete?u["default"].createElement("li",null,u["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.showDeleteDialog},u["default"].createElement("span",{className:"material-icon"},"clear"),gettext("Delete account"))):null}},{key:"render",value:function(){return u["default"].createElement("ul",{className:"dropdown-menu dropdown-menu-right stick-to-bottom",role:"menu"},this.getAvatarButton(),this.getRenameButton(),this.getDeleteButton())}}]),t}(u["default"].Component);a["default"]=_},{"../../../services/modal":342,"./avatar-controls":168,"./change-username":169,"./delete-account":170,react:"react","react-redux":"react-redux"}],172:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return c["default"].createElement("div",{className:"page-tabs hidden-md hidden-lg"},c["default"].createElement("div",{className:"container"},c["default"].createElement("ul",{className:"nav nav-pills",role:"menu"},e.pages.map(function(t){return c["default"].createElement(p["default"],{path:e.baseUrl+t.component+"/",key:t.component},c["default"].createElement(d.Link,{to:e.baseUrl+t.component+"/",onClick:e.hideNav},c["default"].createElement("span",{className:"material-icon"},t.icon),t.name))}))))}Object.defineProperty(a,"__esModule",{value:!0}),a.SideNav=void 0;var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.CompactNav=s;var u=e("react"),c=n(u),d=e("react-router"),f=e("../li"),p=n(f),m=e("./follow-button"),h=(n(m),e("../../index"));n(h),a.SideNav=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),i(t,[{key:"render",value:function(){var e=this;return c["default"].createElement("div",{className:"list-group nav-side"},this.props.pages.map(function(t){return c["default"].createElement(d.Link,{to:e.props.baseUrl+t.component+"/",className:"list-group-item",activeClassName:"active",key:t.component},c["default"].createElement("span",{className:"material-icon"},t.icon),t.name)}))}}]),t}(c["default"].Component)},{"../../index":275,"../li":53,"./follow-button":163,react:"react","react-router":"react-router"}],173:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return{isAuthenticated:e.auth.user.id===e.profile.id,tick:e.tick.tick,user:e.auth.user,users:e.users,posts:e.posts,profile:e.profile,profileDetails:e["profile-details"],"username-history":e["username-history"]}}function i(){var e=[];return L["default"].get("PROFILE_PAGES").forEach(function(t){e.push(Object.assign({},t,{path:L["default"].get("PROFILE").url+t.component+"/",component:(0,f.connect)(s)(H[t.component])}))}),e}Object.defineProperty(a,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.select=s,a.paths=i;var c=e("react"),d=n(c),f=e("react-redux"),p=e("./ban-details"),m=n(p),h=e("./details"),b=n(h),v=e("./feed"),y=e("./followers"),g=n(y),_=e("./follows"),E=n(_),w=e("./username-history"),O=n(w),k=e("./header"),x=n(k),N=e("./moderation/nav"),j=(n(N),e("./navs")),P=e("../avatar"),C=n(P),S=e("../with-dropdown"),M=n(S),T=e("../.."),L=n(T),R=e("../../reducers/profile"),A=e("../../services/polls"),I=n(A),D=e("../../services/store"),U=n(D),B=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.update=function(e){U["default"].dispatch((0,R.hydrate)(e))},a.startPolling(e.profile.api.index),a}return l(t,e),u(t,[{key:"startPolling",value:function(e){I["default"].start({poll:"user-profile",url:e,frequency:9e4,update:this.update})}},{key:"render",value:function(){var e=L["default"].get("PROFILE").url,t=L["default"].get("PROFILE_PAGES");return d["default"].createElement("div",{className:"page page-user-profile"},d["default"].createElement(x["default"],{baseUrl:e,pages:t,profile:this.props.profile,toggleNav:this.toggleNav,toggleModeration:this.toggleModeration,user:this.props.user}),d["default"].createElement("div",{className:"container"},d["default"].createElement("div",{className:"row"},d["default"].createElement("div",{className:"col-md-3 hidden-xs hidden-sm"},d["default"].createElement("div",{className:"profile-side-avatar"},d["default"].createElement(C["default"],{user:this.props.profile,size:"400"})),d["default"].createElement(j.SideNav,{baseUrl:e,pages:t,profile:this.props.profile})),d["default"].createElement("div",{className:"col-md-9"},this.props.children))))}}]),t}(M["default"]);a["default"]=B;var H={posts:v.Posts,threads:v.Threads,followers:g["default"],follows:E["default"],details:b["default"],"username-history":O["default"],"ban-details":m["default"]}},{"../..":275,"../../reducers/profile":327,"../../services/polls":345,"../../services/store":348,"../avatar":3,"../with-dropdown":272,"./ban-details":152,"./details":160,"./feed":161,"./followers":164,"./follows":165,"./header":166,"./moderation/nav":171,"./navs":172,"./username-history":174,react:"react","react-redux":"react-redux"}],174:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../button"),d=n(c),f=e("../quick-search"),p=n(f),m=e("../username-history/root"),h=n(m),b=e("../../index"),v=n(b),y=e("../../reducers/username-history"),g=e("../../services/ajax"),_=n(g),E=e("../../services/snackbar"),w=n(E),O=e("../../services/store"),k=n(O),x=e("../../services/page-title"),N=n(x),j=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.loadMore=function(){a.setState({isBusy:!0}),a.loadChanges(a.state.page+1,a.state.search)},a.search=function(e){a.setState({isLoaded:!1,isBusy:!0,search:e.target.value,count:0,more:0,page:1,pages:1}),a.loadChanges(1,e.target.value)},v["default"].has("PROFILE_NAME_HISTORY")?a.initWithPreloadedData(v["default"].pop("PROFILE_NAME_HISTORY")):a.initWithoutPreloadedData(),a}return l(t,e),s(t,[{key:"initWithPreloadedData",value:function(e){this.state={isLoaded:!0,isBusy:!1,search:"",count:e.count,more:e.more,page:e.page,pages:e.pages},k["default"].dispatch((0,y.hydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1,isBusy:!1,search:"",count:0,more:0,page:1,pages:1},this.loadChanges()}},{key:"loadChanges",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;_["default"].get(v["default"].get("USERNAME_CHANGES_API"),{user:this.props.profile.id,search:a,page:t||1},"search-username-history").then(function(a){1===t?k["default"].dispatch((0,y.hydrate)(a.results)):k["default"].dispatch((0,y.append)(a.results)),e.setState({isLoaded:!0,isBusy:!1,count:a.count,more:a.more,page:a.page,pages:a.pages})},function(e){w["default"].apiError(e)})}},{key:"componentDidMount",value:function(){N["default"].set({title:gettext("Username history"),parent:this.props.profile.username})}},{key:"getLabel",value:function(){if(this.state.isLoaded){if(this.state.search){var e=ngettext("Found %(changes)s username change.","Found %(changes)s username changes.",this.state.count);return interpolate(e,{changes:this.state.count},!0)}if(this.props.profile.id===this.props.user.id){var t=ngettext("Your username was changed %(changes)s time.","Your username was changed %(changes)s times.",this.state.count);return interpolate(t,{changes:this.state.count},!0)}var a=ngettext("%(username)s's username was changed %(changes)s time.","%(username)s's username was changed %(changes)s times.",this.state.count);return interpolate(a,{username:this.props.profile.username,changes:this.state.count},!0)}return gettext("Loading...")}},{key:"getEmptyMessage",value:function(){return this.state.search?gettext("Search returned no username changes matching specified criteria."):this.props.user.id===this.props.profile.id?gettext("No name changes have been recorded for your account."):interpolate(gettext("%(username)s's username was never changed."),{username:this.props.profile.username},!0)}},{key:"getMoreButton",value:function(){return this.state.more?u["default"].createElement("div",{className:"pager-more"},u["default"].createElement(d["default"],{className:"btn btn-default btn-outline",loading:this.state.isBusy,onClick:this.loadMore},interpolate(gettext("Show older (%(more)s)"),{more:this.state.more},!0))):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"profile-username-history"},u["default"].createElement("nav",{className:"toolbar"},u["default"].createElement("h3",{className:"toolbar-left"},this.getLabel()),u["default"].createElement(p["default"],{className:"toolbar-right",value:this.state.search,onChange:this.search,placeholder:gettext("Search history...")})),u["default"].createElement(h["default"],{isLoaded:this.state.isLoaded,emptyMessage:this.getEmptyMessage(),changes:this.props["username-history"]}),this.getMoreButton())}}]),t}(u["default"].Component);a["default"]=j},{"../../index":275,"../../reducers/username-history":334,"../../services/ajax":336,"../../services/page-title":344,"../../services/snackbar":347,"../../services/store":348,"../button":5,"../quick-search":175,"../username-history/root":253,react:"react"}],175:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getClassName",value:function(){return this.props.className?"form-search "+this.props.className:"form-search"}},{key:"render",value:function(){return u["default"].createElement("div",{className:this.getClassName()},u["default"].createElement("input",{type:"text",className:"form-control",value:this.props.value,onChange:this.props.onChange,placeholder:this.props.placeholder||gettext("Search...")}),u["default"].createElement("span",{className:"material-icon"},"search"))}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],176:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./loader"),d=n(c),f=e("./register.js"),p=n(f),m=e("../services/ajax"),h=n(m),b=e("../services/captcha"),v=n(b),y=e("../services/modal"),g=n(y),_=e("../services/snackbar"),E=n(_),w=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.showRegisterForm=function(){"closed"===misago.get("SETTINGS").account_activation?E["default"].info(gettext("New registrations are currently disabled.")):a.state.isLoaded?g["default"].show(u["default"].createElement(p["default"],{criteria:a.state.criteria})):(a.setState({isLoading:!0}),Promise.all([v["default"].load(),h["default"].get(misago.get("AUTH_CRITERIA_API"))]).then(function(e){a.setState({isLoading:!1,isLoaded:!0,criteria:e[1]}),g["default"].show(u["default"].createElement(p["default"],{criteria:e[1]}))},function(){a.setState({isLoading:!1}),E["default"].error(gettext("Registration is currently unavailable due to an error."))}))},a.state={isLoading:!1,isLoaded:!1,criteria:null},a}return l(t,e),s(t,[{key:"getClassName",value:function(){return this.props.className+(this.state.isLoading?" btn-loading":"")}},{key:"render",value:function(){return u["default"].createElement("button",{className:"btn "+this.getClassName(),disabled:this.state.isLoading,onClick:this.showRegisterForm,type:"button"},gettext("Register"),this.state.isLoading?u["default"].createElement(d["default"],null):null)}}]),t}(u["default"].Component);a["default"]=w},{"../services/ajax":336,"../services/captcha":338,"../services/modal":342,"../services/snackbar":347,"./loader":54,"./register.js":177,react:"react"}],177:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0}),a.RegisterComplete=a.RegisterForm=void 0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),c=e("react"),d=r(c),f=e("./button"),p=r(f),m=e("./form"),h=r(m),b=e("./form-group"),v=r(b),y=e("./password-strength"),g=r(y),_=e(".."),E=r(_),w=e("../services/ajax"),O=r(w),k=e("../services/auth"),x=r(k),N=e("../services/captcha"),j=r(N),P=e("../services/modal"),C=r(P),S=e("../services/snackbar"),M=r(S),T=e("../utils/banned-page"),L=r(T),R=e("../utils/validators"),A=n(R),I=a.RegisterForm=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e)),n=a.props.criteria,r=n.username,s=n.password,i=0;return s.forEach(function(e){"MinimumLengthValidator"===e.name&&(i=e.min_length)}),a.state={isLoading:!1,username:"",email:"",password:"",captcha:"",validators:{username:[A.usernameContent(),A.usernameMinLength(r.min_length),A.usernameMaxLength(r.max_length)],email:[A.email()],password:[A.passwordMinLength(i)],captcha:j["default"].validator()},errors:{}},a}return s(t,e),u(t,[{key:"clean",value:function(){return!!this.isValid()||(M["default"].error(gettext("Form contains errors.")),this.setState({errors:this.validate()}),!1)}},{key:"send",value:function(){return O["default"].post(E["default"].get("USERS_API"),{username:this.state.username,email:this.state.email,password:this.state.password,captcha:this.state.captcha})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){400===e.status?(this.setState({errors:Object.assign({},this.state.errors,e)}),e.__all__&&e.__all__.length>0?M["default"].error(e.__all__[0]):M["default"].error(gettext("Form contains errors."))):403===e.status&&e.ban?((0,L["default"])(e.ban),C["default"].hide()):M["default"].apiError(e)}},{key:"getLegalFootNote",value:function(){return E["default"].get("TERMS_OF_SERVICE_URL")?d["default"].createElement("p",{className:"legal-footnote"},d["default"].createElement("span",{className:"material-icon"},"info_outline"),d["default"].createElement("a",{href:E["default"].get("TERMS_OF_SERVICE_URL"),target:"_blank"},gettext("By registering you agree to site's terms and conditions."))):null}},{key:"render",value:function(){return d["default"].createElement("div",{className:"modal-dialog modal-register",role:"document"},d["default"].createElement("div",{className:"modal-content"},d["default"].createElement("div",{className:"modal-header"},d["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},d["default"].createElement("span",{"aria-hidden":"true"},"×")),d["default"].createElement("h4",{className:"modal-title"},gettext("Register"))),d["default"].createElement("form",{onSubmit:this.handleSubmit},d["default"].createElement("input",{type:"type",style:{display:"none"}}),d["default"].createElement("input",{type:"password",style:{display:"none"}}),d["default"].createElement("div",{className:"modal-body"},d["default"].createElement(v["default"],{label:gettext("Username"),"for":"id_username",validation:this.state.errors.username},d["default"].createElement("input",{type:"text",id:"id_username",className:"form-control","aria-describedby":"id_username_status",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username})),d["default"].createElement(v["default"],{label:gettext("E-mail"),"for":"id_email",validation:this.state.errors.email},d["default"].createElement("input",{type:"text",id:"id_email",className:"form-control","aria-describedby":"id_email_status",disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email})),d["default"].createElement(v["default"],{label:gettext("Password"),"for":"id_password",validation:this.state.errors.password,extra:d["default"].createElement(g["default"],{password:this.state.password,inputs:[this.state.username,this.state.email]})},d["default"].createElement("input",{type:"password",id:"id_password",className:"form-control","aria-describedby":"id_password_status",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password})),j["default"].component({form:this}),this.getLegalFootNote()),d["default"].createElement("div",{className:"modal-footer"},d["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",disabled:this.state.isLoading,type:"button"},gettext("Cancel")),d["default"].createElement(p["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Register account"))))))}}]),t}(h["default"]),D=a.RegisterComplete=function(e){function t(){return o(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return s(t,e),u(t,[{key:"getLead",value:function(){return"user"===this.props.activation?gettext("%(username)s, your account has been created but you need to activate it before you will be able to sign in."):"admin"===this.props.activation?gettext("%(username)s, your account has been created but board administrator will have to activate it before you will be able to sign in."):void 0}},{key:"getSubscript",value:function(){return"user"===this.props.activation?gettext("We have sent an e-mail to %(email)s with link that you have to click to activate your account."):"admin"===this.props.activation?gettext("We will send an e-mail to %(email)s when this takes place."):void 0}},{key:"render",value:function(){return d["default"].createElement("div",{className:"modal-dialog modal-message modal-register",role:"document"},d["default"].createElement("div",{className:"modal-content"},d["default"].createElement("div",{className:"modal-header"},d["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},d["default"].createElement("span",{"aria-hidden":"true"},"×")),d["default"].createElement("h4",{className:"modal-title"},gettext("Registration complete"))),d["default"].createElement("div",{className:"modal-body"},d["default"].createElement("div",{className:"message-icon"},d["default"].createElement("span",{className:"material-icon"},"info_outline")),d["default"].createElement("div",{className:"message-body"},d["default"].createElement("p",{className:"lead"},interpolate(this.getLead(),{username:this.props.username},!0)),d["default"].createElement("p",null,interpolate(this.getSubscript(),{email:this.props.email},!0)),d["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",type:"button"},gettext("Ok"))))))}}]),t}(d["default"].Component),U=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));
 return a.completeRegistration=function(e){"active"===e.activation?(C["default"].hide(),x["default"].signIn(e)):a.setState({complete:e})},a.state={complete:!1},a}return s(t,e),u(t,[{key:"render",value:function(){return this.state.complete?d["default"].createElement(D,{activation:this.state.complete.activation,email:this.state.complete.email,username:this.state.complete.username}):d["default"].createElement(I,i({callback:this.completeRegistration},this.props))}}]),t}(d["default"].Component);a["default"]=U},{"..":275,"../services/ajax":336,"../services/auth":337,"../services/captcha":338,"../services/modal":342,"../services/snackbar":347,"../utils/banned-page":350,"../utils/validators":364,"./button":5,"./form":52,"./form-group":51,"./password-strength":81,react:"react"}],178:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0}),a.LinkSent=a.RequestLinkForm=void 0;var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../index"),f=r(d),p=e("./button"),m=r(p),h=e("./form"),b=r(h),v=e("../services/ajax"),y=r(v),g=e("../services/snackbar"),_=r(g),E=e("../utils/validators"),w=n(E),O=e("../utils/banned-page"),k=r(O),x=a.RequestLinkForm=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.state={isLoading:!1,email:"",validators:{email:[w.email()]}},a}return s(t,e),i(t,[{key:"clean",value:function(){return!!this.isValid()||(_["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return y["default"].post(f["default"].get("SEND_ACTIVATION_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){["already_active","inactive_admin"].indexOf(e.code)>-1?_["default"].info(e.detail):403===e.status&&e.ban?(0,k["default"])(e.ban):_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-activation-link"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"text",className:"form-control",placeholder:gettext("Your e-mail address"),disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email}))),c["default"].createElement(m["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(b["default"]),N=a.LinkSent=function(e){function t(){return o(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return s(t,e),i(t,[{key:"getMessage",value:function(){return interpolate(gettext("Activation link was sent to %(email)s"),{email:this.props.user.email},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-activation-link well-done"},c["default"].createElement("div",{className:"done-message"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",null,this.getMessage())),c["default"].createElement("button",{className:"btn btn-primary btn-block",type:"button",onClick:this.props.callback},gettext("Request another link"))))}}]),t}(c["default"].Component),j=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.complete=function(e){a.setState({complete:e})},a.reset=function(){a.setState({complete:!1})},a.state={complete:!1},a}return s(t,e),i(t,[{key:"render",value:function(){return this.state.complete?c["default"].createElement(N,{user:this.state.complete,callback:this.reset}):c["default"].createElement(x,{callback:this.complete})}}]),t}(c["default"].Component);a["default"]=j},{"../index":275,"../services/ajax":336,"../services/snackbar":347,"../utils/banned-page":350,"../utils/validators":364,"./button":5,"./form":52,react:"react"}],179:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0}),a.AccountInactivePage=a.LinkSent=a.RequestResetForm=void 0;var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("react-dom"),f=r(d),p=e("../index"),m=r(p),h=e("./button"),b=r(h),v=e("./form"),y=r(v),g=e("../services/ajax"),_=r(g),E=e("../services/snackbar"),w=r(E),O=e("../utils/validators"),k=n(O),x=e("../utils/banned-page"),N=r(x),j=a.RequestResetForm=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.state={isLoading:!1,email:"",validators:{email:[k.email()]}},a}return s(t,e),i(t,[{key:"clean",value:function(){return!!this.isValid()||(w["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return _["default"].post(m["default"].get("SEND_PASSWORD_RESET_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){["inactive_user","inactive_admin"].indexOf(e.code)>-1?this.props.showInactivePage(e):403===e.status&&e.ban?(0,N["default"])(e.ban):w["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-password-reset"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"text",className:"form-control",placeholder:gettext("Your e-mail address"),disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email}))),c["default"].createElement(b["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(y["default"]),P=a.LinkSent=function(e){function t(){return o(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return s(t,e),i(t,[{key:"getMessage",value:function(){return interpolate(gettext("Reset password link was sent to %(email)s"),{email:this.props.user.email},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-password-reset well-done"},c["default"].createElement("div",{className:"done-message"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",null,this.getMessage())),c["default"].createElement("button",{type:"button",className:"btn btn-primary btn-block",onClick:this.props.callback},gettext("Request another link"))))}}]),t}(c["default"].Component),C=a.AccountInactivePage=function(e){function t(){return o(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return s(t,e),i(t,[{key:"getActivateButton",value:function(){return"inactive_user"===this.props.activation?c["default"].createElement("p",null,c["default"].createElement("a",{href:m["default"].get("REQUEST_ACTIVATION_URL")},gettext("Activate your account."))):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"page page-message page-message-info page-forgotten-password-inactive"},c["default"].createElement("div",{className:"container"},c["default"].createElement("div",{className:"message-panel"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"info_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},gettext("Your account is inactive.")),c["default"].createElement("p",null,this.props.message),this.getActivateButton()))))}}]),t}(c["default"].Component),S=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.complete=function(e){a.setState({complete:e})},a.reset=function(){a.setState({complete:!1})},a.state={complete:!1},a}return s(t,e),i(t,[{key:"showInactivePage",value:function(e){f["default"].render(c["default"].createElement(C,{activation:e.code,message:e.detail}),document.getElementById("page-mount"))}},{key:"render",value:function(){return this.state.complete?c["default"].createElement(P,{callback:this.reset,user:this.state.complete}):c["default"].createElement(j,{callback:this.complete,showInactivePage:this.showInactivePage})}}]),t}(c["default"].Component);a["default"]=S},{"../index":275,"../services/ajax":336,"../services/snackbar":347,"../utils/banned-page":350,"../utils/validators":364,"./button":5,"./form":52,react:"react","react-dom":"react-dom"}],180:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0}),a.PasswordChangedPage=a.ResetPasswordForm=void 0;var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("react-dom"),d=n(c),f=e("../index"),p=n(f),m=e("./button"),h=n(m),b=e("./form"),v=n(b),y=e("./sign-in.js"),g=n(y),_=e("../services/ajax"),E=n(_),w=e("../services/auth"),O=n(w),k=e("../services/modal"),x=n(k),N=e("../services/snackbar"),j=n(N),P=e("../utils/banned-page"),C=n(P),S=a.ResetPasswordForm=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.state={isLoading:!1,password:""},a}return l(t,e),s(t,[{key:"clean",value:function(){return!!this.state.password.trim().length||(j["default"].error(gettext("Enter new password.")),!1)}},{key:"send",value:function(){return E["default"].post(p["default"].get("CHANGE_PASSWORD_API"),{password:this.state.password})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){403===e.status&&e.ban?(0,C["default"])(e.ban):j["default"].apiError(e)}},{key:"render",value:function(){return u["default"].createElement("div",{className:"well well-form well-form-reset-password"},u["default"].createElement("form",{onSubmit:this.handleSubmit},u["default"].createElement("div",{className:"form-group"},u["default"].createElement("div",{className:"control-input"},u["default"].createElement("input",{type:"password",className:"form-control",placeholder:gettext("Enter new password"),disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),u["default"].createElement(h["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Change password"))))}}]),t}(v["default"]),M=a.PasswordChangedPage=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getMessage",value:function(){return interpolate(gettext("%(username)s, your password has been changed successfully."),{username:this.props.user.username},!0)}},{key:"showSignIn",value:function(){x["default"].show(g["default"])}},{key:"render",value:function(){return u["default"].createElement("div",{className:"page page-message page-message-success page-forgotten-password-changed"},u["default"].createElement("div",{className:"container"},u["default"].createElement("div",{className:"message-panel"},u["default"].createElement("div",{className:"message-icon"},u["default"].createElement("span",{className:"material-icon"},"check")),u["default"].createElement("div",{className:"message-body"},u["default"].createElement("p",{className:"lead"},this.getMessage()),u["default"].createElement("p",null,gettext("You will have to sign in using new password before continuing.")),u["default"].createElement("p",null,u["default"].createElement("button",{type:"button",className:"btn btn-primary",onClick:this.showSignIn},gettext("Sign in")))))))}}]),t}(u["default"].Component),T=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),c=0;c<s;c++)i[c]=arguments[c];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.complete=function(e){O["default"].softSignOut(),$('#hidden-login-form input[name="redirect_to"]').remove(),d["default"].render(u["default"].createElement(M,{user:e}),document.getElementById("page-mount"))},l=a,o(n,l)}return l(t,e),s(t,[{key:"render",value:function(){return u["default"].createElement(S,{callback:this.complete})}}]),t}(u["default"].Component);a["default"]=T},{"../index":275,"../services/ajax":336,"../services/auth":337,"../services/modal":342,"../services/snackbar":347,"../utils/banned-page":350,"./button":5,"./form":52,"./sign-in.js":189,react:"react","react-dom":"react-dom"}],181:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../.."),d=n(c),f=e("../form"),p=n(f),m=e("../../reducers/posts"),h=e("../../reducers/search"),b=e("../../reducers/users"),v=e("../../services/ajax"),y=n(v),g=e("../../services/snackbar"),_=n(g),E=e("../../services/store"),w=n(E),O=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onQueryChange=function(e){a.changeValue("query",e.target.value)},a.state={isLoading:!1,query:e.search.query},a}return l(t,e),s(t,[{key:"clean",value:function(){return!!this.state.query.trim().length||(_["default"].error(gettext("You have to enter search query.")),!1)}},{key:"send",value:function(){return w["default"].dispatch((0,h.update)({isLoading:!0})),y["default"].get(d["default"].get("SEARCH_API"),{q:this.state.query.trim()})}},{key:"handleSuccess",value:function(e){w["default"].dispatch((0,h.update)({query:this.state.query.trim(),isLoading:!1,providers:e})),e.forEach(function(e){"users"===e.id?w["default"].dispatch((0,b.hydrate)(e.results.results)):"threads"===e.id&&w["default"].dispatch((0,m.load)(e.results))})}},{key:"handleError",value:function(e){_["default"].apiError(e),w["default"].dispatch((0,h.update)({isLoading:!1}))}},{key:"render",value:function(){return u["default"].createElement("div",{className:"page-header-bg"},u["default"].createElement("div",{className:"page-header page-search-form"},u["default"].createElement("form",{onSubmit:this.handleSubmit},u["default"].createElement("div",{className:"container"},u["default"].createElement("div",{className:"row"},u["default"].createElement("div",{className:"col-xs-12 col-md-3"},u["default"].createElement("h1",null,gettext("Search"))),u["default"].createElement("div",{className:"col-xs-12 col-md-9"},u["default"].createElement("div",{className:"row xs-margin-top sm-margin-top"},u["default"].createElement("div",{className:"col-xs-12 col-sm-8 col-md-9"},u["default"].createElement("div",{className:"form-group"},u["default"].createElement("input",{className:"form-control",disabled:this.props.search.isLoading||this.state.isLoading,onChange:this.onQueryChange,type:"text",value:this.state.query}))),u["default"].createElement("div",{className:"col-xs-12 col-sm-4 col-md-3"},u["default"].createElement("button",{className:"btn btn-primary btn-block btn-outline",disabled:this.props.search.isLoading||this.state.isLoading},gettext("Search"))))))))))}}]),t}(p["default"]);a["default"]=O},{"../..":275,"../../reducers/posts":325,"../../reducers/search":328,"../../reducers/users":335,"../../services/ajax":336,"../../services/snackbar":347,"../../services/store":348,"../form":52,react:"react"}],182:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return{posts:e.posts,search:e.search,tick:e.tick.tick,user:e.auth.user,users:e.users}}Object.defineProperty(a,"__esModule",{value:!0}),a.select=r,a["default"]=function(e){return e.map(function(e){return{path:e.url,component:(0,o.connect)(r)(c[e.id]),provider:e}})};var o=e("react-redux"),l=e("./threads"),s=n(l),i=e("./users"),u=n(i),c={threads:s["default"],users:u["default"]}},{"./threads":185,"./users":187,"react-redux":"react-redux"}],183:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=null;if(e.search.providers.forEach(function(a){a.id===e.provider.id&&(t=a.time)}),null===t)return null;var a=gettext("Search took %(time)s s to complete");return l["default"].createElement("footer",{className:"search-footer"},l["default"].createElement("p",null,interpolate(a,{time:t},!0)))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return l["default"].createElement("div",{className:"page page-search"},l["default"].createElement(i["default"],{provider:e.provider,search:e.search}),l["default"].createElement("div",{className:"container"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-md-3"},l["default"].createElement(c["default"],{providers:e.search.providers})),l["default"].createElement("div",{className:"col-md-9"},e.children,l["default"].createElement(r,{provider:e.provider,search:e.search})))))},a.SearchTime=r;var o=e("react"),l=n(o),s=e("./form"),i=n(s),u=e("./sidenav"),c=n(u)},{"./form":181,"./sidenav":184,react:"react"}],184:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){if(!e.results)return null;var t=e.results.count;return t>1e6?t=Math.ceil(t/1e6)+"KK":t>1e3&&(t=Math.ceil(t/1e3)+"K"),l["default"].createElement("span",{className:"badge"},t)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return l["default"].createElement("div",{className:"list-group nav-side"},e.providers.map(function(e){return l["default"].createElement(s.Link,{activeClassName:"active",className:"list-group-item",key:e.id,to:e.url},l["default"].createElement("span",{className:"material-icon"},e.icon),e.name,l["default"].createElement(r,{results:e.results}))}))},a.Badge=r;var o=e("react"),l=n(o),s=e("react-router")},{react:"react","react-router":"react-router"}],185:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return e.posts&&e.posts.count?e.children:e.query.length?s["default"].createElement("p",{className:"lead"},gettext("No threads matching search query have been found.")):s["default"].createElement("p",{className:"lead"},gettext("Enter at least two characters to search threads."))}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],{provider:e.route.provider,search:e.search},s["default"].createElement(r,{query:e.search.query,posts:e.posts},s["default"].createElement(d["default"],o({provider:e.route.provider,query:e.search.query},e.posts))))},a.Blankslate=r;var l=e("react"),s=n(l),i=e("../page"),u=n(i),c=e("./results"),d=n(c)},{"../page":183,"./results":186,react:"react"}],186:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0}),a.LoadMore=void 0;var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a["default"]=function(e){return u["default"].createElement("div",null,u["default"].createElement(d["default"],{isReady:!0,posts:e.results}),u["default"].createElement(O,e))};var i=e("react"),u=n(i),c=e("../../post-feed"),d=n(c),f=e("../../button"),p=n(f),m=e("../../misago-markup"),h=(n(m),e("../../../reducers/posts")),b=e("../../../reducers/search"),v=e("../../../services/ajax"),y=n(v),g=e("../../../services/snackbar"),_=n(g),E=e("../../../services/store"),w=n(E),O=a.LoadMore=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){w["default"].dispatch((0,h.update)({isBusy:!0})),y["default"].get(n.props.provider.api,{q:n.props.query,page:n.props.next}).then(function(e){e.forEach(function(e){"threads"===e.id&&(w["default"].dispatch((0,h.append)(e.results)),w["default"].dispatch((0,b.updateProvider)(e)))}),w["default"].dispatch((0,h.update)({isBusy:!1}))},function(e){_["default"].apiError(e),w["default"].dispatch((0,h.update)({isBusy:!1}))})},l=a,o(n,l)}return l(t,e),s(t,[{key:"render",value:function(){return this.props.more?u["default"].createElement("div",{className:"pager-more"},u["default"].createElement(p["default"],{className:"btn btn-default btn-outline",loading:this.props.isBusy,onClick:this.onClick},gettext("Show more"))):null}}]),t}(u["default"].Component)},{"../../../reducers/posts":325,"../../../reducers/search":328,"../../../services/ajax":336,"../../../services/snackbar":347,"../../../services/store":348,"../../button":5,"../../misago-markup":56,"../../post-feed":100,react:"react"}],187:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return e.users.length?e.children:e.query.length?l["default"].createElement("p",{className:"lead"},gettext("No users matching search query have been found.")):l["default"].createElement("p",{className:"lead"},gettext("Enter at least two characters to search users."))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return l["default"].createElement(i["default"],{provider:e.route.provider,search:e.search},l["default"].createElement(r,{query:e.search.query,users:e.users},l["default"].createElement(c["default"],{cols:3,isReady:!0,users:e.users})))},a.Blankslate=r;var o=e("react"),l=n(o),s=e("../page"),i=n(s),u=e("../../users-list"),c=n(u)},{"../../users-list":257,"../page":183,react:"react"}],188:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){var t=e.icon;return t?c["default"].createElement("span",{className:"material-icon"},t):null}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.Icon=s;var u=e("react"),c=n(u),d=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.change=function(e){return function(){n.props.onChange({target:{value:e}})}},l=a,o(n,l)}return l(t,e),i(t,[{key:"getChoice",value:function(){var e=this,t=null;return this.props.choices.map(function(a){a.value===e.props.value&&(t=a)}),t}},{key:"getIcon",value:function(){return this.getChoice().icon}},{key:"getLabel",value:function(){return this.getChoice().label}},{key:"render",value:function(){var e=this;return c["default"].createElement("div",{className:"btn-group btn-select-group"},c["default"].createElement("button",{type:"button",className:"btn btn-select dropdown-toggle",id:this.props.id||null,"data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-describedby":this.props["aria-describedby"]||null,disabled:this.props.disabled||!1},c["default"].createElement(s,{icon:this.getIcon()}),this.getLabel()),c["default"].createElement("ul",{className:"dropdown-menu"},this.props.choices.map(function(t,a){return c["default"].createElement("li",{key:a},c["default"].createElement("button",{type:"button",className:"btn-link",onClick:e.change(t.value)},c["default"].createElement(s,{icon:t.icon}),t.label))})))}}]),t}(c["default"].Component);a["default"]=d},{react:"react"}],189:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../index"),d=n(c),f=e("./button"),p=n(f),m=e("./form"),h=n(m),b=e("../services/ajax"),v=n(b),y=e("../services/modal"),g=n(y),_=e("../services/snackbar"),E=n(_),w=e("../utils/banned-page"),O=n(w),k=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.state={isLoading:!1,showActivation:!1,username:"",password:"",validators:{username:[],password:[]}},a}return l(t,e),s(t,[{key:"clean",value:function(){return!!this.isValid()||(E["default"].error(gettext("Fill out both fields.")),!1)}},{key:"send",value:function(){return v["default"].post(d["default"].get("AUTH_API"),{username:this.state.username,password:this.state.password})}},{key:"handleSuccess",value:function(){var e=$("#hidden-login-form");e.append('<input type="text" name="username" />'),e.append('<input type="password" name="password" />'),e.find('input[type="hidden"]').val(v["default"].getCsrfToken()),e.find('input[name="redirect_to"]').val(window.location.pathname),e.find('input[name="username"]').val(this.state.username),e.find('input[name="password"]').val(this.state.password),e.submit(),this.setState({isLoading:!0})}},{key:"handleError",value:function(e){400===e.status?"inactive_admin"===e.code?E["default"].info(e.detail):"inactive_user"===e.code?(E["default"].info(e.detail),this.setState({showActivation:!0})):"banned"===e.code?((0,O["default"])(e.detail),g["default"].hide()):E["default"].error(e.detail):403===e.status&&e.ban?((0,O["default"])(e.ban),g["default"].hide()):E["default"].apiError(e)}},{key:"getActivationButton",value:function(){return this.state.showActivation?u["default"].createElement("a",{className:"btn btn-success btn-block",href:d["default"].get("REQUEST_ACTIVATION_URL")},gettext("Activate account")):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"modal-dialog modal-sm modal-sign-in",role:"document"},u["default"].createElement("div",{className:"modal-content"},u["default"].createElement("div",{className:"modal-header"},u["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},u["default"].createElement("span",{"aria-hidden":"true"},"×")),u["default"].createElement("h4",{className:"modal-title"},gettext("Sign in"))),u["default"].createElement("form",{onSubmit:this.handleSubmit},u["default"].createElement("div",{className:"modal-body"},u["default"].createElement("div",{className:"form-group"},u["default"].createElement("div",{
 className:"control-input"},u["default"].createElement("input",{className:"form-control input-lg",disabled:this.state.isLoading,id:"id_username",onChange:this.bindInput("username"),placeholder:gettext("Username or e-mail"),type:"text",value:this.state.username}))),u["default"].createElement("div",{className:"form-group"},u["default"].createElement("div",{className:"control-input"},u["default"].createElement("input",{className:"form-control input-lg",disabled:this.state.isLoading,id:"id_password",onChange:this.bindInput("password"),placeholder:gettext("Password"),type:"password",value:this.state.password})))),u["default"].createElement("div",{className:"modal-footer"},this.getActivationButton(),u["default"].createElement(p["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Sign in")),u["default"].createElement("a",{className:"btn btn-default btn-block",href:d["default"].get("FORGOTTEN_PASSWORD_URL")},gettext("Forgot password?"))))))}}]),t}(h["default"]);a["default"]=k},{"../index":275,"../services/ajax":336,"../services/modal":342,"../services/snackbar":347,"../utils/banned-page":350,"./button":5,"./form":52,react:"react"}],190:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return e.snackbar}Object.defineProperty(a,"__esModule",{value:!0}),a.Snackbar=void 0;var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.select=s;var u=e("react"),c=n(u),d={info:"alert-info",success:"alert-success",warning:"alert-warning",error:"alert-danger"};a.Snackbar=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),i(t,[{key:"getSnackbarClass",value:function(){var e="alerts-snackbar";return e+=this.props.isVisible?" in":" out"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getSnackbarClass()},c["default"].createElement("p",{className:"alert "+d[this.props.type]},this.props.message))}}]),t}(c["default"].Component)},{react:"react"}],191:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return s["default"].createElement("li",null,s["default"].createElement("a",{href:e.node.url.index},e.node.name))}function o(e){var t=e.path[e.path.length-1];return s["default"].createElement("a",{href:t.url.index,className:"go-back-sm visible-xs-block"},s["default"].createElement("span",{className:"material-icon"},"chevron_left"),t.name)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return s["default"].createElement("div",{className:"page-breadcrumbs"},s["default"].createElement("div",{className:"container"},s["default"].createElement("ol",{className:"breadcrumb hidden-xs"},e.path.map(function(e){return s["default"].createElement(r,{key:e.id,node:e})})),s["default"].createElement(o,e)))},a.Breadcrumb=r,a.GoBack=o;var l=e("react"),s=n(l)},{react:"react"}],192:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return f["default"].createElement("div",{className:e.isSingle?"col-xs-12":"col-xs-6"},f["default"].createElement("div",{className:"btn-group btn-group-justified"},f["default"].createElement("div",{className:"btn-group"},f["default"].createElement("button",{"aria-expanded":"false","aria-haspopup":"true",className:"btn btn-default btn-outline dropdown-toggle","data-toggle":"dropdown",disabled:e.thread.isBusy,type:"button"},f["default"].createElement("span",{className:"material-icon"},"settings"),f["default"].createElement("span",{className:e.isSingle?"":"hidden-sm"},gettext("Moderation"))),f["default"].createElement(h.ModerationControls,{posts:e.posts,thread:e.thread,user:e.user}))))}Object.defineProperty(a,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},c=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.Moderation=i;var d=e("react"),f=r(d),p=e("./breadcrumbs"),m=r(p),h=e("../moderation/thread"),b=e("./stats"),v=r(b),y=e("../../form"),g=r(y),_=e("../../posting/utils/validators"),E=e("../../../services/ajax"),w=r(E),O=e("../../../services/snackbar"),k=r(O),x=e("../../../services/store"),N=r(x),j=e("../../../reducers/thread"),P=n(j),C=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onChange=function(e){a.changeValue("title",e.target.value)},a.onEdit=function(){a.setState({isEditing:!0})},a.onCancel=function(){a.setState({title:a.props.thread.title,isEditing:!1})},a.state={isEditing:!1,isLoading:!1,title:e.thread.title,validators:{title:(0,_.getTitleValidators)()},errors:{}},a}return s(t,e),c(t,[{key:"clean",value:function(){if(!this.state.title.trim().length)return k["default"].error(gettext("You have to enter thread title.")),!1;var e=this.validate();return!e.title||(k["default"].error(e.title[0]),!1)}},{key:"send",value:function(){return w["default"].patch(this.props.thread.api.index,[{op:"replace",path:"title",value:this.state.title}])}},{key:"handleSuccess",value:function(e){N["default"].dispatch(P.update(e)),this.setState({isEditing:!1})}},{key:"handleError",value:function(e){400===e.status?k["default"].error(e.detail[0]):k["default"].apiError(e)}},{key:"render",value:function(){var e=this.props,t=e.thread,a=e.user,n=!!a.id&&(0,h.isModerationVisible)(t);return this.state.isEditing?f["default"].createElement("div",{className:"page-header"},f["default"].createElement(m["default"],{path:t.path}),f["default"].createElement("div",{className:"container"},f["default"].createElement("div",{className:"row xs-margin-top title-edit-form"},f["default"].createElement("form",{onSubmit:this.handleSubmit},f["default"].createElement("div",{className:"col-sm-6 col-md-6"},f["default"].createElement("input",{className:"form-control",type:"text",value:this.state.title,onChange:this.onChange})),f["default"].createElement("div",{className:"col-sm-6 col-md-4"},f["default"].createElement("div",{className:"row xs-margin-top-half sm-margin-top-no md-margin-top-no"},f["default"].createElement("div",{className:"col-xs-6"},f["default"].createElement("button",{className:"btn btn-primary btn-block btn-outline",disabled:this.state.isLoading,title:gettext("Change title")},gettext("Save changes"))),f["default"].createElement("div",{className:"col-xs-6"},f["default"].createElement("button",{className:"btn btn-default btn-block btn-outline",disabled:this.state.isLoading,onClick:this.onCancel,title:gettext("Cancel"),type:"button"},gettext("Cancel")))))))),f["default"].createElement(v["default"],{thread:t})):a.id&&t.acl.can_edit?f["default"].createElement("div",{className:"page-header"},f["default"].createElement(m["default"],{path:t.path}),f["default"].createElement("div",{className:"container"},f["default"].createElement("div",{className:"row"},f["default"].createElement("div",{className:n?"col-sm-9 col-md-8":"col-sm-10 col-md-10"},f["default"].createElement("h1",null,t.title)),f["default"].createElement("div",{className:n?"col-sm-3 col-md-4":"col-sm-3 col-md-2"},f["default"].createElement("div",{className:"row xs-margin-top md-margin-top-no"},f["default"].createElement("div",{className:n?"col-xs-6":"col-xs-12"},f["default"].createElement("button",{className:"btn btn-default btn-block btn-outline",onClick:this.onEdit,title:gettext("Edit title"),type:"button"},f["default"].createElement("span",{className:"material-icon"},"edit"),f["default"].createElement("span",{className:"hidden-sm"},gettext("Edit")))),n&&f["default"].createElement(i,this.props))))),f["default"].createElement(v["default"],{thread:t})):n?f["default"].createElement("div",{className:"page-header"},f["default"].createElement(m["default"],{path:t.path}),f["default"].createElement("div",{className:"container"},f["default"].createElement("div",{className:"row"},f["default"].createElement("div",{className:"col-sm-9 col-md-10"},f["default"].createElement("h1",null,t.title)),f["default"].createElement("div",{className:"col-sm-3 col-md-2"},f["default"].createElement("div",{className:"row xs-margin-top md-margin-top-no"},f["default"].createElement(i,u({isSingle:!0},this.props)))))),f["default"].createElement(v["default"],{thread:t})):f["default"].createElement("div",{className:"page-header"},f["default"].createElement(m["default"],{path:t.path}),f["default"].createElement("div",{className:"container"},f["default"].createElement("h1",null,t.title)),f["default"].createElement(v["default"],{thread:t}))}}]),t}(g["default"]);a["default"]=C},{"../../../reducers/thread":331,"../../../services/ajax":336,"../../../services/snackbar":347,"../../../services/store":348,"../../form":52,"../../posting/utils/validators":122,"../moderation/thread":200,"./breadcrumbs":191,"./stats":193,react:"react"}],193:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return 2==e.thread.weight?d["default"].createElement("li",{className:"thread-pinned-globally"},d["default"].createElement("span",{className:"material-icon"},"bookmark"),d["default"].createElement("span",{className:"icon-legend"},gettext("Pinned globally"))):1==e.thread.weight?d["default"].createElement("li",{className:"thread-pinned-locally"},d["default"].createElement("span",{className:"material-icon"},"bookmark_border"),d["default"].createElement("span",{className:"icon-legend"},gettext("Pinned locally"))):null}function o(e){return e.thread.is_unapproved?d["default"].createElement("li",{className:"thread-unapproved"},d["default"].createElement("span",{className:"material-icon"},"remove_circle"),d["default"].createElement("span",{className:"icon-legend"},gettext("Unapproved"))):e.thread.has_unapproved_posts?d["default"].createElement("li",{className:"thread-unapproved-posts"},d["default"].createElement("span",{className:"material-icon"},"remove_circle_outline"),d["default"].createElement("span",{className:"icon-legend"},gettext("Unapproved posts"))):null}function l(e){return e.thread.is_hidden?d["default"].createElement("li",{className:"thread-hidden"},d["default"].createElement("span",{className:"material-icon"},"visibility_off"),d["default"].createElement("span",{className:"icon-legend"},gettext("Hidden"))):null}function s(e){return e.thread.is_closed?d["default"].createElement("li",{className:"thread-closed"},d["default"].createElement("span",{className:"material-icon"},"lock_outline"),d["default"].createElement("span",{className:"icon-legend"},gettext("Closed"))):null}function i(e){var t=ngettext("%(replies)s reply","%(replies)s replies",e.thread.replies),a=interpolate(t,{replies:e.thread.replies},!0);return d["default"].createElement("li",{className:"thread-replies"},d["default"].createElement("span",{className:"material-icon"},"forum"),d["default"].createElement("span",{className:"icon-legend"},a))}function u(e){var t=null;t=e.thread.url.last_poster?interpolate(m,{url:(0,p["default"])(e.thread.url.last_poster),user:(0,p["default"])(e.thread.last_poster_name)},!0):interpolate(h,{user:(0,p["default"])(e.thread.last_poster_name)},!0);var a=interpolate(b,{absolute:(0,p["default"])(e.thread.last_post_on.format("LLL")),relative:(0,p["default"])(e.thread.last_post_on.fromNow())},!0),n=interpolate((0,p["default"])(gettext("last reply by %(user)s %(date)s")),{date:a,user:t},!0);return d["default"].createElement("li",{className:"thread-last-reply",dangerouslySetInnerHTML:{__html:n}})}Object.defineProperty(a,"__esModule",{value:!0}),a.Weight=r,a.Unapproved=o,a.IsHidden=l,a.IsClosed=s,a.Replies=i,a.LastReply=u,a["default"]=function(e){return d["default"].createElement("div",{className:"header-stats"},d["default"].createElement("div",{className:"container"},d["default"].createElement("ul",{className:"list-inline"},d["default"].createElement(r,{thread:e.thread}),d["default"].createElement(o,{thread:e.thread}),d["default"].createElement(l,{thread:e.thread}),d["default"].createElement(s,{thread:e.thread}),d["default"].createElement(i,{thread:e.thread}),d["default"].createElement(u,{thread:e.thread}))))};var c=e("react"),d=n(c),f=e("../../../utils/escape-html"),p=n(f),m='<a href="%(url)s" class="poster-title">%(user)s</a>',h='<span class="poster-title">%(user)s</span>',b='<abbr class="last-title" title="%(absolute)s">%(relative)s</abbr>'},{"../../../utils/escape-html":354,react:"react"}],194:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){e.selection.forEach(function(e){k["default"].dispatch(b.patch(e,{is_unapproved:!1}));var t=[{op:"replace",path:"is-unapproved",value:!1}],a={is_unapproved:e.is_unapproved};c(e,t,a)}),k["default"].dispatch(y.deselectAll())}function l(e){e.selection.forEach(function(e){k["default"].dispatch(b.patch(e,{is_protected:!1}));var t=[{op:"replace",path:"is-protected",value:!0}],a={is_protected:e.is_protected};c(e,t,a)}),k["default"].dispatch(y.deselectAll())}function s(e){e.selection.forEach(function(e){k["default"].dispatch(b.patch(e,{is_protected:!1}));var t=[{op:"replace",path:"is-protected",value:!1}],a={is_protected:e.is_protected};c(e,t,a)}),k["default"].dispatch(y.deselectAll())}function i(e){e.selection.forEach(function(t){k["default"].dispatch(b.patch(t,{is_hidden:!0,hidden_on:(0,m["default"])(),hidden_by_name:e.user.username,url:Object.assign(t.url,{hidden_by:e.user.url})}));var a=[{op:"replace",path:"is-hidden",value:!0}],n={is_hidden:t.is_hidden,hidden_on:t.hidden_on,hidden_by_name:t.hidden_by_name,url:t.url};c(t,a,n)}),k["default"].dispatch(y.deselectAll())}function u(e){e.selection.forEach(function(e){k["default"].dispatch(b.patch(e,{is_hidden:!1}));var t=[{op:"replace",path:"is-hidden",value:!1}],a={is_hidden:e.is_hidden};c(e,t,a)}),k["default"].dispatch(y.deselectAll())}function c(e,t,a){_["default"].patch(e.api.index,t).then(function(t){k["default"].dispatch(b.patch(e,t))},function(t){400===t.status?w["default"].error(t.detail[0]):w["default"].apiError(t),k["default"].dispatch(b.patch(e,a))})}function d(e){var t=confirm(gettext("Are you sure you want to merge selected posts? This action is not reversible!"));t&&(e.selection.slice(1).map(function(e){k["default"].dispatch(b.patch(e,{isDeleted:!0}))}),_["default"].post(e.thread.api.posts.merge,{posts:e.selection.map(function(e){return e.id})}).then(function(e){k["default"].dispatch(b.patch(e,b.hydrate(e)))},function(t){400===t.status?w["default"].error(t.detail):w["default"].apiError(t),e.selection.slice(1).map(function(e){k["default"].dispatch(b.patch(e,{isDeleted:!1}))})}),k["default"].dispatch(y.deselectAll()))}function f(e){var t=confirm(gettext("Are you sure you want to delete selected posts? This action is not reversible!"));if(t){e.selection.map(function(e){k["default"].dispatch(b.patch(e,{isDeleted:!0}))});var a=e.selection.map(function(e){return e.id});_["default"]["delete"](e.thread.api.posts.index,a).then(function(){},function(t){400===t.status?w["default"].error(t.detail):w["default"].apiError(t),e.selection.map(function(e){k["default"].dispatch(b.patch(e,{isDeleted:!1}))})}),k["default"].dispatch(y.deselectAll())}}Object.defineProperty(a,"__esModule",{value:!0}),a.approve=o,a.protect=l,a.unprotect=s,a.hide=i,a.unhide=u,a.patch=c,a.merge=d,a.remove=f;var p=e("moment"),m=r(p),h=e("../../../../reducers/post"),b=n(h),v=e("../../../../reducers/posts"),y=n(v),g=e("../../../../services/ajax"),_=r(g),E=e("../../../../services/snackbar"),w=r(E),O=e("../../../../services/store"),k=r(O)},{"../../../../reducers/post":324,"../../../../reducers/posts":325,"../../../../services/ajax":336,"../../../../services/snackbar":347,"../../../../services/store":348,moment:"moment"}],195:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0}),a.Delete=a.Unhide=a.Hide=a.Unprotect=a.Protect=a.Split=a.Move=a.Merge=a.Approve=void 0;var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a["default"]=function(e){return c["default"].createElement("ul",{className:"dropdown-menu"},c["default"].createElement(g,e),c["default"].createElement(_,e),c["default"].createElement(E,e),c["default"].createElement(w,e),c["default"].createElement(O,e),c["default"].createElement(k,e),c["default"].createElement(N,e),c["default"].createElement(x,e),c["default"].createElement(j,e))};var u=e("react"),c=r(u),d=e("../../../../services/modal"),f=r(d),p=e("./actions"),m=n(p),h=e("./move"),b=r(h),v=e("./split"),y=r(v),g=a.Approve=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){m.approve(n.props)},r=a,l(n,r)}return s(t,e),i(t,[{key:"render",value:function(){var e=this.props.selection.find(function(e){return e.acl.can_approve});return e?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.onClick},c["default"].createElement("span",{className:"material-icon"},"done"),gettext("Approve"))):null}}]),t}(c["default"].Component),_=a.Merge=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){m.merge(n.props)},r=a,l(n,r)}return s(t,e),i(t,[{key:"render",value:function(){return this.props.selection.length<2?null:this.props.thread.acl.can_merge_posts?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.onClick},c["default"].createElement("span",{className:"material-icon"},"call_merge"),gettext("Merge"))):null}}]),t}(c["default"].Component),E=a.Move=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){f["default"].show(c["default"].createElement(b["default"],n.props))},r=a,l(n,r)}return s(t,e),i(t,[{key:"render",value:function(){var e=this.props.selection.find(function(e){return e.acl.can_move});return e?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.onClick},c["default"].createElement("span",{className:"material-icon"},"arrow_forward"),gettext("Move"))):null}}]),t}(c["default"].Component),w=a.Split=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){f["default"].show(c["default"].createElement(y["default"],n.props))},r=a,l(n,r)}return s(t,e),i(t,[{key:"render",value:function(){var e=this.props.selection.find(function(e){return e.acl.can_move});return e?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.onClick},c["default"].createElement("span",{className:"material-icon"},"call_split"),gettext("Split"))):null}}]),t}(c["default"].Component),O=a.Protect=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){m.protect(n.props)},r=a,l(n,r)}return s(t,e),i(t,[{key:"render",value:function(){var e=this.props.selection.find(function(e){return e.acl.can_protect});return e?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.onClick},c["default"].createElement("span",{className:"material-icon"},"lock_outline"),gettext("Protect"))):null}}]),t}(c["default"].Component),k=a.Unprotect=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){m.unprotect(n.props)},r=a,l(n,r)}return s(t,e),i(t,[{key:"render",value:function(){var e=this.props.selection.find(function(e){return e.acl.can_protect});return e?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.onClick},c["default"].createElement("span",{className:"material-icon"},"lock_open"),gettext("Unprotect"))):null}}]),t}(c["default"].Component),x=a.Hide=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){m.hide(n.props)},r=a,l(n,r)}return s(t,e),i(t,[{key:"render",value:function(){var e=this.props.selection.find(function(e){return e.acl.can_hide});return e?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.onClick},c["default"].createElement("span",{className:"material-icon"},"visibility_off"),gettext("Hide"))):null}}]),t}(c["default"].Component),N=a.Unhide=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){m.unhide(n.props)},r=a,l(n,r)}return s(t,e),i(t,[{key:"render",value:function(){var e=this.props.selection.find(function(e){return e.acl.can_unhide});return e?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.onClick},c["default"].createElement("span",{className:"material-icon"},"visibility"),gettext("Unhide"))):null}}]),t}(c["default"].Component),j=a.Delete=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){m.remove(n.props)},r=a,l(n,r)}return s(t,e),i(t,[{key:"render",value:function(){var e=this.props.selection.find(function(e){return e.acl.can_delete});return e?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.onClick},c["default"].createElement("span",{className:"material-icon"},"clear"),gettext("Delete"))):null}}]),t}(c["default"].Component)},{"../../../../services/modal":342,"./actions":194,"./move":197,"./split":198,react:"react"}],196:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(e.acl.can_merge_posts&&t.length>1)return!0;var a=!1;return t.forEach(function(e){if(!e.is_event){var t=e.acl.can_approve||e.acl.can_delete||!e.is_hidden&&e.acl.can_hide||e.acl.can_move||e.acl.can_protect||e.is_hidden&&e.acl.can_unhide||e.acl.can_unprotect;t&&(a=!0)}}),a}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){if(!e.user.id||!r(e.thread,e.posts.results))return null;var t=e.posts.results.filter(function(e){return e.isSelected});return s["default"].createElement("div",{className:"dropup"},s["default"].createElement("button",{"aria-expanded":"true","aria-haspopup":"true",className:"btn btn-default dropdown-toggle btn-block btn-outline","data-toggle":"dropdown",disabled:!t.length,type:"button"},gettext("Posts options")),s["default"].createElement(u["default"],o({selection:t},e)))},a.isVisible=r;var l=e("react"),s=n(l),i=e("./dropdown"),u=n(i)},{"./dropdown":195,react:"react"}],197:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return d["default"].createElement("div",{className:"modal-header"},d["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},d["default"].createElement("span",{"aria-hidden":"true"},"×")),d["default"].createElement("h4",{className:"modal-title"},gettext("Move posts")))}Object.defineProperty(a,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.ModalHeader=i;var c=e("react"),d=r(c),f=e("../../../button"),p=(r(f),e("../../../form")),m=r(p),h=e("../../../form-group"),b=r(h),v=e("../../../../reducers/post"),y=n(v),g=e("../../../../services/ajax"),_=r(g),E=e("../../../../services/modal"),w=r(E),O=e("../../../../services/snackbar"),k=r(O),x=e("../../../../services/store"),N=r(x),j=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onUrlChange=function(e){a.changeValue("url",e.target.value)},a.state={isLoading:!1,url:"",validators:{url:[]},errors:{}},a}return s(t,e),u(t,[{key:"clean",value:function(){return!!this.state.url.trim().length||(k["default"].error(gettext("You have to enter link to the other thread.")),!1)}},{key:"send",value:function(){return _["default"].post(this.props.thread.api.posts.move,{thread_url:this.state.url,posts:this.props.selection.map(function(e){return e.id})})}},{key:"handleSuccess",value:function(e){this.props.selection.forEach(function(e){N["default"].dispatch(y.patch(e,{isDeleted:!0}))}),w["default"].hide(),k["default"].success(gettext("Selected posts were moved to the other thread."))}},{key:"handleError",value:function(e){400===e.status?k["default"].error(e.detail):k["default"].apiError(e)}},{key:"render",value:function(){return d["default"].createElement("div",{className:"modal-dialog",role:"document"},d["default"].createElement("form",{onSubmit:this.handleSubmit},d["default"].createElement("div",{className:"modal-content"},d["default"].createElement(i,null),d["default"].createElement("div",{className:"modal-body"},d["default"].createElement(b["default"],{"for":"id_url",label:gettext("Link to thread you want to move posts to")},d["default"].createElement("input",{className:"form-control",disabled:this.state.isLoading,id:"id_url",onChange:this.onUrlChange,value:this.state.url}))),d["default"].createElement("div",{className:"modal-footer"},d["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",disabled:this.state.isLoading,type:"button"},gettext("Cancel")),d["default"].createElement("button",{className:"btn btn-primary",loading:this.state.isLoading},gettext("Move posts"))))))}}]),t}(m["default"]);a["default"]=j},{"../../../../reducers/post":324,"../../../../services/ajax":336,"../../../../services/modal":342,"../../../../services/snackbar":347,"../../../../services/store":348,"../../../button":5,"../../../form":52,"../../../form-group":51,react:"react"}],198:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(){return m["default"].createElement(c,{className:"modal-dialog"},m["default"].createElement(k["default"],null))}function u(e){return m["default"].createElement(c,{className:"modal-dialog modal-message"},m["default"].createElement("div",{className:"message-icon"},m["default"].createElement("span",{className:"material-icon"},"info_outline")),m["default"].createElement("div",{className:"message-body"},m["default"].createElement("p",{className:"lead"},gettext("You can't move selected posts at the moment.")),m["default"].createElement("p",null,e.message),m["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",
-type:"button"},gettext("Ok"))))}function c(e){return m["default"].createElement("div",{className:e.className,role:"document"},m["default"].createElement("div",{className:"modal-content"},m["default"].createElement("div",{className:"modal-header"},m["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},m["default"].createElement("span",{"aria-hidden":"true"},"×")),m["default"].createElement("h4",{className:"modal-title"},gettext("Split posts into new thread"))),e.children))}Object.defineProperty(a,"__esModule",{value:!0}),a.ModerationForm=a.PostingConfig=void 0;var d=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return m["default"].createElement(B,f({},e,{Form:H}))},a.Loader=i,a.Error=u,a.Modal=c;var p=e("react"),m=r(p),h=e("../../../button"),b=r(h),v=e("../../../form"),y=r(v),g=e("../../../form-group"),_=r(g),E=e("../../../category-select"),w=r(E),O=e("../../../modal-loader"),k=r(O),x=e("../../../select"),N=r(x),j=e("../../../../reducers/post"),P=n(j),C=e("../../../../services/ajax"),S=r(C),M=e("../../../../services/modal"),T=r(M),L=e("../../../../services/snackbar"),R=r(L),A=e("../../../../services/store"),I=r(A),D=e("../../../../utils/validators"),U=n(D),B=a.PostingConfig=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.state={isLoaded:!1,isError:!1,categories:[]},a}return s(t,e),d(t,[{key:"componentDidMount",value:function(){var e=this;S["default"].get(misago.get("THREAD_EDITOR_API")).then(function(t){var a=t.map(function(e){return Object.assign(e,{disabled:e.post===!1,label:e.name,value:e.id,post:e.post})});e.setState({isLoaded:!0,categories:a})},function(t){e.setState({isError:t.detail})})}},{key:"render",value:function(){return this.state.isError?m["default"].createElement(u,{message:this.state.isError}):this.state.isLoaded?m["default"].createElement(H,f({},this.props,{categories:this.state.categories})):m["default"].createElement(i,null)}}]),t}(m["default"].Component),H=a.ModerationForm=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onCategoryChange=function(e){var t=e.target.value,n={category:t};a.acl[t].can_pin_threads<n.weight&&(n.weight=0),a.acl[t].can_hide_threads||(n.is_hidden=0),a.acl[t].can_close_threads||(n.is_closed=!1),a.setState(n)},a.state={isLoading:!1,title:"",category:null,categories:e.categories,weight:0,is_hidden:0,is_closed:!1,validators:{title:[U.required()]},errors:{}},a.isHiddenChoices=[{value:0,icon:"visibility",label:gettext("No")},{value:1,icon:"visibility_off",label:gettext("Yes")}],a.isClosedChoices=[{value:!1,icon:"lock_outline",label:gettext("No")},{value:!0,icon:"lock",label:gettext("Yes")}],a.acl={},a.props.categories.forEach(function(e){e.post&&(a.state.category||(a.state.category=e.id),a.acl[e.id]={can_pin_threads:e.post.pin,can_close_threads:e.post.close,can_hide_threads:e.post.hide})}),a}return s(t,e),d(t,[{key:"clean",value:function(){return!!this.isValid()||(R["default"].error(gettext("Form contains errors.")),this.setState({errors:this.validate()}),!1)}},{key:"send",value:function(){return S["default"].post(this.props.thread.api.posts.split,{title:this.state.title,category:this.state.category,weight:this.state.weight,is_hidden:this.state.is_hidden,is_closed:this.state.is_closed,posts:this.props.selection.map(function(e){return e.id})})}},{key:"handleSuccess",value:function(e){this.props.selection.forEach(function(e){I["default"].dispatch(P.patch(e,{isDeleted:!0}))}),T["default"].hide(),R["default"].success(gettext("Selected posts were split into new thread."))}},{key:"handleError",value:function(e){400===e.status?(this.setState({errors:Object.assign({},this.state.errors,e)}),R["default"].error(gettext("Form contains errors."))):403===e.status&&Array.isArray(e)?T["default"].show(m["default"].createElement(ErrorsModal,{errors:e})):R["default"].apiError(e)}},{key:"getWeightChoices",value:function(){var e=[{value:0,icon:"remove",label:gettext("Not pinned")},{value:1,icon:"bookmark_border",label:gettext("Pinned locally")}];return 2==this.acl[this.state.category].can_pin_threads&&e.push({value:2,icon:"bookmark",label:gettext("Pinned globally")}),e}},{key:"renderWeightField",value:function(){return this.acl[this.state.category].can_pin_threads?m["default"].createElement(_["default"],{label:gettext("Thread weight"),"for":"id_weight",labelClass:"col-sm-4",controlClass:"col-sm-8"},m["default"].createElement(N["default"],{id:"id_weight",onChange:this.bindInput("weight"),value:this.state.weight,choices:this.getWeightChoices()})):null}},{key:"renderHiddenField",value:function(){return this.acl[this.state.category].can_hide_threads?m["default"].createElement(_["default"],{label:gettext("Hide thread"),"for":"id_is_hidden",labelClass:"col-sm-4",controlClass:"col-sm-8"},m["default"].createElement(N["default"],{id:"id_is_closed",onChange:this.bindInput("is_hidden"),value:this.state.is_hidden,choices:this.isHiddenChoices})):null}},{key:"renderClosedField",value:function(){return this.acl[this.state.category].can_close_threads?m["default"].createElement(_["default"],{label:gettext("Close thread"),"for":"id_is_closed",labelClass:"col-sm-4",controlClass:"col-sm-8"},m["default"].createElement(N["default"],{id:"id_is_closed",onChange:this.bindInput("is_closed"),value:this.state.is_closed,choices:this.isClosedChoices})):null}},{key:"render",value:function(){return m["default"].createElement(c,{className:"modal-dialog"},m["default"].createElement("form",{onSubmit:this.handleSubmit},m["default"].createElement("div",{className:"modal-body"},m["default"].createElement(_["default"],{label:gettext("Thread title"),"for":"id_title",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.title},m["default"].createElement("input",{id:"id_title",className:"form-control",type:"text",onChange:this.bindInput("title"),value:this.state.title})),m["default"].createElement("div",{className:"clearfix"}),m["default"].createElement(_["default"],{label:gettext("Category"),"for":"id_category",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.category},m["default"].createElement(w["default"],{id:"id_category",onChange:this.onCategoryChange,value:this.state.category,choices:this.state.categories})),m["default"].createElement("div",{className:"clearfix"}),this.renderWeightField(),this.renderHiddenField(),this.renderClosedField()),m["default"].createElement("div",{className:"modal-footer"},m["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",disabled:this.state.isLoading,type:"button"},gettext("Cancel")),m["default"].createElement(b["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Split posts")))))}}]),t}(y["default"])},{"../../../../reducers/post":324,"../../../../services/ajax":336,"../../../../services/modal":342,"../../../../services/snackbar":347,"../../../../services/store":348,"../../../../utils/validators":364,"../../../button":5,"../../../category-select":18,"../../../form":52,"../../../form-group":51,"../../../modal-loader":57,"../../../select":188,react:"react"}],199:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("./merge"),f=r(d),p=e("./move"),m=r(p),h=e("../../../../reducers/thread"),b=n(h),v=e("../../../../services/ajax"),y=r(v),g=e("../../../../services/modal"),_=r(g),E=e("../../../../services/snackbar"),w=r(E),O=e("../../../../services/store"),k=r(O),x=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.callApi=function(e,t){k["default"].dispatch(b.busy()),e.push({op:"add",path:"acl",value:!0}),y["default"].patch(n.props.thread.api.index,e).then(function(e){k["default"].dispatch(b.update(e)),k["default"].dispatch(b.release()),w["default"].success(t)},function(e){k["default"].dispatch(b.release()),400===e.status?w["default"].error(e.detail[0]):w["default"].apiError(e)})},n.pinGlobally=function(){n.callApi([{op:"replace",path:"weight",value:2}],gettext("Thread has been pinned globally."))},n.pinLocally=function(){n.callApi([{op:"replace",path:"weight",value:1}],gettext("Thread has been pinned locally."))},n.unpin=function(){n.callApi([{op:"replace",path:"weight",value:0}],gettext("Thread has been unpinned."))},n.approve=function(){n.callApi([{op:"replace",path:"is-unapproved",value:!1}],gettext("Thread has been approved."))},n.open=function(){n.callApi([{op:"replace",path:"is-closed",value:!1}],gettext("Thread has been opened."))},n.close=function(){n.callApi([{op:"replace",path:"is-closed",value:!0}],gettext("Thread has been closed."))},n.unhide=function(){n.callApi([{op:"replace",path:"is-hidden",value:!1}],gettext("Thread has been made visible."))},n.hide=function(){n.callApi([{op:"replace",path:"is-hidden",value:!0}],gettext("Thread has been made hidden."))},n.move=function(){_["default"].show(c["default"].createElement(m["default"],{posts:n.props.posts,thread:n.props.thread}))},n.merge=function(){_["default"].show(c["default"].createElement(f["default"],{thread:n.props.thread}))},n["delete"]=function(){confirm(gettext("Are you sure you want to delete this thread?"))&&(k["default"].dispatch(b.busy()),y["default"]["delete"](n.props.thread.api.index).then(function(e){w["default"].success(gettext("Thread has been deleted.")),window.location=n.props.thread.category.url.index},function(e){k["default"].dispatch(b.release()),w["default"].apiError(e)}))},r=a,l(n,r)}return s(t,e),i(t,[{key:"getPinGloballyButton",value:function(){return 2===this.props.thread.weight?null:2!==this.props.thread.acl.can_pin?null:c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.pinGlobally,type:"button"},c["default"].createElement("span",{className:"material-icon"},"bookmark"),gettext("Pin globally")))}},{key:"getPinLocallyButton",value:function(){return 1===this.props.thread.weight?null:0===this.props.thread.acl.can_pin?null:c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.pinLocally,type:"button"},c["default"].createElement("span",{className:"material-icon"},"bookmark_border"),gettext("Pin locally")))}},{key:"getUnpinButton",value:function(){return 0===this.props.thread.weight?null:0===this.props.thread.acl.can_pin?null:c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.unpin,type:"button"},c["default"].createElement("span",{className:"material-icon"},"panorama_fish_eye"),gettext("Unpin")))}},{key:"getMoveButton",value:function(){return this.props.thread.acl.can_move?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.move,type:"button"},c["default"].createElement("span",{className:"material-icon"},"arrow_forward"),gettext("Move"))):null}},{key:"getMergeButton",value:function(){return this.props.thread.acl.can_merge?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.merge,type:"button"},c["default"].createElement("span",{className:"material-icon"},"call_merge"),gettext("Merge"))):null}},{key:"getApproveButton",value:function(){return this.props.thread.is_unapproved&&this.props.thread.acl.can_approve?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.approve,type:"button"},c["default"].createElement("span",{className:"material-icon"},"done"),gettext("Approve"))):null}},{key:"getOpenButton",value:function(){return this.props.thread.is_closed&&this.props.thread.acl.can_close?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.open,type:"button"},c["default"].createElement("span",{className:"material-icon"},"lock_open"),gettext("Open"))):null}},{key:"getCloseButton",value:function(){return this.props.thread.is_closed?null:this.props.thread.acl.can_close?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.close,type:"button"},c["default"].createElement("span",{className:"material-icon"},"lock_outline"),gettext("Close"))):null}},{key:"getUnhideButton",value:function(){return this.props.thread.is_hidden&&this.props.thread.acl.can_unhide?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.unhide,type:"button"},c["default"].createElement("span",{className:"material-icon"},"visibility"),gettext("Unhide"))):null}},{key:"getHideButton",value:function(){return this.props.thread.is_hidden?null:this.props.thread.acl.can_hide?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.hide,type:"button"},c["default"].createElement("span",{className:"material-icon"},"visibility_off"),gettext("Hide"))):null}},{key:"getDeleteButton",value:function(){return this.props.thread.acl.can_delete?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this["delete"],type:"button"},c["default"].createElement("span",{className:"material-icon"},"clear"),gettext("Delete"))):null}},{key:"render",value:function(){return c["default"].createElement("ul",{className:"dropdown-menu dropdown-menu-right stick-to-bottom"},this.getPinGloballyButton(),this.getPinLocallyButton(),this.getUnpinButton(),this.getMoveButton(),this.getMergeButton(),this.getApproveButton(),this.getOpenButton(),this.getCloseButton(),this.getUnhideButton(),this.getHideButton(),this.getDeleteButton())}}]),t}(c["default"].Component);a["default"]=x},{"../../../../reducers/thread":331,"../../../../services/ajax":336,"../../../../services/modal":342,"../../../../services/snackbar":347,"../../../../services/store":348,"./merge":202,"./move":203,react:"react"}],200:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a.isModerationVisible=a.ModerationControls=void 0;var r=e("./controls"),o=n(r),l=e("./is-visible"),s=n(l);a.ModerationControls=o["default"],a.isModerationVisible=s["default"]},{"./controls":199,"./is-visible":201}],201:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return!!(e.acl.can_approve&&e.is_unapproved||e.acl.can_close||e.acl.can_delete||e.acl.can_hide||e.acl.can_move||e.acl.can_pin||e.acl.can_unhide)}},{}],202:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return d["default"].createElement("div",{className:"modal-header"},d["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},d["default"].createElement("span",{"aria-hidden":"true"},"×")),d["default"].createElement("h4",{className:"modal-title"},gettext("Merge thread")))}Object.defineProperty(a,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.ModalHeader=i;var c=e("react"),d=r(c),f=e("../../../form"),p=r(f),m=e("../../../form-group"),h=r(m),b=e("../../../merge-polls"),v=r(b),y=e("../../../../reducers/thread"),g=n(y),_=e("../../../../services/ajax"),E=r(_),w=e("../../../../services/modal"),O=r(w),k=e("../../../../services/snackbar"),x=r(k),N=e("../../../../services/store"),j=r(N),P=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.handleSuccess=function(e){a.handleSuccessUnmounted(e),a.setState({isLoading:!0})},a.handleSuccessUnmounted=function(e){x["default"].success(gettext("Thread has been merged with other one.")),window.location=e.url},a.handleError=function(e){j["default"].dispatch(g.release()),400===e.status?e.polls?O["default"].show(d["default"].createElement(v["default"],{api:a.props.thread.api.merge,data:{thread_url:a.state.url},polls:e.polls,onError:a.handleError,onSuccess:a.handleSuccessUnmounted})):x["default"].error(e.detail):x["default"].apiError(e)},a.onUrlChange=function(e){a.changeValue("url",e.target.value)},a.state={isLoading:!1,url:"",validators:{url:[]},errors:{}},a}return s(t,e),u(t,[{key:"clean",value:function(){return!!this.state.url.trim().length||(x["default"].error(gettext("You have to enter link to the other thread.")),!1)}},{key:"send",value:function(){return j["default"].dispatch(g.busy()),E["default"].post(this.props.thread.api.merge,{thread_url:this.state.url})}},{key:"render",value:function(){return d["default"].createElement("div",{className:"modal-dialog",role:"document"},d["default"].createElement("form",{onSubmit:this.handleSubmit},d["default"].createElement("div",{className:"modal-content"},d["default"].createElement(i,null),d["default"].createElement("div",{className:"modal-body"},d["default"].createElement(h["default"],{"for":"id_url",label:gettext("Link to thread you want to merge with"),help_text:gettext("Merge will delete current thread and move its contents to the thread specified here.")},d["default"].createElement("input",{className:"form-control",disabled:this.state.isLoading||this.props.thread.isBusy,id:"id_url",onChange:this.onUrlChange,value:this.state.url}))),d["default"].createElement("div",{className:"modal-footer"},d["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",disabled:this.state.isLoading,type:"button"},gettext("Cancel")),d["default"].createElement("button",{className:"btn btn-primary",loading:this.state.isLoading||this.props.thread.isBusy},gettext("Merge thread"))))))}}]),t}(p["default"]);a["default"]=P},{"../../../../reducers/thread":331,"../../../../services/ajax":336,"../../../../services/modal":342,"../../../../services/snackbar":347,"../../../../services/store":348,"../../../form":52,"../../../form-group":51,"../../../merge-polls":55,react:"react"}],203:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return p["default"].createElement("div",{className:"modal-header"},p["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},p["default"].createElement("span",{"aria-hidden":"true"},"×")),p["default"].createElement("h4",{className:"modal-title"},gettext("Move thread")))}function u(e){return p["default"].createElement("div",{className:"modal-dialog",role:"document"},p["default"].createElement("div",{className:"modal-content"},p["default"].createElement(i,null),p["default"].createElement(E["default"],null)))}function c(e){return p["default"].createElement("div",{className:"modal-dialog modal-message",role:"document"},p["default"].createElement("div",{className:"modal-content"},p["default"].createElement(i,null),p["default"].createElement("div",{className:"message-icon"},p["default"].createElement("span",{className:"material-icon"},"info_outline")),p["default"].createElement("div",{className:"message-body"},p["default"].createElement("p",{className:"lead"},gettext("You can't move this thread at the moment.")),p["default"].createElement("p",null,e.message),p["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",type:"button"},gettext("Ok")))))}Object.defineProperty(a,"__esModule",{value:!0});var d=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.ModalHeader=i,a.ModalLoading=u,a.ModalMessage=c;var f=e("react"),p=r(f),m=e("../../../form"),h=r(m),b=e("../../../form-group"),v=r(b),y=e("../../../category-select"),g=r(y),_=e("../../../modal-loader"),E=r(_),w=e("../../../../reducers/posts"),O=n(w),k=e("../../../../reducers/thread"),x=n(k),N=e("../../../.."),j=r(N),P=e("../../../../services/ajax"),C=r(P),S=e("../../../../services/modal"),M=r(S),T=e("../../../../services/snackbar"),L=r(T),R=e("../../../../services/store"),A=r(R),I=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onCategoryChange=function(e){a.changeValue("category",e.target.value)},a.state={isReady:!1,isLoading:!1,isError:!1,category:null,categories:[]},a}return s(t,e),d(t,[{key:"componentDidMount",value:function(){var e=this;C["default"].get(j["default"].get("THREAD_EDITOR_API")).then(function(t){var a=null,n=t.map(function(e){return e.post===!1||a||(a=e.id),Object.assign(e,{disabled:e.post===!1,label:e.name,value:e.id})});e.setState({isReady:!0,category:a,categories:n})},function(t){e.setState({isError:t.detail})})}},{key:"send",value:function(){return A["default"].dispatch(x.busy()),C["default"].patch(this.props.thread.api.index,[{op:"replace",path:"category",value:this.state.category}])}},{key:"handleSuccess",value:function(){C["default"].get(this.props.thread.api.posts.index,{page:this.props.posts.page}).then(function(e){A["default"].dispatch(x.replace(e)),A["default"].dispatch(O.load(e.post_set)),A["default"].dispatch(x.release()),L["default"].success(gettext("Thread has been moved.")),M["default"].hide()},function(e){A["default"].dispatch(x.release()),L["default"].apiError(e)})}},{key:"handleError",value:function(e){400===e.status?L["default"].error(e.detail[0]):L["default"].apiError(e)}},{key:"render",value:function(){return this.state.isReady?p["default"].createElement("div",{className:"modal-dialog",role:"document"},p["default"].createElement("form",{onSubmit:this.handleSubmit},p["default"].createElement("div",{className:"modal-content"},p["default"].createElement(i,null),p["default"].createElement("div",{className:"modal-body"},p["default"].createElement(v["default"],{"for":"id_category",label:gettext("New category")},p["default"].createElement(g["default"],{choices:this.state.categories,disabled:this.state.isLoading||this.props.thread.isBusy,id:"id_category",onChange:this.onCategoryChange,value:this.state.category}))),p["default"].createElement("div",{className:"modal-footer"},p["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",disabled:this.state.isLoading,type:"button"},gettext("Cancel")),p["default"].createElement("button",{className:"btn btn-primary",loading:this.state.isLoading||this.props.thread.isBusy},gettext("Move thread")))))):this.state.isError?p["default"].createElement(c,{message:this.state.isError}):p["default"].createElement(u,null)}}]),t}(h["default"]);a["default"]=I},{"../../../..":275,"../../../../reducers/posts":325,"../../../../reducers/thread":331,"../../../../services/ajax":336,"../../../../services/modal":342,"../../../../services/snackbar":347,"../../../../services/store":348,"../../../category-select":18,"../../../form":52,"../../../form-group":51,"../../../modal-loader":57,react:"react"}],204:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return d["default"].createElement("div",{className:"row row-paginator"},d["default"].createElement("div",{className:"col-xs-3"},d["default"].createElement(o,e)),d["default"].createElement("div",{className:"col-xs-3"},d["default"].createElement(l,e)),d["default"].createElement("div",{className:"col-xs-3"},d["default"].createElement(s,e)),d["default"].createElement("div",{className:"col-xs-3"},d["default"].createElement(i,e)))}function o(e){return e.posts.isLoaded&&e.posts.first?d["default"].createElement(f.Link,{className:"btn btn-default btn-block btn-outline btn-icon",to:e.thread.url.index,title:gettext("Go to first page")},d["default"].createElement("span",{className:"material-icon"},"first_page")):d["default"].createElement("span",{className:"btn btn-default btn-block btn-outline btn-icon disabled",title:gettext("Go to first page")},d["default"].createElement("span",{className:"material-icon"},"first_page"))}function l(e){if(e.posts.isLoaded&&e.posts.page>1){var t="";return e.posts.previous&&(t=e.posts.previous+"/"),d["default"].createElement(f.Link,{className:"btn btn-default btn-block btn-outline btn-icon",to:e.thread.url.index+t,title:gettext("Go to previous page")},d["default"].createElement("span",{className:"material-icon"},"chevron_left"))}return d["default"].createElement("span",{className:"btn btn-default btn-block btn-outline btn-icon disabled",title:gettext("Go to previous page")},d["default"].createElement("span",{className:"material-icon"},"chevron_left"))}function s(e){if(e.posts.isLoaded&&e.posts.more){var t="";return e.posts.next&&(t=e.posts.next+"/"),d["default"].createElement(f.Link,{className:"btn btn-default btn-block btn-outline btn-icon",to:e.thread.url.index+t,title:gettext("Go to next page")},d["default"].createElement("span",{className:"material-icon"},"chevron_right"))}return d["default"].createElement("span",{className:"btn btn-default btn-block btn-outline btn-icon disabled",title:gettext("Go to next page")},d["default"].createElement("span",{className:"material-icon"},"chevron_right"))}function i(e){return e.posts.isLoaded&&e.posts.last?d["default"].createElement(f.Link,{className:"btn btn-default btn-block btn-outline btn-icon",to:e.thread.url.index+e.posts.last+"/",title:gettext("Go to last page")},d["default"].createElement("span",{className:"material-icon"},"last_page")):d["default"].createElement("span",{className:"btn btn-default btn-block btn-outline btn-icon disabled",title:gettext("Go to last page")},d["default"].createElement("span",{className:"material-icon"},"last_page"))}function u(e){var t=null;return e.more?(t=ngettext("There is %(more)s more post in this thread.","There are %(more)s more posts in this thread.",e.more),t=interpolate(t,{more:e.more},!0)):t=gettext("There are no more posts in this thread."),d["default"].createElement("p",null,t)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return d["default"].createElement("nav",{className:"misago-pagination pull-left"},d["default"].createElement(r,e),d["default"].createElement(u,{more:e.posts.more}))},a.Pager=r,a.FirstPage=o,a.PreviousPage=l,a.NextPage=s,a.LastPage=i,a.More=u;var c=e("react"),d=n(c),f=e("react-router")},{react:"react","react-router":"react-router"}],205:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return o["default"].createElement("button",{className:e.className||"btn btn-primary btn-outline",onClick:e.onClick,type:"button"},o["default"].createElement("span",{className:"material-icon"},"chat"),gettext("Reply"))};var r=e("react"),o=n(r)},{react:"react"}],206:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return{participants:e.participants,poll:e.poll,posts:e.posts,thread:e.thread,tick:e.tick.tick,user:e.auth.user}}function o(){var e=c["default"].get("THREAD"),t=e.url.index.replace(e.slug+"-"+e.pk,":slug");return[{path:t,component:(0,l.connect)(r)(i["default"])},{path:t+":page/",component:(0,l.connect)(r)(i["default"])}]}Object.defineProperty(a,"__esModule",{value:!0}),a.select=r,a.paths=o;var l=e("react-redux"),s=e("./route"),i=n(s),u=e("../../index"),c=n(u)},{"../../index":275,"./route":207,"react-redux":"react-redux"}],207:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),c=e("react"),d=r(c),f=e("../participants"),p=r(f),m=e("../poll"),h=e("../posts-list"),b=r(h),v=e("./header"),y=r(v),g=e("./toolbar-top"),_=r(g),E=e("./toolbar-bottom"),w=r(E),O=e("../../reducers/participants"),k=n(O),x=e("../../reducers/poll"),N=n(x),j=e("../../reducers/posts"),P=n(j),C=e("../../reducers/thread"),S=n(C),M=e("../../services/ajax"),T=r(M),L=e("../../services/polls"),R=r(L),A=e("../../services/snackbar"),I=r(A),D=e("../../services/posting"),U=r(D),B=e("../../services/store"),H=r(B),z=e("../../services/page-title"),F=r(z),q=function(e){
+type:"button"},gettext("Ok"))))}function c(e){return m["default"].createElement("div",{className:e.className,role:"document"},m["default"].createElement("div",{className:"modal-content"},m["default"].createElement("div",{className:"modal-header"},m["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},m["default"].createElement("span",{"aria-hidden":"true"},"×")),m["default"].createElement("h4",{className:"modal-title"},gettext("Split posts into new thread"))),e.children))}Object.defineProperty(a,"__esModule",{value:!0}),a.ModerationForm=a.PostingConfig=void 0;var d=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return m["default"].createElement(B,f({},e,{Form:H}))},a.Loader=i,a.Error=u,a.Modal=c;var p=e("react"),m=r(p),h=e("../../../button"),b=r(h),v=e("../../../form"),y=r(v),g=e("../../../form-group"),_=r(g),E=e("../../../category-select"),w=r(E),O=e("../../../modal-loader"),k=r(O),x=e("../../../select"),N=r(x),j=e("../../../../reducers/post"),P=n(j),C=e("../../../../services/ajax"),S=r(C),M=e("../../../../services/modal"),T=r(M),L=e("../../../../services/snackbar"),R=r(L),A=e("../../../../services/store"),I=r(A),D=e("../../../../utils/validators"),U=n(D),B=a.PostingConfig=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.state={isLoaded:!1,isError:!1,categories:[]},a}return s(t,e),d(t,[{key:"componentDidMount",value:function(){var e=this;S["default"].get(misago.get("THREAD_EDITOR_API")).then(function(t){var a=t.map(function(e){return Object.assign(e,{disabled:e.post===!1,label:e.name,value:e.id,post:e.post})});e.setState({isLoaded:!0,categories:a})},function(t){e.setState({isError:t.detail})})}},{key:"render",value:function(){return this.state.isError?m["default"].createElement(u,{message:this.state.isError}):this.state.isLoaded?m["default"].createElement(H,f({},this.props,{categories:this.state.categories})):m["default"].createElement(i,null)}}]),t}(m["default"].Component),H=a.ModerationForm=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onCategoryChange=function(e){var t=e.target.value,n={category:t};a.acl[t].can_pin_threads<n.weight&&(n.weight=0),a.acl[t].can_hide_threads||(n.is_hidden=0),a.acl[t].can_close_threads||(n.is_closed=!1),a.setState(n)},a.state={isLoading:!1,title:"",category:null,categories:e.categories,weight:0,is_hidden:0,is_closed:!1,validators:{title:[U.required()]},errors:{}},a.isHiddenChoices=[{value:0,icon:"visibility",label:gettext("No")},{value:1,icon:"visibility_off",label:gettext("Yes")}],a.isClosedChoices=[{value:!1,icon:"lock_outline",label:gettext("No")},{value:!0,icon:"lock",label:gettext("Yes")}],a.acl={},a.props.categories.forEach(function(e){e.post&&(a.state.category||(a.state.category=e.id),a.acl[e.id]={can_pin_threads:e.post.pin,can_close_threads:e.post.close,can_hide_threads:e.post.hide})}),a}return s(t,e),d(t,[{key:"clean",value:function(){return!!this.isValid()||(R["default"].error(gettext("Form contains errors.")),this.setState({errors:this.validate()}),!1)}},{key:"send",value:function(){return S["default"].post(this.props.thread.api.posts.split,{title:this.state.title,category:this.state.category,weight:this.state.weight,is_hidden:this.state.is_hidden,is_closed:this.state.is_closed,posts:this.props.selection.map(function(e){return e.id})})}},{key:"handleSuccess",value:function(e){this.props.selection.forEach(function(e){I["default"].dispatch(P.patch(e,{isDeleted:!0}))}),T["default"].hide(),R["default"].success(gettext("Selected posts were split into new thread."))}},{key:"handleError",value:function(e){400===e.status?(this.setState({errors:Object.assign({},this.state.errors,e)}),R["default"].error(gettext("Form contains errors."))):403===e.status&&Array.isArray(e)?T["default"].show(m["default"].createElement(ErrorsModal,{errors:e})):R["default"].apiError(e)}},{key:"getWeightChoices",value:function(){var e=[{value:0,icon:"remove",label:gettext("Not pinned")},{value:1,icon:"bookmark_border",label:gettext("Pinned locally")}];return 2==this.acl[this.state.category].can_pin_threads&&e.push({value:2,icon:"bookmark",label:gettext("Pinned globally")}),e}},{key:"renderWeightField",value:function(){return this.acl[this.state.category].can_pin_threads?m["default"].createElement(_["default"],{label:gettext("Thread weight"),"for":"id_weight",labelClass:"col-sm-4",controlClass:"col-sm-8"},m["default"].createElement(N["default"],{id:"id_weight",onChange:this.bindInput("weight"),value:this.state.weight,choices:this.getWeightChoices()})):null}},{key:"renderHiddenField",value:function(){return this.acl[this.state.category].can_hide_threads?m["default"].createElement(_["default"],{label:gettext("Hide thread"),"for":"id_is_hidden",labelClass:"col-sm-4",controlClass:"col-sm-8"},m["default"].createElement(N["default"],{id:"id_is_closed",onChange:this.bindInput("is_hidden"),value:this.state.is_hidden,choices:this.isHiddenChoices})):null}},{key:"renderClosedField",value:function(){return this.acl[this.state.category].can_close_threads?m["default"].createElement(_["default"],{label:gettext("Close thread"),"for":"id_is_closed",labelClass:"col-sm-4",controlClass:"col-sm-8"},m["default"].createElement(N["default"],{id:"id_is_closed",onChange:this.bindInput("is_closed"),value:this.state.is_closed,choices:this.isClosedChoices})):null}},{key:"render",value:function(){return m["default"].createElement(c,{className:"modal-dialog"},m["default"].createElement("form",{onSubmit:this.handleSubmit},m["default"].createElement("div",{className:"modal-body"},m["default"].createElement(_["default"],{label:gettext("Thread title"),"for":"id_title",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.title},m["default"].createElement("input",{id:"id_title",className:"form-control",type:"text",onChange:this.bindInput("title"),value:this.state.title})),m["default"].createElement("div",{className:"clearfix"}),m["default"].createElement(_["default"],{label:gettext("Category"),"for":"id_category",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.category},m["default"].createElement(w["default"],{id:"id_category",onChange:this.onCategoryChange,value:this.state.category,choices:this.state.categories})),m["default"].createElement("div",{className:"clearfix"}),this.renderWeightField(),this.renderHiddenField(),this.renderClosedField()),m["default"].createElement("div",{className:"modal-footer"},m["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",disabled:this.state.isLoading,type:"button"},gettext("Cancel")),m["default"].createElement(b["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Split posts")))))}}]),t}(y["default"])},{"../../../../reducers/post":324,"../../../../services/ajax":336,"../../../../services/modal":342,"../../../../services/snackbar":347,"../../../../services/store":348,"../../../../utils/validators":364,"../../../button":5,"../../../category-select":18,"../../../form":52,"../../../form-group":51,"../../../modal-loader":57,"../../../select":188,react:"react"}],199:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("./merge"),f=r(d),p=e("./move"),m=r(p),h=e("../../../../reducers/thread"),b=n(h),v=e("../../../../services/ajax"),y=r(v),g=e("../../../../services/modal"),_=r(g),E=e("../../../../services/snackbar"),w=r(E),O=e("../../../../services/store"),k=r(O),x=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.callApi=function(e,t){k["default"].dispatch(b.busy()),e.push({op:"add",path:"acl",value:!0}),y["default"].patch(n.props.thread.api.index,e).then(function(e){k["default"].dispatch(b.update(e)),k["default"].dispatch(b.release()),w["default"].success(t)},function(e){k["default"].dispatch(b.release()),400===e.status?w["default"].error(e.detail[0]):w["default"].apiError(e)})},n.pinGlobally=function(){n.callApi([{op:"replace",path:"weight",value:2}],gettext("Thread has been pinned globally."))},n.pinLocally=function(){n.callApi([{op:"replace",path:"weight",value:1}],gettext("Thread has been pinned locally."))},n.unpin=function(){n.callApi([{op:"replace",path:"weight",value:0}],gettext("Thread has been unpinned."))},n.approve=function(){n.callApi([{op:"replace",path:"is-unapproved",value:!1}],gettext("Thread has been approved."))},n.open=function(){n.callApi([{op:"replace",path:"is-closed",value:!1}],gettext("Thread has been opened."))},n.close=function(){n.callApi([{op:"replace",path:"is-closed",value:!0}],gettext("Thread has been closed."))},n.unhide=function(){n.callApi([{op:"replace",path:"is-hidden",value:!1}],gettext("Thread has been made visible."))},n.hide=function(){n.callApi([{op:"replace",path:"is-hidden",value:!0}],gettext("Thread has been made hidden."))},n.move=function(){_["default"].show(c["default"].createElement(m["default"],{posts:n.props.posts,thread:n.props.thread}))},n.merge=function(){_["default"].show(c["default"].createElement(f["default"],{thread:n.props.thread}))},n["delete"]=function(){confirm(gettext("Are you sure you want to delete this thread?"))&&(k["default"].dispatch(b.busy()),y["default"]["delete"](n.props.thread.api.index).then(function(e){w["default"].success(gettext("Thread has been deleted.")),window.location=n.props.thread.category.url.index},function(e){k["default"].dispatch(b.release()),w["default"].apiError(e)}))},r=a,l(n,r)}return s(t,e),i(t,[{key:"getPinGloballyButton",value:function(){return 2===this.props.thread.weight?null:this.props.thread.acl.can_pin_globally?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.pinGlobally,type:"button"},c["default"].createElement("span",{className:"material-icon"},"bookmark"),gettext("Pin globally"))):null}},{key:"getPinLocallyButton",value:function(){return 1===this.props.thread.weight?null:this.props.thread.acl.can_pin?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.pinLocally,type:"button"},c["default"].createElement("span",{className:"material-icon"},"bookmark_border"),gettext("Pin locally"))):null}},{key:"getUnpinButton",value:function(){return 0===this.props.thread.weight?null:this.props.thread.acl.can_pin?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.unpin,type:"button"},c["default"].createElement("span",{className:"material-icon"},"panorama_fish_eye"),gettext("Unpin"))):null}},{key:"getMoveButton",value:function(){return this.props.thread.acl.can_move?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.move,type:"button"},c["default"].createElement("span",{className:"material-icon"},"arrow_forward"),gettext("Move"))):null}},{key:"getMergeButton",value:function(){return this.props.thread.acl.can_merge?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.merge,type:"button"},c["default"].createElement("span",{className:"material-icon"},"call_merge"),gettext("Merge"))):null}},{key:"getApproveButton",value:function(){return this.props.thread.is_unapproved&&this.props.thread.acl.can_approve?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.approve,type:"button"},c["default"].createElement("span",{className:"material-icon"},"done"),gettext("Approve"))):null}},{key:"getOpenButton",value:function(){return this.props.thread.is_closed&&this.props.thread.acl.can_close?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.open,type:"button"},c["default"].createElement("span",{className:"material-icon"},"lock_open"),gettext("Open"))):null}},{key:"getCloseButton",value:function(){return this.props.thread.is_closed?null:this.props.thread.acl.can_close?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.close,type:"button"},c["default"].createElement("span",{className:"material-icon"},"lock_outline"),gettext("Close"))):null}},{key:"getUnhideButton",value:function(){return this.props.thread.is_hidden&&this.props.thread.acl.can_unhide?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.unhide,type:"button"},c["default"].createElement("span",{className:"material-icon"},"visibility"),gettext("Unhide"))):null}},{key:"getHideButton",value:function(){return this.props.thread.is_hidden?null:this.props.thread.acl.can_hide?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.hide,type:"button"},c["default"].createElement("span",{className:"material-icon"},"visibility_off"),gettext("Hide"))):null}},{key:"getDeleteButton",value:function(){return this.props.thread.acl.can_delete?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this["delete"],type:"button"},c["default"].createElement("span",{className:"material-icon"},"clear"),gettext("Delete"))):null}},{key:"render",value:function(){return c["default"].createElement("ul",{className:"dropdown-menu dropdown-menu-right stick-to-bottom"},this.getPinGloballyButton(),this.getPinLocallyButton(),this.getUnpinButton(),this.getMoveButton(),this.getMergeButton(),this.getApproveButton(),this.getOpenButton(),this.getCloseButton(),this.getUnhideButton(),this.getHideButton(),this.getDeleteButton())}}]),t}(c["default"].Component);a["default"]=x},{"../../../../reducers/thread":331,"../../../../services/ajax":336,"../../../../services/modal":342,"../../../../services/snackbar":347,"../../../../services/store":348,"./merge":202,"./move":203,react:"react"}],200:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a.isModerationVisible=a.ModerationControls=void 0;var r=e("./controls"),o=n(r),l=e("./is-visible"),s=n(l);a.ModerationControls=o["default"],a.isModerationVisible=s["default"]},{"./controls":199,"./is-visible":201}],201:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return!!(e.acl.can_approve&&e.is_unapproved||e.acl.can_close||e.acl.can_delete||e.acl.can_hide||e.acl.can_move||e.acl.can_pin||e.acl.can_pin_globally||e.acl.can_unhide)}},{}],202:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return d["default"].createElement("div",{className:"modal-header"},d["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},d["default"].createElement("span",{"aria-hidden":"true"},"×")),d["default"].createElement("h4",{className:"modal-title"},gettext("Merge thread")))}Object.defineProperty(a,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.ModalHeader=i;var c=e("react"),d=r(c),f=e("../../../form"),p=r(f),m=e("../../../form-group"),h=r(m),b=e("../../../merge-polls"),v=r(b),y=e("../../../../reducers/thread"),g=n(y),_=e("../../../../services/ajax"),E=r(_),w=e("../../../../services/modal"),O=r(w),k=e("../../../../services/snackbar"),x=r(k),N=e("../../../../services/store"),j=r(N),P=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.handleSuccess=function(e){a.handleSuccessUnmounted(e),a.setState({isLoading:!0})},a.handleSuccessUnmounted=function(e){x["default"].success(gettext("Thread has been merged with other one.")),window.location=e.url},a.handleError=function(e){j["default"].dispatch(g.release()),400===e.status?e.polls?O["default"].show(d["default"].createElement(v["default"],{api:a.props.thread.api.merge,data:{thread_url:a.state.url},polls:e.polls,onError:a.handleError,onSuccess:a.handleSuccessUnmounted})):x["default"].error(e.detail):x["default"].apiError(e)},a.onUrlChange=function(e){a.changeValue("url",e.target.value)},a.state={isLoading:!1,url:"",validators:{url:[]},errors:{}},a}return s(t,e),u(t,[{key:"clean",value:function(){return!!this.state.url.trim().length||(x["default"].error(gettext("You have to enter link to the other thread.")),!1)}},{key:"send",value:function(){return j["default"].dispatch(g.busy()),E["default"].post(this.props.thread.api.merge,{thread_url:this.state.url})}},{key:"render",value:function(){return d["default"].createElement("div",{className:"modal-dialog",role:"document"},d["default"].createElement("form",{onSubmit:this.handleSubmit},d["default"].createElement("div",{className:"modal-content"},d["default"].createElement(i,null),d["default"].createElement("div",{className:"modal-body"},d["default"].createElement(h["default"],{"for":"id_url",label:gettext("Link to thread you want to merge with"),help_text:gettext("Merge will delete current thread and move its contents to the thread specified here.")},d["default"].createElement("input",{className:"form-control",disabled:this.state.isLoading||this.props.thread.isBusy,id:"id_url",onChange:this.onUrlChange,value:this.state.url}))),d["default"].createElement("div",{className:"modal-footer"},d["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",disabled:this.state.isLoading,type:"button"},gettext("Cancel")),d["default"].createElement("button",{className:"btn btn-primary",loading:this.state.isLoading||this.props.thread.isBusy},gettext("Merge thread"))))))}}]),t}(p["default"]);a["default"]=P},{"../../../../reducers/thread":331,"../../../../services/ajax":336,"../../../../services/modal":342,"../../../../services/snackbar":347,"../../../../services/store":348,"../../../form":52,"../../../form-group":51,"../../../merge-polls":55,react:"react"}],203:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return p["default"].createElement("div",{className:"modal-header"},p["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},p["default"].createElement("span",{"aria-hidden":"true"},"×")),p["default"].createElement("h4",{className:"modal-title"},gettext("Move thread")))}function u(e){return p["default"].createElement("div",{className:"modal-dialog",role:"document"},p["default"].createElement("div",{className:"modal-content"},p["default"].createElement(i,null),p["default"].createElement(E["default"],null)))}function c(e){return p["default"].createElement("div",{className:"modal-dialog modal-message",role:"document"},p["default"].createElement("div",{className:"modal-content"},p["default"].createElement(i,null),p["default"].createElement("div",{className:"message-icon"},p["default"].createElement("span",{className:"material-icon"},"info_outline")),p["default"].createElement("div",{className:"message-body"},p["default"].createElement("p",{className:"lead"},gettext("You can't move this thread at the moment.")),p["default"].createElement("p",null,e.message),p["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",type:"button"},gettext("Ok")))))}Object.defineProperty(a,"__esModule",{value:!0});var d=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.ModalHeader=i,a.ModalLoading=u,a.ModalMessage=c;var f=e("react"),p=r(f),m=e("../../../form"),h=r(m),b=e("../../../form-group"),v=r(b),y=e("../../../category-select"),g=r(y),_=e("../../../modal-loader"),E=r(_),w=e("../../../../reducers/posts"),O=n(w),k=e("../../../../reducers/thread"),x=n(k),N=e("../../../.."),j=r(N),P=e("../../../../services/ajax"),C=r(P),S=e("../../../../services/modal"),M=r(S),T=e("../../../../services/snackbar"),L=r(T),R=e("../../../../services/store"),A=r(R),I=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onCategoryChange=function(e){a.changeValue("category",e.target.value)},a.state={isReady:!1,isLoading:!1,isError:!1,category:null,categories:[]},a}return s(t,e),d(t,[{key:"componentDidMount",value:function(){var e=this;C["default"].get(j["default"].get("THREAD_EDITOR_API")).then(function(t){var a=null,n=t.map(function(e){return e.post===!1||a||(a=e.id),Object.assign(e,{disabled:e.post===!1,label:e.name,value:e.id})});e.setState({isReady:!0,category:a,categories:n})},function(t){e.setState({isError:t.detail})})}},{key:"send",value:function(){return A["default"].dispatch(x.busy()),C["default"].patch(this.props.thread.api.index,[{op:"replace",path:"category",value:this.state.category}])}},{key:"handleSuccess",value:function(){C["default"].get(this.props.thread.api.posts.index,{page:this.props.posts.page}).then(function(e){A["default"].dispatch(x.replace(e)),A["default"].dispatch(O.load(e.post_set)),A["default"].dispatch(x.release()),L["default"].success(gettext("Thread has been moved.")),M["default"].hide()},function(e){A["default"].dispatch(x.release()),L["default"].apiError(e)})}},{key:"handleError",value:function(e){400===e.status?L["default"].error(e.detail[0]):L["default"].apiError(e)}},{key:"render",value:function(){return this.state.isReady?p["default"].createElement("div",{className:"modal-dialog",role:"document"},p["default"].createElement("form",{onSubmit:this.handleSubmit},p["default"].createElement("div",{className:"modal-content"},p["default"].createElement(i,null),p["default"].createElement("div",{className:"modal-body"},p["default"].createElement(v["default"],{"for":"id_category",label:gettext("New category")},p["default"].createElement(g["default"],{choices:this.state.categories,disabled:this.state.isLoading||this.props.thread.isBusy,id:"id_category",onChange:this.onCategoryChange,value:this.state.category}))),p["default"].createElement("div",{className:"modal-footer"},p["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",disabled:this.state.isLoading,type:"button"},gettext("Cancel")),p["default"].createElement("button",{className:"btn btn-primary",loading:this.state.isLoading||this.props.thread.isBusy},gettext("Move thread")))))):this.state.isError?p["default"].createElement(c,{message:this.state.isError}):p["default"].createElement(u,null)}}]),t}(h["default"]);a["default"]=I},{"../../../..":275,"../../../../reducers/posts":325,"../../../../reducers/thread":331,"../../../../services/ajax":336,"../../../../services/modal":342,"../../../../services/snackbar":347,"../../../../services/store":348,"../../../category-select":18,"../../../form":52,"../../../form-group":51,"../../../modal-loader":57,react:"react"}],204:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return d["default"].createElement("div",{className:"row row-paginator"},d["default"].createElement("div",{className:"col-xs-3"},d["default"].createElement(o,e)),d["default"].createElement("div",{className:"col-xs-3"},d["default"].createElement(l,e)),d["default"].createElement("div",{className:"col-xs-3"},d["default"].createElement(s,e)),d["default"].createElement("div",{className:"col-xs-3"},d["default"].createElement(i,e)))}function o(e){return e.posts.isLoaded&&e.posts.first?d["default"].createElement(f.Link,{className:"btn btn-default btn-block btn-outline btn-icon",to:e.thread.url.index,title:gettext("Go to first page")},d["default"].createElement("span",{className:"material-icon"},"first_page")):d["default"].createElement("span",{className:"btn btn-default btn-block btn-outline btn-icon disabled",title:gettext("Go to first page")},d["default"].createElement("span",{className:"material-icon"},"first_page"))}function l(e){if(e.posts.isLoaded&&e.posts.page>1){var t="";return e.posts.previous&&(t=e.posts.previous+"/"),d["default"].createElement(f.Link,{className:"btn btn-default btn-block btn-outline btn-icon",to:e.thread.url.index+t,title:gettext("Go to previous page")},d["default"].createElement("span",{className:"material-icon"},"chevron_left"))}return d["default"].createElement("span",{className:"btn btn-default btn-block btn-outline btn-icon disabled",title:gettext("Go to previous page")},d["default"].createElement("span",{className:"material-icon"},"chevron_left"))}function s(e){if(e.posts.isLoaded&&e.posts.more){var t="";return e.posts.next&&(t=e.posts.next+"/"),d["default"].createElement(f.Link,{className:"btn btn-default btn-block btn-outline btn-icon",to:e.thread.url.index+t,title:gettext("Go to next page")},d["default"].createElement("span",{className:"material-icon"},"chevron_right"))}return d["default"].createElement("span",{className:"btn btn-default btn-block btn-outline btn-icon disabled",title:gettext("Go to next page")},d["default"].createElement("span",{className:"material-icon"},"chevron_right"))}function i(e){return e.posts.isLoaded&&e.posts.last?d["default"].createElement(f.Link,{className:"btn btn-default btn-block btn-outline btn-icon",to:e.thread.url.index+e.posts.last+"/",title:gettext("Go to last page")},d["default"].createElement("span",{className:"material-icon"},"last_page")):d["default"].createElement("span",{className:"btn btn-default btn-block btn-outline btn-icon disabled",title:gettext("Go to last page")},d["default"].createElement("span",{className:"material-icon"},"last_page"))}function u(e){var t=null;return e.more?(t=ngettext("There is %(more)s more post in this thread.","There are %(more)s more posts in this thread.",e.more),t=interpolate(t,{more:e.more},!0)):t=gettext("There are no more posts in this thread."),d["default"].createElement("p",null,t)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return d["default"].createElement("nav",{className:"misago-pagination pull-left"},d["default"].createElement(r,e),d["default"].createElement(u,{more:e.posts.more}))},a.Pager=r,a.FirstPage=o,a.PreviousPage=l,a.NextPage=s,a.LastPage=i,a.More=u;var c=e("react"),d=n(c),f=e("react-router")},{react:"react","react-router":"react-router"}],205:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return o["default"].createElement("button",{className:e.className||"btn btn-primary btn-outline",onClick:e.onClick,type:"button"},o["default"].createElement("span",{className:"material-icon"},"chat"),gettext("Reply"))};var r=e("react"),o=n(r)},{react:"react"}],206:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return{participants:e.participants,poll:e.poll,posts:e.posts,thread:e.thread,tick:e.tick.tick,user:e.auth.user}}function o(){var e=c["default"].get("THREAD"),t=e.url.index.replace(e.slug+"-"+e.pk,":slug");return[{path:t,component:(0,l.connect)(r)(i["default"])},{path:t+":page/",component:(0,l.connect)(r)(i["default"])}]}Object.defineProperty(a,"__esModule",{value:!0}),a.select=r,a.paths=o;var l=e("react-redux"),s=e("./route"),i=n(s),u=e("../../index"),c=n(u)},{"../../index":275,"./route":207,"react-redux":"react-redux"}],207:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),c=e("react"),d=r(c),f=e("../participants"),p=r(f),m=e("../poll"),h=e("../posts-list"),b=r(h),v=e("./header"),y=r(v),g=e("./toolbar-top"),_=r(g),E=e("./toolbar-bottom"),w=r(E),O=e("../../reducers/participants"),k=n(O),x=e("../../reducers/poll"),N=n(x),j=e("../../reducers/posts"),P=n(j),C=e("../../reducers/thread"),S=n(C),M=e("../../services/ajax"),T=r(M),L=e("../../services/polls"),R=r(L),A=e("../../services/snackbar"),I=r(A),D=e("../../services/posting"),U=r(D),B=e("../../services/store"),H=r(B),z=e("../../services/page-title"),F=r(z),q=function(e){
 function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.update=function(e){H["default"].dispatch(S.replace(e)),H["default"].dispatch(P.load(e.post_set)),e.participants&&H["default"].dispatch(k.replace(e.participants)),e.poll&&H["default"].dispatch(N.replace(e.poll)),n.setPageTitle()},n.openReplyForm=function(){U["default"].open({mode:"REPLY",config:n.props.thread.api.editor,submit:n.props.thread.api.posts.index})},r=a,l(n,r)}return s(t,e),u(t,[{key:"componentDidMount",value:function(){this.shouldFetchData()&&(this.fetchData(),this.setPageTitle()),this.startPollingApi()}},{key:"componentDidUpdate",value:function(){this.shouldFetchData()&&(this.fetchData(),this.startPollingApi(),this.setPageTitle())}},{key:"componentWillUnmount",value:function(){this.stopPollingApi()}},{key:"shouldFetchData",value:function(){if(this.props.posts.isLoaded){var e=1*(this.props.params.page||1);return e!=this.props.posts.page}return!1}},{key:"fetchData",value:function(){var e=this;H["default"].dispatch(P.unload()),T["default"].get(this.props.thread.api.posts.index,{page:this.props.params.page||1},"posts").then(function(t){e.update(t)},function(e){I["default"].apiError(e)})}},{key:"startPollingApi",value:function(){R["default"].start({poll:"thread-posts",url:this.props.thread.api.posts.index,data:{page:this.props.params.page||1},update:this.update,frequency:12e4,delayed:!0})}},{key:"stopPollingApi",value:function(){R["default"].stop("thread-posts")}},{key:"setPageTitle",value:function(){F["default"].set({title:this.props.thread.title,parent:this.props.thread.category.name,page:1*(this.props.params.page||1)})}},{key:"render",value:function(){var e="page page-thread";return this.props.thread.category.css_class&&(e+=" page-thread-"+this.props.thread.category.css_class),d["default"].createElement("div",{className:e},d["default"].createElement("div",{className:"page-header-bg"},d["default"].createElement(y["default"],this.props)),d["default"].createElement("div",{className:"container"},d["default"].createElement(_["default"],i({openReplyForm:this.openReplyForm},this.props)),d["default"].createElement(m.Poll,{poll:this.props.poll,thread:this.props.thread,user:this.props.user}),d["default"].createElement(p["default"],{participants:this.props.participants,thread:this.props.thread,user:this.props.user}),d["default"].createElement(b["default"],this.props),d["default"].createElement(w["default"],i({openReplyForm:this.openReplyForm},this.props))))}}]),t}(d["default"].Component);a["default"]=q},{"../../reducers/participants":322,"../../reducers/poll":323,"../../reducers/posts":325,"../../reducers/thread":331,"../../services/ajax":336,"../../services/page-title":344,"../../services/polls":345,"../../services/posting":346,"../../services/snackbar":347,"../../services/store":348,"../participants":79,"../poll":84,"../posts-list":129,"./header":192,"./toolbar-bottom":209,"./toolbar-top":210,react:"react"}],208:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return e===!0?"star":e===!1?"star_half":"star_border"}function u(e){return e===!0?gettext("E-mail"):e===!1?gettext("Enabled"):gettext("Disabled")}function c(e){return m["default"].createElement("ul",{className:e.dropdownClassName||"dropdown-menu stick-to-bottom"},m["default"].createElement(O,e),m["default"].createElement(k,e),m["default"].createElement(x,e))}function d(e,t,a){var n={subscription:e.subscription};w["default"].dispatch(b.update({subscription:t})),y["default"].patch(e.api.index,[{op:"replace",path:"subscription",value:a}]).then(function(e){w["default"].dispatch(b.update(e))},function(e){400===e.status?_["default"].error(e.detail[0]):_["default"].apiError(e),w["default"].dispatch(b.update(n))})}Object.defineProperty(a,"__esModule",{value:!0}),a.Email=a.Enable=a.Disable=void 0;var f=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a["default"]=function(e){return e.user.id?m["default"].createElement("div",{className:e.className},m["default"].createElement("button",{"aria-expanded":"true","aria-haspopup":"true",className:"btn btn-default dropdown-toggle btn-block btn-outline","data-toggle":"dropdown",type:"button"},m["default"].createElement("span",{className:"material-icon"},i(e.thread.subscription)),u(e.thread.subscription)),m["default"].createElement(c,e)):null},a.getIcon=i,a.getLabel=u,a.Dropdown=c,a.update=d;var p=e("react"),m=r(p),h=e("../../reducers/thread"),b=n(h),v=e("../../services/ajax"),y=r(v),g=e("../../services/snackbar"),_=r(g),E=e("../../services/store"),w=r(E),O=a.Disable=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){null!==n.props.thread.subscription&&d(n.props.thread,null,"unsubscribe")},r=a,l(n,r)}return s(t,e),f(t,[{key:"render",value:function(){return m["default"].createElement("li",null,m["default"].createElement("button",{className:"btn btn-link",onClick:this.onClick},m["default"].createElement("span",{className:"material-icon"},"star_border"),gettext("Unsubscribe")))}}]),t}(m["default"].Component),k=a.Enable=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){n.props.thread.subscription!==!1&&d(n.props.thread,!1,"notify")},r=a,l(n,r)}return s(t,e),f(t,[{key:"render",value:function(){return m["default"].createElement("li",null,m["default"].createElement("button",{className:"btn btn-link",onClick:this.onClick},m["default"].createElement("span",{className:"material-icon"},"star_half"),gettext("Subscribe")))}}]),t}(m["default"].Component),x=a.Email=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){n.props.thread.subscription!==!0&&d(n.props.thread,!0,"email")},r=a,l(n,r)}return s(t,e),f(t,[{key:"render",value:function(){return m["default"].createElement("li",null,m["default"].createElement("button",{className:"btn btn-link",onClick:this.onClick},m["default"].createElement("span",{className:"material-icon"},"star"),gettext("Subscribe with e-mail")))}}]),t}(m["default"].Component)},{"../../reducers/thread":331,"../../services/ajax":336,"../../services/snackbar":347,"../../services/store":348,react:"react"}],209:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return e.visible?d["default"].createElement("div",{className:"col-md-5"},e.children):null}function o(e){return e.user.id?d["default"].createElement("div",{className:"col-sm-4 hidden-xs"},d["default"].createElement(m["default"],e)):null}function l(e){var t="col-xs-6";return e.thread.acl.can_reply||(t="col-xs-12"),d["default"].createElement("div",{className:t+" col-sm-4"},d["default"].createElement(y["default"],u({btnClassName:"btn-block",className:"dropup"},e)))}function s(e){return e.thread.acl.can_reply?d["default"].createElement("div",{className:"col-xs-6 col-sm-4"},d["default"].createElement(b["default"],{className:"btn btn-primary btn-block btn-outline",onClick:e.onClick})):null}function i(e){return e.thread.acl.can_reply?null:d["default"].createElement("div",{className:"hidden-xs hidden-sm col-sm-4"})}Object.defineProperty(a,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return d["default"].createElement("div",{className:"row row-toolbar"},d["default"].createElement("div",{className:"col-xs-12 text-center visible-xs-block"},d["default"].createElement(f.More,{more:e.posts.more}),d["default"].createElement("div",{className:"toolbar-vertical-spacer"})),d["default"].createElement("div",{className:"col-md-7"},d["default"].createElement("div",{className:"row"},d["default"].createElement("div",{className:"col-sm-4 col-md-5"},d["default"].createElement(f.Pager,e)),d["default"].createElement("div",{className:"col-sm-8 col-md-7 hidden-xs"},d["default"].createElement(f.More,{more:e.posts.more})))),d["default"].createElement(r,{visible:!!e.user.id},d["default"].createElement("div",{className:"toolbar-vertical-spacer hidden-md hidden-lg"}),d["default"].createElement("div",{className:"row"},d["default"].createElement(i,e),d["default"].createElement(o,e),d["default"].createElement(l,e),d["default"].createElement(s,{thread:e.thread,onClick:e.openReplyForm}))))},a.Options=r,a.Moderation=o,a.Subscription=l,a.Reply=s,a.Spacer=i;var c=e("react"),d=n(c),f=e("./paginator"),p=e("./moderation/posts"),m=n(p),h=e("./reply-button"),b=n(h),v=e("./subscription"),y=n(v)},{"./moderation/posts":196,"./paginator":204,"./reply-button":205,"./subscription":208,react:"react"}],210:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){var t=e.user,a="col-xs-3 col-sm-3 col-md-5";return t.is_anonymous&&(a="col-xs-12 col-sm-3 col-md-5"),E["default"].createElement("div",{className:a},E["default"].createElement("div",{className:"row hidden-xs hidden-sm"},E["default"].createElement(c,{thread:e.thread}),E["default"].createElement(i,{thread:e.thread}),E["default"].createElement(u,{thread:e.thread})),E["default"].createElement(d,e))}function i(e){return e.thread.is_new?E["default"].createElement("div",{className:"col-sm-4"},E["default"].createElement("a",{href:e.thread.url.new_post,className:"btn btn-default btn-block btn-outline",title:gettext("Go to first new post")},gettext("New"))):null}function u(e){return e.thread.has_unapproved_posts&&e.thread.acl.can_approve?E["default"].createElement("div",{className:"col-sm-4"},E["default"].createElement("a",{href:e.thread.url.unapproved_post,className:"btn btn-default btn-block btn-outline",title:gettext("Go to first unapproved post")},gettext("Unapproved"))):null}function c(e){return E["default"].createElement("div",{className:"col-sm-4"},E["default"].createElement("a",{href:e.thread.url.last_post,className:"btn btn-default btn-block btn-outline",title:gettext("Go to last post")},gettext("Last")))}function d(e){var t=e.user;return t.is_anonymous?E["default"].createElement("div",{className:"visible-xs-block visible-sm-block"},E["default"].createElement("a",{href:e.thread.url.last_post,className:"btn btn-default btn-block btn-outline"},gettext("Last post"))):E["default"].createElement("div",{className:"dropdown visible-xs-block visible-sm-block"},E["default"].createElement("button",{"aria-expanded":"true","aria-haspopup":"true",className:"btn btn-default dropdown-toggle btn-block btn-outline","data-toggle":"dropdown",type:"button"},E["default"].createElement("span",{className:"material-icon"},"expand_more"),E["default"].createElement("span",{className:"btn-text hidden-xs"},gettext("Options"))),E["default"].createElement("ul",{className:"dropdown-menu"},E["default"].createElement(C,e),E["default"].createElement(f,e),E["default"].createElement(p,e),E["default"].createElement(m,e)))}function f(e){return e.thread.is_new?E["default"].createElement("li",null,E["default"].createElement("a",{href:e.thread.url.new_post,className:"btn btn-link"},gettext("Go to first new post"))):null}function p(e){return e.thread.has_unapproved_posts&&e.thread.acl.can_approve?E["default"].createElement("li",null,E["default"].createElement("a",{href:e.thread.url.unapproved_post,className:"btn btn-link"},gettext("Go to first unapproved post"))):null}function m(e){return E["default"].createElement("li",null,E["default"].createElement("a",{href:e.thread.url.last_post,className:"btn btn-link"},gettext("Go to last post")))}function h(e){return e.thread.acl.can_reply?E["default"].createElement("div",{className:"col-sm-4 hidden-xs"},E["default"].createElement(O["default"],{className:"btn btn-primary btn-block btn-outline",onClick:e.openReplyForm})):null}function b(e){return e.user.id?E["default"].createElement("div",{className:"col-xs-12 col-sm-4"},E["default"].createElement(x["default"],g({className:"dropdown",dropdownClassName:"dropdown-menu dropdown-menu-right stick-to-bottom"},e))):null}function v(e){return e.visible?E["default"].createElement("div",{className:"col-sm-4 hidden-xs"}):null}Object.defineProperty(a,"__esModule",{value:!0}),a.StartPollCompact=a.StartPoll=void 0;var y=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),g=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){var t=!e.thread.acl.can_start_poll||e.thread.poll;return E["default"].createElement("div",{className:"row row-toolbar row-toolbar-bottom-margin"},E["default"].createElement(s,e),E["default"].createElement("div",{className:"col-xs-9 col-md-5 col-md-offset-2"},E["default"].createElement("div",{className:"row"},E["default"].createElement(v,{visible:!e.user.id}),E["default"].createElement(v,{visible:t}),E["default"].createElement(b,e),E["default"].createElement(P,e),E["default"].createElement(h,e))))},a.GotoMenu=s,a.GotoNew=i,a.GotoUnapproved=u,a.GotoLast=c,a.CompactOptions=d,a.GotoNewCompact=f,a.GotoUnapprovedCompact=p,a.GotoLastCompact=m,a.Reply=h,a.SubscriptionMenu=b,a.Spacer=v;var _=e("react"),E=n(_),w=e("./reply-button"),O=n(w),k=e("./subscription"),x=n(k),N=e("../../services/posting"),j=n(N),P=a.StartPoll=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){j["default"].open({mode:"POLL",submit:n.props.thread.api.poll,thread:n.props.thread,poll:null})},l=a,o(n,l)}return l(t,e),y(t,[{key:"render",value:function(){return!this.props.thread.acl.can_start_poll||this.props.thread.poll?null:E["default"].createElement("div",{className:"col-sm-4 hidden-xs"},E["default"].createElement("button",{className:"btn btn-default btn-block btn-outline",onClick:this.onClick,type:"button"},E["default"].createElement("span",{className:"material-icon"},"poll"),gettext("Add poll")))}}]),t}(E["default"].Component),C=a.StartPollCompact=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),y(t,[{key:"render",value:function(){return!this.props.thread.acl.can_start_poll||this.props.thread.poll?null:E["default"].createElement("li",null,E["default"].createElement("button",{className:"btn btn-link",onClick:this.onClick,type:"button"},gettext("Add poll")))}}]),t}(P)},{"../../services/posting":346,"./reply-button":205,"./subscription":208,react:"react"}],211:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return e.isLoaded?0===e.threads.length?o["default"].createElement(s["default"],{diffSize:e.diffSize,applyDiff:e.applyDiff},e.children):o["default"].createElement(u["default"],{activeCategory:e.category,categories:e.categories,list:e.list,threads:e.threads,diffSize:e.diffSize,applyDiff:e.applyDiff,showOptions:e.showOptions,selection:e.selection,busyThreads:e.busyThreads}):o["default"].createElement(d["default"],null)};var r=e("react"),o=n(r),l=e("./list/empty"),s=n(l),i=e("./list/ready"),u=n(i),c=e("./list/preview"),d=n(c)},{"./list/empty":213,"./list/preview":214,"./list/ready":215,react:"react"}],212:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=ngettext("There is %(threads)s new or updated thread. Click this message to show it.","There are %(threads)s new or updated threads. Click this message to show them.",e);return interpolate(t,{threads:e},!0)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.diffSize,a=e.applyDiff;return 0===t?null:l["default"].createElement("li",{className:"list-group-item threads-diff-message"},l["default"].createElement("button",{type:"button",className:"btn btn-block btn-default",onClick:a},l["default"].createElement("span",{className:"material-icon"},"cached"),l["default"].createElement("span",{className:"diff-message"},r(t))))},a.getMessage=r;var o=e("react"),l=n(o)},{react:"react"}],213:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./diff-message"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getDiffMessage",value:function(){return 0===this.props.diffSize?null:u["default"].createElement(d["default"],{applyDiff:this.props.applyDiff,diffSize:this.props.diffSize})}},{key:"render",value:function(){return u["default"].createElement("div",{className:"threads-list ui-ready"},u["default"].createElement("ul",{className:"list-group"},this.getDiffMessage(),this.props.children))}}]),t}(u["default"].Component);a["default"]=f},{"./diff-message":212,react:"react"}],214:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../thread/preview"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"render",value:function(){return u["default"].createElement("div",{className:"threads-list ui-preview"},u["default"].createElement("ul",{className:"list-group"},u["default"].createElement(d["default"],null)))}}]),t}(u["default"].Component);a["default"]=f},{"../thread/preview":222,react:"react"}],215:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return o["default"].createElement("div",{className:"threads-list ui-ready"},o["default"].createElement("ul",{className:"list-group"},o["default"].createElement(s["default"],{diffSize:e.diffSize,applyDiff:e.applyDiff}),e.threads.map(function(t){return o["default"].createElement(u["default"],{activeCategory:e.activeCategory,categories:e.categories,list:e.list,thread:t,showOptions:e.showOptions,isSelected:e.selection.indexOf(t.id)>=0,isBusy:e.busyThreads.indexOf(t.id)>=0,key:t.id})})))};var r=e("react"),o=n(r),l=e("./diff-message"),s=n(l),i=e("../thread/ready"),u=n(i)},{"../thread/ready":223,"./diff-message":212,react:"react"}],216:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=e.display,a=e.textClassName;return t?d["default"].createElement("span",{className:"thread-detail-hidden"},d["default"].createElement("span",{className:"material-icon"},"visibility_off"),d["default"].createElement("span",{className:a},gettext("Hidden"))):null}function o(e){var t=e.display,a=e.textClassName;return t?d["default"].createElement("span",{className:"thread-detail-closed"},d["default"].createElement("span",{className:"material-icon"},"lock_outline"),d["default"].createElement("span",{className:a},gettext("Closed"))):null}function l(e){var t=e.display,a=e.textClassName;return t?d["default"].createElement("span",{className:"thread-detail-poll"},d["default"].createElement("span",{className:"material-icon"},"assessment"),d["default"].createElement("span",{className:a},gettext("Poll"))):null}function s(e){var t=e.replies,a=e.forceFullText,n=ngettext("%(replies)s reply","%(replies)s replies",t),r="",o="";return a?(r="detail-text hide",o="detail-text"):(r="detail-text visible-xs-inline-block",o="detail-text hidden-xs"),d["default"].createElement("span",{className:"thread-detail-replies"},d["default"].createElement("span",{className:"material-icon"},"forum"),d["default"].createElement("span",{className:r},t),d["default"].createElement("span",{className:o},interpolate(n,{replies:t},!0)))}function i(e){var t=e.datetime,a=e.url;return d["default"].createElement("a",{className:"visible-sm-inline-block thread-detail-last-reply",href:a,title:t.format("LLL")},t.fromNow(!0))}function u(e){var t=e.posterName,a=e.url,n="visible-sm-inline-block item-title thread-last-poster";return a?d["default"].createElement("a",{className:n,href:a},t):d["default"].createElement("span",{className:n},t)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category,a=e.isBusy,n=e.showOptions,c=e.isSelected,f=e.thread,h="col-xs-12 col-sm-12";n&&(h=f.moderation.length?"col-xs-6 col-sm-12":"col-xs-9 col-sm-12");var b=0;f.is_hidden&&(b+=1),f.is_closed&&(b+=1),f.has_poll&&(b+=1);var v=n&&3===b,y="detail-text hidden-xs";return v&&(y+=" hidden-sm"),d["default"].createElement("div",{className:"row thread-details-bottom"},d["default"].createElement("div",{className:h},d["default"].createElement(p["default"],{className:"item-title thread-detail-category hidden-xs",category:t}),d["default"].createElement(r,{textClassName:y,display:f.is_hidden}),d["default"].createElement(o,{textClassName:y,display:f.is_closed}),d["default"].createElement(l,{textClassName:y,display:f.has_poll}),d["default"].createElement(s,{forceFullText:!n||b<2,replies:f.replies}),d["default"].createElement(i,{datetime:f.last_post_on,url:f.url.last_post}),d["default"].createElement(u,{posterName:f.last_poster_name,url:f.url.last_poster})),d["default"].createElement(m.OptionsXs,{disabled:a,display:n,isSelected:c,thread:f}))},a.HiddenLabel=r,a.ClosedLabel=o,a.PollLabel=l,a.RepliesLabel=s,a.LastReplyLabel=i,a.LastPoster=u;var c=e("react"),d=n(c),f=e("./category"),p=n(f),m=e("../options")},{"../options":221,"./category":217,react:"react"}],217:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category,a=e.className;return t?(t.css_class&&(a+=" thread-detail-category-"+t.css_class),o["default"].createElement("a",{className:a,href:t.url.index},t.name)):null};var r=e("react"),o=n(r)},{react:"react"}],218:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a.TopDetails=a.BottomDetails=void 0;var r=e("./bottom"),o=n(r),l=e("./top"),s=n(l);a.BottomDetails=o["default"],a.TopDetails=s["default"]},{"./bottom":216,"./top":219}],219:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=e.isRead,a=e.url;return t?null:c["default"].createElement("a",{className:"thread-detail-new",href:a},c["default"].createElement("span",{className:"material-icon"},"comment"),c["default"].createElement("span",{className:"detail-text"},gettext("New posts")))}function o(e){var t=e.weight;if(0===t)return null;var a="thread-detail-pinned-globally",n="bookmark",r=gettext("Pinned globally");return 1===t&&(a="thread-detail-pinned-locally",n="bookmark_border",r=gettext("Pinned locally")),c["default"].createElement("span",{className:a},c["default"].createElement("span",{className:"material-icon"},n),c["default"].createElement("span",{className:"detail-text"},r))}function l(e){var t=e.posts,a=e.thread;if(!t&&!a)return null;var n="thread-detail-unapproved-posts",r="remove_circle_outline",o=gettext("Unapproved posts");return a&&(n="thread-detail-unapproved",r="remove_circle",o=gettext("Unapproved")),c["default"].createElement("span",{className:n},c["default"].createElement("span",{className:"material-icon"},r),c["default"].createElement("span",{className:"detail-text"},o))}function s(e){var t=e.datetime,a=e.url;return c["default"].createElement("a",{className:"visible-xs-inline-block thread-detail-last-reply",href:a,title:t.format("LLL")},t.fromNow(!0))}function i(e){var t=e.posterName,a=e.url;return a?c["default"].createElement("a",{className:"visible-xs-inline-block item-title thread-last-poster",href:a},t):c["default"].createElement("span",{className:"visible-xs-inline-block item-title thread-last-poster"},t)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category,a=e.thread;return c["default"].createElement("div",{className:"thread-details-top"},c["default"].createElement(r,{isRead:a.is_read,url:a.url.new_post}),c["default"].createElement(o,{weight:a.weight}),c["default"].createElement(l,{thread:a.is_unapproved,posts:a.has_unapproved_posts}),c["default"].createElement(f["default"],{className:"item-title thread-detail-category visible-xs-inline-block",category:t}),c["default"].createElement(s,{datetime:a.last_post_on,url:a.url.last_post}),c["default"].createElement(i,{posterName:a.last_poster_name,url:a.url.last_poster}))},a.NewLabel=r,a.PinnedLabel=o,a.UnapprovedLabel=l,a.LastReplyLabel=s,a.LastPoster=i;var u=e("react"),c=n(u),d=e("./category"),f=n(d)},{"./category":217,react:"react"}],220:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=e.datetime,a=e.url;return l["default"].createElement("a",{className:"thread-last-reply",href:a,title:t.format("LLL")},t.fromNow(!0))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.thread;return l["default"].createElement("div",{className:"media"},l["default"].createElement("div",{className:"media-left"},l["default"].createElement(c["default"],{className:"thread-last-poster-avatar",title:t.last_poster_name,url:t.url.last_poster},l["default"].createElement(i["default"],{className:"media-object",size:40,user:t.last_poster}))),l["default"].createElement("div",{className:"media-body"},l["default"].createElement(c["default"],{className:"item-title thread-last-poster",url:t.url.last_poster},t.last_poster_name),l["default"].createElement(r,{datetime:t.last_post_on,url:t.url.last_post})))},a.Timestamp=r;var o=e("react"),l=n(o),s=e("../../avatar"),i=n(s),u=e("./user-url"),c=n(u)},{"../../avatar":3,"./user-url":228,react:"react"}],221:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){var t=e.display,a=e.disabled,n=e.isSelected,r=e.thread;if(!t)return null;var o="col-sm-2 col-md-2 hidden-xs";return r.moderation.length&&(o="col-sm-3 col-md-2 hidden-xs"),f["default"].createElement("div",{className:o},f["default"].createElement("div",{className:"row thread-options"},f["default"].createElement(b["default"],{thread:r,disabled:a}),f["default"].createElement(m["default"],{thread:r,disabled:a}),f["default"].createElement(E,{thread:r,disabled:a,isSelected:n})))}function u(e){var t=e.display,a=e.disabled,n=e.isSelected,r=e.thread;if(!t)return null;var o="";return o+=r.moderation.length?"col-xs-6":"col-xs-3",o+=" visible-xs-block thread-options-xs",f["default"].createElement("div",{className:o},f["default"].createElement("div",{className:"row thread-options"},f["default"].createElement(b["default"],{thread:r,disabled:a}),f["default"].createElement(m["default"],{thread:r,disabled:a}),f["default"].createElement(E,{thread:r,disabled:a,isSelected:n})))}Object.defineProperty(a,"__esModule",{value:!0}),a.Checkbox=void 0;var c=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.Options=i,a.OptionsXs=u;var d=e("react"),f=r(d),p=e("./subscription/compact"),m=r(p),h=e("./subscription/full"),b=r(h),v=e("../../../reducers/selection"),y=n(v),g=e("../../../services/store"),_=r(g),E=a.Checkbox=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),
 n.toggleSelection=function(){_["default"].dispatch(y.item(n.props.thread.id))},r=a,l(n,r)}return s(t,e),c(t,[{key:"render",value:function(){var e=this.props,t=e.disabled,a=e.isSelected,n=e.thread;return n.moderation.length?f["default"].createElement("div",{className:"col-xs-6"},f["default"].createElement("button",{className:"btn btn-default btn-icon btn-block",onClick:this.toggleSelection,disabled:t},f["default"].createElement("span",{className:"material-icon"},a?"check_box":"check_box_outline_blank"))):null}}]),t}(f["default"].Component)},{"../../../reducers/selection":329,"../../../services/store":348,"./subscription/compact":224,"./subscription/full":225,react:"react"}],222:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../../../utils/random"),f=n(d),p=function(e){function t(){return o(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return s(t,e),i(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"render",value:function(){return c["default"].createElement("li",{className:"list-group-item thread-preview"},c["default"].createElement("div",{className:"thread-details-top visible-xs-block"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:f["int"](30,80)+"px"}}," "),c["default"].createElement("span",{className:"ui-preview-text",style:{width:f["int"](30,80)+"px"}}," "),c["default"].createElement("span",{className:"ui-preview-text",style:{width:f["int"](30,80)+"px"}}," ")),c["default"].createElement("span",{className:"item-title thread-title"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:f["int"](60,200)+"px"}}," "),c["default"].createElement("span",{className:"ui-preview-text hidden-xs",style:{width:f["int"](60,200)+"px"}}," "),c["default"].createElement("span",{className:"ui-preview-text hidden-xs",style:{width:f["int"](60,200)+"px"}}," ")),c["default"].createElement("div",{className:"thread-details-bottom"},c["default"].createElement("div",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:f["int"](30,80)+"px"}}," "),c["default"].createElement("span",{className:"ui-preview-text",style:{width:f["int"](30,80)+"px"}}," "),c["default"].createElement("span",{className:"ui-preview-text",style:{width:f["int"](30,80)+"px"}}," "))))}}]),t}(c["default"].Component);a["default"]=p},{"../../../utils/random":359,react:"react"}],223:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,a,n){var r=["list-group-item"];return n&&n.css_class&&(r.push("list-group-category-has-flavor"),r.push("list-group-item-category-"+n.css_class)),e?r.push("thread-read"):r.push("thread-new"),t?r.push("thread-busy"):a&&r.push("thread-selected"),r.join(" ")}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.activeCategory,a=e.categories,n=(e.list,e.thread),o=e.isBusy,s=e.isSelected,c=e.showOptions,p=null;t.id!==n.category&&(p=a[n.category]);var h=p||t,b="thread-main col-xs-12";return b+=c?n.moderation.length?" col-sm-9 col-md-7":" col-sm-10 col-md-7":" col-sm-12 col-md-9",l["default"].createElement("li",{className:r(n.is_read,o,s,h)},l["default"].createElement(u.TopDetails,{category:p,thread:n}),l["default"].createElement("div",{className:"row thread-row"},l["default"].createElement("div",{className:b},l["default"].createElement("div",{className:"media"},l["default"].createElement("div",{className:"media-left hidden-xs"},l["default"].createElement(m["default"],{className:"thread-starter-avatar",title:n.starter_name,url:n.url.starter},l["default"].createElement(i["default"],{size:40,user:n.starter}))),l["default"].createElement("div",{className:"media-body"},l["default"].createElement("a",{href:n.url.index,className:"item-title thread-title"},n.title),l["default"].createElement(u.BottomDetails,{category:p,disabled:o,isSelected:s,showOptions:c,thread:n})))),l["default"].createElement("div",{className:"col-md-3 hidden-xs hidden-sm thread-last-action"},l["default"].createElement(d["default"],{thread:n})),l["default"].createElement(f.Options,{disabled:o,display:c,isSelected:s,thread:n})))},a.getClassName=r;var o=e("react"),l=n(o),s=e("../../avatar"),i=n(s),u=e("./details"),c=e("./last-action"),d=n(c),f=e("./options"),p=e("./user-url"),m=n(p)},{"../../avatar":3,"./details":218,"./last-action":220,"./options":221,"./user-url":228,react:"react"}],224:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./full"),d=n(c),f=e("./modal"),p=n(f),m=e("../../../../services/modal"),h=n(m),b=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),c=0;c<s;c++)i[c]=arguments[c];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.showOptions=function(){h["default"].show(u["default"].createElement(p["default"],{thread:n.props.thread}))},l=a,o(n,l)}return l(t,e),s(t,[{key:"render",value:function(){var e=this.props.thread.moderation,t="";return t+=e.length?"col-xs-6":"col-xs-12",t+=" hidden-md hidden-lg",u["default"].createElement("div",{className:t},u["default"].createElement("button",{type:"button",className:this.getClassName(),disabled:this.props.disabled,onClick:this.showOptions},u["default"].createElement("span",{className:"material-icon"},this.getIcon())))}}]),t}(d["default"]);a["default"]=b},{"../../../../services/modal":342,"./full":225,"./modal":226,react:"react"}],225:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){var t=e.moderation,a=e.subscription;if(t.length)return null;var n=gettext("Disabled");return a===!0?n=gettext("E-mail"):a===!1&&(n=gettext("Enabled")),c["default"].createElement("span",{className:"btn-text"},n)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.Label=s;var u=e("react"),c=n(u),d=e("./options"),f=n(d),p=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),i(t,[{key:"getIcon",value:function(){return this.props.thread.subscription===!0?"star":this.props.thread.subscription===!1?"star_half":"star_border"}},{key:"getClassName",value:function(){return this.props.thread.subscription===!0?"btn btn-default btn-icon btn-block btn-subscribe btn-subscribe-full dropdown-toggle":this.props.thread.subscription===!1?"btn btn-default btn-icon btn-block btn-subscribe btn-subscribe-half dropdown-toggle":"btn btn-default btn-icon btn-block btn-subscribe dropdown-toggle"}},{key:"render",value:function(){var e=this.props.thread,t=e.moderation,a=e.subscription,n=!t.length,r=n?"col-xs-12":"col-xs-6";return r+=" hidden-xs hidden-sm",c["default"].createElement("div",{className:r},c["default"].createElement("div",{className:"btn-group btn-group-justified"},c["default"].createElement("div",{className:"btn-group"},c["default"].createElement("button",{type:"button",className:this.getClassName(),disabled:this.props.disabled,"data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},c["default"].createElement("span",{className:"material-icon"},this.getIcon()),c["default"].createElement(s,{moderation:t,subscription:a})),c["default"].createElement(f["default"],{className:"dropdown-menu dropdown-menu-right",thread:this.props.thread}))))}}]),t}(c["default"].Component);a["default"]=p},{"./options":227,react:"react"}],226:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./options"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"render",value:function(){return u["default"].createElement("div",{className:"modal-dialog modal-sm",role:"document"},u["default"].createElement("div",{className:"modal-content"},u["default"].createElement("div",{className:"modal-header"},u["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},u["default"].createElement("span",{"aria-hidden":"true"},"×")),u["default"].createElement("h4",{className:"modal-title"},gettext("Change subscription"))),u["default"].createElement(d["default"],{className:"modal-menu",thread:this.props.thread})))}}]),t}(u["default"].Component);a["default"]=f},{"./options":227,react:"react"}],227:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../../../button"),d=(n(c),e("../../../../reducers/threads")),f=e("../../../../services/ajax"),p=n(f),m=e("../../../../services/modal"),h=n(m),b=e("../../../../services/snackbar"),v=n(b),y=e("../../../../services/store"),g=n(y),_={unsubscribe:null,notify:!1,email:!0},E=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.setSubscription=function(e){h["default"].hide(),a.setState({isLoading:!0});var t=a.props.thread.subscription;g["default"].dispatch((0,d.patch)(a.props.thread,{subscription:_[e]})),p["default"].patch(a.props.thread.api.index,[{op:"replace",path:"subscription",value:e}]).then(function(){a.setState({isLoading:!1})},function(e){a.setState({isLoading:!1}),g["default"].dispatch((0,d.patch)(a.props.thread,{subscription:_[t]})),v["default"].apiError(e)})},a.unsubscribe=function(){a.setSubscription("unsubscribe")},a.notify=function(){a.setSubscription("notify")},a.email=function(){a.setSubscription("email")},a.state={isLoading:!1},a}return l(t,e),s(t,[{key:"render",value:function(){return u["default"].createElement("ul",{className:this.props.className},u["default"].createElement("li",null,u["default"].createElement("button",{className:"btn-link",onClick:this.unsubscribe},u["default"].createElement("span",{className:"material-icon"},"star_border"),gettext("Unsubscribe"))),u["default"].createElement("li",null,u["default"].createElement("button",{className:"btn-link",onClick:this.notify},u["default"].createElement("span",{className:"material-icon"},"star_half"),gettext("Subscribe"))),u["default"].createElement("li",null,u["default"].createElement("button",{className:"btn-link",onClick:this.email},u["default"].createElement("span",{className:"material-icon"},"star"),gettext("Subscribe with e-mail"))))}}]),t}(u["default"].Component);a["default"]=E},{"../../../../reducers/threads":332,"../../../../services/ajax":336,"../../../../services/modal":342,"../../../../services/snackbar":347,"../../../../services/store":348,"../../../button":5,react:"react"}],228:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.children,a=e.className,n=e.title,r=e.url;return r?o["default"].createElement("a",{className:a,href:r,title:n},t):o["default"].createElement("span",{className:a,title:n},t)};var r=e("react"),o=n(r)},{react:"react"}],229:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0}),a.Subcategory=void 0;var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("react-router"),d=a.Subcategory=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getUrl",value:function(){return this.props.listPath?this.props.category.url.index+this.props.listPath:this.props.category.url.index}},{key:"render",value:function(){return u["default"].createElement("li",null,u["default"].createElement(c.Link,{to:this.getUrl(),className:"btn btn-link"},this.props.category.name))}}]),t}(u["default"].Component),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"render",value:function(){var e=this;return u["default"].createElement("div",{className:"dropdown category-picker"},u["default"].createElement("button",{type:"button",className:"btn btn-default btn-outline dropdown-toggle btn-block","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},u["default"].createElement("span",{className:"material-icon"},"label_outline"),u["default"].createElement("span",{className:"hidden-xs"},gettext("Category"))),u["default"].createElement("ul",{className:"dropdown-menu stick-to-bottom categories-menu"},this.props.choices.map(function(t){return e.props.categories[t]?u["default"].createElement(d,{category:e.props.categories[t],listPath:e.props.list.path,key:t}):null})))}}]),t}(u["default"].Component);a["default"]=f},{react:"react","react-router":"react-router"}],230:[function(e,t,a){"use strict";function n(e,t){return e.last_post>t.last_post?-1:e.last_post<t.last_post?1:0}function r(e,t){return 2===e.weight&&e.weight>t.weight?-1:2===t.weight&&e.weight<t.weight?1:n(e,t)}function o(e,t){return e.weight>t.weight?-1:e.weight<t.weight?1:n(e,t)}Object.defineProperty(a,"__esModule",{value:!0}),a.compareLastPostAge=n,a.compareGlobalWeight=r,a.compareWeight=o},{}],231:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../page-lead"),d=n(c),f=e("./toolbar"),p=n(f),m=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getCategoryDescription",value:function(){return this.props.pageLead?u["default"].createElement("div",{className:"category-description"},u["default"].createElement("div",{className:"page-lead"},u["default"].createElement("p",null,this.props.pageLead))):this.props.route.category.description?u["default"].createElement("div",{className:"category-description"},u["default"].createElement(d["default"],{copy:this.props.route.category.description.html})):null}},{key:"getDisableToolbar",value:function(){return!this.props.isLoaded||this.props.isBusy||this.props.busyThreads.length}},{key:"getToolbar",value:function(){var e=this.props.subcategories.length||this.props.user.id;return e?u["default"].createElement(p["default"],{subcategories:this.props.subcategories,categories:this.props.route.categories,categoriesMap:this.props.route.categoriesMap,list:this.props.route.list,threads:this.props.threads,moderation:this.props.moderation,selection:this.props.selection,selectAllThreads:this.props.selectAllThreads,selectNoneThreads:this.props.selectNoneThreads,addThreads:this.props.addThreads,freezeThread:this.props.freezeThread,deleteThread:this.props.deleteThread,updateThread:this.props.updateThread,api:this.props.api,route:this.props.route,disabled:this.getDisableToolbar(),user:this.props.user}):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"container"},this.getCategoryDescription(),this.getToolbar(),this.props.children)}}]),t}(u["default"].Component);a["default"]=m},{"../page-lead":70,"./toolbar":242,react:"react"}],232:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){var t=e.categories,a=e.category;if(!a)return null;var n=t[a];return c["default"].createElement(d.Link,{className:"go-back-sm visible-xs-block",to:n.url.index},c["default"].createElement("span",{className:"material-icon"},"chevron_left"),n.parent?n.name:gettext("Threads"))}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.ParentCategory=s;var u=e("react"),c=n(u),d=e("react-router"),f=e("../button"),p=n(f),m=e("../dropdown-toggle"),h=(n(m),e("./nav")),b=n(h),v=e("../../reducers/threads"),y=e("../../services/ajax"),g=n(y),_=e("../../services/posting"),E=n(_),w=e("../../services/snackbar"),O=n(w),k=e("../../services/store"),x=n(k),N=e("../.."),j=n(N),P=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.markAsRead=function(){var e=gettext("Are you sure you want to mark those threads as read? This action is not reversible.");a.props.route.category.parent&&(e=gettext("Are you sure you want to mark threads in this category as read? This action is not reversible."));var t=confirm(e);return!!t&&(a.setState({isBusy:!0}),void g["default"].post(a.props.route.category.api.read).then(function(){x["default"].dispatch((0,v.read)(a.props.route.categoriesMap,a.props.route.category)),a.setState({isBusy:!1}),O["default"].success(gettext("Threads have been marked as read."))},function(e){a.setState({isBusy:!1}),O["default"].apiError(e)}))},a.startThread=function(){E["default"].open(a.props.startThread||{mode:"START",config:j["default"].get("THREAD_EDITOR_API"),submit:j["default"].get("THREADS_API"),category:a.props.route.category.id})},a.state={isBusy:!1},a}return l(t,e),i(t,[{key:"hasGoBackButton",value:function(){return!!this.props.route.category.parent}},{key:"getGoBackButton",value:function(){if(!this.props.route.category.parent)return null;var e=this.props.categories[this.props.route.category.parent];return c["default"].createElement("div",{className:"hidden-xs col-sm-2 col-lg-1"},c["default"].createElement(d.Link,{className:"btn btn-default btn-icon btn-aligned btn-go-back btn-block btn-outline",to:e.url.index+this.props.route.list.path},c["default"].createElement("span",{className:"material-icon"},"keyboard_arrow_left")))}},{key:"getStartThreadButton",value:function(){return this.props.user.id?c["default"].createElement("div",{className:"col-xs-6"},c["default"].createElement(p["default"],{className:"btn-primary btn-block btn-outline",onClick:this.startThread,disabled:this.props.disabled},c["default"].createElement("span",{className:"material-icon"},"chat"),gettext("Start thread"))):null}},{key:"getMarkAsReadButton",value:function(){return this.props.user.id?c["default"].createElement("div",{className:"col-xs-6"},c["default"].createElement(p["default"],{className:"btn-default btn-block btn-outline",onClick:this.markAsRead,loading:this.state.isBusy,disabled:this.props.disabled},c["default"].createElement("span",{className:"material-icon"},"playlist_add_check"),gettext("Mark as read"))):null}},{key:"render",value:function(){var e="col-xs-12";this.hasGoBackButton()&&(e+=" col-sm-10 col-lg-11 sm-align-row-buttons");var t=!!this.props.user.id;return c["default"].createElement("div",{className:"page-header-bg"},c["default"].createElement("div",{className:"page-header"},c["default"].createElement("div",{className:"container"},c["default"].createElement("div",{className:"row"},c["default"].createElement("div",{className:t?"col-sm-6 col-md-8":"col-xs-12"},c["default"].createElement("div",{className:"row"},this.getGoBackButton(),c["default"].createElement("div",{className:e},c["default"].createElement(s,{categories:this.props.categories,category:this.props.route.category.parent}),c["default"].createElement("h1",null,this.props.title)))),t&&c["default"].createElement("div",{className:"col-sm-6 col-md-4 xs-margin-top"},c["default"].createElement("div",{className:"row"},this.getMarkAsReadButton(),this.getStartThreadButton())))),c["default"].createElement(b["default"],{baseUrl:this.props.route.category.url.index,list:this.props.route.list,lists:this.props.route.lists})))}}]),t}(c["default"].Component);a["default"]=P},{"../..":275,"../../reducers/threads":332,"../../services/ajax":336,"../../services/posting":346,"../../services/snackbar":347,"../../services/store":348,"../button":5,"../dropdown-toggle":24,"./nav":239,react:"react","react-router":"react-router"}],233:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"render",value:function(){return"all"===this.props.list.type?this.props.emptyMessage?u["default"].createElement("li",{className:"list-group-item empty-message"},u["default"].createElement("p",{className:"lead"},this.props.emptyMessage),u["default"].createElement("p",null,gettext("Why not start one yourself?"))):u["default"].createElement("li",{className:"list-group-item empty-message"},u["default"].createElement("p",{className:"lead"},this.props.category.special_role?gettext("There are no threads on this forum... yet!"):gettext("There are no threads in this category.")),u["default"].createElement("p",null,gettext("Why not start one yourself?"))):u["default"].createElement("li",{className:"list-group-item empty-message"},gettext("No threads matching specified criteria were found."))}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],234:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("./errors-list"),f=r(d),p=e("./merge"),m=r(p),h=e("./move"),b=r(h),v=e("../../../reducers/selection"),y=(n(v),e("../../../services/ajax")),g=r(y),_=e("../../../services/modal"),E=r(_),w=e("../../../services/snackbar"),O=r(w),k=e("../../../services/store"),x=(r(k),e("../../../utils/countdown")),N=r(x),j=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.callApi=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=[],o=new N["default"](function(){n.props.threads.forEach(function(e){n.props.freezeThread(e.id)}),r.length?E["default"].show(c["default"].createElement(f["default"],{errors:r})):(O["default"].success(t),a&&a())},n.props.threads.length);e.push({op:"add",path:"acl",value:!0}),n.props.threads.forEach(function(t){n.props.freezeThread(t.id),g["default"].patch(t.api.index,e).then(function(e){n.props.updateThread(e),o.count()},function(e){r.push({thread:t,errors:[e.detail]}),o.count()})})},n.pinGlobally=function(){n.callApi([{op:"replace",path:"weight",value:2}],gettext("Selected threads were pinned globally."))},n.pinLocally=function(){n.callApi([{op:"replace",path:"weight",value:1}],gettext("Selected threads were pinned locally."))},n.unpin=function(){n.callApi([{op:"replace",path:"weight",value:0}],gettext("Selected threads were unpinned."))},n.approve=function(){n.callApi([{op:"replace",path:"is-unapproved",value:!1}],gettext("Selected threads were approved."))},n.open=function(){n.callApi([{op:"replace",path:"is-closed",value:!1}],gettext("Selected threads were opened."))},n.close=function(){n.callApi([{op:"replace",path:"is-closed",value:!0}],gettext("Selected threads were closed."))},n.unhide=function(){n.callApi([{op:"replace",path:"is-hidden",value:!1}],gettext("Selected threads were unhidden."))},n.hide=function(){n.callApi([{op:"replace",path:"is-hidden",value:!0}],gettext("Selected threads were hidden."))},n.move=function(){E["default"].show(c["default"].createElement(b["default"],{callApi:n.callApi,categories:n.props.categories,categoriesMap:n.props.categoriesMap,route:n.props.route,user:n.props.user}))},n.merge=function(){var e=[];if(n.props.threads.forEach(function(t){t.acl.can_merge||e.append({id:t.id,title:t.title,errors:[gettext("You don't have permission to merge this thread with others.")]})}),n.props.threads.length<2)O["default"].info(gettext("You have to select at least two threads to merge."));else{if(e.length)return void E["default"].show(c["default"].createElement(f["default"],{
-errors:e}));E["default"].show(c["default"].createElement(m["default"],n.props))}},n["delete"]=function(){if(confirm(gettext("Are you sure you want to delete selected threads?"))){n.props.threads.map(function(e){n.props.freezeThread(e.id)});var e=n.props.threads.map(function(e){return e.id});g["default"]["delete"](n.props.api,e).then(function(){n.props.threads.map(function(e){n.props.freezeThread(e.id),n.props.deleteThread(e)}),O["default"].success(gettext("Selected threads were deleted."))},function(e){400===e.status?!function(){var t=e.map(function(e){return e.id});n.props.threads.map(function(e){n.props.freezeThread(e.id),t.indexOf(e.id)===-1&&n.props.deleteThread(e)}),E["default"].show(c["default"].createElement(f["default"],{errors:e}))}():O["default"].apiError(e)})}},r=a,l(n,r)}return s(t,e),i(t,[{key:"getPinGloballyButton",value:function(){return 2!==this.props.moderation.can_pin?null:c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.pinGlobally,type:"button"},c["default"].createElement("span",{className:"material-icon"},"bookmark"),gettext("Pin threads globally")))}},{key:"getPinLocallyButton",value:function(){return 0===this.props.moderation.can_pin?null:c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.pinLocally,type:"button"},c["default"].createElement("span",{className:"material-icon"},"bookmark_border"),gettext("Pin threads locally")))}},{key:"getUnpinButton",value:function(){return 0===this.props.moderation.can_pin?null:c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.unpin,type:"button"},c["default"].createElement("span",{className:"material-icon"},"panorama_fish_eye"),gettext("Unpin threads")))}},{key:"getMoveButton",value:function(){return this.props.moderation.can_move?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.move,type:"button"},c["default"].createElement("span",{className:"material-icon"},"arrow_forward"),gettext("Move threads"))):null}},{key:"getMergeButton",value:function(){return this.props.moderation.can_merge?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.merge,type:"button"},c["default"].createElement("span",{className:"material-icon"},"call_merge"),gettext("Merge threads"))):null}},{key:"getApproveButton",value:function(){return this.props.moderation.can_approve?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.approve,type:"button"},c["default"].createElement("span",{className:"material-icon"},"done"),gettext("Approve threads"))):null}},{key:"getOpenButton",value:function(){return this.props.moderation.can_close?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.open,type:"button"},c["default"].createElement("span",{className:"material-icon"},"lock_open"),gettext("Open threads"))):null}},{key:"getCloseButton",value:function(){return this.props.moderation.can_close?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.close,type:"button"},c["default"].createElement("span",{className:"material-icon"},"lock_outline"),gettext("Close threads"))):null}},{key:"getUnhideButton",value:function(){return this.props.moderation.can_unhide?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.unhide,type:"button"},c["default"].createElement("span",{className:"material-icon"},"visibility"),gettext("Unhide threads"))):null}},{key:"getHideButton",value:function(){return this.props.moderation.can_hide?c["default"].createElement("li",null,c["default"].createElement("button",{onClick:this.hide,type:"button",className:"btn btn-link"},c["default"].createElement("span",{className:"material-icon"},"visibility_off"),gettext("Hide threads"))):null}},{key:"getDeleteButton",value:function(){return this.props.moderation.can_delete?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this["delete"],type:"button"},c["default"].createElement("span",{className:"material-icon"},"clear"),gettext("Delete threads"))):null}},{key:"render",value:function(){return c["default"].createElement("ul",{className:this.props.className},this.getPinGloballyButton(),this.getPinLocallyButton(),this.getUnpinButton(),this.getMoveButton(),this.getMergeButton(),this.getApproveButton(),this.getOpenButton(),this.getCloseButton(),this.getUnhideButton(),this.getHideButton(),this.getDeleteButton())}}]),t}(c["default"].Component);a["default"]=j},{"../../../reducers/selection":329,"../../../services/ajax":336,"../../../services/modal":342,"../../../services/snackbar":347,"../../../services/store":348,"../../../utils/countdown":353,"./errors-list":235,"./merge":236,"./move":237,react:"react"}],235:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){var t=e.error,a=e.thread;return c["default"].createElement("li",null,c["default"].createElement("h5",null,a.title),c["default"].createElement("p",null,t))}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.ThreadErrors=s;var u=e("react"),c=n(u),d=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),i(t,[{key:"render",value:function(){return c["default"].createElement("div",{className:"modal-dialog",role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Threads moderation"))),c["default"].createElement("div",{className:"modal-body"},c["default"].createElement("p",{className:"lead"},gettext("One or more threads could not be deleted:")),c["default"].createElement("ul",{className:"list-unstyled list-errored-items"},this.props.errors.map(function(e){return c["default"].createElement(s,{error:e.error,key:e.thread.id,thread:e.thread})})))))}}]),t}(c["default"].Component);a["default"]=d},{react:"react"}],236:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../../button"),f=r(d),p=e("../../form"),m=r(p),h=e("../../form-group"),b=r(h),v=e("../../category-select"),y=r(v),g=e("../../select"),_=r(g),E=e("../../../index"),w=r(E),O=e("../../../reducers/threads"),k=e("../../../reducers/selection"),x=n(k),N=e("./errors-list"),j=r(N),P=e("../../merge-polls"),C=r(P),S=e("../../../services/ajax"),M=r(S),T=e("../../../services/modal"),L=r(T),R=e("../../../services/snackbar"),A=r(R),I=e("../../../services/store"),D=r(I),U=e("../../../utils/validators"),B=n(U),H=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));a.getFormdata=function(){return{threads:a.props.threads.map(function(e){return e.id}),title:a.state.title,category:a.state.category,weight:a.state.weight,is_hidden:a.state.is_hidden,is_closed:a.state.is_closed}},a.handleSuccess=function(e){a.props.threads.forEach(function(e){a.props.freezeThread(e.id),a.props.deleteThread(e)}),D["default"].dispatch(x.none()),a.props.addThreads([e]),D["default"].dispatch((0,O.filterThreads)(a.props.route.category,a.props.categoriesMap)),L["default"].hide()},a.handleError=function(e){400===e.status?e.polls?L["default"].show(c["default"].createElement(C["default"],{api:w["default"].get("MERGE_THREADS_API"),data:a.getFormdata(),polls:e.polls,onError:a.handleError,onSuccess:a.handleSuccess})):(a.setState({errors:Object.assign({},a.state.errors,e)}),A["default"].error(gettext("Form contains errors."))):403===e.status&&Array.isArray(e)?L["default"].show(c["default"].createElement(j["default"],{errors:e})):A["default"].apiError(e)},a.onCategoryChange=function(e){var t=e.target.value,n={category:t};a.acl[t].can_pin_threads<n.weight&&(n.weight=0),a.acl[t].can_hide_threads||(n.is_hidden=0),a.acl[t].can_close_threads||(n.is_closed=!1),a.setState(n)},a.state={isLoading:!1,title:"",category:null,weight:0,is_hidden:0,is_closed:!1,validators:{title:[B.required()]},errors:{}},a.acl={};for(var n in e.user.acl.categories)if(e.user.acl.categories.hasOwnProperty(n)){var r=e.user.acl.categories[n];a.acl[r.id]=r}return a.categoryChoices=[],e.categories.forEach(function(e){if(e.level>0){var t=a.acl[e.id],n=!t.can_start_threads||e.is_closed&&!t.can_close_threads;a.categoryChoices.push({value:e.id,disabled:n,level:e.level-1,label:e.name}),n||a.state.category||(a.state.category=e.id)}}),a.isHiddenChoices=[{value:0,icon:"visibility",label:gettext("No")},{value:1,icon:"visibility_off",label:gettext("Yes")}],a.isClosedChoices=[{value:!1,icon:"lock_outline",label:gettext("No")},{value:!0,icon:"lock",label:gettext("Yes")}],a}return s(t,e),i(t,[{key:"clean",value:function(){return!!this.isValid()||(A["default"].error(gettext("Form contains errors.")),this.setState({errors:this.validate()}),!1)}},{key:"send",value:function(){return M["default"].post(w["default"].get("MERGE_THREADS_API"),this.getFormdata())}},{key:"getWeightChoices",value:function(){var e=[{value:0,icon:"remove",label:gettext("Not pinned")},{value:1,icon:"bookmark_border",label:gettext("Pinned locally")}];return 2==this.acl[this.state.category].can_pin_threads&&e.push({value:2,icon:"bookmark",label:gettext("Pinned globally")}),e}},{key:"renderWeightField",value:function(){return this.acl[this.state.category].can_pin_threads?c["default"].createElement(b["default"],{label:gettext("Thread weight"),"for":"id_weight"},c["default"].createElement(_["default"],{id:"id_weight",onChange:this.bindInput("weight"),value:this.state.weight,choices:this.getWeightChoices()})):null}},{key:"renderHiddenField",value:function(){return this.acl[this.state.category].can_hide_threads?c["default"].createElement(b["default"],{label:gettext("Hide thread"),"for":"id_is_hidden"},c["default"].createElement(_["default"],{id:"id_is_closed",onChange:this.bindInput("is_hidden"),value:this.state.is_hidden,choices:this.isHiddenChoices})):null}},{key:"renderClosedField",value:function(){return this.acl[this.state.category].can_close_threads?c["default"].createElement(b["default"],{label:gettext("Close thread"),"for":"id_is_closed"},c["default"].createElement(_["default"],{id:"id_is_closed",onChange:this.bindInput("is_closed"),value:this.state.is_closed,choices:this.isClosedChoices})):null}},{key:"renderForm",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"modal-body"},c["default"].createElement(b["default"],{label:gettext("Thread title"),"for":"id_title",validation:this.state.errors.title},c["default"].createElement("input",{id:"id_title",className:"form-control",type:"text",onChange:this.bindInput("title"),value:this.state.title})),c["default"].createElement("div",{className:"clearfix"}),c["default"].createElement(b["default"],{label:gettext("Category"),"for":"id_category",validation:this.state.errors.category},c["default"].createElement(y["default"],{id:"id_category",onChange:this.onCategoryChange,value:this.state.category,choices:this.categoryChoices})),c["default"].createElement("div",{className:"clearfix"}),this.renderWeightField(),this.renderHiddenField(),this.renderClosedField()),c["default"].createElement("div",{className:"modal-footer"},c["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",disabled:this.state.isLoading,type:"button"},gettext("Cancel")),c["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Merge threads"))))}},{key:"renderCantMergeMessage",value:function(){return c["default"].createElement("div",{className:"modal-body"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"info_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},gettext("You can't move threads because there are no categories you are allowed to move them to.")),c["default"].createElement("p",null,gettext("You need permission to start threads in category to be able to merge threads to it.")),c["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",type:"button"},gettext("Ok"))))}},{key:"getClassName",value:function(){return this.state.category?"modal-dialog":"modal-dialog modal-message"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName(),role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Merge threads"))),this.state.category?this.renderForm():this.renderCantMergeMessage()))}}]),t}(m["default"]);a["default"]=H},{"../../../index":275,"../../../reducers/selection":329,"../../../reducers/threads":332,"../../../services/ajax":336,"../../../services/modal":342,"../../../services/snackbar":347,"../../../services/store":348,"../../../utils/validators":364,"../../button":5,"../../category-select":18,"../../form":52,"../../form-group":51,"../../merge-polls":55,"../../select":188,"./errors-list":235,react:"react"}],237:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../../form"),f=r(d),p=e("../../form-group"),m=r(p),h=e("../../category-select"),b=r(h),v=e("../../../reducers/selection"),y=n(v),g=e("../../../reducers/threads"),_=e("../../../services/modal"),E=r(_),w=e("../../../services/store"),O=r(w),k=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));a.handleSubmit=function(e){e.preventDefault(),E["default"].hide();var t=function(){O["default"].dispatch((0,g.filterThreads)(a.props.route.category,a.props.categoriesMap));var e=O["default"].getState(),t=e.threads.map(function(e){return e.id});O["default"].dispatch(y.all(e.selection.filter(function(e){return t.indexOf(e)!==-1})))};a.props.callApi([{op:"replace",path:"category",value:a.state.category},{op:"replace",path:"flatten-categories",value:null},{op:"add",path:"acl",value:!0}],gettext("Selected threads were moved."),t)},a.state={category:null};var n={};for(var r in e.user.acl.categories)if(e.user.acl.categories.hasOwnProperty(r)){var s=e.user.acl.categories[r];n[s.id]=s}return a.categoryChoices=[],e.categories.forEach(function(e){if(e.level>0){var t=n[e.id],r=!t.can_start_threads||e.is_closed&&!t.can_close_threads;a.categoryChoices.push({value:e.id,disabled:r,level:e.level-1,label:e.name}),r||a.state.category||(a.state.category=e.id)}}),a}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.state.category?"modal-dialog":"modal-dialog modal-message"}},{key:"renderForm",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"modal-body"},c["default"].createElement(m["default"],{label:gettext("New category"),"for":"id_new_category"},c["default"].createElement(b["default"],{id:"id_new_category",onChange:this.bindInput("category"),value:this.state.category,choices:this.categoryChoices}))),c["default"].createElement("div",{className:"modal-footer"},c["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",disabled:this.state.isLoading,type:"button"},gettext("Cancel")),c["default"].createElement("button",{className:"btn btn-primary"},gettext("Move threads"))))}},{key:"renderCantMoveMessage",value:function(){return c["default"].createElement("div",{className:"modal-body"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"info_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},gettext("You can't move threads because there are no categories you are allowed to move them to.")),c["default"].createElement("p",null,gettext("You need permission to start threads in category to be able to move threads to it.")),c["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",type:"button"},gettext("Ok"))))}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName(),role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Move threads"))),this.state.category?this.renderForm():this.renderCantMoveMessage()))}}]),t}(f["default"]);a["default"]=k},{"../../../reducers/selection":329,"../../../reducers/threads":332,"../../../services/modal":342,"../../../services/store":348,"../../category-select":18,"../../form":52,"../../form-group":51,react:"react"}],238:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../../../reducers/selection"),f=n(d),p=e("../../../services/store"),m=r(p),h=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.selectAll=function(){m["default"].dispatch(f.all(n.props.threads.map(function(e){return e.id})))},n.selectNone=function(){m["default"].dispatch(f.none())},r=a,l(n,r)}return s(t,e),i(t,[{key:"render",value:function(){return c["default"].createElement("ul",{className:this.props.className},c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",type:"button",onClick:this.selectAll},c["default"].createElement("span",{className:"material-icon"},"check_box"),gettext("Select all"))),c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",type:"button",onClick:this.selectNone},c["default"].createElement("span",{className:"material-icon"},"check_box_outline_blank"),gettext("Select none"))))}}]),t}(c["default"].Component);a["default"]=h},{"../../../reducers/selection":329,"../../../services/store":348,react:"react"}],239:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.baseUrl,a=e.list,n=e.lists;return n.length<2?null:o["default"].createElement("div",{className:"page-tabs"},o["default"].createElement("div",{className:"container"},o["default"].createElement("ul",{className:"nav nav-pills"},n.map(function(e){return o["default"].createElement(i["default"],{isControlled:!0,isActive:e.path===a.path,key:t+e.path},o["default"].createElement(l.Link,{to:t+e.path},e.name))}))))};var r=e("react"),o=n(r),l=e("react-router"),s=e("../li"),i=n(s)},{"../li":53,react:"react","react-router":"react-router"}],240:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return function(t){return{options:e,selection:t.selection,threads:t.threads,tick:t.tick.tick,user:t.auth.user}}}function o(e){var t=[{type:"all",path:"",name:gettext("All"),longName:gettext("All threads")}];return e.id&&(t.push({type:"my",path:"my/",name:gettext("My"),longName:gettext("My threads")}),t.push({type:"new",path:"new/",name:gettext("New"),longName:gettext("New threads")}),t.push({type:"unread",path:"unread/",name:gettext("Unread"),longName:gettext("Unread threads")}),t.push({type:"subscribed",path:"subscribed/",name:gettext("Subscribed"),longName:gettext("Subscribed threads")}),e.acl.can_see_unapproved_content_lists&&t.push({type:"unapproved",path:"unapproved/",name:gettext("Unapproved"),longName:gettext("Unapproved content")})),t}function l(e,t){var a=o(e),n=[],l={};return d["default"].get("CATEGORIES").forEach(function(e){a.forEach(function(o){l[e.id]=e,n.push({path:e.url.index+o.path,component:(0,s.connect)(r(t))(u["default"]),categories:d["default"].get("CATEGORIES"),categoriesMap:l,category:e,lists:a,list:o})})}),n}Object.defineProperty(a,"__esModule",{value:!0}),a.getSelect=r,a.getLists=o,a.paths=l;var s=e("react-redux"),i=e("./route"),u=n(i),c=e("../../index"),d=n(c)},{"../../index":275,"./route":241,"react-redux":"react-redux"}],241:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../button"),f=r(d),p=e("./compare"),m=e("./container"),h=r(m),b=e("./header"),v=r(b),y=e("./utils"),g=e("../threads-list"),_=r(g),E=e("./list-empty"),w=r(E),O=e("../with-dropdown"),k=r(O),x=e("../../index"),N=r(x),j=e("../../reducers/selection"),P=n(j),C=e("../../reducers/threads"),S=e("../../services/ajax"),M=r(S),T=e("../../services/polls"),L=r(T),R=e("../../services/snackbar"),A=r(R),I=e("../../services/store"),D=r(I),U=e("../../services/page-title"),B=r(U),H=e("../../utils/sets"),z=n(H),F=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));a.loadMore=function(){a.setState({isBusy:!0}),a.loadThreads(a.getCategory(),a.state.page+1)},a.pollResponse=function(e){a.setState({diff:Object.assign({},e,{results:(0,y.diffThreads)(a.props.threads,e.results)})})},a.addThreads=function(e){D["default"].dispatch((0,C.append)(e,a.getSorting()))},a.applyDiff=function(){a.addThreads(a.state.diff.results),a.setState(Object.assign({},a.state.diff,{moderation:(0,y.getModerationActions)(D["default"].getState().threads),diff:{results:[]}}))},a.freezeThread=function(e){a.setState(function(t){return{busyThreads:z.toggle(t.busyThreads,e)}})},a.updateThread=function(e){D["default"].dispatch((0,C.patch)(e,e,a.getSorting()))},a.deleteThread=function(e){D["default"].dispatch((0,C.deleteThread)(e))},a.state={isMounted:!0,isLoaded:!1,isBusy:!1,diff:{results:[]},moderation:[],busyThreads:[],dropdown:!1,subcategories:[],count:0,more:0,page:1,pages:1};var n=a.getCategory();return N["default"].has("THREADS")?a.initWithPreloadedData(n,N["default"].get("THREADS")):a.initWithoutPreloadedData(n),a}return s(t,e),i(t,[{key:"getCategory",value:function(){return this.props.route.category.special_role?null:this.props.route.category.id}},{key:"initWithPreloadedData",value:function(e,t){this.state=Object.assign(this.state,{moderation:(0,y.getModerationActions)(t.results),subcategories:t.subcategories,count:t.count,more:t.more,page:t.page,pages:t.pages}),this.startPolling(e)}},{key:"initWithoutPreloadedData",value:function(e){this.loadThreads(e)}},{key:"loadThreads",value:function(e){var t=this,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;M["default"].get(this.props.options.api,{category:e,list:this.props.route.list.type,page:a||1},"threads").then(function(n){t.state.isMounted&&(1===a?D["default"].dispatch((0,C.hydrate)(n.results)):D["default"].dispatch((0,C.append)(n.results,t.getSorting())),t.setState({isLoaded:!0,isBusy:!1,moderation:(0,y.getModerationActions)(D["default"].getState().threads),subcategories:n.subcategories,count:n.count,more:n.more,page:n.page,pages:n.pages}),t.startPolling(e))},function(e){A["default"].apiError(e)})}},{key:"startPolling",value:function(e){L["default"].start({poll:"threads",url:this.props.options.api,data:{category:e,list:this.props.route.list.type},frequency:12e4,update:this.pollResponse})}},{key:"componentDidMount",value:function(){this.setPageTitle(),N["default"].has("THREADS")&&(D["default"].dispatch((0,C.hydrate)(N["default"].pop("THREADS").results)),this.setState({isLoaded:!0})),D["default"].dispatch(P.none())}},{key:"componentWillUnmount",value:function(){this.state.isMounted=!1,L["default"].stop("threads")}},{key:"getTitle",value:function(){return this.props.options.title?this.props.options.title:(0,y.getTitle)(this.props.route)}},{key:"setPageTitle",value:function(){this.props.route.category.level||!N["default"].get("THREADS_ON_INDEX")?B["default"].set((0,y.getPageTitle)(this.props.route)):this.props.options.title?B["default"].set(this.props.options.title):N["default"].get("SETTINGS").forum_index_title?document.title=N["default"].get("SETTINGS").forum_index_title:document.title=N["default"].get("SETTINGS").forum_name}},{key:"getSorting",value:function(){return this.props.route.category.level?p.compareWeight:p.compareGlobalWeight}},{key:"getMoreButton",value:function(){return this.state.more?c["default"].createElement("div",{className:"pager-more"},c["default"].createElement(f["default"],{className:"btn btn-default btn-outline",loading:this.state.isBusy||this.state.busyThreads.length,onClick:this.loadMore},gettext("Show more"))):null}},{key:"getClassName",value:function(){var e="page page-threads";return e+=" page-threads-"+this.props.route.list.type,this.props.route.category.css_class&&(e+=" page-threads-"+this.props.route.category.css_class),e}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement(v["default"],{categories:this.props.route.categoriesMap,disabled:!this.state.isLoaded,startThread:this.props.options.startThread,threads:this.props.threads,title:this.getTitle(),toggleNav:this.toggleNav,route:this.props.route,user:this.props.user}),c["default"].createElement(h["default"],{api:this.props.options.api,route:this.props.route,subcategories:this.state.subcategories,user:this.props.user,pageLead:this.props.options.pageLead,threads:this.props.threads,threadsCount:this.state.count,moderation:this.state.moderation,selection:this.props.selection,busyThreads:this.state.busyThreads,addThreads:this.addThreads,freezeThread:this.freezeThread,deleteThread:this.deleteThread,updateThread:this.updateThread,isLoaded:this.state.isLoaded,isBusy:this.state.isBusy},c["default"].createElement(_["default"],{category:this.props.route.category,categories:this.props.route.categoriesMap,list:this.props.route.list,selection:this.props.selection,threads:this.props.threads,diffSize:this.state.diff.results.length,applyDiff:this.applyDiff,showOptions:!!this.props.user.id,isLoaded:this.state.isLoaded,busyThreads:this.state.busyThreads},c["default"].createElement(w["default"],{category:this.props.route.category,emptyMessage:this.props.options.emptyMessage,list:this.props.route.list})),this.getMoreButton()))}}]),t}(k["default"]);a["default"]=F},{"../../index":275,"../../reducers/selection":329,"../../reducers/threads":332,
-"../../services/ajax":336,"../../services/page-title":344,"../../services/polls":345,"../../services/snackbar":347,"../../services/store":348,"../../utils/sets":362,"../button":5,"../threads-list":211,"../with-dropdown":272,"./compare":230,"./container":231,"./header":232,"./list-empty":233,"./utils":243,react:"react"}],242:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./category-picker"),d=n(c),f=e("./moderation/controls"),p=n(f),m=e("./moderation/selection"),h=n(m),b=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getCategoryPicker",value:function(){return this.props.subcategories.length?u["default"].createElement(d["default"],{categories:this.props.categoriesMap,choices:this.props.subcategories,list:this.props.list}):null}},{key:"showModerationOptions",value:function(){return this.props.user.id&&this.props.moderation.allow}},{key:"getSelectedThreads",value:function(){var e=this;return this.props.threads.filter(function(t){return e.props.selection.indexOf(t.id)>=0})}},{key:"getModerationButton",value:function(){return this.showModerationOptions()?u["default"].createElement("div",{className:"col-xs-6 col-sm-3 col-md-2"},u["default"].createElement("div",{className:"btn-group btn-group-justified"},u["default"].createElement("div",{className:"btn-group dropdown"},u["default"].createElement("button",{type:"button",className:"btn btn-default btn-outline dropdown-toggle","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",disabled:this.props.disabled||!this.props.selection.length},u["default"].createElement("span",{className:"material-icon"},"settings"),gettext("Options")),u["default"].createElement(p["default"],{addThreads:this.props.addThreads,api:this.props.api,categories:this.props.categories,categoriesMap:this.props.categoriesMap,className:"dropdown-menu dropdown-menu-right stick-to-bottom",deleteThread:this.props.deleteThread,freezeThread:this.props.freezeThread,moderation:this.props.moderation,route:this.props.route,threads:this.getSelectedThreads(),updateThread:this.props.updateThread,user:this.props.user})))):null}},{key:"getSelectionButton",value:function(){return this.showModerationOptions()?u["default"].createElement("div",{className:"col-xs-3 col-sm-2 col-md-1"},u["default"].createElement("div",{className:"btn-group btn-group-justified"},u["default"].createElement("div",{className:"btn-group dropdown"},u["default"].createElement("button",{type:"button",className:"btn btn-default btn-outline btn-icon dropdown-toggle","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",disabled:this.props.disabled},u["default"].createElement("span",{className:"material-icon"},"select_all")),u["default"].createElement(h["default"],{className:"dropdown-menu dropdown-menu-right stick-to-bottom",threads:this.props.threads})))):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"row row-toolbar row-toolbar-bottom-margin"},u["default"].createElement("div",{className:"col-xs-3 col-sm-3 col-md-2 dropdown"},this.getCategoryPicker()),u["default"].createElement("div",{className:"hidden-xs col-sm-4 col-md-7"}),this.getModerationButton(),this.getSelectionButton())}}]),t}(u["default"].Component);a["default"]=b},{"./category-picker":229,"./moderation/controls":234,"./moderation/selection":238,react:"react"}],243:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return e.category.level?e.list.path?{title:e.list.longName,parent:e.category.name}:{title:e.category.name}:c["default"].get("THREADS_ON_INDEX")?e.list.path?{title:e.list.longName}:null:e.list.path?{title:e.list.longName,parent:gettext("Threads")}:{title:gettext("Threads")}}function o(e){return e.category.level?e.category.name:c["default"].get("THREADS_ON_INDEX")?c["default"].get("SETTINGS").forum_index_title?c["default"].get("SETTINGS").forum_index_title:c["default"].get("SETTINGS").forum_name:gettext("Threads")}function l(e,t){return[e.title===t.title,e.weight===t.weight,e.category===t.category,e.last_post===t.last_post,e.last_poster_name===t.last_poster_name].indexOf(!1)>=0}function s(e,t){var a={};return e.forEach(function(e){a[e.id]=e}),t.filter(function(e){return!a[e.id]||l(a[e.id],e)})}function i(e){var t={allow:!1,can_approve:0,can_close:0,can_delete:0,can_hide:0,can_merge:0,can_move:0,can_pin:0,can_unhide:0};return e.forEach(function(e){e.is_unapproved&&e.acl.can_approve>t.can_approve&&(t.can_approve=e.acl.can_approve),e.acl.can_close>t.can_close&&(t.can_close=e.acl.can_close),e.acl.can_delete>t.can_delete&&(t.can_delete=e.acl.can_delete),e.acl.can_hide>t.can_hide&&(t.can_hide=e.acl.can_hide),e.acl.can_merge>t.can_merge&&(t.can_merge=e.acl.can_merge),e.acl.can_move>t.can_move&&(t.can_move=e.acl.can_move),e.acl.can_pin>t.can_pin&&(t.can_pin=e.acl.can_pin),e.acl.can_unhide>t.can_unhide&&(t.can_unhide=e.acl.can_unhide),t.allow=t.can_approve||t.can_close||t.can_delete||t.can_hide||t.can_merge||t.can_move||t.can_pin||t.can_unhide}),t}Object.defineProperty(a,"__esModule",{value:!0}),a.getPageTitle=r,a.getTitle=o,a.isThreadChanged=l,a.diffThreads=s,a.getModerationActions=i;var u=e("../../index"),c=n(u)},{"../../index":275}],244:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0}),a.CompactGuestNav=a.GuestNav=a.GuestMenu=void 0;var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../avatar"),d=n(c),f=e("../register-button"),p=n(f),m=e("../sign-in.js"),h=n(m),b=e("../../services/mobile-navbar-dropdown"),v=n(b),y=e("../../services/modal"),g=n(y),_=a.GuestMenu=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"showSignInModal",value:function(){g["default"].show(h["default"])}},{key:"render",value:function(){return u["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},u["default"].createElement("li",{className:"guest-preview"},u["default"].createElement("h4",null,gettext("You are browsing as guest.")),u["default"].createElement("p",null,gettext("Sign in or register to start and participate in discussions.")),u["default"].createElement("div",{className:"row"},u["default"].createElement("div",{className:"col-xs-6"},u["default"].createElement("button",{className:"btn btn-default btn-block",onClick:this.showSignInModal,type:"button"},gettext("Sign in"))),u["default"].createElement("div",{className:"col-xs-6"},u["default"].createElement(p["default"],{className:"btn-success btn-block"},gettext("Register"))))))}}]),t}(u["default"].Component);a.GuestNav=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"render",value:function(){return u["default"].createElement("div",{className:"nav nav-guest"},u["default"].createElement("button",{className:"btn navbar-btn btn-default",onClick:this.showSignInModal,type:"button"},gettext("Sign in")),u["default"].createElement(p["default"],{className:"navbar-btn btn-success btn-outline"},gettext("Register")))}}]),t}(_),a.CompactGuestNav=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"showGuestMenu",value:function(){v["default"].show(_)}},{key:"render",value:function(){return u["default"].createElement("button",{type:"button",onClick:this.showGuestMenu},u["default"].createElement(d["default"],{size:"64"}))}}]),t}(u["default"].Component)},{"../../services/mobile-navbar-dropdown":341,"../../services/modal":342,"../avatar":3,"../register-button":176,"../sign-in.js":189,react:"react"}],245:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return e.auth}Object.defineProperty(a,"__esModule",{value:!0}),a.CompactUserMenu=a.UserMenu=void 0;var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.select=s;var u=e("react"),c=n(u),d=e("./guest-nav"),f=e("./user-nav");a.UserMenu=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),i(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(f.UserNav,{user:this.props.user}):c["default"].createElement(d.GuestNav,null)}}]),t}(c["default"].Component),a.CompactUserMenu=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),i(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(f.CompactUserNav,{user:this.props.user}):c["default"].createElement(d.CompactGuestNav,null)}}]),t}(c["default"].Component)},{"./guest-nav":244,"./user-nav":246,react:"react"}],246:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){var t=e.user;return t.unread_private_threads?p["default"].createElement("span",{className:"badge"},t.unread_private_threads):null}function i(e){var t=e.user;return p["default"].createElement("ul",{className:"ul nav navbar-nav nav-user"},p["default"].createElement(u,{user:t}),p["default"].createElement("li",{className:"dropdown"},p["default"].createElement("a",{"aria-haspopup":"true","aria-expanded":"false",className:"dropdown-toggle","data-toggle":"dropdown",href:t.url,role:"button"},p["default"].createElement(b["default"],{user:t,size:"64"})),p["default"].createElement(x,{user:t})))}function u(e){return e.user.unread_private_threads?p["default"].createElement("li",null,p["default"].createElement("a",{className:"navbar-notification",href:_["default"].get("PRIVATE_THREADS_URL"),title:gettext("You have unread private threads.")},p["default"].createElement("span",{className:"material-icon"},"message"),p["default"].createElement("span",{className:"badge"},e.user.unread_private_threads))):null}function c(e){return{user:e.auth.user}}Object.defineProperty(a,"__esModule",{value:!0}),a.CompactUserNav=a.UserMenu=void 0;var d=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.PrivateThreadsBadge=s,a.UserNav=i,a.UserPrivateThreadsLink=u,a.selectUserMenu=c;var f=e("react"),p=n(f),m=e("react-redux"),h=e("../avatar"),b=n(h),v=e("../change-avatar/root"),y=n(v),g=e("../.."),_=n(g),E=e("../../services/mobile-navbar-dropdown"),w=n(E),O=e("../../services/modal"),k=n(O),x=a.UserMenu=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),d(t,[{key:"logout",value:function(){var e=confirm(gettext("Are you sure you want to sign out?"));e&&$("#hidden-logout-form").submit()}},{key:"changeAvatar",value:function(){k["default"].show((0,m.connect)(v.select)(y["default"]))}},{key:"render",value:function(){var e=this.props.user;return p["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},p["default"].createElement("li",{className:"dropdown-header"},p["default"].createElement("strong",null,e.username),p["default"].createElement("ul",{className:"list-unstyled list-inline user-stats"},p["default"].createElement("li",null,p["default"].createElement("span",{className:"material-icon"},"message"),e.posts),p["default"].createElement("li",null,p["default"].createElement("span",{className:"material-icon"},"forum"),e.threads),p["default"].createElement("li",null,p["default"].createElement("span",{className:"material-icon"},"favorite"),e.followers),p["default"].createElement("li",null,p["default"].createElement("span",{className:"material-icon"},"favorite_outline"),e.following))),p["default"].createElement("li",{className:"divider"}),p["default"].createElement("li",null,p["default"].createElement("a",{href:e.url},p["default"].createElement("span",{className:"material-icon"},"account_circle"),gettext("See your profile"))),p["default"].createElement("li",null,p["default"].createElement("a",{href:_["default"].get("USERCP_URL")},p["default"].createElement("span",{className:"material-icon"},"done_all"),gettext("Change options"))),p["default"].createElement("li",null,p["default"].createElement("button",{className:"btn-link",onClick:this.changeAvatar,type:"button"},p["default"].createElement("span",{className:"material-icon"},"portrait"),gettext("Change avatar"))),p["default"].createElement("li",null,p["default"].createElement("a",{href:_["default"].get("PRIVATE_THREADS_URL")},p["default"].createElement("span",{className:"material-icon"},"message"),gettext("Private threads"),p["default"].createElement(s,{user:e}))),p["default"].createElement("li",{className:"divider"}),p["default"].createElement("li",{className:"dropdown-buttons"},p["default"].createElement("button",{className:"btn btn-default btn-block",onClick:this.logout,type:"button"},gettext("Log out"))))}}]),t}(p["default"].Component);a.CompactUserNav=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),d(t,[{key:"showUserMenu",value:function(){w["default"].showConnected("user-menu",(0,m.connect)(c)(x))}},{key:"render",value:function(){return p["default"].createElement("button",{type:"button",onClick:this.showUserMenu},p["default"].createElement(b["default"],{user:this.props.user,size:"50"}))}}]),t}(p["default"].Component)},{"../..":275,"../../services/mobile-navbar-dropdown":341,"../../services/modal":342,"../avatar":3,"../change-avatar/root":22,react:"react","react-redux":"react-redux"}],247:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){var t="";return e.is_banned?t="banned":e.is_hidden?t="offline":e.is_online_hidden?t="online":e.is_offline_hidden?t="offline":e.is_online?t="online":e.is_offline&&(t="offline"),"user-status user-"+t}function i(e,t){return t.is_banned?t.banned_until?interpolate(gettext("%(username)s is banned until %(ban_expires)s"),{username:e.username,ban_expires:t.banned_until.format("LL, LT")},!0):interpolate(gettext("%(username)s is banned"),{username:e.username},!0):t.is_hidden?interpolate(gettext("%(username)s is hiding presence"),{username:e.username},!0):t.is_online_hidden?interpolate(gettext("%(username)s is online (hidden)"),{username:e.username},!0):t.is_offline_hidden?interpolate(gettext("%(username)s was last seen %(last_click)s (hidden)"),{username:e.username,last_click:t.last_click.fromNow()},!0):t.is_online?interpolate(gettext("%(username)s is online"),{username:e.username},!0):t.is_offline?interpolate(gettext("%(username)s was last seen %(last_click)s"),{username:e.username,last_click:t.last_click.fromNow()},!0):void 0}Object.defineProperty(a,"__esModule",{value:!0}),a.StatusLabel=a.StatusIcon=void 0;var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.getStatusClassName=s,a.getStatusDescription=i;var c=e("react"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),u(t,[{key:"getClass",value:function(){return s(this.props.status)}},{key:"render",value:function(){return d["default"].createElement("span",{className:this.getClass()},this.props.children)}}]),t}(d["default"].Component);a["default"]=f;a.StatusIcon=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),u(t,[{key:"getIcon",value:function(){return this.props.status.is_banned?"remove_circle_outline":this.props.status.is_hidden?"help_outline":this.props.status.is_online_hidden?"label":this.props.status.is_offline_hidden?"label_outline":this.props.status.is_online?"lens":this.props.status.is_offline?"panorama_fish_eye":void 0}},{key:"render",value:function(){return d["default"].createElement("span",{className:"material-icon status-icon"},this.getIcon())}}]),t}(d["default"].Component),a.StatusLabel=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),u(t,[{key:"getHelp",value:function(){return i(this.props.user,this.props.status)}},{key:"getLabel",value:function(){return this.props.status.is_banned?gettext("Banned"):this.props.status.is_hidden?gettext("Hidden"):this.props.status.is_online_hidden?gettext("Online (hidden)"):this.props.status.is_offline_hidden?gettext("Offline (hidden)"):this.props.status.is_online?gettext("Online"):this.props.status.is_offline?gettext("Offline"):void 0}},{key:"render",value:function(){return d["default"].createElement("span",{className:this.props.className||"status-label",title:this.getHelp()},this.getLabel())}}]),t}(d["default"].Component)},{react:"react"}],248:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../avatar"),f=r(d),p=e("../../utils/random"),m=n(p),h=function(e){function t(){return o(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return s(t,e),i(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"getClassName",value:function(){return this.props.hiddenOnMobile?"list-group-item hidden-xs hidden-sm":"list-group-item"}},{key:"render",value:function(){return c["default"].createElement("li",{className:this.getClassName()},c["default"].createElement("div",{className:"change-avatar"},c["default"].createElement("span",{className:"user-avatar"},c["default"].createElement(f["default"],{size:"100"}))),c["default"].createElement("div",{className:"change-author"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,100)+"px"}}," ")),c["default"].createElement("div",{className:"change"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,70)+"px"}}," "),c["default"].createElement("span",{className:"material-icon"},"arrow_forward"),c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,70)+"px"}}," ")),c["default"].createElement("div",{className:"change-date"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](80,140)+"px"}}," ")))}}]),t}(c["default"].Component);a["default"]=h},{"../../utils/random":359,"../avatar":3,react:"react"}],249:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../avatar"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"renderUserAvatar",value:function(){return this.props.change.changed_by?u["default"].createElement("a",{href:this.props.change.changed_by.url,className:"user-avatar-wrapper"},u["default"].createElement(d["default"],{user:this.props.change.changed_by,size:"100"})):u["default"].createElement("span",{className:"user-avatar-wrapper"},u["default"].createElement(d["default"],{size:"100"}))}},{key:"renderUsername",value:function(){return this.props.change.changed_by?u["default"].createElement("a",{href:this.props.change.changed_by.url,className:"item-title"},this.props.change.changed_by.username):u["default"].createElement("span",{className:"item-title"},this.props.change.changed_by_username)}},{key:"render",value:function(){return u["default"].createElement("li",{className:"list-group-item",key:this.props.change.id},u["default"].createElement("div",{className:"change-avatar"},this.renderUserAvatar()),u["default"].createElement("div",{className:"change-author"},this.renderUsername()),u["default"].createElement("div",{className:"change"},u["default"].createElement("span",{className:"old-username"},this.props.change.old_username),u["default"].createElement("span",{className:"material-icon"},"arrow_forward"),u["default"].createElement("span",{className:"new-username"},this.props.change.new_username)),u["default"].createElement("div",{className:"change-date"},u["default"].createElement("abbr",{title:this.props.change.changed_on.format("LLL")},this.props.change.changed_on.fromNow())))}}]),t}(u["default"].Component);a["default"]=f},{"../avatar":3,react:"react"}],250:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getEmptyMessage",value:function(){return this.props.emptyMessage?this.props.emptyMessage:gettext("No name changes have been recorded for your account.")}},{key:"render",value:function(){return u["default"].createElement("div",{className:"username-history ui-ready"},u["default"].createElement("ul",{className:"list-group"},u["default"].createElement("li",{className:"list-group-item empty-message"},this.getEmptyMessage())))}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],251:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./change-preview"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"render",value:function(){return u["default"].createElement("div",{className:"username-history ui-preview"},u["default"].createElement("ul",{className:"list-group"},[0,1,2].map(function(e){return u["default"].createElement(d["default"],{hiddenOnMobile:e>0,key:e})})))}}]),t}(u["default"].Component);a["default"]=f},{"./change-preview":248,react:"react"}],252:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./change"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"render",value:function(){return u["default"].createElement("div",{className:"username-history ui-ready"},u["default"].createElement("ul",{className:"list-group"},this.props.changes.map(function(e){return u["default"].createElement(d["default"],{change:e,key:e.id})})))}}]),t}(u["default"].Component);a["default"]=f},{"./change":249,react:"react"}],253:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./list-empty"),d=n(c),f=e("./list-ready"),p=n(f),m=e("./list-preview"),h=n(m),b=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"render",value:function(){return this.props.isLoaded?this.props.changes.length?u["default"].createElement(p["default"],{changes:this.props.changes}):u["default"].createElement(d["default"],{emptyMessage:this.props.emptyMessage
-}):u["default"].createElement(h["default"],null)}}]),t}(u["default"].Component);a["default"]=b},{"./list-empty":250,"./list-preview":251,"./list-ready":252,react:"react"}],254:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.showStatus,a=e.user,n=a.rank,r="panel user-card";return n.css_class&&(r+=" user-card-"+n.css_class),o["default"].createElement("div",{className:r},o["default"].createElement("div",{className:"panel-body"},o["default"].createElement("div",{className:"row"},o["default"].createElement("div",{className:"col-xs-3 user-card-left"},o["default"].createElement("div",{className:"user-card-small-avatar"},o["default"].createElement("a",{href:a.url},o["default"].createElement(s["default"],{size:"50",size2x:"80",user:a})))),o["default"].createElement("div",{className:"col-xs-9 col-sm-12 user-card-body"},o["default"].createElement("div",{className:"user-card-avatar"},o["default"].createElement("a",{href:a.url},o["default"].createElement(s["default"],{size:"150",size2x:"200",user:a}))),o["default"].createElement("div",{className:"user-card-username"},o["default"].createElement("a",{href:a.url},a.username)),o["default"].createElement("div",{className:"user-card-title"},o["default"].createElement(d["default"],{rank:n,title:a.title})),o["default"].createElement("div",{className:"user-card-stats"},o["default"].createElement(u["default"],{showStatus:t,user:a}))))))};var r=e("react"),o=n(r),l=e("../../avatar"),s=n(l),i=e("./stats"),u=n(i),c=e("./user-title"),d=n(c)},{"../../avatar":3,"./stats":255,"./user-title":256,react:"react"}],255:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=e.showStatus,a=e.user;return t?d["default"].createElement("li",{className:"user-stat-status"},d["default"].createElement(p["default"],{status:a.status},d["default"].createElement(f.StatusLabel,{status:a.status,user:a}))):null}function o(e){var t=e.user,a=t.joined_on,n=interpolate(gettext("Joined on %(joined_on)s"),{joined_on:a.format("LL, LT")},!0),r=interpolate(gettext("Joined %(joined_on)s"),{joined_on:a.fromNow()},!0);return d["default"].createElement("li",{className:"user-stat-join-date"},d["default"].createElement("abbr",{title:n},r))}function l(e){var t=e.user,a=u("user-stat-posts",t.posts),n=ngettext("%(posts)s post","%(posts)s posts",t.posts);return d["default"].createElement("li",{className:a},interpolate(n,{posts:t.posts},!0))}function s(e){var t=e.user,a=u("user-stat-threads",t.threads),n=ngettext("%(threads)s thread","%(threads)s threads",t.threads);return d["default"].createElement("li",{className:a},interpolate(n,{threads:t.threads},!0))}function i(e){var t=e.user,a=u("user-stat-followers",t.followers),n=ngettext("%(followers)s follower","%(followers)s followers",t.followers);return d["default"].createElement("li",{className:a},interpolate(n,{followers:t.followers},!0))}function u(e,t){return 0===t?e+" user-stat-empty":e}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.showStatus,a=e.user;return d["default"].createElement("ul",{className:"list-unstyled"},d["default"].createElement(r,{showStatus:t,user:a}),d["default"].createElement(o,{user:a}),d["default"].createElement("li",{className:"user-stat-divider"}),d["default"].createElement(l,{user:a}),d["default"].createElement(s,{user:a}),d["default"].createElement(i,{user:a}))},a.Status=r,a.JoinDate=o,a.Posts=l,a.Threads=s,a.Followers=i,a.getStatClassName=u;var c=e("react"),d=n(c),f=e("../../user-status"),p=n(f)},{"../../user-status":247,react:"react"}],256:[function(e,t,a){arguments[4][108][0].apply(a,arguments)},{dup:108,react:"react"}],257:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.cols,a=e.isReady,n=e.showStatus,r=e.users,l="col-xs-12 col-sm-4";return 4===t&&(l+=" col-md-3"),a?o["default"].createElement("div",{className:"users-cards-list ui-ready"},o["default"].createElement("div",{className:"row"},r.map(function(e){return o["default"].createElement("div",{className:l,key:e.id},o["default"].createElement(s["default"],{showStatus:n,user:e}))}))):o["default"].createElement(u["default"],{colClassName:l,cols:t})};var r=e("react"),o=n(r),l=e("./card"),s=n(l),i=e("./preview"),u=n(i)},{"./card":254,"./preview":259,react:"react"}],258:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../../avatar"),f=r(d),p=e("../../../utils/random"),m=n(p),h=function(e){function t(){return o(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return s(t,e),i(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"render",value:function(){return c["default"].createElement("div",{className:"panel user-card user-card-preview"},c["default"].createElement("div",{className:"panel-body"},c["default"].createElement("div",{className:"row"},c["default"].createElement("div",{className:"col-xs-3 user-card-left"},c["default"].createElement("div",{className:"user-card-small-avatar"},c["default"].createElement("span",null,c["default"].createElement(f["default"],{size:"50",size2x:"80"})))),c["default"].createElement("div",{className:"col-xs-9 col-sm-12 user-card-body"},c["default"].createElement("div",{className:"user-card-avatar"},c["default"].createElement("span",null,c["default"].createElement(f["default"],{size:"150",size2x:"200"}))),c["default"].createElement("div",{className:"user-card-username"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](60,150)+"px"}}," ")),c["default"].createElement("div",{className:"user-card-title"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](60,150)+"px"}}," ")),c["default"].createElement("div",{className:"user-card-stats"},c["default"].createElement("ul",{className:"list-unstyled"},c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,70)+"px"}}," ")),c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,70)+"px"}}," ")),c["default"].createElement("li",{className:"user-stat-divider"}),c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,70)+"px"}}," ")),c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,70)+"px"}}," "))))))))}}]),t}(c["default"].Component);a["default"]=h},{"../../../utils/random":359,"../../avatar":3,react:"react"}],259:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.colClassName,a=e.cols,n=Array.apply(null,{length:a}).map(Number.call,Number);return o["default"].createElement("div",{className:"users-cards-list ui-preview"},o["default"].createElement("div",{className:"row"},n.map(function(e){var a=t;return 0!==e&&(a+=" hidden-xs"),3===e&&(a+=" hidden-sm"),o["default"].createElement("div",{className:a,key:e},o["default"].createElement(s["default"],null))})))};var r=e("react"),o=n(r),l=e("./card"),s=n(l)},{"./card":258,react:"react"}],260:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getEmptyMessage",value:function(){return interpolate(gettext("No users have posted any new messages during last %(days)s days."),{days:this.props.trackedPeriod},!0)}},{key:"render",value:function(){return u["default"].createElement("div",{className:"active-posters-list"},u["default"].createElement("div",{className:"container"},u["default"].createElement("p",{className:"lead"},this.getEmptyMessage())))}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],261:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../../avatar"),f=r(d),p=e("../../../utils/random"),m=n(p),h=function(e){function t(){return o(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return s(t,e),i(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"getClassName",value:function(){return this.props.hiddenOnMobile?"list-group-item hidden-xs hidden-sm":"list-group-item"}},{key:"render",value:function(){return c["default"].createElement("li",{className:this.getClassName()},c["default"].createElement("div",{className:"rank-user-avatar"},c["default"].createElement("span",null,c["default"].createElement(f["default"],{size:"50"}))),c["default"].createElement("div",{className:"rank-user"},c["default"].createElement("div",{className:"user-name"},c["default"].createElement("span",{className:"item-title"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,80)+"px"}}," "))),c["default"].createElement("div",{className:"user-details"},c["default"].createElement("span",{className:"user-status"},c["default"].createElement("span",{className:"status-icon ui-preview-text"}," "),c["default"].createElement("span",{className:"status-label ui-preview-text hidden-xs hidden-sm",style:{width:m["int"](30,50)+"px"}}," ")),c["default"].createElement("span",{className:"rank-name"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,50)+"px"}}," ")),c["default"].createElement("span",{className:"user-title hidden-xs hidden-sm"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,50)+"px"}}," "))),c["default"].createElement("div",{className:"user-compact-stats visible-xs-block"},c["default"].createElement("span",{className:"rank-position"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](20,30)+"px"}}," ")),c["default"].createElement("small",null,gettext("Rank"))),c["default"].createElement("span",{className:"rank-posts-counted"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](20,30)+"px"}}," ")),c["default"].createElement("small",null,gettext("Ranked posts"))))),c["default"].createElement("div",{className:"rank-position hidden-xs"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](20,30)+"px"}}," ")),c["default"].createElement("small",null,gettext("Rank"))),c["default"].createElement("div",{className:"rank-posts-counted hidden-xs"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](20,30)+"px"}}," ")),c["default"].createElement("small",null,gettext("Ranked posts"))),c["default"].createElement("div",{className:"rank-posts-total hidden-xs"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](20,30)+"px"}}," ")),c["default"].createElement("small",null,gettext("Total posts"))))}}]),t}(c["default"].Component);a["default"]=h},{"../../../utils/random":359,"../../avatar":3,react:"react"}],262:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("react-router"),f=e("../../avatar"),p=r(f),m=e("../../user-status"),h=r(m),b=e("../../../index"),v=r(b),y=e("../../../utils/random"),g=n(y),_=function(e){function t(){return o(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.rank.css_class?"list-group-item list-group-rank-"+this.props.rank.css_class:"list-group-item"}},{key:"getUserStatus",value:function(){return this.props.user.status?c["default"].createElement(h["default"],{user:this.props.user,status:this.props.user.status},c["default"].createElement(m.StatusIcon,{user:this.props.user,status:this.props.user.status}),c["default"].createElement(m.StatusLabel,{user:this.props.user,status:this.props.user.status,className:"status-label hidden-xs hidden-sm"})):c["default"].createElement("span",{className:"user-status"},c["default"].createElement("span",{className:"status-icon ui-preview-text"}," "),c["default"].createElement("span",{className:"status-label ui-preview-text hidden-xs hidden-sm",style:{width:g["int"](30,50)+"px"}}," "))}},{key:"getRankName",value:function(){if(!this.props.rank.is_tab)return c["default"].createElement("span",{className:"rank-name item-title"},this.props.rank.name);var e=v["default"].get("USERS_LIST_URL")+this.props.rank.slug+"/";return c["default"].createElement(d.Link,{to:e,className:"rank-name item-title"},this.props.rank.name)}},{key:"getUserTitle",value:function(){return this.props.user.title?c["default"].createElement("span",{className:"user-title hidden-xs hidden-sm"},this.props.user.title):null}},{key:"render",value:function(){return c["default"].createElement("li",{className:this.getClassName()},c["default"].createElement("div",{className:"rank-user-avatar"},c["default"].createElement("a",{href:this.props.user.url},c["default"].createElement(p["default"],{user:this.props.user,size:50,size2x:64}))),c["default"].createElement("div",{className:"rank-user"},c["default"].createElement("div",{className:"user-name"},c["default"].createElement("a",{href:this.props.user.url,className:"item-title"},this.props.user.username)),c["default"].createElement("div",{className:"user-details"},this.getUserStatus(),this.getRankName(),this.getUserTitle()),c["default"].createElement("div",{className:"user-compact-stats visible-xs-block"},c["default"].createElement("span",{className:"rank-position"},c["default"].createElement("strong",null,"#",this.props.counter),c["default"].createElement("small",null,gettext("Rank"))),c["default"].createElement("span",{className:"rank-posts-counted"},c["default"].createElement("strong",null,this.props.user.meta.score),c["default"].createElement("small",null,gettext("Ranked posts"))))),c["default"].createElement("div",{className:"rank-position hidden-xs"},c["default"].createElement("strong",null,"#",this.props.counter),c["default"].createElement("small",null,gettext("Rank"))),c["default"].createElement("div",{className:"rank-posts-counted hidden-xs"},c["default"].createElement("strong",null,this.props.user.meta.score),c["default"].createElement("small",null,gettext("Ranked posts"))),c["default"].createElement("div",{className:"rank-posts-total hidden-xs"},c["default"].createElement("strong",null,this.props.user.posts),c["default"].createElement("small",null,gettext("Total posts"))))}}]),t}(c["default"].Component);a["default"]=_},{"../../../index":275,"../../../utils/random":359,"../../avatar":3,"../../user-status":247,react:"react","react-router":"react-router"}],263:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("./list-item-preview"),f=r(d),p=e("../../../utils/random"),m=n(p),h=function(e){function t(){return o(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return s(t,e),i(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"render",value:function(){return c["default"].createElement("div",{className:"active-posters-list"},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead ui-preview"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](50,220)+"px"}}," ")),c["default"].createElement("div",{className:"active-posters ui-preview"},c["default"].createElement("ul",{className:"list-group"},[0,1,2].map(function(e){return c["default"].createElement(f["default"],{hiddenOnMobile:e>0,key:e})})))))}}]),t}(c["default"].Component);a["default"]=h},{"../../../utils/random":359,"./list-item-preview":261,react:"react"}],264:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./list-item"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getLeadMessage",value:function(){var e=ngettext("%(posters)s most active poster from last %(days)s days.","%(posters)s most active posters from last %(days)s days.",this.props.count);return interpolate(e,{posters:this.props.count,days:this.props.trackedPeriod},!0)}},{key:"render",value:function(){return u["default"].createElement("div",{className:"active-posters-list"},u["default"].createElement("div",{className:"container"},u["default"].createElement("p",{className:"lead"},this.getLeadMessage()),u["default"].createElement("div",{className:"active-posters ui-ready"},u["default"].createElement("ul",{className:"list-group"},this.props.users.map(function(e,t){return u["default"].createElement(d["default"],{user:e,rank:e.rank,counter:t+1,key:e.id})})))))}}]),t}(u["default"].Component);a["default"]=f},{"./list-item":262,react:"react"}],265:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./list-empty"),d=n(c),f=e("./list-preview"),p=n(f),m=e("./list-ready"),h=n(m),b=e("../../../index"),v=n(b),y=e("../../../reducers/users"),g=e("../../../services/polls"),_=n(g),E=e("../../../services/store"),w=n(E),O=e("../../../services/page-title"),k=n(O),x=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.update=function(e){w["default"].dispatch((0,y.hydrate)(e.results)),a.setState({isLoaded:!0,trackedPeriod:e.tracked_period,count:e.count})},v["default"].has("USERS")?a.initWithPreloadedData(v["default"].pop("USERS")):a.initWithoutPreloadedData(),a.startPolling(),a}return l(t,e),s(t,[{key:"initWithPreloadedData",value:function(e){this.state={isLoaded:!0,trackedPeriod:e.tracked_period,count:e.count},w["default"].dispatch((0,y.hydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPolling",value:function(){_["default"].start({poll:"active-posters",url:v["default"].get("USERS_API"),data:{list:"active"},frequency:9e4,update:this.update})}},{key:"componentDidMount",value:function(){k["default"].set({title:this.props.route.extra.name,parent:gettext("Users")})}},{key:"componentWillUnmount",value:function(){_["default"].stop("active-posters")}},{key:"render",value:function(){return this.state.isLoaded?this.state.count>0?u["default"].createElement(h["default"],{users:this.props.users,trackedPeriod:this.state.trackedPeriod,count:this.state.count}):u["default"].createElement(d["default"],{trackedPeriod:this.state.trackedPeriod}):u["default"].createElement(p["default"],null)}}]),t}(u["default"].Component);a["default"]=x},{"../../../index":275,"../../../reducers/users":335,"../../../services/page-title":344,"../../../services/polls":345,"../../../services/store":348,"./list-empty":260,"./list-preview":263,"./list-ready":264,react:"react"}],266:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.baseUrl,a=e.lists;return o["default"].createElement("ul",{className:"nav nav-pills"},a.map(function(e){var a=c(t,e);return o["default"].createElement(i["default"],{path:a,key:a},o["default"].createElement(l.Link,{to:a},e.name))}))};var r=e("react"),o=n(r),l=e("react-router"),s=e("../li"),i=n(s),u=e("../../index"),c=(n(u),function(e,t){var a=e;return a+="rank"===t.component?t.slug:t.component,a+"/"})},{"../../index":275,"../li":53,react:"react","react-router":"react-router"}],267:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../../users-list"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"render",value:function(){return u["default"].createElement("div",null,u["default"].createElement(d["default"],{cols:4,isReady:!1}))}}]),t}(u["default"].Component);a["default"]=f},{"../../users-list":257,react:"react"}],268:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return o["default"].createElement("div",null,o["default"].createElement(u["default"],{cols:4,isReady:!0,showStatus:!0,users:e.users}),o["default"].createElement(s["default"],e))};var r=e("react"),o=n(r),l=e("./pager"),s=n(l),i=e("../../users-list"),u=n(i)},{"../../users-list":257,"./pager":269,react:"react"}],269:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return d["default"].createElement("div",{className:"row row-paginator"},d["default"].createElement("div",{className:"col-xs-3"},d["default"].createElement(o,e)),d["default"].createElement("div",{className:"col-xs-3"},d["default"].createElement(l,e)),d["default"].createElement("div",{className:"col-xs-3"},d["default"].createElement(s,e)),d["default"].createElement("div",{className:"col-xs-3"},d["default"].createElement(i,e)))}function o(e){return e.isLoaded&&e.first?d["default"].createElement(f.Link,{className:"btn btn-default btn-block btn-icon btn-outline",onClick:m["default"],to:e.baseUrl,title:gettext("Go to first page")},d["default"].createElement("span",{className:"material-icon"},"first_page")):d["default"].createElement("span",{className:"btn btn-default btn-block btn-icon btn-outline disabled",title:gettext("Go to first page")},d["default"].createElement("span",{className:"material-icon"},"first_page"))}function l(e){if(e.isLoaded&&e.page>1){var t="";return e.previous&&(t=e.previous+"/"),d["default"].createElement(f.Link,{className:"btn btn-default btn-block btn-icon btn-outline",onClick:m["default"],to:e.baseUrl+t,title:gettext("Go to previous page")},d["default"].createElement("span",{className:"material-icon"},"chevron_left"))}return d["default"].createElement("span",{className:"btn btn-default btn-block btn-icon btn-outline disabled",title:gettext("Go to previous page")},d["default"].createElement("span",{className:"material-icon"},"chevron_left"))}function s(e){if(e.isLoaded&&e.more){var t="";return e.next&&(t=e.next+"/"),d["default"].createElement(f.Link,{className:"btn btn-default btn-block btn-icon btn-outline",onClick:m["default"],to:e.baseUrl+t,title:gettext("Go to next page")},d["default"].createElement("span",{className:"material-icon"},"chevron_right"))}return d["default"].createElement("span",{className:"btn btn-default btn-block btn-icon btn-outline disabled",title:gettext("Go to next page")},d["default"].createElement("span",{className:"material-icon"},"chevron_right"))}function i(e){return e.isLoaded&&e.last?d["default"].createElement(f.Link,{className:"btn btn-default btn-block btn-icon btn-outline",onClick:m["default"],to:e.baseUrl+e.last+"/",title:gettext("Go to last page")},d["default"].createElement("span",{className:"material-icon"},"last_page")):d["default"].createElement("span",{className:"btn btn-default btn-block btn-icon btn-outline disabled",title:gettext("Go to last page")},d["default"].createElement("span",{className:"material-icon"},"last_page"))}function u(e){var t=null;return e.more?(t=ngettext("There is %(more)s more member with this role.","There are %(more)s more members with this role.",e.more),t=interpolate(t,{more:e.more},!0)):t=gettext("There are no more members with this role."),d["default"].createElement("p",null,t)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return 1===e.pages?null:d["default"].createElement("div",{className:"row row-toolbar"},d["default"].createElement("div",{className:"col-xs-12 text-center visible-xs-block"},d["default"].createElement(u,{more:e.more}),d["default"].createElement("div",{className:"toolbar-vertical-spacer"})),d["default"].createElement("div",{className:"col-md-7"},d["default"].createElement("div",{className:"row"},d["default"].createElement("div",{className:"col-sm-4 col-md-5"},d["default"].createElement(r,e)),d["default"].createElement("div",{className:"col-sm-8 col-md-7 hidden-xs"
-},d["default"].createElement(u,{more:e.more})))))},a.Pager=r,a.FirstPage=o,a.PreviousPage=l,a.NextPage=s,a.LastPage=i,a.More=u;var c=e("react"),d=n(c),f=e("react-router"),p=e("../../../utils/reset-scroll"),m=n(p)},{"../../../utils/reset-scroll":360,react:"react","react-router":"react-router"}],270:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=n(u),d=e("../../page-lead"),f=n(d),p=e("./list"),m=n(p),h=e("./list-loading"),b=n(h),v=e("../../../index"),y=n(v),g=e("../../../reducers/users"),_=e("../../../services/polls"),E=n(_),w=e("../../../services/store"),O=n(w),k=e("../../../services/page-title"),x=n(k),N=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.update=function(e){O["default"].dispatch((0,g.hydrate)(e.results)),e.isLoaded=!0,a.setState(e)},y["default"].has("USERS")?a.initWithPreloadedData(y["default"].pop("USERS")):a.initWithoutPreloadedData(),a.startPolling(e.params.page||1),a}return l(t,e),i(t,[{key:"initWithPreloadedData",value:function(e){this.state=Object.assign(e,{isLoaded:!0}),O["default"].dispatch((0,g.hydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPolling",value:function(e){E["default"].start({poll:"rank-users",url:y["default"].get("USERS_API"),data:{rank:this.props.route.rank.id,page:e},frequency:9e4,update:this.update})}},{key:"componentDidMount",value:function(){x["default"].set({title:this.props.route.rank.name,page:this.props.params.page||null,parent:gettext("Users")})}},{key:"componentWillUnmount",value:function(){E["default"].stop("rank-users")}},{key:"componentWillReceiveProps",value:function(e){this.props.params.page!==e.params.page&&(x["default"].set({title:this.props.route.rank.name,page:e.params.page||null,parent:gettext("Users")}),this.setState({isLoaded:!1}),E["default"].stop("rank-users"),this.startPolling(e.params.page))}},{key:"getClassName",value:function(){return this.props.route.rank.css_class?"rank-users-list rank-users-"+this.props.route.rank.css_class:"rank-users-list"}},{key:"getRankDescription",value:function(){return this.props.route.rank.description?c["default"].createElement("div",{className:"rank-description"},c["default"].createElement(f["default"],{copy:this.props.route.rank.description.html})):null}},{key:"getComponent",value:function(){if(this.state.isLoaded){if(this.state.count>0){var e=y["default"].get("USERS_LIST_URL")+this.props.route.rank.slug+"/";return c["default"].createElement(m["default"],s({baseUrl:e,users:this.props.users},this.state))}return c["default"].createElement("p",{className:"lead"},gettext("There are no users with this rank at the moment."))}return c["default"].createElement(b["default"],null)}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement("div",{className:"container"},this.getRankDescription(),this.getComponent()))}}]),t}(c["default"].Component);a["default"]=N},{"../../../index":275,"../../../reducers/users":335,"../../../services/page-title":344,"../../../services/polls":345,"../../../services/store":348,"../../page-lead":70,"./list":268,"./list-loading":267,react:"react"}],271:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return{tick:e.tick.tick,user:e.auth.user,users:e.users}}function i(){var e=[];return O["default"].get("USERS_LISTS").forEach(function(t){"rank"===t.component?(e.push({path:O["default"].get("USERS_LIST_URL")+t.slug+"/:page/",component:(0,f.connect)(s)(g["default"]),rank:t}),e.push({path:O["default"].get("USERS_LIST_URL")+t.slug+"/",component:(0,f.connect)(s)(g["default"]),rank:t})):"active-posters"===t.component&&e.push({path:O["default"].get("USERS_LIST_URL")+t.component+"/",component:(0,f.connect)(s)(v["default"]),extra:{name:t.name}})}),e}Object.defineProperty(a,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.select=s,a.paths=i;var c=e("react"),d=n(c),f=e("react-redux"),p=e("../dropdown-toggle"),m=(n(p),e("./nav")),h=n(m),b=e("./active-posters/root"),v=n(b),y=e("./rank/root"),g=n(y),_=e("../with-dropdown"),E=n(_),w=e("../../index"),O=n(w),k=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),u(t,[{key:"render",value:function(){return d["default"].createElement("div",{className:"page page-users-lists"},d["default"].createElement("div",{className:"page-header-bg"},d["default"].createElement("div",{className:"page-header"},d["default"].createElement("div",{className:"container"},d["default"].createElement("h1",null,gettext("Users"))),d["default"].createElement("div",{className:"page-tabs"},d["default"].createElement("div",{className:"container"},d["default"].createElement(h["default"],{lists:O["default"].get("USERS_LISTS"),baseUrl:O["default"].get("USERS_LIST_URL")}))))),this.props.children)}}]),t}(E["default"]);a["default"]=k},{"../../index":275,"../dropdown-toggle":24,"../with-dropdown":272,"./active-posters/root":265,"./nav":266,"./rank/root":270,react:"react","react-redux":"react-redux"}],272:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.toggleNav=function(){a.setState({dropdown:!a.state.dropdown})},a.hideNav=function(){a.setState({dropdown:!1})},a.state={dropdown:!1},a}return l(t,e),s(t,[{key:"getCompactNavClassName",value:function(){return this.state.dropdown?"compact-nav open":"compact-nav"}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],273:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.toggle=function(){n.props.onChange({target:{value:!n.props.value}})},l=a,o(n,l)}return l(t,e),s(t,[{key:"getClassName",value:function(){return this.props.value?"btn btn-yes-no btn-yes-no-on":"btn btn-yes-no btn-yes-no-off"}},{key:"getIcon",value:function(){return this.props.value?this.props.iconOn||"check_box":this.props.iconOff||"check_box_outline_blank"}},{key:"getLabel",value:function(){return this.props.value?this.props.labelOn||gettext("yes"):this.props.labelOff||gettext("no")}},{key:"render",value:function(){return u["default"].createElement("button",{type:"button",onClick:this.toggle,className:this.getClassName(),id:this.props.id||null,"aria-describedby":this.props["aria-describedby"]||null,disabled:this.props.disabled||!1},u["default"].createElement("span",{className:"material-icon"},this.getIcon()),u["default"].createElement("span",{className:"btn-text"},this.getLabel()))}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],274:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../reducers/profile-details"),d=e("../services/ajax"),f=n(d),p=e("../services/snackbar"),m=n(p),h=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"componentDidMount",value:function(){var e=this.props,t=e.data,a=e.dispatch,n=e.user;t&&t.id===n.id||f["default"].get(this.props.user.api.details).then(function(e){a((0,c.load)(e))},function(e){m["default"].apiError(e)})}},{key:"render",value:function(){return this.props.children}}]),t}(u["default"].Component);a["default"]=h},{"../reducers/profile-details":326,"../services/ajax":336,"../services/snackbar":347,react:"react"}],275:[function(e,t,a){(function(t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0}),a.Misago=void 0;var o=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),l=e("./utils/ordered-list"),s=n(l),i=a.Misago=function(){function e(){r(this,e),this._initializers=[],this._context={}}return o(e,[{key:"addInitializer",value:function(e){this._initializers.push({key:e.name,item:e.initializer,after:e.after,before:e.before})}},{key:"init",value:function(e){var t=this;this._context=e;var a=new s["default"](this._initializers).orderedValues();a.forEach(function(e){e(t)})}},{key:"has",value:function(e){return!!this._context[e]}},{key:"get",value:function(e,t){return this.has(e)?this._context[e]:t||void 0}},{key:"pop",value:function(e){if(this.has(e)){var t=this._context[e];return this._context[e]=null,t}}}]),e}(),u=new i;t.misago=u,a["default"]=u}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./utils/ordered-list":358}],276:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){i["default"].init(l["default"].get("CSRF_COOKIE_NAME"))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/ajax"),i=n(s);l["default"].addInitializer({name:"ajax",initializer:r})},{"../index":275,"../services/ajax":336}],277:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.get("isAuthenticated")&&window.setInterval(function(){u["default"].get(e.get("AUTH_API")).then(function(e){p["default"].dispatch((0,s.patch)(e))},function(e){d["default"].apiError(e)})},1e3*m)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../reducers/auth"),i=e("../services/ajax"),u=n(i),c=e("../services/snackbar"),d=n(c),f=e("../services/store"),p=n(f),m=45;l["default"].addInitializer({name:"auth-sync",initializer:r,after:"auth"})},{"../index":275,"../reducers/auth":321,"../services/ajax":336,"../services/snackbar":347,"../services/store":348}],278:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){i["default"].init(f["default"],m["default"],c["default"])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/auth"),i=n(s),u=e("../services/modal"),c=n(u),d=e("../services/store"),f=n(d),p=e("../services/local-storage"),m=n(p);l["default"].addInitializer({name:"auth",initializer:r,after:"store"})},{"../index":275,"../services/auth":337,"../services/local-storage":340,"../services/modal":342,"../services/store":348}],279:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){c["default"].init(e,i["default"],f["default"],m["default"])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/ajax"),i=n(s),u=e("../services/captcha"),c=n(u),d=e("../services/include"),f=n(d),p=e("../services/snackbar"),m=n(p);l["default"].addInitializer({name:"captcha",initializer:r})},{"../index":275,"../services/ajax":336,"../services/captcha":338,"../services/include":339,"../services/snackbar":347}],280:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,d["default"])((0,o.connect)(i.select)(u["default"]),"auth-message-mount")}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("react-redux"),l=e("../../index"),s=n(l),i=e("../../components/auth-message"),u=n(i),c=e("../../utils/mount-component"),d=n(c);s["default"].addInitializer({name:"component:auth-message",initializer:r,after:"store"})},{"../../components/auth-message":2,"../../index":275,"../../utils/mount-component":357,"react-redux":"react-redux"}],281:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("BAN_MESSAGE")&&(0,i["default"])(e.get("BAN_MESSAGE"),!1)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../utils/banned-page"),i=n(s);l["default"].addInitializer({name:"component:banmed-page",initializer:r,after:"store"})},{"../../index":275,"../../utils/banned-page":350}],282:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("categories-mount")&&(0,d["default"])((0,o.connect)(l.select)(s["default"]),"categories-mount")}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("react-redux"),l=e("../../components/categories"),s=n(l),i=e("../../index"),u=n(i),c=e("../../utils/mount-component"),d=n(c);u["default"].addInitializer({name:"component:categories",initializer:r,after:"store"})},{"../../components/categories":17,"../../index":275,"../../utils/mount-component":357,"react-redux":"react-redux"}],283:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("USER_OPTIONS")&&(0,c["default"])({root:i["default"].get("USERCP_URL"),component:l["default"],paths:(0,o.paths)()})}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../components/options/root"),l=n(o),s=e("../../index"),i=n(s),u=e("../../utils/routed-component"),c=n(u);i["default"].addInitializer({name:"component:options",initializer:r,after:"store"})},{"../../components/options/root":66,"../../index":275,"../../utils/routed-component":361}],284:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("PROFILE")&&e.has("PROFILE_PAGES")&&(0,d["default"])({root:u["default"].get("PROFILE").url,component:(0,o.connect)(l.select)(s["default"]),paths:(0,l.paths)()})}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("react-redux"),l=e("../../components/profile/root"),s=n(l),i=e("../../index"),u=n(i),c=e("../../utils/routed-component"),d=n(c);u["default"].addInitializer({name:"component:profile",initializer:r,after:"reducer:profile-hydrate"})},{"../../components/profile/root":173,"../../index":275,"../../utils/routed-component":361,"react-redux":"react-redux"}],285:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("request-activation-link-mount")&&(0,c["default"])(i["default"],"request-activation-link-mount",!1)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../components/request-activation-link"),i=n(s),u=e("../../utils/mount-component"),c=n(u);l["default"].addInitializer({name:"component:request-activation-link",initializer:r,after:"store"})},{"../../components/request-activation-link":178,"../../index":275,"../../utils/mount-component":357}],286:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("request-password-reset-mount")&&(0,c["default"])(i["default"],"request-password-reset-mount",!1)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../components/request-password-reset"),i=n(s),u=e("../../utils/mount-component"),c=n(u);l["default"].addInitializer({name:"component:request-password-reset",initializer:r,after:"store"})},{"../../components/request-password-reset":179,"../../index":275,"../../utils/mount-component":357}],287:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("reset-password-form-mount")&&(0,c["default"])(i["default"],"reset-password-form-mount",!1)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../.."),l=n(o),s=e("../../components/reset-password-form"),i=n(s),u=e("../../utils/mount-component"),c=n(u);l["default"].addInitializer({name:"component:reset-password-form",initializer:r,after:"store"})},{"../..":275,"../../components/reset-password-form":180,"../../utils/mount-component":357}],288:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){"misago:search"===e.get("CURRENT_LINK")&&(0,c["default"])({paths:(0,l["default"])(i["default"].get("SEARCH_PROVIDERS"))})}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../components/search"),l=n(o),s=e("../.."),i=n(s),u=e("../../utils/routed-component"),c=n(u);i["default"].addInitializer({name:"component:search",initializer:r,after:"store"})},{"../..":275,"../../components/search":182,"../../utils/routed-component":361}],289:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,c["default"])((0,o.connect)(i.select)(i.Snackbar),"snackbar-mount")}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("react-redux"),l=e("../../index"),s=n(l),i=e("../../components/snackbar"),u=e("../../utils/mount-component"),c=n(u);s["default"].addInitializer({name:"component:snackbar",initializer:r,after:"snackbar"})},{"../../components/snackbar":190,"../../index":275,"../../utils/mount-component":357,"react-redux":"react-redux"}],290:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("THREAD")&&e.has("POSTS")&&(0,u["default"])({paths:(0,o.paths)()})}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../components/thread/root"),l=e("../../index"),s=n(l),i=e("../../utils/routed-component"),u=n(i);s["default"].addInitializer({name:"component:thread",initializer:r,after:"store"})},{"../../components/thread/root":206,"../../index":275,"../../utils/routed-component":361}],291:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("THREADS")&&e.has("CATEGORIES")&&(0,c["default"])({paths:(0,l.paths)(e.get("user"),o(e))})}function o(e){var t=e.get("CURRENT_LINK");return t.substr(0,d.length)===d?{api:e.get("PRIVATE_THREADS_API"),startThread:{mode:"START_PRIVATE",submit:i["default"].get("PRIVATE_THREADS_API")},title:gettext("Private threads"),pageLead:gettext("Private threads are threads which only those that started them and those they have invited may see and participate in."),emptyMessage:gettext("You aren't participating in any private threads.")}:{api:e.get("THREADS_API")}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r,a.getListOptions=o;var l=e("../../components/threads/root"),s=e("../../index"),i=n(s),u=e("../../utils/routed-component"),c=n(u),d="misago:private-threads";i["default"].addInitializer({name:"component:threads",initializer:r,after:"store"})},{"../../components/threads/root":240,"../../index":275,"../../utils/routed-component":361}],292:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,c["default"])((0,o.connect)(i.select)(i.UserMenu),"user-menu-mount"),(0,c["default"])((0,o.connect)(i.select)(i.CompactUserMenu),"user-menu-compact-mount")}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("react-redux"),l=e("../../index"),s=n(l),i=e("../../components/user-menu/root"),u=e("../../utils/mount-component"),c=n(u);s["default"].addInitializer({name:"component:user-menu",initializer:r,after:"store"})},{"../../components/user-menu/root":245,"../../index":275,"../../utils/mount-component":357,"react-redux":"react-redux"}],293:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("USERS_LISTS")&&(0,c["default"])({root:i["default"].get("USERS_LIST_URL"),component:l["default"],paths:(0,o.paths)()})}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../components/users/root"),l=n(o),s=e("../../index"),i=n(s),u=e("../../utils/routed-component"),c=n(u);i["default"].addInitializer({name:"component:users",initializer:r,after:"store"})},{"../../components/users/root":271,"../../index":275,"../../utils/routed-component":361}],294:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){i["default"].init(e.get("STATIC_URL"))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/include"),i=n(s);l["default"].addInitializer({name:"include",initializer:r})},{"../index":275,"../services/include":339}],295:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){i["default"].init("misago_")}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/local-storage"),i=n(s);l["default"].addInitializer({name:"local-storage",initializer:r})},{"../index":275,"../services/local-storage":340}],296:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=document.getElementById("mobile-navbar-dropdown-mount");e&&i["default"].init(e)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/mobile-navbar-dropdown"),i=n(s);l["default"].addInitializer({name:"dropdown",initializer:r,before:"store"})},{"../index":275,"../services/mobile-navbar-dropdown":341}],297:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=document.getElementById("modal-mount");e&&i["default"].init(e)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/modal"),i=n(s);l["default"].addInitializer({name:"modal",initializer:r,before:"store"})},{"../index":275,"../services/modal":342}],298:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){l["default"].locale($("html").attr("lang"))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("moment"),l=n(o),s=e("../index"),i=n(s);i["default"].addInitializer({name:"moment",initializer:r})},{"../index":275,moment:"moment"}],299:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){i["default"].init(e.get("SETTINGS").forum_index_title,e.get("SETTINGS").forum_name)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/page-title"),i=n(s);l["default"].addInitializer({name:"page-title",initializer:r})},{"../index":275,"../services/page-title":344}],300:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){f["default"].init(i["default"],c["default"])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/ajax"),i=n(s),u=e("../services/snackbar"),c=n(u),d=e("../services/polls"),f=n(d);l["default"].addInitializer({name:"polls",initializer:r})},{"../index":275,"../services/ajax":336,"../services/polls":345,"../services/snackbar":347}],301:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].init(i["default"],f["default"],document.getElementById("posting-placeholder"))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/ajax"),i=n(s),u=e("../services/posting"),c=n(u),d=e("../services/snackbar"),f=n(d);l["default"].addInitializer({name:"posting",initializer:r})},{"../index":275,"../services/ajax":336,"../services/posting":346,"../services/snackbar":347}],302:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){c["default"].addReducer("auth",i["default"],Object.assign({isAuthenticated:e.get("isAuthenticated"),isAnonymous:!e.get("isAuthenticated"),user:e.get("user")},s.initialState))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/auth"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:auth",initializer:r,before:"store"})},{"../../index":275,"../../reducers/auth":321,"../../services/store":348}],303:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=null;l["default"].has("THREAD")&&(e=l["default"].get("THREAD").participants),c["default"].addReducer("participants",i["default"],e||[])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/participants"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:participants",initializer:r,before:"store"})},{"../../index":275,"../../reducers/participants":322,"../../services/store":348}],304:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=null;e=l["default"].has("THREAD")&&l["default"].get("THREAD").poll?(0,s.hydrate)(l["default"].get("THREAD").poll):{isBusy:!1},c["default"].addReducer("poll",i["default"],e)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/poll"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:poll",initializer:r,before:"store"})},{"../../index":275,"../../reducers/poll":323,"../../services/store":348}],305:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=null;e=l["default"].has("POSTS")?(0,s.hydrate)(l["default"].get("POSTS")):{isLoaded:!1,isBusy:!1},c["default"].addReducer("posts",i["default"],e)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/posts"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:posts",initializer:r,before:"store"})},{"../../index":275,"../../reducers/posts":325,"../../services/store":348}],306:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=null;l["default"].has("PROFILE_DETAILS")&&(e=l["default"].get("PROFILE_DETAILS")),c["default"].addReducer("profile-details",i["default"],e||{})}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/profile-details"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:profile-details",initializer:r,before:"store"})},{"../../index":275,"../../reducers/profile-details":326,"../../services/store":348}],307:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){l["default"].has("PROFILE")&&u["default"].dispatch((0,s.hydrate)(l["default"].get("PROFILE")))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/profile"),i=e("../../services/store"),u=n(i);l["default"].addInitializer({name:"reducer:profile-hydrate",initializer:r,after:"store"})},{"../../index":275,"../../reducers/profile":327,"../../services/store":348}],308:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("profile",i["default"],{})}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/profile"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:profile",initializer:r,before:"store"})},{"../../index":275,"../../reducers/profile":327,"../../services/store":348}],309:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("search",i["default"],Object.assign({},s.initialState,{providers:l["default"].get("SEARCH_PROVIDERS")||[]
-}))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../.."),l=n(o),s=e("../../reducers/search"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:search",initializer:r,before:"store"})},{"../..":275,"../../reducers/search":328,"../../services/store":348}],310:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("selection",i["default"],[])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/selection"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:selection",initializer:r,before:"store"})},{"../../index":275,"../../reducers/selection":329,"../../services/store":348}],311:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("snackbar",i["default"],s.initialState)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/snackbar"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:snackbar",initializer:r,before:"store"})},{"../../index":275,"../../reducers/snackbar":330,"../../services/store":348}],312:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=null;e=l["default"].has("THREAD")?(0,s.hydrate)(l["default"].get("THREAD")):{isBusy:!1},c["default"].addReducer("thread",i["default"],e)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/thread"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:thread",initializer:r,before:"store"})},{"../../index":275,"../../reducers/thread":331,"../../services/store":348}],313:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("threads",i["default"],[])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/threads"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:threads",initializer:r,before:"store"})},{"../../index":275,"../../reducers/threads":332,"../../services/store":348}],314:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("tick",i["default"],s.initialState)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/tick"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:tick",initializer:r,before:"store"})},{"../../index":275,"../../reducers/tick":333,"../../services/store":348}],315:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("username-history",i["default"],[])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/username-history"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:username-history",initializer:r,before:"store"})},{"../../index":275,"../../reducers/username-history":334,"../../services/store":348}],316:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("users",i["default"],[])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/users"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:users",initializer:r,before:"store"})},{"../../index":275,"../../reducers/users":335,"../../services/store":348}],317:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){i["default"].init(c["default"])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/snackbar"),i=n(s),u=e("../services/store"),c=n(u);l["default"].addInitializer({name:"snackbar",initializer:r,after:"store"})},{"../index":275,"../services/snackbar":347,"../services/store":348}],318:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){i["default"].init()}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/store"),i=n(s);l["default"].addInitializer({name:"store",initializer:r,before:"_end"})},{"../index":275,"../services/store":348}],319:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){window.setInterval(function(){u["default"].dispatch((0,s.doTick)())},c)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../reducers/tick"),i=e("../services/store"),u=n(i),c=5e4;l["default"].addInitializer({name:"tick-start",initializer:r,after:"store"})},{"../index":275,"../reducers/tick":333,"../services/store":348}],320:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].init(i["default"])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/include"),i=n(s),u=e("../services/zxcvbn"),c=n(u);l["default"].addInitializer({name:"zxcvbn",initializer:r})},{"../index":275,"../services/include":339,"../services/zxcvbn":349}],321:[function(e,t,a){"use strict";function n(e){return{type:u,patch:e}}function r(e){return{type:c,user:e}}function o(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return{type:d,soft:e}}function l(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case u:var a=Object.assign({},e);return a.user=Object.assign({},e.user,t.patch),a;case c:return Object.assign({},e,{signedIn:t.user});case d:return Object.assign({},e,{isAuthenticated:!1,isAnonymous:!0,signedOut:!t.soft});case s.UPDATE_AVATAR:if(e.isAuthenticated&&e.user.id===t.userId){var n=Object.assign({},e);return n.user=Object.assign({},e.user,{avatars:t.avatars}),n}return e;case s.UPDATE_USERNAME:if(e.isAuthenticated&&e.user.id===t.userId){var r=Object.assign({},e);return r.user=Object.assign({},e.user,{username:t.username,slug:t.slug}),r}return e;default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.SIGN_OUT=a.SIGN_IN=a.PATCH_USER=a.initialState=void 0,a.patch=n,a.signIn=r,a.signOut=o,a["default"]=l;var s=e("./users"),i=a.initialState={signedIn:!1,signedOut:!1},u=a.PATCH_USER="PATCH_USER",c=a.SIGN_IN="SIGN_IN",d=a.SIGN_OUT="SIGN_OUT"},{"./users":335}],322:[function(e,t,a){"use strict";function n(e){return{type:o,state:e}}function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case o:return t.state;default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.replace=n,a["default"]=r;var o=a.REPLACE_PARTICIPANTS="REPLACE_PARTICIPANTS"},{}],323:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=!1;for(var a in e.choices){var n=e.choices[a];if(n.selected){t=!0;break}}return Object.assign({},e,{posted_on:(0,f["default"])(e.posted_on),hasSelectedChoices:t,endsOn:e.length?(0,f["default"])(e.posted_on).add(e.length,"days"):null,isBusy:!1})}function o(){return{type:p}}function l(){return{type:m}}function s(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return{type:b,state:t?e:r(e)}}function i(e){return{type:v,data:e}}function u(){return{type:h}}function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case p:return Object.assign({},e,{isBusy:!0});case m:return Object.assign({},e,{isBusy:!1});case h:return{isBusy:!1};case b:return t.state;case v:return Object.assign({},e,t.data);default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.UPDATE_POLL=a.REPLACE_POLL=a.REMOVE_POLL=a.RELEASE_POLL=a.BUSY_POLL=void 0,a.hydrate=r,a.busy=o,a.release=l,a.replace=s,a.update=i,a.remove=u,a["default"]=c;var d=e("moment"),f=n(d),p=a.BUSY_POLL="BUSY_POLL",m=a.RELEASE_POLL="RELEASE_POLL",h=a.REMOVE_POLL="REMOVE_POLL",b=a.REPLACE_POLL="REPLACE_POLL",v=a.UPDATE_POLL="UPDATE_POLL"},{moment:"moment"}],324:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return Object.assign({},e,{posted_on:(0,u["default"])(e.posted_on),updated_on:(0,u["default"])(e.updated_on),hidden_on:(0,u["default"])(e.hidden_on),attachments:e.attachments?e.attachments.map(o):null,poster:e.poster?(0,c.hydrateUser)(e.poster):null,isSelected:!1,isBusy:!1,isDeleted:!1})}function o(e){return Object.assign({},e,{uploaded_on:(0,u["default"])(e.uploaded_on)})}function l(e,t){return{type:d,post:e,patch:t}}function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case d:return e.id==t.post.id?Object.assign({},e,t.patch):e;default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.PATCH_POST=void 0,a.hydrate=r,a.hydrateAttachment=o,a.patch=l,a["default"]=s;var i=e("moment"),u=n(i),c=e("./users"),d=a.PATCH_POST="PATCH_POST"},{"./users":335,moment:"moment"}],325:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return{type:v,post:e}}function o(e){return{type:y,post:e}}function l(){return{type:g}}function s(e){return Object.assign({},e,{results:e.results.map(m.hydrate),isLoaded:!0,isBusy:!1,isSelected:!1})}function i(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return{type:_,state:t?e:s(e)}}function u(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return{type:b,state:t?e:s(e)}}function c(){return{type:E}}function d(e){return{type:w,update:e}}function f(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,a=function(){switch(t.type){case v:var a=e.results.map(function(e){return e.id==t.post.id?Object.assign({},e,{isSelected:!0}):e});return{v:Object.assign({},e,{results:a})};case y:var n=e.results.map(function(e){return e.id==t.post.id?Object.assign({},e,{isSelected:!1}):e});return{v:Object.assign({},e,{results:n})};case g:var r=e.results.map(function(e){return Object.assign({},e,{isSelected:!1})});return{v:Object.assign({},e,{results:r})};case b:var o=e.results.slice(),l=e.results.map(function(e){return e.id});return t.state.results.map(function(e){l.indexOf(e.id)===-1&&o.push(e)}),{v:Object.assign({},t.state,{results:o})};case _:return{v:t.state};case E:return{v:Object.assign({},e,{isLoaded:!1})};case w:return{v:Object.assign({},e,t.update)};case m.PATCH_POST:var s=e.results.map(function(e){return(0,h["default"])(e,t)});return{v:Object.assign({},e,{results:s})};default:return{v:e}}}();if("object"===("undefined"==typeof a?"undefined":p(a)))return a.v}Object.defineProperty(a,"__esModule",{value:!0}),a.UPDATE_POSTS=a.UNLOAD_POSTS=a.LOAD_POSTS=a.DESELECT_POSTS=a.DESELECT_POST=a.SELECT_POST=a.APPEND_POSTS=void 0;var p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};a.select=r,a.deselect=o,a.deselectAll=l,a.hydrate=s,a.load=i,a.append=u,a.unload=c,a.update=d,a["default"]=f;var m=e("./post"),h=n(m),b=a.APPEND_POSTS="APPEND_POSTS",v=a.SELECT_POST="SELECT_POST",y=a.DESELECT_POST="DESELECT_POST",g=a.DESELECT_POSTS="DESELECT_POSTS",_=a.LOAD_POSTS="LOAD_POSTS",E=a.UNLOAD_POSTS="UNLOAD_POSTS",w=a.UPDATE_POSTS="UPDATE_POSTS"},{"./post":324}],326:[function(e,t,a){"use strict";function n(e){return{type:o,newState:e}}function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case o:return t.newState;default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.load=n,a["default"]=r;var o=a.LOAD_DETAILS="LOAD_DETAILS"},{}],327:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return{type:c,profile:e}}function o(e){return{type:d,patch:e}}function l(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case c:return Object.assign({},t.profile,{joined_on:(0,i["default"])(t.profile.joined_on),status:(0,u.hydrateStatus)(t.profile.status)});case d:return Object.assign({},e,t.patch);case u.UPDATE_AVATAR:return e.id===t.userId?Object.assign({},e,{avatars:t.avatars}):e;case u.UPDATE_USERNAME:return e.id===t.userId?Object.assign({},e,{username:t.username,slug:t.slug}):e;default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.PATCH_PROFILE=a.HYDRATE_PROFILE=void 0,a.hydrate=r,a.patch=o,a["default"]=l;var s=e("moment"),i=n(s),u=e("./users"),c=a.HYDRATE_PROFILE="HYDRATE_PROFILE",d=a.PATCH_PROFILE="PATCH_PROFILE"},{"./users":335,moment:"moment"}],328:[function(e,t,a){"use strict";function n(e){return{type:s,state:{isLoading:!1,providers:e}}}function r(e){return{type:i,update:e}}function o(e){return{type:u,provider:e}}function l(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case s:return t.state;case i:return Object.assign({},e,t.update);case u:return Object.assign({},e,{providers:e.providers.map(function(e){return e.id===t.provider.id?t.provider:e})});default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.replace=n,a.update=r,a.updateProvider=o,a["default"]=l;var s=a.REPLACE_SEARCH="REPLACE_SEARCH",i=a.UPDATE_SEARCH="UPDATE_SEARCH",u=a.UPDATE_SEARCH_PROVIDER="UPDATE_SEARCH_PROVIDER";a.initialState={isLoading:!1,query:"",providers:[]}},{}],329:[function(e,t,a){"use strict";function n(e){return{type:i,items:e}}function r(){return{type:u}}function o(e){return{type:c,item:e}}function l(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case i:return t.items;case u:return[];case c:return(0,s.toggle)(e,t.item);default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.SELECT_ITEM=a.SELECT_NONE=a.SELECT_ALL=void 0,a.all=n,a.none=r,a.item=o,a["default"]=l;var s=e("../utils/sets"),i=a.SELECT_ALL="SELECT_ALL",u=a.SELECT_NONE="SELECT_NONE",c=a.SELECT_ITEM="SELECT_ITEM"},{"../utils/sets":362}],330:[function(e,t,a){"use strict";function n(e,t){return{type:s,message:e,messageType:t}}function r(){return{type:i}}function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return t.type===s?{type:t.messageType,message:t.message,isVisible:!0}:t.type===i?Object.assign({},e,{isVisible:!1}):e}Object.defineProperty(a,"__esModule",{value:!0}),a.showSnackbar=n,a.hideSnackbar=r,a["default"]=o;var l=a.initialState={type:"info",message:"",isVisible:!1},s=a.SHOW_SNACKBAR="SHOW_SNACKBAR",i=a.HIDE_SNACKBAR="HIDE_SNACKBAR"},{}],331:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return Object.assign({},e,{started_on:(0,f["default"])(e.started_on),last_post_on:(0,f["default"])(e.last_post_on),isBusy:!1})}function o(){return{type:m}}function l(){return{type:h}}function s(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return{type:b,state:t?e:r(e)}}function i(e){return{type:v,data:e}}function u(e){return{type:y,data:e}}function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case m:return Object.assign({},e,{isBusy:!0});case h:return Object.assign({},e,{isBusy:!1});case p.REMOVE_POLL:return Object.assign({},e,{poll:null});case p.REPLACE_POLL:return Object.assign({},e,{poll:t.state});case b:return t.state;case v:return Object.assign({},e,t.data);case y:var a=Object.assign({},e.acl,t.data);return Object.assign({},e,{acl:a});default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.UPDATE_THREAD_ACL=a.UPDATE_THREAD=a.REPLACE_THREAD=a.RELEASE_THREAD=a.BUSY_THREAD=void 0,a.hydrate=r,a.busy=o,a.release=l,a.replace=s,a.update=i,a.updateAcl=u,a["default"]=c;var d=e("moment"),f=n(d),p=e("./poll"),m=a.BUSY_THREAD="BUSY_THREAD",h=a.RELEASE_THREAD="RELEASE_THREAD",b=a.REPLACE_THREAD="REPLACE_THREAD",v=a.UPDATE_THREAD="UPDATE_THREAD",y=a.UPDATE_THREAD_ACL="UPDATE_THREAD_ACL"},{"./poll":323,moment:"moment"}],332:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){return{type:y,items:e,sorting:t}}function o(e){return{type:g,thread:e}}function l(e,t){return{type:_,category:e,categoriesMap:t}}function s(e){return{type:E,items:e}}function i(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return{type:w,thread:e,patch:t,sorting:a}}function u(e,t){return{type:O,categoriesMap:e,category:t}}function c(e){return{type:k,sorting:e}}function d(e){var t=[];return x.forEach(function(a){e[a]&&t.push(a)}),t}function f(e){return Object.assign({},e,{started_on:(0,h["default"])(e.started_on),last_post_on:(0,h["default"])(e.last_post_on),moderation:d(e.acl)})}function p(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case y:var a=(0,v["default"])(t.items.map(f),e);return a.sort(t.sorting);case g:return e.filter(function(e){return e.id!==t.thread.id});case _:return e.filter(function(e){var a=t.categoriesMap[e.category];return a.lft>=t.category.lft&&a.rght<=t.category.rght||2==e.weight});case E:return t.items.map(f);case w:var n=e.map(function(e){return e.id===t.thread.id?Object.assign({},e,t.patch):e});return t.sorting?n.sort(t.sorting):n;case O:return e.map(function(e){var a=t.categoriesMap[e.category];return a.lft>=t.category.lft&&a.rght<=t.category.rght?Object.assign({},e,{is_read:!0}):e});case k:return e.sort(t.sorting);default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.MODERATION_PERMISSIONS=a.SORT_THREADS=a.READ_THREADS=a.PATCH_THREAD=a.HYDRATE_THREADS=a.FILTER_THREADS=a.DELETE_THREAD=a.APPEND_THREADS=void 0,a.append=r,a.deleteThread=o,a.filterThreads=l,a.hydrate=s,a.patch=i,a.read=u,a.sort=c,a.getThreadModerationOptions=d,a.hydrateThread=f,a["default"]=p;var m=e("moment"),h=n(m),b=e("../utils/concat-unique"),v=n(b),y=a.APPEND_THREADS="APPEND_THREADS",g=a.DELETE_THREAD="DELETE_THREAD",_=a.FILTER_THREADS="FILTER_THREADS",E=a.HYDRATE_THREADS="HYDRATE_THREADS",w=a.PATCH_THREAD="PATCH_THREAD",O=a.READ_THREADS="READ_THREADS",k=a.SORT_THREADS="SORT_THREADS",x=a.MODERATION_PERMISSIONS=["can_announce","can_approve","can_close","can_hide","can_move","can_merge","can_pin","can_review"]},{"../utils/concat-unique":352,moment:"moment"}],333:[function(e,t,a){"use strict";function n(){return{type:l}}function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return t.type===l?Object.assign({},e,{tick:e.tick+1}):e}Object.defineProperty(a,"__esModule",{value:!0}),a.doTick=n,a["default"]=r;var o=a.initialState={tick:0},l=a.TICK="TICK"},{}],334:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,a){return{type:m,change:e,user:t,changedBy:a}}function o(e){return{type:h,items:e}}function l(e){return{type:b,items:e}}function s(e){return Object.assign({},e,{changed_on:(0,c["default"])(e.changed_on)})}function i(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case m:var a=e.slice();return a.unshift({id:Math.floor(Date.now()/1e3),changed_by:t.changedBy,changed_by_username:t.changedBy.username,changed_on:(0,c["default"])(),new_username:t.change.username,old_username:t.user.username}),a;case h:return(0,p["default"])(e,t.items.map(s));case b:return t.items.map(s);case d.UPDATE_AVATAR:return e.map(function(e){return e=Object.assign({},e),e.changed_by&&e.changed_by.id===t.userId&&(e.changed_by=Object.assign({},e.changed_by,{avatars:t.avatars})),e});case d.UPDATE_USERNAME:return e.map(function(e){return e=Object.assign({},e),e.changed_by&&e.changed_by.id===t.userId&&(e.changed_by=Object.assign({},e.changed_by,{username:t.username,slug:t.slug})),Object.assign({},e)});default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.HYDRATE_HISTORY=a.APPEND_HISTORY=a.ADD_NAME_CHANGE=void 0,a.addNameChange=r,a.append=o,a.hydrate=l,a.hydrateNamechange=s,a["default"]=i;var u=e("moment"),c=n(u),d=e("./users"),f=e("../utils/concat-unique"),p=n(f),m=a.ADD_NAME_CHANGE="ADD_NAME_CHANGE",h=a.APPEND_HISTORY="APPEND_HISTORY",b=a.HYDRATE_HISTORY="HYDRATE_HISTORY"},{"../utils/concat-unique":352,"./users":335,moment:"moment"}],335:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return{type:h,items:e}}function o(e){return{type:b,items:e}}function l(e){return e?Object.assign({},e,{last_click:e.last_click?(0,f["default"])(e.last_click):null,banned_until:e.banned_until?(0,f["default"])(e.banned_until):null}):null}function s(e){return Object.assign({},e,{joined_on:(0,f["default"])(e.joined_on),status:l(e.status)})}function i(e,t){return{type:v,userId:e.id,avatars:t}}function u(e,t,a){return{type:y,userId:e.id,username:t,slug:a}}function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case h:return(0,m["default"])(e,t.items.map(s));case b:return t.items.map(s);case v:return e.map(function(e){return e=Object.assign({},e),e.id===t.userId&&(e.avatars=t.avatars),e});default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.UPDATE_USERNAME=a.UPDATE_AVATAR=a.HYDRATE_USERS=a.APPEND_USERS=void 0,a.append=r,a.hydrate=o,a.hydrateStatus=l,a.hydrateUser=s,a.updateAvatar=i,a.updateUsername=u,a["default"]=c;var d=e("moment"),f=n(d),p=e("../utils/concat-unique"),m=n(p),h=a.APPEND_USERS="APPEND_USERS",b=a.HYDRATE_USERS="HYDRATE_USERS",v=a.UPDATE_AVATAR="UPDATE_AVATAR",y=a.UPDATE_USERNAME="UPDATE_USERNAME"},{"../utils/concat-unique":352,moment:"moment"}],336:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),l=a.Ajax=function(){function e(){n(this,e),this._cookieName=null,this._csrfToken=null,this._locks={}}return o(e,[{key:"init",value:function(e){this._cookieName=e}},{key:"getCsrfToken",value:function(){if(document.cookie.indexOf(this._cookieName)!==-1){var e=new RegExp(this._cookieName+"=([^;]*)"),t=document.cookie.match(e)[0];return t?t.split("=")[1]:null}return null}},{key:"request",value:function(e,t,a){var n=this;return new Promise(function(r,o){var l={url:t,method:e,headers:{"X-CSRFToken":n.getCsrfToken()},data:a?JSON.stringify(a):null,contentType:"application/json; charset=utf-8",dataType:"json",success:function(e){r(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,0===t.status&&(t.detail=gettext("Lost connection with application.")),404===t.status&&(t.detail&&"NOT FOUND"!==t.detail||(t.detail=gettext("Action link is invalid."))),500!==t.status||t.detail||(t.detail=gettext("Unknown error has occured.")),t.statusText=e.statusText,o(t)}};$.ajax(l)})}},{key:"get",value:function(e,t,a){var n=this;if(t&&(e+="?"+$.param(t)),!a)return this.request("GET",e);var o=function(){var t=n;return n._locks[a]&&(n._locks[a].url=e),n._locks[a]&&n._locks[a].waiter?{v:{then:function(){}}}:n._locks[a]&&n._locks[a].wait?(n._locks[a].waiter=!0,{v:new Promise(function(n,r){var o=function l(e){t._locks[a].wait?window.setTimeout(function(){l(e)},300):t._locks[a].url!==e?l(t._locks[a].url):(t._locks[a].waiter=!1,t.request("GET",t._locks[a].url).then(function(r){t._locks[a].url===e?n(r):(t._locks[a].waiter=!0,l(t._locks[a].url))},function(n){t._locks[a].url===e?r(n):(t._locks[a].waiter=!0,l(t._locks[a].url))}))};window.setTimeout(function(){o(e)},300)})}):(n._locks[a]={url:e,wait:!0,waiter:!1},{v:new Promise(function(n,r){t.request("GET",e).then(function(r){t._locks[a].wait=!1,t._locks[a].url===e&&n(r)},function(n){t._locks[a].wait=!1,t._locks[a].url===e&&r(n)})})})}();return"object"===("undefined"==typeof o?"undefined":r(o))?o.v:void 0}},{key:"post",value:function(e,t){return this.request("POST",e,t)}},{key:"patch",value:function(e,t){return this.request("PATCH",e,t)}},{key:"put",value:function(e,t){return this.request("PUT",e,t)}},{key:"delete",value:function(e,t){return this.request("DELETE",e,t)}},{key:"upload",value:function(e,t,a){var n=this;return new Promise(function(r,o){var l={url:e,method:"POST",headers:{"X-CSRFToken":n.getCsrfToken()},data:t,contentType:!1,processData:!1,xhr:function s(){var s=new window.XMLHttpRequest;return s.upload.addEventListener("progress",function(e){e.lengthComputable&&a(Math.round(e.loaded/e.total*100))},!1),s},success:function(e){r(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,0===t.status&&(t.detail=gettext("Lost connection with application.")),413!==t.status||t.detail||(t.detail=gettext("Upload was rejected by server as too large.")),404===t.status&&(t.detail&&"NOT FOUND"!==t.detail||(t.detail=gettext("Action link is invalid."))),500!==t.status||t.detail||(t.detail=gettext("Unknown error has occured.")),t.statusText=e.statusText,o(t)}};$.ajax(l)})}}]),e}();a["default"]=new l},{}],337:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0}),a.Auth=void 0;var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=e("../reducers/auth"),l=a.Auth=function(){function e(){n(this,e)}return r(e,[{key:"init",value:function(e,t,a){this._store=e,this._local=t,this._modal=a,this.syncSession(),this.watchState()}},{key:"syncSession",value:function(){var e=this._store.getState().auth;e.isAuthenticated?this._local.set("auth",{isAuthenticated:!0,username:e.user.username}):this._local.set("auth",{isAuthenticated:!1})}},{key:"watchState",value:function(){var e=this;this._local.watch("auth",function(t){t.isAuthenticated?e._store.dispatch((0,o.signIn)({username:t.username})):e._store.dispatch((0,o.signOut)())}),this._modal.hide()}},{key:"signIn",value:function(e){this._store.dispatch((0,o.signIn)(e)),this._local.set("auth",{isAuthenticated:!0,username:e.username}),this._modal.hide()}},{key:"signOut",value:function(){this._store.dispatch((0,o.signOut)()),this._local.set("auth",{isAuthenticated:!1}),this._modal.hide()}},{key:"softSignOut",value:function(){this._store.dispatch((0,o.signOut)(!0)),this._local.set("auth",{isAuthenticated:!1}),this._modal.hide()}}]),e}();a["default"]=new l},{"../reducers/auth":321}],338:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0}),a.Captcha=a.ReCaptcha=a.ReCaptchaComponent=a.QACaptcha=a.NoCaptcha=a.BaseCaptcha=void 0;var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../components/form-group"),d=n(c),f=a.BaseCaptcha=function(){function e(){l(this,e)}return s(e,[{key:"init",value:function(e,t,a,n){this._context=e,this._ajax=t,this._include=a,this._snackbar=n}}]),e}(),p=a.NoCaptcha=function(e){function t(){return l(this,t),r(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return o(t,e),s(t,[{key:"load",value:function(){return new Promise(function(e){e()})}},{key:"validator",value:function(){return null}},{key:"component",value:function(){return null}}]),t}(f),m=a.QACaptcha=function(e){function t(){return l(this,t),r(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return o(t,e),s(t,[{key:"load",value:function(){var e=this;return new Promise(function(t,a){e._ajax.get(e._context.get("CAPTCHA_API")).then(function(a){e.question=a.question,e.helpText=a.help_text,t()},function(){e._snackbar.error(gettext("Failed to load CAPTCHA.")),a()})})}},{key:"validator",value:function(){return[]}},{key:"component",value:function(e){return u["default"].createElement(d["default"],{label:this.question,"for":"id_captcha",labelClass:e.labelClass||"",controlClass:e.controlClass||"",validation:e.form.state.errors.captcha,helpText:this.helpText||null},u["default"].createElement("input",{"aria-describedby":"id_captcha_status",className:"form-control",disabled:e.form.state.isLoading,id:"id_captcha",onChange:e.form.bindInput("captcha"),type:"text",value:e.form.state.captcha}))}}]),t}(f),h=a.ReCaptchaComponent=function(e){function t(){return l(this,t),r(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return o(t,e),s(t,[{key:"componentDidMount",value:function(){var e=this;grecaptcha.render("recaptcha",{sitekey:this.props.siteKey,callback:function(t){e.props.binding({target:{value:t}})}})}},{key:"render",value:function(){return u["default"].createElement("div",{id:"recaptcha"})}}]),t}(u["default"].Component),b=a.ReCaptcha=function(e){function t(){return l(this,t),r(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return o(t,e),s(t,[{key:"load",value:function(){return this._include.include("https://www.google.com/recaptcha/api.js",!0),new Promise(function(e){var t=function a(){"undefined"==typeof grecaptcha?window.setTimeout(function(){a()},200):e()};t()})}},{key:"validator",value:function(){return[]}},{key:"component",value:function(e){return u["default"].createElement(d["default"],{label:gettext("Please solve the quick test"),"for":"id_captcha",labelClass:e.labelClass||"",controlClass:e.controlClass||"",validation:e.form.state.errors.captcha,helpText:gettext("This test helps us prevent automated spam registrations on our site.")},u["default"].createElement(h,{binding:e.form.bindInput("captcha"),siteKey:this._context.get("SETTINGS").recaptcha_site_key}))}}]),t}(f),v=a.Captcha=function(){function e(){l(this,e)}return s(e,[{key:"init",value:function(e,t,a,n){switch(e.get("SETTINGS").captcha_type){case"no":this._captcha=new p;break;case"qa":this._captcha=new m;break;case"re":this._captcha=new b}this._captcha.init(e,t,a,n)}},{key:"load",value:function(){return this._captcha.load()}},{key:"validator",value:function(){return this._captcha.validator()}},{
-key:"component",value:function(e){return this._captcha.component(e)}}]),e}();a["default"]=new v},{"../components/form-group":51,react:"react"}],339:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=a.Include=function(){function e(){n(this,e)}return r(e,[{key:"init",value:function(e){this._staticUrl=e,this._included=[]}},{key:"include",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._included.indexOf(e)===-1&&(this._included.push(e),this._include(e,t))}},{key:"_include",value:function(e,t){$.ajax({url:(t?"":this._staticUrl)+e,cache:!0,dataType:"script"})}}]),e}();a["default"]=new o},{}],340:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=window.localStorage,l=a.LocalStorage=function(){function e(){n(this,e)}return r(e,[{key:"init",value:function(e){var t=this;this._prefix=e,this._watchers=[],window.addEventListener("storage",function(e){var a=JSON.parse(e.newValue);t._watchers.forEach(function(t){t.key===e.key&&e.oldValue!==e.newValue&&t.callback(a)})})}},{key:"set",value:function(e,t){o.setItem(this._prefix+e,JSON.stringify(t))}},{key:"get",value:function(e){var t=o.getItem(this._prefix+e);return t?JSON.parse(t):null}},{key:"watch",value:function(e,t){this._watchers.push({key:this._prefix+e,callback:t})}}]),e}();a["default"]=new l},{}],341:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0}),a.MobileNavbarDropdown=void 0;var o=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),l=e("../utils/mount-component"),s=n(l),i=a.MobileNavbarDropdown=function(){function e(){r(this,e)}return o(e,[{key:"init",value:function(e){this._element=e,this._component=null}},{key:"show",value:function(e){this._component===e?this.hide():(this._component=e,(0,s["default"])(e,this._element.id),$(this._element).addClass("open"))}},{key:"showConnected",value:function(e,t){this._component===e?this.hide():(this._component=e,(0,s["default"])(t,this._element.id,!0),$(this._element).addClass("open"))}},{key:"hide",value:function(){$(this._element).removeClass("open"),this._component=null}}]),e}();a["default"]=new i},{"../utils/mount-component":357}],342:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0}),a.Modal=void 0;var o=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),l=e("react-dom"),s=n(l),i=e("../utils/mount-component"),u=n(i),c=a.Modal=function(){function e(){r(this,e)}return o(e,[{key:"init",value:function(e){var t=this;this._element=e,this._modal=$(e).modal({show:!1}),this._modal.on("hidden.bs.modal",function(){s["default"].unmountComponentAtNode(t._element)})}},{key:"show",value:function(e){(0,u["default"])(e,this._element.id),this._modal.modal("show")}},{key:"hide",value:function(){this._modal.modal("hide")}}]),e}();a["default"]=new c},{"../utils/mount-component":357,"react-dom":"react-dom"}],343:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e){var t=o(e),a=l(t);if(!a)return null;var n=0;if(t.indexOf("?")>0){var r=t.substr(t.indexOf("?")+1),s=r.split("&").filter(function(e){return"t="===e.substr(0,2)})[0];if(s){var i=s.substr(2).split("m");"s"===i[0].substr(-1)?n+=parseInt(i[0].substr(0,i[0].length-1)):(n+=60*parseInt(i[0]),i[1]&&"s"===i[1].substr(-1)&&(n+=parseInt(i[1].substr(0,i[1].length-1))))}}return{start:n,video:a}}function o(e){var t=e;return"https://"===e.substr(0,8)?t=t.substr(8):"http://"===e.substr(0,7)&&(t=t.substr(7)),"www."===t.substr(0,4)&&(t=t.substr(4)),t}function l(e){if(e.indexOf("youtu")===-1)return null;var t=e.match(i);return t?t[1]:null}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.parseYoutubeUrl=r,a.cleanUrl=o,a.getVideoIdFromUrl=l;var i=new RegExp("^.*(?:(?:youtu.be/|v/|vi/|u/w/|embed/)|(?:(?:watch)??v(?:i)?=|&v(?:i)?=))([^#&?]*).*"),u=a.OneBox=function(){function e(){var t=this;n(this,e),this.render=function(e){e&&(t.highlightCode(e),t.embedYoutubePlayers(e))},this._youtube={}}return s(e,[{key:"highlightCode",value:function(e){for(var t=e.querySelectorAll("pre>code"),a=0;a<t.length;a++){var n=t[a];hljs.highlightBlock(n)}}},{key:"embedYoutubePlayers",value:function(e){for(var t=e.querySelectorAll("p>a"),a=0;a<t.length;a++){var n=t[a],o=n.parentNode,l=1===o.childNodes.length;this._youtube[n.href]||(this._youtube[n.href]=r(n.href));var s=this._youtube[n.href];l&&s&&s.data!==!1&&this.swapYoutubePlayer(n,s)}}},{key:"swapYoutubePlayer",value:function(e,t){var a="https://www.youtube.com/embed/";a+=t.video,a+="?rel=0",t.start&&(a+="&start="+t.start);var n=$('<iframe class="embed-responsive-item" src="'+a+'" allowfullscreen></iframe>');$(e).replaceWith(n),n.wrap('<div class="embed-responsive embed-responsive-16by9"></div>')}}]),e}();a["default"]=new u},{}],344:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=a.PageTitle=function(){function e(){n(this,e)}return r(e,[{key:"init",value:function(e,t){this._indexTitle=e,this._forumName=t}},{key:"set",value:function(e){if(!e)return void(document.title=this._indexTitle||this._forumName);"string"==typeof e&&(e={title:e});var t=e.title;if(e.page>1){var a=interpolate(gettext("page: %(page)s"),{page:e.page},!0);t+=" ("+a+")"}e.parent&&(t+=" | "+e.parent),document.title=t+" | "+this._forumName}}]),e}();a["default"]=new o},{}],345:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=a.Polls=function(){function e(){n(this,e)}return r(e,[{key:"init",value:function(e,t){this._ajax=e,this._snackbar=t,this._polls={}}},{key:"start",value:function(e){var t=this;this.stop(e.poll);var a=function n(){t._polls[e.poll]=e,t._ajax.get(e.url,e.data||null).then(function(a){t._polls[e.poll]._stopped||(e.update(a),t._polls[e.poll].timeout=window.setTimeout(n,e.frequency))},function(a){t._polls[e.poll]._stopped||(e.error?e.error(a):t._snackbar.apiError(a))})};e.delayed?this._polls[e.poll]={timeout:window.setTimeout(a,e.frequency)}:a()}},{key:"stop",value:function(e){this._polls[e]&&(window.clearTimeout(this._polls[e].timeout),this._polls[e]._stopped=!0)}}]),e}();a["default"]=new o},{}],346:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0}),a.Posting=void 0;var o=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),l=e("react"),s=n(l),i=e("react-dom"),u=n(i),c=e("../components/poll"),d=e("../components/posting"),f=n(d),p=e("../utils/mount-component"),m=n(p),h=a.Posting=function(){function e(){var t=this;r(this,e),this.close=function(){t._isOpen&&!t._isClosing&&(t._isClosing=!0,t._placeholder.removeClass("slide-in"),window.setTimeout(function(){u["default"].unmountComponentAtNode(document.getElementById("posting-mount")),t._isClosing=!1,t._isOpen=!1},300))}}return o(e,[{key:"init",value:function(e,t,a){this._ajax=e,this._snackbar=t,this._placeholder=$(a),this._mode=null,this._isOpen=!1,this._isClosing=!1}},{key:"open",value:function(e){if(this._isOpen===!1)this._mode=e.mode,this._isOpen=e.submit,this._realOpen(e);else if(this._isOpen!==e.submit){var t=gettext("You are already working on other message. Do you want to discard it?");"POLL"==this._mode&&(t=gettext("You are already working on a poll. Do you want to discard it?"));var a=confirm(t);a&&(this._mode=e.mode,this._isOpen=e.submit,this._realOpen(e))}else"REPLY"==this._mode&&"REPLY"==e.mode&&this._realOpen(e)}},{key:"_realOpen",value:function(e){"POLL"==e.mode?(0,m["default"])(s["default"].createElement(c.PollForm,e),"posting-mount"):(0,m["default"])(s["default"].createElement(f["default"],e),"posting-mount"),this._placeholder.addClass("slide-in"),$("html, body").animate({scrollTop:this._placeholder.offset().top},1e3)}}]),e}();a["default"]=new h},{"../components/poll":84,"../components/posting":112,"../utils/mount-component":357,react:"react","react-dom":"react-dom"}],347:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0}),a.Snackbar=void 0;var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=e("../reducers/snackbar"),l=300,s=5e3,i=a.Snackbar=function(){function e(){n(this,e)}return r(e,[{key:"init",value:function(e){this._store=e,this._timeout=null}},{key:"alert",value:function(e,t){var a=this;this._timeout?(window.clearTimeout(this._timeout),this._store.dispatch((0,o.hideSnackbar)()),this._timeout=window.setTimeout(function(){a._timeout=null,a.alert(e,t)},l)):(this._store.dispatch((0,o.showSnackbar)(e,t)),this._timeout=window.setTimeout(function(){a._store.dispatch((0,o.hideSnackbar)()),a._timeout=null},s))}},{key:"info",value:function(e){this.alert(e,"info")}},{key:"success",value:function(e){this.alert(e,"success")}},{key:"warning",value:function(e){this.alert(e,"warning")}},{key:"error",value:function(e){this.alert(e,"error")}},{key:"apiError",value:function(e){var t=e.detail;t||(t=404===e.status?gettext("Action link is invalid."):gettext("Unknown error has occured.")),403===e.status&&"Permission denied"===t&&(t=gettext("You don't have permission to perform this action.")),this.error(t)}}]),e}();a["default"]=new i},{"../reducers/snackbar":330}],348:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0}),a.StoreWrapper=void 0;var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=e("redux"),l=a.StoreWrapper=function(){function e(){n(this,e),this._store=null,this._reducers={},this._initialState={}}return r(e,[{key:"addReducer",value:function(e,t,a){this._reducers[e]=t,this._initialState[e]=a}},{key:"init",value:function(){this._store=(0,o.createStore)((0,o.combineReducers)(this._reducers),this._initialState)}},{key:"getStore",value:function(){return this._store}},{key:"getState",value:function(){return this._store.getState()}},{key:"dispatch",value:function(e){return this._store.dispatch(e)}}]),e}();a["default"]=new l},{redux:"redux"}],349:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=a.Zxcvbn=function(){function e(){n(this,e)}return r(e,[{key:"init",value:function(e){this._include=e,this._isLoaded=!1}},{key:"scorePassword",value:function(e,t){return this._isLoaded?zxcvbn(e,t).score:0}},{key:"load",value:function(){return this._isLoaded?this._loadedPromise():(this._include.include("misago/js/zxcvbn.js"),this._loadingPromise())}},{key:"_loadingPromise",value:function(){var e=this;return new Promise(function(t,a){var n=function r(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;n+=1,n>200?a():"undefined"==typeof zxcvbn?window.setTimeout(function(){r(n)},200):(e._isLoaded=!0,t())};n()})}},{key:"_loadedPromise",value:function(){return new Promise(function(e){e()})}}]),e}();a["default"]=new o},{}],350:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e,t){if(u["default"].render(s["default"].createElement(c.Provider,{store:b["default"].getStore()},s["default"].createElement(y,{message:e.message,expires:e.expires_on?(0,o["default"])(e.expires_on):null})),document.getElementById("page-mount")),"undefined"==typeof t||t){var a=m["default"].get("SETTINGS").forum_name;document.title=gettext("You are banned")+" | "+a,window.history.pushState({},"",m["default"].get("BANNED_URL"))}};var r=e("moment"),o=n(r),l=e("react"),s=n(l),i=e("react-dom"),u=n(i),c=e("react-redux"),d=e("../components/banned-page"),f=n(d),p=e("../index"),m=n(p),h=e("../services/store"),b=n(h),v=function(e){return e.tick},y=(0,c.connect)(v)(f["default"])},{"../components/banned-page":4,"../index":275,"../services/store":348,moment:"moment",react:"react","react-dom":"react-dom","react-redux":"react-redux"}],351:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=[],r=[];if(e.forEach(function(e){r.push(e),r.length===t&&(n.push(r),r=[])}),a!==!1&&r.length>0&&r.length<t)for(var o=r.length;o<t;o++)r.push(a);return r.length&&n.push(r),n}},{}],352:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e,t){var a=[];return e.concat(t).filter(function(e){return a.indexOf(e.id)===-1&&(a.push(e.id),!0)})}},{}],353:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=function(){function e(t,a){n(this,e),this._callback=t,this._count=a}return r(e,[{key:"count",value:function(){this._count-=1,0===this._count&&this._callback()}}]),e}();a["default"]=o},{}],354:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return e.replace(/[&<>"']/g,function(e){return n[e]})};var n={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"}},{}],355:[function(e,t,a){"use strict";function n(e){return e.toFixed(1)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return e>1073741824?n(e/1073741824)+" GB":e>1048576?n(e/1048576)+" MB":e>1024?n(e/1024)+" KB":n(e)+" B"},a.roundSize=n},{}],356:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return n.test($.trim(e))};var n=new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i")},{}],357:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e,t){var a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=document.getElementById(t),r=e.props?e:o["default"].createElement(e,null);n&&(a?s["default"].render(o["default"].createElement(i.Provider,{store:c["default"].getStore()},r),n):s["default"].render(r,n))};var r=e("react"),o=n(r),l=e("react-dom"),s=n(l),i=e("react-redux"),u=e("../services/store"),c=n(u)},{"../services/store":348,react:"react","react-dom":"react-dom","react-redux":"react-redux"}],358:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=function(){function e(t){n(this,e),this.isOrdered=!1,this._items=t||[]}return r(e,[{key:"add",value:function(e,t,a){this._items.push({key:e,item:t,after:a?a.after||null:null,before:a?a.before||null:null})}},{key:"get",value:function(e,t){for(var a=0;a<this._items.length;a++)if(this._items[a].key===e)return this._items[a].item;return t}},{key:"has",value:function(e){return void 0!==this.get(e)}},{key:"values",value:function t(){for(var t=[],e=0;e<this._items.length;e++)t.push(this._items[e].item);return t}},{key:"order",value:function(e){return this.isOrdered||(this._items=this._order(this._items),this.isOrdered=!0),e||"undefined"==typeof e?this.values():this._items}},{key:"orderedValues",value:function(){return this.order(!0)}},{key:"_order",value:function(e){function t(e){var t=-1;r.indexOf(e.key)===-1&&(e.after?(t=r.indexOf(e.after),t!==-1&&(t+=1)):e.before&&(t=r.indexOf(e.before)),t!==-1&&(n.splice(t,0,e),r.splice(t,0,e.key)))}var a=[];e.forEach(function(e){a.push(e.key)});var n=[],r=[];e.forEach(function(e){e.after||e.before||(n.push(e),r.push(e.key))}),e.forEach(function(e){"_end"===e.before&&(n.push(e),r.push(e.key))});for(var o=200;o>0&&a.length!==r.length;)o-=1,e.forEach(t);return n}}]),e}();a["default"]=o},{}],359:[function(e,t,a){"use strict";function n(e,t){return Math.floor(Math.random()*(t-e+1))+e}function r(e,t){for(var a=new Array(n(e,t)),r=0;r<a.length;r++)a[r]=r;return a}Object.defineProperty(a,"__esModule",{value:!0}),a["int"]=n,a.range=r},{}],360:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(){window.scrollTo(0,0)}},{}],361:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t={component:e.component||null,childRoutes:[]};e.root?t.childRoutes=[{path:e.root,onEnter:function(t,a){a(null,e.paths[0].path)}}].concat(e.paths):t.childRoutes=e.paths,s["default"].render(o["default"].createElement(i.Provider,{store:d["default"].getStore()},o["default"].createElement(u.Router,{routes:t,history:u.browserHistory})),f)};var r=e("react"),o=n(r),l=e("react-dom"),s=n(l),i=e("react-redux"),u=e("react-router"),c=e("../services/store"),d=n(c),f=document.getElementById("page-mount")},{"../services/store":348,react:"react","react-dom":"react-dom","react-redux":"react-redux","react-router":"react-router"}],362:[function(e,t,a){"use strict";function n(e,t){if(e.indexOf(t)===-1){var a=e.slice();return a.push(t),a}return e}function r(e,t){return e.indexOf(t)>=0?e.filter(function(e){return e!==t}):e}function o(e,t){if(e.indexOf(t)===-1){var a=e.slice();return a.push(t),a}return e.filter(function(e){return e!==t})}Object.defineProperty(a,"__esModule",{value:!0}),a.push=n,a.remove=r,a.toggle=o},{}],363:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e,t){if(e=(e+"").toLowerCase(),t=(t+"").toLowerCase(),t.length<=0)return 0;for(var a=0,n=0,r=t.length;;){if(n=e.indexOf(t,n),!(n>=0))break;a+=1,n+=r}return a}},{}],364:[function(e,t,a){"use strict";function n(){return function(e){if(0===$.trim(e).length)return gettext("This field is required.")}}function r(e){return function(t){if(!d.test(t))return e||gettext("Enter a valid email address.")}}function o(e,t){return function(a){var n="",r=$.trim(a).length;if(r<e)return n=t?t(e,r):ngettext("Ensure this value has at least %(limit_value)s character (it has %(show_value)s).","Ensure this value has at least %(limit_value)s characters (it has %(show_value)s).",e),interpolate(n,{limit_value:e,show_value:r},!0)}}function l(e,t){return function(a){var n="",r=$.trim(a).length;if(r>e)return n=t?t(e,r):ngettext("Ensure this value has at most %(limit_value)s character (it has %(show_value)s).","Ensure this value has at most %(limit_value)s characters (it has %(show_value)s).",e),interpolate(n,{limit_value:e,show_value:r},!0)}}function s(e){var t=function(e){return ngettext("Username must be at least %(limit_value)s character long.","Username must be at least %(limit_value)s characters long.",e)};return o(e,t)}function i(e){var t=function(e){return ngettext("Username cannot be longer than %(limit_value)s character.","Username cannot be longer than %(limit_value)s characters.",e)};return l(e,t)}function u(){return function(e){if(!f.test($.trim(e)))return gettext("Username can only contain latin alphabet letters and digits.")}}function c(e){return function(t){var a=t.length;if(a<e){var n=ngettext("Valid password must be at least %(limit_value)s character long.","Valid password must be at least %(limit_value)s characters long.",e);return interpolate(n,{limit_value:e,show_value:a},!0)}}}Object.defineProperty(a,"__esModule",{value:!0}),a.required=n,a.email=r,a.minLength=o,a.maxLength=l,a.usernameMinLength=s,a.usernameMaxLength=i,a.usernameContent=u,a.passwordMinLength=c;var d=/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i,f=new RegExp("^[0-9a-z]+$","i")},{}]},{},[275,276,277,278,279,294,295,296,297,298,299,300,301,317,318,319,320,280,281,282,283,284,285,286,287,288,289,290,291,292,293,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316]);
+errors:e}));E["default"].show(c["default"].createElement(m["default"],n.props))}},n["delete"]=function(){if(confirm(gettext("Are you sure you want to delete selected threads?"))){n.props.threads.map(function(e){n.props.freezeThread(e.id)});var e=n.props.threads.map(function(e){return e.id});g["default"]["delete"](n.props.api,e).then(function(){n.props.threads.map(function(e){n.props.freezeThread(e.id),n.props.deleteThread(e)}),O["default"].success(gettext("Selected threads were deleted."))},function(e){400===e.status?!function(){var t=e.map(function(e){return e.id});n.props.threads.map(function(e){n.props.freezeThread(e.id),t.indexOf(e.id)===-1&&n.props.deleteThread(e)}),E["default"].show(c["default"].createElement(f["default"],{errors:e}))}():O["default"].apiError(e)})}},r=a,l(n,r)}return s(t,e),i(t,[{key:"getPinGloballyButton",value:function(){return this.props.moderation.can_pin_globally?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.pinGlobally,type:"button"},c["default"].createElement("span",{className:"material-icon"},"bookmark"),gettext("Pin threads globally"))):null}},{key:"getPinLocallyButton",value:function(){return this.props.moderation.can_pin?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.pinLocally,type:"button"},c["default"].createElement("span",{className:"material-icon"},"bookmark_border"),gettext("Pin threads locally"))):null}},{key:"getUnpinButton",value:function(){return this.props.moderation.can_pin?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.unpin,type:"button"},c["default"].createElement("span",{className:"material-icon"},"panorama_fish_eye"),gettext("Unpin threads"))):null}},{key:"getMoveButton",value:function(){return this.props.moderation.can_move?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.move,type:"button"},c["default"].createElement("span",{className:"material-icon"},"arrow_forward"),gettext("Move threads"))):null}},{key:"getMergeButton",value:function(){return this.props.moderation.can_merge?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.merge,type:"button"},c["default"].createElement("span",{className:"material-icon"},"call_merge"),gettext("Merge threads"))):null}},{key:"getApproveButton",value:function(){return this.props.moderation.can_approve?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.approve,type:"button"},c["default"].createElement("span",{className:"material-icon"},"done"),gettext("Approve threads"))):null}},{key:"getOpenButton",value:function(){return this.props.moderation.can_close?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.open,type:"button"},c["default"].createElement("span",{className:"material-icon"},"lock_open"),gettext("Open threads"))):null}},{key:"getCloseButton",value:function(){return this.props.moderation.can_close?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.close,type:"button"},c["default"].createElement("span",{className:"material-icon"},"lock_outline"),gettext("Close threads"))):null}},{key:"getUnhideButton",value:function(){return this.props.moderation.can_unhide?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this.unhide,type:"button"},c["default"].createElement("span",{className:"material-icon"},"visibility"),gettext("Unhide threads"))):null}},{key:"getHideButton",value:function(){return this.props.moderation.can_hide?c["default"].createElement("li",null,c["default"].createElement("button",{onClick:this.hide,type:"button",className:"btn btn-link"},c["default"].createElement("span",{className:"material-icon"},"visibility_off"),gettext("Hide threads"))):null}},{key:"getDeleteButton",value:function(){return this.props.moderation.can_delete?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",onClick:this["delete"],type:"button"},c["default"].createElement("span",{className:"material-icon"},"clear"),gettext("Delete threads"))):null}},{key:"render",value:function(){return c["default"].createElement("ul",{className:this.props.className},this.getPinGloballyButton(),this.getPinLocallyButton(),this.getUnpinButton(),this.getMoveButton(),this.getMergeButton(),this.getApproveButton(),this.getOpenButton(),this.getCloseButton(),this.getUnhideButton(),this.getHideButton(),this.getDeleteButton())}}]),t}(c["default"].Component);a["default"]=j},{"../../../reducers/selection":329,"../../../services/ajax":336,"../../../services/modal":342,"../../../services/snackbar":347,"../../../services/store":348,"../../../utils/countdown":353,"./errors-list":235,"./merge":236,"./move":237,react:"react"}],235:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){var t=e.error,a=e.thread;return c["default"].createElement("li",null,c["default"].createElement("h5",null,a.title),c["default"].createElement("p",null,t))}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.ThreadErrors=s;var u=e("react"),c=n(u),d=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),i(t,[{key:"render",value:function(){return c["default"].createElement("div",{className:"modal-dialog",role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Threads moderation"))),c["default"].createElement("div",{className:"modal-body"},c["default"].createElement("p",{className:"lead"},gettext("One or more threads could not be deleted:")),c["default"].createElement("ul",{className:"list-unstyled list-errored-items"},this.props.errors.map(function(e){return c["default"].createElement(s,{error:e.error,key:e.thread.id,thread:e.thread})})))))}}]),t}(c["default"].Component);a["default"]=d},{react:"react"}],236:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../../button"),f=r(d),p=e("../../form"),m=r(p),h=e("../../form-group"),b=r(h),v=e("../../category-select"),y=r(v),g=e("../../select"),_=r(g),E=e("../../../index"),w=r(E),O=e("../../../reducers/threads"),k=e("../../../reducers/selection"),x=n(k),N=e("./errors-list"),j=r(N),P=e("../../merge-polls"),C=r(P),S=e("../../../services/ajax"),M=r(S),T=e("../../../services/modal"),L=r(T),R=e("../../../services/snackbar"),A=r(R),I=e("../../../services/store"),D=r(I),U=e("../../../utils/validators"),B=n(U),H=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));a.getFormdata=function(){return{threads:a.props.threads.map(function(e){return e.id}),title:a.state.title,category:a.state.category,weight:a.state.weight,is_hidden:a.state.is_hidden,is_closed:a.state.is_closed}},a.handleSuccess=function(e){a.props.threads.forEach(function(e){a.props.freezeThread(e.id),a.props.deleteThread(e)}),D["default"].dispatch(x.none()),a.props.addThreads([e]),D["default"].dispatch((0,O.filterThreads)(a.props.route.category,a.props.categoriesMap)),L["default"].hide()},a.handleError=function(e){400===e.status?e.polls?L["default"].show(c["default"].createElement(C["default"],{api:w["default"].get("MERGE_THREADS_API"),data:a.getFormdata(),polls:e.polls,onError:a.handleError,onSuccess:a.handleSuccess})):(a.setState({errors:Object.assign({},a.state.errors,e)}),A["default"].error(gettext("Form contains errors."))):403===e.status&&Array.isArray(e)?L["default"].show(c["default"].createElement(j["default"],{errors:e})):A["default"].apiError(e)},a.onCategoryChange=function(e){var t=e.target.value,n={category:t};a.acl[t].can_pin_threads<n.weight&&(n.weight=0),a.acl[t].can_hide_threads||(n.is_hidden=0),a.acl[t].can_close_threads||(n.is_closed=!1),a.setState(n)},a.state={isLoading:!1,title:"",category:null,weight:0,is_hidden:0,is_closed:!1,validators:{title:[B.required()]},errors:{}},a.acl={};for(var n in e.user.acl.categories)if(e.user.acl.categories.hasOwnProperty(n)){var r=e.user.acl.categories[n];a.acl[r.id]=r}return a.categoryChoices=[],e.categories.forEach(function(e){if(e.level>0){var t=a.acl[e.id],n=!t.can_start_threads||e.is_closed&&!t.can_close_threads;a.categoryChoices.push({value:e.id,disabled:n,level:e.level-1,label:e.name}),n||a.state.category||(a.state.category=e.id)}}),a.isHiddenChoices=[{value:0,icon:"visibility",label:gettext("No")},{value:1,icon:"visibility_off",label:gettext("Yes")}],a.isClosedChoices=[{value:!1,icon:"lock_outline",label:gettext("No")},{value:!0,icon:"lock",label:gettext("Yes")}],a}return s(t,e),i(t,[{key:"clean",value:function(){return!!this.isValid()||(A["default"].error(gettext("Form contains errors.")),this.setState({errors:this.validate()}),!1)}},{key:"send",value:function(){return M["default"].post(w["default"].get("MERGE_THREADS_API"),this.getFormdata())}},{key:"getWeightChoices",value:function(){var e=[{value:0,icon:"remove",label:gettext("Not pinned")},{value:1,icon:"bookmark_border",label:gettext("Pinned locally")}];return 2==this.acl[this.state.category].can_pin_threads&&e.push({value:2,icon:"bookmark",label:gettext("Pinned globally")}),e}},{key:"renderWeightField",value:function(){return this.acl[this.state.category].can_pin_threads?c["default"].createElement(b["default"],{label:gettext("Thread weight"),"for":"id_weight"},c["default"].createElement(_["default"],{id:"id_weight",onChange:this.bindInput("weight"),value:this.state.weight,choices:this.getWeightChoices()})):null}},{key:"renderHiddenField",value:function(){return this.acl[this.state.category].can_hide_threads?c["default"].createElement(b["default"],{label:gettext("Hide thread"),"for":"id_is_hidden"},c["default"].createElement(_["default"],{id:"id_is_closed",onChange:this.bindInput("is_hidden"),value:this.state.is_hidden,choices:this.isHiddenChoices})):null}},{key:"renderClosedField",value:function(){return this.acl[this.state.category].can_close_threads?c["default"].createElement(b["default"],{label:gettext("Close thread"),"for":"id_is_closed"},c["default"].createElement(_["default"],{id:"id_is_closed",onChange:this.bindInput("is_closed"),value:this.state.is_closed,choices:this.isClosedChoices})):null}},{key:"renderForm",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"modal-body"},c["default"].createElement(b["default"],{label:gettext("Thread title"),"for":"id_title",validation:this.state.errors.title},c["default"].createElement("input",{id:"id_title",className:"form-control",type:"text",onChange:this.bindInput("title"),value:this.state.title})),c["default"].createElement("div",{className:"clearfix"}),c["default"].createElement(b["default"],{label:gettext("Category"),"for":"id_category",validation:this.state.errors.category},c["default"].createElement(y["default"],{id:"id_category",onChange:this.onCategoryChange,value:this.state.category,choices:this.categoryChoices})),c["default"].createElement("div",{className:"clearfix"}),this.renderWeightField(),this.renderHiddenField(),this.renderClosedField()),c["default"].createElement("div",{className:"modal-footer"},c["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",disabled:this.state.isLoading,type:"button"},gettext("Cancel")),c["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Merge threads"))))}},{key:"renderCantMergeMessage",value:function(){return c["default"].createElement("div",{className:"modal-body"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"info_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},gettext("You can't move threads because there are no categories you are allowed to move them to.")),c["default"].createElement("p",null,gettext("You need permission to start threads in category to be able to merge threads to it.")),c["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",type:"button"},gettext("Ok"))))}},{key:"getClassName",value:function(){return this.state.category?"modal-dialog":"modal-dialog modal-message"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName(),role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Merge threads"))),this.state.category?this.renderForm():this.renderCantMergeMessage()))}}]),t}(m["default"]);a["default"]=H},{"../../../index":275,"../../../reducers/selection":329,"../../../reducers/threads":332,"../../../services/ajax":336,"../../../services/modal":342,"../../../services/snackbar":347,"../../../services/store":348,"../../../utils/validators":364,"../../button":5,"../../category-select":18,"../../form":52,"../../form-group":51,"../../merge-polls":55,"../../select":188,"./errors-list":235,react:"react"}],237:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../../form"),f=r(d),p=e("../../form-group"),m=r(p),h=e("../../category-select"),b=r(h),v=e("../../../reducers/selection"),y=n(v),g=e("../../../reducers/threads"),_=e("../../../services/modal"),E=r(_),w=e("../../../services/store"),O=r(w),k=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));a.handleSubmit=function(e){e.preventDefault(),E["default"].hide();var t=function(){O["default"].dispatch((0,g.filterThreads)(a.props.route.category,a.props.categoriesMap));var e=O["default"].getState(),t=e.threads.map(function(e){return e.id});O["default"].dispatch(y.all(e.selection.filter(function(e){return t.indexOf(e)!==-1})))};a.props.callApi([{op:"replace",path:"category",value:a.state.category},{op:"replace",path:"flatten-categories",value:null},{op:"add",path:"acl",value:!0}],gettext("Selected threads were moved."),t)},a.state={category:null};var n={};for(var r in e.user.acl.categories)if(e.user.acl.categories.hasOwnProperty(r)){var s=e.user.acl.categories[r];n[s.id]=s}return a.categoryChoices=[],e.categories.forEach(function(e){if(e.level>0){var t=n[e.id],r=!t.can_start_threads||e.is_closed&&!t.can_close_threads;a.categoryChoices.push({value:e.id,disabled:r,level:e.level-1,label:e.name}),r||a.state.category||(a.state.category=e.id)}}),a}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.state.category?"modal-dialog":"modal-dialog modal-message"}},{key:"renderForm",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"modal-body"},c["default"].createElement(m["default"],{label:gettext("New category"),"for":"id_new_category"},c["default"].createElement(b["default"],{id:"id_new_category",onChange:this.bindInput("category"),value:this.state.category,choices:this.categoryChoices}))),c["default"].createElement("div",{className:"modal-footer"},c["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",disabled:this.state.isLoading,type:"button"},gettext("Cancel")),c["default"].createElement("button",{className:"btn btn-primary"},gettext("Move threads"))))}},{key:"renderCantMoveMessage",value:function(){return c["default"].createElement("div",{className:"modal-body"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"info_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},gettext("You can't move threads because there are no categories you are allowed to move them to.")),c["default"].createElement("p",null,gettext("You need permission to start threads in category to be able to move threads to it.")),c["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",type:"button"},gettext("Ok"))))}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName(),role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Move threads"))),this.state.category?this.renderForm():this.renderCantMoveMessage()))}}]),t}(f["default"]);a["default"]=k},{"../../../reducers/selection":329,"../../../reducers/threads":332,"../../../services/modal":342,"../../../services/store":348,"../../category-select":18,"../../form":52,"../../form-group":51,react:"react"}],238:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../../../reducers/selection"),f=n(d),p=e("../../../services/store"),m=r(p),h=function(e){function t(){var e,a,n,r;o(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.selectAll=function(){m["default"].dispatch(f.all(n.props.threads.map(function(e){return e.id})))},n.selectNone=function(){m["default"].dispatch(f.none())},r=a,l(n,r)}return s(t,e),i(t,[{key:"render",value:function(){return c["default"].createElement("ul",{className:this.props.className},c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",type:"button",onClick:this.selectAll},c["default"].createElement("span",{className:"material-icon"},"check_box"),gettext("Select all"))),c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-link",type:"button",onClick:this.selectNone},c["default"].createElement("span",{className:"material-icon"},"check_box_outline_blank"),gettext("Select none"))))}}]),t}(c["default"].Component);a["default"]=h},{"../../../reducers/selection":329,"../../../services/store":348,react:"react"}],239:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.baseUrl,a=e.list,n=e.lists;return n.length<2?null:o["default"].createElement("div",{className:"page-tabs"},o["default"].createElement("div",{className:"container"},o["default"].createElement("ul",{className:"nav nav-pills"},n.map(function(e){return o["default"].createElement(i["default"],{isControlled:!0,isActive:e.path===a.path,key:t+e.path},o["default"].createElement(l.Link,{to:t+e.path},e.name))}))))};var r=e("react"),o=n(r),l=e("react-router"),s=e("../li"),i=n(s)},{"../li":53,react:"react","react-router":"react-router"}],240:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return function(t){return{options:e,selection:t.selection,threads:t.threads,tick:t.tick.tick,user:t.auth.user}}}function o(e){var t=[{type:"all",path:"",name:gettext("All"),longName:gettext("All threads")}];return e.id&&(t.push({type:"my",path:"my/",name:gettext("My"),longName:gettext("My threads")}),t.push({type:"new",path:"new/",name:gettext("New"),longName:gettext("New threads")}),t.push({type:"unread",path:"unread/",name:gettext("Unread"),longName:gettext("Unread threads")}),t.push({type:"subscribed",path:"subscribed/",name:gettext("Subscribed"),longName:gettext("Subscribed threads")}),e.acl.can_see_unapproved_content_lists&&t.push({type:"unapproved",path:"unapproved/",name:gettext("Unapproved"),longName:gettext("Unapproved content")})),t}function l(e,t){var a=o(e),n=[],l={};return d["default"].get("CATEGORIES").forEach(function(e){a.forEach(function(o){l[e.id]=e,n.push({path:e.url.index+o.path,component:(0,s.connect)(r(t))(u["default"]),categories:d["default"].get("CATEGORIES"),categoriesMap:l,category:e,lists:a,list:o})})}),n}Object.defineProperty(a,"__esModule",{value:!0}),a.getSelect=r,a.getLists=o,a.paths=l;var s=e("react-redux"),i=e("./route"),u=n(i),c=e("../../index"),d=n(c)},{"../../index":275,"./route":241,"react-redux":"react-redux"}],241:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../button"),f=r(d),p=e("./compare"),m=e("./container"),h=r(m),b=e("./header"),v=r(b),y=e("./utils"),g=e("../threads-list"),_=r(g),E=e("./list-empty"),w=r(E),O=e("../with-dropdown"),k=r(O),x=e("../../index"),N=r(x),j=e("../../reducers/selection"),P=n(j),C=e("../../reducers/threads"),S=e("../../services/ajax"),M=r(S),T=e("../../services/polls"),L=r(T),R=e("../../services/snackbar"),A=r(R),I=e("../../services/store"),D=r(I),U=e("../../services/page-title"),B=r(U),H=e("../../utils/sets"),z=n(H),F=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));a.loadMore=function(){a.setState({isBusy:!0}),a.loadThreads(a.getCategory(),a.state.page+1)},a.pollResponse=function(e){a.setState({diff:Object.assign({},e,{results:(0,y.diffThreads)(a.props.threads,e.results)})})},a.addThreads=function(e){D["default"].dispatch((0,C.append)(e,a.getSorting()))},a.applyDiff=function(){a.addThreads(a.state.diff.results),a.setState(Object.assign({},a.state.diff,{moderation:(0,y.getModerationActions)(D["default"].getState().threads),diff:{results:[]}}))},a.freezeThread=function(e){a.setState(function(t){return{busyThreads:z.toggle(t.busyThreads,e)}})},a.updateThread=function(e){D["default"].dispatch((0,C.patch)(e,e,a.getSorting()))},a.deleteThread=function(e){D["default"].dispatch((0,C.deleteThread)(e))},a.state={isMounted:!0,isLoaded:!1,isBusy:!1,diff:{results:[]},moderation:[],busyThreads:[],dropdown:!1,subcategories:[],count:0,more:0,page:1,pages:1};var n=a.getCategory();return N["default"].has("THREADS")?a.initWithPreloadedData(n,N["default"].get("THREADS")):a.initWithoutPreloadedData(n),a}return s(t,e),i(t,[{key:"getCategory",value:function(){return this.props.route.category.special_role?null:this.props.route.category.id}},{key:"initWithPreloadedData",value:function(e,t){this.state=Object.assign(this.state,{moderation:(0,y.getModerationActions)(t.results),subcategories:t.subcategories,count:t.count,more:t.more,page:t.page,pages:t.pages}),this.startPolling(e)}},{key:"initWithoutPreloadedData",value:function(e){this.loadThreads(e)}},{key:"loadThreads",value:function(e){var t=this,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;M["default"].get(this.props.options.api,{category:e,list:this.props.route.list.type,page:a||1},"threads").then(function(n){t.state.isMounted&&(1===a?D["default"].dispatch((0,C.hydrate)(n.results)):D["default"].dispatch((0,C.append)(n.results,t.getSorting())),t.setState({isLoaded:!0,isBusy:!1,moderation:(0,y.getModerationActions)(D["default"].getState().threads),subcategories:n.subcategories,count:n.count,more:n.more,page:n.page,pages:n.pages}),t.startPolling(e))},function(e){A["default"].apiError(e)})}},{key:"startPolling",value:function(e){L["default"].start({poll:"threads",url:this.props.options.api,data:{category:e,list:this.props.route.list.type},frequency:12e4,update:this.pollResponse})}},{key:"componentDidMount",value:function(){this.setPageTitle(),N["default"].has("THREADS")&&(D["default"].dispatch((0,C.hydrate)(N["default"].pop("THREADS").results)),this.setState({isLoaded:!0})),D["default"].dispatch(P.none())}},{key:"componentWillUnmount",value:function(){this.state.isMounted=!1,L["default"].stop("threads")}},{key:"getTitle",value:function(){return this.props.options.title?this.props.options.title:(0,y.getTitle)(this.props.route)}},{key:"setPageTitle",value:function(){this.props.route.category.level||!N["default"].get("THREADS_ON_INDEX")?B["default"].set((0,y.getPageTitle)(this.props.route)):this.props.options.title?B["default"].set(this.props.options.title):N["default"].get("SETTINGS").forum_index_title?document.title=N["default"].get("SETTINGS").forum_index_title:document.title=N["default"].get("SETTINGS").forum_name}},{key:"getSorting",value:function(){return this.props.route.category.level?p.compareWeight:p.compareGlobalWeight}},{key:"getMoreButton",value:function(){return this.state.more?c["default"].createElement("div",{className:"pager-more"},c["default"].createElement(f["default"],{className:"btn btn-default btn-outline",loading:this.state.isBusy||this.state.busyThreads.length,onClick:this.loadMore},gettext("Show more"))):null}},{key:"getClassName",value:function(){var e="page page-threads";return e+=" page-threads-"+this.props.route.list.type,this.props.route.category.css_class&&(e+=" page-threads-"+this.props.route.category.css_class),e}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement(v["default"],{categories:this.props.route.categoriesMap,disabled:!this.state.isLoaded,startThread:this.props.options.startThread,threads:this.props.threads,title:this.getTitle(),toggleNav:this.toggleNav,route:this.props.route,user:this.props.user}),c["default"].createElement(h["default"],{api:this.props.options.api,route:this.props.route,subcategories:this.state.subcategories,user:this.props.user,pageLead:this.props.options.pageLead,threads:this.props.threads,threadsCount:this.state.count,moderation:this.state.moderation,selection:this.props.selection,busyThreads:this.state.busyThreads,addThreads:this.addThreads,freezeThread:this.freezeThread,deleteThread:this.deleteThread,updateThread:this.updateThread,isLoaded:this.state.isLoaded,isBusy:this.state.isBusy},c["default"].createElement(_["default"],{category:this.props.route.category,categories:this.props.route.categoriesMap,list:this.props.route.list,selection:this.props.selection,threads:this.props.threads,diffSize:this.state.diff.results.length,applyDiff:this.applyDiff,showOptions:!!this.props.user.id,isLoaded:this.state.isLoaded,busyThreads:this.state.busyThreads},c["default"].createElement(w["default"],{category:this.props.route.category,emptyMessage:this.props.options.emptyMessage,list:this.props.route.list})),this.getMoreButton()))}}]),t}(k["default"]);a["default"]=F},{"../../index":275,"../../reducers/selection":329,"../../reducers/threads":332,
+"../../services/ajax":336,"../../services/page-title":344,"../../services/polls":345,"../../services/snackbar":347,"../../services/store":348,"../../utils/sets":362,"../button":5,"../threads-list":211,"../with-dropdown":272,"./compare":230,"./container":231,"./header":232,"./list-empty":233,"./utils":243,react:"react"}],242:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./category-picker"),d=n(c),f=e("./moderation/controls"),p=n(f),m=e("./moderation/selection"),h=n(m),b=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getCategoryPicker",value:function(){return this.props.subcategories.length?u["default"].createElement(d["default"],{categories:this.props.categoriesMap,choices:this.props.subcategories,list:this.props.list}):null}},{key:"showModerationOptions",value:function(){return this.props.user.id&&this.props.moderation.allow}},{key:"getSelectedThreads",value:function(){var e=this;return this.props.threads.filter(function(t){return e.props.selection.indexOf(t.id)>=0})}},{key:"getModerationButton",value:function(){return this.showModerationOptions()?u["default"].createElement("div",{className:"col-xs-6 col-sm-3 col-md-2"},u["default"].createElement("div",{className:"btn-group btn-group-justified"},u["default"].createElement("div",{className:"btn-group dropdown"},u["default"].createElement("button",{type:"button",className:"btn btn-default btn-outline dropdown-toggle","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",disabled:this.props.disabled||!this.props.selection.length},u["default"].createElement("span",{className:"material-icon"},"settings"),gettext("Options")),u["default"].createElement(p["default"],{addThreads:this.props.addThreads,api:this.props.api,categories:this.props.categories,categoriesMap:this.props.categoriesMap,className:"dropdown-menu dropdown-menu-right stick-to-bottom",deleteThread:this.props.deleteThread,freezeThread:this.props.freezeThread,moderation:this.props.moderation,route:this.props.route,threads:this.getSelectedThreads(),updateThread:this.props.updateThread,user:this.props.user})))):null}},{key:"getSelectionButton",value:function(){return this.showModerationOptions()?u["default"].createElement("div",{className:"col-xs-3 col-sm-2 col-md-1"},u["default"].createElement("div",{className:"btn-group btn-group-justified"},u["default"].createElement("div",{className:"btn-group dropdown"},u["default"].createElement("button",{type:"button",className:"btn btn-default btn-outline btn-icon dropdown-toggle","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",disabled:this.props.disabled},u["default"].createElement("span",{className:"material-icon"},"select_all")),u["default"].createElement(h["default"],{className:"dropdown-menu dropdown-menu-right stick-to-bottom",threads:this.props.threads})))):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"row row-toolbar row-toolbar-bottom-margin"},u["default"].createElement("div",{className:"col-xs-3 col-sm-3 col-md-2 dropdown"},this.getCategoryPicker()),u["default"].createElement("div",{className:"hidden-xs col-sm-4 col-md-7"}),this.getModerationButton(),this.getSelectionButton())}}]),t}(u["default"].Component);a["default"]=b},{"./category-picker":229,"./moderation/controls":234,"./moderation/selection":238,react:"react"}],243:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return e.category.level?e.list.path?{title:e.list.longName,parent:e.category.name}:{title:e.category.name}:c["default"].get("THREADS_ON_INDEX")?e.list.path?{title:e.list.longName}:null:e.list.path?{title:e.list.longName,parent:gettext("Threads")}:{title:gettext("Threads")}}function o(e){return e.category.level?e.category.name:c["default"].get("THREADS_ON_INDEX")?c["default"].get("SETTINGS").forum_index_title?c["default"].get("SETTINGS").forum_index_title:c["default"].get("SETTINGS").forum_name:gettext("Threads")}function l(e,t){return[e.title===t.title,e.weight===t.weight,e.category===t.category,e.last_post===t.last_post,e.last_poster_name===t.last_poster_name].indexOf(!1)>=0}function s(e,t){var a={};return e.forEach(function(e){a[e.id]=e}),t.filter(function(e){return!a[e.id]||l(a[e.id],e)})}function i(e){var t={allow:!1,can_approve:0,can_close:0,can_delete:0,can_hide:0,can_merge:0,can_move:0,can_pin:0,can_pin_globally:0,can_unhide:0};return e.forEach(function(e){e.is_unapproved&&e.acl.can_approve>t.can_approve&&(t.can_approve=e.acl.can_approve),e.acl.can_close>t.can_close&&(t.can_close=e.acl.can_close),e.acl.can_delete>t.can_delete&&(t.can_delete=e.acl.can_delete),e.acl.can_hide>t.can_hide&&(t.can_hide=e.acl.can_hide),e.acl.can_merge>t.can_merge&&(t.can_merge=e.acl.can_merge),e.acl.can_move>t.can_move&&(t.can_move=e.acl.can_move),e.acl.can_pin>t.can_pin&&(t.can_pin=e.acl.can_pin),e.acl.can_pin_globally>t.can_pin_globally&&(t.can_pin_globally=e.acl.can_pin_globally),e.acl.can_unhide>t.can_unhide&&(t.can_unhide=e.acl.can_unhide),t.allow=t.can_approve||t.can_close||t.can_delete||t.can_hide||t.can_merge||t.can_move||t.can_pin||t.can_pin_globally||t.can_unhide}),t}Object.defineProperty(a,"__esModule",{value:!0}),a.getPageTitle=r,a.getTitle=o,a.isThreadChanged=l,a.diffThreads=s,a.getModerationActions=i;var u=e("../../index"),c=n(u)},{"../../index":275}],244:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0}),a.CompactGuestNav=a.GuestNav=a.GuestMenu=void 0;var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../avatar"),d=n(c),f=e("../register-button"),p=n(f),m=e("../sign-in.js"),h=n(m),b=e("../../services/mobile-navbar-dropdown"),v=n(b),y=e("../../services/modal"),g=n(y),_=a.GuestMenu=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"showSignInModal",value:function(){g["default"].show(h["default"])}},{key:"render",value:function(){return u["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},u["default"].createElement("li",{className:"guest-preview"},u["default"].createElement("h4",null,gettext("You are browsing as guest.")),u["default"].createElement("p",null,gettext("Sign in or register to start and participate in discussions.")),u["default"].createElement("div",{className:"row"},u["default"].createElement("div",{className:"col-xs-6"},u["default"].createElement("button",{className:"btn btn-default btn-block",onClick:this.showSignInModal,type:"button"},gettext("Sign in"))),u["default"].createElement("div",{className:"col-xs-6"},u["default"].createElement(p["default"],{className:"btn-success btn-block"},gettext("Register"))))))}}]),t}(u["default"].Component);a.GuestNav=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"render",value:function(){return u["default"].createElement("div",{className:"nav nav-guest"},u["default"].createElement("button",{className:"btn navbar-btn btn-default",onClick:this.showSignInModal,type:"button"},gettext("Sign in")),u["default"].createElement(p["default"],{className:"navbar-btn btn-success btn-outline"},gettext("Register")))}}]),t}(_),a.CompactGuestNav=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"showGuestMenu",value:function(){v["default"].show(_)}},{key:"render",value:function(){return u["default"].createElement("button",{type:"button",onClick:this.showGuestMenu},u["default"].createElement(d["default"],{size:"64"}))}}]),t}(u["default"].Component)},{"../../services/mobile-navbar-dropdown":341,"../../services/modal":342,"../avatar":3,"../register-button":176,"../sign-in.js":189,react:"react"}],245:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return e.auth}Object.defineProperty(a,"__esModule",{value:!0}),a.CompactUserMenu=a.UserMenu=void 0;var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.select=s;var u=e("react"),c=n(u),d=e("./guest-nav"),f=e("./user-nav");a.UserMenu=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),i(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(f.UserNav,{user:this.props.user}):c["default"].createElement(d.GuestNav,null)}}]),t}(c["default"].Component),a.CompactUserMenu=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),i(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(f.CompactUserNav,{user:this.props.user}):c["default"].createElement(d.CompactGuestNav,null)}}]),t}(c["default"].Component)},{"./guest-nav":244,"./user-nav":246,react:"react"}],246:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){var t=e.user;return t.unread_private_threads?p["default"].createElement("span",{className:"badge"},t.unread_private_threads):null}function i(e){var t=e.user;return p["default"].createElement("ul",{className:"ul nav navbar-nav nav-user"},p["default"].createElement(u,{user:t}),p["default"].createElement("li",{className:"dropdown"},p["default"].createElement("a",{"aria-haspopup":"true","aria-expanded":"false",className:"dropdown-toggle","data-toggle":"dropdown",href:t.url,role:"button"},p["default"].createElement(b["default"],{user:t,size:"64"})),p["default"].createElement(x,{user:t})))}function u(e){return e.user.unread_private_threads?p["default"].createElement("li",null,p["default"].createElement("a",{className:"navbar-notification",href:_["default"].get("PRIVATE_THREADS_URL"),title:gettext("You have unread private threads.")},p["default"].createElement("span",{className:"material-icon"},"message"),p["default"].createElement("span",{className:"badge"},e.user.unread_private_threads))):null}function c(e){return{user:e.auth.user}}Object.defineProperty(a,"__esModule",{value:!0}),a.CompactUserNav=a.UserMenu=void 0;var d=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.PrivateThreadsBadge=s,a.UserNav=i,a.UserPrivateThreadsLink=u,a.selectUserMenu=c;var f=e("react"),p=n(f),m=e("react-redux"),h=e("../avatar"),b=n(h),v=e("../change-avatar/root"),y=n(v),g=e("../.."),_=n(g),E=e("../../services/mobile-navbar-dropdown"),w=n(E),O=e("../../services/modal"),k=n(O),x=a.UserMenu=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),d(t,[{key:"logout",value:function(){var e=confirm(gettext("Are you sure you want to sign out?"));e&&$("#hidden-logout-form").submit()}},{key:"changeAvatar",value:function(){k["default"].show((0,m.connect)(v.select)(y["default"]))}},{key:"render",value:function(){var e=this.props.user;return p["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},p["default"].createElement("li",{className:"dropdown-header"},p["default"].createElement("strong",null,e.username),p["default"].createElement("ul",{className:"list-unstyled list-inline user-stats"},p["default"].createElement("li",null,p["default"].createElement("span",{className:"material-icon"},"message"),e.posts),p["default"].createElement("li",null,p["default"].createElement("span",{className:"material-icon"},"forum"),e.threads),p["default"].createElement("li",null,p["default"].createElement("span",{className:"material-icon"},"favorite"),e.followers),p["default"].createElement("li",null,p["default"].createElement("span",{className:"material-icon"},"favorite_outline"),e.following))),p["default"].createElement("li",{className:"divider"}),p["default"].createElement("li",null,p["default"].createElement("a",{href:e.url},p["default"].createElement("span",{className:"material-icon"},"account_circle"),gettext("See your profile"))),p["default"].createElement("li",null,p["default"].createElement("a",{href:_["default"].get("USERCP_URL")},p["default"].createElement("span",{className:"material-icon"},"done_all"),gettext("Change options"))),p["default"].createElement("li",null,p["default"].createElement("button",{className:"btn-link",onClick:this.changeAvatar,type:"button"},p["default"].createElement("span",{className:"material-icon"},"portrait"),gettext("Change avatar"))),p["default"].createElement("li",null,p["default"].createElement("a",{href:_["default"].get("PRIVATE_THREADS_URL")},p["default"].createElement("span",{className:"material-icon"},"message"),gettext("Private threads"),p["default"].createElement(s,{user:e}))),p["default"].createElement("li",{className:"divider"}),p["default"].createElement("li",{className:"dropdown-buttons"},p["default"].createElement("button",{className:"btn btn-default btn-block",onClick:this.logout,type:"button"},gettext("Log out"))))}}]),t}(p["default"].Component);a.CompactUserNav=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),d(t,[{key:"showUserMenu",value:function(){w["default"].showConnected("user-menu",(0,m.connect)(c)(x))}},{key:"render",value:function(){return p["default"].createElement("button",{type:"button",onClick:this.showUserMenu},p["default"].createElement(b["default"],{user:this.props.user,size:"50"}))}}]),t}(p["default"].Component)},{"../..":275,"../../services/mobile-navbar-dropdown":341,"../../services/modal":342,"../avatar":3,"../change-avatar/root":22,react:"react","react-redux":"react-redux"}],247:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){var t="";return e.is_banned?t="banned":e.is_hidden?t="offline":e.is_online_hidden?t="online":e.is_offline_hidden?t="offline":e.is_online?t="online":e.is_offline&&(t="offline"),"user-status user-"+t}function i(e,t){return t.is_banned?t.banned_until?interpolate(gettext("%(username)s is banned until %(ban_expires)s"),{username:e.username,ban_expires:t.banned_until.format("LL, LT")},!0):interpolate(gettext("%(username)s is banned"),{username:e.username},!0):t.is_hidden?interpolate(gettext("%(username)s is hiding presence"),{username:e.username},!0):t.is_online_hidden?interpolate(gettext("%(username)s is online (hidden)"),{username:e.username},!0):t.is_offline_hidden?interpolate(gettext("%(username)s was last seen %(last_click)s (hidden)"),{username:e.username,last_click:t.last_click.fromNow()},!0):t.is_online?interpolate(gettext("%(username)s is online"),{username:e.username},!0):t.is_offline?interpolate(gettext("%(username)s was last seen %(last_click)s"),{username:e.username,last_click:t.last_click.fromNow()},!0):void 0}Object.defineProperty(a,"__esModule",{value:!0}),a.StatusLabel=a.StatusIcon=void 0;var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.getStatusClassName=s,a.getStatusDescription=i;var c=e("react"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),u(t,[{key:"getClass",value:function(){return s(this.props.status)}},{key:"render",value:function(){return d["default"].createElement("span",{className:this.getClass()},this.props.children)}}]),t}(d["default"].Component);a["default"]=f;a.StatusIcon=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),u(t,[{key:"getIcon",value:function(){return this.props.status.is_banned?"remove_circle_outline":this.props.status.is_hidden?"help_outline":this.props.status.is_online_hidden?"label":this.props.status.is_offline_hidden?"label_outline":this.props.status.is_online?"lens":this.props.status.is_offline?"panorama_fish_eye":void 0}},{key:"render",value:function(){return d["default"].createElement("span",{className:"material-icon status-icon"},this.getIcon())}}]),t}(d["default"].Component),a.StatusLabel=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),u(t,[{key:"getHelp",value:function(){return i(this.props.user,this.props.status)}},{key:"getLabel",value:function(){return this.props.status.is_banned?gettext("Banned"):this.props.status.is_hidden?gettext("Hidden"):this.props.status.is_online_hidden?gettext("Online (hidden)"):this.props.status.is_offline_hidden?gettext("Offline (hidden)"):this.props.status.is_online?gettext("Online"):this.props.status.is_offline?gettext("Offline"):void 0}},{key:"render",value:function(){return d["default"].createElement("span",{className:this.props.className||"status-label",title:this.getHelp()},this.getLabel())}}]),t}(d["default"].Component)},{react:"react"}],248:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../avatar"),f=r(d),p=e("../../utils/random"),m=n(p),h=function(e){function t(){return o(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return s(t,e),i(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"getClassName",value:function(){return this.props.hiddenOnMobile?"list-group-item hidden-xs hidden-sm":"list-group-item"}},{key:"render",value:function(){return c["default"].createElement("li",{className:this.getClassName()},c["default"].createElement("div",{className:"change-avatar"},c["default"].createElement("span",{className:"user-avatar"},c["default"].createElement(f["default"],{size:"100"}))),c["default"].createElement("div",{className:"change-author"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,100)+"px"}}," ")),c["default"].createElement("div",{className:"change"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,70)+"px"}}," "),c["default"].createElement("span",{className:"material-icon"},"arrow_forward"),c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,70)+"px"}}," ")),c["default"].createElement("div",{className:"change-date"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](80,140)+"px"}}," ")))}}]),t}(c["default"].Component);a["default"]=h},{"../../utils/random":359,"../avatar":3,react:"react"}],249:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../avatar"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"renderUserAvatar",value:function(){return this.props.change.changed_by?u["default"].createElement("a",{href:this.props.change.changed_by.url,className:"user-avatar-wrapper"},u["default"].createElement(d["default"],{user:this.props.change.changed_by,size:"100"})):u["default"].createElement("span",{className:"user-avatar-wrapper"},u["default"].createElement(d["default"],{size:"100"}))}},{key:"renderUsername",value:function(){return this.props.change.changed_by?u["default"].createElement("a",{href:this.props.change.changed_by.url,className:"item-title"},this.props.change.changed_by.username):u["default"].createElement("span",{className:"item-title"},this.props.change.changed_by_username)}},{key:"render",value:function(){return u["default"].createElement("li",{className:"list-group-item",key:this.props.change.id},u["default"].createElement("div",{className:"change-avatar"},this.renderUserAvatar()),u["default"].createElement("div",{className:"change-author"},this.renderUsername()),u["default"].createElement("div",{className:"change"},u["default"].createElement("span",{className:"old-username"},this.props.change.old_username),u["default"].createElement("span",{className:"material-icon"},"arrow_forward"),u["default"].createElement("span",{className:"new-username"},this.props.change.new_username)),u["default"].createElement("div",{className:"change-date"},u["default"].createElement("abbr",{title:this.props.change.changed_on.format("LLL")},this.props.change.changed_on.fromNow())))}}]),t}(u["default"].Component);a["default"]=f},{"../avatar":3,react:"react"}],250:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getEmptyMessage",value:function(){return this.props.emptyMessage?this.props.emptyMessage:gettext("No name changes have been recorded for your account.")}},{key:"render",value:function(){return u["default"].createElement("div",{className:"username-history ui-ready"},u["default"].createElement("ul",{className:"list-group"},u["default"].createElement("li",{className:"list-group-item empty-message"},this.getEmptyMessage())))}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],251:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./change-preview"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"render",value:function(){return u["default"].createElement("div",{className:"username-history ui-preview"},u["default"].createElement("ul",{className:"list-group"},[0,1,2].map(function(e){return u["default"].createElement(d["default"],{hiddenOnMobile:e>0,key:e})})))}}]),t}(u["default"].Component);a["default"]=f},{"./change-preview":248,react:"react"}],252:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./change"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"render",value:function(){return u["default"].createElement("div",{className:"username-history ui-ready"},u["default"].createElement("ul",{className:"list-group"},this.props.changes.map(function(e){return u["default"].createElement(d["default"],{change:e,key:e.id})})))}}]),t}(u["default"].Component);a["default"]=f},{"./change":249,react:"react"}],253:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./list-empty"),d=n(c),f=e("./list-ready"),p=n(f),m=e("./list-preview"),h=n(m),b=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"render",value:function(){return this.props.isLoaded?this.props.changes.length?u["default"].createElement(p["default"],{
+changes:this.props.changes}):u["default"].createElement(d["default"],{emptyMessage:this.props.emptyMessage}):u["default"].createElement(h["default"],null)}}]),t}(u["default"].Component);a["default"]=b},{"./list-empty":250,"./list-preview":251,"./list-ready":252,react:"react"}],254:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.showStatus,a=e.user,n=a.rank,r="panel user-card";return n.css_class&&(r+=" user-card-"+n.css_class),o["default"].createElement("div",{className:r},o["default"].createElement("div",{className:"panel-body"},o["default"].createElement("div",{className:"row"},o["default"].createElement("div",{className:"col-xs-3 user-card-left"},o["default"].createElement("div",{className:"user-card-small-avatar"},o["default"].createElement("a",{href:a.url},o["default"].createElement(s["default"],{size:"50",size2x:"80",user:a})))),o["default"].createElement("div",{className:"col-xs-9 col-sm-12 user-card-body"},o["default"].createElement("div",{className:"user-card-avatar"},o["default"].createElement("a",{href:a.url},o["default"].createElement(s["default"],{size:"150",size2x:"200",user:a}))),o["default"].createElement("div",{className:"user-card-username"},o["default"].createElement("a",{href:a.url},a.username)),o["default"].createElement("div",{className:"user-card-title"},o["default"].createElement(d["default"],{rank:n,title:a.title})),o["default"].createElement("div",{className:"user-card-stats"},o["default"].createElement(u["default"],{showStatus:t,user:a}))))))};var r=e("react"),o=n(r),l=e("../../avatar"),s=n(l),i=e("./stats"),u=n(i),c=e("./user-title"),d=n(c)},{"../../avatar":3,"./stats":255,"./user-title":256,react:"react"}],255:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=e.showStatus,a=e.user;return t?d["default"].createElement("li",{className:"user-stat-status"},d["default"].createElement(p["default"],{status:a.status},d["default"].createElement(f.StatusLabel,{status:a.status,user:a}))):null}function o(e){var t=e.user,a=t.joined_on,n=interpolate(gettext("Joined on %(joined_on)s"),{joined_on:a.format("LL, LT")},!0),r=interpolate(gettext("Joined %(joined_on)s"),{joined_on:a.fromNow()},!0);return d["default"].createElement("li",{className:"user-stat-join-date"},d["default"].createElement("abbr",{title:n},r))}function l(e){var t=e.user,a=u("user-stat-posts",t.posts),n=ngettext("%(posts)s post","%(posts)s posts",t.posts);return d["default"].createElement("li",{className:a},interpolate(n,{posts:t.posts},!0))}function s(e){var t=e.user,a=u("user-stat-threads",t.threads),n=ngettext("%(threads)s thread","%(threads)s threads",t.threads);return d["default"].createElement("li",{className:a},interpolate(n,{threads:t.threads},!0))}function i(e){var t=e.user,a=u("user-stat-followers",t.followers),n=ngettext("%(followers)s follower","%(followers)s followers",t.followers);return d["default"].createElement("li",{className:a},interpolate(n,{followers:t.followers},!0))}function u(e,t){return 0===t?e+" user-stat-empty":e}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.showStatus,a=e.user;return d["default"].createElement("ul",{className:"list-unstyled"},d["default"].createElement(r,{showStatus:t,user:a}),d["default"].createElement(o,{user:a}),d["default"].createElement("li",{className:"user-stat-divider"}),d["default"].createElement(l,{user:a}),d["default"].createElement(s,{user:a}),d["default"].createElement(i,{user:a}))},a.Status=r,a.JoinDate=o,a.Posts=l,a.Threads=s,a.Followers=i,a.getStatClassName=u;var c=e("react"),d=n(c),f=e("../../user-status"),p=n(f)},{"../../user-status":247,react:"react"}],256:[function(e,t,a){arguments[4][108][0].apply(a,arguments)},{dup:108,react:"react"}],257:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.cols,a=e.isReady,n=e.showStatus,r=e.users,l="col-xs-12 col-sm-4";return 4===t&&(l+=" col-md-3"),a?o["default"].createElement("div",{className:"users-cards-list ui-ready"},o["default"].createElement("div",{className:"row"},r.map(function(e){return o["default"].createElement("div",{className:l,key:e.id},o["default"].createElement(s["default"],{showStatus:n,user:e}))}))):o["default"].createElement(u["default"],{colClassName:l,cols:t})};var r=e("react"),o=n(r),l=e("./card"),s=n(l),i=e("./preview"),u=n(i)},{"./card":254,"./preview":259,react:"react"}],258:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../../avatar"),f=r(d),p=e("../../../utils/random"),m=n(p),h=function(e){function t(){return o(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return s(t,e),i(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"render",value:function(){return c["default"].createElement("div",{className:"panel user-card user-card-preview"},c["default"].createElement("div",{className:"panel-body"},c["default"].createElement("div",{className:"row"},c["default"].createElement("div",{className:"col-xs-3 user-card-left"},c["default"].createElement("div",{className:"user-card-small-avatar"},c["default"].createElement("span",null,c["default"].createElement(f["default"],{size:"50",size2x:"80"})))),c["default"].createElement("div",{className:"col-xs-9 col-sm-12 user-card-body"},c["default"].createElement("div",{className:"user-card-avatar"},c["default"].createElement("span",null,c["default"].createElement(f["default"],{size:"150",size2x:"200"}))),c["default"].createElement("div",{className:"user-card-username"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](60,150)+"px"}}," ")),c["default"].createElement("div",{className:"user-card-title"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](60,150)+"px"}}," ")),c["default"].createElement("div",{className:"user-card-stats"},c["default"].createElement("ul",{className:"list-unstyled"},c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,70)+"px"}}," ")),c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,70)+"px"}}," ")),c["default"].createElement("li",{className:"user-stat-divider"}),c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,70)+"px"}}," ")),c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,70)+"px"}}," "))))))))}}]),t}(c["default"].Component);a["default"]=h},{"../../../utils/random":359,"../../avatar":3,react:"react"}],259:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.colClassName,a=e.cols,n=Array.apply(null,{length:a}).map(Number.call,Number);return o["default"].createElement("div",{className:"users-cards-list ui-preview"},o["default"].createElement("div",{className:"row"},n.map(function(e){var a=t;return 0!==e&&(a+=" hidden-xs"),3===e&&(a+=" hidden-sm"),o["default"].createElement("div",{className:a,key:e},o["default"].createElement(s["default"],null))})))};var r=e("react"),o=n(r),l=e("./card"),s=n(l)},{"./card":258,react:"react"}],260:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getEmptyMessage",value:function(){return interpolate(gettext("No users have posted any new messages during last %(days)s days."),{days:this.props.trackedPeriod},!0)}},{key:"render",value:function(){return u["default"].createElement("div",{className:"active-posters-list"},u["default"].createElement("div",{className:"container"},u["default"].createElement("p",{className:"lead"},this.getEmptyMessage())))}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],261:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../../avatar"),f=r(d),p=e("../../../utils/random"),m=n(p),h=function(e){function t(){return o(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return s(t,e),i(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"getClassName",value:function(){return this.props.hiddenOnMobile?"list-group-item hidden-xs hidden-sm":"list-group-item"}},{key:"render",value:function(){return c["default"].createElement("li",{className:this.getClassName()},c["default"].createElement("div",{className:"rank-user-avatar"},c["default"].createElement("span",null,c["default"].createElement(f["default"],{size:"50"}))),c["default"].createElement("div",{className:"rank-user"},c["default"].createElement("div",{className:"user-name"},c["default"].createElement("span",{className:"item-title"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,80)+"px"}}," "))),c["default"].createElement("div",{className:"user-details"},c["default"].createElement("span",{className:"user-status"},c["default"].createElement("span",{className:"status-icon ui-preview-text"}," "),c["default"].createElement("span",{className:"status-label ui-preview-text hidden-xs hidden-sm",style:{width:m["int"](30,50)+"px"}}," ")),c["default"].createElement("span",{className:"rank-name"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,50)+"px"}}," ")),c["default"].createElement("span",{className:"user-title hidden-xs hidden-sm"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,50)+"px"}}," "))),c["default"].createElement("div",{className:"user-compact-stats visible-xs-block"},c["default"].createElement("span",{className:"rank-position"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](20,30)+"px"}}," ")),c["default"].createElement("small",null,gettext("Rank"))),c["default"].createElement("span",{className:"rank-posts-counted"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](20,30)+"px"}}," ")),c["default"].createElement("small",null,gettext("Ranked posts"))))),c["default"].createElement("div",{className:"rank-position hidden-xs"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](20,30)+"px"}}," ")),c["default"].createElement("small",null,gettext("Rank"))),c["default"].createElement("div",{className:"rank-posts-counted hidden-xs"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](20,30)+"px"}}," ")),c["default"].createElement("small",null,gettext("Ranked posts"))),c["default"].createElement("div",{className:"rank-posts-total hidden-xs"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](20,30)+"px"}}," ")),c["default"].createElement("small",null,gettext("Total posts"))))}}]),t}(c["default"].Component);a["default"]=h},{"../../../utils/random":359,"../../avatar":3,react:"react"}],262:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("react-router"),f=e("../../avatar"),p=r(f),m=e("../../user-status"),h=r(m),b=e("../../../index"),v=r(b),y=e("../../../utils/random"),g=n(y),_=function(e){function t(){return o(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.rank.css_class?"list-group-item list-group-rank-"+this.props.rank.css_class:"list-group-item"}},{key:"getUserStatus",value:function(){return this.props.user.status?c["default"].createElement(h["default"],{user:this.props.user,status:this.props.user.status},c["default"].createElement(m.StatusIcon,{user:this.props.user,status:this.props.user.status}),c["default"].createElement(m.StatusLabel,{user:this.props.user,status:this.props.user.status,className:"status-label hidden-xs hidden-sm"})):c["default"].createElement("span",{className:"user-status"},c["default"].createElement("span",{className:"status-icon ui-preview-text"}," "),c["default"].createElement("span",{className:"status-label ui-preview-text hidden-xs hidden-sm",style:{width:g["int"](30,50)+"px"}}," "))}},{key:"getRankName",value:function(){if(!this.props.rank.is_tab)return c["default"].createElement("span",{className:"rank-name item-title"},this.props.rank.name);var e=v["default"].get("USERS_LIST_URL")+this.props.rank.slug+"/";return c["default"].createElement(d.Link,{to:e,className:"rank-name item-title"},this.props.rank.name)}},{key:"getUserTitle",value:function(){return this.props.user.title?c["default"].createElement("span",{className:"user-title hidden-xs hidden-sm"},this.props.user.title):null}},{key:"render",value:function(){return c["default"].createElement("li",{className:this.getClassName()},c["default"].createElement("div",{className:"rank-user-avatar"},c["default"].createElement("a",{href:this.props.user.url},c["default"].createElement(p["default"],{user:this.props.user,size:50,size2x:64}))),c["default"].createElement("div",{className:"rank-user"},c["default"].createElement("div",{className:"user-name"},c["default"].createElement("a",{href:this.props.user.url,className:"item-title"},this.props.user.username)),c["default"].createElement("div",{className:"user-details"},this.getUserStatus(),this.getRankName(),this.getUserTitle()),c["default"].createElement("div",{className:"user-compact-stats visible-xs-block"},c["default"].createElement("span",{className:"rank-position"},c["default"].createElement("strong",null,"#",this.props.counter),c["default"].createElement("small",null,gettext("Rank"))),c["default"].createElement("span",{className:"rank-posts-counted"},c["default"].createElement("strong",null,this.props.user.meta.score),c["default"].createElement("small",null,gettext("Ranked posts"))))),c["default"].createElement("div",{className:"rank-position hidden-xs"},c["default"].createElement("strong",null,"#",this.props.counter),c["default"].createElement("small",null,gettext("Rank"))),c["default"].createElement("div",{className:"rank-posts-counted hidden-xs"},c["default"].createElement("strong",null,this.props.user.meta.score),c["default"].createElement("small",null,gettext("Ranked posts"))),c["default"].createElement("div",{className:"rank-posts-total hidden-xs"},c["default"].createElement("strong",null,this.props.user.posts),c["default"].createElement("small",null,gettext("Total posts"))))}}]),t}(c["default"].Component);a["default"]=_},{"../../../index":275,"../../../utils/random":359,"../../avatar":3,"../../user-status":247,react:"react","react-router":"react-router"}],263:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("./list-item-preview"),f=r(d),p=e("../../../utils/random"),m=n(p),h=function(e){function t(){return o(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return s(t,e),i(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"render",value:function(){return c["default"].createElement("div",{className:"active-posters-list"},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead ui-preview"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](50,220)+"px"}}," ")),c["default"].createElement("div",{className:"active-posters ui-preview"},c["default"].createElement("ul",{className:"list-group"},[0,1,2].map(function(e){return c["default"].createElement(f["default"],{hiddenOnMobile:e>0,key:e})})))))}}]),t}(c["default"].Component);a["default"]=h},{"../../../utils/random":359,"./list-item-preview":261,react:"react"}],264:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./list-item"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getLeadMessage",value:function(){var e=ngettext("%(posters)s most active poster from last %(days)s days.","%(posters)s most active posters from last %(days)s days.",this.props.count);return interpolate(e,{posters:this.props.count,days:this.props.trackedPeriod},!0)}},{key:"render",value:function(){return u["default"].createElement("div",{className:"active-posters-list"},u["default"].createElement("div",{className:"container"},u["default"].createElement("p",{className:"lead"},this.getLeadMessage()),u["default"].createElement("div",{className:"active-posters ui-ready"},u["default"].createElement("ul",{className:"list-group"},this.props.users.map(function(e,t){return u["default"].createElement(d["default"],{user:e,rank:e.rank,counter:t+1,key:e.id})})))))}}]),t}(u["default"].Component);a["default"]=f},{"./list-item":262,react:"react"}],265:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./list-empty"),d=n(c),f=e("./list-preview"),p=n(f),m=e("./list-ready"),h=n(m),b=e("../../../index"),v=n(b),y=e("../../../reducers/users"),g=e("../../../services/polls"),_=n(g),E=e("../../../services/store"),w=n(E),O=e("../../../services/page-title"),k=n(O),x=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.update=function(e){w["default"].dispatch((0,y.hydrate)(e.results)),a.setState({isLoaded:!0,trackedPeriod:e.tracked_period,count:e.count})},v["default"].has("USERS")?a.initWithPreloadedData(v["default"].pop("USERS")):a.initWithoutPreloadedData(),a.startPolling(),a}return l(t,e),s(t,[{key:"initWithPreloadedData",value:function(e){this.state={isLoaded:!0,trackedPeriod:e.tracked_period,count:e.count},w["default"].dispatch((0,y.hydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPolling",value:function(){_["default"].start({poll:"active-posters",url:v["default"].get("USERS_API"),data:{list:"active"},frequency:9e4,update:this.update})}},{key:"componentDidMount",value:function(){k["default"].set({title:this.props.route.extra.name,parent:gettext("Users")})}},{key:"componentWillUnmount",value:function(){_["default"].stop("active-posters")}},{key:"render",value:function(){return this.state.isLoaded?this.state.count>0?u["default"].createElement(h["default"],{users:this.props.users,trackedPeriod:this.state.trackedPeriod,count:this.state.count}):u["default"].createElement(d["default"],{trackedPeriod:this.state.trackedPeriod}):u["default"].createElement(p["default"],null)}}]),t}(u["default"].Component);a["default"]=x},{"../../../index":275,"../../../reducers/users":335,"../../../services/page-title":344,"../../../services/polls":345,"../../../services/store":348,"./list-empty":260,"./list-preview":263,"./list-ready":264,react:"react"}],266:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.baseUrl,a=e.lists;return o["default"].createElement("ul",{className:"nav nav-pills"},a.map(function(e){var a=c(t,e);return o["default"].createElement(i["default"],{path:a,key:a},o["default"].createElement(l.Link,{to:a},e.name))}))};var r=e("react"),o=n(r),l=e("react-router"),s=e("../li"),i=n(s),u=e("../../index"),c=(n(u),function(e,t){var a=e;return a+="rank"===t.component?t.slug:t.component,a+"/"})},{"../../index":275,"../li":53,react:"react","react-router":"react-router"}],267:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../../users-list"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"render",value:function(){return u["default"].createElement("div",null,u["default"].createElement(d["default"],{cols:4,isReady:!1}))}}]),t}(u["default"].Component);a["default"]=f},{"../../users-list":257,react:"react"}],268:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return o["default"].createElement("div",null,o["default"].createElement(u["default"],{cols:4,isReady:!0,showStatus:!0,users:e.users}),o["default"].createElement(s["default"],e))};var r=e("react"),o=n(r),l=e("./pager"),s=n(l),i=e("../../users-list"),u=n(i)},{"../../users-list":257,"./pager":269,react:"react"}],269:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return d["default"].createElement("div",{className:"row row-paginator"},d["default"].createElement("div",{className:"col-xs-3"},d["default"].createElement(o,e)),d["default"].createElement("div",{className:"col-xs-3"},d["default"].createElement(l,e)),d["default"].createElement("div",{className:"col-xs-3"},d["default"].createElement(s,e)),d["default"].createElement("div",{className:"col-xs-3"},d["default"].createElement(i,e)))}function o(e){return e.isLoaded&&e.first?d["default"].createElement(f.Link,{className:"btn btn-default btn-block btn-icon btn-outline",onClick:m["default"],to:e.baseUrl,title:gettext("Go to first page")},d["default"].createElement("span",{className:"material-icon"},"first_page")):d["default"].createElement("span",{className:"btn btn-default btn-block btn-icon btn-outline disabled",title:gettext("Go to first page")},d["default"].createElement("span",{className:"material-icon"},"first_page"))}function l(e){if(e.isLoaded&&e.page>1){var t="";return e.previous&&(t=e.previous+"/"),d["default"].createElement(f.Link,{className:"btn btn-default btn-block btn-icon btn-outline",onClick:m["default"],to:e.baseUrl+t,title:gettext("Go to previous page")},d["default"].createElement("span",{className:"material-icon"},"chevron_left"))}return d["default"].createElement("span",{className:"btn btn-default btn-block btn-icon btn-outline disabled",title:gettext("Go to previous page")},d["default"].createElement("span",{className:"material-icon"},"chevron_left"))}function s(e){if(e.isLoaded&&e.more){var t="";return e.next&&(t=e.next+"/"),d["default"].createElement(f.Link,{className:"btn btn-default btn-block btn-icon btn-outline",onClick:m["default"],to:e.baseUrl+t,title:gettext("Go to next page")},d["default"].createElement("span",{className:"material-icon"},"chevron_right"))}return d["default"].createElement("span",{className:"btn btn-default btn-block btn-icon btn-outline disabled",title:gettext("Go to next page")},d["default"].createElement("span",{className:"material-icon"},"chevron_right"))}function i(e){return e.isLoaded&&e.last?d["default"].createElement(f.Link,{className:"btn btn-default btn-block btn-icon btn-outline",onClick:m["default"],to:e.baseUrl+e.last+"/",title:gettext("Go to last page")},d["default"].createElement("span",{className:"material-icon"},"last_page")):d["default"].createElement("span",{className:"btn btn-default btn-block btn-icon btn-outline disabled",title:gettext("Go to last page")},d["default"].createElement("span",{className:"material-icon"},"last_page"))}function u(e){var t=null;return e.more?(t=ngettext("There is %(more)s more member with this role.","There are %(more)s more members with this role.",e.more),t=interpolate(t,{more:e.more},!0)):t=gettext("There are no more members with this role."),d["default"].createElement("p",null,t)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return 1===e.pages?null:d["default"].createElement("div",{className:"row row-toolbar"},d["default"].createElement("div",{className:"col-xs-12 text-center visible-xs-block"},d["default"].createElement(u,{more:e.more}),d["default"].createElement("div",{className:"toolbar-vertical-spacer"})),d["default"].createElement("div",{className:"col-md-7"},d["default"].createElement("div",{className:"row"},d["default"].createElement("div",{
+className:"col-sm-4 col-md-5"},d["default"].createElement(r,e)),d["default"].createElement("div",{className:"col-sm-8 col-md-7 hidden-xs"},d["default"].createElement(u,{more:e.more})))))},a.Pager=r,a.FirstPage=o,a.PreviousPage=l,a.NextPage=s,a.LastPage=i,a.More=u;var c=e("react"),d=n(c),f=e("react-router"),p=e("../../../utils/reset-scroll"),m=n(p)},{"../../../utils/reset-scroll":360,react:"react","react-router":"react-router"}],270:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=n(u),d=e("../../page-lead"),f=n(d),p=e("./list"),m=n(p),h=e("./list-loading"),b=n(h),v=e("../../../index"),y=n(v),g=e("../../../reducers/users"),_=e("../../../services/polls"),E=n(_),w=e("../../../services/store"),O=n(w),k=e("../../../services/page-title"),x=n(k),N=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.update=function(e){O["default"].dispatch((0,g.hydrate)(e.results)),e.isLoaded=!0,a.setState(e)},y["default"].has("USERS")?a.initWithPreloadedData(y["default"].pop("USERS")):a.initWithoutPreloadedData(),a.startPolling(e.params.page||1),a}return l(t,e),i(t,[{key:"initWithPreloadedData",value:function(e){this.state=Object.assign(e,{isLoaded:!0}),O["default"].dispatch((0,g.hydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPolling",value:function(e){E["default"].start({poll:"rank-users",url:y["default"].get("USERS_API"),data:{rank:this.props.route.rank.id,page:e},frequency:9e4,update:this.update})}},{key:"componentDidMount",value:function(){x["default"].set({title:this.props.route.rank.name,page:this.props.params.page||null,parent:gettext("Users")})}},{key:"componentWillUnmount",value:function(){E["default"].stop("rank-users")}},{key:"componentWillReceiveProps",value:function(e){this.props.params.page!==e.params.page&&(x["default"].set({title:this.props.route.rank.name,page:e.params.page||null,parent:gettext("Users")}),this.setState({isLoaded:!1}),E["default"].stop("rank-users"),this.startPolling(e.params.page))}},{key:"getClassName",value:function(){return this.props.route.rank.css_class?"rank-users-list rank-users-"+this.props.route.rank.css_class:"rank-users-list"}},{key:"getRankDescription",value:function(){return this.props.route.rank.description?c["default"].createElement("div",{className:"rank-description"},c["default"].createElement(f["default"],{copy:this.props.route.rank.description.html})):null}},{key:"getComponent",value:function(){if(this.state.isLoaded){if(this.state.count>0){var e=y["default"].get("USERS_LIST_URL")+this.props.route.rank.slug+"/";return c["default"].createElement(m["default"],s({baseUrl:e,users:this.props.users},this.state))}return c["default"].createElement("p",{className:"lead"},gettext("There are no users with this rank at the moment."))}return c["default"].createElement(b["default"],null)}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement("div",{className:"container"},this.getRankDescription(),this.getComponent()))}}]),t}(c["default"].Component);a["default"]=N},{"../../../index":275,"../../../reducers/users":335,"../../../services/page-title":344,"../../../services/polls":345,"../../../services/store":348,"../../page-lead":70,"./list":268,"./list-loading":267,react:"react"}],271:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return{tick:e.tick.tick,user:e.auth.user,users:e.users}}function i(){var e=[];return O["default"].get("USERS_LISTS").forEach(function(t){"rank"===t.component?(e.push({path:O["default"].get("USERS_LIST_URL")+t.slug+"/:page/",component:(0,f.connect)(s)(g["default"]),rank:t}),e.push({path:O["default"].get("USERS_LIST_URL")+t.slug+"/",component:(0,f.connect)(s)(g["default"]),rank:t})):"active-posters"===t.component&&e.push({path:O["default"].get("USERS_LIST_URL")+t.component+"/",component:(0,f.connect)(s)(v["default"]),extra:{name:t.name}})}),e}Object.defineProperty(a,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.select=s,a.paths=i;var c=e("react"),d=n(c),f=e("react-redux"),p=e("../dropdown-toggle"),m=(n(p),e("./nav")),h=n(m),b=e("./active-posters/root"),v=n(b),y=e("./rank/root"),g=n(y),_=e("../with-dropdown"),E=n(_),w=e("../../index"),O=n(w),k=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),u(t,[{key:"render",value:function(){return d["default"].createElement("div",{className:"page page-users-lists"},d["default"].createElement("div",{className:"page-header-bg"},d["default"].createElement("div",{className:"page-header"},d["default"].createElement("div",{className:"container"},d["default"].createElement("h1",null,gettext("Users"))),d["default"].createElement("div",{className:"page-tabs"},d["default"].createElement("div",{className:"container"},d["default"].createElement(h["default"],{lists:O["default"].get("USERS_LISTS"),baseUrl:O["default"].get("USERS_LIST_URL")}))))),this.props.children)}}]),t}(E["default"]);a["default"]=k},{"../../index":275,"../dropdown-toggle":24,"../with-dropdown":272,"./active-posters/root":265,"./nav":266,"./rank/root":270,react:"react","react-redux":"react-redux"}],272:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.toggleNav=function(){a.setState({dropdown:!a.state.dropdown})},a.hideNav=function(){a.setState({dropdown:!1})},a.state={dropdown:!1},a}return l(t,e),s(t,[{key:"getCompactNavClassName",value:function(){return this.state.dropdown?"compact-nav open":"compact-nav"}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],273:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.toggle=function(){n.props.onChange({target:{value:!n.props.value}})},l=a,o(n,l)}return l(t,e),s(t,[{key:"getClassName",value:function(){return this.props.value?"btn btn-yes-no btn-yes-no-on":"btn btn-yes-no btn-yes-no-off"}},{key:"getIcon",value:function(){return this.props.value?this.props.iconOn||"check_box":this.props.iconOff||"check_box_outline_blank"}},{key:"getLabel",value:function(){return this.props.value?this.props.labelOn||gettext("yes"):this.props.labelOff||gettext("no")}},{key:"render",value:function(){return u["default"].createElement("button",{type:"button",onClick:this.toggle,className:this.getClassName(),id:this.props.id||null,"aria-describedby":this.props["aria-describedby"]||null,disabled:this.props.disabled||!1},u["default"].createElement("span",{className:"material-icon"},this.getIcon()),u["default"].createElement("span",{className:"btn-text"},this.getLabel()))}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],274:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../reducers/profile-details"),d=e("../services/ajax"),f=n(d),p=e("../services/snackbar"),m=n(p),h=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"componentDidMount",value:function(){var e=this.props,t=e.data,a=e.dispatch,n=e.user;t&&t.id===n.id||f["default"].get(this.props.user.api.details).then(function(e){a((0,c.load)(e))},function(e){m["default"].apiError(e)})}},{key:"render",value:function(){return this.props.children}}]),t}(u["default"].Component);a["default"]=h},{"../reducers/profile-details":326,"../services/ajax":336,"../services/snackbar":347,react:"react"}],275:[function(e,t,a){(function(t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0}),a.Misago=void 0;var o=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),l=e("./utils/ordered-list"),s=n(l),i=a.Misago=function(){function e(){r(this,e),this._initializers=[],this._context={}}return o(e,[{key:"addInitializer",value:function(e){this._initializers.push({key:e.name,item:e.initializer,after:e.after,before:e.before})}},{key:"init",value:function(e){var t=this;this._context=e;var a=new s["default"](this._initializers).orderedValues();a.forEach(function(e){e(t)})}},{key:"has",value:function(e){return!!this._context[e]}},{key:"get",value:function(e,t){return this.has(e)?this._context[e]:t||void 0}},{key:"pop",value:function(e){if(this.has(e)){var t=this._context[e];return this._context[e]=null,t}}}]),e}(),u=new i;t.misago=u,a["default"]=u}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./utils/ordered-list":358}],276:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){i["default"].init(l["default"].get("CSRF_COOKIE_NAME"))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/ajax"),i=n(s);l["default"].addInitializer({name:"ajax",initializer:r})},{"../index":275,"../services/ajax":336}],277:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.get("isAuthenticated")&&window.setInterval(function(){u["default"].get(e.get("AUTH_API")).then(function(e){p["default"].dispatch((0,s.patch)(e))},function(e){d["default"].apiError(e)})},1e3*m)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../reducers/auth"),i=e("../services/ajax"),u=n(i),c=e("../services/snackbar"),d=n(c),f=e("../services/store"),p=n(f),m=45;l["default"].addInitializer({name:"auth-sync",initializer:r,after:"auth"})},{"../index":275,"../reducers/auth":321,"../services/ajax":336,"../services/snackbar":347,"../services/store":348}],278:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){i["default"].init(f["default"],m["default"],c["default"])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/auth"),i=n(s),u=e("../services/modal"),c=n(u),d=e("../services/store"),f=n(d),p=e("../services/local-storage"),m=n(p);l["default"].addInitializer({name:"auth",initializer:r,after:"store"})},{"../index":275,"../services/auth":337,"../services/local-storage":340,"../services/modal":342,"../services/store":348}],279:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){c["default"].init(e,i["default"],f["default"],m["default"])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/ajax"),i=n(s),u=e("../services/captcha"),c=n(u),d=e("../services/include"),f=n(d),p=e("../services/snackbar"),m=n(p);l["default"].addInitializer({name:"captcha",initializer:r})},{"../index":275,"../services/ajax":336,"../services/captcha":338,"../services/include":339,"../services/snackbar":347}],280:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,d["default"])((0,o.connect)(i.select)(u["default"]),"auth-message-mount")}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("react-redux"),l=e("../../index"),s=n(l),i=e("../../components/auth-message"),u=n(i),c=e("../../utils/mount-component"),d=n(c);s["default"].addInitializer({name:"component:auth-message",initializer:r,after:"store"})},{"../../components/auth-message":2,"../../index":275,"../../utils/mount-component":357,"react-redux":"react-redux"}],281:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("BAN_MESSAGE")&&(0,i["default"])(e.get("BAN_MESSAGE"),!1)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../utils/banned-page"),i=n(s);l["default"].addInitializer({name:"component:banmed-page",initializer:r,after:"store"})},{"../../index":275,"../../utils/banned-page":350}],282:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("categories-mount")&&(0,d["default"])((0,o.connect)(l.select)(s["default"]),"categories-mount")}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("react-redux"),l=e("../../components/categories"),s=n(l),i=e("../../index"),u=n(i),c=e("../../utils/mount-component"),d=n(c);u["default"].addInitializer({name:"component:categories",initializer:r,after:"store"})},{"../../components/categories":17,"../../index":275,"../../utils/mount-component":357,"react-redux":"react-redux"}],283:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("USER_OPTIONS")&&(0,c["default"])({root:i["default"].get("USERCP_URL"),component:l["default"],paths:(0,o.paths)()})}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../components/options/root"),l=n(o),s=e("../../index"),i=n(s),u=e("../../utils/routed-component"),c=n(u);i["default"].addInitializer({name:"component:options",initializer:r,after:"store"})},{"../../components/options/root":66,"../../index":275,"../../utils/routed-component":361}],284:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("PROFILE")&&e.has("PROFILE_PAGES")&&(0,d["default"])({root:u["default"].get("PROFILE").url,component:(0,o.connect)(l.select)(s["default"]),paths:(0,l.paths)()})}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("react-redux"),l=e("../../components/profile/root"),s=n(l),i=e("../../index"),u=n(i),c=e("../../utils/routed-component"),d=n(c);u["default"].addInitializer({name:"component:profile",initializer:r,after:"reducer:profile-hydrate"})},{"../../components/profile/root":173,"../../index":275,"../../utils/routed-component":361,"react-redux":"react-redux"}],285:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("request-activation-link-mount")&&(0,c["default"])(i["default"],"request-activation-link-mount",!1)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../components/request-activation-link"),i=n(s),u=e("../../utils/mount-component"),c=n(u);l["default"].addInitializer({name:"component:request-activation-link",initializer:r,after:"store"})},{"../../components/request-activation-link":178,"../../index":275,"../../utils/mount-component":357}],286:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("request-password-reset-mount")&&(0,c["default"])(i["default"],"request-password-reset-mount",!1)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../components/request-password-reset"),i=n(s),u=e("../../utils/mount-component"),c=n(u);l["default"].addInitializer({name:"component:request-password-reset",initializer:r,after:"store"})},{"../../components/request-password-reset":179,"../../index":275,"../../utils/mount-component":357}],287:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("reset-password-form-mount")&&(0,c["default"])(i["default"],"reset-password-form-mount",!1)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../.."),l=n(o),s=e("../../components/reset-password-form"),i=n(s),u=e("../../utils/mount-component"),c=n(u);l["default"].addInitializer({name:"component:reset-password-form",initializer:r,after:"store"})},{"../..":275,"../../components/reset-password-form":180,"../../utils/mount-component":357}],288:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){"misago:search"===e.get("CURRENT_LINK")&&(0,c["default"])({paths:(0,l["default"])(i["default"].get("SEARCH_PROVIDERS"))})}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../components/search"),l=n(o),s=e("../.."),i=n(s),u=e("../../utils/routed-component"),c=n(u);i["default"].addInitializer({name:"component:search",initializer:r,after:"store"})},{"../..":275,"../../components/search":182,"../../utils/routed-component":361}],289:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,c["default"])((0,o.connect)(i.select)(i.Snackbar),"snackbar-mount")}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("react-redux"),l=e("../../index"),s=n(l),i=e("../../components/snackbar"),u=e("../../utils/mount-component"),c=n(u);s["default"].addInitializer({name:"component:snackbar",initializer:r,after:"snackbar"})},{"../../components/snackbar":190,"../../index":275,"../../utils/mount-component":357,"react-redux":"react-redux"}],290:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("THREAD")&&e.has("POSTS")&&(0,u["default"])({paths:(0,o.paths)()})}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../components/thread/root"),l=e("../../index"),s=n(l),i=e("../../utils/routed-component"),u=n(i);s["default"].addInitializer({name:"component:thread",initializer:r,after:"store"})},{"../../components/thread/root":206,"../../index":275,"../../utils/routed-component":361}],291:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("THREADS")&&e.has("CATEGORIES")&&(0,c["default"])({paths:(0,l.paths)(e.get("user"),o(e))})}function o(e){var t=e.get("CURRENT_LINK");return t.substr(0,d.length)===d?{api:e.get("PRIVATE_THREADS_API"),startThread:{mode:"START_PRIVATE",submit:i["default"].get("PRIVATE_THREADS_API")},title:gettext("Private threads"),pageLead:gettext("Private threads are threads which only those that started them and those they have invited may see and participate in."),emptyMessage:gettext("You aren't participating in any private threads.")}:{api:e.get("THREADS_API")}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r,a.getListOptions=o;var l=e("../../components/threads/root"),s=e("../../index"),i=n(s),u=e("../../utils/routed-component"),c=n(u),d="misago:private-threads";i["default"].addInitializer({name:"component:threads",initializer:r,after:"store"})},{"../../components/threads/root":240,"../../index":275,"../../utils/routed-component":361}],292:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,c["default"])((0,o.connect)(i.select)(i.UserMenu),"user-menu-mount"),(0,c["default"])((0,o.connect)(i.select)(i.CompactUserMenu),"user-menu-compact-mount")}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("react-redux"),l=e("../../index"),s=n(l),i=e("../../components/user-menu/root"),u=e("../../utils/mount-component"),c=n(u);s["default"].addInitializer({name:"component:user-menu",initializer:r,after:"store"})},{"../../components/user-menu/root":245,"../../index":275,"../../utils/mount-component":357,"react-redux":"react-redux"}],293:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("USERS_LISTS")&&(0,c["default"])({root:i["default"].get("USERS_LIST_URL"),component:l["default"],paths:(0,o.paths)()})}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../components/users/root"),l=n(o),s=e("../../index"),i=n(s),u=e("../../utils/routed-component"),c=n(u);i["default"].addInitializer({name:"component:users",initializer:r,after:"store"})},{"../../components/users/root":271,"../../index":275,"../../utils/routed-component":361}],294:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){i["default"].init(e.get("STATIC_URL"))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/include"),i=n(s);l["default"].addInitializer({name:"include",initializer:r})},{"../index":275,"../services/include":339}],295:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){i["default"].init("misago_")}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/local-storage"),i=n(s);l["default"].addInitializer({name:"local-storage",initializer:r})},{"../index":275,"../services/local-storage":340}],296:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=document.getElementById("mobile-navbar-dropdown-mount");e&&i["default"].init(e)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/mobile-navbar-dropdown"),i=n(s);l["default"].addInitializer({name:"dropdown",initializer:r,before:"store"})},{"../index":275,"../services/mobile-navbar-dropdown":341}],297:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=document.getElementById("modal-mount");e&&i["default"].init(e)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/modal"),i=n(s);l["default"].addInitializer({name:"modal",initializer:r,before:"store"})},{"../index":275,"../services/modal":342}],298:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){l["default"].locale($("html").attr("lang"))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("moment"),l=n(o),s=e("../index"),i=n(s);i["default"].addInitializer({name:"moment",initializer:r})},{"../index":275,moment:"moment"}],299:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){i["default"].init(e.get("SETTINGS").forum_index_title,e.get("SETTINGS").forum_name)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/page-title"),i=n(s);l["default"].addInitializer({name:"page-title",initializer:r})},{"../index":275,"../services/page-title":344}],300:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){f["default"].init(i["default"],c["default"])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/ajax"),i=n(s),u=e("../services/snackbar"),c=n(u),d=e("../services/polls"),f=n(d);l["default"].addInitializer({name:"polls",initializer:r})},{"../index":275,"../services/ajax":336,"../services/polls":345,"../services/snackbar":347}],301:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].init(i["default"],f["default"],document.getElementById("posting-placeholder"))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/ajax"),i=n(s),u=e("../services/posting"),c=n(u),d=e("../services/snackbar"),f=n(d);l["default"].addInitializer({name:"posting",initializer:r})},{"../index":275,"../services/ajax":336,"../services/posting":346,"../services/snackbar":347}],302:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){c["default"].addReducer("auth",i["default"],Object.assign({isAuthenticated:e.get("isAuthenticated"),isAnonymous:!e.get("isAuthenticated"),user:e.get("user")},s.initialState))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/auth"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:auth",initializer:r,before:"store"})},{"../../index":275,"../../reducers/auth":321,"../../services/store":348}],303:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=null;l["default"].has("THREAD")&&(e=l["default"].get("THREAD").participants),c["default"].addReducer("participants",i["default"],e||[])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/participants"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:participants",initializer:r,before:"store"})},{"../../index":275,"../../reducers/participants":322,"../../services/store":348}],304:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=null;e=l["default"].has("THREAD")&&l["default"].get("THREAD").poll?(0,s.hydrate)(l["default"].get("THREAD").poll):{isBusy:!1},c["default"].addReducer("poll",i["default"],e)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/poll"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:poll",initializer:r,before:"store"})},{"../../index":275,"../../reducers/poll":323,"../../services/store":348}],305:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=null;e=l["default"].has("POSTS")?(0,s.hydrate)(l["default"].get("POSTS")):{isLoaded:!1,isBusy:!1},c["default"].addReducer("posts",i["default"],e)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/posts"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:posts",initializer:r,before:"store"})},{"../../index":275,"../../reducers/posts":325,"../../services/store":348}],306:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=null;l["default"].has("PROFILE_DETAILS")&&(e=l["default"].get("PROFILE_DETAILS")),c["default"].addReducer("profile-details",i["default"],e||{})}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/profile-details"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:profile-details",initializer:r,before:"store"})},{"../../index":275,"../../reducers/profile-details":326,"../../services/store":348}],307:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){l["default"].has("PROFILE")&&u["default"].dispatch((0,s.hydrate)(l["default"].get("PROFILE")))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/profile"),i=e("../../services/store"),u=n(i);l["default"].addInitializer({name:"reducer:profile-hydrate",initializer:r,after:"store"})},{"../../index":275,"../../reducers/profile":327,"../../services/store":348}],308:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("profile",i["default"],{})}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/profile"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:profile",initializer:r,before:"store"})},{"../../index":275,"../../reducers/profile":327,"../../services/store":348}],309:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{
+"default":e}}function r(){c["default"].addReducer("search",i["default"],Object.assign({},s.initialState,{providers:l["default"].get("SEARCH_PROVIDERS")||[]}))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../.."),l=n(o),s=e("../../reducers/search"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:search",initializer:r,before:"store"})},{"../..":275,"../../reducers/search":328,"../../services/store":348}],310:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("selection",i["default"],[])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/selection"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:selection",initializer:r,before:"store"})},{"../../index":275,"../../reducers/selection":329,"../../services/store":348}],311:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("snackbar",i["default"],s.initialState)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/snackbar"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:snackbar",initializer:r,before:"store"})},{"../../index":275,"../../reducers/snackbar":330,"../../services/store":348}],312:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=null;e=l["default"].has("THREAD")?(0,s.hydrate)(l["default"].get("THREAD")):{isBusy:!1},c["default"].addReducer("thread",i["default"],e)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/thread"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:thread",initializer:r,before:"store"})},{"../../index":275,"../../reducers/thread":331,"../../services/store":348}],313:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("threads",i["default"],[])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/threads"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:threads",initializer:r,before:"store"})},{"../../index":275,"../../reducers/threads":332,"../../services/store":348}],314:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("tick",i["default"],s.initialState)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/tick"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:tick",initializer:r,before:"store"})},{"../../index":275,"../../reducers/tick":333,"../../services/store":348}],315:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("username-history",i["default"],[])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/username-history"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:username-history",initializer:r,before:"store"})},{"../../index":275,"../../reducers/username-history":334,"../../services/store":348}],316:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("users",i["default"],[])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../../index"),l=n(o),s=e("../../reducers/users"),i=n(s),u=e("../../services/store"),c=n(u);l["default"].addInitializer({name:"reducer:users",initializer:r,before:"store"})},{"../../index":275,"../../reducers/users":335,"../../services/store":348}],317:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){i["default"].init(c["default"])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/snackbar"),i=n(s),u=e("../services/store"),c=n(u);l["default"].addInitializer({name:"snackbar",initializer:r,after:"store"})},{"../index":275,"../services/snackbar":347,"../services/store":348}],318:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){i["default"].init()}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/store"),i=n(s);l["default"].addInitializer({name:"store",initializer:r,before:"_end"})},{"../index":275,"../services/store":348}],319:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){window.setInterval(function(){u["default"].dispatch((0,s.doTick)())},c)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../reducers/tick"),i=e("../services/store"),u=n(i),c=5e4;l["default"].addInitializer({name:"tick-start",initializer:r,after:"store"})},{"../index":275,"../reducers/tick":333,"../services/store":348}],320:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].init(i["default"])}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=r;var o=e("../index"),l=n(o),s=e("../services/include"),i=n(s),u=e("../services/zxcvbn"),c=n(u);l["default"].addInitializer({name:"zxcvbn",initializer:r})},{"../index":275,"../services/include":339,"../services/zxcvbn":349}],321:[function(e,t,a){"use strict";function n(e){return{type:u,patch:e}}function r(e){return{type:c,user:e}}function o(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return{type:d,soft:e}}function l(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case u:var a=Object.assign({},e);return a.user=Object.assign({},e.user,t.patch),a;case c:return Object.assign({},e,{signedIn:t.user});case d:return Object.assign({},e,{isAuthenticated:!1,isAnonymous:!0,signedOut:!t.soft});case s.UPDATE_AVATAR:if(e.isAuthenticated&&e.user.id===t.userId){var n=Object.assign({},e);return n.user=Object.assign({},e.user,{avatars:t.avatars}),n}return e;case s.UPDATE_USERNAME:if(e.isAuthenticated&&e.user.id===t.userId){var r=Object.assign({},e);return r.user=Object.assign({},e.user,{username:t.username,slug:t.slug}),r}return e;default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.SIGN_OUT=a.SIGN_IN=a.PATCH_USER=a.initialState=void 0,a.patch=n,a.signIn=r,a.signOut=o,a["default"]=l;var s=e("./users"),i=a.initialState={signedIn:!1,signedOut:!1},u=a.PATCH_USER="PATCH_USER",c=a.SIGN_IN="SIGN_IN",d=a.SIGN_OUT="SIGN_OUT"},{"./users":335}],322:[function(e,t,a){"use strict";function n(e){return{type:o,state:e}}function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case o:return t.state;default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.replace=n,a["default"]=r;var o=a.REPLACE_PARTICIPANTS="REPLACE_PARTICIPANTS"},{}],323:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=!1;for(var a in e.choices){var n=e.choices[a];if(n.selected){t=!0;break}}return Object.assign({},e,{posted_on:(0,f["default"])(e.posted_on),hasSelectedChoices:t,endsOn:e.length?(0,f["default"])(e.posted_on).add(e.length,"days"):null,isBusy:!1})}function o(){return{type:p}}function l(){return{type:m}}function s(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return{type:b,state:t?e:r(e)}}function i(e){return{type:v,data:e}}function u(){return{type:h}}function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case p:return Object.assign({},e,{isBusy:!0});case m:return Object.assign({},e,{isBusy:!1});case h:return{isBusy:!1};case b:return t.state;case v:return Object.assign({},e,t.data);default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.UPDATE_POLL=a.REPLACE_POLL=a.REMOVE_POLL=a.RELEASE_POLL=a.BUSY_POLL=void 0,a.hydrate=r,a.busy=o,a.release=l,a.replace=s,a.update=i,a.remove=u,a["default"]=c;var d=e("moment"),f=n(d),p=a.BUSY_POLL="BUSY_POLL",m=a.RELEASE_POLL="RELEASE_POLL",h=a.REMOVE_POLL="REMOVE_POLL",b=a.REPLACE_POLL="REPLACE_POLL",v=a.UPDATE_POLL="UPDATE_POLL"},{moment:"moment"}],324:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return Object.assign({},e,{posted_on:(0,u["default"])(e.posted_on),updated_on:(0,u["default"])(e.updated_on),hidden_on:(0,u["default"])(e.hidden_on),attachments:e.attachments?e.attachments.map(o):null,poster:e.poster?(0,c.hydrateUser)(e.poster):null,isSelected:!1,isBusy:!1,isDeleted:!1})}function o(e){return Object.assign({},e,{uploaded_on:(0,u["default"])(e.uploaded_on)})}function l(e,t){return{type:d,post:e,patch:t}}function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case d:return e.id==t.post.id?Object.assign({},e,t.patch):e;default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.PATCH_POST=void 0,a.hydrate=r,a.hydrateAttachment=o,a.patch=l,a["default"]=s;var i=e("moment"),u=n(i),c=e("./users"),d=a.PATCH_POST="PATCH_POST"},{"./users":335,moment:"moment"}],325:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return{type:v,post:e}}function o(e){return{type:y,post:e}}function l(){return{type:g}}function s(e){return Object.assign({},e,{results:e.results.map(m.hydrate),isLoaded:!0,isBusy:!1,isSelected:!1})}function i(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return{type:_,state:t?e:s(e)}}function u(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return{type:b,state:t?e:s(e)}}function c(){return{type:E}}function d(e){return{type:w,update:e}}function f(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,a=function(){switch(t.type){case v:var a=e.results.map(function(e){return e.id==t.post.id?Object.assign({},e,{isSelected:!0}):e});return{v:Object.assign({},e,{results:a})};case y:var n=e.results.map(function(e){return e.id==t.post.id?Object.assign({},e,{isSelected:!1}):e});return{v:Object.assign({},e,{results:n})};case g:var r=e.results.map(function(e){return Object.assign({},e,{isSelected:!1})});return{v:Object.assign({},e,{results:r})};case b:var o=e.results.slice(),l=e.results.map(function(e){return e.id});return t.state.results.map(function(e){l.indexOf(e.id)===-1&&o.push(e)}),{v:Object.assign({},t.state,{results:o})};case _:return{v:t.state};case E:return{v:Object.assign({},e,{isLoaded:!1})};case w:return{v:Object.assign({},e,t.update)};case m.PATCH_POST:var s=e.results.map(function(e){return(0,h["default"])(e,t)});return{v:Object.assign({},e,{results:s})};default:return{v:e}}}();if("object"===("undefined"==typeof a?"undefined":p(a)))return a.v}Object.defineProperty(a,"__esModule",{value:!0}),a.UPDATE_POSTS=a.UNLOAD_POSTS=a.LOAD_POSTS=a.DESELECT_POSTS=a.DESELECT_POST=a.SELECT_POST=a.APPEND_POSTS=void 0;var p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};a.select=r,a.deselect=o,a.deselectAll=l,a.hydrate=s,a.load=i,a.append=u,a.unload=c,a.update=d,a["default"]=f;var m=e("./post"),h=n(m),b=a.APPEND_POSTS="APPEND_POSTS",v=a.SELECT_POST="SELECT_POST",y=a.DESELECT_POST="DESELECT_POST",g=a.DESELECT_POSTS="DESELECT_POSTS",_=a.LOAD_POSTS="LOAD_POSTS",E=a.UNLOAD_POSTS="UNLOAD_POSTS",w=a.UPDATE_POSTS="UPDATE_POSTS"},{"./post":324}],326:[function(e,t,a){"use strict";function n(e){return{type:o,newState:e}}function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case o:return t.newState;default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.load=n,a["default"]=r;var o=a.LOAD_DETAILS="LOAD_DETAILS"},{}],327:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return{type:c,profile:e}}function o(e){return{type:d,patch:e}}function l(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case c:return Object.assign({},t.profile,{joined_on:(0,i["default"])(t.profile.joined_on),status:(0,u.hydrateStatus)(t.profile.status)});case d:return Object.assign({},e,t.patch);case u.UPDATE_AVATAR:return e.id===t.userId?Object.assign({},e,{avatars:t.avatars}):e;case u.UPDATE_USERNAME:return e.id===t.userId?Object.assign({},e,{username:t.username,slug:t.slug}):e;default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.PATCH_PROFILE=a.HYDRATE_PROFILE=void 0,a.hydrate=r,a.patch=o,a["default"]=l;var s=e("moment"),i=n(s),u=e("./users"),c=a.HYDRATE_PROFILE="HYDRATE_PROFILE",d=a.PATCH_PROFILE="PATCH_PROFILE"},{"./users":335,moment:"moment"}],328:[function(e,t,a){"use strict";function n(e){return{type:s,state:{isLoading:!1,providers:e}}}function r(e){return{type:i,update:e}}function o(e){return{type:u,provider:e}}function l(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case s:return t.state;case i:return Object.assign({},e,t.update);case u:return Object.assign({},e,{providers:e.providers.map(function(e){return e.id===t.provider.id?t.provider:e})});default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.replace=n,a.update=r,a.updateProvider=o,a["default"]=l;var s=a.REPLACE_SEARCH="REPLACE_SEARCH",i=a.UPDATE_SEARCH="UPDATE_SEARCH",u=a.UPDATE_SEARCH_PROVIDER="UPDATE_SEARCH_PROVIDER";a.initialState={isLoading:!1,query:"",providers:[]}},{}],329:[function(e,t,a){"use strict";function n(e){return{type:i,items:e}}function r(){return{type:u}}function o(e){return{type:c,item:e}}function l(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case i:return t.items;case u:return[];case c:return(0,s.toggle)(e,t.item);default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.SELECT_ITEM=a.SELECT_NONE=a.SELECT_ALL=void 0,a.all=n,a.none=r,a.item=o,a["default"]=l;var s=e("../utils/sets"),i=a.SELECT_ALL="SELECT_ALL",u=a.SELECT_NONE="SELECT_NONE",c=a.SELECT_ITEM="SELECT_ITEM"},{"../utils/sets":362}],330:[function(e,t,a){"use strict";function n(e,t){return{type:s,message:e,messageType:t}}function r(){return{type:i}}function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return t.type===s?{type:t.messageType,message:t.message,isVisible:!0}:t.type===i?Object.assign({},e,{isVisible:!1}):e}Object.defineProperty(a,"__esModule",{value:!0}),a.showSnackbar=n,a.hideSnackbar=r,a["default"]=o;var l=a.initialState={type:"info",message:"",isVisible:!1},s=a.SHOW_SNACKBAR="SHOW_SNACKBAR",i=a.HIDE_SNACKBAR="HIDE_SNACKBAR"},{}],331:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return Object.assign({},e,{started_on:(0,f["default"])(e.started_on),last_post_on:(0,f["default"])(e.last_post_on),isBusy:!1})}function o(){return{type:m}}function l(){return{type:h}}function s(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return{type:b,state:t?e:r(e)}}function i(e){return{type:v,data:e}}function u(e){return{type:y,data:e}}function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case m:return Object.assign({},e,{isBusy:!0});case h:return Object.assign({},e,{isBusy:!1});case p.REMOVE_POLL:return Object.assign({},e,{poll:null});case p.REPLACE_POLL:return Object.assign({},e,{poll:t.state});case b:return t.state;case v:return Object.assign({},e,t.data);case y:var a=Object.assign({},e.acl,t.data);return Object.assign({},e,{acl:a});default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.UPDATE_THREAD_ACL=a.UPDATE_THREAD=a.REPLACE_THREAD=a.RELEASE_THREAD=a.BUSY_THREAD=void 0,a.hydrate=r,a.busy=o,a.release=l,a.replace=s,a.update=i,a.updateAcl=u,a["default"]=c;var d=e("moment"),f=n(d),p=e("./poll"),m=a.BUSY_THREAD="BUSY_THREAD",h=a.RELEASE_THREAD="RELEASE_THREAD",b=a.REPLACE_THREAD="REPLACE_THREAD",v=a.UPDATE_THREAD="UPDATE_THREAD",y=a.UPDATE_THREAD_ACL="UPDATE_THREAD_ACL"},{"./poll":323,moment:"moment"}],332:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){return{type:y,items:e,sorting:t}}function o(e){return{type:g,thread:e}}function l(e,t){return{type:_,category:e,categoriesMap:t}}function s(e){return{type:E,items:e}}function i(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return{type:w,thread:e,patch:t,sorting:a}}function u(e,t){return{type:O,categoriesMap:e,category:t}}function c(e){return{type:k,sorting:e}}function d(e){var t=[];return x.forEach(function(a){e[a]&&t.push(a)}),t}function f(e){return Object.assign({},e,{started_on:(0,h["default"])(e.started_on),last_post_on:(0,h["default"])(e.last_post_on),moderation:d(e.acl)})}function p(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case y:var a=(0,v["default"])(t.items.map(f),e);return a.sort(t.sorting);case g:return e.filter(function(e){return e.id!==t.thread.id});case _:return e.filter(function(e){var a=t.categoriesMap[e.category];return a.lft>=t.category.lft&&a.rght<=t.category.rght||2==e.weight});case E:return t.items.map(f);case w:var n=e.map(function(e){return e.id===t.thread.id?Object.assign({},e,t.patch):e});return t.sorting?n.sort(t.sorting):n;case O:return e.map(function(e){var a=t.categoriesMap[e.category];return a.lft>=t.category.lft&&a.rght<=t.category.rght?Object.assign({},e,{is_read:!0}):e});case k:return e.sort(t.sorting);default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.MODERATION_PERMISSIONS=a.SORT_THREADS=a.READ_THREADS=a.PATCH_THREAD=a.HYDRATE_THREADS=a.FILTER_THREADS=a.DELETE_THREAD=a.APPEND_THREADS=void 0,a.append=r,a.deleteThread=o,a.filterThreads=l,a.hydrate=s,a.patch=i,a.read=u,a.sort=c,a.getThreadModerationOptions=d,a.hydrateThread=f,a["default"]=p;var m=e("moment"),h=n(m),b=e("../utils/concat-unique"),v=n(b),y=a.APPEND_THREADS="APPEND_THREADS",g=a.DELETE_THREAD="DELETE_THREAD",_=a.FILTER_THREADS="FILTER_THREADS",E=a.HYDRATE_THREADS="HYDRATE_THREADS",w=a.PATCH_THREAD="PATCH_THREAD",O=a.READ_THREADS="READ_THREADS",k=a.SORT_THREADS="SORT_THREADS",x=a.MODERATION_PERMISSIONS=["can_announce","can_approve","can_close","can_hide","can_move","can_merge","can_pin","can_review"]},{"../utils/concat-unique":352,moment:"moment"}],333:[function(e,t,a){"use strict";function n(){return{type:l}}function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return t.type===l?Object.assign({},e,{tick:e.tick+1}):e}Object.defineProperty(a,"__esModule",{value:!0}),a.doTick=n,a["default"]=r;var o=a.initialState={tick:0},l=a.TICK="TICK"},{}],334:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,a){return{type:m,change:e,user:t,changedBy:a}}function o(e){return{type:h,items:e}}function l(e){return{type:b,items:e}}function s(e){return Object.assign({},e,{changed_on:(0,c["default"])(e.changed_on)})}function i(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case m:var a=e.slice();return a.unshift({id:Math.floor(Date.now()/1e3),changed_by:t.changedBy,changed_by_username:t.changedBy.username,changed_on:(0,c["default"])(),new_username:t.change.username,old_username:t.user.username}),a;case h:return(0,p["default"])(e,t.items.map(s));case b:return t.items.map(s);case d.UPDATE_AVATAR:return e.map(function(e){return e=Object.assign({},e),e.changed_by&&e.changed_by.id===t.userId&&(e.changed_by=Object.assign({},e.changed_by,{avatars:t.avatars})),e});case d.UPDATE_USERNAME:return e.map(function(e){return e=Object.assign({},e),e.changed_by&&e.changed_by.id===t.userId&&(e.changed_by=Object.assign({},e.changed_by,{username:t.username,slug:t.slug})),Object.assign({},e)});default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.HYDRATE_HISTORY=a.APPEND_HISTORY=a.ADD_NAME_CHANGE=void 0,a.addNameChange=r,a.append=o,a.hydrate=l,a.hydrateNamechange=s,a["default"]=i;var u=e("moment"),c=n(u),d=e("./users"),f=e("../utils/concat-unique"),p=n(f),m=a.ADD_NAME_CHANGE="ADD_NAME_CHANGE",h=a.APPEND_HISTORY="APPEND_HISTORY",b=a.HYDRATE_HISTORY="HYDRATE_HISTORY"},{"../utils/concat-unique":352,"./users":335,moment:"moment"}],335:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return{type:h,items:e}}function o(e){return{type:b,items:e}}function l(e){return e?Object.assign({},e,{last_click:e.last_click?(0,f["default"])(e.last_click):null,banned_until:e.banned_until?(0,f["default"])(e.banned_until):null}):null}function s(e){return Object.assign({},e,{joined_on:(0,f["default"])(e.joined_on),status:l(e.status)})}function i(e,t){return{type:v,userId:e.id,avatars:t}}function u(e,t,a){return{type:y,userId:e.id,username:t,slug:a}}function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(t.type){case h:return(0,m["default"])(e,t.items.map(s));case b:return t.items.map(s);case v:return e.map(function(e){return e=Object.assign({},e),e.id===t.userId&&(e.avatars=t.avatars),e});default:return e}}Object.defineProperty(a,"__esModule",{value:!0}),a.UPDATE_USERNAME=a.UPDATE_AVATAR=a.HYDRATE_USERS=a.APPEND_USERS=void 0,a.append=r,a.hydrate=o,a.hydrateStatus=l,a.hydrateUser=s,a.updateAvatar=i,a.updateUsername=u,a["default"]=c;var d=e("moment"),f=n(d),p=e("../utils/concat-unique"),m=n(p),h=a.APPEND_USERS="APPEND_USERS",b=a.HYDRATE_USERS="HYDRATE_USERS",v=a.UPDATE_AVATAR="UPDATE_AVATAR",y=a.UPDATE_USERNAME="UPDATE_USERNAME"},{"../utils/concat-unique":352,moment:"moment"}],336:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),l=a.Ajax=function(){function e(){n(this,e),this._cookieName=null,this._csrfToken=null,this._locks={}}return o(e,[{key:"init",value:function(e){this._cookieName=e}},{key:"getCsrfToken",value:function(){if(document.cookie.indexOf(this._cookieName)!==-1){var e=new RegExp(this._cookieName+"=([^;]*)"),t=document.cookie.match(e)[0];return t?t.split("=")[1]:null}return null}},{key:"request",value:function(e,t,a){var n=this;return new Promise(function(r,o){var l={url:t,method:e,headers:{"X-CSRFToken":n.getCsrfToken()},data:a?JSON.stringify(a):null,contentType:"application/json; charset=utf-8",dataType:"json",success:function(e){r(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,0===t.status&&(t.detail=gettext("Lost connection with application.")),404===t.status&&(t.detail&&"NOT FOUND"!==t.detail||(t.detail=gettext("Action link is invalid."))),500!==t.status||t.detail||(t.detail=gettext("Unknown error has occured.")),t.statusText=e.statusText,o(t)}};$.ajax(l)})}},{key:"get",value:function(e,t,a){var n=this;if(t&&(e+="?"+$.param(t)),!a)return this.request("GET",e);var o=function(){var t=n;return n._locks[a]&&(n._locks[a].url=e),n._locks[a]&&n._locks[a].waiter?{v:{then:function(){}}}:n._locks[a]&&n._locks[a].wait?(n._locks[a].waiter=!0,{v:new Promise(function(n,r){var o=function l(e){t._locks[a].wait?window.setTimeout(function(){l(e)},300):t._locks[a].url!==e?l(t._locks[a].url):(t._locks[a].waiter=!1,t.request("GET",t._locks[a].url).then(function(r){t._locks[a].url===e?n(r):(t._locks[a].waiter=!0,l(t._locks[a].url))},function(n){t._locks[a].url===e?r(n):(t._locks[a].waiter=!0,l(t._locks[a].url))}))};window.setTimeout(function(){o(e)},300)})}):(n._locks[a]={url:e,wait:!0,waiter:!1},{v:new Promise(function(n,r){t.request("GET",e).then(function(r){t._locks[a].wait=!1,t._locks[a].url===e&&n(r)},function(n){t._locks[a].wait=!1,t._locks[a].url===e&&r(n)})})})}();return"object"===("undefined"==typeof o?"undefined":r(o))?o.v:void 0}},{key:"post",value:function(e,t){return this.request("POST",e,t)}},{key:"patch",value:function(e,t){return this.request("PATCH",e,t)}},{key:"put",value:function(e,t){return this.request("PUT",e,t)}},{key:"delete",value:function(e,t){return this.request("DELETE",e,t)}},{key:"upload",value:function(e,t,a){var n=this;return new Promise(function(r,o){var l={url:e,method:"POST",headers:{"X-CSRFToken":n.getCsrfToken()},data:t,contentType:!1,processData:!1,xhr:function s(){var s=new window.XMLHttpRequest;return s.upload.addEventListener("progress",function(e){e.lengthComputable&&a(Math.round(e.loaded/e.total*100))},!1),s},success:function(e){r(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,0===t.status&&(t.detail=gettext("Lost connection with application.")),413!==t.status||t.detail||(t.detail=gettext("Upload was rejected by server as too large.")),404===t.status&&(t.detail&&"NOT FOUND"!==t.detail||(t.detail=gettext("Action link is invalid."))),500!==t.status||t.detail||(t.detail=gettext("Unknown error has occured.")),t.statusText=e.statusText,o(t)}};$.ajax(l)})}}]),e}();a["default"]=new l},{}],337:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0}),a.Auth=void 0;var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=e("../reducers/auth"),l=a.Auth=function(){function e(){n(this,e)}return r(e,[{key:"init",value:function(e,t,a){this._store=e,this._local=t,this._modal=a,this.syncSession(),this.watchState()}},{key:"syncSession",value:function(){var e=this._store.getState().auth;e.isAuthenticated?this._local.set("auth",{isAuthenticated:!0,username:e.user.username}):this._local.set("auth",{isAuthenticated:!1})}},{key:"watchState",value:function(){var e=this;this._local.watch("auth",function(t){t.isAuthenticated?e._store.dispatch((0,o.signIn)({username:t.username})):e._store.dispatch((0,o.signOut)())}),this._modal.hide()}},{key:"signIn",value:function(e){this._store.dispatch((0,o.signIn)(e)),this._local.set("auth",{isAuthenticated:!0,username:e.username}),this._modal.hide()}},{key:"signOut",value:function(){this._store.dispatch((0,o.signOut)()),this._local.set("auth",{isAuthenticated:!1}),this._modal.hide()}},{key:"softSignOut",value:function(){this._store.dispatch((0,o.signOut)(!0)),this._local.set("auth",{isAuthenticated:!1}),this._modal.hide()}}]),e}();a["default"]=new l},{"../reducers/auth":321}],338:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0}),a.Captcha=a.ReCaptcha=a.ReCaptchaComponent=a.QACaptcha=a.NoCaptcha=a.BaseCaptcha=void 0;var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../components/form-group"),d=n(c),f=a.BaseCaptcha=function(){function e(){l(this,e)}return s(e,[{key:"init",value:function(e,t,a,n){this._context=e,this._ajax=t,this._include=a,this._snackbar=n}}]),e}(),p=a.NoCaptcha=function(e){function t(){return l(this,t),r(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return o(t,e),s(t,[{key:"load",value:function(){return new Promise(function(e){e()})}},{key:"validator",value:function(){return null}},{key:"component",value:function(){return null}}]),t}(f),m=a.QACaptcha=function(e){function t(){return l(this,t),r(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return o(t,e),s(t,[{key:"load",value:function(){var e=this;return new Promise(function(t,a){e._ajax.get(e._context.get("CAPTCHA_API")).then(function(a){e.question=a.question,e.helpText=a.help_text,t()},function(){e._snackbar.error(gettext("Failed to load CAPTCHA.")),a()})})}},{key:"validator",value:function(){return[]}},{key:"component",value:function(e){return u["default"].createElement(d["default"],{label:this.question,"for":"id_captcha",labelClass:e.labelClass||"",controlClass:e.controlClass||"",validation:e.form.state.errors.captcha,helpText:this.helpText||null},u["default"].createElement("input",{"aria-describedby":"id_captcha_status",className:"form-control",disabled:e.form.state.isLoading,id:"id_captcha",onChange:e.form.bindInput("captcha"),type:"text",value:e.form.state.captcha}))}}]),t}(f),h=a.ReCaptchaComponent=function(e){function t(){return l(this,t),r(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return o(t,e),s(t,[{key:"componentDidMount",value:function(){var e=this;grecaptcha.render("recaptcha",{sitekey:this.props.siteKey,callback:function(t){e.props.binding({target:{value:t}})}})}},{key:"render",value:function(){return u["default"].createElement("div",{id:"recaptcha"})}}]),t}(u["default"].Component),b=a.ReCaptcha=function(e){function t(){return l(this,t),r(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return o(t,e),s(t,[{key:"load",value:function(){return this._include.include("https://www.google.com/recaptcha/api.js",!0),new Promise(function(e){var t=function a(){"undefined"==typeof grecaptcha?window.setTimeout(function(){a()},200):e()};t()})}},{key:"validator",value:function(){return[]}},{key:"component",value:function(e){return u["default"].createElement(d["default"],{label:gettext("Please solve the quick test"),"for":"id_captcha",labelClass:e.labelClass||"",controlClass:e.controlClass||"",validation:e.form.state.errors.captcha,helpText:gettext("This test helps us prevent automated spam registrations on our site.")},u["default"].createElement(h,{binding:e.form.bindInput("captcha"),siteKey:this._context.get("SETTINGS").recaptcha_site_key}))}}]),t}(f),v=a.Captcha=function(){function e(){l(this,e)}return s(e,[{key:"init",value:function(e,t,a,n){switch(e.get("SETTINGS").captcha_type){case"no":this._captcha=new p;break;case"qa":this._captcha=new m;break;case"re":this._captcha=new b}this._captcha.init(e,t,a,n);
+}},{key:"load",value:function(){return this._captcha.load()}},{key:"validator",value:function(){return this._captcha.validator()}},{key:"component",value:function(e){return this._captcha.component(e)}}]),e}();a["default"]=new v},{"../components/form-group":51,react:"react"}],339:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=a.Include=function(){function e(){n(this,e)}return r(e,[{key:"init",value:function(e){this._staticUrl=e,this._included=[]}},{key:"include",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._included.indexOf(e)===-1&&(this._included.push(e),this._include(e,t))}},{key:"_include",value:function(e,t){$.ajax({url:(t?"":this._staticUrl)+e,cache:!0,dataType:"script"})}}]),e}();a["default"]=new o},{}],340:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=window.localStorage,l=a.LocalStorage=function(){function e(){n(this,e)}return r(e,[{key:"init",value:function(e){var t=this;this._prefix=e,this._watchers=[],window.addEventListener("storage",function(e){var a=JSON.parse(e.newValue);t._watchers.forEach(function(t){t.key===e.key&&e.oldValue!==e.newValue&&t.callback(a)})})}},{key:"set",value:function(e,t){o.setItem(this._prefix+e,JSON.stringify(t))}},{key:"get",value:function(e){var t=o.getItem(this._prefix+e);return t?JSON.parse(t):null}},{key:"watch",value:function(e,t){this._watchers.push({key:this._prefix+e,callback:t})}}]),e}();a["default"]=new l},{}],341:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0}),a.MobileNavbarDropdown=void 0;var o=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),l=e("../utils/mount-component"),s=n(l),i=a.MobileNavbarDropdown=function(){function e(){r(this,e)}return o(e,[{key:"init",value:function(e){this._element=e,this._component=null}},{key:"show",value:function(e){this._component===e?this.hide():(this._component=e,(0,s["default"])(e,this._element.id),$(this._element).addClass("open"))}},{key:"showConnected",value:function(e,t){this._component===e?this.hide():(this._component=e,(0,s["default"])(t,this._element.id,!0),$(this._element).addClass("open"))}},{key:"hide",value:function(){$(this._element).removeClass("open"),this._component=null}}]),e}();a["default"]=new i},{"../utils/mount-component":357}],342:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0}),a.Modal=void 0;var o=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),l=e("react-dom"),s=n(l),i=e("../utils/mount-component"),u=n(i),c=a.Modal=function(){function e(){r(this,e)}return o(e,[{key:"init",value:function(e){var t=this;this._element=e,this._modal=$(e).modal({show:!1}),this._modal.on("hidden.bs.modal",function(){s["default"].unmountComponentAtNode(t._element)})}},{key:"show",value:function(e){(0,u["default"])(e,this._element.id),this._modal.modal("show")}},{key:"hide",value:function(){this._modal.modal("hide")}}]),e}();a["default"]=new c},{"../utils/mount-component":357,"react-dom":"react-dom"}],343:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e){var t=o(e),a=l(t);if(!a)return null;var n=0;if(t.indexOf("?")>0){var r=t.substr(t.indexOf("?")+1),s=r.split("&").filter(function(e){return"t="===e.substr(0,2)})[0];if(s){var i=s.substr(2).split("m");"s"===i[0].substr(-1)?n+=parseInt(i[0].substr(0,i[0].length-1)):(n+=60*parseInt(i[0]),i[1]&&"s"===i[1].substr(-1)&&(n+=parseInt(i[1].substr(0,i[1].length-1))))}}return{start:n,video:a}}function o(e){var t=e;return"https://"===e.substr(0,8)?t=t.substr(8):"http://"===e.substr(0,7)&&(t=t.substr(7)),"www."===t.substr(0,4)&&(t=t.substr(4)),t}function l(e){if(e.indexOf("youtu")===-1)return null;var t=e.match(i);return t?t[1]:null}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.parseYoutubeUrl=r,a.cleanUrl=o,a.getVideoIdFromUrl=l;var i=new RegExp("^.*(?:(?:youtu.be/|v/|vi/|u/w/|embed/)|(?:(?:watch)??v(?:i)?=|&v(?:i)?=))([^#&?]*).*"),u=a.OneBox=function(){function e(){var t=this;n(this,e),this.render=function(e){e&&(t.highlightCode(e),t.embedYoutubePlayers(e))},this._youtube={}}return s(e,[{key:"highlightCode",value:function(e){for(var t=e.querySelectorAll("pre>code"),a=0;a<t.length;a++){var n=t[a];hljs.highlightBlock(n)}}},{key:"embedYoutubePlayers",value:function(e){for(var t=e.querySelectorAll("p>a"),a=0;a<t.length;a++){var n=t[a],o=n.parentNode,l=1===o.childNodes.length;this._youtube[n.href]||(this._youtube[n.href]=r(n.href));var s=this._youtube[n.href];l&&s&&s.data!==!1&&this.swapYoutubePlayer(n,s)}}},{key:"swapYoutubePlayer",value:function(e,t){var a="https://www.youtube.com/embed/";a+=t.video,a+="?rel=0",t.start&&(a+="&start="+t.start);var n=$('<iframe class="embed-responsive-item" src="'+a+'" allowfullscreen></iframe>');$(e).replaceWith(n),n.wrap('<div class="embed-responsive embed-responsive-16by9"></div>')}}]),e}();a["default"]=new u},{}],344:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=a.PageTitle=function(){function e(){n(this,e)}return r(e,[{key:"init",value:function(e,t){this._indexTitle=e,this._forumName=t}},{key:"set",value:function(e){if(!e)return void(document.title=this._indexTitle||this._forumName);"string"==typeof e&&(e={title:e});var t=e.title;if(e.page>1){var a=interpolate(gettext("page: %(page)s"),{page:e.page},!0);t+=" ("+a+")"}e.parent&&(t+=" | "+e.parent),document.title=t+" | "+this._forumName}}]),e}();a["default"]=new o},{}],345:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=a.Polls=function(){function e(){n(this,e)}return r(e,[{key:"init",value:function(e,t){this._ajax=e,this._snackbar=t,this._polls={}}},{key:"start",value:function(e){var t=this;this.stop(e.poll);var a=function n(){t._polls[e.poll]=e,t._ajax.get(e.url,e.data||null).then(function(a){t._polls[e.poll]._stopped||(e.update(a),t._polls[e.poll].timeout=window.setTimeout(n,e.frequency))},function(a){t._polls[e.poll]._stopped||(e.error?e.error(a):t._snackbar.apiError(a))})};e.delayed?this._polls[e.poll]={timeout:window.setTimeout(a,e.frequency)}:a()}},{key:"stop",value:function(e){this._polls[e]&&(window.clearTimeout(this._polls[e].timeout),this._polls[e]._stopped=!0)}}]),e}();a["default"]=new o},{}],346:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0}),a.Posting=void 0;var o=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),l=e("react"),s=n(l),i=e("react-dom"),u=n(i),c=e("../components/poll"),d=e("../components/posting"),f=n(d),p=e("../utils/mount-component"),m=n(p),h=a.Posting=function(){function e(){var t=this;r(this,e),this.close=function(){t._isOpen&&!t._isClosing&&(t._isClosing=!0,t._placeholder.removeClass("slide-in"),window.setTimeout(function(){u["default"].unmountComponentAtNode(document.getElementById("posting-mount")),t._isClosing=!1,t._isOpen=!1},300))}}return o(e,[{key:"init",value:function(e,t,a){this._ajax=e,this._snackbar=t,this._placeholder=$(a),this._mode=null,this._isOpen=!1,this._isClosing=!1}},{key:"open",value:function(e){if(this._isOpen===!1)this._mode=e.mode,this._isOpen=e.submit,this._realOpen(e);else if(this._isOpen!==e.submit){var t=gettext("You are already working on other message. Do you want to discard it?");"POLL"==this._mode&&(t=gettext("You are already working on a poll. Do you want to discard it?"));var a=confirm(t);a&&(this._mode=e.mode,this._isOpen=e.submit,this._realOpen(e))}else"REPLY"==this._mode&&"REPLY"==e.mode&&this._realOpen(e)}},{key:"_realOpen",value:function(e){"POLL"==e.mode?(0,m["default"])(s["default"].createElement(c.PollForm,e),"posting-mount"):(0,m["default"])(s["default"].createElement(f["default"],e),"posting-mount"),this._placeholder.addClass("slide-in"),$("html, body").animate({scrollTop:this._placeholder.offset().top},1e3)}}]),e}();a["default"]=new h},{"../components/poll":84,"../components/posting":112,"../utils/mount-component":357,react:"react","react-dom":"react-dom"}],347:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0}),a.Snackbar=void 0;var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=e("../reducers/snackbar"),l=300,s=5e3,i=a.Snackbar=function(){function e(){n(this,e)}return r(e,[{key:"init",value:function(e){this._store=e,this._timeout=null}},{key:"alert",value:function(e,t){var a=this;this._timeout?(window.clearTimeout(this._timeout),this._store.dispatch((0,o.hideSnackbar)()),this._timeout=window.setTimeout(function(){a._timeout=null,a.alert(e,t)},l)):(this._store.dispatch((0,o.showSnackbar)(e,t)),this._timeout=window.setTimeout(function(){a._store.dispatch((0,o.hideSnackbar)()),a._timeout=null},s))}},{key:"info",value:function(e){this.alert(e,"info")}},{key:"success",value:function(e){this.alert(e,"success")}},{key:"warning",value:function(e){this.alert(e,"warning")}},{key:"error",value:function(e){this.alert(e,"error")}},{key:"apiError",value:function(e){var t=e.detail;t||(t=404===e.status?gettext("Action link is invalid."):gettext("Unknown error has occured.")),403===e.status&&"Permission denied"===t&&(t=gettext("You don't have permission to perform this action.")),this.error(t)}}]),e}();a["default"]=new i},{"../reducers/snackbar":330}],348:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0}),a.StoreWrapper=void 0;var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=e("redux"),l=a.StoreWrapper=function(){function e(){n(this,e),this._store=null,this._reducers={},this._initialState={}}return r(e,[{key:"addReducer",value:function(e,t,a){this._reducers[e]=t,this._initialState[e]=a}},{key:"init",value:function(){this._store=(0,o.createStore)((0,o.combineReducers)(this._reducers),this._initialState)}},{key:"getStore",value:function(){return this._store}},{key:"getState",value:function(){return this._store.getState()}},{key:"dispatch",value:function(e){return this._store.dispatch(e)}}]),e}();a["default"]=new l},{redux:"redux"}],349:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=a.Zxcvbn=function(){function e(){n(this,e)}return r(e,[{key:"init",value:function(e){this._include=e,this._isLoaded=!1}},{key:"scorePassword",value:function(e,t){return this._isLoaded?zxcvbn(e,t).score:0}},{key:"load",value:function(){return this._isLoaded?this._loadedPromise():(this._include.include("misago/js/zxcvbn.js"),this._loadingPromise())}},{key:"_loadingPromise",value:function(){var e=this;return new Promise(function(t,a){var n=function r(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;n+=1,n>200?a():"undefined"==typeof zxcvbn?window.setTimeout(function(){r(n)},200):(e._isLoaded=!0,t())};n()})}},{key:"_loadedPromise",value:function(){return new Promise(function(e){e()})}}]),e}();a["default"]=new o},{}],350:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e,t){if(u["default"].render(s["default"].createElement(c.Provider,{store:b["default"].getStore()},s["default"].createElement(y,{message:e.message,expires:e.expires_on?(0,o["default"])(e.expires_on):null})),document.getElementById("page-mount")),"undefined"==typeof t||t){var a=m["default"].get("SETTINGS").forum_name;document.title=gettext("You are banned")+" | "+a,window.history.pushState({},"",m["default"].get("BANNED_URL"))}};var r=e("moment"),o=n(r),l=e("react"),s=n(l),i=e("react-dom"),u=n(i),c=e("react-redux"),d=e("../components/banned-page"),f=n(d),p=e("../index"),m=n(p),h=e("../services/store"),b=n(h),v=function(e){return e.tick},y=(0,c.connect)(v)(f["default"])},{"../components/banned-page":4,"../index":275,"../services/store":348,moment:"moment",react:"react","react-dom":"react-dom","react-redux":"react-redux"}],351:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=[],r=[];if(e.forEach(function(e){r.push(e),r.length===t&&(n.push(r),r=[])}),a!==!1&&r.length>0&&r.length<t)for(var o=r.length;o<t;o++)r.push(a);return r.length&&n.push(r),n}},{}],352:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e,t){var a=[];return e.concat(t).filter(function(e){return a.indexOf(e.id)===-1&&(a.push(e.id),!0)})}},{}],353:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=function(){function e(t,a){n(this,e),this._callback=t,this._count=a}return r(e,[{key:"count",value:function(){this._count-=1,0===this._count&&this._callback()}}]),e}();a["default"]=o},{}],354:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return e.replace(/[&<>"']/g,function(e){return n[e]})};var n={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"}},{}],355:[function(e,t,a){"use strict";function n(e){return e.toFixed(1)}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return e>1073741824?n(e/1073741824)+" GB":e>1048576?n(e/1048576)+" MB":e>1024?n(e/1024)+" KB":n(e)+" B"},a.roundSize=n},{}],356:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return n.test($.trim(e))};var n=new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i")},{}],357:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e,t){var a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=document.getElementById(t),r=e.props?e:o["default"].createElement(e,null);n&&(a?s["default"].render(o["default"].createElement(i.Provider,{store:c["default"].getStore()},r),n):s["default"].render(r,n))};var r=e("react"),o=n(r),l=e("react-dom"),s=n(l),i=e("react-redux"),u=e("../services/store"),c=n(u)},{"../services/store":348,react:"react","react-dom":"react-dom","react-redux":"react-redux"}],358:[function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(a,"__esModule",{value:!0});var r=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),o=function(){function e(t){n(this,e),this.isOrdered=!1,this._items=t||[]}return r(e,[{key:"add",value:function(e,t,a){this._items.push({key:e,item:t,after:a?a.after||null:null,before:a?a.before||null:null})}},{key:"get",value:function(e,t){for(var a=0;a<this._items.length;a++)if(this._items[a].key===e)return this._items[a].item;return t}},{key:"has",value:function(e){return void 0!==this.get(e)}},{key:"values",value:function t(){for(var t=[],e=0;e<this._items.length;e++)t.push(this._items[e].item);return t}},{key:"order",value:function(e){return this.isOrdered||(this._items=this._order(this._items),this.isOrdered=!0),e||"undefined"==typeof e?this.values():this._items}},{key:"orderedValues",value:function(){return this.order(!0)}},{key:"_order",value:function(e){function t(e){var t=-1;r.indexOf(e.key)===-1&&(e.after?(t=r.indexOf(e.after),t!==-1&&(t+=1)):e.before&&(t=r.indexOf(e.before)),t!==-1&&(n.splice(t,0,e),r.splice(t,0,e.key)))}var a=[];e.forEach(function(e){a.push(e.key)});var n=[],r=[];e.forEach(function(e){e.after||e.before||(n.push(e),r.push(e.key))}),e.forEach(function(e){"_end"===e.before&&(n.push(e),r.push(e.key))});for(var o=200;o>0&&a.length!==r.length;)o-=1,e.forEach(t);return n}}]),e}();a["default"]=o},{}],359:[function(e,t,a){"use strict";function n(e,t){return Math.floor(Math.random()*(t-e+1))+e}function r(e,t){for(var a=new Array(n(e,t)),r=0;r<a.length;r++)a[r]=r;return a}Object.defineProperty(a,"__esModule",{value:!0}),a["int"]=n,a.range=r},{}],360:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(){window.scrollTo(0,0)}},{}],361:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t={component:e.component||null,childRoutes:[]};e.root?t.childRoutes=[{path:e.root,onEnter:function(t,a){a(null,e.paths[0].path)}}].concat(e.paths):t.childRoutes=e.paths,s["default"].render(o["default"].createElement(i.Provider,{store:d["default"].getStore()},o["default"].createElement(u.Router,{routes:t,history:u.browserHistory})),f)};var r=e("react"),o=n(r),l=e("react-dom"),s=n(l),i=e("react-redux"),u=e("react-router"),c=e("../services/store"),d=n(c),f=document.getElementById("page-mount")},{"../services/store":348,react:"react","react-dom":"react-dom","react-redux":"react-redux","react-router":"react-router"}],362:[function(e,t,a){"use strict";function n(e,t){if(e.indexOf(t)===-1){var a=e.slice();return a.push(t),a}return e}function r(e,t){return e.indexOf(t)>=0?e.filter(function(e){return e!==t}):e}function o(e,t){if(e.indexOf(t)===-1){var a=e.slice();return a.push(t),a}return e.filter(function(e){return e!==t})}Object.defineProperty(a,"__esModule",{value:!0}),a.push=n,a.remove=r,a.toggle=o},{}],363:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e,t){if(e=(e+"").toLowerCase(),t=(t+"").toLowerCase(),t.length<=0)return 0;for(var a=0,n=0,r=t.length;;){if(n=e.indexOf(t,n),!(n>=0))break;a+=1,n+=r}return a}},{}],364:[function(e,t,a){"use strict";function n(){return function(e){if(0===$.trim(e).length)return gettext("This field is required.")}}function r(e){return function(t){if(!d.test(t))return e||gettext("Enter a valid email address.")}}function o(e,t){return function(a){var n="",r=$.trim(a).length;if(r<e)return n=t?t(e,r):ngettext("Ensure this value has at least %(limit_value)s character (it has %(show_value)s).","Ensure this value has at least %(limit_value)s characters (it has %(show_value)s).",e),interpolate(n,{limit_value:e,show_value:r},!0)}}function l(e,t){return function(a){var n="",r=$.trim(a).length;if(r>e)return n=t?t(e,r):ngettext("Ensure this value has at most %(limit_value)s character (it has %(show_value)s).","Ensure this value has at most %(limit_value)s characters (it has %(show_value)s).",e),interpolate(n,{limit_value:e,show_value:r},!0)}}function s(e){var t=function(e){return ngettext("Username must be at least %(limit_value)s character long.","Username must be at least %(limit_value)s characters long.",e)};return o(e,t)}function i(e){var t=function(e){return ngettext("Username cannot be longer than %(limit_value)s character.","Username cannot be longer than %(limit_value)s characters.",e)};return l(e,t)}function u(){return function(e){if(!f.test($.trim(e)))return gettext("Username can only contain latin alphabet letters and digits.")}}function c(e){return function(t){var a=t.length;if(a<e){var n=ngettext("Valid password must be at least %(limit_value)s character long.","Valid password must be at least %(limit_value)s characters long.",e);return interpolate(n,{limit_value:e,show_value:a},!0)}}}Object.defineProperty(a,"__esModule",{value:!0}),a.required=n,a.email=r,a.minLength=o,a.maxLength=l,a.usernameMinLength=s,a.usernameMaxLength=i,a.usernameContent=u,a.passwordMinLength=c;var d=/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i,f=new RegExp("^[0-9a-z]+$","i")},{}]},{},[275,276,277,278,279,294,295,296,297,298,299,300,301,317,318,319,320,280,281,282,283,284,285,286,287,288,289,290,291,292,293,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316]);
 //# sourceMappingURL=misago.js.map

File diff suppressed because it is too large
+ 0 - 0
misago/static/misago/js/misago.js.map


+ 1 - 1
misago/threads/api/threadendpoints/delete.py

@@ -62,4 +62,4 @@ def clean_threads_ids(request):
         )
         raise PermissionDenied(message % {'limit': DELETE_LIMIT})
 
-    return set(threads_ids)
+    return sorted(set(threads_ids), reverse=True)

+ 8 - 9
misago/threads/api/threadendpoints/merge.py

@@ -2,6 +2,7 @@ from rest_framework.response import Response
 
 from django.core.exceptions import PermissionDenied
 from django.http import Http404
+from django.utils.six import text_type
 from django.utils.translation import ugettext as _
 from django.utils.translation import ungettext
 
@@ -10,7 +11,7 @@ from misago.categories import THREADS_ROOT_NAME
 from misago.threads.events import record_event
 from misago.threads.models import Thread
 from misago.threads.moderation import threads as moderation
-from misago.threads.permissions import can_reply_thread, can_see_thread
+from misago.threads.permissions import allow_merge_thread, can_reply_thread, can_see_thread
 from misago.threads.serializers import NewThreadSerializer, ThreadsListSerializer
 from misago.threads.threadtypes import trees_map
 from misago.threads.utils import get_thread_id_from_url
@@ -27,8 +28,7 @@ class MergeError(Exception):
 
 
 def thread_merge_endpoint(request, thread, viewmodel):
-    if not thread.acl['can_merge']:
-        raise PermissionDenied(_("You don't have permission to merge this thread with others."))
+    allow_merge_thread(request.user, thread)
 
     other_thread_id = get_thread_id_from_url(request, request.data.get('thread_url', None))
     if not other_thread_id:
@@ -38,12 +38,9 @@ def thread_merge_endpoint(request, thread, viewmodel):
 
     try:
         other_thread = viewmodel(request, other_thread_id).unwrap()
+        allow_merge_thread(request.user, other_thread, otherthread=True)
         if not can_reply_thread(request.user, other_thread):
             raise PermissionDenied(_("You can't merge this thread into thread you can't reply."))
-        if not other_thread.acl['can_merge']:
-            raise PermissionDenied(
-                _("You don't have permission to merge this thread with current one.")
-            )
     except PermissionDenied as e:
         return Response({'detail': e.args[0]}, status=400)
     except Http404:
@@ -103,11 +100,13 @@ def threads_merge_endpoint(request):
 
     invalid_threads = []
     for thread in threads:
-        if not thread.acl['can_merge']:
+        try:
+            allow_merge_thread(request.user, thread)
+        except PermissionDenied as e:
             invalid_threads.append({
                 'id': thread.pk,
                 'title': thread.title,
-                'errors': [_("You don't have permission to merge this thread with others.")]
+                'errors': [text_type(e)]
             })
 
     if invalid_threads:

+ 19 - 21
misago/threads/api/threadendpoints/patch.py

@@ -14,8 +14,9 @@ from misago.threads.moderation import threads as moderation
 from misago.threads.participants import (
     add_participant, change_owner, make_participants_aware, remove_participant)
 from misago.threads.permissions import (
-    allow_add_participant, allow_add_participants, allow_change_owner, allow_edit_thread,
-    allow_hide_thread, allow_unhide_thread, allow_remove_participant, allow_start_thread)
+    allow_add_participant, allow_add_participants, allow_approve_thread, allow_change_owner, allow_edit_thread,
+    allow_pin_thread, allow_hide_thread, allow_move_thread, allow_remove_participant, allow_start_thread,
+    allow_unhide_thread)
 from misago.threads.serializers import ThreadParticipantSerializer
 from misago.threads.validators import validate_title
 
@@ -58,17 +59,16 @@ thread_patch_dispatcher.replace('title', patch_title)
 
 
 def patch_weight(request, thread, value):
-    message = _("You don't have permission to change this thread's weight.")
-    if not thread.acl.get('can_pin'):
-        raise PermissionDenied(message)
-    elif thread.weight > thread.acl.get('can_pin'):
-        raise PermissionDenied(message)
+    allow_pin_thread(request.user, thread)
+
+    if not thread.acl.get('can_pin_globally') and thread.weight == 2:
+        raise PermissionDenied(_("You can't change globally pinned threads weights in this category."))
 
     if value == 2:
-        if thread.acl.get('can_pin') == 2:
+        if thread.acl.get('can_pin_globally'):
             moderation.pin_thread_globally(request, thread)
         else:
-            raise PermissionDenied(_("You don't have permission to pin this thread globally."))
+            raise PermissionDenied(_("You can't pin threads globally in this category."))
     elif value == 1:
         moderation.pin_thread_locally(request, thread)
     elif value == 0:
@@ -81,8 +81,7 @@ thread_patch_dispatcher.replace('weight', patch_weight)
 
 
 def patch_move(request, thread, value):
-    if not thread.acl.get('can_move'):
-        raise PermissionDenied(_("You don't have permission to move this thread."))
+    allow_move_thread(request.user, thread)
 
     category_pk = get_int_or_404(value)
     new_category = get_object_or_404(
@@ -116,18 +115,17 @@ thread_patch_dispatcher.replace('flatten-categories', patch_flatten_categories)
 
 
 def patch_is_unapproved(request, thread, value):
-    if thread.acl.get('can_approve'):
-        if value:
-            raise PermissionDenied(_("Content approval can't be reversed."))
+    allow_approve_thread(request.user, thread)
 
-        moderation.approve_thread(request, thread)
+    if value:
+        raise PermissionDenied(_("Content approval can't be reversed."))
 
-        return {
-            'is_unapproved': thread.is_unapproved,
-            'has_unapproved_posts': thread.has_unapproved_posts,
-        }
-    else:
-        raise PermissionDenied(_("You don't have permission to approve this thread."))
+    moderation.approve_thread(request, thread)
+
+    return {
+        'is_unapproved': thread.is_unapproved,
+        'has_unapproved_posts': thread.has_unapproved_posts,
+    }
 
 
 thread_patch_dispatcher.replace('is-unapproved', patch_is_unapproved)

+ 120 - 18
misago/threads/permissions/threads.py

@@ -24,12 +24,20 @@ __all__ = [
     'can_reply_thread',
     'allow_edit_thread',
     'can_edit_thread',
+    'allow_pin_thread',
+    'can_pin_thread',
     'allow_unhide_thread',
     'can_unhide_thread',
     'allow_hide_thread',
     'can_hide_thread',
     'allow_delete_thread',
     'can_delete_thread',
+    'allow_move_thread',
+    'can_move_thread',
+    'allow_merge_thread',
+    'can_merge_thread',
+    'allow_approve_thread',
+    'can_approve_thread',
     'allow_see_post',
     'can_see_post',
     'allow_edit_post',
@@ -442,19 +450,23 @@ def add_acl_to_thread(user, thread):
     thread.acl.update({
         'can_reply': can_reply_thread(user, thread),
         'can_edit': can_edit_thread(user, thread),
+        'can_pin': can_pin_thread(user, thread),
+        'can_pin_globally': False,
         'can_hide': can_hide_thread(user, thread),
         'can_unhide': can_unhide_thread(user, thread),
         'can_delete': can_delete_thread(user, thread),
-        'can_pin': 0,
         'can_close': category_acl.get('can_close_threads', False),
-        'can_move': False,
-        'can_merge': False,
+        'can_move': can_move_thread(user, thread),
+        'can_merge': can_merge_thread(user, thread),
         'can_move_posts': False,
         'can_merge_posts': False,
-        'can_approve': False,
-        'can_see_reports': False,
+        'can_approve': can_approve_thread(user, thread),
+        'can_see_reports': category_acl.get('can_see_reports', False),
     })
 
+    if thread.acl['can_pin'] and category_acl.get('can_pin_threads') == 2:
+        thread.acl['can_pin_globally'] = True
+
     if not category_acl.get('can_close_threads'):
         thread_is_protected = thread.is_closed or thread.category.is_closed
     else:
@@ -464,15 +476,8 @@ def add_acl_to_thread(user, thread):
         return
 
     thread.acl.update({
-        'can_pin': category_acl.get('can_pin_threads', 0),
-        'can_move': category_acl.get('can_move_threads', False),
-        'can_merge': category_acl.get('can_merge_threads', False),
-
         'can_move_posts': category_acl.get('can_move_posts', False),
         'can_merge_posts': category_acl.get('can_merge_posts', False),
-
-        'can_approve': category_acl.get('can_approve_content', False),
-        'can_see_reports': category_acl.get('can_see_reports', False),
     })
 
 
@@ -559,7 +564,6 @@ def allow_start_thread(user, target):
 
     category_acl = user.acl_cache['categories'].get(
         target.pk, {
-            'can_close_threads': False,
             'can_start_threads': False,
         }
     )
@@ -582,7 +586,6 @@ def allow_reply_thread(user, target):
 
     category_acl = user.acl_cache['categories'].get(
         target.category_id, {
-            'can_close_threads': False,
             'can_reply_threads': False,
         }
     )
@@ -605,7 +608,9 @@ def allow_edit_thread(user, target):
         raise PermissionDenied(_("You have to sign in to edit threads."))
 
     category_acl = user.acl_cache['categories'].get(
-        target.category_id, {'can_edit_threads': False}
+        target.category_id, {
+            'can_edit_threads': False,
+        }
     )
 
     if not category_acl['can_edit_threads']:
@@ -627,20 +632,42 @@ def allow_edit_thread(user, target):
         if target.category.is_closed:
             raise PermissionDenied(_("This category is closed. You can't edit threads in it."))
         if target.is_closed:
-            raise PermissionDenied(_("You can't edit closed threads in this category."))
+            raise PermissionDenied(_("This thread is closed. You can't edit it."))
 
 
 can_edit_thread = return_boolean(allow_edit_thread)
 
 
+def allow_pin_thread(user, target):
+    if user.is_anonymous:
+        raise PermissionDenied(_("You have to sign in to change threads weights."))
+
+    category_acl = user.acl_cache['categories'].get(
+        target.category_id, {
+            'can_pin_threads': 0,
+        }
+    )
+
+    if not category_acl['can_pin_threads']:
+        raise PermissionDenied(_("You can't change threads weights in this category."))
+
+    if not category_acl['can_close_threads']:
+        if target.category.is_closed:
+            raise PermissionDenied(_("This category is closed. You can't change threads weights in it."))
+        if target.is_closed:
+            raise PermissionDenied(_("This thread is closed. You can't change its weight."))
+
+
+can_pin_thread = return_boolean(allow_pin_thread)
+
+
 def allow_unhide_thread(user, target):
     if user.is_anonymous:
         raise PermissionDenied(_("You have to sign in to hide threads."))
 
     category_acl = user.acl_cache['categories'].get(
         target.category_id, {
-            'can_hide_threads': 0,
-            'can_hide_own_threads': 0,
+            'can_close_threads': False,
         }
     )
 
@@ -726,6 +753,81 @@ def allow_delete_thread(user, target):
 can_delete_thread = return_boolean(allow_delete_thread)
 
 
+def allow_move_thread(user, target):
+    if user.is_anonymous:
+        raise PermissionDenied(_("You have to sign in to move threads."))
+
+    category_acl = user.acl_cache['categories'].get(
+        target.category_id, {
+            'can_move_threads': 0,
+        }
+    )
+
+    if not category_acl['can_move_threads']:
+        raise PermissionDenied(_("You can't move threads in this category."))
+
+    if not category_acl['can_close_threads']:
+        if target.category.is_closed:
+            raise PermissionDenied(_("This category is closed. You can't move it's threads."))
+        if target.is_closed:
+            raise PermissionDenied(_("This thread is closed. You can't move it."))
+
+
+can_move_thread = return_boolean(allow_move_thread)
+
+
+def allow_merge_thread(user, target, otherthread=False):
+    if user.is_anonymous:
+        raise PermissionDenied(_("You have to sign in to merge threads."))
+
+    category_acl = user.acl_cache['categories'].get(
+        target.category_id, {
+            'can_merge_threads': 0,
+        }
+    )
+
+    if not category_acl['can_merge_threads']:
+        if otherthread:
+            raise PermissionDenied(_("Other thread can't be merged with."))
+        raise PermissionDenied(_("You can't merge threads in this category."))
+
+    if not category_acl['can_close_threads']:
+        if target.category.is_closed:
+            if otherthread:
+                raise PermissionDenied(_("Other thread's category is closed. You can't merge with it."))
+            raise PermissionDenied(_("This category is closed. You can't merge it's threads."))
+        if target.is_closed:
+            if otherthread:
+                raise PermissionDenied(_("Other thread is closed and can't be merged with."))
+            raise PermissionDenied(_("This thread is closed. You can't merge it with other threads."))
+
+
+can_merge_thread = return_boolean(allow_merge_thread)
+
+
+def allow_approve_thread(user, target):
+    if user.is_anonymous:
+        raise PermissionDenied(_("You have to sign in to approve threads."))
+
+    category_acl = user.acl_cache['categories'].get(
+        target.category_id, {
+            'can_approve_content': 0,
+        }
+    )
+
+    if not category_acl['can_approve_content']:
+        raise PermissionDenied(_("You can't approve threads in this category."))
+
+    if not category_acl['can_close_threads']:
+        if target.category.is_closed:
+            raise PermissionDenied(_("This category is closed. You can't approve threads in it."))
+        if target.is_closed:
+            raise PermissionDenied(_("This thread is closed. You can't approve it."))
+
+
+can_approve_thread = return_boolean(allow_approve_thread)
+
+
 def allow_see_post(user, target):
     category_acl = user.acl_cache['categories'].get(
         target.category_id, {

+ 109 - 4
misago/threads/tests/test_thread_merge_api.py

@@ -41,6 +41,7 @@ class ThreadMergeApiTests(ThreadsApiTestCase):
             'can_hide_posts': 0,
             'can_hide_own_posts': 0,
             'can_merge_threads': 0,
+            'can_close_threads': 0,
         })
 
         if acl:
@@ -67,7 +68,7 @@ class ThreadMergeApiTests(ThreadsApiTestCase):
         response = self.client.post(self.api_link)
         self.assertContains(
             response,
-            "You don't have permission to merge this thread with others.",
+            "You can't merge threads in this category.",
             status_code=403
         )
 
@@ -145,15 +146,119 @@ class ThreadMergeApiTests(ThreadsApiTestCase):
                 'thread_url': other_thread.get_absolute_url(),
             }
         )
+
+        self.assertContains(
+            response, "Other thread can't be merged with.", status_code=400
+        )
+
+    def test_thread_category_is_closed(self):
+        """api validates if thread's category is open"""
+        self.override_acl({'can_merge_threads': 1})
+
+        self.override_other_acl({
+            'can_merge_threads': 1,
+            'can_reply_threads': 0,
+            'can_close_threads': 0,
+        })
+
+        other_thread = testutils.post_thread(self.category_b)
+
+        self.category.is_closed = True
+        self.category.save()
+
+        response = self.client.post(
+            self.api_link, {
+                'thread_url': other_thread.get_absolute_url(),
+            }
+        )
+        self.assertContains(
+            response,
+            "This category is closed. You can't merge it's threads.",
+            status_code=403,
+        )
+
+    def test_thread_is_closed(self):
+        """api validates if thread is open"""
+        self.override_acl({'can_merge_threads': 1})
+
+        self.override_other_acl({
+            'can_merge_threads': 1,
+            'can_reply_threads': 0,
+            'can_close_threads': 0,
+        })
+
+        other_thread = testutils.post_thread(self.category_b)
+
+        self.thread.is_closed = True
+        self.thread.save()
+
+        response = self.client.post(
+            self.api_link, {
+                'thread_url': other_thread.get_absolute_url(),
+            }
+        )
         self.assertContains(
-            response, "You don't have permission to merge this thread", status_code=400
+            response,
+            "This thread is closed. You can't merge it with other threads.",
+            status_code=403,
+        )
+
+    def test_other_thread_category_is_closed(self):
+        """api validates if other thread's category is open"""
+        self.override_acl({'can_merge_threads': 1})
+
+        self.override_other_acl({
+            'can_merge_threads': 1,
+            'can_reply_threads': 0,
+            'can_close_threads': 0,
+        })
+
+        other_thread = testutils.post_thread(self.category_b)
+
+        self.category_b.is_closed = True
+        self.category_b.save()
+
+        response = self.client.post(
+            self.api_link, {
+                'thread_url': other_thread.get_absolute_url(),
+            }
+        )
+        self.assertContains(
+            response, "Other thread's category is closed. You can't merge with it.", status_code=400
+        )
+
+    def test_other_thread_is_closed(self):
+        """api validates if other thread is open"""
+        self.override_acl({'can_merge_threads': 1})
+
+        self.override_other_acl({
+            'can_merge_threads': 1,
+            'can_reply_threads': 0,
+            'can_close_threads': 0,
+        })
+
+        other_thread = testutils.post_thread(self.category_b)
+
+        other_thread.is_closed = True
+        other_thread.save()
+
+        response = self.client.post(
+            self.api_link, {
+                'thread_url': other_thread.get_absolute_url(),
+            }
+        )
+        self.assertContains(
+            response, "Other thread is closed and can't be merged with", status_code=400
         )
 
     def test_other_thread_isnt_replyable(self):
-        """api validates if other thread can be replied, which is condition for merg"""
+        """api validates if other thread can be replied, which is condition for merge"""
         self.override_acl({'can_merge_threads': 1})
 
-        self.override_other_acl({'can_reply_threads': 0})
+        self.override_other_acl({
+            'can_merge_threads': 1,
+            'can_reply_threads': 0,
+        })
 
         other_thread = testutils.post_thread(self.category_b)
 

+ 256 - 5
misago/threads/tests/test_thread_patch_api.py

@@ -86,6 +86,58 @@ class ThreadChangeTitleApiTests(ThreadPatchApiTestCase):
         response_json = response.json()
         self.assertEqual(response_json['detail'][0], "You can't edit threads in this category.")
 
+    def test_change_thread_title_closed_category_no_permission(self):
+        """api test permission to edit thread title in closed category"""
+        self.override_acl({
+            'can_edit_threads': 2,
+            'can_close_threads': 0
+        })
+
+        self.category.is_closed = True
+        self.category.save()
+
+        response = self.patch(
+            self.api_link, [
+                {
+                    'op': 'replace',
+                    'path': 'title',
+                    'value': "Lorem ipsum change!",
+                },
+            ]
+        )
+        self.assertEqual(response.status_code, 400)
+
+        response_json = response.json()
+        self.assertEqual(
+            response_json['detail'][0], "This category is closed. You can't edit threads in it."
+        )
+
+    def test_change_thread_title_closed_thread_no_permission(self):
+        """api test permission to edit closed thread title"""
+        self.override_acl({
+            'can_edit_threads': 2,
+            'can_close_threads': 0
+        })
+
+        self.thread.is_closed = True
+        self.thread.save()
+
+        response = self.patch(
+            self.api_link, [
+                {
+                    'op': 'replace',
+                    'path': 'title',
+                    'value': "Lorem ipsum change!",
+                },
+            ]
+        )
+        self.assertEqual(response.status_code, 400)
+
+        response_json = response.json()
+        self.assertEqual(
+            response_json['detail'][0], "This thread is closed. You can't edit it."
+        )
+
     def test_change_thread_title_after_edit_time(self):
         """api cleans, validates and rejects too short title"""
         self.override_acl({'thread_edit_time': 1, 'can_edit_threads': 1})
@@ -154,6 +206,58 @@ class ThreadPinGloballyApiTests(ThreadPatchApiTestCase):
         thread_json = self.get_thread_json()
         self.assertEqual(thread_json['weight'], 2)
 
+    def test_pin_thread_closed_category_no_permission(self):
+        """api checks if category is closed"""
+        self.override_acl({
+            'can_pin_threads': 2,
+            'can_close_threads': 0,
+        })
+
+        self.category.is_closed = True
+        self.category.save()
+
+        response = self.patch(
+            self.api_link, [
+                {
+                    'op': 'replace',
+                    'path': 'weight',
+                    'value': 2,
+                },
+            ]
+        )
+        self.assertEqual(response.status_code, 400)
+
+        response_json = response.json()
+        self.assertEqual(
+            response_json['detail'][0], "This category is closed. You can't change threads weights in it."
+        )
+
+    def test_pin_thread_closed_no_permission(self):
+        """api checks if thread is closed"""
+        self.override_acl({
+            'can_pin_threads': 2,
+            'can_close_threads': 0,
+        })
+
+        self.thread.is_closed = True
+        self.thread.save()
+
+        response = self.patch(
+            self.api_link, [
+                {
+                    'op': 'replace',
+                    'path': 'weight',
+                    'value': 2,
+                },
+            ]
+        )
+        self.assertEqual(response.status_code, 400)
+
+        response_json = response.json()
+        self.assertEqual(
+            response_json['detail'][0], "This thread is closed. You can't change its weight."
+        )
+
     def test_unpin_thread(self):
         """api makes it possible to unpin thread"""
         self.thread.weight = 2
@@ -198,7 +302,7 @@ class ThreadPinGloballyApiTests(ThreadPatchApiTestCase):
 
         response_json = response.json()
         self.assertEqual(
-            response_json['detail'][0], "You don't have permission to pin this thread globally."
+            response_json['detail'][0], "You can't pin threads globally in this category."
         )
 
         thread_json = self.get_thread_json()
@@ -227,7 +331,7 @@ class ThreadPinGloballyApiTests(ThreadPatchApiTestCase):
 
         response_json = response.json()
         self.assertEqual(
-            response_json['detail'][0], "You don't have permission to change this thread's weight."
+            response_json['detail'][0], "You can't change globally pinned threads weights in this category."
         )
 
         thread_json = self.get_thread_json()
@@ -300,7 +404,7 @@ class ThreadPinLocallyApiTests(ThreadPatchApiTestCase):
 
         response_json = response.json()
         self.assertEqual(
-            response_json['detail'][0], "You don't have permission to change this thread's weight."
+            response_json['detail'][0], "You can't change threads weights in this category."
         )
 
         thread_json = self.get_thread_json()
@@ -329,7 +433,7 @@ class ThreadPinLocallyApiTests(ThreadPatchApiTestCase):
 
         response_json = response.json()
         self.assertEqual(
-            response_json['detail'][0], "You don't have permission to change this thread's weight."
+            response_json['detail'][0], "You can't change threads weights in this category."
         )
 
         thread_json = self.get_thread_json()
@@ -462,7 +566,7 @@ class ThreadMoveApiTests(ThreadPatchApiTestCase):
 
         response_json = response.json()
         self.assertEqual(
-            response_json['detail'][0], "You don't have permission to move this thread."
+            response_json['detail'][0], "You can't move threads in this category."
         )
 
         self.override_other_acl({})
@@ -470,6 +574,60 @@ class ThreadMoveApiTests(ThreadPatchApiTestCase):
         thread_json = self.get_thread_json()
         self.assertEqual(thread_json['category']['id'], self.category.pk)
 
+    def test_move_thread_closed_category_no_permission(self):
+        """api move thread from closed category with no permission fails"""
+        self.override_acl({
+            'can_move_threads': True,
+            'can_close_threads': False,
+        })
+        self.override_other_acl({})
+
+        self.category.is_closed = True
+        self.category.save()
+
+        response = self.patch(
+            self.api_link, [
+                {
+                    'op': 'replace',
+                    'path': 'category',
+                    'value': self.category_b.pk,
+                },
+            ]
+        )
+        self.assertEqual(response.status_code, 400)
+
+        response_json = response.json()
+        self.assertEqual(
+            response_json['detail'][0], "This category is closed. You can't move it's threads."
+        )
+
+    def test_move_closed_thread_no_permission(self):
+        """api move closed thread with no permission fails"""
+        self.override_acl({
+            'can_move_threads': True,
+            'can_close_threads': False,
+        })
+        self.override_other_acl({})
+
+        self.thread.is_closed = True
+        self.thread.save()
+
+        response = self.patch(
+            self.api_link, [
+                {
+                    'op': 'replace',
+                    'path': 'category',
+                    'value': self.category_b.pk,
+                },
+            ]
+        )
+        self.assertEqual(response.status_code, 400)
+
+        response_json = response.json()
+        self.assertEqual(
+            response_json['detail'][0], "This thread is closed. You can't move it."
+        )
+
     def test_move_thread_no_category_access(self):
         """api move thread to category with no access fails"""
         self.override_acl({'can_move_threads': True})
@@ -521,6 +679,33 @@ class ThreadMoveApiTests(ThreadPatchApiTestCase):
         thread_json = self.get_thread_json()
         self.assertEqual(thread_json['category']['id'], self.category.pk)
 
+    def test_move_thread_no_category_start_threads(self):
+        """api move thread to category with no posting access fails"""
+        self.override_acl({'can_move_threads': True})
+        self.override_other_acl({'can_start_threads': False})
+
+        response = self.patch(
+            self.api_link, [
+                {
+                    'op': 'replace',
+                    'path': 'category',
+                    'value': self.category_b.pk,
+                },
+            ]
+        )
+        self.assertEqual(response.status_code, 400)
+
+        response_json = response.json()
+        self.assertEqual(
+            response_json['detail'][0],
+            "You don't have permission to start new threads in this category."
+        )
+
+        self.override_other_acl({})
+
+        thread_json = self.get_thread_json()
+        self.assertEqual(thread_json['category']['id'], self.category.pk)
+
     def test_move_thread_same_category(self):
         """api move thread to category it's already in fails"""
         self.override_acl({'can_move_threads': True})
@@ -703,6 +888,72 @@ class ThreadApproveApiTests(ThreadPatchApiTestCase):
         self.assertFalse(thread.is_unapproved)
         self.assertFalse(thread.has_unapproved_posts)
 
+    def test_approve_thread_category_closed_no_permission(self):
+        """api checks permission for approving threads in closed categories"""
+        self.thread.first_post.is_unapproved = True
+        self.thread.first_post.save()
+
+        self.thread.synchronize()
+        self.thread.save()
+
+        self.assertTrue(self.thread.is_unapproved)
+        self.assertTrue(self.thread.has_unapproved_posts)
+
+        self.category.is_closed = True
+        self.category.save()
+
+        self.override_acl({
+            'can_approve_content': 1,
+            'can_close_threads': 0,
+        })
+
+        response = self.patch(
+            self.api_link, [
+                {
+                    'op': 'replace',
+                    'path': 'is-unapproved',
+                    'value': False,
+                },
+            ]
+        )
+        self.assertEqual(response.status_code, 400)
+
+        response_json = response.json()
+        self.assertEqual(response_json['detail'][0], "This category is closed. You can't approve threads in it.")
+
+    def test_approve_thread_closed_no_permission(self):
+        """api checks permission for approving posts in closed categories"""
+        self.thread.first_post.is_unapproved = True
+        self.thread.first_post.save()
+
+        self.thread.synchronize()
+        self.thread.save()
+
+        self.assertTrue(self.thread.is_unapproved)
+        self.assertTrue(self.thread.has_unapproved_posts)
+
+        self.thread.is_closed = True
+        self.thread.save()
+
+        self.override_acl({
+            'can_approve_content': 1,
+            'can_close_threads': 0,
+        })
+
+        response = self.patch(
+            self.api_link, [
+                {
+                    'op': 'replace',
+                    'path': 'is-unapproved',
+                    'value': False,
+                },
+            ]
+        )
+        self.assertEqual(response.status_code, 400)
+
+        response_json = response.json()
+        self.assertEqual(response_json['detail'][0], "This thread is closed. You can't approve it.")
+
     def test_unapprove_thread(self):
         """api returns permission error on approval removal"""
         self.override_acl({'can_approve_content': 1})

+ 1 - 0
misago/threads/tests/test_threads_api.py

@@ -37,6 +37,7 @@ class ThreadsApiTestCase(AuthenticatedUserTestCase):
             'can_hide_posts': 0,
             'can_hide_own_posts': 0,
             'can_merge_threads': 0,
+            'can_close_threads': 0,
         })
 
         if acl:

+ 1 - 1
misago/threads/tests/test_threads_bulkdelete_api.py

@@ -159,7 +159,7 @@ class ThreadsBulkDeleteApiTests(ThreadsApiTestCase):
                     'title': thread.title
                 },
                 'error': "This category is closed. You can't delete threads in it."
-            } for thread in self.threads
+            } for thread in sorted(self.threads, key=lambda i: i.pk, reverse=True)
         ])
 
     def test_delete_thread_closed_no_permission(self):

+ 52 - 4
misago/threads/tests/test_threads_merge_api.py

@@ -111,8 +111,6 @@ class ThreadsMergeApiTests(ThreadsApiTestCase):
 
     def test_merge_with_nonexisting_thread(self):
         """api validates if we are trying to merge with invalid thread"""
-        testutils.post_thread(category=self.category_b)
-
         response = self.client.post(
             self.api_link,
             json.dumps({
@@ -168,16 +166,66 @@ class ThreadsMergeApiTests(ThreadsApiTestCase):
                 {
                     'id': thread.pk,
                     'title': thread.title,
-                    'errors': ["You don't have permission to merge this thread with others."],
+                    'errors': ["You can't merge threads in this category."],
                 },
                 {
                     'id': self.thread.pk,
                     'title': self.thread.title,
-                    'errors': ["You don't have permission to merge this thread with others."],
+                    'errors': ["You can't merge threads in this category."],
                 },
             ]
         )
 
+    def test_thread_category_is_closed(self):
+        """api validates if thread's category is open"""
+        self.override_acl({
+            'can_merge_threads': 1,
+            'can_close_threads': 0,
+        })
+
+        other_thread = testutils.post_thread(self.category)
+
+        self.category.is_closed = True
+        self.category.save()
+
+        response = self.client.post(
+            self.api_link,
+            json.dumps({
+                'threads': [self.thread.id, other_thread.id],
+            }),
+            content_type="application/json",
+        )
+        self.assertContains(
+            response,
+            "This category is closed. You can't merge it's threads.",
+            status_code=403,
+        )
+
+    def test_thread_is_closed(self):
+        """api validates if thread is open"""
+        self.override_acl({
+            'can_merge_threads': 1,
+            'can_close_threads': 0,
+        })
+
+        other_thread = testutils.post_thread(self.category)
+
+        other_thread.is_closed = True
+        other_thread.save()
+
+        response = self.client.post(
+            self.api_link,
+            json.dumps({
+                'threads': [self.thread.id, other_thread.id],
+            }),
+            content_type="application/json",
+        )
+        self.assertContains(
+            response,
+            "This thread is closed. You can't merge it with other threads.",
+            status_code=403,
+        )
+
     def test_merge_too_many_threads(self):
         """api rejects too many threads to merge"""
         threads = []

Some files were not shown because too many files changed in this diff