Browse Source

small cleanup of thread and post serializers

Rafał Pitoń 9 years ago
parent
commit
59f78352da

+ 2 - 2
docs/developers/coding_style.rst

@@ -52,9 +52,9 @@ Serializers
 Defining serializers
 Defining serializers
 --------------------
 --------------------
 
 
-Model's default serializer should be named after its model, but with "Serializer" suffix, ergo serializer for "Thread" model should be named "ThreadSerializer". Default serializer should be only serializer defining serialization methods.
+Model's default serializer should be named after its model, but with "Serializer" suffix, ergo serializer for "Thread" model should be named "ThreadSerializer". Default serializer should be only serializer defining serialization methods for ``SerializerMethodField``.
 
 
-In case that model has more than one serializer, all serializers should inherit from default one and be named in a way describing it usage. For example serializer for "User" model used to serialize post's author should be named "PostPosterSerializer". This serializer should only define "Meta" class with "model" and "fields" attributes, inheriting serialization behaviour form default serializer.
+In case that model has more than one serializer, all additional serializers should be named in a way describing their usage. For example serializer for "Post" model used to serialize user's posts list could be named "FeedPostsSerializer". This serializer should only define "Meta" class with "model" and "fields" attributes, inheriting serialization behaviour form default serializer.
 
 
 
 
 Fields Order
 Fields Order

+ 4 - 4
frontend/src/components/threads-list/thread/details/full.js

@@ -12,7 +12,7 @@ export default class extends React.Component {
       /* jshint ignore:start */
       /* jshint ignore:start */
       return <li className="thread-new-posts"
       return <li className="thread-new-posts"
                  title={gettext("Go to first unread post")}>
                  title={gettext("Go to first unread post")}>
-        <a href={this.props.thread.new_post_url}>
+        <a href={this.props.thread.url.new_post}>
           <span className="material-icon">
           <span className="material-icon">
             comment
             comment
           </span>
           </span>
@@ -164,16 +164,16 @@ export default class extends React.Component {
 
 
   getLastReplyDate() {
   getLastReplyDate() {
     return interpolate(LAST_REPLY_URL, {
     return interpolate(LAST_REPLY_URL, {
-      url: escapeHtml(this.props.thread.last_post_url),
+      url: escapeHtml(this.props.thread.url.last_post),
       absolute: escapeHtml(this.props.thread.last_post_on.format('LLL')),
       absolute: escapeHtml(this.props.thread.last_post_on.format('LLL')),
       relative: escapeHtml(this.props.thread.last_post_on.fromNow())
       relative: escapeHtml(this.props.thread.last_post_on.fromNow())
     }, true);
     }, true);
   }
   }
 
 
   getLastPoster() {
   getLastPoster() {
-    if (this.props.thread.last_poster_url) {
+    if (this.props.thread.url.last_poster) {
       return interpolate(LAST_POSTER_URL, {
       return interpolate(LAST_POSTER_URL, {
-        url: escapeHtml(this.props.thread.last_poster_url),
+        url: escapeHtml(this.props.thread.url.last_poster),
         user: escapeHtml(this.props.thread.last_poster_name)
         user: escapeHtml(this.props.thread.last_poster_name)
       }, true);
       }, true);
     } else {
     } else {

+ 2 - 2
frontend/src/components/threads-list/thread/icon.js

@@ -27,9 +27,9 @@ export default class extends React.Component {
 
 
   getUrl() {
   getUrl() {
       if (this.props.thread.is_read) {
       if (this.props.thread.is_read) {
-        return this.props.thread.last_post_url;
+        return this.props.thread.url.last_post;
       } else {
       } else {
-        return this.props.thread.new_post_url;
+        return this.props.thread.url.new_post;
       }
       }
   }
   }
 
 

+ 1 - 1
frontend/src/components/threads-list/thread/ready.js

@@ -70,7 +70,7 @@ export default class extends React.Component {
 
 
       <div className="thread-main">
       <div className="thread-main">
 
 
-        <a href={this.props.thread.absolute_url} className="item-title thread-title">
+        <a href={this.props.thread.url.index} className="item-title thread-title">
           {this.props.thread.title}
           {this.props.thread.title}
         </a>
         </a>
 
 

+ 1 - 1
frontend/src/components/threads-list/thread/subscription/options.js

@@ -37,7 +37,7 @@ export default class extends React.Component {
       subscription: STATE_UPDATES[newState]
       subscription: STATE_UPDATES[newState]
     }));
     }));
 
 
-    ajax.patch(this.props.thread.api_url, [
+    ajax.patch(this.props.thread.api.index, [
       {op: 'replace', path: 'subscription', value: newState}
       {op: 'replace', path: 'subscription', value: newState}
     ]).then(() => {
     ]).then(() => {
       this.setState({
       this.setState({

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

@@ -31,7 +31,7 @@ export default class extends React.Component {
     this.props.threads.forEach((thread) => {
     this.props.threads.forEach((thread) => {
       this.props.freezeThread(thread.id);
       this.props.freezeThread(thread.id);
 
 
-      ajax.patch(thread.api_url, ops).then((data) => {
+      ajax.patch(thread.api.index, ops).then((data) => {
         this.props.updateThread(data);
         this.props.updateThread(data);
         countdown.count();
         countdown.count();
       }, (rejection) => {
       }, (rejection) => {
@@ -187,7 +187,7 @@ export default class extends React.Component {
     this.props.threads.forEach((thread) => {
     this.props.threads.forEach((thread) => {
       this.props.freezeThread(thread.id);
       this.props.freezeThread(thread.id);
 
 
-      ajax.delete(thread.api_url).then((data) => {
+      ajax.delete(thread.api.index).then((data) => {
         this.props.freezeThread(thread.id);
         this.props.freezeThread(thread.id);
         this.props.deleteThread(thread);
         this.props.deleteThread(thread);
         countdown.count();
         countdown.count();

+ 2 - 2
misago/static/misago/js/misago.js

@@ -4,8 +4,8 @@ return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("funct
 for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../utils/string-count"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.copy&&this.props.copy.length&&1===(0,f["default"])(this.props.copy,"<p")&&-1===this.props.copy.indexOf("<br")?"page-lead lead":"page-lead"}},{key:"render",value:function(){return this.props.copy&&this.props.copy.length?u["default"].createElement("div",{className:this.getClassName(),dangerouslySetInnerHTML:{__html:this.props.copy}}):null}}]),t}(u["default"].Component);r["default"]=d},{"../utils/string-count":187,react:"react"}],36:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./loader"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return u["default"].createElement("div",{className:"panel-body panel-body-loading"},u["default"].createElement(f["default"],{className:"loader loader-spaced"}))}}]),t}(u["default"].Component);r["default"]=d},{"./loader":22,react:"react"}],37:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getHelpText",value:function(){return this.props.helpText?u["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"panel-body panel-message-body"},u["default"].createElement("div",{className:"message-icon"},u["default"].createElement("span",{className:"material-icon"},this.props.icon||"info_outline")),u["default"].createElement("div",{className:"message-body"},u["default"].createElement("p",{className:"lead"},this.props.message),this.getHelpText()))}}]),t}(u["default"].Component);r["default"]=c},{react:"react"}],38:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0}),r.LABELS=r.STYLES=void 0;var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../services/zxcvbn"),f=a(c),d=r.STYLES=["progress-bar-danger","progress-bar-warning","progress-bar-warning","progress-bar-primary","progress-bar-success"],p=r.LABELS=[gettext("Entered password is very weak."),gettext("Entered password is weak."),gettext("Entered password is average."),gettext("Entered password is strong."),gettext("Entered password is very strong.")],h=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r._score=0,r._password=null,r._inputs=[],r}return s(t,e),i(t,[{key:"getScore",value:function(e,t){var r=this,a=!1;return e.trim()!==this._password&&(a=!0),t.length!==this._inputs.length?a=!0:t.map(function(e,t){e.trim()!==r._inputs[t]&&(a=!0)}),a&&(this._score=f["default"].scorePassword(e,t),this._password=e.trim(),this._inputs=t.map(function(e){return e.trim()})),this._score}},{key:"render",value:function(){var e=this.getScore(this.props.password,this.props.inputs);return u["default"].createElement("div",{className:"help-block password-strength"},u["default"].createElement("div",{className:"progress"},u["default"].createElement("div",{className:"progress-bar "+d[e],style:{width:20+20*e+"%"},role:"progress-bar","aria-valuenow":e,"aria-valuemin":"0","aria-valuemax":"4"},u["default"].createElement("span",{className:"sr-only"},p[e]))),u["default"].createElement("p",{className:"text-small"},p[e]))}}]),t}(u["default"].Component);r["default"]=h},{"../services/zxcvbn":174,react:"react"}],39:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("moment"),u=a(l),c=e("react"),f=a(c),d=e("../panel-loader"),p=a(d),h=e("../panel-message"),m=a(h),b=e("../../index"),y=a(b),g=e("../../services/polls"),v=a(g),_=e("../../services/page-title"),E=a(_),w=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.update=function(e){e.expires_on&&(e.expires_on=(0,u["default"])(e.expires_on)),r.setState({isLoaded:!0,error:null,ban:e})},r.error=function(e){r.setState({isLoaded:!0,error:e.detail,ban:null})},y["default"].has("PROFILE_BAN")?r.initWithPreloadedData(y["default"].pop("PROFILE_BAN")):r.initWithoutPreloadedData(),r.startPolling(e.profile.api_url.ban),r}return s(t,e),i(t,[{key:"initWithPreloadedData",value:function(e){e.expires_on&&(e.expires_on=(0,u["default"])(e.expires_on)),this.state={isLoaded:!0,ban:e}}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPolling",value:function(e){v["default"].start({poll:"ban-details",url:e,frequency:9e4,update:this.update,error:this.error})}},{key:"componentDidMount",value:function(){E["default"].set({title:gettext("Ban details"),parent:this.props.profile.username})}},{key:"componentWillUnmount",value:function(){v["default"].stop("ban-details")}},{key:"getUserMessage",value:function(){return this.state.ban.user_message?f["default"].createElement("div",{className:"panel-body ban-message ban-user-message"},f["default"].createElement("h4",null,gettext("User-shown ban message")),f["default"].createElement("div",{className:"lead",dangerouslySetInnerHTML:{__html:this.state.ban.user_message.html}})):null}},{key:"getStaffMessage",value:function(){return this.state.ban.staff_message?f["default"].createElement("div",{className:"panel-body ban-message ban-staff-message"},f["default"].createElement("h4",null,gettext("Team-shown ban message")),f["default"].createElement("div",{className:"lead",dangerouslySetInnerHTML:{__html:this.state.ban.staff_message.html}})):null}},{key:"getExpirationMessage",value:function(){if(this.state.ban.expires_on){if(this.state.ban.expires_on.isAfter((0,u["default"])())){var e=interpolate(gettext("This ban expires on %(expires_on)s."),{expires_on:this.state.ban.expires_on.format("LL, LT")},!0),t=interpolate(gettext("This ban expires %(expires_on)s."),{expires_on:this.state.ban.expires_on.fromNow()},!0);return f["default"].createElement("abbr",{title:e},t)}return gettext("This ban has expired.")}return interpolate(gettext("%(username)s's ban is permanent."),{username:this.props.profile.username},!0)}},{key:"getPanelBody",value:function(){return this.state.ban?Object.keys(this.state.ban).length?f["default"].createElement("div",null,this.getUserMessage(),this.getStaffMessage(),f["default"].createElement("div",{className:"panel-body ban-expires"},f["default"].createElement("h4",null,gettext("Ban expiration")),f["default"].createElement("p",{className:"lead"},this.getExpirationMessage()))):f["default"].createElement("div",null,f["default"].createElement(m["default"],{message:gettext("No ban is active at the moment.")})):this.state.error?f["default"].createElement("div",null,f["default"].createElement(m["default"],{icon:"error_outline",message:this.state.error})):f["default"].createElement("div",null,f["default"].createElement(p["default"],null))}},{key:"render",value:function(){return f["default"].createElement("div",{className:"profile-ban-details"},f["default"].createElement("div",{className:"panel panel-default"},f["default"].createElement("div",{className:"panel-heading"},f["default"].createElement("h3",{className:"panel-title"},gettext("Ban details"))),this.getPanelBody()))}}]),t}(f["default"].Component);r["default"]=w},{"../../index":119,"../../services/page-title":170,"../../services/polls":171,"../panel-loader":36,"../panel-message":37,moment:"moment",react:"react"}],40:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../button"),f=a(c),d=e("../../reducers/profile"),p=e("../../services/ajax"),h=a(p),m=e("../../services/snackbar"),b=a(m),y=e("../../services/store"),g=a(y),v=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.action=function(){r.setState({isLoading:!0}),r.props.profile.is_followed?g["default"].dispatch((0,d.patch)({is_followed:!1,followers:r.props.profile.followers-1})):g["default"].dispatch((0,d.patch)({is_followed:!0,followers:r.props.profile.followers+1})),h["default"].post(r.props.profile.api_url.follow).then(function(e){r.setState({isLoading:!1}),g["default"].dispatch((0,d.patch)(e))},function(e){r.setState({isLoading:!1}),b["default"].apiError(e)})},r.state={isLoading:!1},r}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.profile.is_followed?this.props.className+" btn-default btn-following":this.props.className+" btn-default btn-follow"}},{key:"getIcon",value:function(){return this.props.profile.is_followed?"favorite":"favorite_border"}},{key:"getLabel",value:function(){return this.props.profile.is_followed?gettext("Following"):gettext("Follow")}},{key:"render",value:function(){return u["default"].createElement(f["default"],{className:this.getClassName(),disabled:this.state.isLoading,onClick:this.action},u["default"].createElement("span",{className:"material-icon"},this.getIcon()),this.getLabel())}}]),t}(u["default"].Component);r["default"]=v},{"../../reducers/profile":156,"../../services/ajax":163,"../../services/snackbar":172,"../../services/store":173,"../button":4,react:"react"}],41:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=a(u),f=e("../button"),d=a(f),p=e("../search"),h=a(p),m=e("../users-list/root"),b=a(m),y=e("../../index"),g=a(y),v=e("../../reducers/users"),_=e("../../services/ajax"),E=a(_),w=e("../../services/snackbar"),O=a(w),k=e("../../services/store"),N=a(k),j=e("../../services/page-title"),x=a(j),P=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));return r.loadMore=function(){r.setState({isBusy:!0}),r.loadUsers(r.state.page+1,r.state.search)},r.search=function(e){r.setState({isLoaded:!1,isBusy:!0,search:e.target.value,count:0,more:0,page:1,pages:1}),r.loadUsers(1,e.target.value)},r.setSpecialProps(),g["default"].has(r.PRELOADED_DATA_KEY)?r.initWithPreloadedData(g["default"].pop(r.PRELOADED_DATA_KEY)):r.initWithoutPreloadedData(),r}return i(t,e),l(t,[{key:"setSpecialProps",value:function(){this.PRELOADED_DATA_KEY="PROFILE_FOLLOWERS",this.TITLE=gettext("Followers"),this.API_FILTER="followers"}},{key:"initWithPreloadedData",value:function(e){this.state={isLoaded:!0,isBusy:!1,search:"",count:e.count,more:e.more,page:e.page,pages:e.pages},N["default"].dispatch((0,v.hydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1,isBusy:!1,search:"",count:0,more:0,page:1,pages:1},this.loadUsers()}},{key:"loadUsers",value:function(){var e,t=this,r=arguments.length<=0||void 0===arguments[0]?1:arguments[0],a=arguments.length<=1||void 0===arguments[1]?null:arguments[1];E["default"].get(g["default"].get("USERS_API"),(e={},n(e,this.API_FILTER,this.props.profile.id),n(e,"name",a),n(e,"page",r||1),e),"user-"+this.API_FILTER).then(function(e){1===r?N["default"].dispatch((0,v.hydrate)(e.results)):N["default"].dispatch((0,v.append)(e.results)),t.setState({isLoaded:!0,isBusy:!1,count:e.count,more:e.more,page:e.page,pages:e.pages})},function(e){O["default"].apiError(e)})}},{key:"componentDidMount",value:function(){x["default"].set({title:this.TITLE,parent:this.props.profile.username})}},{key:"getLabel",value:function(){if(this.state.isLoaded){if(this.state.search){var e=ngettext("Found %(users)s user.","Found %(users)s users.",this.state.count);return interpolate(e,{users:this.state.count},!0)}if(this.props.profile.id===this.props.user.id){var t=ngettext("You have %(users)s follower.","You have %(users)s followers.",this.state.count);return interpolate(t,{users:this.state.count},!0)}var r=ngettext("%(username)s has %(users)s follower.","%(username)s has %(users)s followers.",this.state.count);return interpolate(r,{username:this.props.profile.username,users:this.state.count},!0)}return gettext("Loading...")}},{key:"getEmptyMessage",value:function(){return this.state.search?gettext("Search returned no users matching specified criteria."):this.props.user.id===this.props.profile.id?gettext("You have no followers."):interpolate(gettext("%(username)s has no followers."),{username:this.props.profile.username},!0)}},{key:"getMoreButton",value:function(){return this.state.more?c["default"].createElement("div",{className:"pager-more"},c["default"].createElement(d["default"],{loading:this.state.isBusy,onClick:this.loadMore},interpolate(gettext("Show more (%(more)s)"),{more:this.state.more},!0))):null}},{key:"getListBody",value:function(){return this.state.isLoaded&&0===this.state.count?c["default"].createElement("p",{className:"lead"},this.getEmptyMessage()):c["default"].createElement("div",null,c["default"].createElement(b["default"],{isLoaded:this.state.isLoaded,users:this.props.users,showRank:!0,cols:2}),this.getMoreButton())}},{key:"getClassName",value:function(){return"profile-"+this.API_FILTER}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement("nav",{className:"toolbar"},c["default"].createElement("h3",{className:"toolbar-left"},this.getLabel()),c["default"].createElement(h["default"],{className:"toolbar-right",value:this.state.search,onChange:this.search,placeholder:gettext("Search history...")})),this.getListBody())}}]),t}(c["default"].Component);r["default"]=P},{"../../index":119,"../../reducers/users":162,"../../services/ajax":163,"../../services/page-title":170,"../../services/snackbar":172,"../../services/store":173,"../button":4,"../search":56,"../users-list/root":102,react:"react"}],42:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=(a(l),e("./followers")),c=a(u),f=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"setSpecialProps",value:function(){this.PRELOADED_DATA_KEY="PROFILE_FOLLOWS",this.TITLE=gettext("Follows"),this.API_FILTER="follows"}},{key:"getLabel",value:function(){if(this.state.isLoaded){if(this.state.search){var e=ngettext("Found %(users)s user.","Found %(users)s users.",this.state.count);return interpolate(e,{users:this.state.count},!0)}if(this.props.profile.id===this.props.user.id){var t=ngettext("You are following %(users)s user.","You are following %(users)s users.",this.state.count);return interpolate(t,{users:this.state.count},!0)}var r=ngettext("%(username)s is following %(users)s user.","%(username)s is following %(users)s users.",this.state.count);return interpolate(r,{username:this.props.profile.username,users:this.state.count},!0)}return gettext("Loading...")}},{key:"getEmptyMessage",value:function(){return this.state.search?gettext("Search returned no users matching specified criteria."):this.props.user.id===this.props.profile.id?gettext("You are not following any users."):interpolate(gettext("%(username)s is not following any users."),{username:this.props.profile.username},!0)}}]),t}(c["default"]);r["default"]=f},{"./followers":41,react:"react"}],43:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../avatar"),f=a(c),d=e("../dropdown-toggle"),p=a(d),h=e("./follow-button"),m=a(h),b=e("./moderation/nav"),y=a(b),g=e("../user-status"),v=a(g),_=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getUserStatus",value:function(){return u["default"].createElement("li",{className:"user-status-display"},u["default"].createElement(v["default"],{user:this.props.profile,status:this.props.profile.status},u["default"].createElement(g.StatusIcon,{user:this.props.profile,status:this.props.profile.status}),u["default"].createElement(g.StatusLabel,{user:this.props.profile,status:this.props.profile.status,className:"status-label"})))}},{key:"getUserRank",value:function(){return this.props.profile.rank.is_tab?u["default"].createElement("li",{className:"user-rank"},u["default"].createElement("a",{href:this.props.profile.rank.absolute_url,className:"item-title"},this.props.profile.rank.name)):u["default"].createElement("li",{className:"user-rank"},u["default"].createElement("span",{className:"item-title"},this.props.profile.rank.name))}},{key:"getUserTitle",value:function(){return this.props.profile.title?u["default"].createElement("li",{className:"user-title"},this.props.profile.title):this.props.profile.rank.title?u["default"].createElement("li",{className:"user-title"},this.props.profile.rank.title):null}},{key:"getJoinedOn",value:function(){var e=interpolate(gettext("Joined on %(joined_on)s"),{joined_on:this.props.profile.joined_on.format("LL, LT")},!0),t=interpolate(gettext("Joined %(joined_on)s"),{joined_on:this.props.profile.joined_on.fromNow()},!0);return u["default"].createElement("li",{className:"user-joined-on"},u["default"].createElement("abbr",{title:e},t))}},{key:"getEmail",value:function(){return this.props.profile.email?u["default"].createElement("li",{className:"user-email"},u["default"].createElement("a",{href:"mailto:"+this.props.profile.email,className:"item-title"},this.props.profile.email)):null}},{key:"getFollowButton",value:function(){return this.props.profile.acl.can_follow?u["default"].createElement(m["default"],{className:"btn btn-aligned hidden-xs hidden-sm",profile:this.props.profile}):null}},{key:"getModerationButton",value:function(){return this.props.profile.acl.can_moderate?u["default"].createElement("div",{className:"btn-group btn-aligned hidden-xs hidden-sm"},u["default"].createElement("button",{className:"btn btn-default btn-moderate dropdown-toggle",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},u["default"].createElement("span",{className:"material-icon"},"tonality"),gettext("Moderation")),u["default"].createElement(y["default"],{profile:this.props.profile})):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"page-header"},u["default"].createElement("div",{className:"container"},u["default"].createElement("div",{className:"row"},u["default"].createElement("div",{className:"col-md-9 col-md-offset-3"},u["default"].createElement("h1",{className:"pull-left"},u["default"].createElement(f["default"],{user:this.props.profile,size:"100"}),u["default"].createElement("span",{className:"user-name"},this.props.profile.username)),this.getFollowButton(),this.getModerationButton(),u["default"].createElement(p["default"],{toggleNav:this.props.toggleNav,dropdown:this.props.dropdown})))),u["default"].createElement("div",{className:"header-stats"},u["default"].createElement("div",{className:"container"},u["default"].createElement("div",{className:"row"},u["default"].createElement("div",{className:"col-md-9 col-md-offset-3"},u["default"].createElement("ul",{className:"list-inline"},this.getUserStatus(),this.getUserRank(),this.getUserTitle(),this.getJoinedOn(),this.getEmail()))))))}}]),t}(u["default"].Component);r["default"]=_},{"../avatar":2,"../dropdown-toggle":18,"../user-status":95,"./follow-button":40,"./moderation/nav":47,react:"react"}],44:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../../button"),f=a(c),d=e("../../form"),p=a(d),h=e("../../form-group"),m=a(h),b=e("../../modal-loader"),y=a(b),g=e("../../yes-no-switch"),v=a(g),_=e("../../modal-message"),E=a(_),w=e("../../../reducers/users"),O=e("../../../services/ajax"),k=a(O),N=e("../../../services/snackbar"),j=a(N),x=e("../../../services/store"),P=a(x),C=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.state={isLoaded:!1,isLoading:!1,error:null,is_avatar_locked:"",avatar_lock_user_message:"",avatar_lock_staff_message:""},r}return s(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;k["default"].get(this.props.profile.api_url.moderate_avatar).then(function(t){e.setState({isLoaded:!0,is_avatar_locked:t.is_avatar_locked,avatar_lock_user_message:t.avatar_lock_user_message||"",avatar_lock_staff_message:t.avatar_lock_staff_message||""})},function(t){e.setState({isLoaded:!0,error:t.detail})})}},{key:"clean",value:function(){return this.isValid()?!0:(j["default"].error(this.validate().username[0]),!1)}},{key:"send",value:function(){return k["default"].post(this.props.profile.api_url.moderate_avatar,{is_avatar_locked:this.state.is_avatar_locked,avatar_lock_user_message:this.state.avatar_lock_user_message,avatar_lock_staff_message:this.state.avatar_lock_staff_message})}},{key:"handleSuccess",value:function(e){P["default"].dispatch((0,w.updateAvatar)(this.props.profile,e.avatar_hash)),j["default"].success(gettext("Avatar controls have been changed."))}},{key:"getFormBody",value:function(){return u["default"].createElement("form",{onSubmit:this.handleSubmit},u["default"].createElement("div",{className:"modal-body"},u["default"].createElement(m["default"],{label:gettext("Lock avatar"),helpText:gettext("Locking user avatar will prohibit user from changing his avatar and will reset his/her avatar to default one."),"for":"id_is_avatar_locked"},u["default"].createElement(v["default"],{id:"id_is_avatar_locked",disabled:this.state.isLoading,iconOn:"lock_outline",iconOff:"lock_open",labelOn:gettext("Disallow user from changing avatar"),labelOff:gettext("Allow user to change avatar"),onChange:this.bindInput("is_avatar_locked"),value:this.state.is_avatar_locked})),u["default"].createElement(m["default"],{label:gettext("User message"),helpText:gettext("Optional message for user explaining why he/she is prohibited form changing avatar."),"for":"id_avatar_lock_user_message"},u["default"].createElement("textarea",{id:"id_avatar_lock_user_message",className:"form-control",rows:"4",disabled:this.state.isLoading,onChange:this.bindInput("avatar_lock_user_message"),value:this.state.avatar_lock_user_message})),u["default"].createElement(m["default"],{label:gettext("Staff message"),helpText:gettext("Optional message for forum team members explaining why user is prohibited form changing avatar."),"for":"id_avatar_lock_staff_message"},u["default"].createElement("textarea",{id:"id_avatar_lock_staff_message",className:"form-control",rows:"4",disabled:this.state.isLoading,onChange:this.bindInput("avatar_lock_staff_message"),value:this.state.avatar_lock_staff_message}))),u["default"].createElement("div",{className:"modal-footer"},u["default"].createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},gettext("Close")),u["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Save changes"))))}},{key:"getModalBody",value:function(){return this.state.error?u["default"].createElement(E["default"],{icon:"remove_circle_outline",message:this.state.error}):this.state.isLoaded?this.getFormBody():u["default"].createElement(y["default"],null)}},{key:"getClassName",value:function(){return this.state.error?"modal-dialog modal-message modal-avatar-controls":"modal-dialog modal-avatar-controls"}},{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("Avatar controls"))),this.getModalBody()))}}]),t}(p["default"]);r["default"]=C},{"../../../reducers/users":162,"../../../services/ajax":163,"../../../services/snackbar":172,"../../../services/store":173,"../../button":4,"../../form":20,"../../form-group":19,"../../modal-loader":23,
 for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../utils/string-count"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.copy&&this.props.copy.length&&1===(0,f["default"])(this.props.copy,"<p")&&-1===this.props.copy.indexOf("<br")?"page-lead lead":"page-lead"}},{key:"render",value:function(){return this.props.copy&&this.props.copy.length?u["default"].createElement("div",{className:this.getClassName(),dangerouslySetInnerHTML:{__html:this.props.copy}}):null}}]),t}(u["default"].Component);r["default"]=d},{"../utils/string-count":187,react:"react"}],36:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./loader"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return u["default"].createElement("div",{className:"panel-body panel-body-loading"},u["default"].createElement(f["default"],{className:"loader loader-spaced"}))}}]),t}(u["default"].Component);r["default"]=d},{"./loader":22,react:"react"}],37:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getHelpText",value:function(){return this.props.helpText?u["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"panel-body panel-message-body"},u["default"].createElement("div",{className:"message-icon"},u["default"].createElement("span",{className:"material-icon"},this.props.icon||"info_outline")),u["default"].createElement("div",{className:"message-body"},u["default"].createElement("p",{className:"lead"},this.props.message),this.getHelpText()))}}]),t}(u["default"].Component);r["default"]=c},{react:"react"}],38:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0}),r.LABELS=r.STYLES=void 0;var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../services/zxcvbn"),f=a(c),d=r.STYLES=["progress-bar-danger","progress-bar-warning","progress-bar-warning","progress-bar-primary","progress-bar-success"],p=r.LABELS=[gettext("Entered password is very weak."),gettext("Entered password is weak."),gettext("Entered password is average."),gettext("Entered password is strong."),gettext("Entered password is very strong.")],h=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r._score=0,r._password=null,r._inputs=[],r}return s(t,e),i(t,[{key:"getScore",value:function(e,t){var r=this,a=!1;return e.trim()!==this._password&&(a=!0),t.length!==this._inputs.length?a=!0:t.map(function(e,t){e.trim()!==r._inputs[t]&&(a=!0)}),a&&(this._score=f["default"].scorePassword(e,t),this._password=e.trim(),this._inputs=t.map(function(e){return e.trim()})),this._score}},{key:"render",value:function(){var e=this.getScore(this.props.password,this.props.inputs);return u["default"].createElement("div",{className:"help-block password-strength"},u["default"].createElement("div",{className:"progress"},u["default"].createElement("div",{className:"progress-bar "+d[e],style:{width:20+20*e+"%"},role:"progress-bar","aria-valuenow":e,"aria-valuemin":"0","aria-valuemax":"4"},u["default"].createElement("span",{className:"sr-only"},p[e]))),u["default"].createElement("p",{className:"text-small"},p[e]))}}]),t}(u["default"].Component);r["default"]=h},{"../services/zxcvbn":174,react:"react"}],39:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("moment"),u=a(l),c=e("react"),f=a(c),d=e("../panel-loader"),p=a(d),h=e("../panel-message"),m=a(h),b=e("../../index"),y=a(b),g=e("../../services/polls"),v=a(g),_=e("../../services/page-title"),E=a(_),w=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.update=function(e){e.expires_on&&(e.expires_on=(0,u["default"])(e.expires_on)),r.setState({isLoaded:!0,error:null,ban:e})},r.error=function(e){r.setState({isLoaded:!0,error:e.detail,ban:null})},y["default"].has("PROFILE_BAN")?r.initWithPreloadedData(y["default"].pop("PROFILE_BAN")):r.initWithoutPreloadedData(),r.startPolling(e.profile.api_url.ban),r}return s(t,e),i(t,[{key:"initWithPreloadedData",value:function(e){e.expires_on&&(e.expires_on=(0,u["default"])(e.expires_on)),this.state={isLoaded:!0,ban:e}}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPolling",value:function(e){v["default"].start({poll:"ban-details",url:e,frequency:9e4,update:this.update,error:this.error})}},{key:"componentDidMount",value:function(){E["default"].set({title:gettext("Ban details"),parent:this.props.profile.username})}},{key:"componentWillUnmount",value:function(){v["default"].stop("ban-details")}},{key:"getUserMessage",value:function(){return this.state.ban.user_message?f["default"].createElement("div",{className:"panel-body ban-message ban-user-message"},f["default"].createElement("h4",null,gettext("User-shown ban message")),f["default"].createElement("div",{className:"lead",dangerouslySetInnerHTML:{__html:this.state.ban.user_message.html}})):null}},{key:"getStaffMessage",value:function(){return this.state.ban.staff_message?f["default"].createElement("div",{className:"panel-body ban-message ban-staff-message"},f["default"].createElement("h4",null,gettext("Team-shown ban message")),f["default"].createElement("div",{className:"lead",dangerouslySetInnerHTML:{__html:this.state.ban.staff_message.html}})):null}},{key:"getExpirationMessage",value:function(){if(this.state.ban.expires_on){if(this.state.ban.expires_on.isAfter((0,u["default"])())){var e=interpolate(gettext("This ban expires on %(expires_on)s."),{expires_on:this.state.ban.expires_on.format("LL, LT")},!0),t=interpolate(gettext("This ban expires %(expires_on)s."),{expires_on:this.state.ban.expires_on.fromNow()},!0);return f["default"].createElement("abbr",{title:e},t)}return gettext("This ban has expired.")}return interpolate(gettext("%(username)s's ban is permanent."),{username:this.props.profile.username},!0)}},{key:"getPanelBody",value:function(){return this.state.ban?Object.keys(this.state.ban).length?f["default"].createElement("div",null,this.getUserMessage(),this.getStaffMessage(),f["default"].createElement("div",{className:"panel-body ban-expires"},f["default"].createElement("h4",null,gettext("Ban expiration")),f["default"].createElement("p",{className:"lead"},this.getExpirationMessage()))):f["default"].createElement("div",null,f["default"].createElement(m["default"],{message:gettext("No ban is active at the moment.")})):this.state.error?f["default"].createElement("div",null,f["default"].createElement(m["default"],{icon:"error_outline",message:this.state.error})):f["default"].createElement("div",null,f["default"].createElement(p["default"],null))}},{key:"render",value:function(){return f["default"].createElement("div",{className:"profile-ban-details"},f["default"].createElement("div",{className:"panel panel-default"},f["default"].createElement("div",{className:"panel-heading"},f["default"].createElement("h3",{className:"panel-title"},gettext("Ban details"))),this.getPanelBody()))}}]),t}(f["default"].Component);r["default"]=w},{"../../index":119,"../../services/page-title":170,"../../services/polls":171,"../panel-loader":36,"../panel-message":37,moment:"moment",react:"react"}],40:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../button"),f=a(c),d=e("../../reducers/profile"),p=e("../../services/ajax"),h=a(p),m=e("../../services/snackbar"),b=a(m),y=e("../../services/store"),g=a(y),v=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.action=function(){r.setState({isLoading:!0}),r.props.profile.is_followed?g["default"].dispatch((0,d.patch)({is_followed:!1,followers:r.props.profile.followers-1})):g["default"].dispatch((0,d.patch)({is_followed:!0,followers:r.props.profile.followers+1})),h["default"].post(r.props.profile.api_url.follow).then(function(e){r.setState({isLoading:!1}),g["default"].dispatch((0,d.patch)(e))},function(e){r.setState({isLoading:!1}),b["default"].apiError(e)})},r.state={isLoading:!1},r}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.profile.is_followed?this.props.className+" btn-default btn-following":this.props.className+" btn-default btn-follow"}},{key:"getIcon",value:function(){return this.props.profile.is_followed?"favorite":"favorite_border"}},{key:"getLabel",value:function(){return this.props.profile.is_followed?gettext("Following"):gettext("Follow")}},{key:"render",value:function(){return u["default"].createElement(f["default"],{className:this.getClassName(),disabled:this.state.isLoading,onClick:this.action},u["default"].createElement("span",{className:"material-icon"},this.getIcon()),this.getLabel())}}]),t}(u["default"].Component);r["default"]=v},{"../../reducers/profile":156,"../../services/ajax":163,"../../services/snackbar":172,"../../services/store":173,"../button":4,react:"react"}],41:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=a(u),f=e("../button"),d=a(f),p=e("../search"),h=a(p),m=e("../users-list/root"),b=a(m),y=e("../../index"),g=a(y),v=e("../../reducers/users"),_=e("../../services/ajax"),E=a(_),w=e("../../services/snackbar"),O=a(w),k=e("../../services/store"),N=a(k),j=e("../../services/page-title"),x=a(j),P=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));return r.loadMore=function(){r.setState({isBusy:!0}),r.loadUsers(r.state.page+1,r.state.search)},r.search=function(e){r.setState({isLoaded:!1,isBusy:!0,search:e.target.value,count:0,more:0,page:1,pages:1}),r.loadUsers(1,e.target.value)},r.setSpecialProps(),g["default"].has(r.PRELOADED_DATA_KEY)?r.initWithPreloadedData(g["default"].pop(r.PRELOADED_DATA_KEY)):r.initWithoutPreloadedData(),r}return i(t,e),l(t,[{key:"setSpecialProps",value:function(){this.PRELOADED_DATA_KEY="PROFILE_FOLLOWERS",this.TITLE=gettext("Followers"),this.API_FILTER="followers"}},{key:"initWithPreloadedData",value:function(e){this.state={isLoaded:!0,isBusy:!1,search:"",count:e.count,more:e.more,page:e.page,pages:e.pages},N["default"].dispatch((0,v.hydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1,isBusy:!1,search:"",count:0,more:0,page:1,pages:1},this.loadUsers()}},{key:"loadUsers",value:function(){var e,t=this,r=arguments.length<=0||void 0===arguments[0]?1:arguments[0],a=arguments.length<=1||void 0===arguments[1]?null:arguments[1];E["default"].get(g["default"].get("USERS_API"),(e={},n(e,this.API_FILTER,this.props.profile.id),n(e,"name",a),n(e,"page",r||1),e),"user-"+this.API_FILTER).then(function(e){1===r?N["default"].dispatch((0,v.hydrate)(e.results)):N["default"].dispatch((0,v.append)(e.results)),t.setState({isLoaded:!0,isBusy:!1,count:e.count,more:e.more,page:e.page,pages:e.pages})},function(e){O["default"].apiError(e)})}},{key:"componentDidMount",value:function(){x["default"].set({title:this.TITLE,parent:this.props.profile.username})}},{key:"getLabel",value:function(){if(this.state.isLoaded){if(this.state.search){var e=ngettext("Found %(users)s user.","Found %(users)s users.",this.state.count);return interpolate(e,{users:this.state.count},!0)}if(this.props.profile.id===this.props.user.id){var t=ngettext("You have %(users)s follower.","You have %(users)s followers.",this.state.count);return interpolate(t,{users:this.state.count},!0)}var r=ngettext("%(username)s has %(users)s follower.","%(username)s has %(users)s followers.",this.state.count);return interpolate(r,{username:this.props.profile.username,users:this.state.count},!0)}return gettext("Loading...")}},{key:"getEmptyMessage",value:function(){return this.state.search?gettext("Search returned no users matching specified criteria."):this.props.user.id===this.props.profile.id?gettext("You have no followers."):interpolate(gettext("%(username)s has no followers."),{username:this.props.profile.username},!0)}},{key:"getMoreButton",value:function(){return this.state.more?c["default"].createElement("div",{className:"pager-more"},c["default"].createElement(d["default"],{loading:this.state.isBusy,onClick:this.loadMore},interpolate(gettext("Show more (%(more)s)"),{more:this.state.more},!0))):null}},{key:"getListBody",value:function(){return this.state.isLoaded&&0===this.state.count?c["default"].createElement("p",{className:"lead"},this.getEmptyMessage()):c["default"].createElement("div",null,c["default"].createElement(b["default"],{isLoaded:this.state.isLoaded,users:this.props.users,showRank:!0,cols:2}),this.getMoreButton())}},{key:"getClassName",value:function(){return"profile-"+this.API_FILTER}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement("nav",{className:"toolbar"},c["default"].createElement("h3",{className:"toolbar-left"},this.getLabel()),c["default"].createElement(h["default"],{className:"toolbar-right",value:this.state.search,onChange:this.search,placeholder:gettext("Search history...")})),this.getListBody())}}]),t}(c["default"].Component);r["default"]=P},{"../../index":119,"../../reducers/users":162,"../../services/ajax":163,"../../services/page-title":170,"../../services/snackbar":172,"../../services/store":173,"../button":4,"../search":56,"../users-list/root":102,react:"react"}],42:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=(a(l),e("./followers")),c=a(u),f=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"setSpecialProps",value:function(){this.PRELOADED_DATA_KEY="PROFILE_FOLLOWS",this.TITLE=gettext("Follows"),this.API_FILTER="follows"}},{key:"getLabel",value:function(){if(this.state.isLoaded){if(this.state.search){var e=ngettext("Found %(users)s user.","Found %(users)s users.",this.state.count);return interpolate(e,{users:this.state.count},!0)}if(this.props.profile.id===this.props.user.id){var t=ngettext("You are following %(users)s user.","You are following %(users)s users.",this.state.count);return interpolate(t,{users:this.state.count},!0)}var r=ngettext("%(username)s is following %(users)s user.","%(username)s is following %(users)s users.",this.state.count);return interpolate(r,{username:this.props.profile.username,users:this.state.count},!0)}return gettext("Loading...")}},{key:"getEmptyMessage",value:function(){return this.state.search?gettext("Search returned no users matching specified criteria."):this.props.user.id===this.props.profile.id?gettext("You are not following any users."):interpolate(gettext("%(username)s is not following any users."),{username:this.props.profile.username},!0)}}]),t}(c["default"]);r["default"]=f},{"./followers":41,react:"react"}],43:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../avatar"),f=a(c),d=e("../dropdown-toggle"),p=a(d),h=e("./follow-button"),m=a(h),b=e("./moderation/nav"),y=a(b),g=e("../user-status"),v=a(g),_=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getUserStatus",value:function(){return u["default"].createElement("li",{className:"user-status-display"},u["default"].createElement(v["default"],{user:this.props.profile,status:this.props.profile.status},u["default"].createElement(g.StatusIcon,{user:this.props.profile,status:this.props.profile.status}),u["default"].createElement(g.StatusLabel,{user:this.props.profile,status:this.props.profile.status,className:"status-label"})))}},{key:"getUserRank",value:function(){return this.props.profile.rank.is_tab?u["default"].createElement("li",{className:"user-rank"},u["default"].createElement("a",{href:this.props.profile.rank.absolute_url,className:"item-title"},this.props.profile.rank.name)):u["default"].createElement("li",{className:"user-rank"},u["default"].createElement("span",{className:"item-title"},this.props.profile.rank.name))}},{key:"getUserTitle",value:function(){return this.props.profile.title?u["default"].createElement("li",{className:"user-title"},this.props.profile.title):this.props.profile.rank.title?u["default"].createElement("li",{className:"user-title"},this.props.profile.rank.title):null}},{key:"getJoinedOn",value:function(){var e=interpolate(gettext("Joined on %(joined_on)s"),{joined_on:this.props.profile.joined_on.format("LL, LT")},!0),t=interpolate(gettext("Joined %(joined_on)s"),{joined_on:this.props.profile.joined_on.fromNow()},!0);return u["default"].createElement("li",{className:"user-joined-on"},u["default"].createElement("abbr",{title:e},t))}},{key:"getEmail",value:function(){return this.props.profile.email?u["default"].createElement("li",{className:"user-email"},u["default"].createElement("a",{href:"mailto:"+this.props.profile.email,className:"item-title"},this.props.profile.email)):null}},{key:"getFollowButton",value:function(){return this.props.profile.acl.can_follow?u["default"].createElement(m["default"],{className:"btn btn-aligned hidden-xs hidden-sm",profile:this.props.profile}):null}},{key:"getModerationButton",value:function(){return this.props.profile.acl.can_moderate?u["default"].createElement("div",{className:"btn-group btn-aligned hidden-xs hidden-sm"},u["default"].createElement("button",{className:"btn btn-default btn-moderate dropdown-toggle",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},u["default"].createElement("span",{className:"material-icon"},"tonality"),gettext("Moderation")),u["default"].createElement(y["default"],{profile:this.props.profile})):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"page-header"},u["default"].createElement("div",{className:"container"},u["default"].createElement("div",{className:"row"},u["default"].createElement("div",{className:"col-md-9 col-md-offset-3"},u["default"].createElement("h1",{className:"pull-left"},u["default"].createElement(f["default"],{user:this.props.profile,size:"100"}),u["default"].createElement("span",{className:"user-name"},this.props.profile.username)),this.getFollowButton(),this.getModerationButton(),u["default"].createElement(p["default"],{toggleNav:this.props.toggleNav,dropdown:this.props.dropdown})))),u["default"].createElement("div",{className:"header-stats"},u["default"].createElement("div",{className:"container"},u["default"].createElement("div",{className:"row"},u["default"].createElement("div",{className:"col-md-9 col-md-offset-3"},u["default"].createElement("ul",{className:"list-inline"},this.getUserStatus(),this.getUserRank(),this.getUserTitle(),this.getJoinedOn(),this.getEmail()))))))}}]),t}(u["default"].Component);r["default"]=_},{"../avatar":2,"../dropdown-toggle":18,"../user-status":95,"./follow-button":40,"./moderation/nav":47,react:"react"}],44:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../../button"),f=a(c),d=e("../../form"),p=a(d),h=e("../../form-group"),m=a(h),b=e("../../modal-loader"),y=a(b),g=e("../../yes-no-switch"),v=a(g),_=e("../../modal-message"),E=a(_),w=e("../../../reducers/users"),O=e("../../../services/ajax"),k=a(O),N=e("../../../services/snackbar"),j=a(N),x=e("../../../services/store"),P=a(x),C=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.state={isLoaded:!1,isLoading:!1,error:null,is_avatar_locked:"",avatar_lock_user_message:"",avatar_lock_staff_message:""},r}return s(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;k["default"].get(this.props.profile.api_url.moderate_avatar).then(function(t){e.setState({isLoaded:!0,is_avatar_locked:t.is_avatar_locked,avatar_lock_user_message:t.avatar_lock_user_message||"",avatar_lock_staff_message:t.avatar_lock_staff_message||""})},function(t){e.setState({isLoaded:!0,error:t.detail})})}},{key:"clean",value:function(){return this.isValid()?!0:(j["default"].error(this.validate().username[0]),!1)}},{key:"send",value:function(){return k["default"].post(this.props.profile.api_url.moderate_avatar,{is_avatar_locked:this.state.is_avatar_locked,avatar_lock_user_message:this.state.avatar_lock_user_message,avatar_lock_staff_message:this.state.avatar_lock_staff_message})}},{key:"handleSuccess",value:function(e){P["default"].dispatch((0,w.updateAvatar)(this.props.profile,e.avatar_hash)),j["default"].success(gettext("Avatar controls have been changed."))}},{key:"getFormBody",value:function(){return u["default"].createElement("form",{onSubmit:this.handleSubmit},u["default"].createElement("div",{className:"modal-body"},u["default"].createElement(m["default"],{label:gettext("Lock avatar"),helpText:gettext("Locking user avatar will prohibit user from changing his avatar and will reset his/her avatar to default one."),"for":"id_is_avatar_locked"},u["default"].createElement(v["default"],{id:"id_is_avatar_locked",disabled:this.state.isLoading,iconOn:"lock_outline",iconOff:"lock_open",labelOn:gettext("Disallow user from changing avatar"),labelOff:gettext("Allow user to change avatar"),onChange:this.bindInput("is_avatar_locked"),value:this.state.is_avatar_locked})),u["default"].createElement(m["default"],{label:gettext("User message"),helpText:gettext("Optional message for user explaining why he/she is prohibited form changing avatar."),"for":"id_avatar_lock_user_message"},u["default"].createElement("textarea",{id:"id_avatar_lock_user_message",className:"form-control",rows:"4",disabled:this.state.isLoading,onChange:this.bindInput("avatar_lock_user_message"),value:this.state.avatar_lock_user_message})),u["default"].createElement(m["default"],{label:gettext("Staff message"),helpText:gettext("Optional message for forum team members explaining why user is prohibited form changing avatar."),"for":"id_avatar_lock_staff_message"},u["default"].createElement("textarea",{id:"id_avatar_lock_staff_message",className:"form-control",rows:"4",disabled:this.state.isLoading,onChange:this.bindInput("avatar_lock_staff_message"),value:this.state.avatar_lock_staff_message}))),u["default"].createElement("div",{className:"modal-footer"},u["default"].createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},gettext("Close")),u["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Save changes"))))}},{key:"getModalBody",value:function(){return this.state.error?u["default"].createElement(E["default"],{icon:"remove_circle_outline",message:this.state.error}):this.state.isLoaded?this.getFormBody():u["default"].createElement(y["default"],null)}},{key:"getClassName",value:function(){return this.state.error?"modal-dialog modal-message modal-avatar-controls":"modal-dialog modal-avatar-controls"}},{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("Avatar controls"))),this.getModalBody()))}}]),t}(p["default"]);r["default"]=C},{"../../../reducers/users":162,"../../../services/ajax":163,"../../../services/snackbar":172,"../../../services/store":173,"../../button":4,"../../form":20,"../../form-group":19,"../../modal-loader":23,
 "../../modal-message":24,"../../yes-no-switch":118,react:"react"}],45:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../../button"),d=n(f),p=e("../../form"),h=n(p),m=e("../../form-group"),b=n(m),y=e("../../modal-loader"),g=n(y),v=e("../../modal-message"),_=n(v),E=e("../../../index"),w=n(E),O=e("../../../reducers/username-history"),k=e("../../../reducers/users"),N=e("../../../services/ajax"),j=n(N),x=e("../../../services/snackbar"),P=n(x),C=e("../../../services/store"),S=n(C),T=e("../../../utils/validators"),M=a(T),L=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));return r.state={isLoaded:!1,isLoading:!1,error:null,username:"",validators:{username:[M.usernameContent(),M.usernameMinLength(w["default"].get("SETTINGS")),M.usernameMaxLength(w["default"].get("SETTINGS"))]}},r}return i(t,e),l(t,[{key:"componentDidMount",value:function(){var e=this;j["default"].get(this.props.profile.api_url.moderate_username).then(function(){e.setState({isLoaded:!0})},function(t){e.setState({isLoaded:!0,error:t.detail})})}},{key:"clean",value:function(){return this.isValid()?!0:(P["default"].error(this.validate().username[0]),!1)}},{key:"send",value:function(){return j["default"].post(this.props.profile.api_url.moderate_username,{username:this.state.username})}},{key:"handleSuccess",value:function(e){this.setState({username:""}),S["default"].dispatch((0,O.addNameChange)(e,this.props.profile,this.props.user)),S["default"].dispatch((0,k.updateUsername)(this.props.profile,e.username,e.slug)),P["default"].success(gettext("Username has been changed."))}},{key:"getFormBody",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"modal-body"},c["default"].createElement(b["default"],{label:gettext("New username"),"for":"id_username"},c["default"].createElement("input",{type:"text",id:"id_username",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username}))),c["default"].createElement("div",{className:"modal-footer"},c["default"].createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},gettext("Close")),c["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change username"))))}},{key:"getModalBody",value:function(){return this.state.error?c["default"].createElement(_["default"],{icon:"remove_circle_outline",message:this.state.error}):this.state.isLoaded?this.getFormBody():c["default"].createElement(g["default"],null)}},{key:"getClassName",value:function(){return this.state.error?"modal-dialog modal-message modal-rename-user":"modal-dialog modal-rename-user"}},{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("Change username"))),this.getModalBody()))}}]),t}(h["default"]);r["default"]=L},{"../../../index":119,"../../../reducers/username-history":161,"../../../reducers/users":162,"../../../services/ajax":163,"../../../services/snackbar":172,"../../../services/store":173,"../../../utils/validators":188,"../../button":4,"../../form":20,"../../form-group":19,"../../modal-loader":23,"../../modal-message":24,react:"react"}],46:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../../button"),f=a(c),d=e("../../form"),p=a(d),h=e("../../form-group"),m=a(h),b=e("../../modal-loader"),y=a(b),g=e("../../modal-message"),v=a(g),_=e("../../yes-no-switch"),E=a(_),w=e("../../../index"),O=a(w),k=e("../../../services/ajax"),N=a(k),j=e("../../../services/polls"),x=a(j),P=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.countdown=function(){window.setTimeout(function(){r.state.countdown>1?(r.setState({countdown:r.state.countdown-1}),r.countdown()):r.state.confirm||r.setState({confirm:!0})},1e3)},r.state={isLoaded:!1,isLoading:!1,isDeleted:!1,error:null,countdown:5,confirm:!1,with_content:!1},r}return s(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;N["default"].get(this.props.profile.api_url["delete"]).then(function(){e.setState({isLoaded:!0}),e.countdown()},function(t){e.setState({isLoaded:!0,error:t.detail})})}},{key:"send",value:function(){return N["default"].post(this.props.profile.api_url["delete"],{with_content:this.state.with_content})}},{key:"handleSuccess",value:function(){x["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,className:"form-horizontal"},u["default"].createElement("div",{className:"modal-body"},u["default"].createElement(m["default"],{label:gettext("User content"),labelClass:"col-sm-4",controlClass:"col-sm-8","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(f["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(v["default"],{icon:"remove_circle_outline",message:this.state.error}):this.state.isLoaded?this.state.isDeleted?this.getDeletedBody():this.getForm():u["default"].createElement(y["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"]);r["default"]=P},{"../../../index":119,"../../../services/ajax":163,"../../../services/polls":171,"../../button":4,"../../form":20,"../../form-group":19,"../../modal-loader":23,"../../modal-message":24,"../../yes-no-switch":118,react:"react"}],47:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("react-redux"),f=e("./avatar-controls"),d=a(f),p=e("./change-username"),h=a(p),m=e("./delete-account"),b=a(m),y=e("../../../services/modal"),g=a(y),v=function(e){return{tick:e.tick,user:e.auth,profile:e.profile}},_=function(e){function t(){var e,r,a,s;n(this,t);for(var i=arguments.length,l=Array(i),u=0;i>u;u++)l[u]=arguments[u];return r=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.showAvatarDialog=function(){g["default"].show((0,c.connect)(v)(d["default"]))},a.showRenameDialog=function(){g["default"].show((0,c.connect)(v)(h["default"]))},a.showDeleteDialog=function(){g["default"].show((0,c.connect)(v)(b["default"]))},s=r,o(a,s)}return s(t,e),i(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-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-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-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",role:"menu"},this.getAvatarButton(),this.getRenameButton(),this.getDeleteButton(),u["default"].createElement("li",{className:"divider hidden-md hidden-lg"}),u["default"].createElement("li",{className:"dropdown-buttons hidden-md hidden-lg"},u["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.props.toggleNav},u["default"].createElement("span",{className:"material-icon"},"menu"),gettext("Menu"))))}}]),t}(u["default"].Component);r["default"]=_},{"../../../services/modal":169,"./avatar-controls":44,"./change-username":45,"./delete-account":46,react:"react","react-redux":"react-redux"}],48:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0}),r.CompactNav=r.SideNav=void 0;var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("react-router"),f=e("../li"),d=a(f),p=e("./follow-button"),h=a(p),m=e("../../index"),b=(a(m),r.SideNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getMeta",value:function(e){return e?u["default"].createElement("span",{className:"badge"},this.props.profile[e.attr]):null}},{key:"render",value:function(){var e=this;return u["default"].createElement("div",{className:"list-group nav-side"},this.props.pages.map(function(t){return u["default"].createElement(c.Link,{to:e.props.baseUrl+t.component+"/",className:"list-group-item",activeClassName:"active",key:t.component},u["default"].createElement("span",{className:"material-icon"},t.icon),t.name,e.getMeta(t.meta))}))}}]),t}(u["default"].Component));r.CompactNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"showSpecialOptions",value:function(){return this.props.profile.acl.can_follow||this.props.profile.acl.can_moderate}},{key:"getFollowButton",value:function(){return this.props.profile.acl.can_follow?u["default"].createElement(h["default"],{className:"btn btn-block",profile:this.props.profile}):null}},{key:"getModerationButton",value:function(){return this.props.profile.acl.can_moderate?u["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.props.toggleModeration},u["default"].createElement("span",{className:"material-icon"},"tonality"),gettext("Moderation")):null}},{key:"getSpecialOptions",value:function(){return this.showSpecialOptions()?u["default"].createElement("li",{className:"dropdown-buttons"},this.getFollowButton(),this.getModerationButton()):null}},{key:"render",value:function(){var e=this;return u["default"].createElement("ul",{className:"dropdown-menu",role:"menu"},this.getSpecialOptions(),this.showSpecialOptions()?u["default"].createElement("li",{className:"divider"}):null,this.props.pages.map(function(t){return u["default"].createElement(d["default"],{path:e.props.baseUrl+t.component+"/",key:t.component},u["default"].createElement(c.Link,{to:e.props.baseUrl+t.component+"/",onClick:e.props.hideNav},u["default"].createElement("span",{className:"material-icon"},t.icon),t.name,e.getMeta(t.meta)))}))}}]),t}(b)},{"../../index":119,"../li":21,"./follow-button":40,react:"react","react-router":"react-router"}],49:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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{tick:e.tick.tick,user:e.auth.user,users:e.users,profile:e.profile,"username-history":e["username-history"]}}function l(){var e=[];return T["default"].get("PROFILE_PAGES").forEach(function(t){e.push(Object.assign({},t,{path:T["default"].get("PROFILE").absolute_url+t.component+"/",component:(0,d.connect)(i)(B[t.component])}))}),e}Object.defineProperty(r,"__esModule",{value:!0});var u=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}();r.select=i,r.paths=l;var c=e("react"),f=a(c),d=e("react-redux"),p=e("../avatar"),h=a(p),m=e("./ban-details"),b=a(m),y=e("./followers"),g=a(y),v=e("./follows"),_=a(v),E=e("./username-history"),w=a(E),O=e("./header"),k=a(O),N=e("./moderation/nav"),j=a(N),x=e("./navs"),P=e("../with-dropdown"),C=a(P),S=e("../../index"),T=a(S),M=e("../../reducers/profile"),L=e("../../services/polls"),R=a(L),A=e("../../services/store"),I=a(A),U=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.update=function(e){I["default"].dispatch((0,M.hydrate)(e))},r.toggleNav=function(){"pages"===r.state.dropdown?r.setState({dropdown:!1}):r.setState({dropdown:"pages"})},r.toggleModeration=function(){"moderation"===r.state.dropdown?r.setState({dropdown:!1}):r.setState({dropdown:"moderation"})},r.startPolling(e.profile.api_url.root),r}return s(t,e),u(t,[{key:"startPolling",value:function(e){R["default"].start({poll:"user-profile",url:e,frequency:9e4,update:this.update})}},{key:"getNavDropdown",value:function(){return"pages"===this.state.dropdown?f["default"].createElement(x.CompactNav,{pages:T["default"].get("PROFILE_PAGES"),baseUrl:T["default"].get("PROFILE").absolute_url,profile:this.props.profile,toggleModeration:this.toggleModeration,hideNav:this.hideNav}):"moderation"===this.state.dropdown?f["default"].createElement(j["default"],{profile:this.props.profile,toggleNav:this.toggleNav,hideNav:this.hideNav}):null}},{key:"getClassName",value:function(){var e="page page-user-profile";return e}},{key:"render",value:function(){return f["default"].createElement("div",{className:this.getClassName()},f["default"].createElement(k["default"],{user:this.props.user,profile:this.props.profile,toggleNav:this.toggleNav,toggleModeration:this.toggleModeration}),f["default"].createElement("div",{className:this.getCompactNavClassName()},this.getNavDropdown()),f["default"].createElement("div",{className:"container"},f["default"].createElement("div",{className:"row"},f["default"].createElement("div",{className:"col-md-3 hidden-xs hidden-sm"},f["default"].createElement("div",{className:"profile-side-avatar"},f["default"].createElement(h["default"],{user:this.props.profile,size:"400"})),f["default"].createElement(x.SideNav,{pages:T["default"].get("PROFILE_PAGES"),baseUrl:T["default"].get("PROFILE").absolute_url,profile:this.props.profile})),f["default"].createElement("div",{className:"col-md-9"},this.props.children))))}}]),t}(C["default"]);r["default"]=U;var D=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"render",value:function(){return f["default"].createElement("div",{className:"container"},f["default"].createElement("p",null,"Hello, I'm placeholder for "+this.props.route.name))}}]),t}(f["default"].Component),B={posts:D,threads:D,followers:g["default"],follows:_["default"],"username-history":w["default"],"ban-details":b["default"]}},{"../../index":119,"../../reducers/profile":156,"../../services/polls":171,"../../services/store":173,"../avatar":2,"../with-dropdown":117,"./ban-details":39,"./followers":41,"./follows":42,"./header":43,"./moderation/nav":47,"./navs":48,"./username-history":50,react:"react","react-redux":"react-redux"}],50:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../button"),f=a(c),d=e("../search"),p=a(d),h=e("../username-history/root"),m=a(h),b=e("../../index"),y=a(b),g=e("../../reducers/username-history"),v=e("../../services/ajax"),_=a(v),E=e("../../services/snackbar"),w=a(E),O=e("../../services/store"),k=a(O),N=e("../../services/page-title"),j=a(N),x=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.loadMore=function(){r.setState({isBusy:!0}),r.loadChanges(r.state.page+1,r.state.search)},r.search=function(e){r.setState({isLoaded:!1,isBusy:!0,search:e.target.value,count:0,more:0,page:1,pages:1}),r.loadChanges(1,e.target.value)},y["default"].has("PROFILE_NAME_HISTORY")?r.initWithPreloadedData(y["default"].pop("PROFILE_NAME_HISTORY")):r.initWithoutPreloadedData(),r}return s(t,e),i(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,g.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]?1:arguments[0],r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];_["default"].get(y["default"].get("USERNAME_CHANGES_API"),{user:this.props.profile.id,search:r,page:t||1},"search-username-history").then(function(r){1===t?k["default"].dispatch((0,g.hydrate)(r.results)):k["default"].dispatch((0,g.append)(r.results)),e.setState({isLoaded:!0,isBusy:!1,count:r.count,more:r.more,page:r.page,pages:r.pages})},function(e){w["default"].apiError(e)})}},{key:"componentDidMount",value:function(){j["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 r=ngettext("%(username)s's username was changed %(changes)s time.","%(username)s's username was changed %(changes)s times.",this.state.count);return interpolate(r,{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(f["default"],{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(m["default"],{isLoaded:this.state.isLoaded,emptyMessage:this.getEmptyMessage(),changes:this.props["username-history"]}),this.getMoreButton())}}]),t}(u["default"].Component);r["default"]=x},{"../../index":119,"../../reducers/username-history":161,"../../services/ajax":163,"../../services/page-title":170,"../../services/snackbar":172,"../../services/store":173,"../button":4,"../search":56,"../username-history/root":101,react:"react"}],51:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./loader"),f=a(c),d=e("./register.js"),p=a(d),h=e("../services/captcha"),m=a(h),b=e("../services/modal"),y=a(b),g=e("../services/snackbar"),v=a(g),_=e("../services/zxcvbn"),E=a(_),w=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.showRegisterModal=function(){"closed"===misago.get("SETTINGS").account_activation?v["default"].info(gettext("New registrations are currently disabled.")):r.state.isLoaded?y["default"].show(p["default"]):(r.setState({isLoading:!0}),Promise.all([m["default"].load(),E["default"].load()]).then(function(){r.state.isLoaded||r.setState({isLoading:!1,isLoaded:!1}),y["default"].show(p["default"])}))},r.state={isLoading:!1,isLoaded:!1},r}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.className+(this.state.isLoading?" btn-loading":"")}},{key:"render",value:function(){return u["default"].createElement("button",{type:"button",onClick:this.showRegisterModal,className:"btn "+this.getClassName(),disabled:this.state.isLoaded},gettext("Register"),this.state.isLoading?u["default"].createElement(f["default"],null):null)}}]),t}(u["default"].Component);r["default"]=w},{"../services/captcha":165,"../services/modal":169,"../services/snackbar":172,"../services/zxcvbn":174,"./loader":22,"./register.js":52,react:"react"}],52:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0}),r.RegisterComplete=r.RegisterForm=void 0;var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("./button"),d=n(f),p=e("./form"),h=n(p),m=e("./form-group"),b=n(m),y=e("./password-strength"),g=n(y),v=e("../index"),_=n(v),E=e("../services/ajax"),w=n(E),O=e("../services/auth"),k=n(O),N=e("../services/captcha"),j=n(N),x=e("../services/modal"),P=n(x),C=e("../services/snackbar"),S=n(C),T=e("../utils/banned-page"),M=n(T),L=e("../utils/validators"),R=a(L),A=r.RegisterForm=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));return r.state={isLoading:!1,username:"",email:"",password:"",captcha:"",validators:{username:[R.usernameContent(),R.usernameMinLength(_["default"].get("SETTINGS")),R.usernameMaxLength(_["default"].get("SETTINGS"))],email:[R.email()],password:[R.passwordMinLength(_["default"].get("SETTINGS"))],captcha:j["default"].validator()},errors:{}},r}return i(t,e),l(t,[{key:"clean",value:function(){return this.isValid()?!0:(S["default"].error(gettext("Form contains errors.")),this.setState({errors:this.validate()}),!1)}},{key:"send",value:function(){return w["default"].post(_["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)}),S["default"].error(gettext("Form contains errors."))):403===e.status&&e.ban?((0,M["default"])(e.ban),P["default"].hide()):S["default"].apiError(e)}},{key:"getLegalFootNote",value:function(){return _["default"].get("TERMS_OF_SERVICE_URL")?c["default"].createElement("a",{href:_["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 c["default"].createElement("div",{className:"modal-dialog modal-register",role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{
 "../../modal-message":24,"../../yes-no-switch":118,react:"react"}],45:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../../button"),d=n(f),p=e("../../form"),h=n(p),m=e("../../form-group"),b=n(m),y=e("../../modal-loader"),g=n(y),v=e("../../modal-message"),_=n(v),E=e("../../../index"),w=n(E),O=e("../../../reducers/username-history"),k=e("../../../reducers/users"),N=e("../../../services/ajax"),j=n(N),x=e("../../../services/snackbar"),P=n(x),C=e("../../../services/store"),S=n(C),T=e("../../../utils/validators"),M=a(T),L=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));return r.state={isLoaded:!1,isLoading:!1,error:null,username:"",validators:{username:[M.usernameContent(),M.usernameMinLength(w["default"].get("SETTINGS")),M.usernameMaxLength(w["default"].get("SETTINGS"))]}},r}return i(t,e),l(t,[{key:"componentDidMount",value:function(){var e=this;j["default"].get(this.props.profile.api_url.moderate_username).then(function(){e.setState({isLoaded:!0})},function(t){e.setState({isLoaded:!0,error:t.detail})})}},{key:"clean",value:function(){return this.isValid()?!0:(P["default"].error(this.validate().username[0]),!1)}},{key:"send",value:function(){return j["default"].post(this.props.profile.api_url.moderate_username,{username:this.state.username})}},{key:"handleSuccess",value:function(e){this.setState({username:""}),S["default"].dispatch((0,O.addNameChange)(e,this.props.profile,this.props.user)),S["default"].dispatch((0,k.updateUsername)(this.props.profile,e.username,e.slug)),P["default"].success(gettext("Username has been changed."))}},{key:"getFormBody",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"modal-body"},c["default"].createElement(b["default"],{label:gettext("New username"),"for":"id_username"},c["default"].createElement("input",{type:"text",id:"id_username",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username}))),c["default"].createElement("div",{className:"modal-footer"},c["default"].createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},gettext("Close")),c["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change username"))))}},{key:"getModalBody",value:function(){return this.state.error?c["default"].createElement(_["default"],{icon:"remove_circle_outline",message:this.state.error}):this.state.isLoaded?this.getFormBody():c["default"].createElement(g["default"],null)}},{key:"getClassName",value:function(){return this.state.error?"modal-dialog modal-message modal-rename-user":"modal-dialog modal-rename-user"}},{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("Change username"))),this.getModalBody()))}}]),t}(h["default"]);r["default"]=L},{"../../../index":119,"../../../reducers/username-history":161,"../../../reducers/users":162,"../../../services/ajax":163,"../../../services/snackbar":172,"../../../services/store":173,"../../../utils/validators":188,"../../button":4,"../../form":20,"../../form-group":19,"../../modal-loader":23,"../../modal-message":24,react:"react"}],46:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../../button"),f=a(c),d=e("../../form"),p=a(d),h=e("../../form-group"),m=a(h),b=e("../../modal-loader"),y=a(b),g=e("../../modal-message"),v=a(g),_=e("../../yes-no-switch"),E=a(_),w=e("../../../index"),O=a(w),k=e("../../../services/ajax"),N=a(k),j=e("../../../services/polls"),x=a(j),P=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.countdown=function(){window.setTimeout(function(){r.state.countdown>1?(r.setState({countdown:r.state.countdown-1}),r.countdown()):r.state.confirm||r.setState({confirm:!0})},1e3)},r.state={isLoaded:!1,isLoading:!1,isDeleted:!1,error:null,countdown:5,confirm:!1,with_content:!1},r}return s(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;N["default"].get(this.props.profile.api_url["delete"]).then(function(){e.setState({isLoaded:!0}),e.countdown()},function(t){e.setState({isLoaded:!0,error:t.detail})})}},{key:"send",value:function(){return N["default"].post(this.props.profile.api_url["delete"],{with_content:this.state.with_content})}},{key:"handleSuccess",value:function(){x["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,className:"form-horizontal"},u["default"].createElement("div",{className:"modal-body"},u["default"].createElement(m["default"],{label:gettext("User content"),labelClass:"col-sm-4",controlClass:"col-sm-8","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(f["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(v["default"],{icon:"remove_circle_outline",message:this.state.error}):this.state.isLoaded?this.state.isDeleted?this.getDeletedBody():this.getForm():u["default"].createElement(y["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"]);r["default"]=P},{"../../../index":119,"../../../services/ajax":163,"../../../services/polls":171,"../../button":4,"../../form":20,"../../form-group":19,"../../modal-loader":23,"../../modal-message":24,"../../yes-no-switch":118,react:"react"}],47:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("react-redux"),f=e("./avatar-controls"),d=a(f),p=e("./change-username"),h=a(p),m=e("./delete-account"),b=a(m),y=e("../../../services/modal"),g=a(y),v=function(e){return{tick:e.tick,user:e.auth,profile:e.profile}},_=function(e){function t(){var e,r,a,s;n(this,t);for(var i=arguments.length,l=Array(i),u=0;i>u;u++)l[u]=arguments[u];return r=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.showAvatarDialog=function(){g["default"].show((0,c.connect)(v)(d["default"]))},a.showRenameDialog=function(){g["default"].show((0,c.connect)(v)(h["default"]))},a.showDeleteDialog=function(){g["default"].show((0,c.connect)(v)(b["default"]))},s=r,o(a,s)}return s(t,e),i(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-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-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-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",role:"menu"},this.getAvatarButton(),this.getRenameButton(),this.getDeleteButton(),u["default"].createElement("li",{className:"divider hidden-md hidden-lg"}),u["default"].createElement("li",{className:"dropdown-buttons hidden-md hidden-lg"},u["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.props.toggleNav},u["default"].createElement("span",{className:"material-icon"},"menu"),gettext("Menu"))))}}]),t}(u["default"].Component);r["default"]=_},{"../../../services/modal":169,"./avatar-controls":44,"./change-username":45,"./delete-account":46,react:"react","react-redux":"react-redux"}],48:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0}),r.CompactNav=r.SideNav=void 0;var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("react-router"),f=e("../li"),d=a(f),p=e("./follow-button"),h=a(p),m=e("../../index"),b=(a(m),r.SideNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getMeta",value:function(e){return e?u["default"].createElement("span",{className:"badge"},this.props.profile[e.attr]):null}},{key:"render",value:function(){var e=this;return u["default"].createElement("div",{className:"list-group nav-side"},this.props.pages.map(function(t){return u["default"].createElement(c.Link,{to:e.props.baseUrl+t.component+"/",className:"list-group-item",activeClassName:"active",key:t.component},u["default"].createElement("span",{className:"material-icon"},t.icon),t.name,e.getMeta(t.meta))}))}}]),t}(u["default"].Component));r.CompactNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"showSpecialOptions",value:function(){return this.props.profile.acl.can_follow||this.props.profile.acl.can_moderate}},{key:"getFollowButton",value:function(){return this.props.profile.acl.can_follow?u["default"].createElement(h["default"],{className:"btn btn-block",profile:this.props.profile}):null}},{key:"getModerationButton",value:function(){return this.props.profile.acl.can_moderate?u["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.props.toggleModeration},u["default"].createElement("span",{className:"material-icon"},"tonality"),gettext("Moderation")):null}},{key:"getSpecialOptions",value:function(){return this.showSpecialOptions()?u["default"].createElement("li",{className:"dropdown-buttons"},this.getFollowButton(),this.getModerationButton()):null}},{key:"render",value:function(){var e=this;return u["default"].createElement("ul",{className:"dropdown-menu",role:"menu"},this.getSpecialOptions(),this.showSpecialOptions()?u["default"].createElement("li",{className:"divider"}):null,this.props.pages.map(function(t){return u["default"].createElement(d["default"],{path:e.props.baseUrl+t.component+"/",key:t.component},u["default"].createElement(c.Link,{to:e.props.baseUrl+t.component+"/",onClick:e.props.hideNav},u["default"].createElement("span",{className:"material-icon"},t.icon),t.name,e.getMeta(t.meta)))}))}}]),t}(b)},{"../../index":119,"../li":21,"./follow-button":40,react:"react","react-router":"react-router"}],49:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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{tick:e.tick.tick,user:e.auth.user,users:e.users,profile:e.profile,"username-history":e["username-history"]}}function l(){var e=[];return T["default"].get("PROFILE_PAGES").forEach(function(t){e.push(Object.assign({},t,{path:T["default"].get("PROFILE").absolute_url+t.component+"/",component:(0,d.connect)(i)(B[t.component])}))}),e}Object.defineProperty(r,"__esModule",{value:!0});var u=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}();r.select=i,r.paths=l;var c=e("react"),f=a(c),d=e("react-redux"),p=e("../avatar"),h=a(p),m=e("./ban-details"),b=a(m),y=e("./followers"),g=a(y),v=e("./follows"),_=a(v),E=e("./username-history"),w=a(E),O=e("./header"),k=a(O),N=e("./moderation/nav"),j=a(N),x=e("./navs"),P=e("../with-dropdown"),C=a(P),S=e("../../index"),T=a(S),M=e("../../reducers/profile"),L=e("../../services/polls"),R=a(L),A=e("../../services/store"),I=a(A),U=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.update=function(e){I["default"].dispatch((0,M.hydrate)(e))},r.toggleNav=function(){"pages"===r.state.dropdown?r.setState({dropdown:!1}):r.setState({dropdown:"pages"})},r.toggleModeration=function(){"moderation"===r.state.dropdown?r.setState({dropdown:!1}):r.setState({dropdown:"moderation"})},r.startPolling(e.profile.api_url.root),r}return s(t,e),u(t,[{key:"startPolling",value:function(e){R["default"].start({poll:"user-profile",url:e,frequency:9e4,update:this.update})}},{key:"getNavDropdown",value:function(){return"pages"===this.state.dropdown?f["default"].createElement(x.CompactNav,{pages:T["default"].get("PROFILE_PAGES"),baseUrl:T["default"].get("PROFILE").absolute_url,profile:this.props.profile,toggleModeration:this.toggleModeration,hideNav:this.hideNav}):"moderation"===this.state.dropdown?f["default"].createElement(j["default"],{profile:this.props.profile,toggleNav:this.toggleNav,hideNav:this.hideNav}):null}},{key:"getClassName",value:function(){var e="page page-user-profile";return e}},{key:"render",value:function(){return f["default"].createElement("div",{className:this.getClassName()},f["default"].createElement(k["default"],{user:this.props.user,profile:this.props.profile,toggleNav:this.toggleNav,toggleModeration:this.toggleModeration}),f["default"].createElement("div",{className:this.getCompactNavClassName()},this.getNavDropdown()),f["default"].createElement("div",{className:"container"},f["default"].createElement("div",{className:"row"},f["default"].createElement("div",{className:"col-md-3 hidden-xs hidden-sm"},f["default"].createElement("div",{className:"profile-side-avatar"},f["default"].createElement(h["default"],{user:this.props.profile,size:"400"})),f["default"].createElement(x.SideNav,{pages:T["default"].get("PROFILE_PAGES"),baseUrl:T["default"].get("PROFILE").absolute_url,profile:this.props.profile})),f["default"].createElement("div",{className:"col-md-9"},this.props.children))))}}]),t}(C["default"]);r["default"]=U;var D=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"render",value:function(){return f["default"].createElement("div",{className:"container"},f["default"].createElement("p",null,"Hello, I'm placeholder for "+this.props.route.name))}}]),t}(f["default"].Component),B={posts:D,threads:D,followers:g["default"],follows:_["default"],"username-history":w["default"],"ban-details":b["default"]}},{"../../index":119,"../../reducers/profile":156,"../../services/polls":171,"../../services/store":173,"../avatar":2,"../with-dropdown":117,"./ban-details":39,"./followers":41,"./follows":42,"./header":43,"./moderation/nav":47,"./navs":48,"./username-history":50,react:"react","react-redux":"react-redux"}],50:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../button"),f=a(c),d=e("../search"),p=a(d),h=e("../username-history/root"),m=a(h),b=e("../../index"),y=a(b),g=e("../../reducers/username-history"),v=e("../../services/ajax"),_=a(v),E=e("../../services/snackbar"),w=a(E),O=e("../../services/store"),k=a(O),N=e("../../services/page-title"),j=a(N),x=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.loadMore=function(){r.setState({isBusy:!0}),r.loadChanges(r.state.page+1,r.state.search)},r.search=function(e){r.setState({isLoaded:!1,isBusy:!0,search:e.target.value,count:0,more:0,page:1,pages:1}),r.loadChanges(1,e.target.value)},y["default"].has("PROFILE_NAME_HISTORY")?r.initWithPreloadedData(y["default"].pop("PROFILE_NAME_HISTORY")):r.initWithoutPreloadedData(),r}return s(t,e),i(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,g.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]?1:arguments[0],r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];_["default"].get(y["default"].get("USERNAME_CHANGES_API"),{user:this.props.profile.id,search:r,page:t||1},"search-username-history").then(function(r){1===t?k["default"].dispatch((0,g.hydrate)(r.results)):k["default"].dispatch((0,g.append)(r.results)),e.setState({isLoaded:!0,isBusy:!1,count:r.count,more:r.more,page:r.page,pages:r.pages})},function(e){w["default"].apiError(e)})}},{key:"componentDidMount",value:function(){j["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 r=ngettext("%(username)s's username was changed %(changes)s time.","%(username)s's username was changed %(changes)s times.",this.state.count);return interpolate(r,{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(f["default"],{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(m["default"],{isLoaded:this.state.isLoaded,emptyMessage:this.getEmptyMessage(),changes:this.props["username-history"]}),this.getMoreButton())}}]),t}(u["default"].Component);r["default"]=x},{"../../index":119,"../../reducers/username-history":161,"../../services/ajax":163,"../../services/page-title":170,"../../services/snackbar":172,"../../services/store":173,"../button":4,"../search":56,"../username-history/root":101,react:"react"}],51:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./loader"),f=a(c),d=e("./register.js"),p=a(d),h=e("../services/captcha"),m=a(h),b=e("../services/modal"),y=a(b),g=e("../services/snackbar"),v=a(g),_=e("../services/zxcvbn"),E=a(_),w=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.showRegisterModal=function(){"closed"===misago.get("SETTINGS").account_activation?v["default"].info(gettext("New registrations are currently disabled.")):r.state.isLoaded?y["default"].show(p["default"]):(r.setState({isLoading:!0}),Promise.all([m["default"].load(),E["default"].load()]).then(function(){r.state.isLoaded||r.setState({isLoading:!1,isLoaded:!1}),y["default"].show(p["default"])}))},r.state={isLoading:!1,isLoaded:!1},r}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.className+(this.state.isLoading?" btn-loading":"")}},{key:"render",value:function(){return u["default"].createElement("button",{type:"button",onClick:this.showRegisterModal,className:"btn "+this.getClassName(),disabled:this.state.isLoaded},gettext("Register"),this.state.isLoading?u["default"].createElement(f["default"],null):null)}}]),t}(u["default"].Component);r["default"]=w},{"../services/captcha":165,"../services/modal":169,"../services/snackbar":172,"../services/zxcvbn":174,"./loader":22,"./register.js":52,react:"react"}],52:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0}),r.RegisterComplete=r.RegisterForm=void 0;var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("./button"),d=n(f),p=e("./form"),h=n(p),m=e("./form-group"),b=n(m),y=e("./password-strength"),g=n(y),v=e("../index"),_=n(v),E=e("../services/ajax"),w=n(E),O=e("../services/auth"),k=n(O),N=e("../services/captcha"),j=n(N),x=e("../services/modal"),P=n(x),C=e("../services/snackbar"),S=n(C),T=e("../utils/banned-page"),M=n(T),L=e("../utils/validators"),R=a(L),A=r.RegisterForm=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));return r.state={isLoading:!1,username:"",email:"",password:"",captcha:"",validators:{username:[R.usernameContent(),R.usernameMinLength(_["default"].get("SETTINGS")),R.usernameMaxLength(_["default"].get("SETTINGS"))],email:[R.email()],password:[R.passwordMinLength(_["default"].get("SETTINGS"))],captcha:j["default"].validator()},errors:{}},r}return i(t,e),l(t,[{key:"clean",value:function(){return this.isValid()?!0:(S["default"].error(gettext("Form contains errors.")),this.setState({errors:this.validate()}),!1)}},{key:"send",value:function(){return w["default"].post(_["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)}),S["default"].error(gettext("Form contains errors."))):403===e.status&&e.ban?((0,M["default"])(e.ban),P["default"].hide()):S["default"].apiError(e)}},{key:"getLegalFootNote",value:function(){return _["default"].get("TERMS_OF_SERVICE_URL")?c["default"].createElement("a",{href:_["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 c["default"].createElement("div",{className:"modal-dialog modal-register",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("Register"))),c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"modal-body"},c["default"].createElement(b["default"],{label:gettext("Username"),"for":"id_username",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.username},c["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})),c["default"].createElement(b["default"],{label:gettext("E-mail"),"for":"id_email",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.email},c["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})),c["default"].createElement(b["default"],{label:gettext("Password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.password,extra:c["default"].createElement(g["default"],{password:this.state.password,inputs:[this.state.username,this.state.email]})},c["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,labelClass:"col-sm-4",controlClass:"col-sm-8"})),c["default"].createElement("div",{className:"modal-footer"},this.getLegalFootNote(),c["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Register account"))))))}}]),t}(h["default"]),I=r.RegisterComplete=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(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 c["default"].createElement("div",{className:"modal-dialog modal-message modal-register",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("Registration complete"))),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"},interpolate(this.getLead(),{username:this.props.username},!0)),c["default"].createElement("p",null,interpolate(this.getSubscript(),{email:this.props.email},!0))))))}}]),t}(c["default"].Component),U=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));return r.completeRegistration=function(e){"active"===e.activation?(P["default"].hide(),k["default"].signIn(e)):r.setState({complete:e})},r.state={complete:!1},r}return i(t,e),l(t,[{key:"render",value:function(){return this.state.complete?c["default"].createElement(I,{activation:this.state.complete.activation,username:this.state.complete.username,email:this.state.complete.email}):c["default"].createElement(A,{callback:this.completeRegistration})}}]),t}(c["default"].Component);r["default"]=U},{"../index":119,"../services/ajax":163,"../services/auth":164,"../services/captcha":165,"../services/modal":169,"../services/snackbar":172,"../utils/banned-page":175,"../utils/validators":188,"./button":4,"./form":20,"./form-group":19,"./password-strength":38,react:"react"}],53:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0}),r.LinkSent=r.RequestLinkForm=void 0;var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../index"),d=n(f),p=e("./button"),h=n(p),m=e("./form"),b=n(m),y=e("../services/ajax"),g=n(y),v=e("../services/snackbar"),_=n(v),E=e("../utils/validators"),w=a(E),O=e("../utils/banned-page"),k=n(O),N=r.RequestLinkForm=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));return r.state={isLoading:!1,email:"",validators:{email:[w.email()]}},r}return i(t,e),l(t,[{key:"clean",value:function(){return this.isValid()?!0:(_["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return g["default"].post(d["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(h["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(b["default"]),j=r.LinkSent=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(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",{type:"button",className:"btn btn-primary btn-block",onClick:this.props.callback},gettext("Request another link"))))}}]),t}(c["default"].Component),x=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));return r.complete=function(e){r.setState({complete:e})},r.reset=function(){r.setState({complete:!1})},r.state={complete:!1},r}return i(t,e),l(t,[{key:"render",value:function(){return this.state.complete?c["default"].createElement(j,{user:this.state.complete,callback:this.reset}):c["default"].createElement(N,{callback:this.complete})}}]),t}(c["default"].Component);r["default"]=x},{"../index":119,"../services/ajax":163,"../services/snackbar":172,"../utils/banned-page":175,"../utils/validators":188,"./button":4,"./form":20,react:"react"}],54:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0}),r.AccountInactivePage=r.LinkSent=r.RequestResetForm=void 0;var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("react-dom"),d=n(f),p=e("../index"),h=n(p),m=e("./button"),b=n(m),y=e("./form"),g=n(y),v=e("../services/ajax"),_=n(v),E=e("../services/snackbar"),w=n(E),O=e("../utils/validators"),k=a(O),N=e("../utils/banned-page"),j=n(N),x=r.RequestResetForm=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));return r.state={isLoading:!1,email:"",validators:{email:[k.email()]}},r}return i(t,e),l(t,[{key:"clean",value:function(){return this.isValid()?!0:(w["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return _["default"].post(h["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,j["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}(g["default"]),P=r.LinkSent=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(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=r.AccountInactivePage=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(t,[{key:"getActivateButton",value:function(){return"inactive_user"===this.props.activation?c["default"].createElement("p",null,c["default"].createElement("a",{href:h["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 r=s(this,Object.getPrototypeOf(t).call(this,e));return r.complete=function(e){r.setState({complete:e})},r.reset=function(){r.setState({complete:!1})},r.state={complete:!1},r}return i(t,e),l(t,[{key:"showInactivePage",value:function(e){d["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,{user:this.state.complete,callback:this.reset}):c["default"].createElement(x,{callback:this.complete,showInactivePage:this.showInactivePage})}}]),t}(c["default"].Component);r["default"]=S},{"../index":119,"../services/ajax":163,"../services/snackbar":172,"../utils/banned-page":175,"../utils/validators":188,"./button":4,"./form":20,react:"react","react-dom":"react-dom"}],55:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0}),r.PasswordChangedPage=r.ResetPasswordForm=void 0;var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("react-dom"),d=n(f),p=e("../index"),h=n(p),m=e("./button"),b=n(m),y=e("./form"),g=n(y),v=e("./sign-in.js"),_=n(v),E=e("../services/ajax"),w=n(E),O=e("../services/auth"),k=n(O),N=e("../services/modal"),j=n(N),x=e("../services/snackbar"),P=n(x),C=e("../utils/validators"),S=a(C),T=e("../utils/banned-page"),M=n(T),L=r.ResetPasswordForm=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));return r.state={isLoading:!1,password:"",validators:{password:[S.passwordMinLength(h["default"].get("SETTINGS"))]}},r}return i(t,e),l(t,[{key:"clean",value:function(){return this.isValid()?!0:(this.state.password.trim().length?P["default"].error(this.state.errors.password[0]):P["default"].error(gettext("Enter new password.")),!1)}},{key:"send",value:function(){return w["default"].post(h["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,M["default"])(e.ban):P["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-reset-password"},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:"password",className:"form-control",placeholder:gettext("Enter new password"),disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement(b["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Change password"))))}}]),t}(g["default"]),R=r.PasswordChangedPage=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(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(){j["default"].show(_["default"])}},{key:"render",value:function(){return c["default"].createElement("div",{className:"page page-message page-message-success page-forgotten-password-changed"},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"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,gettext("You will have to sign in using new password before continuing.")),c["default"].createElement("p",null,c["default"].createElement("button",{type:"button",className:"btn btn-primary",onClick:this.showSignIn},gettext("Sign in")))))))}}]),t}(c["default"].Component),A=function(e){function t(){var e,r,a,n;o(this,t);for(var i=arguments.length,l=Array(i),u=0;i>u;u++)l[u]=arguments[u];return r=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.complete=function(e){k["default"].softSignOut(),$('#hidden-login-form input[name="redirect_to"]').remove(),d["default"].render(c["default"].createElement(R,{user:e}),document.getElementById("page-mount"))},n=r,s(a,n)}return i(t,e),l(t,[{key:"render",value:function(){return c["default"].createElement(L,{callback:this.complete})}}]),t}(c["default"].Component);r["default"]=A},{"../index":119,"../services/ajax":163,"../services/auth":164,"../services/modal":169,"../services/snackbar":172,"../utils/banned-page":175,"../utils/validators":188,"./button":4,"./form":20,"./sign-in.js":58,react:"react","react-dom":"react-dom"}],56:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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);r["default"]=c},{react:"react"}],57:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){var e,r,a,s;n(this,t);for(var i=arguments.length,l=Array(i),u=0;i>u;u++)l[u]=arguments[u];return r=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.change=function(e){return function(){a.props.onChange({target:{value:e}})}},s=r,o(a,s)}return s(t,e),i(t,[{key:"getChoice",value:function(){var e=this,t=null;return this.props.choices.map(function(r){r.value===e.props.value&&(t=r)}),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 u["default"].createElement("div",{className:"btn-group btn-select-group"},u["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},u["default"].createElement("span",{className:"material-icon"},this.getIcon()),this.getLabel()),u["default"].createElement("ul",{className:"dropdown-menu"},this.props.choices.map(function(t,r){return u["default"].createElement("li",{key:r},u["default"].createElement("button",{type:"button",className:"btn-link",onClick:e.change(t.value)},u["default"].createElement("span",{className:"material-icon"},t.icon),t.label))})))}}]),t}(u["default"].Component);r["default"]=c},{react:"react"}],58:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../index"),f=a(c),d=e("./button"),p=a(d),h=e("./form"),m=a(h),b=e("../services/ajax"),y=a(b),g=e("../services/modal"),v=a(g),_=e("../services/snackbar"),E=a(_),w=e("../utils/banned-page"),O=a(w),k=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.state={isLoading:!1,showActivation:!1,username:"",password:"",validators:{username:[],password:[]}},r}return s(t,e),i(t,[{key:"clean",value:function(){return this.isValid()?!0:(E["default"].error(gettext("Fill out both fields.")),!1)}},{key:"send",value:function(){return y["default"].post(f["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(y["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),v["default"].hide()):E["default"].error(e.detail):403===e.status&&e.ban?((0,O["default"])(e.ban),v["default"].hide()):E["default"].apiError(e)}},{key:"getActivationButton",value:function(){return this.state.showActivation?u["default"].createElement("a",{href:f["default"].get("REQUEST_ACTIVATION_URL"),className:"btn btn-success btn-block"},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",{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("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",{id:"id_username",className:"form-control",type:"text",disabled:this.state.isLoading,placeholder:gettext("Username or e-mail"),onChange:this.bindInput("username"),value:this.state.username}))),u["default"].createElement("div",{className:"form-group"},u["default"].createElement("div",{className:"control-input"},u["default"].createElement("input",{id:"id_password",className:"form-control",type:"password",disabled:this.state.isLoading,placeholder:gettext("Password"),onChange:this.bindInput("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",{href:f["default"].get("FORGOTTEN_PASSWORD_URL"),className:"btn btn-default btn-block"},gettext("Forgot password?"))))))}}]),t}(m["default"]);r["default"]=k},{"../index":119,"../services/ajax":163,"../services/modal":169,"../services/snackbar":172,"../utils/banned-page":175,"./button":4,"./form":20,react:"react"}],59:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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.snackbar}Object.defineProperty(r,"__esModule",{value:!0}),r.Snackbar=void 0;var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}();r.select=i;var u=e("react"),c=a(u),f={info:"alert-info",success:"alert-success",warning:"alert-warning",error:"alert-danger"};r.Snackbar=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),l(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 "+f[this.props.type]},this.props.message))}}]),t}(c["default"].Component)},{react:"react"}],60:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getMessage",value:function(){var e=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.",this.props.diffSize);return interpolate(e,{threads:this.props.diffSize},!0)}},{key:"render",value:function(){return u["default"].createElement("li",{className:"list-group-item threads-diff-message"},u["default"].createElement("button",{type:"button",className:"btn btn-block btn-default",onClick:this.props.applyDiff},u["default"].createElement("span",{className:"material-icon"},"cached"),u["default"].createElement("span",{className:"diff-message"},this.getMessage())))}}]),t}(u["default"].Component);r["default"]=c},{react:"react"}],61:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e
 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("Register"))),c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"modal-body"},c["default"].createElement(b["default"],{label:gettext("Username"),"for":"id_username",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.username},c["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})),c["default"].createElement(b["default"],{label:gettext("E-mail"),"for":"id_email",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.email},c["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})),c["default"].createElement(b["default"],{label:gettext("Password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.password,extra:c["default"].createElement(g["default"],{password:this.state.password,inputs:[this.state.username,this.state.email]})},c["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,labelClass:"col-sm-4",controlClass:"col-sm-8"})),c["default"].createElement("div",{className:"modal-footer"},this.getLegalFootNote(),c["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Register account"))))))}}]),t}(h["default"]),I=r.RegisterComplete=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(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 c["default"].createElement("div",{className:"modal-dialog modal-message modal-register",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("Registration complete"))),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"},interpolate(this.getLead(),{username:this.props.username},!0)),c["default"].createElement("p",null,interpolate(this.getSubscript(),{email:this.props.email},!0))))))}}]),t}(c["default"].Component),U=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));return r.completeRegistration=function(e){"active"===e.activation?(P["default"].hide(),k["default"].signIn(e)):r.setState({complete:e})},r.state={complete:!1},r}return i(t,e),l(t,[{key:"render",value:function(){return this.state.complete?c["default"].createElement(I,{activation:this.state.complete.activation,username:this.state.complete.username,email:this.state.complete.email}):c["default"].createElement(A,{callback:this.completeRegistration})}}]),t}(c["default"].Component);r["default"]=U},{"../index":119,"../services/ajax":163,"../services/auth":164,"../services/captcha":165,"../services/modal":169,"../services/snackbar":172,"../utils/banned-page":175,"../utils/validators":188,"./button":4,"./form":20,"./form-group":19,"./password-strength":38,react:"react"}],53:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0}),r.LinkSent=r.RequestLinkForm=void 0;var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../index"),d=n(f),p=e("./button"),h=n(p),m=e("./form"),b=n(m),y=e("../services/ajax"),g=n(y),v=e("../services/snackbar"),_=n(v),E=e("../utils/validators"),w=a(E),O=e("../utils/banned-page"),k=n(O),N=r.RequestLinkForm=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));return r.state={isLoading:!1,email:"",validators:{email:[w.email()]}},r}return i(t,e),l(t,[{key:"clean",value:function(){return this.isValid()?!0:(_["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return g["default"].post(d["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(h["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(b["default"]),j=r.LinkSent=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(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",{type:"button",className:"btn btn-primary btn-block",onClick:this.props.callback},gettext("Request another link"))))}}]),t}(c["default"].Component),x=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));return r.complete=function(e){r.setState({complete:e})},r.reset=function(){r.setState({complete:!1})},r.state={complete:!1},r}return i(t,e),l(t,[{key:"render",value:function(){return this.state.complete?c["default"].createElement(j,{user:this.state.complete,callback:this.reset}):c["default"].createElement(N,{callback:this.complete})}}]),t}(c["default"].Component);r["default"]=x},{"../index":119,"../services/ajax":163,"../services/snackbar":172,"../utils/banned-page":175,"../utils/validators":188,"./button":4,"./form":20,react:"react"}],54:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0}),r.AccountInactivePage=r.LinkSent=r.RequestResetForm=void 0;var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("react-dom"),d=n(f),p=e("../index"),h=n(p),m=e("./button"),b=n(m),y=e("./form"),g=n(y),v=e("../services/ajax"),_=n(v),E=e("../services/snackbar"),w=n(E),O=e("../utils/validators"),k=a(O),N=e("../utils/banned-page"),j=n(N),x=r.RequestResetForm=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));return r.state={isLoading:!1,email:"",validators:{email:[k.email()]}},r}return i(t,e),l(t,[{key:"clean",value:function(){return this.isValid()?!0:(w["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return _["default"].post(h["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,j["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}(g["default"]),P=r.LinkSent=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(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=r.AccountInactivePage=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(t,[{key:"getActivateButton",value:function(){return"inactive_user"===this.props.activation?c["default"].createElement("p",null,c["default"].createElement("a",{href:h["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 r=s(this,Object.getPrototypeOf(t).call(this,e));return r.complete=function(e){r.setState({complete:e})},r.reset=function(){r.setState({complete:!1})},r.state={complete:!1},r}return i(t,e),l(t,[{key:"showInactivePage",value:function(e){d["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,{user:this.state.complete,callback:this.reset}):c["default"].createElement(x,{callback:this.complete,showInactivePage:this.showInactivePage})}}]),t}(c["default"].Component);r["default"]=S},{"../index":119,"../services/ajax":163,"../services/snackbar":172,"../utils/banned-page":175,"../utils/validators":188,"./button":4,"./form":20,react:"react","react-dom":"react-dom"}],55:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0}),r.PasswordChangedPage=r.ResetPasswordForm=void 0;var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("react-dom"),d=n(f),p=e("../index"),h=n(p),m=e("./button"),b=n(m),y=e("./form"),g=n(y),v=e("./sign-in.js"),_=n(v),E=e("../services/ajax"),w=n(E),O=e("../services/auth"),k=n(O),N=e("../services/modal"),j=n(N),x=e("../services/snackbar"),P=n(x),C=e("../utils/validators"),S=a(C),T=e("../utils/banned-page"),M=n(T),L=r.ResetPasswordForm=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));return r.state={isLoading:!1,password:"",validators:{password:[S.passwordMinLength(h["default"].get("SETTINGS"))]}},r}return i(t,e),l(t,[{key:"clean",value:function(){return this.isValid()?!0:(this.state.password.trim().length?P["default"].error(this.state.errors.password[0]):P["default"].error(gettext("Enter new password.")),!1)}},{key:"send",value:function(){return w["default"].post(h["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,M["default"])(e.ban):P["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-reset-password"},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:"password",className:"form-control",placeholder:gettext("Enter new password"),disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement(b["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Change password"))))}}]),t}(g["default"]),R=r.PasswordChangedPage=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(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(){j["default"].show(_["default"])}},{key:"render",value:function(){return c["default"].createElement("div",{className:"page page-message page-message-success page-forgotten-password-changed"},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"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,gettext("You will have to sign in using new password before continuing.")),c["default"].createElement("p",null,c["default"].createElement("button",{type:"button",className:"btn btn-primary",onClick:this.showSignIn},gettext("Sign in")))))))}}]),t}(c["default"].Component),A=function(e){function t(){var e,r,a,n;o(this,t);for(var i=arguments.length,l=Array(i),u=0;i>u;u++)l[u]=arguments[u];return r=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.complete=function(e){k["default"].softSignOut(),$('#hidden-login-form input[name="redirect_to"]').remove(),d["default"].render(c["default"].createElement(R,{user:e}),document.getElementById("page-mount"))},n=r,s(a,n)}return i(t,e),l(t,[{key:"render",value:function(){return c["default"].createElement(L,{callback:this.complete})}}]),t}(c["default"].Component);r["default"]=A},{"../index":119,"../services/ajax":163,"../services/auth":164,"../services/modal":169,"../services/snackbar":172,"../utils/banned-page":175,"../utils/validators":188,"./button":4,"./form":20,"./sign-in.js":58,react:"react","react-dom":"react-dom"}],56:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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);r["default"]=c},{react:"react"}],57:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){var e,r,a,s;n(this,t);for(var i=arguments.length,l=Array(i),u=0;i>u;u++)l[u]=arguments[u];return r=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.change=function(e){return function(){a.props.onChange({target:{value:e}})}},s=r,o(a,s)}return s(t,e),i(t,[{key:"getChoice",value:function(){var e=this,t=null;return this.props.choices.map(function(r){r.value===e.props.value&&(t=r)}),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 u["default"].createElement("div",{className:"btn-group btn-select-group"},u["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},u["default"].createElement("span",{className:"material-icon"},this.getIcon()),this.getLabel()),u["default"].createElement("ul",{className:"dropdown-menu"},this.props.choices.map(function(t,r){return u["default"].createElement("li",{key:r},u["default"].createElement("button",{type:"button",className:"btn-link",onClick:e.change(t.value)},u["default"].createElement("span",{className:"material-icon"},t.icon),t.label))})))}}]),t}(u["default"].Component);r["default"]=c},{react:"react"}],58:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../index"),f=a(c),d=e("./button"),p=a(d),h=e("./form"),m=a(h),b=e("../services/ajax"),y=a(b),g=e("../services/modal"),v=a(g),_=e("../services/snackbar"),E=a(_),w=e("../utils/banned-page"),O=a(w),k=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.state={isLoading:!1,showActivation:!1,username:"",password:"",validators:{username:[],password:[]}},r}return s(t,e),i(t,[{key:"clean",value:function(){return this.isValid()?!0:(E["default"].error(gettext("Fill out both fields.")),!1)}},{key:"send",value:function(){return y["default"].post(f["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(y["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),v["default"].hide()):E["default"].error(e.detail):403===e.status&&e.ban?((0,O["default"])(e.ban),v["default"].hide()):E["default"].apiError(e)}},{key:"getActivationButton",value:function(){return this.state.showActivation?u["default"].createElement("a",{href:f["default"].get("REQUEST_ACTIVATION_URL"),className:"btn btn-success btn-block"},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",{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("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",{id:"id_username",className:"form-control",type:"text",disabled:this.state.isLoading,placeholder:gettext("Username or e-mail"),onChange:this.bindInput("username"),value:this.state.username}))),u["default"].createElement("div",{className:"form-group"},u["default"].createElement("div",{className:"control-input"},u["default"].createElement("input",{id:"id_password",className:"form-control",type:"password",disabled:this.state.isLoading,placeholder:gettext("Password"),onChange:this.bindInput("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",{href:f["default"].get("FORGOTTEN_PASSWORD_URL"),className:"btn btn-default btn-block"},gettext("Forgot password?"))))))}}]),t}(m["default"]);r["default"]=k},{"../index":119,"../services/ajax":163,"../services/modal":169,"../services/snackbar":172,"../utils/banned-page":175,"./button":4,"./form":20,react:"react"}],59:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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.snackbar}Object.defineProperty(r,"__esModule",{value:!0}),r.Snackbar=void 0;var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}();r.select=i;var u=e("react"),c=a(u),f={info:"alert-info",success:"alert-success",warning:"alert-warning",error:"alert-danger"};r.Snackbar=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),l(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 "+f[this.props.type]},this.props.message))}}]),t}(c["default"].Component)},{react:"react"}],60:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getMessage",value:function(){var e=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.",this.props.diffSize);return interpolate(e,{threads:this.props.diffSize},!0)}},{key:"render",value:function(){return u["default"].createElement("li",{className:"list-group-item threads-diff-message"},u["default"].createElement("button",{type:"button",className:"btn btn-block btn-default",onClick:this.props.applyDiff},u["default"].createElement("span",{className:"material-icon"},"cached"),u["default"].createElement("span",{className:"diff-message"},this.getMessage())))}}]),t}(u["default"].Component);r["default"]=c},{react:"react"}],61:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e
-}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./diff-message"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getDiffMessage",value:function(){return this.props.diffSize>0?u["default"].createElement(f["default"],{diffSize:this.props.diffSize,applyDiff:this.props.applyDiff}):null}},{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);r["default"]=d},{"./diff-message":60,react:"react"}],62:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../thread/preview"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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"},[0,1,2].map(function(e){return u["default"].createElement(f["default"],{hiddenOnMobile:e>0,key:e})})))}}]),t}(u["default"].Component);r["default"]=d},{"../thread/preview":71,react:"react"}],63:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./diff-message"),f=a(c),d=e("../thread/ready"),p=a(d),h=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getDiffMessage",value:function(){return this.props.diffSize>0?u["default"].createElement(f["default"],{diffSize:this.props.diffSize,applyDiff:this.props.applyDiff}):null}},{key:"render",value:function(){var e=this;return u["default"].createElement("div",{className:"threads-list ui-ready"},u["default"].createElement("ul",{className:"list-group"},this.getDiffMessage(),this.props.threads.map(function(t){return u["default"].createElement(p["default"],{categories:e.props.categories,thread:t,list:e.props.list,showOptions:e.props.showOptions,isSelected:e.props.selection.indexOf(t.id)>=0,isBusy:e.props.busyThreads.indexOf(t.id)>=0,key:t.id})})))}}]),t}(u["default"].Component);r["default"]=h},{"../thread/ready":72,"./diff-message":60,react:"react"}],64:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./list/empty"),f=a(c),d=e("./list/ready"),p=a(d),h=e("./list/preview"),m=a(h),b=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return this.props.isLoaded?this.props.threads.length>0?u["default"].createElement(p["default"],{threads:this.props.threads,categories:this.props.categories,list:this.props.list,diffSize:this.props.diffSize,applyDiff:this.props.applyDiff,showOptions:this.props.showOptions,selection:this.props.selection,busyThreads:this.props.busyThreads}):u["default"].createElement(f["default"],{diffSize:this.props.diffSize,applyDiff:this.props.applyDiff},this.props.children):u["default"].createElement(m["default"],null)}}]),t}(u["default"].Component);r["default"]=b},{"./list/empty":61,"./list/preview":62,"./list/ready":63,react:"react"}],65:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("react-router"),f=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getUrl",value:function(){return this.props.category.absolute_url+this.props.list.path}},{key:"getClassName",value:function(){return this.props.category.css_class?"thread-category thread-category-"+this.props.category.css_class:"thread-category"}},{key:"render",value:function(){return u["default"].createElement(c.Link,{to:this.getUrl(),className:this.getClassName()},this.props.category.name)}}]),t}(u["default"].Component);r["default"]=f},{react:"react","react-router":"react-router"}],66:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../category"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getPath",value:function(){var e=this.props.categories[this.props.thread.top_category],t=this.props.categories[this.props.thread.category];return e&&t&&e.id!==t.id?u["default"].createElement("li",{className:"thread-path"},u["default"].createElement(f["default"],{category:t,list:this.props.list})):e?u["default"].createElement("li",{className:"thread-path"},u["default"].createElement(f["default"],{category:e,list:this.props.list})):null}},{key:"getRepliesCount",value:function(){return u["default"].createElement("li",{className:"thread-replies-count"},u["default"].createElement("span",{className:"material-icon"},"forum"),u["default"].createElement("span",{className:"icon-legend"},this.props.thread.replies))}},{key:"getLastReply",value:function(){return u["default"].createElement("li",{className:"thread-last-reply-clock"},u["default"].createElement("span",{className:"material-icon"},"schedule"),u["default"].createElement("span",{className:"icon-legend"},this.props.thread.last_post_on.fromNow()))}},{key:"render",value:function(){return u["default"].createElement("ul",{className:"thread-details-compact list-inline"},this.getPath(),this.getRepliesCount(),this.getLastReply())}}]),t}(u["default"].Component);r["default"]=d},{"../category":65,react:"react"}],67:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../category"),f=a(c),d=e("../../../../utils/escape-html"),p=a(d),h='<a href="%(url)s" class="poster-title">%(user)s</a>',m='<span class="poster-title">%(user)s</span>',b='<a href="%(url)s" class="last-title" title="%(absolute)s">%(relative)s</a>',y=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getNewLabel",value:function(){return this.props.thread.is_read?null:u["default"].createElement("li",{className:"thread-new-posts",title:gettext("Go to first unread post")},u["default"].createElement("a",{href:this.props.thread.new_post_url},u["default"].createElement("span",{className:"material-icon"},"comment"),u["default"].createElement("span",{className:"icon-legend"},gettext("New posts"))))}},{key:"getPinnedLabel",value:function(){return 2===this.props.thread.weight?u["default"].createElement("li",{className:"thread-pinned-globally"},u["default"].createElement("span",{className:"material-icon"},"bookmark"),u["default"].createElement("span",{className:"icon-legend"},gettext("Pinned globally"))):1===this.props.thread.weight?u["default"].createElement("li",{className:"thread-pinned-locally"},u["default"].createElement("span",{className:"material-icon"},"bookmark_border"),u["default"].createElement("span",{className:"icon-legend"},gettext("Pinned locally"))):null}},{key:"getUnapprovedLabel",value:function(){return this.props.thread.is_unapproved?u["default"].createElement("li",{className:"thread-unapproved"},u["default"].createElement("span",{className:"material-icon"},"remove_circle"),u["default"].createElement("span",{className:"icon-legend"},gettext("Unapproved"))):this.props.thread.has_unapproved_posts?u["default"].createElement("li",{className:"thread-unapproved-posts"},u["default"].createElement("span",{className:"material-icon"},"remove_circle_outline"),u["default"].createElement("span",{className:"icon-legend"},gettext("Unapproved posts"))):null}},{key:"getHiddenLabel",value:function(){return this.props.thread.is_hidden?u["default"].createElement("li",{className:"thread-hidden"},u["default"].createElement("span",{className:"material-icon"},"visibility_off"),u["default"].createElement("span",{className:"icon-legend"},gettext("Hidden"))):null}},{key:"getClosedLabel",value:function(){return this.props.thread.is_closed?u["default"].createElement("li",{className:"thread-closed"},u["default"].createElement("span",{className:"material-icon"},"lock_outline"),u["default"].createElement("span",{className:"icon-legend"},gettext("Closed"))):null}},{key:"getPath",value:function(){var e=this.props.categories[this.props.thread.top_category],t=this.props.categories[this.props.thread.category];return e&&t&&e.id!==t.id?u["default"].createElement("li",{className:"thread-path"},u["default"].createElement(f["default"],{category:e,list:this.props.list}),u["default"].createElement("span",{className:"path-separator material-icon"},"arrow_forward"),u["default"].createElement(f["default"],{category:t,list:this.props.list})):e?u["default"].createElement("li",{className:"thread-path"},u["default"].createElement(f["default"],{category:e,list:this.props.list})):null}},{key:"getRepliesCount",value:function(){var e=ngettext("%(replies)s reply","%(replies)s replies",this.props.thread.replies);return u["default"].createElement("li",{className:"thread-replies"},u["default"].createElement("span",{className:"material-icon"},"forum"),u["default"].createElement("span",{className:"icon-legend"},interpolate(e,{replies:this.props.thread.replies},!0)))}},{key:"getLastReplyDate",value:function(){return interpolate(b,{url:(0,p["default"])(this.props.thread.last_post_url),absolute:(0,p["default"])(this.props.thread.last_post_on.format("LLL")),relative:(0,p["default"])(this.props.thread.last_post_on.fromNow())},!0)}},{key:"getLastPoster",value:function(){return this.props.thread.last_poster_url?interpolate(h,{url:(0,p["default"])(this.props.thread.last_poster_url),user:(0,p["default"])(this.props.thread.last_poster_name)},!0):interpolate(m,{user:(0,p["default"])(this.props.thread.last_poster_name)},!0)}},{key:"getLastReply",value:function(){return u["default"].createElement("li",{className:"thread-last-reply",dangerouslySetInnerHTML:{__html:interpolate((0,p["default"])(gettext("last reply by %(user)s %(date)s")),{date:this.getLastReplyDate(),user:this.getLastPoster()},!0)}})}},{key:"render",value:function(){return u["default"].createElement("ul",{className:"thread-details-full list-inline"},this.getNewLabel(),this.getPinnedLabel(),this.getUnapprovedLabel(),this.getHiddenLabel(),this.getClosedLabel(),this.getPath(),this.getRepliesCount(),this.getLastReply())}}]),t}(u["default"].Component);r["default"]=y},{"../../../../utils/escape-html":179,"../category":65,react:"react"}],68:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getPinnedIcon",value:function(){return 2===this.props.thread.weight?u["default"].createElement("span",{className:"thread-pinned-globally"},u["default"].createElement("span",{className:"material-icon"},"bookmark")):1===this.props.thread.weight?u["default"].createElement("span",{className:"thread-pinned-locally"},u["default"].createElement("span",{className:"material-icon"},"bookmark_border")):null}},{key:"getUnapprovedIcon",value:function(){return this.props.thread.is_unapproved?u["default"].createElement("span",{className:"thread-unapproved"},u["default"].createElement("span",{className:"material-icon"},"remove_circle")):this.props.thread.has_unapproved_posts?u["default"].createElement("span",{className:"thread-unapproved-posts"},u["default"].createElement("span",{className:"material-icon"},"remove_circle_outline")):null}},{key:"getHiddenIcon",value:function(){return this.props.thread.is_hidden?u["default"].createElement("span",{className:"thread-hidden"},u["default"].createElement("span",{className:"material-icon"},"visibility_off")):null}},{key:"getClosedIcon",value:function(){return this.props.thread.is_closed?u["default"].createElement("span",{className:"thread-closed"},u["default"].createElement("span",{className:"material-icon"},"lock_outline")):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"thread-flags"},this.getPinnedIcon(),this.getUnapprovedIcon(),this.getHiddenIcon(),this.getClosedIcon())}}]),t}(u["default"].Component);r["default"]=c},{react:"react"}],69:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.thread.is_read?"read-status item-read":"read-status item-new"}},{key:"getTitle",value:function(){return this.props.thread.is_read?gettext("This thread has no new posts."):gettext("This thread has new posts.")}},{key:"getIcon",value:function(){return this.props.thread.is_read?"chat_bubble_outline":"chat_bubble"}},{key:"getUrl",value:function(){return this.props.thread.is_read?this.props.thread.last_post_url:this.props.thread.new_post_url}},{key:"render",value:function(){return u["default"].createElement("a",{className:this.getClassName(),href:this.getUrl(),title:this.getTitle()},u["default"].createElement("span",{className:"material-icon"},this.getIcon()))}}]),t}(u["default"].Component);r["default"]=c},{react:"react"}],70:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("./subscription/compact"),d=n(f),p=e("./subscription/full"),h=n(p),m=e("../../../reducers/selection"),b=a(m),y=e("../../../services/store"),g=n(y),v=function(e){function t(){var e,r,a,n;o(this,t);for(var i=arguments.length,l=Array(i),u=0;i>u;u++)l[u]=arguments[u];return r=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.toggleSelection=function(){g["default"].dispatch(b.item(a.props.thread.id))},n=r,s(a,n)}return i(t,e),l(t,[{key:"getSelectToggle",value:function(){return this.props.thread.moderation.length?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-default btn-checkbox",onClick:this.toggleSelection,disabled:this.props.disabled},c["default"].createElement("span",{className:"material-icon"},this.props.isSelected?"check_box":"check_box_outline_blank"),c["default"].createElement("span",{className:"icon-legend"},this.props.isSelected?gettext("Selected"):gettext("Select")))):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"thread-options"},c["default"].createElement("ul",{className:"list-inline"},this.getSelectToggle(),c["default"].createElement(h["default"],{thread:this.props.thread,disabled:this.props.disabled}),c["default"].createElement(d["default"],{thread:this.props.thread,disabled:this.props.disabled})))}}]),t}(c["default"].Component);r["default"]=v},{"../../../reducers/selection":157,"../../../services/store":173,"./subscription/compact":73,"./subscription/full":74,react:"react"}],71:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../../../utils/random"),d=a(f),p=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"getClassName",value:function(){return this.props.hiddenOnMobile?"list-group-item thread-preview hidden-xs hidden-sm":"list-group-item thread-preview"}},{key:"render",value:function(){return c["default"].createElement("li",{className:this.getClassName()},c["default"].createElement("div",{className:"thread-icon"},c["default"].createElement("span",{className:"read-status item-read"},c["default"].createElement("span",{className:"material-icon"},"chat_bubble_outline"))),c["default"].createElement("div",{className:"thread-main"},c["default"].createElement("span",{className:"item-title thread-title"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:d["int"](60,200)+"px"}}," ")),c["default"].createElement("ul",{className:"thread-details-compact list-inline"},c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:d["int"](20,70)+"px"}}," ")),c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:d["int"](20,70)+"px"}}," ")),c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:d["int"](20,70)+"px"}}," "))),c["default"].createElement("ul",{className:"thread-details-full list-inline"},c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:d["int"](50,150)+"px"}}," ")),c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:d["int"](50,100)+"px"}}," ")),c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:d["int"](100,250)+"px"}}," ")))),c["default"].createElement("div",{className:"clearfix"}))}}]),t}(c["default"].Component);r["default"]=p},{"../../../utils/random":183,react:"react"}],72:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../../loader"),f=a(c),d=e("./details/compact"),p=a(d),h=e("./details/full"),m=a(h),b=e("./flags"),y=a(b),g=e("./icon"),v=a(g),_=e("./options"),E=a(_),w=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getIcon",value:function(){return this.props.isBusy?u["default"].createElement(f["default"],null):u["default"].createElement(v["default"],{thread:this.props.thread})}},{key:"getOptions",value:function(){return this.props.showOptions?u["default"].createElement(E["default"],{thread:this.props.thread,disabled:this.props.isBusy,isSelected:this.props.isSelected}):null}},{key:"getClassName",value:function(){var e=["list-group-item"];return this.props.thread.is_read?e.push("thread-read"):e.push("thread-new"),this.props.isBusy?e.push("thread-busy"):this.props.isSelected&&e.push("thread-selected"),this.props.showOptions&&(this.props.thread.moderation.length?e.push("thread-ops-two"):e.push("thread-ops-one")),e.join(" ")}},{key:"render",value:function(){return u["default"].createElement("li",{className:this.getClassName()},u["default"].createElement("div",{className:"thread-icon"},this.getIcon(),u["default"].createElement(y["default"],{thread:this.props.thread})),this.getOptions(),u["default"].createElement("div",{className:"thread-main"},u["default"].createElement("a",{href:this.props.thread.absolute_url,className:"item-title thread-title"},this.props.thread.title),u["default"].createElement(m["default"],{categories:this.props.categories,list:this.props.list,thread:this.props.thread}),u["default"].createElement(p["default"],{categories:this.props.categories,list:this.props.list,thread:this.props.thread})),u["default"].createElement("div",{className:"clearfix"}))}}]),t}(u["default"].Component);r["default"]=w},{"../../loader":22,"./details/compact":66,"./details/full":67,"./flags":68,"./icon":69,"./options":70,react:"react"}],73:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./full"),f=a(c),d=e("./modal"),p=a(d),h=e("../../../../services/modal"),m=a(h),b=function(e){function t(){var e,r,a,s;n(this,t);for(var i=arguments.length,l=Array(i),c=0;i>c;c++)l[c]=arguments[c];return r=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.showOptions=function(){m["default"].show(u["default"].createElement(p["default"],{thread:a.props.thread}))},s=r,o(a,s)}return s(t,e),i(t,[{key:"render",value:function(){return u["default"].createElement("li",{className:"hidden-md hidden-lg"},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()),u["default"].createElement("span",{className:"icon-legend"},this.getLegend())))}}]),t}(f["default"]);r["default"]=b},{"../../../../services/modal":169,"./full":74,"./modal":75,react:"react"}],74:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./options"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(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:"getLegend",value:function(){return this.props.thread.subscription===!0?gettext("E-mail"):this.props.thread.subscription===!1?gettext("Enabled"):gettext("Disabled")}},{key:"getClassName",value:function(){return this.props.thread.subscription===!0?"btn btn-default btn-subscribe btn-subscribe-full dropdown-toggle":this.props.thread.subscription===!1?"btn btn-default btn-subscribe btn-subscribe-half dropdown-toggle":"btn btn-default btn-subscribe dropdown-toggle"}},{key:"render",value:function(){return u["default"].createElement("li",{className:"hidden-xs hidden-sm"},u["default"].createElement("div",{className:"btn-group"},u["default"].createElement("button",{type:"button",className:this.getClassName(),disabled:this.props.disabled,"data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},u["default"].createElement("span",{className:"material-icon"},this.getIcon()),u["default"].createElement("span",{className:"icon-legend"},this.getLegend())),u["default"].createElement(f["default"],{className:"dropdown-menu dropdown-menu-right",thread:this.props.thread})))}}]),t}(u["default"].Component);r["default"]=d},{"./options":76,react:"react"}],75:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./options"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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(f["default"],{className:"modal-menu",thread:this.props.thread})))}}]),t}(u["default"].Component);r["default"]=d},{"./options":76,react:"react"}],76:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../../../button"),f=(a(c),e("../../../../reducers/threads")),d=e("../../../../services/ajax"),p=a(d),h=e("../../../../services/modal"),m=a(h),b=e("../../../../services/snackbar"),y=a(b),g=e("../../../../services/store"),v=a(g),_={unsubscribe:null,notify:!1,email:!0},E=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.setSubscription=function(e){m["default"].hide(),r.setState({isLoading:!0});var t=r.props.thread.subscription;v["default"].dispatch((0,f.patch)(r.props.thread,{subscription:_[e]})),p["default"].patch(r.props.thread.api_url,[{op:"replace",path:"subscription",value:e}]).then(function(){r.setState({isLoading:!1})},function(e){r.setState({isLoading:!1}),v["default"].dispatch((0,f.patch)(r.props.thread,{subscription:_[t]})),y["default"].apiError(e)})},r.unsubscribe=function(){r.setSubscription("unsubscribe")},r.notify=function(){r.setSubscription("notify")},r.email=function(){r.setSubscription("email")},r.state={isLoading:!1},r}return s(t,e),i(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);r["default"]=E},{"../../../../reducers/threads":159,"../../../../services/ajax":163,"../../../../services/modal":169,"../../../../services/snackbar":172,"../../../../services/store":173,"../../../button":4,react:"react"}],77:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0}),r.Subcategory=void 0;var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("react-router"),f=r.Subcategory=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getUrl",value:function(){return this.props.listPath?this.props.category.absolute_url+this.props.listPath:this.props.category.absolute_url}},{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),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){var e=this;return u["default"].createElement("div",{className:"btn-group category-picker"},u["default"].createElement("button",{type:"button",className:"btn btn-default dropdown-toggle","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},u["default"].createElement("span",{className:"material-icon"},"more_vert"),gettext("Go to")),u["default"].createElement("ul",{className:"dropdown-menu categories-menu"},this.props.choices.map(function(t){return e.props.categories[t]?u["default"].createElement(f,{category:e.props.categories[t],listPath:e.props.list.path,key:t}):null})))}}]),t}(u["default"].Component);r["default"]=d},{react:"react","react-router":"react-router"}],78:[function(e,t,r){"use strict";function a(e,t){return e.last_post>t.last_post?-1:e.last_post<t.last_post?1:0}function n(e,t){return 2===e.weight&&e.weight>t.weight?-1:2===t.weight&&e.weight<t.weight?1:a(e,t)}function o(e,t){return e.weight>t.weight?-1:e.weight<t.weight?1:a(e,t)}Object.defineProperty(r,"__esModule",{value:!0}),r.compareLastPostAge=a,r.compareGlobalWeight=n,r.compareWeight=o},{}],79:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../page-lead"),f=a(c),d=e("./toolbar"),p=a(d),h=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getCategoryDescription",value:function(){return this.props.route.category.description?u["default"].createElement("div",{className:"category-description"},u["default"].createElement(f["default"],{copy:this.props.route.category.description.html})):null}},{key:"getToolbarLabel",value:function(){if(this.props.isLoaded){var e=null;return e=this.props.route.list.path?ngettext("%(threads)s thread found.","%(threads)s threads found.",this.props.threadsCount):this.props.route.category.parent?ngettext("There is %(threads)s thread in this category.","There are %(threads)s threads in this category.",this.props.threadsCount):ngettext("There is %(threads)s thread on our forums.","There are %(threads)s threads on our forums.",this.props.threadsCount),interpolate(e,{threads:this.props.threadsCount},!0)}return gettext("Loading threads...")}},{key:"getDisableToolbar",value:function(){return!this.props.isLoaded||this.props.isBusy||this.props.busyThreads.length}},{key:"getToolbar",value:function(){return this.props.subcategories.length||this.props.user.id?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,route:this.props.route,disabled:this.getDisableToolbar(),user:this.props.user},this.getToolbarLabel()):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"container"},this.getCategoryDescription(),this.getToolbar(),this.props.children)}}]),t}(u["default"].Component);r["default"]=h},{"../page-lead":35,"./toolbar":90,react:"react"}],80:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("react-router"),f=e("../button"),d=a(f),p=e("../dropdown-toggle"),h=a(p),m=e("./navs"),b=e("../../reducers/threads"),y=e("../../services/ajax"),g=a(y),v=e("../../services/snackbar"),_=a(v),E=e("../../services/store"),w=a(E),O=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.markAsRead=function(){r.setState({isBusy:!0}),g["default"].post(r.props.route.category.api_url.read).then(function(){w["default"].dispatch((0,b.read)()),r.setState({isBusy:!1}),_["default"].success(gettext("Threads have been marked as read."))},function(e){r.setState({isBusy:!1}),_["default"].apiError(e)})},r.startThread=function(){console.log("TODO: Start thread form!")},r.state={isBusy:!1},r}return s(t,e),i(t,[{key:"getGoBackButton",value:function(){if(this.props.route.category.parent){var e=this.props.categories[this.props.route.category.parent];return u["default"].createElement(c.Link,{className:"btn btn-default btn-aligned btn-icon btn-go-back pull-left",to:e.absolute_url+this.props.route.list.path},u["default"].createElement("span",{className:"material-icon"},"keyboard_arrow_left"))}return null}},{key:"getStartThreadButton",value:function(){return this.props.user.id?u["default"].createElement(d["default"],{className:"btn btn-success btn-aligned hidden-xs hidden-sm",onClick:this.startThread,disabled:this.props.disabled},u["default"].createElement("span",{className:"material-icon"},"chat"),gettext("Start thread")):null}},{key:"getMarkAsReadButton",value:function(){return this.props.user.id?u["default"].createElement(d["default"],{className:"btn btn-default btn-aligned hidden-xs hidden-sm",onClick:this.markAsRead,loading:this.state.isBusy,disabled:this.props.disabled},u["default"].createElement("span",{className:"material-icon"},"playlist_add_check"),gettext("Mark as read")):null}},{key:"getCompactNavToggle",value:function(){return this.props.route.lists.length>1?u["default"].createElement(h["default"],{toggleNav:this.props.toggleNav,dropdown:this.props.dropdown}):null}},{key:"getTabsNav",value:function(){return this.props.route.lists.length>1?u["default"].createElement(m.TabsNav,{baseUrl:this.props.route.category.absolute_url,list:this.props.route.list,lists:this.props.route.lists}):null}},{key:"getClassName",value:function(){return this.props.route.lists.length>1?"page-header tabbed":"page-header"}},{key:"render",value:function(){return u["default"].createElement("div",{className:this.getClassName()},u["default"].createElement("div",{className:"container"},this.getGoBackButton(),u["default"].createElement("h1",{className:"pull-left"},this.props.title),this.getStartThreadButton(),this.getMarkAsReadButton(),this.getCompactNavToggle()),this.getTabsNav())}}]),t}(u["default"].Component);r["default"]=O},{"../../reducers/threads":159,"../../services/ajax":163,"../../services/snackbar":172,"../../services/store":173,"../button":4,"../dropdown-toggle":18,"./navs":87,react:"react","react-router":"react-router"}],81:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return"all"===this.props.list.type?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);r["default"]=c},{react:"react"}],82:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("./errors-list"),d=n(f),p=e("./merge"),h=n(p),m=e("./move"),b=n(m),y=e("../../../reducers/selection"),g=a(y),v=e("../../../services/ajax"),_=n(v),E=e("../../../services/modal"),w=n(E),O=e("../../../services/snackbar"),k=n(O),N=e("../../../services/store"),j=n(N),x=e("../../../utils/countdown"),P=n(x),C=function(e){function t(){var e,r,a,n;o(this,t);for(var i=arguments.length,l=Array(i),u=0;i>u;u++)l[u]=arguments[u];return r=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.callApi=function(e,t){var r=arguments.length<=2||void 0===arguments[2]?null:arguments[2],n=[],o=new P["default"](function(){a.props.threads.forEach(function(e){a.props.freezeThread(e.id)}),n.length?w["default"].show(c["default"].createElement(d["default"],{errors:n})):(k["default"].success(t),r&&r())},a.props.threads.length);a.props.threads.forEach(function(t){a.props.freezeThread(t.id),_["default"].patch(t.api_url,e).then(function(e){a.props.updateThread(e),o.count()},function(e){n.push({thread:t,errors:[e.detail]}),o.count()})})},a.pinGlobally=function(){a.callApi([{op:"replace",path:"weight",value:2}],gettext("Selected threads were pinned globally."))},a.pinLocally=function(){a.callApi([{op:"replace",path:"weight",value:1}],gettext("Selected threads were pinned locally."))},a.unpin=function(){a.callApi([{op:"replace",path:"weight",value:0}],gettext("Selected threads were unpinned."))},a.approve=function(){a.callApi([{op:"replace",path:"is-unapproved",value:!1}],gettext("Selected threads were approved."))},a.open=function(){a.callApi([{op:"replace",path:"is-closed",value:!1}],gettext("Selected threads were opened."))},a.close=function(){a.callApi([{op:"replace",path:"is-closed",value:!0}],gettext("Selected threads were closed."))},a.unhide=function(){a.callApi([{op:"replace",path:"is-hidden",value:!1}],gettext("Selected threads were unhidden."))},a.hide=function(){a.callApi([{op:"replace",path:"is-hidden",value:!0}],gettext("Selected threads were hidden."))},a.move=function(){w["default"].show(c["default"].createElement(b["default"],{callApi:a.callApi,categories:a.props.categories,categoriesMap:a.props.categoriesMap,route:a.props.route,user:a.props.user}))},a.merge=function(){var e=[];if(a.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.")]})}),a.props.threads.length<2)k["default"].info(gettext("You have to select at least two threads to merge."));else{if(e.length)return void w["default"].show(c["default"].createElement(d["default"],{errors:e}));w["default"].show(c["default"].createElement(h["default"],a.props))}},a["delete"]=function(){if(confirm(gettext("Are you sure you want to delete selected threads?"))){var e=[],t=new P["default"](function(){e.length?w["default"].show(c["default"].createElement(d["default"],{errors:e})):k["default"].success(gettext("Selected threads were deleted.")),a.props.threads.forEach(function(e){a.props.freezeThread(e.id)}),j["default"].dispatch(g.all(a.props.threads.map(function(e){return e.id})))},a.props.threads.length);a.props.threads.forEach(function(r){a.props.freezeThread(r.id),_["default"]["delete"](r.api_url).then(function(e){a.props.freezeThread(r.id),a.props.deleteThread(r),t.count()},function(a){e.push({thread:r,errors:[a.detail]}),t.count()})})}},n=r,s(a,n)}return i(t,e),l(t,[{key:"getPinGloballyButton",value:function(){return 2==this.props.moderation.can_pin?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.pinGlobally},gettext("Pin threads globally"))):null}},{key:"getPinLocallyButton",value:function(){return this.props.moderation.can_pin>0?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.pinLocally},gettext("Pin threads locally"))):null}},{key:"getUnpinButton",value:function(){return this.props.moderation.can_pin>0?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.unpin},gettext("Unpin threads"))):null}},{key:"getMoveButton",value:function(){return this.props.moderation.can_move?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.move},gettext("Move threads"))):null}},{key:"getMergeButton",value:function(){return this.props.moderation.can_merge?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.merge},gettext("Merge threads"))):null}},{key:"getApproveButton",value:function(){return this.props.moderation.can_approve?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.approve},gettext("Approve threads"))):null}},{key:"getOpenButton",value:function(){return this.props.moderation.can_close?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.open},gettext("Open threads"))):null}},{key:"getCloseButton",value:function(){return this.props.moderation.can_close?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.close},gettext("Close threads"))):null}},{key:"getUnhideButton",value:function(){return this.props.moderation.can_hide?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.unhide},gettext("Unhide threads"))):null}},{key:"getHideButton",value:function(){return this.props.moderation.can_hide?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.hide},gettext("Hide threads"))):null}},{key:"getDeleteButton",value:function(){return 2==this.props.moderation.can_hide?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this["delete"]},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);r["default"]=C},{"../../../reducers/selection":157,"../../../services/ajax":163,"../../../services/modal":169,"../../../services/snackbar":172,"../../../services/store":173,"../../../utils/countdown":178,"./errors-list":83,"./merge":84,"./move":85,react:"react"}],83:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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 c["default"].createElement("li",null,c["default"].createElement("h5",null,e.thread.title),c["default"].createElement("ul",{className:"list-unstyled list-item-errors"},e.errors.map(function(e,t){return c["default"].createElement("li",{key:t},e)})))}Object.defineProperty(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}();r.ThreadErrors=i;var u=e("react"),c=a(u),f=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),l(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",{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("Threads moderation"))),c["default"].createElement("div",{className:"modal-body"},c["default"].createElement("p",{className:"lead"},gettext("Errors were encountered when performing moderation action on one or more threads:")),c["default"].createElement("ul",{className:"list-unstyled list-errored-items"},this.props.errors.map(function(e){return c["default"].createElement(i,{errors:e.errors,key:e.thread.id,thread:e.thread})})))))}}]),t}(c["default"].Component);r["default"]=f},{react:"react"}],84:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../../button"),d=n(f),p=e("../../form"),h=n(p),m=e("../../form-group"),b=n(m),y=e("../../category-select"),g=n(y),v=e("../../select"),_=n(v),E=e("../../../index"),w=n(E),O=e("../../../reducers/threads"),k=e("../../../reducers/selection"),N=a(k),j=e("./errors-list"),x=n(j),P=e("../../../services/ajax"),C=n(P),S=e("../../../services/modal"),T=n(S),M=e("../../../services/snackbar"),L=n(M),R=e("../../../services/store"),A=n(R),I=e("../../../utils/validators"),U=a(I),D=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));r.onCategoryChange=function(e){var t=e.target.value,a={category:t};r.acl[t].can_pin_threads<a.weight&&(a.weight=0),r.acl[t].can_close_threads||(a.is_closed=!1),r.setState(a)},r.state={isLoading:!1,title:"",category:null,weight:0,is_closed:!1,validators:{title:[U.required()]},errors:{}},r.acl={};for(var a in e.user.acl.categories)if(e.user.acl.categories.hasOwnProperty(a)){var n=e.user.acl.categories[a];r.acl[n.id]=n}return r.categoryChoices=[],e.categories.forEach(function(e){if(e.level>0){var t=r.acl[e.id],a=!t.can_start_threads||e.is_closed&&!t.can_close_threads;r.categoryChoices.push({value:e.id,disabled:a,level:e.level-1,label:e.name}),a||r.state.category||(r.state.category=e.id)}}),r.isClosedChoices=[{value:!1,icon:"lock_outline",label:gettext("No")},{value:!0,icon:"lock",label:gettext("Yes")}],r}return i(t,e),l(t,[{key:"clean",value:function(){return this.isValid()?!0:(L["default"].error(gettext("Form contains errors.")),this.setState({errors:this.validate()}),!1)}},{key:"send",value:function(){return C["default"].post(w["default"].get("MERGE_THREADS_API"),{top_category:this.props.route.category.id,threads:this.props.threads.map(function(e){return e.id}),title:this.state.title,category:this.state.category,weight:this.state.weight,is_closed:this.state.is_closed})}},{key:"handleSuccess",value:function(e){var t=this;this.props.threads.forEach(function(e){t.props.freezeThread(e.id),t.props.deleteThread(e)}),A["default"].dispatch(N.none()),this.props.addThreads([e]),A["default"].dispatch((0,O.filterThreads)(this.props.route.category,this.props.categoriesMap)),
+}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./diff-message"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getDiffMessage",value:function(){return this.props.diffSize>0?u["default"].createElement(f["default"],{diffSize:this.props.diffSize,applyDiff:this.props.applyDiff}):null}},{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);r["default"]=d},{"./diff-message":60,react:"react"}],62:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../thread/preview"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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"},[0,1,2].map(function(e){return u["default"].createElement(f["default"],{hiddenOnMobile:e>0,key:e})})))}}]),t}(u["default"].Component);r["default"]=d},{"../thread/preview":71,react:"react"}],63:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./diff-message"),f=a(c),d=e("../thread/ready"),p=a(d),h=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getDiffMessage",value:function(){return this.props.diffSize>0?u["default"].createElement(f["default"],{diffSize:this.props.diffSize,applyDiff:this.props.applyDiff}):null}},{key:"render",value:function(){var e=this;return u["default"].createElement("div",{className:"threads-list ui-ready"},u["default"].createElement("ul",{className:"list-group"},this.getDiffMessage(),this.props.threads.map(function(t){return u["default"].createElement(p["default"],{categories:e.props.categories,thread:t,list:e.props.list,showOptions:e.props.showOptions,isSelected:e.props.selection.indexOf(t.id)>=0,isBusy:e.props.busyThreads.indexOf(t.id)>=0,key:t.id})})))}}]),t}(u["default"].Component);r["default"]=h},{"../thread/ready":72,"./diff-message":60,react:"react"}],64:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./list/empty"),f=a(c),d=e("./list/ready"),p=a(d),h=e("./list/preview"),m=a(h),b=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return this.props.isLoaded?this.props.threads.length>0?u["default"].createElement(p["default"],{threads:this.props.threads,categories:this.props.categories,list:this.props.list,diffSize:this.props.diffSize,applyDiff:this.props.applyDiff,showOptions:this.props.showOptions,selection:this.props.selection,busyThreads:this.props.busyThreads}):u["default"].createElement(f["default"],{diffSize:this.props.diffSize,applyDiff:this.props.applyDiff},this.props.children):u["default"].createElement(m["default"],null)}}]),t}(u["default"].Component);r["default"]=b},{"./list/empty":61,"./list/preview":62,"./list/ready":63,react:"react"}],65:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("react-router"),f=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getUrl",value:function(){return this.props.category.absolute_url+this.props.list.path}},{key:"getClassName",value:function(){return this.props.category.css_class?"thread-category thread-category-"+this.props.category.css_class:"thread-category"}},{key:"render",value:function(){return u["default"].createElement(c.Link,{to:this.getUrl(),className:this.getClassName()},this.props.category.name)}}]),t}(u["default"].Component);r["default"]=f},{react:"react","react-router":"react-router"}],66:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../category"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getPath",value:function(){var e=this.props.categories[this.props.thread.top_category],t=this.props.categories[this.props.thread.category];return e&&t&&e.id!==t.id?u["default"].createElement("li",{className:"thread-path"},u["default"].createElement(f["default"],{category:t,list:this.props.list})):e?u["default"].createElement("li",{className:"thread-path"},u["default"].createElement(f["default"],{category:e,list:this.props.list})):null}},{key:"getRepliesCount",value:function(){return u["default"].createElement("li",{className:"thread-replies-count"},u["default"].createElement("span",{className:"material-icon"},"forum"),u["default"].createElement("span",{className:"icon-legend"},this.props.thread.replies))}},{key:"getLastReply",value:function(){return u["default"].createElement("li",{className:"thread-last-reply-clock"},u["default"].createElement("span",{className:"material-icon"},"schedule"),u["default"].createElement("span",{className:"icon-legend"},this.props.thread.last_post_on.fromNow()))}},{key:"render",value:function(){return u["default"].createElement("ul",{className:"thread-details-compact list-inline"},this.getPath(),this.getRepliesCount(),this.getLastReply())}}]),t}(u["default"].Component);r["default"]=d},{"../category":65,react:"react"}],67:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../category"),f=a(c),d=e("../../../../utils/escape-html"),p=a(d),h='<a href="%(url)s" class="poster-title">%(user)s</a>',m='<span class="poster-title">%(user)s</span>',b='<a href="%(url)s" class="last-title" title="%(absolute)s">%(relative)s</a>',y=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getNewLabel",value:function(){return this.props.thread.is_read?null:u["default"].createElement("li",{className:"thread-new-posts",title:gettext("Go to first unread post")},u["default"].createElement("a",{href:this.props.thread.url.new_post},u["default"].createElement("span",{className:"material-icon"},"comment"),u["default"].createElement("span",{className:"icon-legend"},gettext("New posts"))))}},{key:"getPinnedLabel",value:function(){return 2===this.props.thread.weight?u["default"].createElement("li",{className:"thread-pinned-globally"},u["default"].createElement("span",{className:"material-icon"},"bookmark"),u["default"].createElement("span",{className:"icon-legend"},gettext("Pinned globally"))):1===this.props.thread.weight?u["default"].createElement("li",{className:"thread-pinned-locally"},u["default"].createElement("span",{className:"material-icon"},"bookmark_border"),u["default"].createElement("span",{className:"icon-legend"},gettext("Pinned locally"))):null}},{key:"getUnapprovedLabel",value:function(){return this.props.thread.is_unapproved?u["default"].createElement("li",{className:"thread-unapproved"},u["default"].createElement("span",{className:"material-icon"},"remove_circle"),u["default"].createElement("span",{className:"icon-legend"},gettext("Unapproved"))):this.props.thread.has_unapproved_posts?u["default"].createElement("li",{className:"thread-unapproved-posts"},u["default"].createElement("span",{className:"material-icon"},"remove_circle_outline"),u["default"].createElement("span",{className:"icon-legend"},gettext("Unapproved posts"))):null}},{key:"getHiddenLabel",value:function(){return this.props.thread.is_hidden?u["default"].createElement("li",{className:"thread-hidden"},u["default"].createElement("span",{className:"material-icon"},"visibility_off"),u["default"].createElement("span",{className:"icon-legend"},gettext("Hidden"))):null}},{key:"getClosedLabel",value:function(){return this.props.thread.is_closed?u["default"].createElement("li",{className:"thread-closed"},u["default"].createElement("span",{className:"material-icon"},"lock_outline"),u["default"].createElement("span",{className:"icon-legend"},gettext("Closed"))):null}},{key:"getPath",value:function(){var e=this.props.categories[this.props.thread.top_category],t=this.props.categories[this.props.thread.category];return e&&t&&e.id!==t.id?u["default"].createElement("li",{className:"thread-path"},u["default"].createElement(f["default"],{category:e,list:this.props.list}),u["default"].createElement("span",{className:"path-separator material-icon"},"arrow_forward"),u["default"].createElement(f["default"],{category:t,list:this.props.list})):e?u["default"].createElement("li",{className:"thread-path"},u["default"].createElement(f["default"],{category:e,list:this.props.list})):null}},{key:"getRepliesCount",value:function(){var e=ngettext("%(replies)s reply","%(replies)s replies",this.props.thread.replies);return u["default"].createElement("li",{className:"thread-replies"},u["default"].createElement("span",{className:"material-icon"},"forum"),u["default"].createElement("span",{className:"icon-legend"},interpolate(e,{replies:this.props.thread.replies},!0)))}},{key:"getLastReplyDate",value:function(){return interpolate(b,{url:(0,p["default"])(this.props.thread.url.last_post),absolute:(0,p["default"])(this.props.thread.last_post_on.format("LLL")),relative:(0,p["default"])(this.props.thread.last_post_on.fromNow())},!0)}},{key:"getLastPoster",value:function(){return this.props.thread.url.last_poster?interpolate(h,{url:(0,p["default"])(this.props.thread.url.last_poster),user:(0,p["default"])(this.props.thread.last_poster_name)},!0):interpolate(m,{user:(0,p["default"])(this.props.thread.last_poster_name)},!0)}},{key:"getLastReply",value:function(){return u["default"].createElement("li",{className:"thread-last-reply",dangerouslySetInnerHTML:{__html:interpolate((0,p["default"])(gettext("last reply by %(user)s %(date)s")),{date:this.getLastReplyDate(),user:this.getLastPoster()},!0)}})}},{key:"render",value:function(){return u["default"].createElement("ul",{className:"thread-details-full list-inline"},this.getNewLabel(),this.getPinnedLabel(),this.getUnapprovedLabel(),this.getHiddenLabel(),this.getClosedLabel(),this.getPath(),this.getRepliesCount(),this.getLastReply())}}]),t}(u["default"].Component);r["default"]=y},{"../../../../utils/escape-html":179,"../category":65,react:"react"}],68:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getPinnedIcon",value:function(){return 2===this.props.thread.weight?u["default"].createElement("span",{className:"thread-pinned-globally"},u["default"].createElement("span",{className:"material-icon"},"bookmark")):1===this.props.thread.weight?u["default"].createElement("span",{className:"thread-pinned-locally"},u["default"].createElement("span",{className:"material-icon"},"bookmark_border")):null}},{key:"getUnapprovedIcon",value:function(){return this.props.thread.is_unapproved?u["default"].createElement("span",{className:"thread-unapproved"},u["default"].createElement("span",{className:"material-icon"},"remove_circle")):this.props.thread.has_unapproved_posts?u["default"].createElement("span",{className:"thread-unapproved-posts"},u["default"].createElement("span",{className:"material-icon"},"remove_circle_outline")):null}},{key:"getHiddenIcon",value:function(){return this.props.thread.is_hidden?u["default"].createElement("span",{className:"thread-hidden"},u["default"].createElement("span",{className:"material-icon"},"visibility_off")):null}},{key:"getClosedIcon",value:function(){return this.props.thread.is_closed?u["default"].createElement("span",{className:"thread-closed"},u["default"].createElement("span",{className:"material-icon"},"lock_outline")):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"thread-flags"},this.getPinnedIcon(),this.getUnapprovedIcon(),this.getHiddenIcon(),this.getClosedIcon())}}]),t}(u["default"].Component);r["default"]=c},{react:"react"}],69:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.thread.is_read?"read-status item-read":"read-status item-new"}},{key:"getTitle",value:function(){return this.props.thread.is_read?gettext("This thread has no new posts."):gettext("This thread has new posts.")}},{key:"getIcon",value:function(){return this.props.thread.is_read?"chat_bubble_outline":"chat_bubble"}},{key:"getUrl",value:function(){return this.props.thread.is_read?this.props.thread.url.last_post:this.props.thread.url.new_post}},{key:"render",value:function(){return u["default"].createElement("a",{className:this.getClassName(),href:this.getUrl(),title:this.getTitle()},u["default"].createElement("span",{className:"material-icon"},this.getIcon()))}}]),t}(u["default"].Component);r["default"]=c},{react:"react"}],70:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("./subscription/compact"),d=n(f),p=e("./subscription/full"),h=n(p),m=e("../../../reducers/selection"),b=a(m),y=e("../../../services/store"),g=n(y),v=function(e){function t(){var e,r,a,n;o(this,t);for(var i=arguments.length,l=Array(i),u=0;i>u;u++)l[u]=arguments[u];return r=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.toggleSelection=function(){g["default"].dispatch(b.item(a.props.thread.id))},n=r,s(a,n)}return i(t,e),l(t,[{key:"getSelectToggle",value:function(){return this.props.thread.moderation.length?c["default"].createElement("li",null,c["default"].createElement("button",{className:"btn btn-default btn-checkbox",onClick:this.toggleSelection,disabled:this.props.disabled},c["default"].createElement("span",{className:"material-icon"},this.props.isSelected?"check_box":"check_box_outline_blank"),c["default"].createElement("span",{className:"icon-legend"},this.props.isSelected?gettext("Selected"):gettext("Select")))):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"thread-options"},c["default"].createElement("ul",{className:"list-inline"},this.getSelectToggle(),c["default"].createElement(h["default"],{thread:this.props.thread,disabled:this.props.disabled}),c["default"].createElement(d["default"],{thread:this.props.thread,disabled:this.props.disabled})))}}]),t}(c["default"].Component);r["default"]=v},{"../../../reducers/selection":157,"../../../services/store":173,"./subscription/compact":73,"./subscription/full":74,react:"react"}],71:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../../../utils/random"),d=a(f),p=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"getClassName",value:function(){return this.props.hiddenOnMobile?"list-group-item thread-preview hidden-xs hidden-sm":"list-group-item thread-preview"}},{key:"render",value:function(){return c["default"].createElement("li",{className:this.getClassName()},c["default"].createElement("div",{className:"thread-icon"},c["default"].createElement("span",{className:"read-status item-read"},c["default"].createElement("span",{className:"material-icon"},"chat_bubble_outline"))),c["default"].createElement("div",{className:"thread-main"},c["default"].createElement("span",{className:"item-title thread-title"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:d["int"](60,200)+"px"}}," ")),c["default"].createElement("ul",{className:"thread-details-compact list-inline"},c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:d["int"](20,70)+"px"}}," ")),c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:d["int"](20,70)+"px"}}," ")),c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:d["int"](20,70)+"px"}}," "))),c["default"].createElement("ul",{className:"thread-details-full list-inline"},c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:d["int"](50,150)+"px"}}," ")),c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:d["int"](50,100)+"px"}}," ")),c["default"].createElement("li",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:d["int"](100,250)+"px"}}," ")))),c["default"].createElement("div",{className:"clearfix"}))}}]),t}(c["default"].Component);r["default"]=p},{"../../../utils/random":183,react:"react"}],72:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../../loader"),f=a(c),d=e("./details/compact"),p=a(d),h=e("./details/full"),m=a(h),b=e("./flags"),y=a(b),g=e("./icon"),v=a(g),_=e("./options"),E=a(_),w=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getIcon",value:function(){return this.props.isBusy?u["default"].createElement(f["default"],null):u["default"].createElement(v["default"],{thread:this.props.thread})}},{key:"getOptions",value:function(){return this.props.showOptions?u["default"].createElement(E["default"],{thread:this.props.thread,disabled:this.props.isBusy,isSelected:this.props.isSelected}):null}},{key:"getClassName",value:function(){var e=["list-group-item"];return this.props.thread.is_read?e.push("thread-read"):e.push("thread-new"),this.props.isBusy?e.push("thread-busy"):this.props.isSelected&&e.push("thread-selected"),this.props.showOptions&&(this.props.thread.moderation.length?e.push("thread-ops-two"):e.push("thread-ops-one")),e.join(" ")}},{key:"render",value:function(){return u["default"].createElement("li",{className:this.getClassName()},u["default"].createElement("div",{className:"thread-icon"},this.getIcon(),u["default"].createElement(y["default"],{thread:this.props.thread})),this.getOptions(),u["default"].createElement("div",{className:"thread-main"},u["default"].createElement("a",{href:this.props.thread.url.index,className:"item-title thread-title"},this.props.thread.title),u["default"].createElement(m["default"],{categories:this.props.categories,list:this.props.list,thread:this.props.thread}),u["default"].createElement(p["default"],{categories:this.props.categories,list:this.props.list,thread:this.props.thread})),u["default"].createElement("div",{className:"clearfix"}))}}]),t}(u["default"].Component);r["default"]=w},{"../../loader":22,"./details/compact":66,"./details/full":67,"./flags":68,"./icon":69,"./options":70,react:"react"}],73:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./full"),f=a(c),d=e("./modal"),p=a(d),h=e("../../../../services/modal"),m=a(h),b=function(e){function t(){var e,r,a,s;n(this,t);for(var i=arguments.length,l=Array(i),c=0;i>c;c++)l[c]=arguments[c];return r=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.showOptions=function(){m["default"].show(u["default"].createElement(p["default"],{thread:a.props.thread}))},s=r,o(a,s)}return s(t,e),i(t,[{key:"render",value:function(){return u["default"].createElement("li",{className:"hidden-md hidden-lg"},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()),u["default"].createElement("span",{className:"icon-legend"},this.getLegend())))}}]),t}(f["default"]);r["default"]=b},{"../../../../services/modal":169,"./full":74,"./modal":75,react:"react"}],74:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./options"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(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:"getLegend",value:function(){return this.props.thread.subscription===!0?gettext("E-mail"):this.props.thread.subscription===!1?gettext("Enabled"):gettext("Disabled")}},{key:"getClassName",value:function(){return this.props.thread.subscription===!0?"btn btn-default btn-subscribe btn-subscribe-full dropdown-toggle":this.props.thread.subscription===!1?"btn btn-default btn-subscribe btn-subscribe-half dropdown-toggle":"btn btn-default btn-subscribe dropdown-toggle"}},{key:"render",value:function(){return u["default"].createElement("li",{className:"hidden-xs hidden-sm"},u["default"].createElement("div",{className:"btn-group"},u["default"].createElement("button",{type:"button",className:this.getClassName(),disabled:this.props.disabled,"data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},u["default"].createElement("span",{className:"material-icon"},this.getIcon()),u["default"].createElement("span",{className:"icon-legend"},this.getLegend())),u["default"].createElement(f["default"],{className:"dropdown-menu dropdown-menu-right",thread:this.props.thread})))}}]),t}(u["default"].Component);r["default"]=d},{"./options":76,react:"react"}],75:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./options"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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(f["default"],{className:"modal-menu",thread:this.props.thread})))}}]),t}(u["default"].Component);r["default"]=d},{"./options":76,react:"react"}],76:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../../../button"),f=(a(c),e("../../../../reducers/threads")),d=e("../../../../services/ajax"),p=a(d),h=e("../../../../services/modal"),m=a(h),b=e("../../../../services/snackbar"),y=a(b),g=e("../../../../services/store"),v=a(g),_={unsubscribe:null,notify:!1,email:!0},E=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.setSubscription=function(e){m["default"].hide(),r.setState({isLoading:!0});var t=r.props.thread.subscription;v["default"].dispatch((0,f.patch)(r.props.thread,{subscription:_[e]})),p["default"].patch(r.props.thread.api.index,[{op:"replace",path:"subscription",value:e}]).then(function(){r.setState({isLoading:!1})},function(e){r.setState({isLoading:!1}),v["default"].dispatch((0,f.patch)(r.props.thread,{subscription:_[t]})),y["default"].apiError(e)})},r.unsubscribe=function(){r.setSubscription("unsubscribe")},r.notify=function(){r.setSubscription("notify")},r.email=function(){r.setSubscription("email")},r.state={isLoading:!1},r}return s(t,e),i(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);r["default"]=E},{"../../../../reducers/threads":159,"../../../../services/ajax":163,"../../../../services/modal":169,"../../../../services/snackbar":172,"../../../../services/store":173,"../../../button":4,react:"react"}],77:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0}),r.Subcategory=void 0;var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("react-router"),f=r.Subcategory=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getUrl",value:function(){return this.props.listPath?this.props.category.absolute_url+this.props.listPath:this.props.category.absolute_url}},{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),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){var e=this;return u["default"].createElement("div",{className:"btn-group category-picker"},u["default"].createElement("button",{type:"button",className:"btn btn-default dropdown-toggle","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},u["default"].createElement("span",{className:"material-icon"},"more_vert"),gettext("Go to")),u["default"].createElement("ul",{className:"dropdown-menu categories-menu"},this.props.choices.map(function(t){return e.props.categories[t]?u["default"].createElement(f,{category:e.props.categories[t],listPath:e.props.list.path,key:t}):null})))}}]),t}(u["default"].Component);r["default"]=d},{react:"react","react-router":"react-router"}],78:[function(e,t,r){"use strict";function a(e,t){return e.last_post>t.last_post?-1:e.last_post<t.last_post?1:0}function n(e,t){return 2===e.weight&&e.weight>t.weight?-1:2===t.weight&&e.weight<t.weight?1:a(e,t)}function o(e,t){return e.weight>t.weight?-1:e.weight<t.weight?1:a(e,t)}Object.defineProperty(r,"__esModule",{value:!0}),r.compareLastPostAge=a,r.compareGlobalWeight=n,r.compareWeight=o},{}],79:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../page-lead"),f=a(c),d=e("./toolbar"),p=a(d),h=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getCategoryDescription",value:function(){return this.props.route.category.description?u["default"].createElement("div",{className:"category-description"},u["default"].createElement(f["default"],{copy:this.props.route.category.description.html})):null}},{key:"getToolbarLabel",value:function(){if(this.props.isLoaded){var e=null;return e=this.props.route.list.path?ngettext("%(threads)s thread found.","%(threads)s threads found.",this.props.threadsCount):this.props.route.category.parent?ngettext("There is %(threads)s thread in this category.","There are %(threads)s threads in this category.",this.props.threadsCount):ngettext("There is %(threads)s thread on our forums.","There are %(threads)s threads on our forums.",this.props.threadsCount),interpolate(e,{threads:this.props.threadsCount},!0)}return gettext("Loading threads...")}},{key:"getDisableToolbar",value:function(){return!this.props.isLoaded||this.props.isBusy||this.props.busyThreads.length}},{key:"getToolbar",value:function(){return this.props.subcategories.length||this.props.user.id?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,route:this.props.route,disabled:this.getDisableToolbar(),user:this.props.user},this.getToolbarLabel()):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"container"},this.getCategoryDescription(),this.getToolbar(),this.props.children)}}]),t}(u["default"].Component);r["default"]=h},{"../page-lead":35,"./toolbar":90,react:"react"}],80:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("react-router"),f=e("../button"),d=a(f),p=e("../dropdown-toggle"),h=a(p),m=e("./navs"),b=e("../../reducers/threads"),y=e("../../services/ajax"),g=a(y),v=e("../../services/snackbar"),_=a(v),E=e("../../services/store"),w=a(E),O=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.markAsRead=function(){r.setState({isBusy:!0}),g["default"].post(r.props.route.category.api_url.read).then(function(){w["default"].dispatch((0,b.read)()),r.setState({isBusy:!1}),_["default"].success(gettext("Threads have been marked as read."))},function(e){r.setState({isBusy:!1}),_["default"].apiError(e)})},r.startThread=function(){console.log("TODO: Start thread form!")},r.state={isBusy:!1},r}return s(t,e),i(t,[{key:"getGoBackButton",value:function(){if(this.props.route.category.parent){var e=this.props.categories[this.props.route.category.parent];return u["default"].createElement(c.Link,{className:"btn btn-default btn-aligned btn-icon btn-go-back pull-left",to:e.absolute_url+this.props.route.list.path},u["default"].createElement("span",{className:"material-icon"},"keyboard_arrow_left"))}return null}},{key:"getStartThreadButton",value:function(){return this.props.user.id?u["default"].createElement(d["default"],{className:"btn btn-success btn-aligned hidden-xs hidden-sm",onClick:this.startThread,disabled:this.props.disabled},u["default"].createElement("span",{className:"material-icon"},"chat"),gettext("Start thread")):null}},{key:"getMarkAsReadButton",value:function(){return this.props.user.id?u["default"].createElement(d["default"],{className:"btn btn-default btn-aligned hidden-xs hidden-sm",onClick:this.markAsRead,loading:this.state.isBusy,disabled:this.props.disabled},u["default"].createElement("span",{className:"material-icon"},"playlist_add_check"),gettext("Mark as read")):null}},{key:"getCompactNavToggle",value:function(){return this.props.route.lists.length>1?u["default"].createElement(h["default"],{toggleNav:this.props.toggleNav,dropdown:this.props.dropdown}):null}},{key:"getTabsNav",value:function(){return this.props.route.lists.length>1?u["default"].createElement(m.TabsNav,{baseUrl:this.props.route.category.absolute_url,list:this.props.route.list,lists:this.props.route.lists}):null}},{key:"getClassName",value:function(){return this.props.route.lists.length>1?"page-header tabbed":"page-header"}},{key:"render",value:function(){return u["default"].createElement("div",{className:this.getClassName()},u["default"].createElement("div",{className:"container"},this.getGoBackButton(),u["default"].createElement("h1",{className:"pull-left"},this.props.title),this.getStartThreadButton(),this.getMarkAsReadButton(),this.getCompactNavToggle()),this.getTabsNav())}}]),t}(u["default"].Component);r["default"]=O},{"../../reducers/threads":159,"../../services/ajax":163,"../../services/snackbar":172,"../../services/store":173,"../button":4,"../dropdown-toggle":18,"./navs":87,react:"react","react-router":"react-router"}],81:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return"all"===this.props.list.type?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);r["default"]=c},{react:"react"}],82:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("./errors-list"),d=n(f),p=e("./merge"),h=n(p),m=e("./move"),b=n(m),y=e("../../../reducers/selection"),g=a(y),v=e("../../../services/ajax"),_=n(v),E=e("../../../services/modal"),w=n(E),O=e("../../../services/snackbar"),k=n(O),N=e("../../../services/store"),j=n(N),x=e("../../../utils/countdown"),P=n(x),C=function(e){function t(){var e,r,a,n;o(this,t);for(var i=arguments.length,l=Array(i),u=0;i>u;u++)l[u]=arguments[u];return r=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.callApi=function(e,t){var r=arguments.length<=2||void 0===arguments[2]?null:arguments[2],n=[],o=new P["default"](function(){a.props.threads.forEach(function(e){a.props.freezeThread(e.id)}),n.length?w["default"].show(c["default"].createElement(d["default"],{errors:n})):(k["default"].success(t),r&&r())},a.props.threads.length);a.props.threads.forEach(function(t){a.props.freezeThread(t.id),_["default"].patch(t.api.index,e).then(function(e){a.props.updateThread(e),o.count()},function(e){n.push({thread:t,errors:[e.detail]}),o.count()})})},a.pinGlobally=function(){a.callApi([{op:"replace",path:"weight",value:2}],gettext("Selected threads were pinned globally."))},a.pinLocally=function(){a.callApi([{op:"replace",path:"weight",value:1}],gettext("Selected threads were pinned locally."))},a.unpin=function(){a.callApi([{op:"replace",path:"weight",value:0}],gettext("Selected threads were unpinned."))},a.approve=function(){a.callApi([{op:"replace",path:"is-unapproved",value:!1}],gettext("Selected threads were approved."))},a.open=function(){a.callApi([{op:"replace",path:"is-closed",value:!1}],gettext("Selected threads were opened."))},a.close=function(){a.callApi([{op:"replace",path:"is-closed",value:!0}],gettext("Selected threads were closed."))},a.unhide=function(){a.callApi([{op:"replace",path:"is-hidden",value:!1}],gettext("Selected threads were unhidden."))},a.hide=function(){a.callApi([{op:"replace",path:"is-hidden",value:!0}],gettext("Selected threads were hidden."))},a.move=function(){w["default"].show(c["default"].createElement(b["default"],{callApi:a.callApi,categories:a.props.categories,categoriesMap:a.props.categoriesMap,route:a.props.route,user:a.props.user}))},a.merge=function(){var e=[];if(a.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.")]})}),a.props.threads.length<2)k["default"].info(gettext("You have to select at least two threads to merge."));else{if(e.length)return void w["default"].show(c["default"].createElement(d["default"],{errors:e}));w["default"].show(c["default"].createElement(h["default"],a.props))}},a["delete"]=function(){if(confirm(gettext("Are you sure you want to delete selected threads?"))){var e=[],t=new P["default"](function(){e.length?w["default"].show(c["default"].createElement(d["default"],{errors:e})):k["default"].success(gettext("Selected threads were deleted.")),a.props.threads.forEach(function(e){a.props.freezeThread(e.id)}),j["default"].dispatch(g.all(a.props.threads.map(function(e){return e.id})))},a.props.threads.length);a.props.threads.forEach(function(r){a.props.freezeThread(r.id),_["default"]["delete"](r.api.index).then(function(e){a.props.freezeThread(r.id),a.props.deleteThread(r),t.count()},function(a){e.push({thread:r,errors:[a.detail]}),t.count()})})}},n=r,s(a,n)}return i(t,e),l(t,[{key:"getPinGloballyButton",value:function(){return 2==this.props.moderation.can_pin?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.pinGlobally},gettext("Pin threads globally"))):null}},{key:"getPinLocallyButton",value:function(){return this.props.moderation.can_pin>0?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.pinLocally},gettext("Pin threads locally"))):null}},{key:"getUnpinButton",value:function(){return this.props.moderation.can_pin>0?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.unpin},gettext("Unpin threads"))):null}},{key:"getMoveButton",value:function(){return this.props.moderation.can_move?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.move},gettext("Move threads"))):null}},{key:"getMergeButton",value:function(){return this.props.moderation.can_merge?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.merge},gettext("Merge threads"))):null}},{key:"getApproveButton",value:function(){return this.props.moderation.can_approve?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.approve},gettext("Approve threads"))):null}},{key:"getOpenButton",value:function(){return this.props.moderation.can_close?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.open},gettext("Open threads"))):null}},{key:"getCloseButton",value:function(){return this.props.moderation.can_close?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.close},gettext("Close threads"))):null}},{key:"getUnhideButton",value:function(){return this.props.moderation.can_hide?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.unhide},gettext("Unhide threads"))):null}},{key:"getHideButton",value:function(){return this.props.moderation.can_hide?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this.hide},gettext("Hide threads"))):null}},{key:"getDeleteButton",value:function(){return 2==this.props.moderation.can_hide?c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn btn-link",onClick:this["delete"]},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);r["default"]=C},{"../../../reducers/selection":157,"../../../services/ajax":163,"../../../services/modal":169,"../../../services/snackbar":172,"../../../services/store":173,"../../../utils/countdown":178,"./errors-list":83,"./merge":84,"./move":85,react:"react"}],83:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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 c["default"].createElement("li",null,c["default"].createElement("h5",null,e.thread.title),c["default"].createElement("ul",{className:"list-unstyled list-item-errors"},e.errors.map(function(e,t){return c["default"].createElement("li",{key:t},e)})))}Object.defineProperty(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}();r.ThreadErrors=i;var u=e("react"),c=a(u),f=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),l(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",{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("Threads moderation"))),c["default"].createElement("div",{className:"modal-body"},c["default"].createElement("p",{className:"lead"},gettext("Errors were encountered when performing moderation action on one or more threads:")),c["default"].createElement("ul",{className:"list-unstyled list-errored-items"},this.props.errors.map(function(e){return c["default"].createElement(i,{errors:e.errors,key:e.thread.id,thread:e.thread})})))))}}]),t}(c["default"].Component);r["default"]=f},{react:"react"}],84:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../../button"),d=n(f),p=e("../../form"),h=n(p),m=e("../../form-group"),b=n(m),y=e("../../category-select"),g=n(y),v=e("../../select"),_=n(v),E=e("../../../index"),w=n(E),O=e("../../../reducers/threads"),k=e("../../../reducers/selection"),N=a(k),j=e("./errors-list"),x=n(j),P=e("../../../services/ajax"),C=n(P),S=e("../../../services/modal"),T=n(S),M=e("../../../services/snackbar"),L=n(M),R=e("../../../services/store"),A=n(R),I=e("../../../utils/validators"),U=a(I),D=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));r.onCategoryChange=function(e){var t=e.target.value,a={category:t};r.acl[t].can_pin_threads<a.weight&&(a.weight=0),r.acl[t].can_close_threads||(a.is_closed=!1),r.setState(a)},r.state={isLoading:!1,title:"",category:null,weight:0,is_closed:!1,validators:{title:[U.required()]},errors:{}},r.acl={};for(var a in e.user.acl.categories)if(e.user.acl.categories.hasOwnProperty(a)){var n=e.user.acl.categories[a];r.acl[n.id]=n}return r.categoryChoices=[],e.categories.forEach(function(e){if(e.level>0){var t=r.acl[e.id],a=!t.can_start_threads||e.is_closed&&!t.can_close_threads;r.categoryChoices.push({value:e.id,disabled:a,level:e.level-1,label:e.name}),a||r.state.category||(r.state.category=e.id)}}),r.isClosedChoices=[{value:!1,icon:"lock_outline",label:gettext("No")},{value:!0,icon:"lock",label:gettext("Yes")}],r}return i(t,e),l(t,[{key:"clean",value:function(){return this.isValid()?!0:(L["default"].error(gettext("Form contains errors.")),this.setState({errors:this.validate()}),!1)}},{key:"send",value:function(){return C["default"].post(w["default"].get("MERGE_THREADS_API"),{top_category:this.props.route.category.id,threads:this.props.threads.map(function(e){return e.id}),title:this.state.title,category:this.state.category,weight:this.state.weight,is_closed:this.state.is_closed})}},{key:"handleSuccess",value:function(e){var t=this;this.props.threads.forEach(function(e){t.props.freezeThread(e.id),t.props.deleteThread(e)}),A["default"].dispatch(N.none()),this.props.addThreads([e]),A["default"].dispatch((0,O.filterThreads)(this.props.route.category,this.props.categoriesMap)),
 T["default"].hide()}},{key:"handleError",value:function(e){400===e.status?(this.setState({errors:Object.assign({},this.state.errors,e)}),L["default"].error(gettext("Form contains errors."))):403===e.status&&Array.isArray(e)?T["default"].show(c["default"].createElement(x["default"],{errors:e})):L["default"].apiError(e)}},{key:"getWeightChoices",value:function(){var e=[];return 2==this.acl[this.state.category].can_pin_threads&&e.push({value:2,icon:"bookmark",label:gettext("Pinned globally")}),e.push({value:1,icon:"bookmark_border",label:gettext("Pinned locally")}),e.push({value:0,icon:"remove",label:gettext("Not pinned")}),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",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement(_["default"],{id:"id_weight",onChange:this.bindInput("weight"),value:this.state.weight,choices:this.getWeightChoices()})):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",labelClass:"col-sm-4",controlClass:"col-sm-8"},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",labelClass:"col-sm-4",controlClass:"col-sm-8",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",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.category},c["default"].createElement(g["default"],{id:"id_category",onChange:this.onCategoryChange,value:this.state.category,choices:this.categoryChoices})),c["default"].createElement("div",{className:"clearfix"}),this.renderWeightField(),this.renderClosedField()),c["default"].createElement("div",{className:"modal-footer"},c["default"].createElement(d["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."))))}},{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}(h["default"]);r["default"]=D},{"../../../index":119,"../../../reducers/selection":157,"../../../reducers/threads":159,"../../../services/ajax":163,"../../../services/modal":169,"../../../services/snackbar":172,"../../../services/store":173,"../../../utils/validators":188,"../../button":4,"../../category-select":12,"../../form":20,"../../form-group":19,"../../select":57,"./errors-list":83,react:"react"}],85:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../../form"),d=n(f),p=e("../../form-group"),h=n(p),m=e("../../category-select"),b=n(m),y=e("../../../reducers/selection"),g=a(y),v=e("../../../reducers/threads"),_=e("../../../services/modal"),E=n(_),w=e("../../../services/store"),O=n(w),k=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));r.handleSubmit=function(e){e.preventDefault(),E["default"].hide();var t=function(){O["default"].dispatch((0,v.filterThreads)(r.props.route.category,r.props.categoriesMap));var e=O["default"].getState(),t=e.threads.map(function(e){return e.id});O["default"].dispatch(g.all(e.selection.filter(function(e){return-1!==t.indexOf(e)})))};r.props.callApi([{op:"replace",path:"category",value:r.state.category},{op:"add",path:"top-category",value:r.props.route.category.id},{op:"replace",path:"flatten-categories",value:null}],gettext("Selected threads were moved."),t)},r.state={category:null};var a={};for(var n in e.user.acl.categories)if(e.user.acl.categories.hasOwnProperty(n)){var i=e.user.acl.categories[n];a[i.id]=i}return r.categoryChoices=[],e.categories.forEach(function(e){if(e.level>0){var t=a[e.id],n=!t.can_start_threads||e.is_closed&&!t.can_close_threads;r.categoryChoices.push({value:e.id,disabled:n,level:e.level-1,label:e.name}),n||r.state.category||(r.state.category=e.id)}}),r}return i(t,e),l(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(h["default"],{label:gettext("New category"),"for":"id_new_category",labelClass:"col-sm-4",controlClass:"col-sm-8"},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-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."))))}},{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}(d["default"]);r["default"]=k},{"../../../reducers/selection":157,"../../../reducers/threads":159,"../../../services/modal":169,"../../../services/store":173,"../../category-select":12,"../../form":20,"../../form-group":19,react:"react"}],86:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../../../reducers/selection"),d=a(f),p=e("../../../services/store"),h=n(p),m=function(e){function t(){var e,r,a,n;o(this,t);for(var i=arguments.length,l=Array(i),u=0;i>u;u++)l[u]=arguments[u];return r=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.selectAll=function(){h["default"].dispatch(d.all(a.props.threads.map(function(e){return e.id})))},a.selectNone=function(){h["default"].dispatch(d.none())},n=r,s(a,n)}return i(t,e),l(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);r["default"]=m},{"../../../reducers/selection":157,"../../../services/store":173,react:"react"}],87:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0}),r.CompactNav=r.TabsNav=void 0;var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("react-router"),f=e("../li"),d=a(f),p=function(e,t,r,a){return r.map(function(r){return u["default"].createElement(d["default"],{isControlled:!0,isActive:r.path===t.path,key:e+r.path},u["default"].createElement(c.Link,{to:e+r.path,onClick:a},u["default"].createElement("span",{className:"hidden-xs hidden-sm"},r.name),u["default"].createElement("span",{className:"hidden-md hidden-lg"},r.longName)))})};r.TabsNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return u["default"].createElement("div",{className:"page-tabs hidden-xs hidden-sm"},u["default"].createElement("div",{className:"container"},u["default"].createElement("ul",{className:"nav nav-pills"},p(this.props.baseUrl,this.props.list,this.props.lists,this.props.hideNav))))}}]),t}(u["default"].Component),r.CompactNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return u["default"].createElement("ul",{className:"dropdown-menu",role:"menu"},p(this.props.baseUrl,this.props.list,this.props.lists,this.props.hideNav))}}]),t}(u["default"].Component)},{"../li":21,react:"react","react-router":"react-router"}],88:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(e){return{selection:e.selection,threads:e.threads,tick:e.tick.tick,user:e.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 s(e){var t=o(e),r=[],a={};return f["default"].get("CATEGORIES").forEach(function(e){t.forEach(function(o){a[e.id]=e,r.push({path:e.absolute_url+o.path,component:(0,i.connect)(n)(u["default"]),categories:f["default"].get("CATEGORIES"),categoriesMap:a,category:e,lists:t,list:o})})}),r}Object.defineProperty(r,"__esModule",{value:!0}),r.select=n,r.getLists=o,r.paths=s;var i=e("react-redux"),l=e("./route"),u=a(l),c=e("../../index"),f=a(c)},{"../../index":119,"./route":89,"react-redux":"react-redux"}],89:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../button"),d=n(f),p=e("./compare"),h=e("./container"),m=n(h),b=e("./navs"),y=e("./header"),g=n(y),v=e("./utils"),_=e("../threads-list/root"),E=n(_),w=e("./list-empty"),O=n(w),k=e("../with-dropdown"),N=n(k),j=e("../../index"),x=n(j),P=e("../../reducers/selection"),C=a(P),S=e("../../reducers/threads"),T=e("../../services/ajax"),M=n(T),L=e("../../services/polls"),R=n(L),A=e("../../services/snackbar"),I=n(A),U=e("../../services/store"),D=n(U),B=e("../../services/page-title"),z=n(B),H=e("../../utils/sets"),F=a(H),G=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));r.loadMore=function(){r.setState({isBusy:!0}),r.loadThreads(r.getCategory(),r.state.page+1)},r.pollResponse=function(e){r.setState({diff:Object.assign({},e,{results:(0,v.diffThreads)(r.props.threads,e.results)})})},r.addThreads=function(e){D["default"].dispatch((0,S.append)(e,r.getSorting()))},r.applyDiff=function(){r.addThreads(r.state.diff.results),r.setState(Object.assign({},r.state.diff,{moderation:(0,v.getModerationActions)(D["default"].getState().threads),diff:{results:[]}}))},r.freezeThread=function(e){r.setState(function(t){return{busyThreads:F.toggle(t.busyThreads,e)}})},r.updateThread=function(e){D["default"].dispatch((0,S.patch)(e,e,r.getSorting()))},r.deleteThread=function(e){D["default"].dispatch((0,S.deleteThread)(e))},r.state={isMounted:!0,isLoaded:!1,isBusy:!1,diff:{results:[]},moderation:[],busyThreads:[],dropdown:!1,subcategories:[],count:0,more:0,page:1,pages:1};var a=r.getCategory();return x["default"].has("THREADS")?r.initWithPreloadedData(a,x["default"].get("THREADS")):r.initWithoutPreloadedData(a),r}return i(t,e),l(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,v.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,r=arguments.length<=1||void 0===arguments[1]?1:arguments[1];M["default"].get(x["default"].get("THREADS_API"),{category:e,list:this.props.route.list.type,page:r||1},"threads").then(function(a){t.state.isMounted&&(1===r?D["default"].dispatch((0,S.hydrate)(a.results)):D["default"].dispatch((0,S.append)(a.results,t.getSorting())),t.setState({isLoaded:!0,isBusy:!1,moderation:(0,v.getModerationActions)(D["default"].getState().threads),subcategories:a.subcategories,count:a.count,more:a.more,page:a.page,pages:a.pages}),t.startPolling(e))},function(e){I["default"].apiError(e)})}},{key:"startPolling",value:function(e){R["default"].start({poll:"threads",url:x["default"].get("THREADS_API"),data:{category:e,list:this.props.route.list.type},frequency:12e4,update:this.pollResponse})}},{key:"componentDidMount",value:function(){this.setPageTitle(),x["default"].has("THREADS")&&(D["default"].dispatch((0,S.hydrate)(x["default"].pop("THREADS").results)),this.setState({isLoaded:!0})),D["default"].dispatch(C.none())}},{key:"componentWillUnmount",value:function(){this.state.isMounted=!1,R["default"].stop("threads")}},{key:"getTitle",value:function(){return(0,v.getTitle)(this.props.route)}},{key:"setPageTitle",value:function(){this.props.route.category.level||!x["default"].get("THREADS_ON_INDEX")?z["default"].set((0,v.getPageTitle)(this.props.route)):x["default"].get("SETTINGS").forum_index_title?document.title=x["default"].get("SETTINGS").forum_index_title:document.title=x["default"].get("SETTINGS").forum_name}},{key:"getSorting",value:function(){return this.props.route.category.special_role?p.compareGlobalWeight:p.compareWeight}},{key:"getCompactNav",value:function(){return this.props.route.lists.length>1?c["default"].createElement("div",{className:this.getCompactNavClassName()},c["default"].createElement(b.CompactNav,{baseUrl:this.props.route.category.absolute_url,list:this.props.route.list,lists:this.props.route.lists,hideNav:this.hideNav})):null}},{key:"getMoreButton",value:function(){return this.state.more?c["default"].createElement("div",{className:"pager-more"},c["default"].createElement(d["default"],{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,this.props.route.category.css_class&&(e+=" page-"+this.props.route.category.css_class),e}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement(g["default"],{categories:this.props.route.categoriesMap,disabled:!this.state.isLoaded,threads:this.props.threads,title:this.getTitle(),toggleNav:this.toggleNav,route:this.props.route,user:this.props.user}),this.getCompactNav(),c["default"].createElement(m["default"],{route:this.props.route,subcategories:this.state.subcategories,user:this.props.user,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(E["default"],{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(O["default"],{category:this.props.route.category,list:this.props.route.list})),this.getMoreButton()))}}]),t}(N["default"]);r["default"]=G},{"../../index":119,"../../reducers/selection":157,"../../reducers/threads":159,"../../services/ajax":163,"../../services/page-title":170,"../../services/polls":171,"../../services/snackbar":172,"../../services/store":173,"../../utils/sets":186,"../button":4,"../threads-list/root":64,"../with-dropdown":117,"./compare":78,"./container":79,"./header":80,"./list-empty":81,"./navs":87,"./utils":91,react:"react"}],90:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./category-picker"),f=a(c),d=e("./moderation/controls"),p=a(d),h=e("./moderation/selection"),m=a(h),b=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getCategoryPicker",value:function(){return this.props.subcategories.length?u["default"].createElement("div",{className:"toolbar-left"},u["default"].createElement(f["default"],{choices:this.props.subcategories,categories:this.props.categoriesMap,list:this.props.list})):null}},{key:"showModerationOptions",value:function(){return this.props.user.id&&this.props.moderation.allow}},{key:"getSelectionButton",value:function(){return this.showModerationOptions()?u["default"].createElement("div",{className:"toolbar-right dropdown"},u["default"].createElement("button",{type:"button",className:"btn btn-default 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(m["default"],{className:"dropdown-menu dropdown-menu-right",threads:this.props.threads})):null}},{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:"toolbar-right dropdown"},u["default"].createElement("button",{type:"button",className:"btn btn-default 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("Moderation")),u["default"].createElement(p["default"],{addThreads:this.props.addThreads,categories:this.props.categories,categoriesMap:this.props.categoriesMap,className:"dropdown-menu dropdown-menu-right",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:"render",value:function(){return u["default"].createElement("div",{className:"toolbar with-js"},this.getCategoryPicker(),u["default"].createElement("p",{className:"toolbar-left hidden-xs hidden-sm"},this.props.children),this.getSelectionButton(),this.getModerationButton())}}]),t}(u["default"].Component);r["default"]=b},{"./category-picker":77,"./moderation/controls":82,"./moderation/selection":86,react:"react"}],91:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 s(e,t){return[e.title===t.title,e.weight===t.weight,e.category===t.category,e.top_category===t.top_category,e.last_post===t.last_post,e.last_poster_name===t.last_poster_name].indexOf(!1)>=0}function i(e,t){var r={};return e.forEach(function(e){r[e.id]=e}),t.filter(function(e){return r[e.id]?s(r[e.id],e):!0})}function l(e){var t={allow:!1,can_approve:0,can_close:0,can_hide:0,can_merge:0,can_move:0,can_pin: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_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),t.allow=t.can_approve||t.can_close||t.can_hide||t.can_merge||t.can_move||t.can_pin}),t}Object.defineProperty(r,"__esModule",{value:!0}),r.getPageTitle=n,r.getTitle=o,r.isThreadChanged=s,r.diffThreads=i,r.getModerationActions=l;var u=e("../../index"),c=a(u)},{"../../index":119}],92:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0}),r.CompactGuestNav=r.GuestNav=r.GuestMenu=void 0;var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../avatar"),f=a(c),d=e("../register-button"),p=a(d),h=e("../sign-in.js"),m=a(h),b=e("../../services/mobile-navbar-dropdown"),y=a(b),g=e("../../services/modal"),v=a(g),_=r.GuestMenu=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"showSignInModal",value:function(){v["default"].show(m["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",{type:"button",className:"btn btn-default btn-block",onClick:this.showSignInModal},gettext("Sign in"))),u["default"].createElement("div",{className:"col-xs-6"},u["default"].createElement(p["default"],{className:"btn-primary btn-block"},gettext("Register"))))))}}]),t}(u["default"].Component);r.GuestNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return u["default"].createElement("div",{className:"nav nav-guest"},u["default"].createElement("button",{type:"button",className:"btn navbar-btn btn-default",onClick:this.showSignInModal},gettext("Sign in")),u["default"].createElement(p["default"],{className:"navbar-btn btn-primary"},gettext("Register")))}}]),t}(_),r.CompactGuestNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"showGuestMenu",value:function(){y["default"].show(_)}},{key:"render",value:function(){return u["default"].createElement("button",{type:"button",onClick:this.showGuestMenu},u["default"].createElement(f["default"],{size:"64"}))}}]),t}(u["default"].Component)},{"../../services/mobile-navbar-dropdown":168,"../../services/modal":169,"../avatar":2,"../register-button":51,"../sign-in.js":58,react:"react"}],93:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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.auth}Object.defineProperty(r,"__esModule",{value:!0}),r.CompactUserMenu=r.UserMenu=void 0;var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}();r.select=i;var u=e("react"),c=a(u),f=e("./guest-nav"),d=e("./user-nav");r.UserMenu=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments));
 T["default"].hide()}},{key:"handleError",value:function(e){400===e.status?(this.setState({errors:Object.assign({},this.state.errors,e)}),L["default"].error(gettext("Form contains errors."))):403===e.status&&Array.isArray(e)?T["default"].show(c["default"].createElement(x["default"],{errors:e})):L["default"].apiError(e)}},{key:"getWeightChoices",value:function(){var e=[];return 2==this.acl[this.state.category].can_pin_threads&&e.push({value:2,icon:"bookmark",label:gettext("Pinned globally")}),e.push({value:1,icon:"bookmark_border",label:gettext("Pinned locally")}),e.push({value:0,icon:"remove",label:gettext("Not pinned")}),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",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement(_["default"],{id:"id_weight",onChange:this.bindInput("weight"),value:this.state.weight,choices:this.getWeightChoices()})):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",labelClass:"col-sm-4",controlClass:"col-sm-8"},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",labelClass:"col-sm-4",controlClass:"col-sm-8",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",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.category},c["default"].createElement(g["default"],{id:"id_category",onChange:this.onCategoryChange,value:this.state.category,choices:this.categoryChoices})),c["default"].createElement("div",{className:"clearfix"}),this.renderWeightField(),this.renderClosedField()),c["default"].createElement("div",{className:"modal-footer"},c["default"].createElement(d["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."))))}},{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}(h["default"]);r["default"]=D},{"../../../index":119,"../../../reducers/selection":157,"../../../reducers/threads":159,"../../../services/ajax":163,"../../../services/modal":169,"../../../services/snackbar":172,"../../../services/store":173,"../../../utils/validators":188,"../../button":4,"../../category-select":12,"../../form":20,"../../form-group":19,"../../select":57,"./errors-list":83,react:"react"}],85:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../../form"),d=n(f),p=e("../../form-group"),h=n(p),m=e("../../category-select"),b=n(m),y=e("../../../reducers/selection"),g=a(y),v=e("../../../reducers/threads"),_=e("../../../services/modal"),E=n(_),w=e("../../../services/store"),O=n(w),k=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));r.handleSubmit=function(e){e.preventDefault(),E["default"].hide();var t=function(){O["default"].dispatch((0,v.filterThreads)(r.props.route.category,r.props.categoriesMap));var e=O["default"].getState(),t=e.threads.map(function(e){return e.id});O["default"].dispatch(g.all(e.selection.filter(function(e){return-1!==t.indexOf(e)})))};r.props.callApi([{op:"replace",path:"category",value:r.state.category},{op:"add",path:"top-category",value:r.props.route.category.id},{op:"replace",path:"flatten-categories",value:null}],gettext("Selected threads were moved."),t)},r.state={category:null};var a={};for(var n in e.user.acl.categories)if(e.user.acl.categories.hasOwnProperty(n)){var i=e.user.acl.categories[n];a[i.id]=i}return r.categoryChoices=[],e.categories.forEach(function(e){if(e.level>0){var t=a[e.id],n=!t.can_start_threads||e.is_closed&&!t.can_close_threads;r.categoryChoices.push({value:e.id,disabled:n,level:e.level-1,label:e.name}),n||r.state.category||(r.state.category=e.id)}}),r}return i(t,e),l(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(h["default"],{label:gettext("New category"),"for":"id_new_category",labelClass:"col-sm-4",controlClass:"col-sm-8"},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-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."))))}},{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}(d["default"]);r["default"]=k},{"../../../reducers/selection":157,"../../../reducers/threads":159,"../../../services/modal":169,"../../../services/store":173,"../../category-select":12,"../../form":20,"../../form-group":19,react:"react"}],86:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../../../reducers/selection"),d=a(f),p=e("../../../services/store"),h=n(p),m=function(e){function t(){var e,r,a,n;o(this,t);for(var i=arguments.length,l=Array(i),u=0;i>u;u++)l[u]=arguments[u];return r=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.selectAll=function(){h["default"].dispatch(d.all(a.props.threads.map(function(e){return e.id})))},a.selectNone=function(){h["default"].dispatch(d.none())},n=r,s(a,n)}return i(t,e),l(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);r["default"]=m},{"../../../reducers/selection":157,"../../../services/store":173,react:"react"}],87:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0}),r.CompactNav=r.TabsNav=void 0;var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("react-router"),f=e("../li"),d=a(f),p=function(e,t,r,a){return r.map(function(r){return u["default"].createElement(d["default"],{isControlled:!0,isActive:r.path===t.path,key:e+r.path},u["default"].createElement(c.Link,{to:e+r.path,onClick:a},u["default"].createElement("span",{className:"hidden-xs hidden-sm"},r.name),u["default"].createElement("span",{className:"hidden-md hidden-lg"},r.longName)))})};r.TabsNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return u["default"].createElement("div",{className:"page-tabs hidden-xs hidden-sm"},u["default"].createElement("div",{className:"container"},u["default"].createElement("ul",{className:"nav nav-pills"},p(this.props.baseUrl,this.props.list,this.props.lists,this.props.hideNav))))}}]),t}(u["default"].Component),r.CompactNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return u["default"].createElement("ul",{className:"dropdown-menu",role:"menu"},p(this.props.baseUrl,this.props.list,this.props.lists,this.props.hideNav))}}]),t}(u["default"].Component)},{"../li":21,react:"react","react-router":"react-router"}],88:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(e){return{selection:e.selection,threads:e.threads,tick:e.tick.tick,user:e.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 s(e){var t=o(e),r=[],a={};return f["default"].get("CATEGORIES").forEach(function(e){t.forEach(function(o){a[e.id]=e,r.push({path:e.absolute_url+o.path,component:(0,i.connect)(n)(u["default"]),categories:f["default"].get("CATEGORIES"),categoriesMap:a,category:e,lists:t,list:o})})}),r}Object.defineProperty(r,"__esModule",{value:!0}),r.select=n,r.getLists=o,r.paths=s;var i=e("react-redux"),l=e("./route"),u=a(l),c=e("../../index"),f=a(c)},{"../../index":119,"./route":89,"react-redux":"react-redux"}],89:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../button"),d=n(f),p=e("./compare"),h=e("./container"),m=n(h),b=e("./navs"),y=e("./header"),g=n(y),v=e("./utils"),_=e("../threads-list/root"),E=n(_),w=e("./list-empty"),O=n(w),k=e("../with-dropdown"),N=n(k),j=e("../../index"),x=n(j),P=e("../../reducers/selection"),C=a(P),S=e("../../reducers/threads"),T=e("../../services/ajax"),M=n(T),L=e("../../services/polls"),R=n(L),A=e("../../services/snackbar"),I=n(A),U=e("../../services/store"),D=n(U),B=e("../../services/page-title"),z=n(B),H=e("../../utils/sets"),F=a(H),G=function(e){function t(e){o(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e));r.loadMore=function(){r.setState({isBusy:!0}),r.loadThreads(r.getCategory(),r.state.page+1)},r.pollResponse=function(e){r.setState({diff:Object.assign({},e,{results:(0,v.diffThreads)(r.props.threads,e.results)})})},r.addThreads=function(e){D["default"].dispatch((0,S.append)(e,r.getSorting()))},r.applyDiff=function(){r.addThreads(r.state.diff.results),r.setState(Object.assign({},r.state.diff,{moderation:(0,v.getModerationActions)(D["default"].getState().threads),diff:{results:[]}}))},r.freezeThread=function(e){r.setState(function(t){return{busyThreads:F.toggle(t.busyThreads,e)}})},r.updateThread=function(e){D["default"].dispatch((0,S.patch)(e,e,r.getSorting()))},r.deleteThread=function(e){D["default"].dispatch((0,S.deleteThread)(e))},r.state={isMounted:!0,isLoaded:!1,isBusy:!1,diff:{results:[]},moderation:[],busyThreads:[],dropdown:!1,subcategories:[],count:0,more:0,page:1,pages:1};var a=r.getCategory();return x["default"].has("THREADS")?r.initWithPreloadedData(a,x["default"].get("THREADS")):r.initWithoutPreloadedData(a),r}return i(t,e),l(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,v.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,r=arguments.length<=1||void 0===arguments[1]?1:arguments[1];M["default"].get(x["default"].get("THREADS_API"),{category:e,list:this.props.route.list.type,page:r||1},"threads").then(function(a){t.state.isMounted&&(1===r?D["default"].dispatch((0,S.hydrate)(a.results)):D["default"].dispatch((0,S.append)(a.results,t.getSorting())),t.setState({isLoaded:!0,isBusy:!1,moderation:(0,v.getModerationActions)(D["default"].getState().threads),subcategories:a.subcategories,count:a.count,more:a.more,page:a.page,pages:a.pages}),t.startPolling(e))},function(e){I["default"].apiError(e)})}},{key:"startPolling",value:function(e){R["default"].start({poll:"threads",url:x["default"].get("THREADS_API"),data:{category:e,list:this.props.route.list.type},frequency:12e4,update:this.pollResponse})}},{key:"componentDidMount",value:function(){this.setPageTitle(),x["default"].has("THREADS")&&(D["default"].dispatch((0,S.hydrate)(x["default"].pop("THREADS").results)),this.setState({isLoaded:!0})),D["default"].dispatch(C.none())}},{key:"componentWillUnmount",value:function(){this.state.isMounted=!1,R["default"].stop("threads")}},{key:"getTitle",value:function(){return(0,v.getTitle)(this.props.route)}},{key:"setPageTitle",value:function(){this.props.route.category.level||!x["default"].get("THREADS_ON_INDEX")?z["default"].set((0,v.getPageTitle)(this.props.route)):x["default"].get("SETTINGS").forum_index_title?document.title=x["default"].get("SETTINGS").forum_index_title:document.title=x["default"].get("SETTINGS").forum_name}},{key:"getSorting",value:function(){return this.props.route.category.special_role?p.compareGlobalWeight:p.compareWeight}},{key:"getCompactNav",value:function(){return this.props.route.lists.length>1?c["default"].createElement("div",{className:this.getCompactNavClassName()},c["default"].createElement(b.CompactNav,{baseUrl:this.props.route.category.absolute_url,list:this.props.route.list,lists:this.props.route.lists,hideNav:this.hideNav})):null}},{key:"getMoreButton",value:function(){return this.state.more?c["default"].createElement("div",{className:"pager-more"},c["default"].createElement(d["default"],{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,this.props.route.category.css_class&&(e+=" page-"+this.props.route.category.css_class),e}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement(g["default"],{categories:this.props.route.categoriesMap,disabled:!this.state.isLoaded,threads:this.props.threads,title:this.getTitle(),toggleNav:this.toggleNav,route:this.props.route,user:this.props.user}),this.getCompactNav(),c["default"].createElement(m["default"],{route:this.props.route,subcategories:this.state.subcategories,user:this.props.user,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(E["default"],{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(O["default"],{category:this.props.route.category,list:this.props.route.list})),this.getMoreButton()))}}]),t}(N["default"]);r["default"]=G},{"../../index":119,"../../reducers/selection":157,"../../reducers/threads":159,"../../services/ajax":163,"../../services/page-title":170,"../../services/polls":171,"../../services/snackbar":172,"../../services/store":173,"../../utils/sets":186,"../button":4,"../threads-list/root":64,"../with-dropdown":117,"./compare":78,"./container":79,"./header":80,"./list-empty":81,"./navs":87,"./utils":91,react:"react"}],90:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./category-picker"),f=a(c),d=e("./moderation/controls"),p=a(d),h=e("./moderation/selection"),m=a(h),b=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getCategoryPicker",value:function(){return this.props.subcategories.length?u["default"].createElement("div",{className:"toolbar-left"},u["default"].createElement(f["default"],{choices:this.props.subcategories,categories:this.props.categoriesMap,list:this.props.list})):null}},{key:"showModerationOptions",value:function(){return this.props.user.id&&this.props.moderation.allow}},{key:"getSelectionButton",value:function(){return this.showModerationOptions()?u["default"].createElement("div",{className:"toolbar-right dropdown"},u["default"].createElement("button",{type:"button",className:"btn btn-default 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(m["default"],{className:"dropdown-menu dropdown-menu-right",threads:this.props.threads})):null}},{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:"toolbar-right dropdown"},u["default"].createElement("button",{type:"button",className:"btn btn-default 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("Moderation")),u["default"].createElement(p["default"],{addThreads:this.props.addThreads,categories:this.props.categories,categoriesMap:this.props.categoriesMap,className:"dropdown-menu dropdown-menu-right",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:"render",value:function(){return u["default"].createElement("div",{className:"toolbar with-js"},this.getCategoryPicker(),u["default"].createElement("p",{className:"toolbar-left hidden-xs hidden-sm"},this.props.children),this.getSelectionButton(),this.getModerationButton())}}]),t}(u["default"].Component);r["default"]=b},{"./category-picker":77,"./moderation/controls":82,"./moderation/selection":86,react:"react"}],91:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 s(e,t){return[e.title===t.title,e.weight===t.weight,e.category===t.category,e.top_category===t.top_category,e.last_post===t.last_post,e.last_poster_name===t.last_poster_name].indexOf(!1)>=0}function i(e,t){var r={};return e.forEach(function(e){r[e.id]=e}),t.filter(function(e){return r[e.id]?s(r[e.id],e):!0})}function l(e){var t={allow:!1,can_approve:0,can_close:0,can_hide:0,can_merge:0,can_move:0,can_pin: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_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),t.allow=t.can_approve||t.can_close||t.can_hide||t.can_merge||t.can_move||t.can_pin}),t}Object.defineProperty(r,"__esModule",{value:!0}),r.getPageTitle=n,r.getTitle=o,r.isThreadChanged=s,r.diffThreads=i,r.getModerationActions=l;var u=e("../../index"),c=a(u)},{"../../index":119}],92:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0}),r.CompactGuestNav=r.GuestNav=r.GuestMenu=void 0;var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../avatar"),f=a(c),d=e("../register-button"),p=a(d),h=e("../sign-in.js"),m=a(h),b=e("../../services/mobile-navbar-dropdown"),y=a(b),g=e("../../services/modal"),v=a(g),_=r.GuestMenu=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"showSignInModal",value:function(){v["default"].show(m["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",{type:"button",className:"btn btn-default btn-block",onClick:this.showSignInModal},gettext("Sign in"))),u["default"].createElement("div",{className:"col-xs-6"},u["default"].createElement(p["default"],{className:"btn-primary btn-block"},gettext("Register"))))))}}]),t}(u["default"].Component);r.GuestNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return u["default"].createElement("div",{className:"nav nav-guest"},u["default"].createElement("button",{type:"button",className:"btn navbar-btn btn-default",onClick:this.showSignInModal},gettext("Sign in")),u["default"].createElement(p["default"],{className:"navbar-btn btn-primary"},gettext("Register")))}}]),t}(_),r.CompactGuestNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"showGuestMenu",value:function(){y["default"].show(_)}},{key:"render",value:function(){return u["default"].createElement("button",{type:"button",onClick:this.showGuestMenu},u["default"].createElement(f["default"],{size:"64"}))}}]),t}(u["default"].Component)},{"../../services/mobile-navbar-dropdown":168,"../../services/modal":169,"../avatar":2,"../register-button":51,"../sign-in.js":58,react:"react"}],93:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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.auth}Object.defineProperty(r,"__esModule",{value:!0}),r.CompactUserMenu=r.UserMenu=void 0;var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}();r.select=i;var u=e("react"),c=a(u),f=e("./guest-nav"),d=e("./user-nav");r.UserMenu=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments));
 }return s(t,e),l(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(d.UserNav,{user:this.props.user}):c["default"].createElement(f.GuestNav,null)}}]),t}(c["default"].Component),r.CompactUserMenu=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),l(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(d.CompactUserNav,{user:this.props.user}):c["default"].createElement(f.CompactGuestNav,null)}}]),t}(c["default"].Component)},{"./guest-nav":92,"./user-nav":94,react:"react"}],94:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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{user:e.auth.user}}Object.defineProperty(r,"__esModule",{value:!0}),r.CompactUserNav=r.UserNav=r.UserMenu=void 0;var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}();r.selectUserMenu=i;var u=e("react"),c=a(u),f=e("react-redux"),d=e("../avatar"),p=a(d),h=e("../change-avatar/root"),m=a(h),b=e("../../index"),y=a(b),g=e("../../services/mobile-navbar-dropdown"),v=a(g),_=e("../../services/modal"),E=a(_),w=r.UserMenu=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),l(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(){E["default"].show((0,f.connect)(h.select)(m["default"]))}},{key:"render",value:function(){return c["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},c["default"].createElement("li",{className:"dropdown-header"},c["default"].createElement("strong",null,this.props.user.username)),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",null,c["default"].createElement("a",{href:this.props.user.absolute_url},c["default"].createElement("span",{className:"material-icon"},"account_circle"),gettext("See your profile"))),c["default"].createElement("li",null,c["default"].createElement("a",{href:y["default"].get("USERCP_URL")},c["default"].createElement("span",{className:"material-icon"},"done_all"),gettext("Change options"))),c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn-link",onClick:this.changeAvatar},c["default"].createElement("span",{className:"material-icon"},"portrait"),gettext("Change avatar"))),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",{className:"dropdown-buttons"},c["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.logout},gettext("Log out"))))}}]),t}(c["default"].Component);r.UserNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),l(t,[{key:"render",value:function(){return c["default"].createElement("ul",{className:"ul nav navbar-nav nav-user"},c["default"].createElement("li",{className:"dropdown"},c["default"].createElement("a",{href:this.props.user.absolute_url,className:"dropdown-toggle","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",role:"button"},c["default"].createElement(p["default"],{user:this.props.user,size:"64"})),c["default"].createElement(w,{user:this.props.user})))}}]),t}(c["default"].Component),r.CompactUserNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),l(t,[{key:"showUserMenu",value:function(){v["default"].showConnected("user-menu",(0,f.connect)(i)(w))}},{key:"render",value:function(){return c["default"].createElement("button",{type:"button",onClick:this.showUserMenu},c["default"].createElement(p["default"],{user:this.props.user,size:"64"}))}}]),t}(c["default"].Component)},{"../../index":119,"../../services/mobile-navbar-dropdown":168,"../../services/modal":169,"../avatar":2,"../change-avatar/root":16,react:"react","react-redux":"react-redux"}],95:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0}),r.StatusLabel=r.StatusIcon=void 0;var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClass",value:function(){var e="";return this.props.status.is_banned?e="banned":this.props.status.is_hidden?e="offline":this.props.status.is_online_hidden?e="online":this.props.status.is_offline_hidden?e="offline":this.props.status.is_online?e="online":this.props.status.is_offline&&(e="offline"),"user-status user-"+e}},{key:"render",value:function(){return u["default"].createElement("span",{className:this.getClass()},this.props.children)}}]),t}(u["default"].Component);r["default"]=c;r.StatusIcon=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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 u["default"].createElement("span",{className:"material-icon status-icon"},this.getIcon())}}]),t}(u["default"].Component),r.StatusLabel=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getHelp",value:function(){return this.props.status.is_banned?this.props.status.banned_until?interpolate(gettext("%(username)s is banned until %(ban_expires)s"),{username:this.props.user.username,ban_expires:this.props.status.banned_until.format("LL, LT")},!0):interpolate(gettext("%(username)s is banned"),{username:this.props.user.username},!0):this.props.status.is_hidden?interpolate(gettext("%(username)s is hiding presence"),{username:this.props.user.username},!0):this.props.status.is_online_hidden?interpolate(gettext("%(username)s is online (hidden)"),{username:this.props.user.username},!0):this.props.status.is_offline_hidden?interpolate(gettext("%(username)s was last seen %(last_click)s (hidden)"),{username:this.props.user.username,last_click:this.props.status.last_click.fromNow()},!0):this.props.status.is_online?interpolate(gettext("%(username)s is online"),{username:this.props.user.username},!0):this.props.status.is_offline?interpolate(gettext("%(username)s was last seen %(last_click)s"),{username:this.props.user.username,last_click:this.props.status.last_click.fromNow()},!0):void 0}},{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 u["default"].createElement("span",{className:this.props.className||"status-label",title:this.getHelp()},this.getLabel())}}]),t}(u["default"].Component)},{react:"react"}],96:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../avatar"),d=n(f),p=e("../../utils/random"),h=a(p),m=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(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(d["default"],{size:"100"}))),c["default"].createElement("div",{className:"change-author"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](30,100)+"px"}}," ")),c["default"].createElement("div",{className:"change"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](30,70)+"px"}}," "),c["default"].createElement("span",{className:"material-icon"},"arrow_forward"),c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](30,70)+"px"}}," ")),c["default"].createElement("div",{className:"change-date"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](80,140)+"px"}}," ")))}}]),t}(c["default"].Component);r["default"]=m},{"../../utils/random":183,"../avatar":2,react:"react"}],97:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../avatar"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"renderUserAvatar",value:function(){return this.props.change.changed_by?u["default"].createElement("a",{href:this.props.change.changed_by.absolute_url,className:"user-avatar-wrapper"},u["default"].createElement(f["default"],{user:this.props.change.changed_by,size:"100"})):u["default"].createElement("span",{className:"user-avatar-wrapper"},u["default"].createElement(f["default"],{size:"100"}))}},{key:"renderUsername",value:function(){return this.props.change.changed_by?u["default"].createElement("a",{href:this.props.change.changed_by.absolute_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);r["default"]=d},{"../avatar":2,react:"react"}],98:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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);r["default"]=c},{react:"react"}],99:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./change-preview"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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(f["default"],{hiddenOnMobile:e>0,key:e})})))}}]),t}(u["default"].Component);r["default"]=d},{"./change-preview":96,react:"react"}],100:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./change"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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(f["default"],{change:e,key:e.id})})))}}]),t}(u["default"].Component);r["default"]=d},{"./change":97,react:"react"}],101:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./list-empty"),f=a(c),d=e("./list-ready"),p=a(d),h=e("./list-preview"),m=a(h),b=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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(f["default"],{emptyMessage:this.props.emptyMessage}):u["default"].createElement(m["default"],null)}}]),t}(u["default"].Component);r["default"]=b},{"./list-empty":98,"./list-preview":99,"./list-ready":100,react:"react"}],102:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./user-card"),f=a(c),d=e("./user-preview"),p=a(d),h=e("../../utils/batch"),m=a(h),b=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"shouldComponentUpdate",value:function(e){return e.isLoaded}},{key:"getPager",value:function(){return this.props.pages>1?u["default"].createElement(Pager,this.props):null}},{key:"getClassName",value:function(){return this.props.className?"users-cards-list "+this.props.className+" ui-ready":"users-cards-list ui-ready"}},{key:"getColClassName",value:function(){return"col-md-"+12/this.props.cols}},{key:"getBody",value:function(){var e=this;if(this.props.isLoaded)return(0,m["default"])(this.props.users,this.props.cols).map(function(t,r){return u["default"].createElement("div",{className:"row",key:r},t.map(function(t){return u["default"].createElement("div",{className:e.getColClassName(),key:t.id},u["default"].createElement(f["default"],{user:t,showStatus:e.props.showStatus,showRank:e.props.showRank}))}))});for(var t=[],r=0;r<this.props.cols;r++)0===r?t.push(this.getColClassName()):t.push(this.getColClassName()+" hidden-xs hidden-sm");return u["default"].createElement("div",{className:"row"},t.map(function(t,r){return u["default"].createElement("div",{className:t,key:r},u["default"].createElement(p["default"],{showStatus:e.props.showStatus}))}))}},{key:"render",value:function(){return u["default"].createElement("div",{className:"users-cards-list ui-ready"},this.getBody())}}]),t}(u["default"].Component);r["default"]=b},{"../../utils/batch":176,"./user-card":103,"./user-preview":104,react:"react"}],103:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../avatar"),d=n(f),p=e("../user-status"),h=n(p),m=e("../../utils/random"),b=a(m),y=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(t,[{key:"getUserStatus",value:function(){return this.props.showStatus?this.props.user.status?c["default"].createElement(h["default"],{user:this.props.user,status:this.props.user.status},c["default"].createElement(p.StatusIcon,{user:this.props.user,status:this.props.user.status}),c["default"].createElement(p.StatusLabel,{user:this.props.user,status:this.props.user.status,className:"status-label"})):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",style:{width:b["int"](30,50)+"px"}}," ")):null}},{key:"getRankName",value:function(){return this.props.showRank?this.props.user.rank.is_tab?c["default"].createElement("a",{href:this.props.user.rank.absolute_url,className:"item-title rank-name"},this.props.user.rank.name):c["default"].createElement("span",{className:"item-title rank-name"},this.props.user.rank.name):null}},{key:"getUserTitle",value:function(){return this.props.user.title?c["default"].createElement("span",{className:"user-title"},this.props.user.title):null}},{key:"getUserJoinedOn",value:function(){var e=interpolate(gettext("Joined on %(joined_on)s"),{joined_on:this.props.user.joined_on.format("LL, LT")},!0),t=interpolate(gettext("Joined %(joined_on)s"),{joined_on:this.props.user.joined_on.fromNow()},!0);return c["default"].createElement("span",{className:"user-joined-on",title:e},t)}},{key:"getPostsCount",value:function(){var e=ngettext("%(posts)s post","%(posts)s posts",this.props.user.posts);return interpolate(e,{posts:this.props.user.posts},!0)}},{key:"getThreadsCount",value:function(){var e=ngettext("%(threads)s thread","%(threads)s threads",this.props.user.threads);return interpolate(e,{threads:this.props.user.threads},!0)}},{key:"getFollowersCount",value:function(){var e=ngettext("%(followers)s follower","%(followers)s followers",this.props.user.followers);return interpolate(e,{followers:this.props.user.followers},!0)}},{key:"getClassName",value:function(){return this.props.user.rank.css_class?"user-card user-card-"+this.props.user.rank.css_class+" ui-ready":"user-card ui-ready"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement("div",{className:"user-card-bg-image"},c["default"].createElement(d["default"],{user:this.props.user,size:"400",className:"bg-image"}),c["default"].createElement("div",{className:"user-card-bg"},c["default"].createElement("div",{className:"user-details"},c["default"].createElement("div",{className:"user-avatar"},c["default"].createElement("a",{href:this.props.user.absolute_url},c["default"].createElement(d["default"],{user:this.props.user,size:"400"}))),c["default"].createElement("h4",{className:"user-name"},c["default"].createElement("a",{href:this.props.user.absolute_url,className:"item-title"},this.props.user.username)),c["default"].createElement("p",{className:"user-subscript"},this.getUserStatus(),this.getRankName(),this.getUserTitle(),this.getUserJoinedOn())),c["default"].createElement("div",{className:"user-card-stats"},c["default"].createElement("ul",{className:"list-unstyled"},c["default"].createElement("li",{className:"user-posts-count"},this.getPostsCount()),c["default"].createElement("li",{className:"user-threads-count"},this.getThreadsCount()),c["default"].createElement("li",{className:"user-followers-count"},this.getFollowersCount()))))))}}]),t}(c["default"].Component);r["default"]=y},{"../../utils/random":183,"../avatar":2,"../user-status":95,react:"react"}],104:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../avatar"),d=n(f),p=e("../../utils/random"),h=a(p),m=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"getUserStatus",value:function(){return this.props.showStatus?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",style:{width:h["int"](30,50)+"px"}}," ")):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"user-card ui-preview"},c["default"].createElement("div",{className:"user-card-bg-image"},c["default"].createElement(d["default"],{size:"400",className:"bg-image"}),c["default"].createElement("div",{className:"user-card-bg"},c["default"].createElement("div",{className:"user-details"},c["default"].createElement("div",{className:"user-avatar"},c["default"].createElement(d["default"],{size:"400"})),c["default"].createElement("h4",{className:"user-name"},c["default"].createElement("span",{className:"item-title"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](60,150)+"px"}}," "))),c["default"].createElement("p",{className:"user-subscript"},this.getUserStatus(),c["default"].createElement("span",{className:"user-joined-on"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](30,50)+"px"}}," ")))),c["default"].createElement("div",{className:"user-card-stats"},c["default"].createElement("ul",{className:"list-unstyled"},c["default"].createElement("li",{className:"user-posts-count"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](40,70)+"px"}}," ")),c["default"].createElement("li",{className:"user-threads-count"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](40,70)+"px"}}," ")),c["default"].createElement("li",{className:"user-followers-count"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](40,70)+"px"}}," ")))))))}}]),t}(c["default"].Component);r["default"]=m},{"../../utils/random":183,"../avatar":2,react:"react"}],105:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];
 }return s(t,e),l(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(d.UserNav,{user:this.props.user}):c["default"].createElement(f.GuestNav,null)}}]),t}(c["default"].Component),r.CompactUserMenu=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),l(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(d.CompactUserNav,{user:this.props.user}):c["default"].createElement(f.CompactGuestNav,null)}}]),t}(c["default"].Component)},{"./guest-nav":92,"./user-nav":94,react:"react"}],94:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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{user:e.auth.user}}Object.defineProperty(r,"__esModule",{value:!0}),r.CompactUserNav=r.UserNav=r.UserMenu=void 0;var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}();r.selectUserMenu=i;var u=e("react"),c=a(u),f=e("react-redux"),d=e("../avatar"),p=a(d),h=e("../change-avatar/root"),m=a(h),b=e("../../index"),y=a(b),g=e("../../services/mobile-navbar-dropdown"),v=a(g),_=e("../../services/modal"),E=a(_),w=r.UserMenu=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),l(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(){E["default"].show((0,f.connect)(h.select)(m["default"]))}},{key:"render",value:function(){return c["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},c["default"].createElement("li",{className:"dropdown-header"},c["default"].createElement("strong",null,this.props.user.username)),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",null,c["default"].createElement("a",{href:this.props.user.absolute_url},c["default"].createElement("span",{className:"material-icon"},"account_circle"),gettext("See your profile"))),c["default"].createElement("li",null,c["default"].createElement("a",{href:y["default"].get("USERCP_URL")},c["default"].createElement("span",{className:"material-icon"},"done_all"),gettext("Change options"))),c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn-link",onClick:this.changeAvatar},c["default"].createElement("span",{className:"material-icon"},"portrait"),gettext("Change avatar"))),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",{className:"dropdown-buttons"},c["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.logout},gettext("Log out"))))}}]),t}(c["default"].Component);r.UserNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),l(t,[{key:"render",value:function(){return c["default"].createElement("ul",{className:"ul nav navbar-nav nav-user"},c["default"].createElement("li",{className:"dropdown"},c["default"].createElement("a",{href:this.props.user.absolute_url,className:"dropdown-toggle","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",role:"button"},c["default"].createElement(p["default"],{user:this.props.user,size:"64"})),c["default"].createElement(w,{user:this.props.user})))}}]),t}(c["default"].Component),r.CompactUserNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),l(t,[{key:"showUserMenu",value:function(){v["default"].showConnected("user-menu",(0,f.connect)(i)(w))}},{key:"render",value:function(){return c["default"].createElement("button",{type:"button",onClick:this.showUserMenu},c["default"].createElement(p["default"],{user:this.props.user,size:"64"}))}}]),t}(c["default"].Component)},{"../../index":119,"../../services/mobile-navbar-dropdown":168,"../../services/modal":169,"../avatar":2,"../change-avatar/root":16,react:"react","react-redux":"react-redux"}],95:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0}),r.StatusLabel=r.StatusIcon=void 0;var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClass",value:function(){var e="";return this.props.status.is_banned?e="banned":this.props.status.is_hidden?e="offline":this.props.status.is_online_hidden?e="online":this.props.status.is_offline_hidden?e="offline":this.props.status.is_online?e="online":this.props.status.is_offline&&(e="offline"),"user-status user-"+e}},{key:"render",value:function(){return u["default"].createElement("span",{className:this.getClass()},this.props.children)}}]),t}(u["default"].Component);r["default"]=c;r.StatusIcon=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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 u["default"].createElement("span",{className:"material-icon status-icon"},this.getIcon())}}]),t}(u["default"].Component),r.StatusLabel=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getHelp",value:function(){return this.props.status.is_banned?this.props.status.banned_until?interpolate(gettext("%(username)s is banned until %(ban_expires)s"),{username:this.props.user.username,ban_expires:this.props.status.banned_until.format("LL, LT")},!0):interpolate(gettext("%(username)s is banned"),{username:this.props.user.username},!0):this.props.status.is_hidden?interpolate(gettext("%(username)s is hiding presence"),{username:this.props.user.username},!0):this.props.status.is_online_hidden?interpolate(gettext("%(username)s is online (hidden)"),{username:this.props.user.username},!0):this.props.status.is_offline_hidden?interpolate(gettext("%(username)s was last seen %(last_click)s (hidden)"),{username:this.props.user.username,last_click:this.props.status.last_click.fromNow()},!0):this.props.status.is_online?interpolate(gettext("%(username)s is online"),{username:this.props.user.username},!0):this.props.status.is_offline?interpolate(gettext("%(username)s was last seen %(last_click)s"),{username:this.props.user.username,last_click:this.props.status.last_click.fromNow()},!0):void 0}},{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 u["default"].createElement("span",{className:this.props.className||"status-label",title:this.getHelp()},this.getLabel())}}]),t}(u["default"].Component)},{react:"react"}],96:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../avatar"),d=n(f),p=e("../../utils/random"),h=a(p),m=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(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(d["default"],{size:"100"}))),c["default"].createElement("div",{className:"change-author"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](30,100)+"px"}}," ")),c["default"].createElement("div",{className:"change"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](30,70)+"px"}}," "),c["default"].createElement("span",{className:"material-icon"},"arrow_forward"),c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](30,70)+"px"}}," ")),c["default"].createElement("div",{className:"change-date"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](80,140)+"px"}}," ")))}}]),t}(c["default"].Component);r["default"]=m},{"../../utils/random":183,"../avatar":2,react:"react"}],97:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../avatar"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"renderUserAvatar",value:function(){return this.props.change.changed_by?u["default"].createElement("a",{href:this.props.change.changed_by.absolute_url,className:"user-avatar-wrapper"},u["default"].createElement(f["default"],{user:this.props.change.changed_by,size:"100"})):u["default"].createElement("span",{className:"user-avatar-wrapper"},u["default"].createElement(f["default"],{size:"100"}))}},{key:"renderUsername",value:function(){return this.props.change.changed_by?u["default"].createElement("a",{href:this.props.change.changed_by.absolute_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);r["default"]=d},{"../avatar":2,react:"react"}],98:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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);r["default"]=c},{react:"react"}],99:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./change-preview"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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(f["default"],{hiddenOnMobile:e>0,key:e})})))}}]),t}(u["default"].Component);r["default"]=d},{"./change-preview":96,react:"react"}],100:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./change"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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(f["default"],{change:e,key:e.id})})))}}]),t}(u["default"].Component);r["default"]=d},{"./change":97,react:"react"}],101:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./list-empty"),f=a(c),d=e("./list-ready"),p=a(d),h=e("./list-preview"),m=a(h),b=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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(f["default"],{emptyMessage:this.props.emptyMessage}):u["default"].createElement(m["default"],null)}}]),t}(u["default"].Component);r["default"]=b},{"./list-empty":98,"./list-preview":99,"./list-ready":100,react:"react"}],102:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./user-card"),f=a(c),d=e("./user-preview"),p=a(d),h=e("../../utils/batch"),m=a(h),b=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"shouldComponentUpdate",value:function(e){return e.isLoaded}},{key:"getPager",value:function(){return this.props.pages>1?u["default"].createElement(Pager,this.props):null}},{key:"getClassName",value:function(){return this.props.className?"users-cards-list "+this.props.className+" ui-ready":"users-cards-list ui-ready"}},{key:"getColClassName",value:function(){return"col-md-"+12/this.props.cols}},{key:"getBody",value:function(){var e=this;if(this.props.isLoaded)return(0,m["default"])(this.props.users,this.props.cols).map(function(t,r){return u["default"].createElement("div",{className:"row",key:r},t.map(function(t){return u["default"].createElement("div",{className:e.getColClassName(),key:t.id},u["default"].createElement(f["default"],{user:t,showStatus:e.props.showStatus,showRank:e.props.showRank}))}))});for(var t=[],r=0;r<this.props.cols;r++)0===r?t.push(this.getColClassName()):t.push(this.getColClassName()+" hidden-xs hidden-sm");return u["default"].createElement("div",{className:"row"},t.map(function(t,r){return u["default"].createElement("div",{className:t,key:r},u["default"].createElement(p["default"],{showStatus:e.props.showStatus}))}))}},{key:"render",value:function(){return u["default"].createElement("div",{className:"users-cards-list ui-ready"},this.getBody())}}]),t}(u["default"].Component);r["default"]=b},{"../../utils/batch":176,"./user-card":103,"./user-preview":104,react:"react"}],103:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../avatar"),d=n(f),p=e("../user-status"),h=n(p),m=e("../../utils/random"),b=a(m),y=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(t,[{key:"getUserStatus",value:function(){return this.props.showStatus?this.props.user.status?c["default"].createElement(h["default"],{user:this.props.user,status:this.props.user.status},c["default"].createElement(p.StatusIcon,{user:this.props.user,status:this.props.user.status}),c["default"].createElement(p.StatusLabel,{user:this.props.user,status:this.props.user.status,className:"status-label"})):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",style:{width:b["int"](30,50)+"px"}}," ")):null}},{key:"getRankName",value:function(){return this.props.showRank?this.props.user.rank.is_tab?c["default"].createElement("a",{href:this.props.user.rank.absolute_url,className:"item-title rank-name"},this.props.user.rank.name):c["default"].createElement("span",{className:"item-title rank-name"},this.props.user.rank.name):null}},{key:"getUserTitle",value:function(){return this.props.user.title?c["default"].createElement("span",{className:"user-title"},this.props.user.title):null}},{key:"getUserJoinedOn",value:function(){var e=interpolate(gettext("Joined on %(joined_on)s"),{joined_on:this.props.user.joined_on.format("LL, LT")},!0),t=interpolate(gettext("Joined %(joined_on)s"),{joined_on:this.props.user.joined_on.fromNow()},!0);return c["default"].createElement("span",{className:"user-joined-on",title:e},t)}},{key:"getPostsCount",value:function(){var e=ngettext("%(posts)s post","%(posts)s posts",this.props.user.posts);return interpolate(e,{posts:this.props.user.posts},!0)}},{key:"getThreadsCount",value:function(){var e=ngettext("%(threads)s thread","%(threads)s threads",this.props.user.threads);return interpolate(e,{threads:this.props.user.threads},!0)}},{key:"getFollowersCount",value:function(){var e=ngettext("%(followers)s follower","%(followers)s followers",this.props.user.followers);return interpolate(e,{followers:this.props.user.followers},!0)}},{key:"getClassName",value:function(){return this.props.user.rank.css_class?"user-card user-card-"+this.props.user.rank.css_class+" ui-ready":"user-card ui-ready"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement("div",{className:"user-card-bg-image"},c["default"].createElement(d["default"],{user:this.props.user,size:"400",className:"bg-image"}),c["default"].createElement("div",{className:"user-card-bg"},c["default"].createElement("div",{className:"user-details"},c["default"].createElement("div",{className:"user-avatar"},c["default"].createElement("a",{href:this.props.user.absolute_url},c["default"].createElement(d["default"],{user:this.props.user,size:"400"}))),c["default"].createElement("h4",{className:"user-name"},c["default"].createElement("a",{href:this.props.user.absolute_url,className:"item-title"},this.props.user.username)),c["default"].createElement("p",{className:"user-subscript"},this.getUserStatus(),this.getRankName(),this.getUserTitle(),this.getUserJoinedOn())),c["default"].createElement("div",{className:"user-card-stats"},c["default"].createElement("ul",{className:"list-unstyled"},c["default"].createElement("li",{className:"user-posts-count"},this.getPostsCount()),c["default"].createElement("li",{className:"user-threads-count"},this.getThreadsCount()),c["default"].createElement("li",{className:"user-followers-count"},this.getFollowersCount()))))))}}]),t}(c["default"].Component);r["default"]=y},{"../../utils/random":183,"../avatar":2,"../user-status":95,react:"react"}],104:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../avatar"),d=n(f),p=e("../../utils/random"),h=a(p),m=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"getUserStatus",value:function(){return this.props.showStatus?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",style:{width:h["int"](30,50)+"px"}}," ")):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"user-card ui-preview"},c["default"].createElement("div",{className:"user-card-bg-image"},c["default"].createElement(d["default"],{size:"400",className:"bg-image"}),c["default"].createElement("div",{className:"user-card-bg"},c["default"].createElement("div",{className:"user-details"},c["default"].createElement("div",{className:"user-avatar"},c["default"].createElement(d["default"],{size:"400"})),c["default"].createElement("h4",{className:"user-name"},c["default"].createElement("span",{className:"item-title"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](60,150)+"px"}}," "))),c["default"].createElement("p",{className:"user-subscript"},this.getUserStatus(),c["default"].createElement("span",{className:"user-joined-on"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](30,50)+"px"}}," ")))),c["default"].createElement("div",{className:"user-card-stats"},c["default"].createElement("ul",{className:"list-unstyled"},c["default"].createElement("li",{className:"user-posts-count"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](40,70)+"px"}}," ")),c["default"].createElement("li",{className:"user-threads-count"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](40,70)+"px"}}," ")),c["default"].createElement("li",{className:"user-followers-count"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](40,70)+"px"}}," ")))))))}}]),t}(c["default"].Component);r["default"]=m},{"../../utils/random":183,"../avatar":2,react:"react"}],105:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];
 a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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);r["default"]=c},{react:"react"}],106:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../../avatar"),d=n(f),p=e("../../../utils/random"),h=a(p),m=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(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(d["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:h["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:h["int"](30,50)+"px"}}," ")),c["default"].createElement("span",{className:"rank-name"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["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:h["int"](30,50)+"px"}}," ")))),c["default"].createElement("div",{className:"rank-position"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](20,30)+"px"}}," ")),c["default"].createElement("small",null,gettext("Rank"))),c["default"].createElement("div",{className:"rank-posts-counted"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](20,30)+"px"}}," ")),c["default"].createElement("small",null,gettext("Ranked posts"))),c["default"].createElement("div",{className:"rank-posts-total"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](20,30)+"px"}}," ")),c["default"].createElement("small",null,gettext("Total posts"))))}}]),t}(c["default"].Component);r["default"]=m},{"../../../utils/random":183,"../../avatar":2,react:"react"}],107:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("react-router"),d=e("../../avatar"),p=n(d),h=e("../../user-status"),m=n(h),b=e("../../../index"),y=n(b),g=e("../../../utils/random"),v=a(g),_=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(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(m["default"],{user:this.props.user,status:this.props.user.status},c["default"].createElement(h.StatusIcon,{user:this.props.user,status:this.props.user.status}),c["default"].createElement(h.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:v["int"](30,50)+"px"}}," "))}},{key:"getRankName",value:function(){if(this.props.rank.is_tab){var e=y["default"].get("USERS_LIST_URL")+this.props.rank.slug+"/";return c["default"].createElement(f.Link,{to:e,className:"rank-name item-title"},this.props.rank.name)}return c["default"].createElement("span",{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.absolute_url},c["default"].createElement(p["default"],{user:this.props.user,size:"50"}))),c["default"].createElement("div",{className:"rank-user"},c["default"].createElement("div",{className:"user-name"},c["default"].createElement("a",{href:this.props.user.absolute_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:"rank-position"},c["default"].createElement("strong",null,"#",this.props.counter),c["default"].createElement("small",null,gettext("Rank"))),c["default"].createElement("div",{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-posts-total"},c["default"].createElement("strong",null,this.props.user.posts),c["default"].createElement("small",null,gettext("Total posts"))))}}]),t}(c["default"].Component);r["default"]=_},{"../../../index":119,"../../../utils/random":183,"../../avatar":2,"../../user-status":95,react:"react","react-router":"react-router"}],108:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("./list-item-preview"),d=n(f),p=e("../../../utils/random"),h=a(p),m=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(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:h["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(d["default"],{hiddenOnMobile:e>0,key:e})})))))}}]),t}(c["default"].Component);r["default"]=m},{"../../../utils/random":183,"./list-item-preview":106,react:"react"}],109:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./list-item"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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(f["default"],{user:e,rank:e.rank,counter:t+1,key:e.id})})))))}}]),t}(u["default"].Component);r["default"]=d},{"./list-item":107,react:"react"}],110:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./list-empty"),f=a(c),d=e("./list-preview"),p=a(d),h=e("./list-ready"),m=a(h),b=e("../../../index"),y=a(b),g=e("../../../reducers/users"),v=e("../../../services/polls"),_=a(v),E=e("../../../services/store"),w=a(E),O=e("../../../services/page-title"),k=a(O),N=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.update=function(e){w["default"].dispatch((0,g.hydrate)(e.results)),r.setState({isLoaded:!0,trackedPeriod:e.tracked_period,count:e.count})},y["default"].has("USERS")?r.initWithPreloadedData(y["default"].pop("USERS")):r.initWithoutPreloadedData(),r.startPolling(),r}return s(t,e),i(t,[{key:"initWithPreloadedData",value:function(e){this.state={isLoaded:!0,trackedPeriod:e.tracked_period,count:e.count},w["default"].dispatch((0,g.hydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPolling",value:function(){_["default"].start({poll:"active-posters",url:y["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(m["default"],{users:this.props.users,trackedPeriod:this.state.trackedPeriod,count:this.state.count}):u["default"].createElement(f["default"],{trackedPeriod:this.state.trackedPeriod}):u["default"].createElement(p["default"],null)}}]),t}(u["default"].Component);r["default"]=N},{"../../../index":119,"../../../reducers/users":162,"../../../services/page-title":170,"../../../services/polls":171,"../../../services/store":173,"./list-empty":105,"./list-preview":108,"./list-ready":109,react:"react"}],111:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0}),r.CompactNav=r.TabsNav=void 0;var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("react-router"),f=e("../li"),d=a(f),p=e("../../index"),h=(a(p),function(e,t){var r=e;return r+="rank"===t.component?t.slug:t.component,r+"/"}),m=function(e,t,r){return t.map(function(t){var a=h(e,t);return u["default"].createElement(d["default"],{path:a,key:a},u["default"].createElement(c.Link,{to:a,onClick:r},t.name))})};r.TabsNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return u["default"].createElement("ul",{className:"nav nav-pills"},m(this.props.baseUrl,this.props.lists))}}]),t}(u["default"].Component),r.CompactNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return u["default"].createElement("ul",{className:"dropdown-menu",role:"menu"},m(this.props.baseUrl,this.props.lists,this.props.hideNav))}}]),t}(u["default"].Component)},{"../../index":119,"../li":21,react:"react","react-router":"react-router"}],112:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../../users-list/root"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"render",value:function(){return u["default"].createElement("div",null,u["default"].createElement(f["default"],{isLoaded:!1,cols:3,showStatus:!0}))}}]),t}(u["default"].Component);r["default"]=d},{"../../users-list/root":102,react:"react"}],113:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./pager"),f=a(c),d=e("../../users-list/root"),p=a(d),h=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getPager",value:function(){return this.props.pages>1?u["default"].createElement(f["default"],this.props):null}},{key:"render",value:function(){return u["default"].createElement("div",null,u["default"].createElement(p["default"],{users:this.props.users,showStatus:!0,cols:3,isLoaded:!0}),this.getPager())}}]),t}(u["default"].Component);r["default"]=h},{"../../users-list/root":102,"./pager":114,react:"react"}],114:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("react-router"),f=e("../../../utils/reset-scroll"),d=a(f),p=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getPreviousPage",value:function(){if(this.props.previous||this.props.first){var e=this.props.baseUrl;return this.props.previous&&(e+=this.props.previous+"/"),u["default"].createElement("li",{className:"previous"},u["default"].createElement(c.Link,{to:e,onClick:d["default"]},u["default"].createElement("span",{"aria-hidden":"true",className:"material-icon"},"arrow_back")))}return null}},{key:"getNextPage",value:function(){if(this.props.next){var e=this.props.baseUrl+this.props.next+"/";return u["default"].createElement("li",{className:"next"},u["default"].createElement(c.Link,{to:e,onClick:d["default"]},u["default"].createElement("span",{"aria-hidden":"true",className:"material-icon"},"arrow_forward")))}return null}},{key:"getProgessBar",value:function(){var e=this;return u["default"].createElement("ul",{className:"pager-progress-bar"},this.props.page_range.map(function(t){var r=t===e.props.page?"active":null,a=e.props.baseUrl;return t>1&&(a+=t+"/"),u["default"].createElement("li",{key:t,className:r},u["default"].createElement(c.Link,{to:a,onClick:d["default"]},t))}))}},{key:"render",value:function(){return u["default"].createElement("div",{className:"pager-undercontent"},u["default"].createElement("nav",null,u["default"].createElement("ul",{className:"pager"},this.getPreviousPage(),this.getNextPage()),this.getProgessBar()))}}]),t}(u["default"].Component);r["default"]=p},{"../../../utils/reset-scroll":184,react:"react","react-router":"react-router"}],115:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=a(u),f=e("../../page-lead"),d=a(f),p=e("./list"),h=a(p),m=e("./list-loading"),b=a(m),y=e("../../../index"),g=a(y),v=e("../../../reducers/users"),_=e("../../../services/polls"),E=a(_),w=e("../../../services/store"),O=a(w),k=e("../../../services/page-title"),N=a(k),j=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.update=function(e){O["default"].dispatch((0,v.hydrate)(e.results)),e.isLoaded=!0,r.setState(e)},g["default"].has("USERS")?r.initWithPreloadedData(g["default"].pop("USERS")):r.initWithoutPreloadedData(),r.startPolling(e.params.page||1),r}return s(t,e),l(t,[{key:"initWithPreloadedData",value:function(e){this.state=Object.assign(e,{isLoaded:!0}),O["default"].dispatch((0,v.hydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPolling",value:function(e){E["default"].start({poll:"rank-users",url:g["default"].get("USERS_API"),data:{rank:this.props.route.rank.id,page:e},frequency:9e4,update:this.update})}},{key:"componentDidMount",value:function(){N["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&&(N["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(d["default"],{copy:this.props.route.rank.description.html})):null}},{key:"getComponent",value:function(){if(this.state.isLoaded){if(this.state.count>0){var e=g["default"].get("USERS_LIST_URL")+this.props.route.rank.slug+"/";return c["default"].createElement(h["default"],i({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);r["default"]=j},{"../../../index":119,"../../../reducers/users":162,"../../../services/page-title":170,"../../../services/polls":171,"../../../services/store":173,"../../page-lead":35,"./list":113,"./list-loading":112,react:"react"}],116:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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{tick:e.tick.tick,user:e.auth.user,users:e.users}}function l(){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,d.connect)(i)(v["default"]),rank:t}),e.push({path:O["default"].get("USERS_LIST_URL")+t.slug+"/",component:(0,d.connect)(i)(v["default"]),rank:t})):"active-posters"===t.component&&e.push({path:O["default"].get("USERS_LIST_URL")+t.component+"/",component:(0,d.connect)(i)(y["default"]),extra:{name:t.name}})}),e}Object.defineProperty(r,"__esModule",{value:!0});var u=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}();r.select=i,r.paths=l;var c=e("react"),f=a(c),d=e("react-redux"),p=e("../dropdown-toggle"),h=a(p),m=e("./navs"),b=e("./active-posters/root"),y=a(b),g=e("./rank/root"),v=a(g),_=e("../with-dropdown"),E=a(_),w=e("../../index"),O=a(w),k=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"render",value:function(){return f["default"].createElement("div",{className:"page page-users-lists"},f["default"].createElement("div",{className:"page-header tabbed"},f["default"].createElement("div",{className:"container"},f["default"].createElement("h1",{className:"pull-left"},gettext("Users")),f["default"].createElement(h["default"],{toggleNav:this.toggleNav,dropdown:this.state.dropdown})),f["default"].createElement("div",{className:"page-tabs hidden-xs hidden-sm"},f["default"].createElement("div",{className:"container"},f["default"].createElement(m.TabsNav,{lists:O["default"].get("USERS_LISTS"),baseUrl:O["default"].get("USERS_LIST_URL")})))),f["default"].createElement("div",{className:this.getCompactNavClassName()},f["default"].createElement(m.CompactNav,{lists:O["default"].get("USERS_LISTS"),baseUrl:O["default"].get("USERS_LIST_URL"),hideNav:this.hideNav})),this.props.children)}}]),t}(E["default"]);r["default"]=k},{"../../index":119,"../dropdown-toggle":18,"../with-dropdown":117,"./active-posters/root":110,"./navs":111,"./rank/root":115,react:"react","react-redux":"react-redux"}],117:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.toggleNav=function(){r.setState({dropdown:!r.state.dropdown})},r.hideNav=function(){r.setState({dropdown:!1})},r.state={dropdown:!1},r}return s(t,e),i(t,[{key:"getCompactNavClassName",value:function(){return this.state.dropdown?"compact-nav open":"compact-nav"}}]),t}(u["default"].Component);r["default"]=c},{react:"react"}],118:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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,{
 a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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);r["default"]=c},{react:"react"}],106:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("../../avatar"),d=n(f),p=e("../../../utils/random"),h=a(p),m=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(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(d["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:h["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:h["int"](30,50)+"px"}}," ")),c["default"].createElement("span",{className:"rank-name"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["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:h["int"](30,50)+"px"}}," ")))),c["default"].createElement("div",{className:"rank-position"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](20,30)+"px"}}," ")),c["default"].createElement("small",null,gettext("Rank"))),c["default"].createElement("div",{className:"rank-posts-counted"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](20,30)+"px"}}," ")),c["default"].createElement("small",null,gettext("Ranked posts"))),c["default"].createElement("div",{className:"rank-posts-total"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:h["int"](20,30)+"px"}}," ")),c["default"].createElement("small",null,gettext("Total posts"))))}}]),t}(c["default"].Component);r["default"]=m},{"../../../utils/random":183,"../../avatar":2,react:"react"}],107:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("react-router"),d=e("../../avatar"),p=n(d),h=e("../../user-status"),m=n(h),b=e("../../../index"),y=n(b),g=e("../../../utils/random"),v=a(g),_=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(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(m["default"],{user:this.props.user,status:this.props.user.status},c["default"].createElement(h.StatusIcon,{user:this.props.user,status:this.props.user.status}),c["default"].createElement(h.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:v["int"](30,50)+"px"}}," "))}},{key:"getRankName",value:function(){if(this.props.rank.is_tab){var e=y["default"].get("USERS_LIST_URL")+this.props.rank.slug+"/";return c["default"].createElement(f.Link,{to:e,className:"rank-name item-title"},this.props.rank.name)}return c["default"].createElement("span",{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.absolute_url},c["default"].createElement(p["default"],{user:this.props.user,size:"50"}))),c["default"].createElement("div",{className:"rank-user"},c["default"].createElement("div",{className:"user-name"},c["default"].createElement("a",{href:this.props.user.absolute_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:"rank-position"},c["default"].createElement("strong",null,"#",this.props.counter),c["default"].createElement("small",null,gettext("Rank"))),c["default"].createElement("div",{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-posts-total"},c["default"].createElement("strong",null,this.props.user.posts),c["default"].createElement("small",null,gettext("Total posts"))))}}]),t}(c["default"].Component);r["default"]=_},{"../../../index":119,"../../../utils/random":183,"../../avatar":2,"../../user-status":95,react:"react","react-router":"react-router"}],108:[function(e,t,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function n(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 s(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 i(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(r,"__esModule",{value:!0});var l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=n(u),f=e("./list-item-preview"),d=n(f),p=e("../../../utils/random"),h=a(p),m=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),l(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:h["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(d["default"],{hiddenOnMobile:e>0,key:e})})))))}}]),t}(c["default"].Component);r["default"]=m},{"../../../utils/random":183,"./list-item-preview":106,react:"react"}],109:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./list-item"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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(f["default"],{user:e,rank:e.rank,counter:t+1,key:e.id})})))))}}]),t}(u["default"].Component);r["default"]=d},{"./list-item":107,react:"react"}],110:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./list-empty"),f=a(c),d=e("./list-preview"),p=a(d),h=e("./list-ready"),m=a(h),b=e("../../../index"),y=a(b),g=e("../../../reducers/users"),v=e("../../../services/polls"),_=a(v),E=e("../../../services/store"),w=a(E),O=e("../../../services/page-title"),k=a(O),N=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.update=function(e){w["default"].dispatch((0,g.hydrate)(e.results)),r.setState({isLoaded:!0,trackedPeriod:e.tracked_period,count:e.count})},y["default"].has("USERS")?r.initWithPreloadedData(y["default"].pop("USERS")):r.initWithoutPreloadedData(),r.startPolling(),r}return s(t,e),i(t,[{key:"initWithPreloadedData",value:function(e){this.state={isLoaded:!0,trackedPeriod:e.tracked_period,count:e.count},w["default"].dispatch((0,g.hydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPolling",value:function(){_["default"].start({poll:"active-posters",url:y["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(m["default"],{users:this.props.users,trackedPeriod:this.state.trackedPeriod,count:this.state.count}):u["default"].createElement(f["default"],{trackedPeriod:this.state.trackedPeriod}):u["default"].createElement(p["default"],null)}}]),t}(u["default"].Component);r["default"]=N},{"../../../index":119,"../../../reducers/users":162,"../../../services/page-title":170,"../../../services/polls":171,"../../../services/store":173,"./list-empty":105,"./list-preview":108,"./list-ready":109,react:"react"}],111:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0}),r.CompactNav=r.TabsNav=void 0;var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("react-router"),f=e("../li"),d=a(f),p=e("../../index"),h=(a(p),function(e,t){var r=e;return r+="rank"===t.component?t.slug:t.component,r+"/"}),m=function(e,t,r){return t.map(function(t){var a=h(e,t);return u["default"].createElement(d["default"],{path:a,key:a},u["default"].createElement(c.Link,{to:a,onClick:r},t.name))})};r.TabsNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return u["default"].createElement("ul",{className:"nav nav-pills"},m(this.props.baseUrl,this.props.lists))}}]),t}(u["default"].Component),r.CompactNav=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return u["default"].createElement("ul",{className:"dropdown-menu",role:"menu"},m(this.props.baseUrl,this.props.lists,this.props.hideNav))}}]),t}(u["default"].Component)},{"../../index":119,"../li":21,react:"react","react-router":"react-router"}],112:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("../../users-list/root"),f=a(c),d=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"render",value:function(){return u["default"].createElement("div",null,u["default"].createElement(f["default"],{isLoaded:!1,cols:3,showStatus:!0}))}}]),t}(u["default"].Component);r["default"]=d},{"../../users-list/root":102,react:"react"}],113:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("./pager"),f=a(c),d=e("../../users-list/root"),p=a(d),h=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getPager",value:function(){return this.props.pages>1?u["default"].createElement(f["default"],this.props):null}},{key:"render",value:function(){return u["default"].createElement("div",null,u["default"].createElement(p["default"],{users:this.props.users,showStatus:!0,cols:3,isLoaded:!0}),this.getPager())}}]),t}(u["default"].Component);r["default"]=h},{"../../users-list/root":102,"./pager":114,react:"react"}],114:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=e("react-router"),f=e("../../../utils/reset-scroll"),d=a(f),p=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getPreviousPage",value:function(){if(this.props.previous||this.props.first){var e=this.props.baseUrl;return this.props.previous&&(e+=this.props.previous+"/"),u["default"].createElement("li",{className:"previous"},u["default"].createElement(c.Link,{to:e,onClick:d["default"]},u["default"].createElement("span",{"aria-hidden":"true",className:"material-icon"},"arrow_back")))}return null}},{key:"getNextPage",value:function(){if(this.props.next){var e=this.props.baseUrl+this.props.next+"/";return u["default"].createElement("li",{className:"next"},u["default"].createElement(c.Link,{to:e,onClick:d["default"]},u["default"].createElement("span",{"aria-hidden":"true",className:"material-icon"},"arrow_forward")))}return null}},{key:"getProgessBar",value:function(){var e=this;return u["default"].createElement("ul",{className:"pager-progress-bar"},this.props.page_range.map(function(t){var r=t===e.props.page?"active":null,a=e.props.baseUrl;return t>1&&(a+=t+"/"),u["default"].createElement("li",{key:t,className:r},u["default"].createElement(c.Link,{to:a,onClick:d["default"]},t))}))}},{key:"render",value:function(){return u["default"].createElement("div",{className:"pager-undercontent"},u["default"].createElement("nav",null,u["default"].createElement("ul",{className:"pager"},this.getPreviousPage(),this.getNextPage()),this.getProgessBar()))}}]),t}(u["default"].Component);r["default"]=p},{"../../../utils/reset-scroll":184,react:"react","react-router":"react-router"}],115:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},l=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),u=e("react"),c=a(u),f=e("../../page-lead"),d=a(f),p=e("./list"),h=a(p),m=e("./list-loading"),b=a(m),y=e("../../../index"),g=a(y),v=e("../../../reducers/users"),_=e("../../../services/polls"),E=a(_),w=e("../../../services/store"),O=a(w),k=e("../../../services/page-title"),N=a(k),j=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.update=function(e){O["default"].dispatch((0,v.hydrate)(e.results)),e.isLoaded=!0,r.setState(e)},g["default"].has("USERS")?r.initWithPreloadedData(g["default"].pop("USERS")):r.initWithoutPreloadedData(),r.startPolling(e.params.page||1),r}return s(t,e),l(t,[{key:"initWithPreloadedData",value:function(e){this.state=Object.assign(e,{isLoaded:!0}),O["default"].dispatch((0,v.hydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPolling",value:function(e){E["default"].start({poll:"rank-users",url:g["default"].get("USERS_API"),data:{rank:this.props.route.rank.id,page:e},frequency:9e4,update:this.update})}},{key:"componentDidMount",value:function(){N["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&&(N["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(d["default"],{copy:this.props.route.rank.description.html})):null}},{key:"getComponent",value:function(){if(this.state.isLoaded){if(this.state.count>0){var e=g["default"].get("USERS_LIST_URL")+this.props.route.rank.slug+"/";return c["default"].createElement(h["default"],i({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);r["default"]=j},{"../../../index":119,"../../../reducers/users":162,"../../../services/page-title":170,"../../../services/polls":171,"../../../services/store":173,"../../page-lead":35,"./list":113,"./list-loading":112,react:"react"}],116:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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{tick:e.tick.tick,user:e.auth.user,users:e.users}}function l(){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,d.connect)(i)(v["default"]),rank:t}),e.push({path:O["default"].get("USERS_LIST_URL")+t.slug+"/",component:(0,d.connect)(i)(v["default"]),rank:t})):"active-posters"===t.component&&e.push({path:O["default"].get("USERS_LIST_URL")+t.component+"/",component:(0,d.connect)(i)(y["default"]),extra:{name:t.name}})}),e}Object.defineProperty(r,"__esModule",{value:!0});var u=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}();r.select=i,r.paths=l;var c=e("react"),f=a(c),d=e("react-redux"),p=e("../dropdown-toggle"),h=a(p),m=e("./navs"),b=e("./active-posters/root"),y=a(b),g=e("./rank/root"),v=a(g),_=e("../with-dropdown"),E=a(_),w=e("../../index"),O=a(w),k=function(e){function t(){return n(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"render",value:function(){return f["default"].createElement("div",{className:"page page-users-lists"},f["default"].createElement("div",{className:"page-header tabbed"},f["default"].createElement("div",{className:"container"},f["default"].createElement("h1",{className:"pull-left"},gettext("Users")),f["default"].createElement(h["default"],{toggleNav:this.toggleNav,dropdown:this.state.dropdown})),f["default"].createElement("div",{className:"page-tabs hidden-xs hidden-sm"},f["default"].createElement("div",{className:"container"},f["default"].createElement(m.TabsNav,{lists:O["default"].get("USERS_LISTS"),baseUrl:O["default"].get("USERS_LIST_URL")})))),f["default"].createElement("div",{className:this.getCompactNavClassName()},f["default"].createElement(m.CompactNav,{lists:O["default"].get("USERS_LISTS"),baseUrl:O["default"].get("USERS_LIST_URL"),hideNav:this.hideNav})),this.props.children)}}]),t}(E["default"]);r["default"]=k},{"../../index":119,"../dropdown-toggle":18,"../with-dropdown":117,"./active-posters/root":110,"./navs":111,"./rank/root":115,react:"react","react-redux":"react-redux"}],117:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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(r,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),l=e("react"),u=a(l),c=function(e){function t(e){n(this,t);var r=o(this,Object.getPrototypeOf(t).call(this,e));return r.toggleNav=function(){r.setState({dropdown:!r.state.dropdown})},r.hideNav=function(){r.setState({dropdown:!1})},r.state={dropdown:!1},r}return s(t,e),i(t,[{key:"getCompactNavClassName",value:function(){return this.state.dropdown?"compact-nav open":"compact-nav"}}]),t}(u["default"].Component);r["default"]=c},{react:"react"}],118:[function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(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 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,{

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


+ 2 - 2
misago/threads/api/threadendpoints/merge.py

@@ -12,7 +12,7 @@ from misago.categories.permissions import can_browse_category, can_see_category
 from ...events import record_event
 from ...events import record_event
 from ...models import Thread
 from ...models import Thread
 from ...permissions import can_see_thread
 from ...permissions import can_see_thread
-from ...serializers import MergeThreadsSerializer, ThreadListSerializer
+from ...serializers import MergeThreadsSerializer, ThreadsListSerializer
 from ...threadtypes import trees_map
 from ...threadtypes import trees_map
 from ...utils import add_categories_to_threads
 from ...utils import add_categories_to_threads
 
 
@@ -48,7 +48,7 @@ def threads_merge_endpoint(request):
     serializer = MergeThreadsSerializer(context=request.user, data=request.data)
     serializer = MergeThreadsSerializer(context=request.user, data=request.data)
     if serializer.is_valid():
     if serializer.is_valid():
         new_thread = merge_threads(request, serializer.validated_data, threads)
         new_thread = merge_threads(request, serializer.validated_data, threads)
-        return Response(ThreadListSerializer(new_thread).data)
+        return Response(ThreadsListSerializer(new_thread).data)
     else:
     else:
         return Response(serializer.errors, status=400)
         return Response(serializer.errors, status=400)
 
 

+ 9 - 7
misago/threads/models/thread.py

@@ -31,12 +31,15 @@ class Thread(models.Model):
     title = models.CharField(max_length=255)
     title = models.CharField(max_length=255)
     slug = models.CharField(max_length=255)
     slug = models.CharField(max_length=255)
     replies = models.PositiveIntegerField(default=0, db_index=True)
     replies = models.PositiveIntegerField(default=0, db_index=True)
+
     has_reported_posts = models.BooleanField(default=False)
     has_reported_posts = models.BooleanField(default=False)
     has_open_reports = models.BooleanField(default=False)
     has_open_reports = models.BooleanField(default=False)
     has_unapproved_posts = models.BooleanField(default=False)
     has_unapproved_posts = models.BooleanField(default=False)
     has_hidden_posts = models.BooleanField(default=False)
     has_hidden_posts = models.BooleanField(default=False)
 
 
     started_on = models.DateTimeField(db_index=True)
     started_on = models.DateTimeField(db_index=True)
+    last_post_on = models.DateTimeField(db_index=True)
+
     first_post = models.ForeignKey(
     first_post = models.ForeignKey(
         'misago_threads.Post',
         'misago_threads.Post',
         related_name='+',
         related_name='+',
@@ -53,7 +56,6 @@ class Thread(models.Model):
     starter_name = models.CharField(max_length=255)
     starter_name = models.CharField(max_length=255)
     starter_slug = models.CharField(max_length=255)
     starter_slug = models.CharField(max_length=255)
 
 
-    last_post_on = models.DateTimeField(db_index=True)
     last_post = models.ForeignKey(
     last_post = models.ForeignKey(
         'misago_threads.Post',
         'misago_threads.Post',
         related_name='+',
         related_name='+',
@@ -151,21 +153,21 @@ class Thread(models.Model):
     def thread_type(self):
     def thread_type(self):
         return self.category.thread_type
         return self.category.thread_type
 
 
+    def get_api_url(self):
+        return self.thread_type.get_thread_api_url(self)
+
     def get_absolute_url(self, page=1):
     def get_absolute_url(self, page=1):
         return self.thread_type.get_thread_absolute_url(self, page)
         return self.thread_type.get_thread_absolute_url(self, page)
 
 
-    def get_last_post_url(self):
-        return self.thread_type.get_thread_last_post_url(self)
-
     def get_new_post_url(self):
     def get_new_post_url(self):
         return self.thread_type.get_thread_new_post_url(self)
         return self.thread_type.get_thread_new_post_url(self)
 
 
+    def get_last_post_url(self):
+        return self.thread_type.get_thread_last_post_url(self)
+
     def get_unapproved_post_url(self):
     def get_unapproved_post_url(self):
         return self.thread_type.get_thread_unapproved_post_url(self)
         return self.thread_type.get_thread_unapproved_post_url(self)
 
 
-    def get_api_url(self):
-        return self.thread_type.get_thread_api_url(self)
-
     def set_title(self, title):
     def set_title(self, title):
         self.title = title
         self.title = title
         self.slug = slugify(title)
         self.slug = slugify(title)

+ 49 - 52
misago/threads/serializers/post.py

@@ -9,7 +9,6 @@ from ..models import Post
 
 
 __all__ = [
 __all__ = [
     'PostSerializer',
     'PostSerializer',
-    'ThreadPostSerializer',
 ]
 ]
 
 
 
 
@@ -17,18 +16,45 @@ class PostSerializer(serializers.ModelSerializer):
     poster = UserSerializer(many=False, read_only=True)
     poster = UserSerializer(many=False, read_only=True)
     parsed = serializers.SerializerMethodField()
     parsed = serializers.SerializerMethodField()
     attachments_cache = serializers.SerializerMethodField()
     attachments_cache = serializers.SerializerMethodField()
-    last_editor = UserSerializer(many=False, read_only=True)
-    last_editor_id = serializers.SerializerMethodField()
-    last_editor_url = serializers.SerializerMethodField()
-    hidden_by = UserSerializer(many=False, read_only=True)
-    hidden_by_id = serializers.SerializerMethodField()
-    hidden_by_url = serializers.SerializerMethodField()
+    last_editor = serializers.PrimaryKeyRelatedField(read_only=True)
+    hidden_by = serializers.PrimaryKeyRelatedField(read_only=True)
+
     acl = serializers.SerializerMethodField()
     acl = serializers.SerializerMethodField()
 
 
+    api = serializers.SerializerMethodField()
+    url = serializers.SerializerMethodField()
+
     class Meta:
     class Meta:
         model = Post
         model = Post
         fields = (
         fields = (
             'id',
             'id',
+            'poster',
+            'poster_name',
+            'poster_ip',
+            'parsed',
+            'has_attachments',
+            'attachments_cache',
+            'posted_on',
+            'updated_on',
+            'hidden_on',
+            'edits',
+            'last_editor',
+            'last_editor_name',
+            'last_editor_slug',
+            'hidden_by',
+            'hidden_by_name',
+            'hidden_by_slug',
+            'is_unapproved',
+            'is_hidden',
+            'is_protected',
+            'is_event',
+            'event_type',
+            'event_context',
+
+            'acl',
+
+            'api',
+            'url',
         )
         )
 
 
     def get_parsed(self, obj):
     def get_parsed(self, obj):
@@ -41,8 +67,21 @@ class PostSerializer(serializers.ModelSerializer):
         # TODO: check if user can download attachments before we'll expose them here
         # TODO: check if user can download attachments before we'll expose them here
         return None
         return None
 
 
-    def get_last_editor_id(self, obj):
-        return obj.last_editor_id
+    def get_acl(self, obj):
+        try:
+            return obj.acl
+        except AttributeError:
+            return None
+
+    def get_api(self, obj):
+        return {}
+
+    def get_url(self, obj):
+        return {
+            'index': obj.get_absolute_url(),
+            'last_editor': self.get_last_editor_url(obj),
+            'hidden_by': self.get_hidden_by_url(obj),
+        }
 
 
     def get_last_editor_url(self, obj):
     def get_last_editor_url(self, obj):
         if obj.last_editor_id:
         if obj.last_editor_id:
@@ -53,53 +92,11 @@ class PostSerializer(serializers.ModelSerializer):
         else:
         else:
             return None
             return None
 
 
-    def get_hidden_by_id(self, obj):
-        return obj.hidden_by_id
-
     def get_hidden_by_url(self, obj):
     def get_hidden_by_url(self, obj):
-        if obj.hidden_by:
+        if obj.hidden_by_id:
             return reverse('misago:user', kwargs={
             return reverse('misago:user', kwargs={
                 'pk': obj.hidden_by_id,
                 'pk': obj.hidden_by_id,
                 'slug': obj.hidden_by_slug
                 'slug': obj.hidden_by_slug
             })
             })
         else:
         else:
             return None
             return None
-
-    def get_acl(self, obj):
-        try:
-            return obj.acl
-        except AttributeError:
-            return None
-
-
-class ThreadPostSerializer(PostSerializer):
-    class Meta:
-        model = Post
-        fields = (
-            'id',
-            'poster',
-            'poster_name',
-            'poster_ip',
-            'parsed',
-            'has_attachments',
-            'attachments_cache',
-            'posted_on',
-            'updated_on',
-            'hidden_on',
-            'edits',
-            'last_editor_id',
-            'last_editor_name',
-            'last_editor_slug',
-            'last_editor_url',
-            'hidden_by_id',
-            'hidden_by_name',
-            'hidden_by_slug',
-            'hidden_by_url',
-            'is_unapproved',
-            'is_hidden',
-            'is_protected',
-            'is_event',
-            'event_type',
-            'event_context',
-            'acl',
-        )

+ 65 - 61
misago/threads/serializers/thread.py

@@ -9,20 +9,20 @@ from ..models import Thread
 
 
 __all__ = [
 __all__ = [
     'ThreadSerializer',
     'ThreadSerializer',
-    'ThreadListSerializer',
+    'ThreadsListSerializer',
 ]
 ]
 
 
 
 
 class ThreadSerializer(serializers.ModelSerializer):
 class ThreadSerializer(serializers.ModelSerializer):
     category = BasicCategorySerializer(many=False, read_only=True)
     category = BasicCategorySerializer(many=False, read_only=True)
+
+    acl = serializers.SerializerMethodField()
+    is_new = serializers.SerializerMethodField()
     is_read = serializers.SerializerMethodField()
     is_read = serializers.SerializerMethodField()
-    last_poster_url = serializers.SerializerMethodField()
-    absolute_url = serializers.SerializerMethodField()
-    last_post_url = serializers.SerializerMethodField()
-    new_post_url = serializers.SerializerMethodField()
     subscription = serializers.SerializerMethodField()
     subscription = serializers.SerializerMethodField()
-    api_url = serializers.SerializerMethodField()
-    acl = serializers.SerializerMethodField()
+
+    api = serializers.SerializerMethodField()
+    url = serializers.SerializerMethodField()
 
 
     class Meta:
     class Meta:
         model = Thread
         model = Thread
@@ -30,65 +30,81 @@ class ThreadSerializer(serializers.ModelSerializer):
             'id',
             'id',
             'category',
             'category',
             'title',
             'title',
-            'weight',
             'replies',
             'replies',
             'has_unapproved_posts',
             'has_unapproved_posts',
-            'is_read',
             'is_unapproved',
             'is_unapproved',
             'is_hidden',
             'is_hidden',
             'is_closed',
             'is_closed',
-            'absolute_url',
-            'last_poster_url',
-            'last_post_url',
-            'new_post_url',
-            'subscription',
-            'api_url',
+            'weight',
+
             'acl',
             'acl',
+            'is_new',
+            'is_read',
+            'subscription',
+
+            'api',
+            'url',
         )
         )
 
 
+    def get_acl(self, obj):
+        try:
+            return obj.acl
+        except AttributeError:
+            return {}
+
+    def get_is_new(self, obj):
+        try:
+            return obj.is_new
+        except AttributeError:
+            return None
+
     def get_is_read(self, obj):
     def get_is_read(self, obj):
         try:
         try:
             return obj.is_read
             return obj.is_read
         except AttributeError:
         except AttributeError:
             return None
             return None
 
 
-    def get_last_poster_url(self, obj):
-        if obj.last_poster_id:
-            return reverse('misago:user', kwargs={
-                'slug': obj.last_poster_slug,
-                'pk': obj.last_poster_id,
-            })
-        else:
+    def get_top_category(self, obj):
+        try:
+            return obj.top_category.pk
+        except AttributeError:
             return None
             return None
 
 
-    def get_absolute_url(self, obj):
-        return obj.get_absolute_url()
-
-    def get_last_post_url(self, obj):
-        return obj.get_last_post_url()
-
-    def get_new_post_url(self, obj):
-        return obj.get_new_post_url()
-
     def get_subscription(self, obj):
     def get_subscription(self, obj):
         try:
         try:
             return obj.subscription.send_email
             return obj.subscription.send_email
         except AttributeError:
         except AttributeError:
             return None
             return None
 
 
-    def get_api_url(self, obj):
-        return obj.get_api_url()
+    def get_api(self, obj):
+        return {
+            'index': obj.get_api_url(),
+            'read': 'nada',
+        }
+
+    def get_url(self, obj):
+        return {
+            'index': obj.get_absolute_url(),
+            'new_post': obj.get_new_post_url(),
+            'last_post': obj.get_last_post_url(),
+            'unapproved_post': obj.get_unapproved_post_url(),
+            'last_poster': self.get_last_poster_url(obj),
+        }
 
 
-    def get_acl(self, obj):
-        try:
-            return obj.acl
-        except AttributeError:
-            return {}
+    def get_last_poster_url(self, obj):
+        if obj.last_poster_id:
+            return reverse('misago:user', kwargs={
+                'slug': obj.last_poster_slug,
+                'pk': obj.last_poster_id,
+            })
+        else:
+            return None
 
 
 
 
-class ThreadListSerializer(ThreadSerializer):
+class ThreadsListSerializer(ThreadSerializer):
     category = serializers.PrimaryKeyRelatedField(read_only=True)
     category = serializers.PrimaryKeyRelatedField(read_only=True)
     last_post = serializers.PrimaryKeyRelatedField(read_only=True)
     last_post = serializers.PrimaryKeyRelatedField(read_only=True)
+
     top_category = serializers.SerializerMethodField()
     top_category = serializers.SerializerMethodField()
 
 
     class Meta:
     class Meta:
@@ -97,35 +113,23 @@ class ThreadListSerializer(ThreadSerializer):
             'id',
             'id',
             'category',
             'category',
             'title',
             'title',
-            'weight',
-            'top_category',
             'replies',
             'replies',
             'has_unapproved_posts',
             'has_unapproved_posts',
             'started_on',
             'started_on',
+            'last_post_on',
             'last_post',
             'last_post',
             'last_poster_name',
             'last_poster_name',
-            'last_poster_url',
-            'last_post_on',
-            'is_read',
+            'weight',
             'is_unapproved',
             'is_unapproved',
             'is_hidden',
             'is_hidden',
             'is_closed',
             'is_closed',
-            'absolute_url',
-            'last_post_url',
-            'new_post_url',
-            'subscription',
-            'api_url',
-            'acl',
-        )
 
 
-    def get_top_category(self, obj):
-        try:
-            return obj.top_category.pk
-        except AttributeError:
-            return None
+            'acl',
+            'is_new',
+            'is_read',
+            'subscription',
+            'top_category',
 
 
-    def get_acl(self, obj):
-        try:
-            return obj.acl
-        except AttributeError:
-            return {}
+            'api',
+            'url',
+        )

+ 3 - 3
misago/threads/tests/test_threads_merge_api.py

@@ -9,7 +9,7 @@ from misago.categories.models import Category
 from .. import testutils
 from .. import testutils
 from ..api.threadendpoints.merge import MERGE_LIMIT
 from ..api.threadendpoints.merge import MERGE_LIMIT
 from ..models import Post, Thread
 from ..models import Post, Thread
-from ..serializers import ThreadListSerializer
+from ..serializers import ThreadsListSerializer
 from .test_threads_api import ThreadsApiTestCase
 from .test_threads_api import ThreadsApiTestCase
 
 
 
 
@@ -435,7 +435,7 @@ class ThreadsMergeApiTests(ThreadsApiTestCase):
         add_acl(self.user, new_thread.category)
         add_acl(self.user, new_thread.category)
         add_acl(self.user, new_thread)
         add_acl(self.user, new_thread)
 
 
-        self.assertEqual(response_json, ThreadListSerializer(new_thread).data)
+        self.assertEqual(response_json, ThreadsListSerializer(new_thread).data)
 
 
         # did posts move to new thread?
         # did posts move to new thread?
         for post in Post.objects.filter(id__in=posts_ids):
         for post in Post.objects.filter(id__in=posts_ids):
@@ -476,7 +476,7 @@ class ThreadsMergeApiTests(ThreadsApiTestCase):
         add_acl(self.user, new_thread.category)
         add_acl(self.user, new_thread.category)
         add_acl(self.user, new_thread)
         add_acl(self.user, new_thread)
 
 
-        self.assertEqual(response_json, ThreadListSerializer(new_thread).data)
+        self.assertEqual(response_json, ThreadsListSerializer(new_thread).data)
 
 
         # did posts move to new thread?
         # did posts move to new thread?
         for post in Post.objects.filter(id__in=posts_ids):
         for post in Post.objects.filter(id__in=posts_ids):

+ 2 - 2
misago/threads/viewmodels/posts.py

@@ -6,7 +6,7 @@ from misago.readtracker.threadstracker import make_posts_read_aware
 from misago.users.online.utils import make_users_status_aware
 from misago.users.online.utils import make_users_status_aware
 
 
 from ..permissions.threads import exclude_invisible_posts
 from ..permissions.threads import exclude_invisible_posts
-from ..serializers import ThreadPostSerializer
+from ..serializers import PostSerializer
 
 
 
 
 class ViewModel(object):
 class ViewModel(object):
@@ -45,7 +45,7 @@ class ViewModel(object):
 
 
     def get_frontend_context(self):
     def get_frontend_context(self):
         context = {
         context = {
-            'results': ThreadPostSerializer(self.posts, many=True).data
+            'results': PostSerializer(self.posts, many=True).data
         }
         }
 
 
         context.update(self.paginator)
         context.update(self.paginator)

+ 2 - 2
misago/threads/viewmodels/threads.py

@@ -14,7 +14,7 @@ from misago.readtracker import threadstracker
 
 
 from ..models import Thread
 from ..models import Thread
 from ..permissions import exclude_invisible_threads
 from ..permissions import exclude_invisible_threads
-from ..serializers import ThreadListSerializer
+from ..serializers import ThreadsListSerializer
 from ..subscriptions import make_subscription_aware
 from ..subscriptions import make_subscription_aware
 from ..utils import add_categories_to_threads
 from ..utils import add_categories_to_threads
 
 
@@ -97,7 +97,7 @@ class ViewModel(object):
     def get_frontend_context(self):
     def get_frontend_context(self):
         context = {
         context = {
             'THREADS': {
             'THREADS': {
-                'results': ThreadListSerializer(self.threads, many=True).data,
+                'results': ThreadsListSerializer(self.threads, many=True).data,
                 'subcategories': [c.pk for c in self.category.children]
                 'subcategories': [c.pk for c in self.category.children]
             },
             },
         }
         }

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