Browse Source

registeration form, banned page, extra test for ban check scenario

Rafał Pitoń 9 years ago
parent
commit
7511744f95

+ 3 - 1
frontend/src/components/banned-page.js

@@ -39,7 +39,9 @@ export default class extends React.Component {
           </div>
           <div className="message-body">
             {this.getReasonMessage()}
-            <p className="message-footnote">{this.getExpirationMessage()}</p>
+            <p className="message-footnote">
+              {this.getExpirationMessage()}
+            </p>
           </div>
         </div>
       </div>

+ 1 - 1
frontend/src/components/register.js

@@ -70,10 +70,10 @@ export class RegisterForm extends Form {
 
   handleError(rejection) {
     if (rejection.status === 400) {
-      snackbar.error(gettext("Form contains errors."));
       this.setState({
         'errors': Object.assign({}, this.state.errors, rejection)
       });
+      snackbar.error(gettext("Form contains errors."));
     } else if (rejection.status === 403 && rejection.ban) {
       showBannedPage(rejection.ban);
       modal.hide();

+ 1 - 1
frontend/src/initializers/auth-message-component.js

@@ -10,5 +10,5 @@ export default function initializer() {
 misago.addInitializer({
   name: 'component:auth-message',
   initializer: initializer,
-  before: 'auth'
+  after: 'store'
 });

+ 14 - 0
frontend/src/initializers/banned-page-component.js

@@ -0,0 +1,14 @@
+import misago from 'misago/index';
+import showBannedPage from 'misago/utils/banned-page';
+
+export default function initializer(context) {
+  if (context.get('BAN_MESSAGE')) {
+    showBannedPage(context.get('BAN_MESSAGE'), false);
+  }
+}
+
+misago.addInitializer({
+  name: 'component:baned-page',
+  initializer: initializer,
+  after: 'store'
+});

+ 1 - 1
frontend/src/utils/banned-page.js

@@ -27,7 +27,7 @@ export default function(ban, changeState) {
     document.getElementById('page-mount')
   );
 
-  if (typeof changeState === 'undefined' || !changeState) {
+  if (typeof changeState === 'undefined' || changeState) {
     let forumName = misago.get('SETTINGS').forum_name;
     document.title = gettext("You are banned") + ' | ' + forumName;
     window.history.pushState({}, "", misago.get('BANNED_URL'));

+ 204 - 0
frontend/tests/components/register.js

@@ -6,8 +6,212 @@ import { RegisterForm, RegisterComplete } from 'misago/components/register'; //
 import modal from 'misago/services/modal';
 import snackbar from 'misago/services/snackbar';
 
+let component = null;
 let snackbarStore = null;
 
+describe("Register Form", function() {
+    beforeEach(function() {
+    snackbarStore = window.snackbarStoreMock();
+    snackbar.init(snackbarStore);
+    window.initModal(modal);
+
+    window.zxcvbn = function() {
+      return {
+        score: 2
+      };
+    };
+
+    misago._context = {
+      'SETTINGS': {
+        captcha_type: 'no',
+
+        username_length_min: 3,
+        username_length_max: 10,
+
+        password_length_min: 3
+      },
+
+      'USERS_API': '/test-api/users/',
+      'TERMS_OF_SERVICE_URL': '/read-rules/'
+    };
+
+    /* jshint ignore:start */
+    component = ReactDOM.render(
+      <RegisterForm />,
+      document.getElementById('test-mount')
+    );
+    /* jshint ignore:end */
+  });
+
+  afterEach(function() {
+    delete window.zxcvbn;
+    window.emptyTestContainers();
+    window.snackbarClear(snackbar);
+    $.mockjax.clear();
+  });
+
+  it("renders", function() {
+    let element = $('.modal-register');
+    assert.ok(element.length, "component renders");
+
+    assert.equal(element.find('.modal-footer a').attr('href'), '/read-rules/',
+      "registration has url to forum TOS");
+
+    assert.equal(element.find('.modal-footer a').text().trim(),
+      "By registering you agree to site's terms and conditions.",
+      "registration has legal footnote");
+  });
+
+  it("handles empty submit", function(done) {
+    snackbarStore.callback(function(message) {
+      assert.deepEqual(message, {
+        message: "Form contains errors.",
+        type: "error"
+      }, "rejests empty submission");
+      done();
+    });
+
+    window.simulateSubmit('#test-mount form');
+  });
+
+  it("handles invalid submit", function(done) {
+    snackbarStore.callback(function(message) {
+      assert.deepEqual(message, {
+        message: "Form contains errors.",
+        type: "error"
+      }, "rejests empty submission");
+      done();
+    });
+
+    window.simulateChange('#id_username', 'lo');
+    window.simulateChange('#id_email', 'nope');
+    window.simulateChange('#id_password', 'sh');
+
+    window.simulateSubmit('#test-mount form');
+  });
+
+  it("handles backend error", function(done) {
+    snackbarStore.callback(function(message) {
+      assert.deepEqual(message, {
+        message: "Unknown error has occured.",
+        type: 'error'
+      }, "raised alert about backend error");
+      done();
+    });
+
+    $.mockjax({
+      url: '/test-api/users/',
+      status: 500
+    });
+
+    window.simulateChange('#id_username', 'SomeFake');
+    window.simulateChange('#id_email', 'lorem@ipsum.com');
+    window.simulateChange('#id_password', 'pass1234');
+
+    window.simulateSubmit('#test-mount form');
+  });
+
+  it("handles rejected data", function(done) {
+    snackbarStore.callback(function(message) {
+      assert.deepEqual(message, {
+        message: "Form contains errors.",
+        type: 'error'
+      }, "raised alert about backend rejection");
+
+      component.forceUpdate(function() {
+        assert.deepEqual(component.state.errors.username,
+          ['Dat username tou!'],
+          "set backend username error to validation");
+        assert.deepEqual(component.state.errors.password,
+          ['Dat password tou!'],
+          "set backend password error to validation");
+
+        done();
+      });
+    });
+
+    $.mockjax({
+      url: '/test-api/users/',
+      status: 400,
+      responseText: {
+        username: ['Dat username tou!'],
+        password: ['Dat password tou!']
+      }
+    });
+
+    window.simulateChange('#id_username', 'SomeFake');
+    window.simulateChange('#id_email', 'lorem@ipsum.com');
+    window.simulateChange('#id_password', 'pass1234');
+
+    window.simulateSubmit('#test-mount form');
+  });
+
+  it("from banned IP", function(done) {
+    $.mockjax({
+      url: '/test-api/users/',
+      status: 403,
+      responseText: {
+        'ban': {
+          'expires_on': null,
+          'message': {
+            'plain': 'Your ip is banned from registering.',
+            'html': '<p>Your ip is banned from registering.</p>',
+          }
+        }
+      }
+    });
+
+    window.simulateChange('#id_username', 'SomeFake');
+    window.simulateChange('#id_email', 'lorem@ipsum.com');
+    window.simulateChange('#id_password', 'pass1234');
+
+    window.simulateSubmit('#test-mount form');
+
+    window.onElement('.page-error-banned .lead', function() {
+      assert.equal(
+        $('.page .message-body .lead p').text().trim(),
+        "Your ip is banned from registering.",
+        "displayed error banned page with ban message.");
+
+      done();
+    });
+  });
+
+  it("registered account", function(done) { // jshint ignore:line
+    /* jshint ignore:start */
+    let callback = function(user) {
+      assert.deepEqual(user, {
+        'activation': 'user',
+        'username': 'BobBoberson',
+        'email': 'bob@boberson.com'
+      }, "user data returned from backend is passed to success callback");
+      done();
+    };
+
+    component = ReactDOM.render(
+      <RegisterForm callback={callback}/>,
+      document.getElementById('test-mount')
+    );
+    /* jshint ignore:end */
+
+    $.mockjax({
+      url: '/test-api/users/',
+      status: 200,
+      responseText: {
+        'activation': 'user',
+        'username': 'BobBoberson',
+        'email': 'bob@boberson.com'
+      }
+    });
+
+    window.simulateChange('#id_username', 'SomeFake');
+    window.simulateChange('#id_email', 'lorem@ipsum.com');
+    window.simulateChange('#id_password', 'pass1234');
+
+    window.simulateSubmit('#test-mount form');
+  });
+});
+
 describe("Register Complete", function() {
   afterEach(function() {
     window.emptyTestContainers();

+ 1 - 1
frontend/tests/components/sign-in.js

@@ -86,7 +86,7 @@ describe("Sign In", function() {
 
     $.mockjax({
       url: '/test-api/auth/',
-      status: 500,
+      status: 500
     });
 
     window.simulateChange('#id_username', 'SomeFake');

+ 9 - 5
frontend/tests/modal.js

@@ -95,11 +95,15 @@ describe("Modal", function() {
       assert.ok(element.length, "component was rendered");
       modal.hide();
 
-      window.setTimeout(function() {
-        let element = $('#modal-mount');
-        assert.equal(element.children().length, 0, "modal was emptied");
-        done();
-      }, 600);
+      let wait = function() {
+        if($('#modal-mount').children().length === 0) {
+          assert.ok(true, "modal was emptied");
+          done();
+        } else {
+          window.setTimeout(wait, 100);
+        }
+      };
+      wait();
     }, 400);
   });
 });

+ 1 - 1
misago/core/errorpages.py

@@ -18,7 +18,7 @@ def _error_page(request, code, message=None):
 
 
 def banned(request, ban):
-    request.frontend_context['ban'] = ban
+    request.frontend_context['BAN_MESSAGE'] = ban.get_serialized_message()
 
     return render(request, 'misago/errorpages/banned.html', {
             'ban': ban

+ 1 - 1
misago/core/exceptionhandler.py

@@ -92,7 +92,7 @@ def handle_api_exception(exception, context):
     response = rest_exception_handler(exception, context)
     if response:
         if isinstance(exception, Banned):
-            response.data['ban'] = exception.ban
+            response.data['ban'] = exception.ban.get_serialized_message()
         elif isinstance(exception, PermissionDenied):
             try:
                 response.data['detail'] = exception.args[0]

+ 1 - 1
misago/core/exceptions.py

@@ -11,7 +11,7 @@ class AjaxError(Exception):
 class Banned(PermissionDenied):
     def __init__(self, ban=None):
         if ban:
-            self.ban = ban.get_serialized_message()
+            self.ban = ban
 
 
 class ExplicitFirstPage(Exception):

+ 3 - 3
misago/static/misago/js/misago.js

@@ -1,4 +1,4 @@
-!function e(t,n,r){function a(o,u){if(!n[o]){if(!t[o]){var s="function"==typeof require&&require;if(!u&&s)return s(o,!0);if(i)return i(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[o]={exports:{}};t[o][0].call(c.exports,function(e){var n=t[o][1][e];return a(n?n:e)},c,c.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)a(r[o]);return a}({1:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e){return{user:e.auth.user,signedIn:e.auth.signedIn,signedOut:e.auth.signedOut}}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.AuthMessage=void 0,n.select=u;var l=e("react"),c=r(l);n.AuthMessage=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(t,[{key:"refresh",value:function(){window.location.reload()}},{key:"getMessage",value:function(){return this.props.signedIn?interpolate(gettext("You have signed in as %(username)s. Please refresh the page before continuing."),{username:this.props.signedIn.username},!0):this.props.signedOut?interpolate(gettext("%(username)s, you have been signed out. Please refresh the page before continuing."),{username:this.props.user.username},!0):void 0}},{key:"getClassName",value:function(){return this.props.signedIn||this.props.signedOut?"auth-message show":"auth-message"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,c["default"].createElement("button",{type:"button",className:"btn btn-default",onClick:this.refresh},gettext("Reload page"))," ",c["default"].createElement("span",{className:"hidden-xs hidden-sm text-muted"},gettext("or press F5 key.")))))}}]),t}(c["default"].Component)},{react:"react"}],2:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=$("base").attr("href")+"user-avatar/",f=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"getSrc",value:function(){var e=this.props.size||100,t=c;return t+=this.props.user&&this.props.user.id?this.props.user.avatar_hash+"/"+e+"/"+this.props.user.id+".png":e+".png"}},{key:"render",value:function(){return l["default"].createElement("img",{src:this.getSrc(),className:this.props.className||"user-avatar",title:gettext("User avatar")})}}]),t}(l["default"].Component);n["default"]=f},{react:"react"}],3:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("moment"),l=r(s),c=e("react"),f=r(c),d=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"getReasonMessage",value:function(){return this.props.message.html?f["default"].createElement("div",{className:"lead",dangerouslySetInnerHTML:{__html:this.props.message.html}}):f["default"].createElement("p",{className:"lead"},this.props.message.plain)}},{key:"getExpirationMessage",value:function(){return this.props.expires?this.props.expires.isAfter((0,l["default"])())?interpolate(gettext("This ban expires %(expires_on)s."),{expires_on:this.props.expires.fromNow()},!0):gettext("This ban has expired."):gettext("This ban is permanent.")}},{key:"render",value:function(){return f["default"].createElement("div",{className:"page page-error page-error-banned"},f["default"].createElement("div",{className:"container"},f["default"].createElement("div",{className:"message-panel"},f["default"].createElement("div",{className:"message-icon"},f["default"].createElement("span",{className:"material-icon"},"highlight_off")),f["default"].createElement("div",{className:"message-body"},this.getReasonMessage(),f["default"].createElement("p",{className:"message-footnote"},this.getExpirationMessage())))))}}]),t}(f["default"].Component);n["default"]=d},{moment:"moment",react:"react"}],4:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=e("./loader"),f=r(c),d=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"render",value:function(){var e="btn "+this.props.className,t=this.props.disabled;return this.props.loading&&(e+=" btn-loading",t=!0),l["default"].createElement("button",{type:this.props.onClick?"button":"submit",className:e,disabled:t,onClick:this.props.onClick},this.props.children,this.props.loading?l["default"].createElement(f["default"],null):null)}}]),t}(l["default"].Component);n["default"]=d,d.defaultProps={className:"btn-default",type:"submit",loading:!1,disabled:!1,onClick:null}},{"./loader":7,react:"react"}],5:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"isValidated",value:function(){return"undefined"!=typeof this.props.validation}},{key:"getClassName",value:function(){var e="form-group";return this.isValidated()&&(e+=" has-feedback",e+=null===this.props.validation?" has-success":" has-error"),e}},{key:"getFeedback",value:function(){var e=this;return this.props.validation?l["default"].createElement("div",{className:"help-block errors"},this.props.validation.map(function(t,n){return l["default"].createElement("p",{key:e.props["for"]+"FeedbackItem"+n},t)})):null}},{key:"getFeedbackIcon",value:function(){return this.isValidated()?l["default"].createElement("span",{className:"material-icon form-control-feedback","aria-hidden":"true",key:this.props["for"]+"FeedbackIcon"},this.props.validation?"clear":"check"):null}},{key:"getFeedbackDescription",value:function(){return this.isValidated()?l["default"].createElement("span",{id:this.props["for"]+"_status",className:"sr-only"},this.props.validation?gettext("(error)"):gettext("(success)")):null}},{key:"getHelpText",value:function(){return this.props.helpText?l["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:this.getClassName()},l["default"].createElement("label",{className:"control-label "+(this.props.labelClass||""),htmlFor:this.props["for"]||""},this.props.label,":"),l["default"].createElement("div",{className:this.props.controlClass||""},this.props.children,this.getFeedbackIcon(),this.getFeedbackDescription(),this.getFeedback(),this.getHelpText(),this.props.extra||null))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],6:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=e("../utils/validators"),f=(0,c.required)(),d=function(e){function t(){var e,n,r,o;a(this,t);for(var u=arguments.length,s=Array(u),l=0;u>l;l++)s[l]=arguments[l];return n=r=i(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(s))),r.bindInput=function(e){return function(t){var n={};n[e]=t.target.value;var a=r.state.errors||{};a[e]=r.validateField(e,n[e]),n.errors=a,r.setState(n)}},r.handleSubmit=function(e){if(e.preventDefault(),!r.state.isLoading&&r.clean()){r.setState({isLoading:!0});var t=r.send();t?t.then(function(e){r.setState({isLoading:!1}),r.handleSuccess(e)},function(e){r.setState({isLoading:!1}),r.handleError(e)}):r.setState({isLoading:!1})}},o=n,i(r,o)}return o(t,e),u(t,[{key:"validate",value:function(){var e={},t={required:this.state.validators.required||this.state.validators,optional:this.state.validators.optional||{}},n=[];for(var r in t.required)t.required.hasOwnProperty(r)&&t.required[r]&&n.push(r);for(var r in t.optional)t.optional.hasOwnProperty(r)&&t.optional[r]&&n.push(r);for(var a in n){var r=n[a],i=this.validateField(r,this.state[r]);null===i?e[r]=null:i&&(e[r]=i)}return e}},{key:"isValid",value:function(){var e=this.validate();for(var t in e)if(e.hasOwnProperty(t)&&null!==e[t])return!1;return!0}},{key:"validateField",value:function(e,t){var n=[],r={required:(this.state.validators.required||this.state.validators)[e],optional:(this.state.validators.optional||{})[e]},a=f(t)||!1;if(r.required){if(a)n=[a];else for(var i in r.required){var o=r.required[i](t);o&&n.push(o)}return n.length?n:null}if(a===!1&&r.optional){for(var i in r.optional){var o=r.optional[i](t);o&&n.push(o)}return n.length?n:null}return!1}},{key:"clean",value:function(){return!0}},{key:"send",value:function(){return null}},{key:"handleSuccess",value:function(e){}},{key:"handleError",value:function(e){}}]),t}(l["default"].Component);n["default"]=d},{"../utils/validators":51,react:"react"}],7:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"loader-compact"},l["default"].createElement("div",{className:"loader-spinning-wheel"}))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],8:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.LABELS=n.STYLES=void 0;var s=e("react"),l=r(s),c=e("../services/zxcvbn"),f=r(c),d=n.STYLES=["progress-bar-danger","progress-bar-warning","progress-bar-warning","progress-bar-primary","progress-bar-success"],p=n.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.")],m=function(e){function t(e){a(this,t);var n=i(this,Object.getPrototypeOf(t).call(this,e));return n._score=0,n._password=null,n._inputs=[],n}return o(t,e),u(t,[{key:"getScore",value:function(e,t){var n=this,r=!1;return e.trim()!==this._password&&(r=!0),t.length!==this._inputs.length?r=!0:t.map(function(e,t){e.trim()!==n._inputs[t]&&(r=!0)}),r&&(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 l["default"].createElement("div",{className:"help-block password-strength"},l["default"].createElement("div",{className:"progress"},l["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"},l["default"].createElement("span",{className:"sr-only"},p[e]))),l["default"].createElement("p",{className:"text-small"},p[e]))}}]),t}(l["default"].Component);n["default"]=m},{"../services/zxcvbn":47,react:"react"}],9:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=e("./loader"),f=r(c),d=e("./register.js"),p=r(d),m=e("../services/captcha"),h=r(m),v=e("../services/modal"),b=r(v),y=e("../services/snackbar"),g=r(y),_=e("../services/zxcvbn"),w=r(_),k=function(e){function t(e){a(this,t);var n=i(this,Object.getPrototypeOf(t).call(this,e));return n.showRegisterModal=function(){"closed"===misago.get("SETTINGS").account_activation?g["default"].info(gettext("New registrations are currently disabled.")):n.state.isLoaded?b["default"].show(p["default"]):(n.setState({isLoading:!0}),Promise.all([h["default"].load(),w["default"].load()]).then(function(){n.state.isLoaded||n.setState({isLoading:!1,isLoaded:!1}),b["default"].show(p["default"])}))},n.state={isLoading:!1,isLoaded:!1},n}return o(t,e),u(t,[{key:"getClassName",value:function(){return this.props.className+(this.state.isLoading?" btn-loading":"")}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showRegisterModal,className:"btn "+this.getClassName(),disabled:this.state.isLoaded},gettext("Register"),this.state.isLoading?l["default"].createElement(f["default"],null):null)}}]),t}(l["default"].Component);n["default"]=k},{"../services/captcha":40,"../services/modal":44,"../services/snackbar":45,"../services/zxcvbn":47,"./loader":7,"./register.js":10,react:"react"}],10:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function a(e){return e&&e.__esModule?e:{"default":e}}function i(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 u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.RegisterComplete=n.RegisterForm=void 0;var l=e("react"),c=a(l),f=e("./button"),d=a(f),p=e("./form"),m=a(p),h=e("./form-group"),v=a(h),b=e("./password-strength"),y=a(b),g=e("../index"),_=a(g),w=e("../services/ajax"),k=a(w),E=e("../services/auth"),O=a(E),x=e("../services/captcha"),j=a(x),P=e("../services/modal"),N=a(P),C=e("../services/snackbar"),M=a(C),S=e("../utils/banned-page"),T=a(S),I=e("../utils/validators"),R=r(I),L=n.RegisterForm=function(e){function t(e){i(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.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:{}},n}return u(t,e),s(t,[{key:"clean",value:function(){return this.isValid()?!0:(M["default"].error(gettext("Form contains errors.")),this.setState({errors:this.validate()}),!1)}},{key:"send",value:function(){return k["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?(M["default"].error(gettext("Form contains errors.")),this.setState({errors:Object.assign({},this.state.errors,e)})):403===e.status&&e.ban?((0,T["default"])(e.ban),N["default"].hide()):M["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(v["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(v["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(v["default"],{label:gettext("Password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.password,extra:c["default"].createElement(y["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}(m["default"]),A=n.RegisterComplete=function(e){function t(){return i(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return u(t,e),s(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),z=function(e){function t(e){i(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.completeRegistration=function(e){"active"===e.activation?(N["default"].hide(),O["default"].signIn(e)):n.setState({complete:e})},n.state={complete:!1},n}return u(t,e),s(t,[{key:"render",value:function(){return this.state.complete?c["default"].createElement(A,{activation:this.state.complete.activation,username:this.state.complete.username,email:this.state.complete.email}):c["default"].createElement(L,{callback:this.completeRegistration})}}]),t}(c["default"].Component);n["default"]=z},{"../index":16,"../services/ajax":38,"../services/auth":39,"../services/captcha":40,"../services/modal":44,"../services/snackbar":45,"../utils/banned-page":48,"../utils/validators":51,"./button":4,"./form":6,"./form-group":5,"./password-strength":8,react:"react"}],11:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=e("../index"),f=r(c),d=e("./button"),p=r(d),m=e("./form"),h=r(m),v=e("../services/ajax"),b=r(v),y=e("../services/modal"),g=r(y),_=e("../services/snackbar"),w=r(_),k=e("../utils/banned-page"),E=r(k),O=function(e){function t(e){a(this,t);var n=i(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,showActivation:!1,username:"",password:"",validators:{username:[],password:[]}},n}return o(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(w["default"].error(gettext("Fill out both fields.")),!1)}},{key:"send",value:function(){return b["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(b["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?w["default"].info(e.detail):"inactive_user"===e.code?(w["default"].info(e.detail),this.setState({showActivation:!0})):"banned"===e.code?((0,E["default"])(e.detail),g["default"].hide()):w["default"].error(e.detail):403===e.status&&e.ban?((0,E["default"])(e.ban),g["default"].hide()):w["default"].apiError(e)}},{key:"getActivationButton",value:function(){return this.state.showActivation?l["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 l["default"].createElement("div",{className:"modal-dialog modal-sm modal-sign-in",role:"document"},l["default"].createElement("div",{className:"modal-content"},l["default"].createElement("div",{className:"modal-header"},l["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},l["default"].createElement("span",{"aria-hidden":"true"},"×")),l["default"].createElement("h4",{className:"modal-title"},gettext("Sign in"))),l["default"].createElement("form",{onSubmit:this.handleSubmit},l["default"].createElement("div",{className:"modal-body"},l["default"].createElement("div",{className:"form-group"},l["default"].createElement("div",{className:"control-input"},l["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}))),l["default"].createElement("div",{className:"form-group"},l["default"].createElement("div",{className:"control-input"},l["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})))),l["default"].createElement("div",{className:"modal-footer"},this.getActivationButton(),l["default"].createElement(p["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Sign in")),l["default"].createElement("a",{href:f["default"].get("FORGOTTEN_PASSWORD_URL"),className:"btn btn-default btn-block"},gettext("Forgot password?"))))))}}]),t}(h["default"]);n["default"]=O},{"../index":16,"../services/ajax":38,"../services/modal":44,"../services/snackbar":45,"../utils/banned-page":48,"./button":4,"./form":6,react:"react"}],12:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e){return e.snackbar}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0,n.select=u;var l=e("react"),c=r(l),f={info:"alert-info",success:"alert-success",warning:"alert-warning",error:"alert-danger"};n.Snackbar=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(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"}],13:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactGuestNav=n.GuestNav=n.GuestMenu=void 0;var s=e("react"),l=r(s),c=e("../avatar"),f=r(c),d=e("../register-button"),p=r(d),m=e("../sign-in.js"),h=r(m),v=e("../../services/mobile-navbar-dropdown"),b=r(v),y=e("../../services/modal"),g=r(y),_=n.GuestMenu=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"showSignInModal",value:function(){g["default"].show(h["default"])}},{key:"render",value:function(){return l["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},l["default"].createElement("li",{className:"guest-preview"},l["default"].createElement("h4",null,gettext("You are browsing as guest.")),l["default"].createElement("p",null,gettext("Sign in or register to start and participate in discussions.")),l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-xs-6"},l["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.showSignInModal},gettext("Sign in"))),l["default"].createElement("div",{className:"col-xs-6"},l["default"].createElement(p["default"],{className:"btn-primary btn-block"},gettext("Register"))))))}}]),t}(l["default"].Component);n.GuestNav=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"nav nav-guest"},l["default"].createElement("button",{type:"button",className:"btn navbar-btn btn-default",onClick:this.showSignInModal},gettext("Sign in")),l["default"].createElement(p["default"],{className:"navbar-btn btn-primary"},gettext("Register")))}}]),t}(_),n.CompactGuestNav=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"showGuestMenu",value:function(){b["default"].show(_)}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showGuestMenu},l["default"].createElement(f["default"],{size:"64"}))}}]),t}(l["default"].Component)},{"../../services/mobile-navbar-dropdown":43,"../../services/modal":44,"../avatar":2,"../register-button":9,"../sign-in.js":11,react:"react"}],14:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e){return e.auth}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserMenu=n.UserMenu=void 0,n.select=u;var l=e("react"),c=r(l),f=e("./guest-nav"),d=e("./user-nav");n.UserMenu=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(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),n.CompactUserMenu=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(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":13,"./user-nav":15,react:"react"}],15:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e){return{user:e.auth.user}}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserNav=n.UserNav=n.UserMenu=void 0,n.selectUserMenu=u;var l=e("react"),c=r(l),f=e("react-redux"),d=e("../avatar"),p=r(d),m=e("../../index"),h=r(m),v=e("../../services/mobile-navbar-dropdown"),b=r(v),y=n.UserMenu=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(t,[{key:"logout",value:function(){var e=confirm(gettext("Are you sure you want to sign out?"));e&&$("#hidden-logout-form").submit()}},{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:h["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"},c["default"].createElement("span",{className:"material-icon"},"face"),gettext("Change avatar"))),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",{className:"dropdown-footer"},c["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.logout},gettext("Log out"))))}}]),t}(c["default"].Component);n.UserNav=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(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(y,{user:this.props.user})))}}]),t}(c["default"].Component),n.CompactUserNav=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(t,[{key:"showUserMenu",value:function(){b["default"].showConnected("user-menu",(0,f.connect)(u)(y))}},{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":16,"../../services/mobile-navbar-dropdown":43,"../avatar":2,react:"react","react-redux":"react-redux"}],16:[function(e,t,n){(function(t){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Misago=void 0;var o=e("./utils/ordered-list"),u=r(o),s=n.Misago=function(){function e(){a(this,e),this._initializers=[],this._context={}}return i(e,[{key:"addInitializer",value:function(e){this._initializers.push({key:e.name,item:e.initializer,after:e.after,before:e.before})}},{key:"init",value:function(e){var t=this;this._context=e;var n=new u["default"](this._initializers).orderedValues();n.forEach(function(e){e(t)})}},{key:"has",value:function(e){return this._context.hasOwnProperty(e)}},{key:"get",value:function(e,t){return this.has(e)?this._context[e]:t||void 0}}]),e}(),l=new s;t.misago=l,n["default"]=l}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./utils/ordered-list":50}],17:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){s["default"].init(o["default"].get("CSRF_COOKIE_NAME"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/ajax"),s=r(u);o["default"].addInitializer({name:"ajax",initializer:a})},{"../index":16,"../services/ajax":38}],18:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){(0,c["default"])((0,i.connect)(s.select)(s.AuthMessage),"auth-message-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("react-redux"),o=e("../index"),u=r(o),s=e("../components/auth-message"),l=e("../utils/mount-component"),c=r(l);u["default"].addInitializer({name:"component:auth-message",initializer:a,before:"auth"})},{"../components/auth-message":1,"../index":16,"../utils/mount-component":49,"react-redux":"react-redux"}],19:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){c["default"].addReducer("auth",s["default"],Object.assign({isAuthenticated:e.get("isAuthenticated"),isAnonymous:!e.get("isAuthenticated"),user:e.get("user")},u.initialState))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../reducers/auth"),s=r(u),l=e("../services/store"),c=r(l);o["default"].addInitializer({name:"reducer:auth",initializer:a,before:"store"})},{"../index":16,"../reducers/auth":35,"../services/store":46}],20:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){s["default"].init(c["default"],d["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/auth"),s=r(u),l=e("../services/store"),c=r(l),f=e("../services/local-storage"),d=r(f);o["default"].addInitializer({name:"auth",initializer:a,after:"store"})},{"../index":16,"../services/auth":39,"../services/local-storage":42,"../services/store":46}],21:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){c["default"].init(e,s["default"],d["default"],m["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/ajax"),s=r(u),l=e("../services/captcha"),c=r(l),f=e("../services/include"),d=r(f),p=e("../services/snackbar"),m=r(p);o["default"].addInitializer({name:"captcha",initializer:a})},{"../index":16,"../services/ajax":38,"../services/captcha":40,"../services/include":41,"../services/snackbar":45}],22:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){s["default"].init(e.get("STATIC_URL"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/include"),s=r(u);o["default"].addInitializer({name:"include",initializer:a})},{"../index":16,"../services/include":41}],23:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){s["default"].init("misago_")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/local-storage"),s=r(u);o["default"].addInitializer({name:"local-storage",initializer:a})},{"../index":16,"../services/local-storage":42}],24:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){var e=document.getElementById("mobile-navbar-dropdown-mount");e&&s["default"].init(e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/mobile-navbar-dropdown"),s=r(u);o["default"].addInitializer({name:"dropdown",initializer:a,before:"store"})},{"../index":16,"../services/mobile-navbar-dropdown":43}],25:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){var e=document.getElementById("modal-mount");e&&s["default"].init(e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/modal"),s=r(u);o["default"].addInitializer({name:"modal",initializer:a,before:"store"})},{"../index":16,"../services/modal":44}],26:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){o["default"].locale($("html").attr("lang"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("moment"),o=r(i),u=e("../index"),s=r(u);s["default"].addInitializer({name:"moment",initializer:a})},{"../index":16,moment:"moment"}],27:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){(0,c["default"])((0,i.connect)(s.select)(s.Snackbar),"snackbar-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("react-redux"),o=e("../index"),u=r(o),s=e("../components/snackbar"),l=e("../utils/mount-component"),c=r(l);u["default"].addInitializer({name:"component:snackbar",initializer:a,after:"snackbar"})},{"../components/snackbar":12,"../index":16,"../utils/mount-component":49,"react-redux":"react-redux"}],28:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){c["default"].addReducer("snackbar",s["default"],u.initialState)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../reducers/snackbar"),s=r(u),l=e("../services/store"),c=r(l);o["default"].addInitializer({name:"reducer:snackbar",initializer:a,before:"store"})},{"../index":16,"../reducers/snackbar":36,"../services/store":46}],29:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){s["default"].init(c["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/snackbar"),s=r(u),l=e("../services/store"),c=r(l);o["default"].addInitializer({name:"snackbar",initializer:a,after:"store"})},{"../index":16,"../services/snackbar":45,"../services/store":46}],30:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){s["default"].init()}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/store"),s=r(u);o["default"].addInitializer({name:"store",initializer:a,before:"_end"})},{"../index":16,"../services/store":46}],31:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){c["default"].addReducer("tick",s["default"],u.initialState)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../reducers/tick"),s=r(u),l=e("../services/store"),c=r(l);o["default"].addInitializer({name:"reducer:tick",initializer:a,before:"store"})},{"../index":16,"../reducers/tick":37,"../services/store":46}],32:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){window.setInterval(function(){l["default"].dispatch((0,u.doTick)())},c)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../reducers/tick"),s=e("../services/store"),l=r(s),c=5e4;o["default"].addInitializer({name:"tick-start",initializer:a,after:"store"})},{"../index":16,"../reducers/tick":37,"../services/store":46}],33:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){(0,c["default"])((0,i.connect)(s.select)(s.UserMenu),"user-menu-mount"),(0,c["default"])((0,i.connect)(s.select)(s.CompactUserMenu),"user-menu-compact-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("react-redux"),o=e("../index"),u=r(o),s=e("../components/user-menu/root"),l=e("../utils/mount-component"),c=r(l);u["default"].addInitializer({name:"component:user-menu",initializer:a,after:"store"})},{"../components/user-menu/root":14,"../index":16,"../utils/mount-component":49,"react-redux":"react-redux"}],34:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){c["default"].init(s["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/include"),s=r(u),l=e("../services/zxcvbn"),c=r(l);o["default"].addInitializer({name:"zxcvbn",initializer:a})},{"../index":16,"../services/include":41,"../services/zxcvbn":47}],35:[function(e,t,n){"use strict";function r(e){return{type:u,user:e}}function a(){return{type:s}}function i(){var e=arguments.length<=0||void 0===arguments[0]?o:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case u:return Object.assign({},e,{signedIn:t.user});case s:return Object.assign({},e,{isAuthenticated:!1,isAnonymous:!0,signedOut:!0});default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.signIn=r,n.signOut=a,n["default"]=i;var o=n.initialState={signedIn:!1,signedOut:!1},u=n.SIGN_IN="SIGN_IN",s=n.SIGN_OUT="SIGN_OUT"},{}],36:[function(e,t,n){"use strict";function r(e,t){return{type:u,message:e,messageType:t}}function a(){return{type:s}}function i(){var e=arguments.length<=0||void 0===arguments[0]?o:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return t.type===u?{type:t.messageType,message:t.message,isVisible:!0}:t.type===s?Object.assign({},e,{isVisible:!1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.showSnackbar=r,n.hideSnackbar=a,n["default"]=i;var o=n.initialState={type:"info",message:"",isVisible:!1},u=n.SHOW_SNACKBAR="SHOW_SNACKBAR",s=n.HIDE_SNACKBAR="HIDE_SNACKBAR"},{}],37:[function(e,t,n){"use strict";function r(){return{type:o}}function a(){var e=arguments.length<=0||void 0===arguments[0]?i:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return t.type===o?Object.assign({},e,{tick:e.tick+1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.doTick=r,n["default"]=a;var i=n.initialState={tick:0},o=n.TICK="TICK"},{}],38:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=n.Ajax=function(){function e(){r(this,e),this._cookieName=null,this._csrfToken=null}return a(e,[{key:"init",value:function(e){this._cookieName=e,this._csrfToken=this.getCsrfToken()}},{key:"getCsrfToken",value:function(){if(-1!==document.cookie.indexOf(this._cookieName)){var e=new RegExp(this._cookieName+"=([^;]*)"),t=document.cookie.match(e)[0];return t?t.split("=")[1]:null}return null}},{key:"request",value:function(e,t,n){var r=this;return new Promise(function(a,i){var o={url:t,method:e,headers:{"X-CSRFToken":r._csrfToken},data:n||{},dataType:"json",success:function(e){a(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,t.statusText=e.statusText,i(t)}};$.ajax(o)})}},{key:"get",value:function(e){return this.request("GET",e)}},{key:"post",value:function(e,t){return this.request("POST",e,t)}},{key:"patch",value:function(e,t){return this.request("PATCH",e,t)}},{key:"put",value:function(e,t){return this.request("PUT",e,t)}},{key:"delete",value:function(e){return this.request("DELETE",e)}}]),e}();n["default"]=new i},{}],39:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Auth=void 0;var i=e("../reducers/auth"),o=n.Auth=function(){function e(){r(this,e)}return a(e,[{key:"init",value:function(e,t){this._store=e,this._local=t,this.syncSession(),this.watchState()}},{key:"syncSession",value:function(){var e=this._store.getState().auth;e.isAuthenticated?this._local.set("auth",{isAuthenticated:!0,username:e.user.username}):this._local.set("auth",{isAuthenticated:!1})}},{key:"watchState",value:function(){var e=this;this._local.watch("auth",function(t){t.isAuthenticated?e._store.dispatch((0,i.signIn)({username:t.username})):e._store.dispatch((0,i.signOut)())})}},{key:"signIn",value:function(e){this._store.dispatch((0,i.signIn)(e)),this._local.set("auth",{isAuthenticated:!0,username:e.username})}},{key:"signOut",value:function(){this._store.dispatch((0,i.signOut)()),this._local.set("auth",{isAuthenticated:!1})}}]),e}();n["default"]=new o},{"../reducers/auth":35}],40:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!e)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)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Captcha=n.ReCaptcha=n.ReCaptchaComponent=n.QACaptcha=n.NoCaptcha=n.BaseCaptcha=void 0;var s=e("react"),l=r(s),c=e("../components/form-group"),f=r(c),d=n.BaseCaptcha=function(){function e(){o(this,e)}return u(e,[{key:"init",value:function(e,t,n,r){this._context=e,this._ajax=t,this._include=n,this._snackbar=r}}]),e}(),p=n.NoCaptcha=function(e){function t(){return o(this,t),a(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"load",value:function(){return new Promise(function(e){e()})}},{key:"validator",value:function(){return null}},{key:"component",value:function(){return null}}]),t}(d),m=n.QACaptcha=function(e){function t(){return o(this,t),a(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"load",value:function(){var e=this;return new Promise(function(t,n){e._ajax.get(e._context.get("CAPTCHA_API_URL")).then(function(n){e.question=n.question,e.helpText=n.help_text,t()},function(){e._snackbar.error(gettext("Failed to load CAPTCHA.")),n()})})}},{key:"validator",value:function(){return[]}},{key:"component",value:function(e){return l["default"].createElement(f["default"],{label:this.question,"for":"id_captcha",labelClass:e.labelClass||"col-sm-4",controlClass:e.controlClass||"col-sm-8",validation:e.form.state.errors.captcha,helpText:this.helpText||null},l["default"].createElement("input",{type:"text",id:"id_captcha",className:"form-control","aria-describedby":"id_captcha_status",disabled:e.form.state.isLoading,onChange:e.form.bindInput("captcha"),value:e.form.state.captcha}))}}]),t}(d),h=n.ReCaptchaComponent=function(e){function t(){return o(this,t),a(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"componentDidMount",value:function(){var e=this;grecaptcha.render("recaptcha",{sitekey:this.props.siteKey,callback:function(t){e.props.binding({target:{value:t}})}})}},{key:"render",value:function(){return l["default"].createElement("div",{id:"recaptcha"})}}]),t}(l["default"].Component),v=n.ReCaptcha=function(e){function t(){return o(this,t),a(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"load",value:function(){return this._include.include("https://www.google.com/recaptcha/api.js",!0),new Promise(function(e){var t=function n(){"undefined"==typeof grecaptcha?window.setTimeout(function(){n()},200):e()};t()})}},{key:"validator",value:function(){return[]}},{key:"component",value:function(e){return l["default"].createElement(f["default"],{label:gettext("Captcha"),"for":"id_captcha",labelClass:e.labelClass||"col-sm-4",controlClass:e.controlClass||"col-sm-8",validation:e.form.state.errors.captcha,helpText:gettext("Please solve the quick test.")},l["default"].createElement(h,{siteKey:this._context.get("SETTINGS").recaptcha_site_key,binding:e.form.bindInput("captcha")}))}}]),t}(d),b=n.Captcha=function(){function e(){o(this,e)}return u(e,[{key:"init",value:function(e,t,n,r){switch(e.get("SETTINGS").captcha_type){case"no":this._captcha=new p;break;case"qa":this._captcha=new m;break;case"re":this._captcha=new v}this._captcha.init(e,t,n,r)}},{key:"load",value:function(){return this._captcha.load()}},{key:"validator",value:function(){return this._captcha.validator()}},{key:"component",value:function(e){return this._captcha.component(e)}}]),e}();n["default"]=new b},{"../components/form-group":5,react:"react"}],41:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=n.Include=function(){function e(){r(this,e)}return a(e,[{key:"init",value:function(e){this._staticUrl=e,this._included=[]}},{key:"include",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?!1:arguments[1];-1===this._included.indexOf(e)&&(this._included.push(e),this._include(e,t))}},{key:"_include",value:function(e,t){$.ajax({url:(t?"":this._staticUrl)+e,cache:!0,dataType:"script"})}}]),e}();n["default"]=new i},{}],42:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=window.localStorage,o=n.LocalStorage=function(){function e(){r(this,e)}return a(e,[{key:"init",value:function(e){var t=this;this._prefix=e,this._watchers=[],window.addEventListener("storage",function(e){var n=JSON.parse(e.newValue);t._watchers.forEach(function(t){t.key===e.key&&e.oldValue!==e.newValue&&t.callback(n)})})}},{key:"set",value:function(e,t){i.setItem(this._prefix+e,JSON.stringify(t))}},{key:"get",value:function(e){var t=i.getItem(this._prefix+e);return t?JSON.parse(t):null}},{key:"watch",value:function(e,t){this._watchers.push({key:this._prefix+e,callback:t})}}]),e}();n["default"]=new o},{}],43:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.MobileNavbarDropdown=void 0;var o=e("../utils/mount-component"),u=r(o),s=n.MobileNavbarDropdown=function(){
-function e(){a(this,e)}return i(e,[{key:"init",value:function(e){this._element=e,this._component=null}},{key:"show",value:function(e){this._component===e?this.hide():(this._component=e,(0,u["default"])(e,this._element.id),$(this._element).addClass("open"))}},{key:"showConnected",value:function(e,t){this._component===e?this.hide():(this._component=e,(0,u["default"])(t,this._element.id,!0),$(this._element).addClass("open"))}},{key:"hide",value:function(){$(this._element).removeClass("open"),this._component=null}}]),e}();n["default"]=new s},{"../utils/mount-component":49}],44:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Modal=void 0;var o=e("react-dom"),u=r(o),s=e("../utils/mount-component"),l=r(s),c=n.Modal=function(){function e(){a(this,e)}return i(e,[{key:"init",value:function(e){var t=this;this._element=e,this._modal=$(e).modal({show:!1}),this._modal.on("hidden.bs.modal",function(){u["default"].unmountComponentAtNode(t._element)})}},{key:"show",value:function(e){(0,l["default"])(e,this._element.id),this._modal.modal("show")}},{key:"hide",value:function(){this._modal.modal("hide")}}]),e}();n["default"]=new c},{"../utils/mount-component":49,"react-dom":"react-dom"}],45:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0;var i=e("../reducers/snackbar"),o=300,u=5e3,s=n.Snackbar=function(){function e(){r(this,e)}return a(e,[{key:"init",value:function(e){this._store=e,this._timeout=null}},{key:"alert",value:function(e,t){var n=this;this._timeout?(window.clearTimeout(this._timeout),this._store.dispatch((0,i.hideSnackbar)()),this._timeout=window.setTimeout(function(){n._timeout=null,n.alert(e,t)},o)):(this._store.dispatch((0,i.showSnackbar)(e,t)),this._timeout=window.setTimeout(function(){n._store.dispatch((0,i.hideSnackbar)()),n._timeout=null},u))}},{key:"info",value:function(e){this.alert(e,"info")}},{key:"success",value:function(e){this.alert(e,"success")}},{key:"warning",value:function(e){this.alert(e,"warning")}},{key:"error",value:function(e){this.alert(e,"error")}},{key:"apiError",value:function(e){var t=gettext("Unknown error has occured.");0===e.status&&(t=gettext("Lost connection with application.")),400===e.status&&e.detail&&(t=e.detail),403===e.status&&(t=e.detail,"Permission denied"===t&&(t=gettext("You don't have permission to perform this action."))),404===e.status&&(t=gettext("Action link is invalid.")),this.error(t)}}]),e}();n["default"]=new s},{"../reducers/snackbar":36}],46:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.StoreWrapper=void 0;var i=e("redux"),o=n.StoreWrapper=function(){function e(){r(this,e),this._store=null,this._reducers={},this._initialState={}}return a(e,[{key:"addReducer",value:function(e,t,n){this._reducers[e]=t,this._initialState[e]=n}},{key:"init",value:function(){this._store=(0,i.createStore)((0,i.combineReducers)(this._reducers),this._initialState)}},{key:"getStore",value:function(){return this._store}},{key:"getState",value:function(){return this._store.getState()}},{key:"dispatch",value:function(e){return this._store.dispatch(e)}}]),e}();n["default"]=new o},{redux:"redux"}],47:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=n.Zxcvbn=function(){function e(){r(this,e)}return a(e,[{key:"init",value:function(e){this._include=e}},{key:"scorePassword",value:function(e,t){return zxcvbn(e,t).score}},{key:"load",value:function(){return"undefined"==typeof zxcvbn?(this._include.include("misago/js/zxcvbn.js"),this._loadingPromise()):this._loadedPromise()}},{key:"_loadingPromise",value:function(){return new Promise(function(e){var t=function n(){"undefined"==typeof zxcvbn?window.setTimeout(function(){n()},200):e()};t()})}},{key:"_loadedPromise",value:function(){return new Promise(function(e){e()})}}]),e}();n["default"]=new i},{}],48:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){if(l["default"].unmountComponentAtNode(document.getElementById("page-mount")),l["default"].render(u["default"].createElement(c.Provider,{store:v["default"].getStore()},u["default"].createElement(y,{message:e.message,expires:e.expires_on?(0,i["default"])(e.expires_on):null})),document.getElementById("page-mount")),"undefined"==typeof t||!t){var n=m["default"].get("SETTINGS").forum_name;document.title=gettext("You are banned")+" | "+n,window.history.pushState({},"",m["default"].get("BANNED_URL"))}};var a=e("moment"),i=r(a),o=e("react"),u=r(o),s=e("react-dom"),l=r(s),c=e("react-redux"),f=e("../components/banned-page"),d=r(f),p=e("../index"),m=r(p),h=e("../services/store"),v=r(h),b=function(e){return e.tick},y=(0,c.connect)(b)(d["default"])},{"../components/banned-page":3,"../index":16,"../services/store":46,moment:"moment",react:"react","react-dom":"react-dom","react-redux":"react-redux"}],49:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){var n=arguments.length<=2||void 0===arguments[2]?!0:arguments[2],r=document.getElementById(t);r&&(n?s["default"].render(o["default"].createElement(l.Provider,{store:f["default"].getStore()},o["default"].createElement(e,null)),r):s["default"].render(o["default"].createElement(e,null),r))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("react"),o=r(i),u=e("react-dom"),s=r(u),l=e("react-redux"),c=e("../services/store"),f=r(c)},{"../services/store":46,react:"react","react-dom":"react-dom","react-redux":"react-redux"}],50:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=function(){function e(t){r(this,e),this.isOrdered=!1,this._items=t||[]}return a(e,[{key:"add",value:function(e,t,n){this._items.push({key:e,item:t,after:n?n.after||null:null,before:n?n.before||null:null})}},{key:"get",value:function(e,t){for(var n=0;n<this._items.length;n++)if(this._items[n].key===e)return this._items[n].item;return t}},{key:"has",value:function(e){return void 0!==this.get(e)}},{key:"values",value:function t(){for(var t=[],e=0;e<this._items.length;e++)t.push(this._items[e].item);return t}},{key:"order",value:function(e){return this.isOrdered||(this._items=this._order(this._items),this.isOrdered=!0),e||"undefined"==typeof e?this.values():this._items}},{key:"orderedValues",value:function(){return this.order(!0)}},{key:"_order",value:function(e){function t(e){var t=-1;-1===a.indexOf(e.key)&&(e.after?(t=a.indexOf(e.after),-1!==t&&(t+=1)):e.before&&(t=a.indexOf(e.before)),-1!==t&&(r.splice(t,0,e),a.splice(t,0,e.key)))}var n=[];e.forEach(function(e){n.push(e.key)});var r=[],a=[];e.forEach(function(e){e.after||e.before||(r.push(e),a.push(e.key))}),e.forEach(function(e){"_end"===e.before&&(r.push(e),a.push(e.key))});for(var i=200;i>0&&n.length!==a.length;)i-=1,e.forEach(t);return r}}]),e}();n["default"]=i},{}],51:[function(e,t,n){"use strict";function r(){return function(e){return 0===$.trim(e).length?gettext("This field is required."):void 0}}function a(e){return function(t){return f.test(t)?void 0:e||gettext("Enter a valid email address.")}}function i(e,t){return function(n){var r="",a=$.trim(n).length;return e>a?(r=t?t(e,a):ngettext("Ensure this value has at least %(limit_value)s character (it has %(show_value)s).","Ensure this value has at least %(limit_value)s characters (it has %(show_value)s).",e),interpolate(r,{limit_value:e,show_value:a},!0)):void 0}}function o(e,t){return function(n){var r="",a=$.trim(n).length;return a>e?(r=t?t(e,a):ngettext("Ensure this value has at most %(limit_value)s character (it has %(show_value)s).","Ensure this value has at most %(limit_value)s characters (it has %(show_value)s).",e),interpolate(r,{limit_value:e,show_value:a},!0)):void 0}}function u(e){var t=function(e){return ngettext("Username must be at least %(limit_value)s character long.","Username must be at least %(limit_value)s characters long.",e)};return this.minLength(e.username_length_min,t)}function s(e){var t=function(e){return ngettext("Username cannot be longer than %(limit_value)s character.","Username cannot be longer than %(limit_value)s characters.",e)};return this.maxLength(e.username_length_max,t)}function l(){return function(e){return d.test($.trim(e))?void 0:gettext("Username can only contain latin alphabet letters and digits.")}}function c(e){var t=function(e){return ngettext("Valid password must be at least %(limit_value)s character long.","Valid password must be at least %(limit_value)s characters long.",e)};return this.minLength(e.password_length_min,t)}Object.defineProperty(n,"__esModule",{value:!0}),n.required=r,n.email=a,n.minLength=i,n.maxLength=o,n.usernameMinLength=u,n.usernameMaxLength=s,n.usernameContent=l,n.passwordMinLength=c;var f=/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i,d=new RegExp("^[0-9a-z]+$","i")},{}]},{},[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]);
+!function e(t,n,r){function a(o,u){if(!n[o]){if(!t[o]){var s="function"==typeof require&&require;if(!u&&s)return s(o,!0);if(i)return i(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[o]={exports:{}};t[o][0].call(c.exports,function(e){var n=t[o][1][e];return a(n?n:e)},c,c.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)a(r[o]);return a}({1:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e){return{user:e.auth.user,signedIn:e.auth.signedIn,signedOut:e.auth.signedOut}}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=u;var l=e("react"),c=r(l),f=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(t,[{key:"refresh",value:function(){window.location.reload()}},{key:"getMessage",value:function(){return this.props.signedIn?interpolate(gettext("You have signed in as %(username)s. Please refresh the page before continuing."),{username:this.props.signedIn.username},!0):this.props.signedOut?interpolate(gettext("%(username)s, you have been signed out. Please refresh the page before continuing."),{username:this.props.user.username},!0):void 0}},{key:"getClassName",value:function(){return this.props.signedIn||this.props.signedOut?"auth-message show":"auth-message"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,c["default"].createElement("button",{type:"button",className:"btn btn-default",onClick:this.refresh},gettext("Reload page"))," ",c["default"].createElement("span",{className:"hidden-xs hidden-sm text-muted"},gettext("or press F5 key.")))))}}]),t}(c["default"].Component);n["default"]=f},{react:"react"}],2:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=$("base").attr("href")+"user-avatar/",f=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"getSrc",value:function(){var e=this.props.size||100,t=c;return t+=this.props.user&&this.props.user.id?this.props.user.avatar_hash+"/"+e+"/"+this.props.user.id+".png":e+".png"}},{key:"render",value:function(){return l["default"].createElement("img",{src:this.getSrc(),className:this.props.className||"user-avatar",title:gettext("User avatar")})}}]),t}(l["default"].Component);n["default"]=f},{react:"react"}],3:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("moment"),l=r(s),c=e("react"),f=r(c),d=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"getReasonMessage",value:function(){return this.props.message.html?f["default"].createElement("div",{className:"lead",dangerouslySetInnerHTML:{__html:this.props.message.html}}):f["default"].createElement("p",{className:"lead"},this.props.message.plain)}},{key:"getExpirationMessage",value:function(){return this.props.expires?this.props.expires.isAfter((0,l["default"])())?interpolate(gettext("This ban expires %(expires_on)s."),{expires_on:this.props.expires.fromNow()},!0):gettext("This ban has expired."):gettext("This ban is permanent.")}},{key:"render",value:function(){return f["default"].createElement("div",{className:"page page-error page-error-banned"},f["default"].createElement("div",{className:"container"},f["default"].createElement("div",{className:"message-panel"},f["default"].createElement("div",{className:"message-icon"},f["default"].createElement("span",{className:"material-icon"},"highlight_off")),f["default"].createElement("div",{className:"message-body"},this.getReasonMessage(),f["default"].createElement("p",{className:"message-footnote"},this.getExpirationMessage())))))}}]),t}(f["default"].Component);n["default"]=d},{moment:"moment",react:"react"}],4:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=e("./loader"),f=r(c),d=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"render",value:function(){var e="btn "+this.props.className,t=this.props.disabled;return this.props.loading&&(e+=" btn-loading",t=!0),l["default"].createElement("button",{type:this.props.onClick?"button":"submit",className:e,disabled:t,onClick:this.props.onClick},this.props.children,this.props.loading?l["default"].createElement(f["default"],null):null)}}]),t}(l["default"].Component);n["default"]=d,d.defaultProps={className:"btn-default",type:"submit",loading:!1,disabled:!1,onClick:null}},{"./loader":7,react:"react"}],5:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"isValidated",value:function(){return"undefined"!=typeof this.props.validation}},{key:"getClassName",value:function(){var e="form-group";return this.isValidated()&&(e+=" has-feedback",e+=null===this.props.validation?" has-success":" has-error"),e}},{key:"getFeedback",value:function(){var e=this;return this.props.validation?l["default"].createElement("div",{className:"help-block errors"},this.props.validation.map(function(t,n){return l["default"].createElement("p",{key:e.props["for"]+"FeedbackItem"+n},t)})):null}},{key:"getFeedbackIcon",value:function(){return this.isValidated()?l["default"].createElement("span",{className:"material-icon form-control-feedback","aria-hidden":"true",key:this.props["for"]+"FeedbackIcon"},this.props.validation?"clear":"check"):null}},{key:"getFeedbackDescription",value:function(){return this.isValidated()?l["default"].createElement("span",{id:this.props["for"]+"_status",className:"sr-only"},this.props.validation?gettext("(error)"):gettext("(success)")):null}},{key:"getHelpText",value:function(){return this.props.helpText?l["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:this.getClassName()},l["default"].createElement("label",{className:"control-label "+(this.props.labelClass||""),htmlFor:this.props["for"]||""},this.props.label,":"),l["default"].createElement("div",{className:this.props.controlClass||""},this.props.children,this.getFeedbackIcon(),this.getFeedbackDescription(),this.getFeedback(),this.getHelpText(),this.props.extra||null))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],6:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=e("../utils/validators"),f=(0,c.required)(),d=function(e){function t(){var e,n,r,o;a(this,t);for(var u=arguments.length,s=Array(u),l=0;u>l;l++)s[l]=arguments[l];return n=r=i(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(s))),r.bindInput=function(e){return function(t){var n={};n[e]=t.target.value;var a=r.state.errors||{};a[e]=r.validateField(e,n[e]),n.errors=a,r.setState(n)}},r.handleSubmit=function(e){if(e.preventDefault(),!r.state.isLoading&&r.clean()){r.setState({isLoading:!0});var t=r.send();t?t.then(function(e){r.setState({isLoading:!1}),r.handleSuccess(e)},function(e){r.setState({isLoading:!1}),r.handleError(e)}):r.setState({isLoading:!1})}},o=n,i(r,o)}return o(t,e),u(t,[{key:"validate",value:function(){var e={},t={required:this.state.validators.required||this.state.validators,optional:this.state.validators.optional||{}},n=[];for(var r in t.required)t.required.hasOwnProperty(r)&&t.required[r]&&n.push(r);for(var r in t.optional)t.optional.hasOwnProperty(r)&&t.optional[r]&&n.push(r);for(var a in n){var r=n[a],i=this.validateField(r,this.state[r]);null===i?e[r]=null:i&&(e[r]=i)}return e}},{key:"isValid",value:function(){var e=this.validate();for(var t in e)if(e.hasOwnProperty(t)&&null!==e[t])return!1;return!0}},{key:"validateField",value:function(e,t){var n=[],r={required:(this.state.validators.required||this.state.validators)[e],optional:(this.state.validators.optional||{})[e]},a=f(t)||!1;if(r.required){if(a)n=[a];else for(var i in r.required){var o=r.required[i](t);o&&n.push(o)}return n.length?n:null}if(a===!1&&r.optional){for(var i in r.optional){var o=r.optional[i](t);o&&n.push(o)}return n.length?n:null}return!1}},{key:"clean",value:function(){return!0}},{key:"send",value:function(){return null}},{key:"handleSuccess",value:function(e){}},{key:"handleError",value:function(e){}}]),t}(l["default"].Component);n["default"]=d},{"../utils/validators":52,react:"react"}],7:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"loader-compact"},l["default"].createElement("div",{className:"loader-spinning-wheel"}))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],8:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.LABELS=n.STYLES=void 0;var s=e("react"),l=r(s),c=e("../services/zxcvbn"),f=r(c),d=n.STYLES=["progress-bar-danger","progress-bar-warning","progress-bar-warning","progress-bar-primary","progress-bar-success"],p=n.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.")],m=function(e){function t(e){a(this,t);var n=i(this,Object.getPrototypeOf(t).call(this,e));return n._score=0,n._password=null,n._inputs=[],n}return o(t,e),u(t,[{key:"getScore",value:function(e,t){var n=this,r=!1;return e.trim()!==this._password&&(r=!0),t.length!==this._inputs.length?r=!0:t.map(function(e,t){e.trim()!==n._inputs[t]&&(r=!0)}),r&&(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 l["default"].createElement("div",{className:"help-block password-strength"},l["default"].createElement("div",{className:"progress"},l["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"},l["default"].createElement("span",{className:"sr-only"},p[e]))),l["default"].createElement("p",{className:"text-small"},p[e]))}}]),t}(l["default"].Component);n["default"]=m},{"../services/zxcvbn":48,react:"react"}],9:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=e("./loader"),f=r(c),d=e("./register.js"),p=r(d),m=e("../services/captcha"),h=r(m),v=e("../services/modal"),b=r(v),y=e("../services/snackbar"),g=r(y),_=e("../services/zxcvbn"),w=r(_),k=function(e){function t(e){a(this,t);var n=i(this,Object.getPrototypeOf(t).call(this,e));return n.showRegisterModal=function(){"closed"===misago.get("SETTINGS").account_activation?g["default"].info(gettext("New registrations are currently disabled.")):n.state.isLoaded?b["default"].show(p["default"]):(n.setState({isLoading:!0}),Promise.all([h["default"].load(),w["default"].load()]).then(function(){n.state.isLoaded||n.setState({isLoading:!1,isLoaded:!1}),b["default"].show(p["default"])}))},n.state={isLoading:!1,isLoaded:!1},n}return o(t,e),u(t,[{key:"getClassName",value:function(){return this.props.className+(this.state.isLoading?" btn-loading":"")}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showRegisterModal,className:"btn "+this.getClassName(),disabled:this.state.isLoaded},gettext("Register"),this.state.isLoading?l["default"].createElement(f["default"],null):null)}}]),t}(l["default"].Component);n["default"]=k},{"../services/captcha":41,"../services/modal":45,"../services/snackbar":46,"../services/zxcvbn":48,"./loader":7,"./register.js":10,react:"react"}],10:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function a(e){return e&&e.__esModule?e:{"default":e}}function i(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 u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.RegisterComplete=n.RegisterForm=void 0;var l=e("react"),c=a(l),f=e("./button"),d=a(f),p=e("./form"),m=a(p),h=e("./form-group"),v=a(h),b=e("./password-strength"),y=a(b),g=e("../index"),_=a(g),w=e("../services/ajax"),k=a(w),E=e("../services/auth"),O=a(E),x=e("../services/captcha"),j=a(x),P=e("../services/modal"),N=a(P),C=e("../services/snackbar"),S=a(C),M=e("../utils/banned-page"),T=a(M),I=e("../utils/validators"),R=r(I),L=n.RegisterForm=function(e){function t(e){i(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.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:{}},n}return u(t,e),s(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 k["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,T["default"])(e.ban),N["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(v["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(v["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(v["default"],{label:gettext("Password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.password,extra:c["default"].createElement(y["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}(m["default"]),z=n.RegisterComplete=function(e){function t(){return i(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return u(t,e),s(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),A=function(e){function t(e){i(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.completeRegistration=function(e){"active"===e.activation?(N["default"].hide(),O["default"].signIn(e)):n.setState({complete:e})},n.state={complete:!1},n}return u(t,e),s(t,[{key:"render",value:function(){return this.state.complete?c["default"].createElement(z,{activation:this.state.complete.activation,username:this.state.complete.username,email:this.state.complete.email}):c["default"].createElement(L,{callback:this.completeRegistration})}}]),t}(c["default"].Component);n["default"]=A},{"../index":16,"../services/ajax":39,"../services/auth":40,"../services/captcha":41,"../services/modal":45,"../services/snackbar":46,"../utils/banned-page":49,"../utils/validators":52,"./button":4,"./form":6,"./form-group":5,"./password-strength":8,react:"react"}],11:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=e("../index"),f=r(c),d=e("./button"),p=r(d),m=e("./form"),h=r(m),v=e("../services/ajax"),b=r(v),y=e("../services/modal"),g=r(y),_=e("../services/snackbar"),w=r(_),k=e("../utils/banned-page"),E=r(k),O=function(e){function t(e){a(this,t);var n=i(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,showActivation:!1,username:"",password:"",validators:{username:[],password:[]}},n}return o(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(w["default"].error(gettext("Fill out both fields.")),!1)}},{key:"send",value:function(){return b["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(b["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?w["default"].info(e.detail):"inactive_user"===e.code?(w["default"].info(e.detail),this.setState({showActivation:!0})):"banned"===e.code?((0,E["default"])(e.detail),g["default"].hide()):w["default"].error(e.detail):403===e.status&&e.ban?((0,E["default"])(e.ban),g["default"].hide()):w["default"].apiError(e)}},{key:"getActivationButton",value:function(){return this.state.showActivation?l["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 l["default"].createElement("div",{className:"modal-dialog modal-sm modal-sign-in",role:"document"},l["default"].createElement("div",{className:"modal-content"},l["default"].createElement("div",{className:"modal-header"},l["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},l["default"].createElement("span",{"aria-hidden":"true"},"×")),l["default"].createElement("h4",{className:"modal-title"},gettext("Sign in"))),l["default"].createElement("form",{onSubmit:this.handleSubmit},l["default"].createElement("div",{className:"modal-body"},l["default"].createElement("div",{className:"form-group"},l["default"].createElement("div",{className:"control-input"},l["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}))),l["default"].createElement("div",{className:"form-group"},l["default"].createElement("div",{className:"control-input"},l["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})))),l["default"].createElement("div",{className:"modal-footer"},this.getActivationButton(),l["default"].createElement(p["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Sign in")),l["default"].createElement("a",{href:f["default"].get("FORGOTTEN_PASSWORD_URL"),className:"btn btn-default btn-block"},gettext("Forgot password?"))))))}}]),t}(h["default"]);n["default"]=O},{"../index":16,"../services/ajax":39,"../services/modal":45,"../services/snackbar":46,"../utils/banned-page":49,"./button":4,"./form":6,react:"react"}],12:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e){return e.snackbar}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0,n.select=u;var l=e("react"),c=r(l),f={info:"alert-info",success:"alert-success",warning:"alert-warning",error:"alert-danger"};n.Snackbar=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(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"}],13:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactGuestNav=n.GuestNav=n.GuestMenu=void 0;var s=e("react"),l=r(s),c=e("../avatar"),f=r(c),d=e("../register-button"),p=r(d),m=e("../sign-in.js"),h=r(m),v=e("../../services/mobile-navbar-dropdown"),b=r(v),y=e("../../services/modal"),g=r(y),_=n.GuestMenu=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"showSignInModal",value:function(){g["default"].show(h["default"])}},{key:"render",value:function(){return l["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},l["default"].createElement("li",{className:"guest-preview"},l["default"].createElement("h4",null,gettext("You are browsing as guest.")),l["default"].createElement("p",null,gettext("Sign in or register to start and participate in discussions.")),l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-xs-6"},l["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.showSignInModal},gettext("Sign in"))),l["default"].createElement("div",{className:"col-xs-6"},l["default"].createElement(p["default"],{className:"btn-primary btn-block"},gettext("Register"))))))}}]),t}(l["default"].Component);n.GuestNav=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"nav nav-guest"},l["default"].createElement("button",{type:"button",className:"btn navbar-btn btn-default",onClick:this.showSignInModal},gettext("Sign in")),l["default"].createElement(p["default"],{className:"navbar-btn btn-primary"},gettext("Register")))}}]),t}(_),n.CompactGuestNav=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"showGuestMenu",value:function(){b["default"].show(_)}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showGuestMenu},l["default"].createElement(f["default"],{size:"64"}))}}]),t}(l["default"].Component)},{"../../services/mobile-navbar-dropdown":44,"../../services/modal":45,"../avatar":2,"../register-button":9,"../sign-in.js":11,react:"react"}],14:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e){return e.auth}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserMenu=n.UserMenu=void 0,n.select=u;var l=e("react"),c=r(l),f=e("./guest-nav"),d=e("./user-nav");n.UserMenu=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(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),n.CompactUserMenu=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(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":13,"./user-nav":15,react:"react"}],15:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e){return{user:e.auth.user}}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserNav=n.UserNav=n.UserMenu=void 0,n.selectUserMenu=u;var l=e("react"),c=r(l),f=e("react-redux"),d=e("../avatar"),p=r(d),m=e("../../index"),h=r(m),v=e("../../services/mobile-navbar-dropdown"),b=r(v),y=n.UserMenu=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(t,[{key:"logout",value:function(){var e=confirm(gettext("Are you sure you want to sign out?"));e&&$("#hidden-logout-form").submit()}},{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:h["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"},c["default"].createElement("span",{className:"material-icon"},"face"),gettext("Change avatar"))),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",{className:"dropdown-footer"},c["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.logout},gettext("Log out"))))}}]),t}(c["default"].Component);n.UserNav=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(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(y,{user:this.props.user})))}}]),t}(c["default"].Component),n.CompactUserNav=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(t,[{key:"showUserMenu",value:function(){b["default"].showConnected("user-menu",(0,f.connect)(u)(y))}},{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":16,"../../services/mobile-navbar-dropdown":44,"../avatar":2,react:"react","react-redux":"react-redux"}],16:[function(e,t,n){(function(t){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Misago=void 0;var o=e("./utils/ordered-list"),u=r(o),s=n.Misago=function(){function e(){a(this,e),this._initializers=[],this._context={}}return i(e,[{key:"addInitializer",value:function(e){this._initializers.push({key:e.name,item:e.initializer,after:e.after,before:e.before})}},{key:"init",value:function(e){var t=this;this._context=e;var n=new u["default"](this._initializers).orderedValues();n.forEach(function(e){e(t)})}},{key:"has",value:function(e){return this._context.hasOwnProperty(e)}},{key:"get",value:function(e,t){return this.has(e)?this._context[e]:t||void 0}}]),e}(),l=new s;t.misago=l,n["default"]=l}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./utils/ordered-list":51}],17:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){s["default"].init(o["default"].get("CSRF_COOKIE_NAME"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/ajax"),s=r(u);o["default"].addInitializer({name:"ajax",initializer:a})},{"../index":16,"../services/ajax":39}],18:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){(0,f["default"])((0,i.connect)(s.select)(l["default"]),"auth-message-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("react-redux"),o=e("../index"),u=r(o),s=e("../components/auth-message"),l=r(s),c=e("../utils/mount-component"),f=r(c);u["default"].addInitializer({name:"component:auth-message",initializer:a,after:"store"})},{"../components/auth-message":1,"../index":16,"../utils/mount-component":50,"react-redux":"react-redux"}],19:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){c["default"].addReducer("auth",s["default"],Object.assign({isAuthenticated:e.get("isAuthenticated"),isAnonymous:!e.get("isAuthenticated"),user:e.get("user")},u.initialState))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../reducers/auth"),s=r(u),l=e("../services/store"),c=r(l);o["default"].addInitializer({name:"reducer:auth",initializer:a,before:"store"})},{"../index":16,"../reducers/auth":36,"../services/store":47}],20:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){s["default"].init(c["default"],d["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/auth"),s=r(u),l=e("../services/store"),c=r(l),f=e("../services/local-storage"),d=r(f);o["default"].addInitializer({name:"auth",initializer:a,after:"store"})},{"../index":16,"../services/auth":40,"../services/local-storage":43,"../services/store":47}],21:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){e.get("BAN_MESSAGE")&&(0,s["default"])(e.get("BAN_MESSAGE"),!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../utils/banned-page"),s=r(u);o["default"].addInitializer({name:"component:baned-page",initializer:a,after:"store"})},{"../index":16,"../utils/banned-page":49}],22:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){c["default"].init(e,s["default"],d["default"],m["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/ajax"),s=r(u),l=e("../services/captcha"),c=r(l),f=e("../services/include"),d=r(f),p=e("../services/snackbar"),m=r(p);o["default"].addInitializer({name:"captcha",initializer:a})},{"../index":16,"../services/ajax":39,"../services/captcha":41,"../services/include":42,"../services/snackbar":46}],23:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){s["default"].init(e.get("STATIC_URL"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/include"),s=r(u);o["default"].addInitializer({name:"include",initializer:a})},{"../index":16,"../services/include":42}],24:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){s["default"].init("misago_")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/local-storage"),s=r(u);o["default"].addInitializer({name:"local-storage",initializer:a})},{"../index":16,"../services/local-storage":43}],25:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){var e=document.getElementById("mobile-navbar-dropdown-mount");e&&s["default"].init(e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/mobile-navbar-dropdown"),s=r(u);o["default"].addInitializer({name:"dropdown",initializer:a,before:"store"})},{"../index":16,"../services/mobile-navbar-dropdown":44}],26:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){var e=document.getElementById("modal-mount");e&&s["default"].init(e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/modal"),s=r(u);o["default"].addInitializer({name:"modal",initializer:a,before:"store"})},{"../index":16,"../services/modal":45}],27:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){o["default"].locale($("html").attr("lang"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("moment"),o=r(i),u=e("../index"),s=r(u);s["default"].addInitializer({name:"moment",initializer:a})},{"../index":16,moment:"moment"}],28:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){(0,c["default"])((0,i.connect)(s.select)(s.Snackbar),"snackbar-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("react-redux"),o=e("../index"),u=r(o),s=e("../components/snackbar"),l=e("../utils/mount-component"),c=r(l);u["default"].addInitializer({name:"component:snackbar",initializer:a,after:"snackbar"})},{"../components/snackbar":12,"../index":16,"../utils/mount-component":50,"react-redux":"react-redux"}],29:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){c["default"].addReducer("snackbar",s["default"],u.initialState)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../reducers/snackbar"),s=r(u),l=e("../services/store"),c=r(l);o["default"].addInitializer({name:"reducer:snackbar",initializer:a,before:"store"})},{"../index":16,"../reducers/snackbar":37,"../services/store":47}],30:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){s["default"].init(c["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/snackbar"),s=r(u),l=e("../services/store"),c=r(l);o["default"].addInitializer({name:"snackbar",initializer:a,after:"store"})},{"../index":16,"../services/snackbar":46,"../services/store":47}],31:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){s["default"].init()}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/store"),s=r(u);o["default"].addInitializer({name:"store",initializer:a,before:"_end"})},{"../index":16,"../services/store":47}],32:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){c["default"].addReducer("tick",s["default"],u.initialState)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../reducers/tick"),s=r(u),l=e("../services/store"),c=r(l);o["default"].addInitializer({name:"reducer:tick",initializer:a,before:"store"})},{"../index":16,"../reducers/tick":38,"../services/store":47}],33:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){window.setInterval(function(){l["default"].dispatch((0,u.doTick)())},c)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../reducers/tick"),s=e("../services/store"),l=r(s),c=5e4;o["default"].addInitializer({name:"tick-start",initializer:a,after:"store"})},{"../index":16,"../reducers/tick":38,"../services/store":47}],34:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){(0,c["default"])((0,i.connect)(s.select)(s.UserMenu),"user-menu-mount"),(0,c["default"])((0,i.connect)(s.select)(s.CompactUserMenu),"user-menu-compact-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("react-redux"),o=e("../index"),u=r(o),s=e("../components/user-menu/root"),l=e("../utils/mount-component"),c=r(l);u["default"].addInitializer({name:"component:user-menu",initializer:a,after:"store"})},{"../components/user-menu/root":14,"../index":16,"../utils/mount-component":50,"react-redux":"react-redux"}],35:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){c["default"].init(s["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("../index"),o=r(i),u=e("../services/include"),s=r(u),l=e("../services/zxcvbn"),c=r(l);o["default"].addInitializer({name:"zxcvbn",initializer:a})},{"../index":16,"../services/include":42,"../services/zxcvbn":48}],36:[function(e,t,n){"use strict";function r(e){return{type:u,user:e}}function a(){return{type:s}}function i(){var e=arguments.length<=0||void 0===arguments[0]?o:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case u:return Object.assign({},e,{signedIn:t.user});case s:return Object.assign({},e,{isAuthenticated:!1,isAnonymous:!0,signedOut:!0});default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.signIn=r,n.signOut=a,n["default"]=i;var o=n.initialState={signedIn:!1,signedOut:!1},u=n.SIGN_IN="SIGN_IN",s=n.SIGN_OUT="SIGN_OUT"},{}],37:[function(e,t,n){"use strict";function r(e,t){return{type:u,message:e,messageType:t}}function a(){return{type:s}}function i(){var e=arguments.length<=0||void 0===arguments[0]?o:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return t.type===u?{type:t.messageType,message:t.message,isVisible:!0}:t.type===s?Object.assign({},e,{isVisible:!1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.showSnackbar=r,n.hideSnackbar=a,n["default"]=i;var o=n.initialState={type:"info",message:"",isVisible:!1},u=n.SHOW_SNACKBAR="SHOW_SNACKBAR",s=n.HIDE_SNACKBAR="HIDE_SNACKBAR"},{}],38:[function(e,t,n){"use strict";function r(){return{type:o}}function a(){var e=arguments.length<=0||void 0===arguments[0]?i:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return t.type===o?Object.assign({},e,{tick:e.tick+1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.doTick=r,n["default"]=a;var i=n.initialState={tick:0},o=n.TICK="TICK"},{}],39:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=n.Ajax=function(){function e(){r(this,e),this._cookieName=null,this._csrfToken=null}return a(e,[{key:"init",value:function(e){this._cookieName=e,this._csrfToken=this.getCsrfToken()}},{key:"getCsrfToken",value:function(){if(-1!==document.cookie.indexOf(this._cookieName)){var e=new RegExp(this._cookieName+"=([^;]*)"),t=document.cookie.match(e)[0];return t?t.split("=")[1]:null}return null}},{key:"request",value:function(e,t,n){var r=this;return new Promise(function(a,i){var o={url:t,method:e,headers:{"X-CSRFToken":r._csrfToken},data:n||{},dataType:"json",success:function(e){a(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,t.statusText=e.statusText,i(t)}};$.ajax(o)})}},{key:"get",value:function(e){return this.request("GET",e)}},{key:"post",value:function(e,t){return this.request("POST",e,t)}},{key:"patch",value:function(e,t){return this.request("PATCH",e,t)}},{key:"put",value:function(e,t){return this.request("PUT",e,t)}},{key:"delete",value:function(e){return this.request("DELETE",e)}}]),e}();n["default"]=new i},{}],40:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Auth=void 0;var i=e("../reducers/auth"),o=n.Auth=function(){function e(){r(this,e)}return a(e,[{key:"init",value:function(e,t){this._store=e,this._local=t,this.syncSession(),this.watchState()}},{key:"syncSession",value:function(){var e=this._store.getState().auth;e.isAuthenticated?this._local.set("auth",{isAuthenticated:!0,username:e.user.username}):this._local.set("auth",{isAuthenticated:!1})}},{key:"watchState",value:function(){var e=this;this._local.watch("auth",function(t){t.isAuthenticated?e._store.dispatch((0,i.signIn)({username:t.username})):e._store.dispatch((0,i.signOut)())})}},{key:"signIn",value:function(e){this._store.dispatch((0,i.signIn)(e)),this._local.set("auth",{isAuthenticated:!0,username:e.username})}},{key:"signOut",value:function(){this._store.dispatch((0,i.signOut)()),this._local.set("auth",{isAuthenticated:!1})}}]),e}();n["default"]=new o},{"../reducers/auth":36}],41:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!e)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)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Captcha=n.ReCaptcha=n.ReCaptchaComponent=n.QACaptcha=n.NoCaptcha=n.BaseCaptcha=void 0;var s=e("react"),l=r(s),c=e("../components/form-group"),f=r(c),d=n.BaseCaptcha=function(){function e(){o(this,e)}return u(e,[{key:"init",value:function(e,t,n,r){this._context=e,this._ajax=t,this._include=n,this._snackbar=r}}]),e}(),p=n.NoCaptcha=function(e){function t(){return o(this,t),a(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"load",value:function(){return new Promise(function(e){e()})}},{key:"validator",value:function(){return null}},{key:"component",value:function(){return null}}]),t}(d),m=n.QACaptcha=function(e){function t(){return o(this,t),a(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"load",value:function(){var e=this;return new Promise(function(t,n){e._ajax.get(e._context.get("CAPTCHA_API_URL")).then(function(n){e.question=n.question,e.helpText=n.help_text,t()},function(){e._snackbar.error(gettext("Failed to load CAPTCHA.")),n()})})}},{key:"validator",value:function(){return[]}},{key:"component",value:function(e){return l["default"].createElement(f["default"],{label:this.question,"for":"id_captcha",labelClass:e.labelClass||"col-sm-4",controlClass:e.controlClass||"col-sm-8",validation:e.form.state.errors.captcha,helpText:this.helpText||null},l["default"].createElement("input",{type:"text",id:"id_captcha",className:"form-control","aria-describedby":"id_captcha_status",disabled:e.form.state.isLoading,onChange:e.form.bindInput("captcha"),value:e.form.state.captcha}))}}]),t}(d),h=n.ReCaptchaComponent=function(e){function t(){return o(this,t),a(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"componentDidMount",value:function(){var e=this;grecaptcha.render("recaptcha",{sitekey:this.props.siteKey,callback:function(t){e.props.binding({target:{value:t}})}})}},{key:"render",value:function(){return l["default"].createElement("div",{id:"recaptcha"})}}]),t}(l["default"].Component),v=n.ReCaptcha=function(e){function t(){return o(this,t),a(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"load",value:function(){return this._include.include("https://www.google.com/recaptcha/api.js",!0),new Promise(function(e){var t=function n(){"undefined"==typeof grecaptcha?window.setTimeout(function(){n()},200):e()};t()})}},{key:"validator",value:function(){return[]}},{key:"component",value:function(e){return l["default"].createElement(f["default"],{label:gettext("Captcha"),"for":"id_captcha",labelClass:e.labelClass||"col-sm-4",controlClass:e.controlClass||"col-sm-8",validation:e.form.state.errors.captcha,helpText:gettext("Please solve the quick test.")},l["default"].createElement(h,{siteKey:this._context.get("SETTINGS").recaptcha_site_key,binding:e.form.bindInput("captcha")}))}}]),t}(d),b=n.Captcha=function(){function e(){o(this,e)}return u(e,[{key:"init",value:function(e,t,n,r){switch(e.get("SETTINGS").captcha_type){case"no":this._captcha=new p;break;case"qa":this._captcha=new m;break;case"re":this._captcha=new v}this._captcha.init(e,t,n,r)}},{key:"load",value:function(){return this._captcha.load()}},{key:"validator",value:function(){return this._captcha.validator()}},{key:"component",value:function(e){return this._captcha.component(e)}}]),e}();n["default"]=new b},{"../components/form-group":5,react:"react"}],42:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=n.Include=function(){function e(){r(this,e)}return a(e,[{key:"init",value:function(e){this._staticUrl=e,this._included=[]}},{key:"include",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?!1:arguments[1];-1===this._included.indexOf(e)&&(this._included.push(e),this._include(e,t))}},{key:"_include",value:function(e,t){$.ajax({url:(t?"":this._staticUrl)+e,cache:!0,dataType:"script"})}}]),e}();n["default"]=new i},{}],43:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=window.localStorage,o=n.LocalStorage=function(){function e(){r(this,e)}return a(e,[{key:"init",value:function(e){var t=this;this._prefix=e,this._watchers=[],window.addEventListener("storage",function(e){var n=JSON.parse(e.newValue);t._watchers.forEach(function(t){t.key===e.key&&e.oldValue!==e.newValue&&t.callback(n)})})}},{key:"set",value:function(e,t){i.setItem(this._prefix+e,JSON.stringify(t))}},{key:"get",value:function(e){var t=i.getItem(this._prefix+e);return t?JSON.parse(t):null}},{key:"watch",value:function(e,t){this._watchers.push({key:this._prefix+e,callback:t})}}]),e}();n["default"]=new o},{}],44:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function");
+}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.MobileNavbarDropdown=void 0;var o=e("../utils/mount-component"),u=r(o),s=n.MobileNavbarDropdown=function(){function e(){a(this,e)}return i(e,[{key:"init",value:function(e){this._element=e,this._component=null}},{key:"show",value:function(e){this._component===e?this.hide():(this._component=e,(0,u["default"])(e,this._element.id),$(this._element).addClass("open"))}},{key:"showConnected",value:function(e,t){this._component===e?this.hide():(this._component=e,(0,u["default"])(t,this._element.id,!0),$(this._element).addClass("open"))}},{key:"hide",value:function(){$(this._element).removeClass("open"),this._component=null}}]),e}();n["default"]=new s},{"../utils/mount-component":50}],45:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Modal=void 0;var o=e("react-dom"),u=r(o),s=e("../utils/mount-component"),l=r(s),c=n.Modal=function(){function e(){a(this,e)}return i(e,[{key:"init",value:function(e){var t=this;this._element=e,this._modal=$(e).modal({show:!1}),this._modal.on("hidden.bs.modal",function(){u["default"].unmountComponentAtNode(t._element)})}},{key:"show",value:function(e){(0,l["default"])(e,this._element.id),this._modal.modal("show")}},{key:"hide",value:function(){this._modal.modal("hide")}}]),e}();n["default"]=new c},{"../utils/mount-component":50,"react-dom":"react-dom"}],46:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0;var i=e("../reducers/snackbar"),o=300,u=5e3,s=n.Snackbar=function(){function e(){r(this,e)}return a(e,[{key:"init",value:function(e){this._store=e,this._timeout=null}},{key:"alert",value:function(e,t){var n=this;this._timeout?(window.clearTimeout(this._timeout),this._store.dispatch((0,i.hideSnackbar)()),this._timeout=window.setTimeout(function(){n._timeout=null,n.alert(e,t)},o)):(this._store.dispatch((0,i.showSnackbar)(e,t)),this._timeout=window.setTimeout(function(){n._store.dispatch((0,i.hideSnackbar)()),n._timeout=null},u))}},{key:"info",value:function(e){this.alert(e,"info")}},{key:"success",value:function(e){this.alert(e,"success")}},{key:"warning",value:function(e){this.alert(e,"warning")}},{key:"error",value:function(e){this.alert(e,"error")}},{key:"apiError",value:function(e){var t=gettext("Unknown error has occured.");0===e.status&&(t=gettext("Lost connection with application.")),400===e.status&&e.detail&&(t=e.detail),403===e.status&&(t=e.detail,"Permission denied"===t&&(t=gettext("You don't have permission to perform this action."))),404===e.status&&(t=gettext("Action link is invalid.")),this.error(t)}}]),e}();n["default"]=new s},{"../reducers/snackbar":37}],47:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.StoreWrapper=void 0;var i=e("redux"),o=n.StoreWrapper=function(){function e(){r(this,e),this._store=null,this._reducers={},this._initialState={}}return a(e,[{key:"addReducer",value:function(e,t,n){this._reducers[e]=t,this._initialState[e]=n}},{key:"init",value:function(){this._store=(0,i.createStore)((0,i.combineReducers)(this._reducers),this._initialState)}},{key:"getStore",value:function(){return this._store}},{key:"getState",value:function(){return this._store.getState()}},{key:"dispatch",value:function(e){return this._store.dispatch(e)}}]),e}();n["default"]=new o},{redux:"redux"}],48:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=n.Zxcvbn=function(){function e(){r(this,e)}return a(e,[{key:"init",value:function(e){this._include=e}},{key:"scorePassword",value:function(e,t){return zxcvbn(e,t).score}},{key:"load",value:function(){return"undefined"==typeof zxcvbn?(this._include.include("misago/js/zxcvbn.js"),this._loadingPromise()):this._loadedPromise()}},{key:"_loadingPromise",value:function(){return new Promise(function(e){var t=function n(){"undefined"==typeof zxcvbn?window.setTimeout(function(){n()},200):e()};t()})}},{key:"_loadedPromise",value:function(){return new Promise(function(e){e()})}}]),e}();n["default"]=new i},{}],49:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){if(l["default"].unmountComponentAtNode(document.getElementById("page-mount")),l["default"].render(u["default"].createElement(c.Provider,{store:v["default"].getStore()},u["default"].createElement(y,{message:e.message,expires:e.expires_on?(0,i["default"])(e.expires_on):null})),document.getElementById("page-mount")),"undefined"==typeof t||t){var n=m["default"].get("SETTINGS").forum_name;document.title=gettext("You are banned")+" | "+n,window.history.pushState({},"",m["default"].get("BANNED_URL"))}};var a=e("moment"),i=r(a),o=e("react"),u=r(o),s=e("react-dom"),l=r(s),c=e("react-redux"),f=e("../components/banned-page"),d=r(f),p=e("../index"),m=r(p),h=e("../services/store"),v=r(h),b=function(e){return e.tick},y=(0,c.connect)(b)(d["default"])},{"../components/banned-page":3,"../index":16,"../services/store":47,moment:"moment",react:"react","react-dom":"react-dom","react-redux":"react-redux"}],50:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){var n=arguments.length<=2||void 0===arguments[2]?!0:arguments[2],r=document.getElementById(t);r&&(n?s["default"].render(o["default"].createElement(l.Provider,{store:f["default"].getStore()},o["default"].createElement(e,null)),r):s["default"].render(o["default"].createElement(e,null),r))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var i=e("react"),o=r(i),u=e("react-dom"),s=r(u),l=e("react-redux"),c=e("../services/store"),f=r(c)},{"../services/store":47,react:"react","react-dom":"react-dom","react-redux":"react-redux"}],51:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=function(){function e(t){r(this,e),this.isOrdered=!1,this._items=t||[]}return a(e,[{key:"add",value:function(e,t,n){this._items.push({key:e,item:t,after:n?n.after||null:null,before:n?n.before||null:null})}},{key:"get",value:function(e,t){for(var n=0;n<this._items.length;n++)if(this._items[n].key===e)return this._items[n].item;return t}},{key:"has",value:function(e){return void 0!==this.get(e)}},{key:"values",value:function t(){for(var t=[],e=0;e<this._items.length;e++)t.push(this._items[e].item);return t}},{key:"order",value:function(e){return this.isOrdered||(this._items=this._order(this._items),this.isOrdered=!0),e||"undefined"==typeof e?this.values():this._items}},{key:"orderedValues",value:function(){return this.order(!0)}},{key:"_order",value:function(e){function t(e){var t=-1;-1===a.indexOf(e.key)&&(e.after?(t=a.indexOf(e.after),-1!==t&&(t+=1)):e.before&&(t=a.indexOf(e.before)),-1!==t&&(r.splice(t,0,e),a.splice(t,0,e.key)))}var n=[];e.forEach(function(e){n.push(e.key)});var r=[],a=[];e.forEach(function(e){e.after||e.before||(r.push(e),a.push(e.key))}),e.forEach(function(e){"_end"===e.before&&(r.push(e),a.push(e.key))});for(var i=200;i>0&&n.length!==a.length;)i-=1,e.forEach(t);return r}}]),e}();n["default"]=i},{}],52:[function(e,t,n){"use strict";function r(){return function(e){return 0===$.trim(e).length?gettext("This field is required."):void 0}}function a(e){return function(t){return f.test(t)?void 0:e||gettext("Enter a valid email address.")}}function i(e,t){return function(n){var r="",a=$.trim(n).length;return e>a?(r=t?t(e,a):ngettext("Ensure this value has at least %(limit_value)s character (it has %(show_value)s).","Ensure this value has at least %(limit_value)s characters (it has %(show_value)s).",e),interpolate(r,{limit_value:e,show_value:a},!0)):void 0}}function o(e,t){return function(n){var r="",a=$.trim(n).length;return a>e?(r=t?t(e,a):ngettext("Ensure this value has at most %(limit_value)s character (it has %(show_value)s).","Ensure this value has at most %(limit_value)s characters (it has %(show_value)s).",e),interpolate(r,{limit_value:e,show_value:a},!0)):void 0}}function u(e){var t=function(e){return ngettext("Username must be at least %(limit_value)s character long.","Username must be at least %(limit_value)s characters long.",e)};return this.minLength(e.username_length_min,t)}function s(e){var t=function(e){return ngettext("Username cannot be longer than %(limit_value)s character.","Username cannot be longer than %(limit_value)s characters.",e)};return this.maxLength(e.username_length_max,t)}function l(){return function(e){return d.test($.trim(e))?void 0:gettext("Username can only contain latin alphabet letters and digits.")}}function c(e){var t=function(e){return ngettext("Valid password must be at least %(limit_value)s character long.","Valid password must be at least %(limit_value)s characters long.",e)};return this.minLength(e.password_length_min,t)}Object.defineProperty(n,"__esModule",{value:!0}),n.required=r,n.email=a,n.minLength=i,n.maxLength=o,n.usernameMinLength=u,n.usernameMaxLength=s,n.usernameContent=l,n.passwordMinLength=c;var f=/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i,d=new RegExp("^[0-9a-z]+$","i")},{}]},{},[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]);
 //# sourceMappingURL=misago.js.map

+ 1 - 1
misago/static/misago/js/misago.js.map

@@ -1 +1 @@
-{"version":3,"sources":["misago.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length",1,"module","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","prototype","Object","create","constructor","value","enumerable","writable","configurable","setPrototypeOf","__proto__","select","state","user","auth","signedIn","signedOut","_createClass","defineProperties","target","props","descriptor","defineProperty","key","protoProps","staticProps","AuthMessage","undefined","_react","_react2","_React$Component","this","getPrototypeOf","apply","arguments","window","location","reload","interpolate","gettext","username","createElement","className","getClassName","getMessage","type","onClick","refresh","Component","react",2,"BASE_URL","$","attr","_class","size","url","id","avatar_hash","src","getSrc","title",3,"_moment","_moment2","message","html","dangerouslySetInnerHTML","__html","plain","expires","isAfter","expires_on","fromNow","getReasonMessage","getExpirationMessage","moment",4,"_loader","_loader2","Button","disabled","loading","children","defaultProps","./loader",5,"validation","isValidated","_this2","map","error","aria-hidden","helpText","labelClass","htmlFor","label","controlClass","getFeedbackIcon","getFeedbackDescription","getFeedback","getHelpText","extra",6,"_validators","validateRequired","required","_Object$getPrototypeO","_temp","_this","_ret","_len","args","Array","_key","concat","bindInput","name","event","newState","formErrors","errors","validateField","setState","handleSubmit","preventDefault","isLoading","clean","promise","send","then","success","handleSuccess","rejection","handleError","validators","optional","validatedFields","hasOwnProperty","push","fieldErrors","validate","field","requiredError","validationError","../utils/validators",7,8,"LABELS","STYLES","_zxcvbn","_zxcvbn2","_score","_password","_inputs","password","inputs","cacheStale","trim","scorePassword","score","getScore","style","width","role","aria-valuenow","aria-valuemin","aria-valuemax","../services/zxcvbn",9,"_register","_register2","_captcha","_captcha2","_modal","_modal2","_snackbar","_snackbar2","showRegisterModal","misago","get","account_activation","info","isLoaded","show","Promise","all","load","../services/captcha","../services/modal","../services/snackbar","./register.js",10,"_interopRequireWildcard","newObj","RegisterComplete","RegisterForm","_button","_button2","_form","_form2","_formGroup","_formGroup2","_passwordStrength","_passwordStrength2","_index","_index2","_ajax","_ajax2","_auth","_auth2","_bannedPage","_bannedPage2","_Form","email","captcha","usernameContent","usernameMinLength","usernameMaxLength","passwordMinLength","validator","isValid","post","apiResponse","callback","status","assign","ban","hide","apiError","href","data-dismiss","aria-label","onSubmit","display","for","aria-describedby","onChange","component","form","getLegalFootNote","activation","getLead","getSubscript","_React$Component2","_this3","completeRegistration","signIn","complete","../index","../services/ajax","../services/auth","../utils/banned-page","./button","./form","./form-group","./password-strength",11,"showActivation","append","find","val","getCsrfToken","pathname","submit","detail","placeholder","getActivationButton",12,"snackbar","Snackbar","TYPES_CLASSES","warning","snackbarClass","isVisible","getSnackbarClass",13,"CompactGuestNav","GuestNav","GuestMenu","_avatar","_avatar2","_registerButton","_registerButton2","_signIn","_signIn2","_mobileNavbarDropdown","_mobileNavbarDropdown2","showSignInModal","_GuestMenu","showGuestMenu","../../services/mobile-navbar-dropdown","../../services/modal","../avatar","../register-button","../sign-in.js",14,"CompactUserMenu","UserMenu","_guestNav","_userNav","isAuthenticated","UserNav","CompactUserNav","./guest-nav","./user-nav",15,"selectUserMenu","store","_reactRedux","decision","confirm","absolute_url","logout","data-toggle","aria-haspopup","aria-expanded","_React$Component3","showConnected","connect","showUserMenu","../../index","react-redux",16,"global","Misago","_orderedList","_orderedList2","_initializers","_context","initializer","item","after","before","context","initOrder","orderedValues","forEach","fallback","has","./utils/ordered-list",17,"init","addInitializer",18,"_mountComponent2","_authMessage","_mountComponent","../components/auth-message","../utils/mount-component",19,"_store2","addReducer","isAnonymous","initialState","_store","../reducers/auth","../services/store",20,"_localStorage2","_localStorage","../services/local-storage",21,"_include2","_include","../services/include",22,23,24,"element","document","getElementById","../services/mobile-navbar-dropdown",25,26,"locale",27,"../components/snackbar",28,"../reducers/snackbar",29,30,31,"_tick2","_tick","../reducers/tick",32,"setInterval","dispatch","doTick","TICK_PERIOD",33,"_root","../components/user-menu/root",34,35,"SIGN_IN","signOut","SIGN_OUT","action",36,"showSnackbar","SHOW_SNACKBAR","messageType","hideSnackbar","HIDE_SNACKBAR",37,"TICK","tick",38,"Ajax","_cookieName","_csrfToken","cookieName","cookie","indexOf","cookieRegex","RegExp","match","split","method","data","resolve","reject","xhr","headers","X-CSRFToken","dataType","jqXHR","responseJSON","statusText","ajax","request",39,"Auth","local","_local","syncSession","watchState","getState","set","watch",40,"Captcha","ReCaptcha","ReCaptchaComponent","QACaptcha","NoCaptcha","BaseCaptcha","include","_BaseCaptcha","_BaseCaptcha2","question","help_text","kwargs","_this4","grecaptcha","render","sitekey","siteKey","response","binding","_BaseCaptcha3","wait","setTimeout","recaptcha_site_key","captcha_type","../components/form-group",41,"Include","staticUrl","_staticUrl","_included","script","remote","cache",42,"storage","localStorage","LocalStorage","prefix","_prefix","_watchers","addEventListener","newValueJson","JSON","parse","newValue","watcher","oldValue","setItem","stringify","itemString","getItem",43,"MobileNavbarDropdown","_element","_component","addClass","removeClass",44,"Modal","_reactDom","_reactDom2","modal","on","unmountComponentAtNode","react-dom",45,"HIDE_ANIMATION_LENGTH","MESSAGE_SHOW_LENGTH","_timeout","clearTimeout","alert",46,"StoreWrapper","_redux","_reducers","_initialState","reducer","createStore","combineReducers","redux",47,"Zxcvbn","zxcvbn","_loadingPromise","_loadedPromise",48,"changeState","Provider","getStore","RedrawedBannedPage","forumName","forum_name","history","pushState","../components/banned-page",49,"mount","rootElementId","connected","rootElement",50,"OrderedList","items","isOrdered","_items","order","values","values_only","_order","unordered","insertItem","insertAt","ordering","ordered","splice","index","iterations",51,"EMAIL","test","minLength","limitValue","returnMessage","ngettext","limit_value","show_value","maxLength","settings","username_length_min","username_length_max","USERNAME","password_length_min"],"mappings":"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","file":"misago.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.AuthMessage = undefined;\nexports.select = select;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AuthMessage = exports.AuthMessage = (function (_React$Component) {\n  _inherits(AuthMessage, _React$Component);\n\n  function AuthMessage() {\n    _classCallCheck(this, AuthMessage);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(AuthMessage).apply(this, arguments));\n  }\n\n  _createClass(AuthMessage, [{\n    key: \"refresh\",\n    value: function refresh() {\n      window.location.reload();\n    }\n  }, {\n    key: \"getMessage\",\n    value: function getMessage() {\n      if (this.props.signedIn) {\n        return interpolate(gettext(\"You have signed in as %(username)s. Please refresh the page before continuing.\"), { username: this.props.signedIn.username }, true);\n      } else if (this.props.signedOut) {\n        return interpolate(gettext(\"%(username)s, you have been signed out. Please refresh the page before continuing.\"), { username: this.props.user.username }, true);\n      }\n    }\n  }, {\n    key: \"getClassName\",\n    value: function getClassName() {\n      if (this.props.signedIn || this.props.signedOut) {\n        return \"auth-message show\";\n      } else {\n        return \"auth-message\";\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          \"div\",\n          { className: \"container\" },\n          _react2.default.createElement(\n            \"p\",\n            { className: \"lead\" },\n            this.getMessage()\n          ),\n          _react2.default.createElement(\n            \"p\",\n            null,\n            _react2.default.createElement(\n              \"button\",\n              { type: \"button\", className: \"btn btn-default\",\n                onClick: this.refresh },\n              gettext(\"Reload page\")\n            ),\n            \" \",\n            _react2.default.createElement(\n              \"span\",\n              { className: \"hidden-xs hidden-sm text-muted\" },\n              gettext(\"or press F5 key.\")\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return AuthMessage;\n})(_react2.default.Component);\n\nfunction select(state) {\n  return {\n    user: state.auth.user,\n    signedIn: state.auth.signedIn,\n    signedOut: state.auth.signedOut\n  };\n}\n\n},{\"react\":\"react\"}],2:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BASE_URL = $('base').attr('href') + 'user-avatar/';\n\nvar _class = (function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'getSrc',\n    value: function getSrc() {\n      var size = this.props.size || 100; // jshint ignore:line\n      var url = BASE_URL;\n\n      if (this.props.user && this.props.user.id) {\n        // just avatar hash, size and user id\n        url += this.props.user.avatar_hash + '/' + size + '/' + this.props.user.id + '.png';\n      } else {\n        // just append avatar size to file to produce no-avatar placeholder\n        url += size + '.png';\n      }\n\n      return url;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement('img', { src: this.getSrc(),\n        className: this.props.className || 'user-avatar',\n        title: gettext(\"User avatar\") });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],3:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = (function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'getReasonMessage',\n    value: function getReasonMessage() {\n      /* jshint ignore:start */\n      if (this.props.message.html) {\n        return _react2.default.createElement('div', { className: 'lead',\n          dangerouslySetInnerHTML: { __html: this.props.message.html } });\n      } else {\n        return _react2.default.createElement(\n          'p',\n          { className: 'lead' },\n          this.props.message.plain\n        );\n      }\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getExpirationMessage',\n    value: function getExpirationMessage() {\n      if (this.props.expires) {\n        if (this.props.expires.isAfter((0, _moment2.default)())) {\n          return interpolate(gettext(\"This ban expires %(expires_on)s.\"), { 'expires_on': this.props.expires.fromNow() }, true);\n        } else {\n          return gettext(\"This ban has expired.\");\n        }\n      } else {\n        return gettext(\"This ban is permanent.\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-error page-error-banned' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-panel' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'highlight_off'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              this.getReasonMessage(),\n              _react2.default.createElement(\n                'p',\n                { className: 'message-footnote' },\n                this.getExpirationMessage()\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"moment\":\"moment\",\"react\":\"react\"}],4:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _loader = require('./loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// jshint ignore:line\n\nvar Button = (function (_React$Component) {\n  _inherits(Button, _React$Component);\n\n  function Button() {\n    _classCallCheck(this, Button);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(Button).apply(this, arguments));\n  }\n\n  _createClass(Button, [{\n    key: 'render',\n    value: function render() {\n      var className = 'btn ' + this.props.className;\n      var disabled = this.props.disabled;\n\n      if (this.props.loading) {\n        className += ' btn-loading';\n        disabled = true;\n      }\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: this.props.onClick ? 'button' : 'submit',\n          className: className,\n          disabled: disabled,\n          onClick: this.props.onClick },\n        this.props.children,\n        this.props.loading ? _react2.default.createElement(_loader2.default, null) : null\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return Button;\n})(_react2.default.Component);\n\nexports.default = Button;\n\nButton.defaultProps = {\n  className: \"btn-default\",\n\n  type: \"submit\",\n\n  loading: false,\n  disabled: false,\n\n  onClick: null\n};\n\n},{\"./loader\":7,\"react\":\"react\"}],5:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = (function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'isValidated',\n    value: function isValidated() {\n      return typeof this.props.validation !== \"undefined\";\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      var className = 'form-group';\n      if (this.isValidated()) {\n        className += ' has-feedback';\n        if (this.props.validation === null) {\n          className += ' has-success';\n        } else {\n          className += ' has-error';\n        }\n      }\n      return className;\n    }\n  }, {\n    key: 'getFeedback',\n    value: function getFeedback() {\n      var _this2 = this;\n\n      if (this.props.validation) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'help-block errors' },\n          this.props.validation.map(function (error, i) {\n            return _react2.default.createElement(\n              'p',\n              { key: _this2.props.for + 'FeedbackItem' + i },\n              error\n            );\n          })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getFeedbackIcon',\n    value: function getFeedbackIcon() {\n      if (this.isValidated()) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { className: 'material-icon form-control-feedback',\n            'aria-hidden': 'true', key: this.props.for + 'FeedbackIcon' },\n          this.props.validation ? 'clear' : 'check'\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getFeedbackDescription',\n    value: function getFeedbackDescription() {\n      if (this.isValidated()) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { id: this.props.for + '_status', className: 'sr-only' },\n          this.props.validation ? gettext('(error)') : gettext('(success)')\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getHelpText',\n    value: function getHelpText() {\n      if (this.props.helpText) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'p',\n          { className: 'help-block' },\n          this.props.helpText\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'label',\n          { className: 'control-label ' + (this.props.labelClass || ''),\n            htmlFor: this.props.for || '' },\n          this.props.label,\n          ':'\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: this.props.controlClass || '' },\n          this.props.children,\n          this.getFeedbackIcon(),\n          this.getFeedbackDescription(),\n          this.getFeedback(),\n          this.getHelpText(),\n          this.props.extra || null\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],6:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _validators = require('../utils/validators');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar validateRequired = (0, _validators.required)();\n\nvar _class = (function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, _class);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.bindInput = function (name) {\n      return function (event) {\n        var newState = {};\n        newState[name] = event.target.value;\n\n        var formErrors = _this.state.errors || {};\n        formErrors[name] = _this.validateField(name, newState[name]);\n        newState.errors = formErrors;\n\n        _this.setState(newState);\n      };\n    }, _this.handleSubmit = function (event) {\n      // we don't reload page on submissions\n      event.preventDefault();\n      if (_this.state.isLoading) {\n        return;\n      }\n\n      if (_this.clean()) {\n        _this.setState({ 'isLoading': true });\n        var promise = _this.send();\n\n        if (promise) {\n          promise.then(function (success) {\n            _this.setState({ 'isLoading': false });\n            _this.handleSuccess(success);\n          }, function (rejection) {\n            _this.setState({ 'isLoading': false });\n            _this.handleError(rejection);\n          });\n        } else {\n          _this.setState({ 'isLoading': false });\n        }\n      }\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(_class, [{\n    key: 'validate',\n    value: function validate() {\n      var errors = {};\n\n      var validators = {\n        required: this.state.validators.required || this.state.validators,\n        optional: this.state.validators.optional || {}\n      };\n\n      var validatedFields = [];\n\n      // add required fields to validation\n      for (var name in validators.required) {\n        if (validators.required.hasOwnProperty(name) && validators.required[name]) {\n          validatedFields.push(name);\n        }\n      }\n\n      // add optional fields to validation\n      for (var name in validators.optional) {\n        if (validators.optional.hasOwnProperty(name) && validators.optional[name]) {\n          validatedFields.push(name);\n        }\n      }\n\n      // validate fields values\n      for (var i in validatedFields) {\n        var name = validatedFields[i];\n        var fieldErrors = this.validateField(name, this.state[name]);\n\n        if (fieldErrors === null) {\n          errors[name] = null;\n        } else if (fieldErrors) {\n          errors[name] = fieldErrors;\n        }\n      }\n\n      return errors;\n    }\n  }, {\n    key: 'isValid',\n    value: function isValid() {\n      var errors = this.validate();\n      for (var field in errors) {\n        if (errors.hasOwnProperty(field)) {\n          if (errors[field] !== null) {\n            return false;\n          }\n        }\n      }\n\n      return true;\n    }\n  }, {\n    key: 'validateField',\n    value: function validateField(name, value) {\n      var errors = [];\n\n      var validators = {\n        required: (this.state.validators.required || this.state.validators)[name],\n        optional: (this.state.validators.optional || {})[name]\n      };\n\n      var requiredError = validateRequired(value) || false;\n\n      if (validators.required) {\n        if (requiredError) {\n          errors = [requiredError];\n        } else {\n          for (var i in validators.required) {\n            var validationError = validators.required[i](value);\n            if (validationError) {\n              errors.push(validationError);\n            }\n          }\n        }\n\n        return errors.length ? errors : null;\n      } else if (requiredError === false && validators.optional) {\n        for (var i in validators.optional) {\n          var validationError = validators.optional[i](value);\n          if (validationError) {\n            errors.push(validationError);\n          }\n        }\n\n        return errors.length ? errors : null;\n      }\n\n      return false; // false === field wasn't validated\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'clean',\n    value: function clean() {\n      return true;\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return null;\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(success) {\n      return;\n    }\n  }, {\n    key: 'handleError',\n\n    /* jshint ignore:end */\n    value: function handleError(rejection) {\n      return;\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../utils/validators\":51,\"react\":\"react\"}],7:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = (function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: \"loader-compact\" },\n        _react2.default.createElement(\"div\", { className: \"loader-spinning-wheel\" })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],8:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.LABELS = exports.STYLES = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _zxcvbn = require('../services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar STYLES = exports.STYLES = ['progress-bar-danger', 'progress-bar-warning', 'progress-bar-warning', 'progress-bar-primary', 'progress-bar-success'];\n\nvar LABELS = exports.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.')];\n\nvar _class = (function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this._score = 0;\n    _this._password = null;\n    _this._inputs = [];\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'getScore',\n    value: function getScore(password, inputs) {\n      var _this2 = this;\n\n      var cacheStale = false;\n\n      if (password.trim() !== this._password) {\n        cacheStale = true;\n      }\n\n      if (inputs.length !== this._inputs.length) {\n        cacheStale = true;\n      } else {\n        inputs.map(function (value, i) {\n          if (value.trim() !== _this2._inputs[i]) {\n            cacheStale = true;\n          }\n        });\n      }\n\n      if (cacheStale) {\n        this._score = _zxcvbn2.default.scorePassword(password, inputs);\n        this._password = password.trim();\n        this._inputs = inputs.map(function (value) {\n          return value.trim();\n        });\n      }\n\n      return this._score;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      var score = this.getScore(this.props.password, this.props.inputs);\n\n      return _react2.default.createElement(\n        'div',\n        { className: 'help-block password-strength' },\n        _react2.default.createElement(\n          'div',\n          { className: 'progress' },\n          _react2.default.createElement(\n            'div',\n            { className: \"progress-bar \" + STYLES[score],\n              style: { width: 20 + 20 * score + '%' },\n              role: 'progress-bar',\n              'aria-valuenow': score,\n              'aria-valuemin': '0',\n              'aria-valuemax': '4' },\n            _react2.default.createElement(\n              'span',\n              { className: 'sr-only' },\n              LABELS[score]\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'p',\n          { className: 'text-small' },\n          LABELS[score]\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../services/zxcvbn\":47,\"react\":\"react\"}],9:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _loader = require('./loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nvar _register = require('./register.js');\n\nvar _register2 = _interopRequireDefault(_register);\n\nvar _captcha = require('../services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _zxcvbn = require('../services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar _class = (function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.showRegisterModal = function () {\n      if (misago.get('SETTINGS').account_activation === 'closed') {\n        _snackbar2.default.info(gettext(\"New registrations are currently disabled.\"));\n      } else if (_this.state.isLoaded) {\n        _modal2.default.show(_register2.default);\n      } else {\n        _this.setState({\n          'isLoading': true\n        });\n\n        Promise.all([_captcha2.default.load(), _zxcvbn2.default.load()]).then(function () {\n          if (!_this.state.isLoaded) {\n            _this.setState({\n              'isLoading': false,\n              'isLoaded': false\n            });\n          }\n\n          _modal2.default.show(_register2.default);\n        });\n      }\n    };\n\n    _this.state = {\n      'isLoading': false,\n      'isLoaded': false\n    };\n    return _this;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'getClassName',\n\n    /* jshint ignore:end */\n\n    value: function getClassName() {\n      return this.props.className + (this.state.isLoading ? ' btn-loading' : '');\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showRegisterModal,\n          className: 'btn ' + this.getClassName(),\n          disabled: this.state.isLoaded },\n        gettext(\"Register\"),\n        this.state.isLoading ? _react2.default.createElement(_loader2.default, null) : null\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../services/captcha\":40,\"../services/modal\":44,\"../services/snackbar\":45,\"../services/zxcvbn\":47,\"./loader\":7,\"./register.js\":10,\"react\":\"react\"}],10:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.RegisterComplete = exports.RegisterForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('./form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _passwordStrength = require('./password-strength');\n\nvar _passwordStrength2 = _interopRequireDefault(_passwordStrength);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _auth = require('../services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _captcha = require('../services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar RegisterForm = exports.RegisterForm = (function (_Form) {\n  _inherits(RegisterForm, _Form);\n\n  function RegisterForm(props) {\n    _classCallCheck(this, RegisterForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RegisterForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'username': '',\n      'email': '',\n      'password': '',\n      'captcha': '',\n\n      'validators': {\n        'username': [validators.usernameContent(), validators.usernameMinLength(_index2.default.get('SETTINGS')), validators.usernameMaxLength(_index2.default.get('SETTINGS'))],\n        'email': [validators.email()],\n        'password': [validators.passwordMinLength(_index2.default.get('SETTINGS'))],\n        'captcha': _captcha2.default.validator()\n      },\n\n      'errors': {}\n    };\n    return _this;\n  }\n\n  _createClass(RegisterForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Form contains errors.\"));\n        this.setState({\n          'errors': this.validate()\n        });\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('USERS_API'), {\n        'username': this.state.username,\n        'email': this.state.email,\n        'password': this.state.password,\n        'captcha': this.state.captcha\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        _snackbar2.default.error(gettext(\"Form contains errors.\"));\n        this.setState({\n          'errors': Object.assign({}, this.state.errors, rejection)\n        });\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n        _modal2.default.hide();\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'getLegalFootNote',\n    value: function getLegalFootNote() {\n      if (_index2.default.get('TERMS_OF_SERVICE_URL')) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: _index2.default.get('TERMS_OF_SERVICE_URL'),\n            target: '_blank' },\n          gettext(\"By registering you agree to site's terms and conditions.\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-register', role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Register\")\n            )\n          ),\n          _react2.default.createElement(\n            'form',\n            { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n            _react2.default.createElement('input', { type: 'type', style: { display: 'none' } }),\n            _react2.default.createElement('input', { type: 'password', style: { display: 'none' } }),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-body' },\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Username\"), 'for': 'id_username',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.username },\n                _react2.default.createElement('input', { type: 'text', id: 'id_username', className: 'form-control',\n                  'aria-describedby': 'id_username_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('username'),\n                  value: this.state.username })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"E-mail\"), 'for': 'id_email',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.email },\n                _react2.default.createElement('input', { type: 'text', id: 'id_email', className: 'form-control',\n                  'aria-describedby': 'id_email_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('email'),\n                  value: this.state.email })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Password\"), 'for': 'id_password',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.password,\n                  extra: _react2.default.createElement(_passwordStrength2.default, { password: this.state.password,\n                    inputs: [this.state.username, this.state.email] }) },\n                _react2.default.createElement('input', { type: 'password', id: 'id_password', className: 'form-control',\n                  'aria-describedby': 'id_password_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('password'),\n                  value: this.state.password })\n              ),\n              _captcha2.default.component({\n                form: this,\n                labelClass: \"col-sm-4\",\n                controlClass: \"col-sm-8\"\n              })\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-footer' },\n              this.getLegalFootNote(),\n              _react2.default.createElement(\n                _button2.default,\n                { className: 'btn-primary', loading: this.state.isLoading },\n                gettext(\"Register account\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RegisterForm;\n})(_form2.default);\n\nvar RegisterComplete = exports.RegisterComplete = (function (_React$Component) {\n  _inherits(RegisterComplete, _React$Component);\n\n  function RegisterComplete() {\n    _classCallCheck(this, RegisterComplete);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(RegisterComplete).apply(this, arguments));\n  }\n\n  _createClass(RegisterComplete, [{\n    key: 'getLead',\n    value: function getLead() {\n      if (this.props.activation === 'user') {\n        return gettext(\"%(username)s, your account has been created but you need to activate it before you will be able to sign in.\");\n      } else if (this.props.activation === 'admin') {\n        return gettext(\"%(username)s, your account has been created but board administrator will have to activate it before you will be able to sign in.\");\n      }\n    }\n  }, {\n    key: 'getSubscript',\n    value: function getSubscript() {\n      if (this.props.activation === 'user') {\n        return gettext(\"We have sent an e-mail to %(email)s with link that you have to click to activate your account.\");\n      } else if (this.props.activation === 'admin') {\n        return gettext(\"We will send an e-mail to %(email)s when this takes place.\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-message modal-register',\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Registration complete\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-body' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'info_outline'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                interpolate(this.getLead(), { 'username': this.props.username }, true)\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                interpolate(this.getSubscript(), { 'email': this.props.email }, true)\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RegisterComplete;\n})(_react2.default.Component);\n\nvar _class = (function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this3 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this3.completeRegistration = function (apiResponse) {\n      if (apiResponse.activation === 'active') {\n        _modal2.default.hide();\n        _auth2.default.signIn(apiResponse);\n      } else {\n        _this3.setState({\n          'complete': apiResponse\n        });\n      }\n    };\n\n    _this3.state = {\n      'complete': false\n    };\n    return _this3;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.state.complete) {\n        return _react2.default.createElement(RegisterComplete, { activation: this.state.complete.activation,\n          username: this.state.complete.username,\n          email: this.state.complete.email });\n      } else {\n        return _react2.default.createElement(RegisterForm, { callback: this.completeRegistration });\n      }\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":16,\"../services/ajax\":38,\"../services/auth\":39,\"../services/captcha\":40,\"../services/modal\":44,\"../services/snackbar\":45,\"../utils/banned-page\":48,\"../utils/validators\":51,\"./button\":4,\"./form\":6,\"./form-group\":5,\"./password-strength\":8,\"react\":\"react\"}],11:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar _class = (function (_Form) {\n  _inherits(_class, _Form);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n      'showActivation': false,\n\n      'username': '',\n      'password': '',\n\n      'validators': {\n        'username': [],\n        'password': []\n      }\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'clean',\n    value: function clean() {\n      if (!this.isValid()) {\n        _snackbar2.default.error(gettext(\"Fill out both fields.\"));\n        return false;\n      } else {\n        return true;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('AUTH_API'), {\n        'username': this.state.username,\n        'password': this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess() {\n      var form = $('#hidden-login-form');\n\n      form.append('<input type=\"text\" name=\"username\" />');\n      form.append('<input type=\"password\" name=\"password\" />');\n\n      // fill out form with user credentials and submit it, this will tell\n      // Misago to redirect user back to right page, and will trigger browser's\n      // key ring feature\n      form.find('input[type=\"hidden\"]').val(_ajax2.default.getCsrfToken());\n      form.find('input[name=\"redirect_to\"]').val(window.location.pathname);\n      form.find('input[name=\"username\"]').val(this.state.username);\n      form.find('input[name=\"password\"]').val(this.state.password);\n      form.submit();\n\n      // keep form loading\n      this.setState({\n        'isLoading': true\n      });\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        if (rejection.code === 'inactive_admin') {\n          _snackbar2.default.info(rejection.detail);\n        } else if (rejection.code === 'inactive_user') {\n          _snackbar2.default.info(rejection.detail);\n          this.setState({\n            'showActivation': true\n          });\n        } else if (rejection.code === 'banned') {\n          (0, _bannedPage2.default)(rejection.detail);\n          _modal2.default.hide();\n        } else {\n          _snackbar2.default.error(rejection.detail);\n        }\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n        _modal2.default.hide();\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'getActivationButton',\n    value: function getActivationButton() {\n      if (this.state.showActivation) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: _index2.default.get('REQUEST_ACTIVATION_URL'),\n            className: 'btn btn-success btn-block' },\n          gettext(\"Activate account\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-sm modal-sign-in',\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Sign in\")\n            )\n          ),\n          _react2.default.createElement(\n            'form',\n            { onSubmit: this.handleSubmit },\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-body' },\n              _react2.default.createElement(\n                'div',\n                { className: 'form-group' },\n                _react2.default.createElement(\n                  'div',\n                  { className: 'control-input' },\n                  _react2.default.createElement('input', { id: 'id_username', className: 'form-control', type: 'text',\n                    disabled: this.state.isLoading,\n                    placeholder: gettext(\"Username or e-mail\"),\n                    onChange: this.bindInput('username'),\n                    value: this.state.username })\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'form-group' },\n                _react2.default.createElement(\n                  'div',\n                  { className: 'control-input' },\n                  _react2.default.createElement('input', { id: 'id_password', className: 'form-control', type: 'password',\n                    disabled: this.state.isLoading,\n                    placeholder: gettext(\"Password\"),\n                    onChange: this.bindInput('password'),\n                    value: this.state.password })\n                )\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-footer' },\n              this.getActivationButton(),\n              _react2.default.createElement(\n                _button2.default,\n                { className: 'btn-primary btn-block',\n                  loading: this.state.isLoading },\n                gettext(\"Sign in\")\n              ),\n              _react2.default.createElement(\n                'a',\n                { href: _index2.default.get('FORGOTTEN_PASSWORD_URL'),\n                  className: 'btn btn-default btn-block' },\n                gettext(\"Forgot password?\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_form2.default);\n\nexports.default = _class;\n\n},{\"../index\":16,\"../services/ajax\":38,\"../services/modal\":44,\"../services/snackbar\":45,\"../utils/banned-page\":48,\"./button\":4,\"./form\":6,\"react\":\"react\"}],12:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Snackbar = undefined;\nexports.select = select;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* jshint ignore:start */\nvar TYPES_CLASSES = {\n  'info': 'alert-info',\n  'success': 'alert-success',\n  'warning': 'alert-warning',\n  'error': 'alert-danger'\n};\n/* jshint ignore:end */\n\nvar Snackbar = exports.Snackbar = (function (_React$Component) {\n  _inherits(Snackbar, _React$Component);\n\n  function Snackbar() {\n    _classCallCheck(this, Snackbar);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(Snackbar).apply(this, arguments));\n  }\n\n  _createClass(Snackbar, [{\n    key: 'getSnackbarClass',\n    value: function getSnackbarClass() {\n      var snackbarClass = 'alerts-snackbar';\n      if (this.props.isVisible) {\n        snackbarClass += ' in';\n      } else {\n        snackbarClass += ' out';\n      }\n      return snackbarClass;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getSnackbarClass() },\n        _react2.default.createElement(\n          'p',\n          { className: 'alert ' + TYPES_CLASSES[this.props.type] },\n          this.props.message\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return Snackbar;\n})(_react2.default.Component);\n\nfunction select(state) {\n  return state.snackbar;\n}\n\n},{\"react\":\"react\"}],13:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactGuestNav = exports.GuestNav = exports.GuestMenu = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _registerButton = require('../register-button');\n\nvar _registerButton2 = _interopRequireDefault(_registerButton);\n\nvar _signIn = require('../sign-in.js');\n\nvar _signIn2 = _interopRequireDefault(_signIn);\n\nvar _mobileNavbarDropdown = require('../../services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nvar _modal = require('../../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar GuestMenu = exports.GuestMenu = (function (_React$Component) {\n  _inherits(GuestMenu, _React$Component);\n\n  function GuestMenu() {\n    _classCallCheck(this, GuestMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(GuestMenu).apply(this, arguments));\n  }\n\n  _createClass(GuestMenu, [{\n    key: 'showSignInModal',\n    value: function showSignInModal() {\n      _modal2.default.show(_signIn2.default);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu user-dropdown dropdown-menu-right',\n          role: 'menu' },\n        _react2.default.createElement(\n          'li',\n          { className: 'guest-preview' },\n          _react2.default.createElement(\n            'h4',\n            null,\n            gettext(\"You are browsing as guest.\")\n          ),\n          _react2.default.createElement(\n            'p',\n            null,\n            gettext('Sign in or register to start and participate in discussions.')\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-xs-6' },\n              _react2.default.createElement(\n                'button',\n                { type: 'button', className: 'btn btn-default btn-block',\n                  onClick: this.showSignInModal },\n                gettext(\"Sign in\")\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'col-xs-6' },\n              _react2.default.createElement(\n                _registerButton2.default,\n                { className: 'btn-primary btn-block' },\n                gettext(\"Register\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return GuestMenu;\n})(_react2.default.Component);\n\nvar GuestNav = exports.GuestNav = (function (_GuestMenu) {\n  _inherits(GuestNav, _GuestMenu);\n\n  function GuestNav() {\n    _classCallCheck(this, GuestNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(GuestNav).apply(this, arguments));\n  }\n\n  _createClass(GuestNav, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'nav nav-guest' },\n        _react2.default.createElement(\n          'button',\n          { type: 'button', className: 'btn navbar-btn btn-default',\n            onClick: this.showSignInModal },\n          gettext(\"Sign in\")\n        ),\n        _react2.default.createElement(\n          _registerButton2.default,\n          { className: 'navbar-btn btn-primary' },\n          gettext(\"Register\")\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return GuestNav;\n})(GuestMenu);\n\nvar CompactGuestNav = exports.CompactGuestNav = (function (_React$Component2) {\n  _inherits(CompactGuestNav, _React$Component2);\n\n  function CompactGuestNav() {\n    _classCallCheck(this, CompactGuestNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactGuestNav).apply(this, arguments));\n  }\n\n  _createClass(CompactGuestNav, [{\n    key: 'showGuestMenu',\n    value: function showGuestMenu() {\n      _mobileNavbarDropdown2.default.show(GuestMenu);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showGuestMenu },\n        _react2.default.createElement(_avatar2.default, { size: '64' })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return CompactGuestNav;\n})(_react2.default.Component);\n\n},{\"../../services/mobile-navbar-dropdown\":43,\"../../services/modal\":44,\"../avatar\":2,\"../register-button\":9,\"../sign-in.js\":11,\"react\":\"react\"}],14:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactUserMenu = exports.UserMenu = undefined;\nexports.select = select;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _guestNav = require('./guest-nav');\n\nvar _userNav = require('./user-nav');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n\n// jshint ignore:line\n\nvar UserMenu = exports.UserMenu = (function (_React$Component) {\n  _inherits(UserMenu, _React$Component);\n\n  function UserMenu() {\n    _classCallCheck(this, UserMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserMenu).apply(this, arguments));\n  }\n\n  _createClass(UserMenu, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.props.isAuthenticated) {\n        return _react2.default.createElement(_userNav.UserNav, { user: this.props.user });\n      } else {\n        return _react2.default.createElement(_guestNav.GuestNav, null);\n      }\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserMenu;\n})(_react2.default.Component);\n\nvar CompactUserMenu = exports.CompactUserMenu = (function (_React$Component2) {\n  _inherits(CompactUserMenu, _React$Component2);\n\n  function CompactUserMenu() {\n    _classCallCheck(this, CompactUserMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactUserMenu).apply(this, arguments));\n  }\n\n  _createClass(CompactUserMenu, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.props.isAuthenticated) {\n        return _react2.default.createElement(_userNav.CompactUserNav, { user: this.props.user });\n      } else {\n        return _react2.default.createElement(_guestNav.CompactGuestNav, null);\n      }\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return CompactUserMenu;\n})(_react2.default.Component);\n\nfunction select(state) {\n  return state.auth;\n}\n\n},{\"./guest-nav\":13,\"./user-nav\":15,\"react\":\"react\"}],15:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactUserNav = exports.UserNav = exports.UserMenu = undefined;\nexports.selectUserMenu = selectUserMenu;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = require('react-redux');\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _mobileNavbarDropdown = require('../../services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar UserMenu = exports.UserMenu = (function (_React$Component) {\n  _inherits(UserMenu, _React$Component);\n\n  function UserMenu() {\n    _classCallCheck(this, UserMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserMenu).apply(this, arguments));\n  }\n\n  _createClass(UserMenu, [{\n    key: 'logout',\n    value: function logout() {\n      var decision = confirm(gettext(\"Are you sure you want to sign out?\"));\n      if (decision) {\n        $('#hidden-logout-form').submit();\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu user-dropdown dropdown-menu-right',\n          role: 'menu' },\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown-header' },\n          _react2.default.createElement(\n            'strong',\n            null,\n            this.props.user.username\n          )\n        ),\n        _react2.default.createElement('li', { className: 'divider' }),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'a',\n            { href: this.props.user.absolute_url },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'account_circle'\n            ),\n            gettext(\"See your profile\")\n          )\n        ),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'a',\n            { href: _index2.default.get('USERCP_URL') },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'done_all'\n            ),\n            gettext(\"Change options\")\n          )\n        ),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn-link' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'face'\n            ),\n            gettext(\"Change avatar\")\n          )\n        ),\n        _react2.default.createElement('li', { className: 'divider' }),\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown-footer' },\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-default btn-block',\n              onClick: this.logout },\n            gettext(\"Log out\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserMenu;\n})(_react2.default.Component);\n\nvar UserNav = exports.UserNav = (function (_React$Component2) {\n  _inherits(UserNav, _React$Component2);\n\n  function UserNav() {\n    _classCallCheck(this, UserNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserNav).apply(this, arguments));\n  }\n\n  _createClass(UserNav, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'ul nav navbar-nav nav-user' },\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown' },\n          _react2.default.createElement(\n            'a',\n            { href: this.props.user.absolute_url, className: 'dropdown-toggle',\n              'data-toggle': 'dropdown', 'aria-haspopup': 'true', 'aria-expanded': 'false',\n              role: 'button' },\n            _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '64' })\n          ),\n          _react2.default.createElement(UserMenu, { user: this.props.user })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserNav;\n})(_react2.default.Component);\n\nfunction selectUserMenu(store) {\n  return { user: store.auth.user };\n}\n\nvar CompactUserNav = exports.CompactUserNav = (function (_React$Component3) {\n  _inherits(CompactUserNav, _React$Component3);\n\n  function CompactUserNav() {\n    _classCallCheck(this, CompactUserNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactUserNav).apply(this, arguments));\n  }\n\n  _createClass(CompactUserNav, [{\n    key: 'showUserMenu',\n    value: function showUserMenu() {\n      _mobileNavbarDropdown2.default.showConnected('user-menu', (0, _reactRedux.connect)(selectUserMenu)(UserMenu));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showUserMenu },\n        _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '64' })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return CompactUserNav;\n})(_react2.default.Component);\n\n},{\"../../index\":16,\"../../services/mobile-navbar-dropdown\":43,\"../avatar\":2,\"react\":\"react\",\"react-redux\":\"react-redux\"}],16:[function(require,module,exports){\n(function (global){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Misago = undefined;\n\nvar _orderedList = require('./utils/ordered-list');\n\nvar _orderedList2 = _interopRequireDefault(_orderedList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Misago = exports.Misago = (function () {\n  function Misago() {\n    _classCallCheck(this, Misago);\n\n    this._initializers = [];\n    this._context = {};\n  }\n\n  _createClass(Misago, [{\n    key: 'addInitializer',\n    value: function addInitializer(initializer) {\n      this._initializers.push({\n        key: initializer.name,\n\n        item: initializer.initializer,\n\n        after: initializer.after,\n        before: initializer.before\n      });\n    }\n  }, {\n    key: 'init',\n    value: function init(context) {\n      var _this = this;\n\n      this._context = context;\n\n      var initOrder = new _orderedList2.default(this._initializers).orderedValues();\n      initOrder.forEach(function (initializer) {\n        initializer(_this);\n      });\n    }\n\n    // context accessors\n\n  }, {\n    key: 'has',\n    value: function has(key) {\n      return this._context.hasOwnProperty(key);\n    }\n  }, {\n    key: 'get',\n    value: function get(key, fallback) {\n      if (this.has(key)) {\n        return this._context[key];\n      } else {\n        return fallback || undefined;\n      }\n    }\n  }]);\n\n  return Misago;\n})();\n\n// create  singleton\n\nvar misago = new Misago();\n\n// expose it globally\nglobal.misago = misago;\n\n// and export it for tests and stuff\nexports.default = misago;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"./utils/ordered-list\":50}],17:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _ajax2.default.init(_index2.default.get('CSRF_COOKIE_NAME'));\n}\n\n_index2.default.addInitializer({\n  name: 'ajax',\n  initializer: initializer\n});\n\n},{\"../index\":16,\"../services/ajax\":38}],18:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _reactRedux = require('react-redux');\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _authMessage = require('../components/auth-message');\n\nvar _mountComponent = require('../utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_authMessage.select)(_authMessage.AuthMessage), 'auth-message-mount');\n}\n\n_index2.default.addInitializer({\n  name: 'component:auth-message',\n  initializer: initializer,\n  before: 'auth'\n});\n\n},{\"../components/auth-message\":1,\"../index\":16,\"../utils/mount-component\":49,\"react-redux\":\"react-redux\"}],19:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _auth = require('../reducers/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _store2.default.addReducer('auth', _auth2.default, Object.assign({\n    'isAuthenticated': context.get('isAuthenticated'),\n    'isAnonymous': !context.get('isAuthenticated'),\n\n    'user': context.get('user')\n  }, _auth.initialState));\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:auth',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../index\":16,\"../reducers/auth\":35,\"../services/store\":46}],20:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _auth = require('../services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _localStorage = require('../services/local-storage');\n\nvar _localStorage2 = _interopRequireDefault(_localStorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _auth2.default.init(_store2.default, _localStorage2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'auth',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../index\":16,\"../services/auth\":39,\"../services/local-storage\":42,\"../services/store\":46}],21:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _captcha = require('../services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _include = require('../services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _captcha2.default.init(context, _ajax2.default, _include2.default, _snackbar2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'captcha',\n  initializer: initializer\n});\n\n},{\"../index\":16,\"../services/ajax\":38,\"../services/captcha\":40,\"../services/include\":41,\"../services/snackbar\":45}],22:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _include = require('../services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _include2.default.init(context.get('STATIC_URL'));\n}\n\n_index2.default.addInitializer({\n  name: 'include',\n  initializer: initializer\n});\n\n},{\"../index\":16,\"../services/include\":41}],23:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _localStorage = require('../services/local-storage');\n\nvar _localStorage2 = _interopRequireDefault(_localStorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _localStorage2.default.init('misago_');\n}\n\n_index2.default.addInitializer({\n  name: 'local-storage',\n  initializer: initializer\n});\n\n},{\"../index\":16,\"../services/local-storage\":42}],24:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _mobileNavbarDropdown = require('../services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  var element = document.getElementById('mobile-navbar-dropdown-mount');\n  if (element) {\n    _mobileNavbarDropdown2.default.init(element);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'dropdown',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../index\":16,\"../services/mobile-navbar-dropdown\":43}],25:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  var element = document.getElementById('modal-mount');\n  if (element) {\n    _modal2.default.init(element);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'modal',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../index\":16,\"../services/modal\":44}],26:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _moment2.default.locale($('html').attr('lang'));\n}\n\n_index2.default.addInitializer({\n  name: 'moment',\n  initializer: initializer\n});\n\n},{\"../index\":16,\"moment\":\"moment\"}],27:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _reactRedux = require('react-redux');\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../components/snackbar');\n\nvar _mountComponent = require('../utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_snackbar.select)(_snackbar.Snackbar), 'snackbar-mount');\n}\n\n_index2.default.addInitializer({\n  name: 'component:snackbar',\n  initializer: initializer,\n  after: 'snackbar'\n});\n\n},{\"../components/snackbar\":12,\"../index\":16,\"../utils/mount-component\":49,\"react-redux\":\"react-redux\"}],28:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../reducers/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _store2.default.addReducer('snackbar', _snackbar2.default, _snackbar.initialState);\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:snackbar',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../index\":16,\"../reducers/snackbar\":36,\"../services/store\":46}],29:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _snackbar2.default.init(_store2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'snackbar',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../index\":16,\"../services/snackbar\":45,\"../services/store\":46}],30:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _store2.default.init();\n}\n\n_index2.default.addInitializer({\n  name: 'store',\n  initializer: initializer,\n  before: '_end'\n});\n\n},{\"../index\":16,\"../services/store\":46}],31:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _tick = require('../reducers/tick');\n\nvar _tick2 = _interopRequireDefault(_tick);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _store2.default.addReducer('tick', _tick2.default, _tick.initialState);\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:tick',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../index\":16,\"../reducers/tick\":37,\"../services/store\":46}],32:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _tick = require('../reducers/tick');\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar TICK_PERIOD = 50 * 1000; //do the tick every 50s\n\nfunction initializer() {\n  window.setInterval(function () {\n    _store2.default.dispatch((0, _tick.doTick)());\n  }, TICK_PERIOD);\n}\n\n_index2.default.addInitializer({\n  name: 'tick-start',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../index\":16,\"../reducers/tick\":37,\"../services/store\":46}],33:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _reactRedux = require('react-redux');\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _root = require('../components/user-menu/root');\n\nvar _mountComponent = require('../utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_root.select)(_root.UserMenu), 'user-menu-mount');\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_root.select)(_root.CompactUserMenu), 'user-menu-compact-mount');\n}\n\n_index2.default.addInitializer({\n  name: 'component:user-menu',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../components/user-menu/root\":14,\"../index\":16,\"../utils/mount-component\":49,\"react-redux\":\"react-redux\"}],34:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _include = require('../services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nvar _zxcvbn = require('../services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _zxcvbn2.default.init(_include2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'zxcvbn',\n  initializer: initializer\n});\n\n},{\"../index\":16,\"../services/include\":41,\"../services/zxcvbn\":47}],35:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.signIn = signIn;\nexports.signOut = signOut;\nexports.default = auth;\nvar initialState = exports.initialState = {\n  signedIn: false,\n  signedOut: false\n};\n\nvar SIGN_IN = exports.SIGN_IN = 'SIGN_IN';\nvar SIGN_OUT = exports.SIGN_OUT = 'SIGN_OUT';\n\nfunction signIn(user) {\n  return {\n    type: SIGN_IN,\n    user: user\n  };\n}\n\nfunction signOut() {\n  return {\n    type: SIGN_OUT\n  };\n}\n\nfunction auth() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  switch (action.type) {\n    case SIGN_IN:\n      return Object.assign({}, state, {\n        signedIn: action.user\n      });\n\n    case SIGN_OUT:\n      return Object.assign({}, state, {\n        isAuthenticated: false,\n        isAnonymous: true,\n        signedOut: true\n      });\n\n    default:\n      return state;\n  }\n}\n\n},{}],36:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.showSnackbar = showSnackbar;\nexports.hideSnackbar = hideSnackbar;\nexports.default = snackbar;\nvar initialState = exports.initialState = {\n  type: 'info',\n  message: '',\n  isVisible: false\n};\n\nvar SHOW_SNACKBAR = exports.SHOW_SNACKBAR = 'SHOW_SNACKBAR';\nvar HIDE_SNACKBAR = exports.HIDE_SNACKBAR = 'HIDE_SNACKBAR';\n\nfunction showSnackbar(message, type) {\n  return {\n    type: SHOW_SNACKBAR,\n    message: message,\n    messageType: type\n  };\n}\n\nfunction hideSnackbar() {\n  return {\n    type: HIDE_SNACKBAR\n  };\n}\n\nfunction snackbar() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  if (action.type === SHOW_SNACKBAR) {\n    return {\n      type: action.messageType,\n      message: action.message,\n      isVisible: true\n    };\n  } else if (action.type === HIDE_SNACKBAR) {\n    return Object.assign({}, state, {\n      isVisible: false\n    });\n  } else {\n    return state;\n  }\n}\n\n},{}],37:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.doTick = doTick;\nexports.default = tick;\nvar initialState = exports.initialState = {\n  tick: 0\n};\n\nvar TICK = exports.TICK = 'TICK';\n\nfunction doTick() {\n  return {\n    type: TICK\n  };\n}\n\nfunction tick() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  if (action.type === TICK) {\n    return Object.assign({}, state, {\n      tick: state.tick + 1\n    });\n  } else {\n    return state;\n  }\n}\n\n},{}],38:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Ajax = exports.Ajax = (function () {\n  function Ajax() {\n    _classCallCheck(this, Ajax);\n\n    this._cookieName = null;\n    this._csrfToken = null;\n  }\n\n  _createClass(Ajax, [{\n    key: 'init',\n    value: function init(cookieName) {\n      this._cookieName = cookieName;\n      this._csrfToken = this.getCsrfToken();\n    }\n  }, {\n    key: 'getCsrfToken',\n    value: function getCsrfToken() {\n      if (document.cookie.indexOf(this._cookieName) !== -1) {\n        var cookieRegex = new RegExp(this._cookieName + '\\=([^;]*)');\n        var cookie = document.cookie.match(cookieRegex)[0];\n        return cookie ? cookie.split('=')[1] : null;\n      } else {\n        return null;\n      }\n    }\n  }, {\n    key: 'request',\n    value: function request(method, url, data) {\n      var self = this;\n      return new Promise(function (resolve, reject) {\n        var xhr = {\n          url: url,\n          method: method,\n          headers: {\n            'X-CSRFToken': self._csrfToken\n          },\n\n          data: data || {},\n          dataType: 'json',\n\n          success: function success(data) {\n            resolve(data);\n          },\n\n          error: function error(jqXHR) {\n            var rejection = jqXHR.responseJSON || {};\n\n            rejection.status = jqXHR.status;\n            rejection.statusText = jqXHR.statusText;\n\n            reject(rejection);\n          }\n        };\n\n        $.ajax(xhr);\n      });\n    }\n  }, {\n    key: 'get',\n    value: function get(url) {\n      return this.request('GET', url);\n    }\n  }, {\n    key: 'post',\n    value: function post(url, data) {\n      return this.request('POST', url, data);\n    }\n  }, {\n    key: 'patch',\n    value: function patch(url, data) {\n      return this.request('PATCH', url, data);\n    }\n  }, {\n    key: 'put',\n    value: function put(url, data) {\n      return this.request('PUT', url, data);\n    }\n  }, {\n    key: 'delete',\n    value: function _delete(url) {\n      return this.request('DELETE', url);\n    }\n  }]);\n\n  return Ajax;\n})();\n\nexports.default = new Ajax();\n\n},{}],39:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Auth = undefined;\n\nvar _auth = require('../reducers/auth');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// jshint ignore:line\n\nvar Auth = exports.Auth = (function () {\n  function Auth() {\n    _classCallCheck(this, Auth);\n  }\n\n  _createClass(Auth, [{\n    key: 'init',\n    value: function init(store, local) {\n      this._store = store;\n      this._local = local;\n\n      // tell other tabs what auth state is because we are most current with it\n      this.syncSession();\n\n      // listen for other tabs to tell us that state changed\n      this.watchState();\n    }\n  }, {\n    key: 'syncSession',\n    value: function syncSession() {\n      var state = this._store.getState().auth;\n      if (state.isAuthenticated) {\n        this._local.set('auth', {\n          isAuthenticated: true,\n          username: state.user.username\n        });\n      } else {\n        this._local.set('auth', {\n          isAuthenticated: false\n        });\n      }\n    }\n  }, {\n    key: 'watchState',\n    value: function watchState() {\n      var _this = this;\n\n      this._local.watch('auth', function (newState) {\n        if (newState.isAuthenticated) {\n          _this._store.dispatch((0, _auth.signIn)({\n            username: newState.username\n          }));\n        } else {\n          _this._store.dispatch((0, _auth.signOut)());\n        }\n      });\n    }\n  }, {\n    key: 'signIn',\n    value: function signIn(user) {\n      this._store.dispatch((0, _auth.signIn)(user));\n      this._local.set('auth', {\n        isAuthenticated: true,\n        username: user.username\n      });\n    }\n  }, {\n    key: 'signOut',\n    value: function signOut() {\n      this._store.dispatch((0, _auth.signOut)());\n      this._local.set('auth', {\n        isAuthenticated: false\n      });\n    }\n  }]);\n\n  return Auth;\n})();\n\nexports.default = new Auth();\n\n},{\"../reducers/auth\":35}],40:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); /* global grecaptcha */\n// jshint ignore:line\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Captcha = exports.ReCaptcha = exports.ReCaptchaComponent = exports.QACaptcha = exports.NoCaptcha = exports.BaseCaptcha = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _formGroup = require('../components/form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// jshint ignore:line\n\nvar BaseCaptcha = exports.BaseCaptcha = (function () {\n  function BaseCaptcha() {\n    _classCallCheck(this, BaseCaptcha);\n  }\n\n  _createClass(BaseCaptcha, [{\n    key: 'init',\n    value: function init(context, ajax, include, snackbar) {\n      this._context = context;\n      this._ajax = ajax;\n      this._include = include;\n      this._snackbar = snackbar;\n    }\n  }]);\n\n  return BaseCaptcha;\n})();\n\nvar NoCaptcha = exports.NoCaptcha = (function (_BaseCaptcha) {\n  _inherits(NoCaptcha, _BaseCaptcha);\n\n  function NoCaptcha() {\n    _classCallCheck(this, NoCaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(NoCaptcha).apply(this, arguments));\n  }\n\n  _createClass(NoCaptcha, [{\n    key: 'load',\n    value: function load() {\n      return new Promise(function (resolve) {\n        // immediately resolve as we don't have anything to validate\n        resolve();\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return null;\n    }\n  }, {\n    key: 'component',\n    value: function component() {\n      return null;\n    }\n  }]);\n\n  return NoCaptcha;\n})(BaseCaptcha);\n\nvar QACaptcha = exports.QACaptcha = (function (_BaseCaptcha2) {\n  _inherits(QACaptcha, _BaseCaptcha2);\n\n  function QACaptcha() {\n    _classCallCheck(this, QACaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(QACaptcha).apply(this, arguments));\n  }\n\n  _createClass(QACaptcha, [{\n    key: 'load',\n    value: function load() {\n      var self = this;\n      return new Promise(function (resolve, reject) {\n        self._ajax.get(self._context.get('CAPTCHA_API_URL')).then(function (data) {\n          self.question = data.question;\n          self.helpText = data.help_text;\n          resolve();\n        }, function () {\n          self._snackbar.error(gettext(\"Failed to load CAPTCHA.\"));\n          reject();\n        });\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return [];\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return _react2.default.createElement(\n        _formGroup2.default,\n        { label: this.question, 'for': 'id_captcha',\n          labelClass: kwargs.labelClass || \"col-sm-4\",\n          controlClass: kwargs.controlClass || \"col-sm-8\",\n          validation: kwargs.form.state.errors.captcha,\n          helpText: this.helpText || null },\n        _react2.default.createElement('input', { type: 'text', id: 'id_captcha', className: 'form-control',\n          'aria-describedby': 'id_captcha_status',\n          disabled: kwargs.form.state.isLoading,\n          onChange: kwargs.form.bindInput('captcha'),\n          value: kwargs.form.state.captcha })\n      );\n    }\n    /* jshint ignore:end */\n\n  }]);\n\n  return QACaptcha;\n})(BaseCaptcha);\n\nvar ReCaptchaComponent = exports.ReCaptchaComponent = (function (_React$Component) {\n  _inherits(ReCaptchaComponent, _React$Component);\n\n  function ReCaptchaComponent() {\n    _classCallCheck(this, ReCaptchaComponent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ReCaptchaComponent).apply(this, arguments));\n  }\n\n  _createClass(ReCaptchaComponent, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this4 = this;\n\n      grecaptcha.render('recaptcha', {\n        'sitekey': this.props.siteKey,\n        'callback': function callback(response) {\n          // fire fakey event to binding\n          _this4.props.binding({\n            target: {\n              value: response\n            }\n          });\n        }\n      });\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement('div', { id: 'recaptcha' });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ReCaptchaComponent;\n})(_react2.default.Component);\n\nvar ReCaptcha = exports.ReCaptcha = (function (_BaseCaptcha3) {\n  _inherits(ReCaptcha, _BaseCaptcha3);\n\n  function ReCaptcha() {\n    _classCallCheck(this, ReCaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ReCaptcha).apply(this, arguments));\n  }\n\n  _createClass(ReCaptcha, [{\n    key: 'load',\n    value: function load() {\n      this._include.include('https://www.google.com/recaptcha/api.js', true);\n\n      return new Promise(function (resolve) {\n        var wait = function wait() {\n          if (typeof grecaptcha === \"undefined\") {\n            window.setTimeout(function () {\n              wait();\n            }, 200);\n          } else {\n            resolve();\n          }\n        };\n        wait();\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return [];\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return _react2.default.createElement(\n        _formGroup2.default,\n        { label: gettext(\"Captcha\"), 'for': 'id_captcha',\n          labelClass: kwargs.labelClass || \"col-sm-4\",\n          controlClass: kwargs.controlClass || \"col-sm-8\",\n          validation: kwargs.form.state.errors.captcha,\n          helpText: gettext(\"Please solve the quick test.\") },\n        _react2.default.createElement(ReCaptchaComponent, { siteKey: this._context.get('SETTINGS').recaptcha_site_key,\n          binding: kwargs.form.bindInput('captcha') })\n      );\n    }\n    /* jshint ignore:end */\n\n  }]);\n\n  return ReCaptcha;\n})(BaseCaptcha);\n\nvar Captcha = exports.Captcha = (function () {\n  function Captcha() {\n    _classCallCheck(this, Captcha);\n  }\n\n  _createClass(Captcha, [{\n    key: 'init',\n    value: function init(context, ajax, include, snackbar) {\n      switch (context.get('SETTINGS').captcha_type) {\n        case 'no':\n          this._captcha = new NoCaptcha();\n          break;\n\n        case 'qa':\n          this._captcha = new QACaptcha();\n          break;\n\n        case 're':\n          this._captcha = new ReCaptcha();\n          break;\n      }\n\n      this._captcha.init(context, ajax, include, snackbar);\n    }\n\n    // accessors for underlying strategy\n\n  }, {\n    key: 'load',\n    value: function load() {\n      return this._captcha.load();\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return this._captcha.validator();\n    }\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return this._captcha.component(kwargs);\n    }\n  }]);\n\n  return Captcha;\n})();\n\nexports.default = new Captcha();\n\n},{\"../components/form-group\":5,\"react\":\"react\"}],41:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Include = exports.Include = (function () {\n  function Include() {\n    _classCallCheck(this, Include);\n  }\n\n  _createClass(Include, [{\n    key: 'init',\n    value: function init(staticUrl) {\n      this._staticUrl = staticUrl;\n      this._included = [];\n    }\n  }, {\n    key: 'include',\n    value: function include(script) {\n      var remote = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\n\n      if (this._included.indexOf(script) === -1) {\n        this._included.push(script);\n        this._include(script, remote);\n      }\n    }\n  }, {\n    key: '_include',\n    value: function _include(script, remote) {\n      $.ajax({\n        url: (!remote ? this._staticUrl : '') + script,\n        cache: true,\n        dataType: 'script'\n      });\n    }\n  }]);\n\n  return Include;\n})();\n\nexports.default = new Include();\n\n},{}],42:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar storage = window.localStorage;\n\nvar LocalStorage = exports.LocalStorage = (function () {\n  function LocalStorage() {\n    _classCallCheck(this, LocalStorage);\n  }\n\n  _createClass(LocalStorage, [{\n    key: 'init',\n    value: function init(prefix) {\n      var _this = this;\n\n      this._prefix = prefix;\n      this._watchers = [];\n\n      window.addEventListener('storage', function (e) {\n        var newValueJson = JSON.parse(e.newValue);\n        _this._watchers.forEach(function (watcher) {\n          if (watcher.key === e.key && e.oldValue !== e.newValue) {\n            watcher.callback(newValueJson);\n          }\n        });\n      });\n    }\n  }, {\n    key: 'set',\n    value: function set(key, value) {\n      storage.setItem(this._prefix + key, JSON.stringify(value));\n    }\n  }, {\n    key: 'get',\n    value: function get(key) {\n      var itemString = storage.getItem(this._prefix + key);\n      if (itemString) {\n        return JSON.parse(itemString);\n      } else {\n        return null;\n      }\n    }\n  }, {\n    key: 'watch',\n    value: function watch(key, callback) {\n      this._watchers.push({\n        key: this._prefix + key,\n        callback: callback\n      });\n    }\n  }]);\n\n  return LocalStorage;\n})();\n\nexports.default = new LocalStorage();\n\n},{}],43:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.MobileNavbarDropdown = undefined;\n\nvar _mountComponent = require('../utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar MobileNavbarDropdown = exports.MobileNavbarDropdown = (function () {\n  function MobileNavbarDropdown() {\n    _classCallCheck(this, MobileNavbarDropdown);\n  }\n\n  _createClass(MobileNavbarDropdown, [{\n    key: 'init',\n    value: function init(element) {\n      this._element = element;\n      this._component = null;\n    }\n  }, {\n    key: 'show',\n    value: function show(component) {\n      if (this._component === component) {\n        this.hide();\n      } else {\n        this._component = component;\n        (0, _mountComponent2.default)(component, this._element.id);\n        $(this._element).addClass('open');\n      }\n    }\n  }, {\n    key: 'showConnected',\n    value: function showConnected(name, component) {\n      if (this._component === name) {\n        this.hide();\n      } else {\n        this._component = name;\n        (0, _mountComponent2.default)(component, this._element.id, true);\n        $(this._element).addClass('open');\n      }\n    }\n  }, {\n    key: 'hide',\n    value: function hide() {\n      $(this._element).removeClass('open');\n      this._component = null;\n    }\n  }]);\n\n  return MobileNavbarDropdown;\n})();\n\nexports.default = new MobileNavbarDropdown();\n\n},{\"../utils/mount-component\":49}],44:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Modal = undefined;\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _mountComponent = require('../utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Modal = exports.Modal = (function () {\n  function Modal() {\n    _classCallCheck(this, Modal);\n  }\n\n  _createClass(Modal, [{\n    key: 'init',\n    value: function init(element) {\n      var _this = this;\n\n      this._element = element;\n\n      this._modal = $(element).modal({ show: false });\n\n      this._modal.on('hidden.bs.modal', function () {\n        _reactDom2.default.unmountComponentAtNode(_this._element);\n      });\n    }\n  }, {\n    key: 'show',\n    value: function show(component) {\n      (0, _mountComponent2.default)(component, this._element.id);\n      this._modal.modal('show');\n    }\n  }, {\n    key: 'hide',\n    value: function hide() {\n      this._modal.modal('hide');\n    }\n  }]);\n\n  return Modal;\n})();\n\nexports.default = new Modal();\n\n},{\"../utils/mount-component\":49,\"react-dom\":\"react-dom\"}],45:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Snackbar = undefined;\n\nvar _snackbar = require('../reducers/snackbar');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar HIDE_ANIMATION_LENGTH = 300;\nvar MESSAGE_SHOW_LENGTH = 5000;\n\nvar Snackbar = exports.Snackbar = (function () {\n  function Snackbar() {\n    _classCallCheck(this, Snackbar);\n  }\n\n  _createClass(Snackbar, [{\n    key: 'init',\n    value: function init(store) {\n      this._store = store;\n      this._timeout = null;\n    }\n  }, {\n    key: 'alert',\n    value: function alert(message, type) {\n      var _this = this;\n\n      if (this._timeout) {\n        window.clearTimeout(this._timeout);\n        this._store.dispatch((0, _snackbar.hideSnackbar)());\n\n        this._timeout = window.setTimeout(function () {\n          _this._timeout = null;\n          _this.alert(message, type);\n        }, HIDE_ANIMATION_LENGTH);\n      } else {\n        this._store.dispatch((0, _snackbar.showSnackbar)(message, type));\n        this._timeout = window.setTimeout(function () {\n          _this._store.dispatch((0, _snackbar.hideSnackbar)());\n          _this._timeout = null;\n        }, MESSAGE_SHOW_LENGTH);\n      }\n    }\n\n    // shorthands for message types\n\n  }, {\n    key: 'info',\n    value: function info(message) {\n      this.alert(message, 'info');\n    }\n  }, {\n    key: 'success',\n    value: function success(message) {\n      this.alert(message, 'success');\n    }\n  }, {\n    key: 'warning',\n    value: function warning(message) {\n      this.alert(message, 'warning');\n    }\n  }, {\n    key: 'error',\n    value: function error(message) {\n      this.alert(message, 'error');\n    }\n\n    // shorthand for api errors\n\n  }, {\n    key: 'apiError',\n    value: function apiError(rejection) {\n      var message = gettext(\"Unknown error has occured.\");\n\n      if (rejection.status === 0) {\n        message = gettext(\"Lost connection with application.\");\n      }\n\n      if (rejection.status === 400 && rejection.detail) {\n        message = rejection.detail;\n      }\n\n      if (rejection.status === 403) {\n        message = rejection.detail;\n        if (message === \"Permission denied\") {\n          message = gettext(\"You don't have permission to perform this action.\");\n        }\n      }\n\n      if (rejection.status === 404) {\n        message = gettext(\"Action link is invalid.\");\n      }\n\n      this.error(message);\n    }\n  }]);\n\n  return Snackbar;\n})();\n\nexports.default = new Snackbar();\n\n},{\"../reducers/snackbar\":36}],46:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.StoreWrapper = undefined;\n\nvar _redux = require('redux');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar StoreWrapper = exports.StoreWrapper = (function () {\n  function StoreWrapper() {\n    _classCallCheck(this, StoreWrapper);\n\n    this._store = null;\n    this._reducers = {};\n    this._initialState = {};\n  }\n\n  _createClass(StoreWrapper, [{\n    key: 'addReducer',\n    value: function addReducer(name, reducer, initialState) {\n      this._reducers[name] = reducer;\n      this._initialState[name] = initialState;\n    }\n  }, {\n    key: 'init',\n    value: function init() {\n      this._store = (0, _redux.createStore)((0, _redux.combineReducers)(this._reducers), this._initialState);\n    }\n  }, {\n    key: 'getStore',\n    value: function getStore() {\n      return this._store;\n    }\n\n    // Store API\n\n  }, {\n    key: 'getState',\n    value: function getState() {\n      return this._store.getState();\n    }\n  }, {\n    key: 'dispatch',\n    value: function dispatch(action) {\n      return this._store.dispatch(action);\n    }\n  }]);\n\n  return StoreWrapper;\n})();\n\nexports.default = new StoreWrapper();\n\n},{\"redux\":\"redux\"}],47:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/* global zxcvbn */\n\nvar Zxcvbn = exports.Zxcvbn = (function () {\n  function Zxcvbn() {\n    _classCallCheck(this, Zxcvbn);\n  }\n\n  _createClass(Zxcvbn, [{\n    key: \"init\",\n    value: function init(include) {\n      this._include = include;\n    }\n  }, {\n    key: \"scorePassword\",\n    value: function scorePassword(password, inputs) {\n      // 0-4 score, the more the stronger password\n      return zxcvbn(password, inputs).score;\n    }\n  }, {\n    key: \"load\",\n    value: function load() {\n      if (typeof zxcvbn === \"undefined\") {\n        this._include.include('misago/js/zxcvbn.js');\n        return this._loadingPromise();\n      } else {\n        return this._loadedPromise();\n      }\n    }\n  }, {\n    key: \"_loadingPromise\",\n    value: function _loadingPromise() {\n      return new Promise(function (resolve) {\n        var wait = function wait() {\n          if (typeof zxcvbn === \"undefined\") {\n            window.setTimeout(function () {\n              wait();\n            }, 200);\n          } else {\n            resolve();\n          }\n        };\n        wait();\n      });\n    }\n  }, {\n    key: \"_loadedPromise\",\n    value: function _loadedPromise() {\n      // we have already loaded zxcvbn.js, resolve away!\n      return new Promise(function (resolve) {\n        resolve();\n      });\n    }\n  }]);\n\n  return Zxcvbn;\n})();\n\nexports.default = new Zxcvbn();\n\n},{}],48:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (ban, changeState) {\n  _reactDom2.default.unmountComponentAtNode(document.getElementById('page-mount'));\n\n  _reactDom2.default.render(\n  /* jshint ignore:start */\n  _react2.default.createElement(\n    _reactRedux.Provider,\n    { store: _store2.default.getStore() },\n    _react2.default.createElement(RedrawedBannedPage, { message: ban.message,\n      expires: ban.expires_on ? (0, _moment2.default)(ban.expires_on) : null })\n  ),\n  /* jshint ignore:end */\n  document.getElementById('page-mount'));\n\n  if (typeof changeState === 'undefined' || !changeState) {\n    var forumName = _index2.default.get('SETTINGS').forum_name;\n    document.title = gettext(\"You are banned\") + ' | ' + forumName;\n    window.history.pushState({}, \"\", _index2.default.get('BANNED_URL'));\n  }\n};\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = require('react-redux');\n\nvar _bannedPage = require('../components/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// jshint ignore:line\n\n/* jshint ignore:start */\n// jshint ignore:line\n// jshint ignore:line\nvar select = function select(state) {\n  return state.tick;\n}; // jshint ignore:line\n// jshint ignore:line\n\nvar RedrawedBannedPage = (0, _reactRedux.connect)(select)(_bannedPage2.default);\n/* jshint ignore:end */\n\n},{\"../components/banned-page\":3,\"../index\":16,\"../services/store\":46,\"moment\":\"moment\",\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],49:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = mount;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = require('react-redux');\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// jshint ignore:line\n\nfunction mount(Component, rootElementId) {\n  var connected = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];\n\n  var rootElement = document.getElementById(rootElementId);\n\n  if (rootElement) {\n    if (connected) {\n      _reactDom2.default.render(\n      /* jshint ignore:start */\n      _react2.default.createElement(\n        _reactRedux.Provider,\n        { store: _store2.default.getStore() },\n        _react2.default.createElement(Component, null)\n      ),\n      /* jshint ignore:end */\n      rootElement);\n    } else {\n      _reactDom2.default.render(\n      /* jshint ignore:start */\n      _react2.default.createElement(Component, null),\n      /* jshint ignore:end */\n      rootElement);\n    }\n  }\n} // jshint ignore:line\n// jshint ignore:line\n\n},{\"../services/store\":46,\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],50:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar OrderedList = (function () {\n  function OrderedList(items) {\n    _classCallCheck(this, OrderedList);\n\n    this.isOrdered = false;\n    this._items = items || [];\n  }\n\n  _createClass(OrderedList, [{\n    key: \"add\",\n    value: function add(key, item, order) {\n      this._items.push({\n        key: key,\n        item: item,\n\n        after: order ? order.after || null : null,\n        before: order ? order.before || null : null\n      });\n    }\n  }, {\n    key: \"get\",\n    value: function get(key, value) {\n      for (var i = 0; i < this._items.length; i++) {\n        if (this._items[i].key === key) {\n          return this._items[i].item;\n        }\n      }\n\n      return value;\n    }\n  }, {\n    key: \"has\",\n    value: function has(key) {\n      return this.get(key) !== undefined;\n    }\n  }, {\n    key: \"values\",\n    value: function values() {\n      var values = [];\n      for (var i = 0; i < this._items.length; i++) {\n        values.push(this._items[i].item);\n      }\n      return values;\n    }\n  }, {\n    key: \"order\",\n    value: function order(values_only) {\n      if (!this.isOrdered) {\n        this._items = this._order(this._items);\n        this.isOrdered = true;\n      }\n\n      if (values_only || typeof values_only === 'undefined') {\n        return this.values();\n      } else {\n        return this._items;\n      }\n    }\n  }, {\n    key: \"orderedValues\",\n    value: function orderedValues() {\n      return this.order(true);\n    }\n  }, {\n    key: \"_order\",\n    value: function _order(unordered) {\n      // Index of unordered items\n      var index = [];\n      unordered.forEach(function (item) {\n        index.push(item.key);\n      });\n\n      // Ordered items\n      var ordered = [];\n      var ordering = [];\n\n      // First pass: register items that\n      // don't specify their order\n      unordered.forEach(function (item) {\n        if (!item.after && !item.before) {\n          ordered.push(item);\n          ordering.push(item.key);\n        }\n      });\n\n      // Second pass: register items that\n      // specify their before to \"_end\"\n      unordered.forEach(function (item) {\n        if (item.before === \"_end\") {\n          ordered.push(item);\n          ordering.push(item.key);\n        }\n      });\n\n      // Third pass: keep iterating items\n      // until we hit iterations limit or finish\n      // ordering list\n      function insertItem(item) {\n        var insertAt = -1;\n        if (ordering.indexOf(item.key) === -1) {\n          if (item.after) {\n            insertAt = ordering.indexOf(item.after);\n            if (insertAt !== -1) {\n              insertAt += 1;\n            }\n          } else if (item.before) {\n            insertAt = ordering.indexOf(item.before);\n          }\n\n          if (insertAt !== -1) {\n            ordered.splice(insertAt, 0, item);\n            ordering.splice(insertAt, 0, item.key);\n          }\n        }\n      }\n\n      var iterations = 200;\n      while (iterations > 0 && index.length !== ordering.length) {\n        iterations -= 1;\n        unordered.forEach(insertItem);\n      }\n\n      return ordered;\n    }\n  }]);\n\n  return OrderedList;\n})();\n\nexports.default = OrderedList;\n\n},{}],51:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.required = required;\nexports.email = email;\nexports.minLength = minLength;\nexports.maxLength = maxLength;\nexports.usernameMinLength = usernameMinLength;\nexports.usernameMaxLength = usernameMaxLength;\nexports.usernameContent = usernameContent;\nexports.passwordMinLength = passwordMinLength;\nvar EMAIL = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\nvar USERNAME = new RegExp('^[0-9a-z]+$', 'i');\n\nfunction required() {\n  return function (value) {\n    if ($.trim(value).length === 0) {\n      return gettext(\"This field is required.\");\n    }\n  };\n}\n\nfunction email(message) {\n  return function (value) {\n    if (!EMAIL.test(value)) {\n      return message || gettext(\"Enter a valid email address.\");\n    }\n  };\n}\n\nfunction minLength(limitValue, message) {\n  return function (value) {\n    var returnMessage = '';\n    var length = $.trim(value).length;\n\n    if (length < limitValue) {\n      if (message) {\n        returnMessage = message(limitValue, length);\n      } else {\n        returnMessage = ngettext(\"Ensure this value has at least %(limit_value)s character (it has %(show_value)s).\", \"Ensure this value has at least %(limit_value)s characters (it has %(show_value)s).\", limitValue);\n      }\n      return interpolate(returnMessage, {\n        limit_value: limitValue,\n        show_value: length\n      }, true);\n    }\n  };\n}\n\nfunction maxLength(limitValue, message) {\n  return function (value) {\n    var returnMessage = '';\n    var length = $.trim(value).length;\n\n    if (length > limitValue) {\n      if (message) {\n        returnMessage = message(limitValue, length);\n      } else {\n        returnMessage = ngettext(\"Ensure this value has at most %(limit_value)s character (it has %(show_value)s).\", \"Ensure this value has at most %(limit_value)s characters (it has %(show_value)s).\", limitValue);\n      }\n      return interpolate(returnMessage, {\n        limit_value: limitValue,\n        show_value: length\n      }, true);\n    }\n  };\n}\n\nfunction usernameMinLength(settings) {\n  var message = function message(limitValue) {\n    return ngettext(\"Username must be at least %(limit_value)s character long.\", \"Username must be at least %(limit_value)s characters long.\", limitValue);\n  };\n  return this.minLength(settings.username_length_min, message);\n}\n\nfunction usernameMaxLength(settings) {\n  var message = function message(limitValue) {\n    return ngettext(\"Username cannot be longer than %(limit_value)s character.\", \"Username cannot be longer than %(limit_value)s characters.\", limitValue);\n  };\n  return this.maxLength(settings.username_length_max, message);\n}\n\nfunction usernameContent() {\n  return function (value) {\n    if (!USERNAME.test($.trim(value))) {\n      return gettext(\"Username can only contain latin alphabet letters and digits.\");\n    }\n  };\n}\n\nfunction passwordMinLength(settings) {\n  var message = function message(limitValue) {\n    return ngettext(\"Valid password must be at least %(limit_value)s character long.\", \"Valid password must be at least %(limit_value)s characters long.\", limitValue);\n  };\n  return this.minLength(settings.password_length_min, message);\n}\n\n},{}]},{},[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]);\n"],"sourceRoot":"/source/"}
+{"version":3,"sources":["misago.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length",1,"module","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","prototype","Object","create","constructor","value","enumerable","writable","configurable","setPrototypeOf","__proto__","select","state","user","auth","signedIn","signedOut","_createClass","defineProperties","target","props","descriptor","defineProperty","key","protoProps","staticProps","_react","_react2","_class","_React$Component","this","getPrototypeOf","apply","arguments","window","location","reload","interpolate","gettext","username","createElement","className","getClassName","getMessage","type","onClick","refresh","Component","react",2,"BASE_URL","$","attr","size","url","id","avatar_hash","src","getSrc","title",3,"_moment","_moment2","message","html","dangerouslySetInnerHTML","__html","plain","expires","isAfter","expires_on","fromNow","getReasonMessage","getExpirationMessage","moment",4,"_loader","_loader2","Button","disabled","loading","children","defaultProps","./loader",5,"validation","isValidated","_this2","map","error","aria-hidden","helpText","labelClass","htmlFor","label","controlClass","getFeedbackIcon","getFeedbackDescription","getFeedback","getHelpText","extra",6,"_validators","validateRequired","required","_Object$getPrototypeO","_temp","_this","_ret","_len","args","Array","_key","concat","bindInput","name","event","newState","formErrors","errors","validateField","setState","handleSubmit","preventDefault","isLoading","clean","promise","send","then","success","handleSuccess","rejection","handleError","validators","optional","validatedFields","hasOwnProperty","push","fieldErrors","validate","field","requiredError","validationError","../utils/validators",7,8,"LABELS","STYLES","undefined","_zxcvbn","_zxcvbn2","_score","_password","_inputs","password","inputs","cacheStale","trim","scorePassword","score","getScore","style","width","role","aria-valuenow","aria-valuemin","aria-valuemax","../services/zxcvbn",9,"_register","_register2","_captcha","_captcha2","_modal","_modal2","_snackbar","_snackbar2","showRegisterModal","misago","get","account_activation","info","isLoaded","show","Promise","all","load","../services/captcha","../services/modal","../services/snackbar","./register.js",10,"_interopRequireWildcard","newObj","RegisterComplete","RegisterForm","_button","_button2","_form","_form2","_formGroup","_formGroup2","_passwordStrength","_passwordStrength2","_index","_index2","_ajax","_ajax2","_auth","_auth2","_bannedPage","_bannedPage2","_Form","email","captcha","usernameContent","usernameMinLength","usernameMaxLength","passwordMinLength","validator","isValid","post","apiResponse","callback","status","assign","ban","hide","apiError","href","data-dismiss","aria-label","onSubmit","display","for","aria-describedby","onChange","component","form","getLegalFootNote","activation","getLead","getSubscript","_React$Component2","_this3","completeRegistration","signIn","complete","../index","../services/ajax","../services/auth","../utils/banned-page","./button","./form","./form-group","./password-strength",11,"showActivation","append","find","val","getCsrfToken","pathname","submit","detail","placeholder","getActivationButton",12,"snackbar","Snackbar","TYPES_CLASSES","warning","snackbarClass","isVisible","getSnackbarClass",13,"CompactGuestNav","GuestNav","GuestMenu","_avatar","_avatar2","_registerButton","_registerButton2","_signIn","_signIn2","_mobileNavbarDropdown","_mobileNavbarDropdown2","showSignInModal","_GuestMenu","showGuestMenu","../../services/mobile-navbar-dropdown","../../services/modal","../avatar","../register-button","../sign-in.js",14,"CompactUserMenu","UserMenu","_guestNav","_userNav","isAuthenticated","UserNav","CompactUserNav","./guest-nav","./user-nav",15,"selectUserMenu","store","_reactRedux","decision","confirm","absolute_url","logout","data-toggle","aria-haspopup","aria-expanded","_React$Component3","showConnected","connect","showUserMenu","../../index","react-redux",16,"global","Misago","_orderedList","_orderedList2","_initializers","_context","initializer","item","after","before","context","initOrder","orderedValues","forEach","fallback","has","./utils/ordered-list",17,"init","addInitializer",18,"_mountComponent2","_authMessage","_authMessage2","_mountComponent","../components/auth-message","../utils/mount-component",19,"_store2","addReducer","isAnonymous","initialState","_store","../reducers/auth","../services/store",20,"_localStorage2","_localStorage","../services/local-storage",21,22,"_include2","_include","../services/include",23,24,25,"element","document","getElementById","../services/mobile-navbar-dropdown",26,27,"locale",28,"../components/snackbar",29,"../reducers/snackbar",30,31,32,"_tick2","_tick","../reducers/tick",33,"setInterval","dispatch","doTick","TICK_PERIOD",34,"_root","../components/user-menu/root",35,36,"SIGN_IN","signOut","SIGN_OUT","action",37,"showSnackbar","SHOW_SNACKBAR","messageType","hideSnackbar","HIDE_SNACKBAR",38,"TICK","tick",39,"Ajax","_cookieName","_csrfToken","cookieName","cookie","indexOf","cookieRegex","RegExp","match","split","method","data","resolve","reject","xhr","headers","X-CSRFToken","dataType","jqXHR","responseJSON","statusText","ajax","request",40,"Auth","local","_local","syncSession","watchState","getState","set","watch",41,"Captcha","ReCaptcha","ReCaptchaComponent","QACaptcha","NoCaptcha","BaseCaptcha","include","_BaseCaptcha","_BaseCaptcha2","question","help_text","kwargs","_this4","grecaptcha","render","sitekey","siteKey","response","binding","_BaseCaptcha3","wait","setTimeout","recaptcha_site_key","captcha_type","../components/form-group",42,"Include","staticUrl","_staticUrl","_included","script","remote","cache",43,"storage","localStorage","LocalStorage","prefix","_prefix","_watchers","addEventListener","newValueJson","JSON","parse","newValue","watcher","oldValue","setItem","stringify","itemString","getItem",44,"MobileNavbarDropdown","_element","_component","addClass","removeClass",45,"Modal","_reactDom","_reactDom2","modal","on","unmountComponentAtNode","react-dom",46,"HIDE_ANIMATION_LENGTH","MESSAGE_SHOW_LENGTH","_timeout","clearTimeout","alert",47,"StoreWrapper","_redux","_reducers","_initialState","reducer","createStore","combineReducers","redux",48,"Zxcvbn","zxcvbn","_loadingPromise","_loadedPromise",49,"changeState","Provider","getStore","RedrawedBannedPage","forumName","forum_name","history","pushState","../components/banned-page",50,"mount","rootElementId","connected","rootElement",51,"OrderedList","items","isOrdered","_items","order","values","values_only","_order","unordered","insertItem","insertAt","ordering","ordered","splice","index","iterations",52,"EMAIL","test","minLength","limitValue","returnMessage","ngettext","limit_value","show_value","maxLength","settings","username_length_min","username_length_max","USERNAME","password_length_min"],"mappings":"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","file":"misago.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = (function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: \"refresh\",\n    value: function refresh() {\n      window.location.reload();\n    }\n  }, {\n    key: \"getMessage\",\n    value: function getMessage() {\n      if (this.props.signedIn) {\n        return interpolate(gettext(\"You have signed in as %(username)s. Please refresh the page before continuing.\"), { username: this.props.signedIn.username }, true);\n      } else if (this.props.signedOut) {\n        return interpolate(gettext(\"%(username)s, you have been signed out. Please refresh the page before continuing.\"), { username: this.props.user.username }, true);\n      }\n    }\n  }, {\n    key: \"getClassName\",\n    value: function getClassName() {\n      if (this.props.signedIn || this.props.signedOut) {\n        return \"auth-message show\";\n      } else {\n        return \"auth-message\";\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          \"div\",\n          { className: \"container\" },\n          _react2.default.createElement(\n            \"p\",\n            { className: \"lead\" },\n            this.getMessage()\n          ),\n          _react2.default.createElement(\n            \"p\",\n            null,\n            _react2.default.createElement(\n              \"button\",\n              { type: \"button\", className: \"btn btn-default\",\n                onClick: this.refresh },\n              gettext(\"Reload page\")\n            ),\n            \" \",\n            _react2.default.createElement(\n              \"span\",\n              { className: \"hidden-xs hidden-sm text-muted\" },\n              gettext(\"or press F5 key.\")\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\nfunction select(state) {\n  return {\n    user: state.auth.user,\n    signedIn: state.auth.signedIn,\n    signedOut: state.auth.signedOut\n  };\n}\n\n},{\"react\":\"react\"}],2:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BASE_URL = $('base').attr('href') + 'user-avatar/';\n\nvar _class = (function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'getSrc',\n    value: function getSrc() {\n      var size = this.props.size || 100; // jshint ignore:line\n      var url = BASE_URL;\n\n      if (this.props.user && this.props.user.id) {\n        // just avatar hash, size and user id\n        url += this.props.user.avatar_hash + '/' + size + '/' + this.props.user.id + '.png';\n      } else {\n        // just append avatar size to file to produce no-avatar placeholder\n        url += size + '.png';\n      }\n\n      return url;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement('img', { src: this.getSrc(),\n        className: this.props.className || 'user-avatar',\n        title: gettext(\"User avatar\") });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],3:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = (function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'getReasonMessage',\n    value: function getReasonMessage() {\n      /* jshint ignore:start */\n      if (this.props.message.html) {\n        return _react2.default.createElement('div', { className: 'lead',\n          dangerouslySetInnerHTML: { __html: this.props.message.html } });\n      } else {\n        return _react2.default.createElement(\n          'p',\n          { className: 'lead' },\n          this.props.message.plain\n        );\n      }\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getExpirationMessage',\n    value: function getExpirationMessage() {\n      if (this.props.expires) {\n        if (this.props.expires.isAfter((0, _moment2.default)())) {\n          return interpolate(gettext(\"This ban expires %(expires_on)s.\"), { 'expires_on': this.props.expires.fromNow() }, true);\n        } else {\n          return gettext(\"This ban has expired.\");\n        }\n      } else {\n        return gettext(\"This ban is permanent.\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-error page-error-banned' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-panel' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'highlight_off'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              this.getReasonMessage(),\n              _react2.default.createElement(\n                'p',\n                { className: 'message-footnote' },\n                this.getExpirationMessage()\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"moment\":\"moment\",\"react\":\"react\"}],4:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _loader = require('./loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// jshint ignore:line\n\nvar Button = (function (_React$Component) {\n  _inherits(Button, _React$Component);\n\n  function Button() {\n    _classCallCheck(this, Button);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(Button).apply(this, arguments));\n  }\n\n  _createClass(Button, [{\n    key: 'render',\n    value: function render() {\n      var className = 'btn ' + this.props.className;\n      var disabled = this.props.disabled;\n\n      if (this.props.loading) {\n        className += ' btn-loading';\n        disabled = true;\n      }\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: this.props.onClick ? 'button' : 'submit',\n          className: className,\n          disabled: disabled,\n          onClick: this.props.onClick },\n        this.props.children,\n        this.props.loading ? _react2.default.createElement(_loader2.default, null) : null\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return Button;\n})(_react2.default.Component);\n\nexports.default = Button;\n\nButton.defaultProps = {\n  className: \"btn-default\",\n\n  type: \"submit\",\n\n  loading: false,\n  disabled: false,\n\n  onClick: null\n};\n\n},{\"./loader\":7,\"react\":\"react\"}],5:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = (function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'isValidated',\n    value: function isValidated() {\n      return typeof this.props.validation !== \"undefined\";\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      var className = 'form-group';\n      if (this.isValidated()) {\n        className += ' has-feedback';\n        if (this.props.validation === null) {\n          className += ' has-success';\n        } else {\n          className += ' has-error';\n        }\n      }\n      return className;\n    }\n  }, {\n    key: 'getFeedback',\n    value: function getFeedback() {\n      var _this2 = this;\n\n      if (this.props.validation) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'help-block errors' },\n          this.props.validation.map(function (error, i) {\n            return _react2.default.createElement(\n              'p',\n              { key: _this2.props.for + 'FeedbackItem' + i },\n              error\n            );\n          })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getFeedbackIcon',\n    value: function getFeedbackIcon() {\n      if (this.isValidated()) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { className: 'material-icon form-control-feedback',\n            'aria-hidden': 'true', key: this.props.for + 'FeedbackIcon' },\n          this.props.validation ? 'clear' : 'check'\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getFeedbackDescription',\n    value: function getFeedbackDescription() {\n      if (this.isValidated()) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { id: this.props.for + '_status', className: 'sr-only' },\n          this.props.validation ? gettext('(error)') : gettext('(success)')\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getHelpText',\n    value: function getHelpText() {\n      if (this.props.helpText) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'p',\n          { className: 'help-block' },\n          this.props.helpText\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'label',\n          { className: 'control-label ' + (this.props.labelClass || ''),\n            htmlFor: this.props.for || '' },\n          this.props.label,\n          ':'\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: this.props.controlClass || '' },\n          this.props.children,\n          this.getFeedbackIcon(),\n          this.getFeedbackDescription(),\n          this.getFeedback(),\n          this.getHelpText(),\n          this.props.extra || null\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],6:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _validators = require('../utils/validators');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar validateRequired = (0, _validators.required)();\n\nvar _class = (function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, _class);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.bindInput = function (name) {\n      return function (event) {\n        var newState = {};\n        newState[name] = event.target.value;\n\n        var formErrors = _this.state.errors || {};\n        formErrors[name] = _this.validateField(name, newState[name]);\n        newState.errors = formErrors;\n\n        _this.setState(newState);\n      };\n    }, _this.handleSubmit = function (event) {\n      // we don't reload page on submissions\n      event.preventDefault();\n      if (_this.state.isLoading) {\n        return;\n      }\n\n      if (_this.clean()) {\n        _this.setState({ 'isLoading': true });\n        var promise = _this.send();\n\n        if (promise) {\n          promise.then(function (success) {\n            _this.setState({ 'isLoading': false });\n            _this.handleSuccess(success);\n          }, function (rejection) {\n            _this.setState({ 'isLoading': false });\n            _this.handleError(rejection);\n          });\n        } else {\n          _this.setState({ 'isLoading': false });\n        }\n      }\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(_class, [{\n    key: 'validate',\n    value: function validate() {\n      var errors = {};\n\n      var validators = {\n        required: this.state.validators.required || this.state.validators,\n        optional: this.state.validators.optional || {}\n      };\n\n      var validatedFields = [];\n\n      // add required fields to validation\n      for (var name in validators.required) {\n        if (validators.required.hasOwnProperty(name) && validators.required[name]) {\n          validatedFields.push(name);\n        }\n      }\n\n      // add optional fields to validation\n      for (var name in validators.optional) {\n        if (validators.optional.hasOwnProperty(name) && validators.optional[name]) {\n          validatedFields.push(name);\n        }\n      }\n\n      // validate fields values\n      for (var i in validatedFields) {\n        var name = validatedFields[i];\n        var fieldErrors = this.validateField(name, this.state[name]);\n\n        if (fieldErrors === null) {\n          errors[name] = null;\n        } else if (fieldErrors) {\n          errors[name] = fieldErrors;\n        }\n      }\n\n      return errors;\n    }\n  }, {\n    key: 'isValid',\n    value: function isValid() {\n      var errors = this.validate();\n      for (var field in errors) {\n        if (errors.hasOwnProperty(field)) {\n          if (errors[field] !== null) {\n            return false;\n          }\n        }\n      }\n\n      return true;\n    }\n  }, {\n    key: 'validateField',\n    value: function validateField(name, value) {\n      var errors = [];\n\n      var validators = {\n        required: (this.state.validators.required || this.state.validators)[name],\n        optional: (this.state.validators.optional || {})[name]\n      };\n\n      var requiredError = validateRequired(value) || false;\n\n      if (validators.required) {\n        if (requiredError) {\n          errors = [requiredError];\n        } else {\n          for (var i in validators.required) {\n            var validationError = validators.required[i](value);\n            if (validationError) {\n              errors.push(validationError);\n            }\n          }\n        }\n\n        return errors.length ? errors : null;\n      } else if (requiredError === false && validators.optional) {\n        for (var i in validators.optional) {\n          var validationError = validators.optional[i](value);\n          if (validationError) {\n            errors.push(validationError);\n          }\n        }\n\n        return errors.length ? errors : null;\n      }\n\n      return false; // false === field wasn't validated\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'clean',\n    value: function clean() {\n      return true;\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return null;\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(success) {\n      return;\n    }\n  }, {\n    key: 'handleError',\n\n    /* jshint ignore:end */\n    value: function handleError(rejection) {\n      return;\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../utils/validators\":52,\"react\":\"react\"}],7:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = (function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: \"loader-compact\" },\n        _react2.default.createElement(\"div\", { className: \"loader-spinning-wheel\" })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],8:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.LABELS = exports.STYLES = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _zxcvbn = require('../services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar STYLES = exports.STYLES = ['progress-bar-danger', 'progress-bar-warning', 'progress-bar-warning', 'progress-bar-primary', 'progress-bar-success'];\n\nvar LABELS = exports.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.\")];\n\nvar _class = (function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this._score = 0;\n    _this._password = null;\n    _this._inputs = [];\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'getScore',\n    value: function getScore(password, inputs) {\n      var _this2 = this;\n\n      var cacheStale = false;\n\n      if (password.trim() !== this._password) {\n        cacheStale = true;\n      }\n\n      if (inputs.length !== this._inputs.length) {\n        cacheStale = true;\n      } else {\n        inputs.map(function (value, i) {\n          if (value.trim() !== _this2._inputs[i]) {\n            cacheStale = true;\n          }\n        });\n      }\n\n      if (cacheStale) {\n        this._score = _zxcvbn2.default.scorePassword(password, inputs);\n        this._password = password.trim();\n        this._inputs = inputs.map(function (value) {\n          return value.trim();\n        });\n      }\n\n      return this._score;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      var score = this.getScore(this.props.password, this.props.inputs);\n\n      return _react2.default.createElement(\n        'div',\n        { className: 'help-block password-strength' },\n        _react2.default.createElement(\n          'div',\n          { className: 'progress' },\n          _react2.default.createElement(\n            'div',\n            { className: \"progress-bar \" + STYLES[score],\n              style: { width: 20 + 20 * score + '%' },\n              role: 'progress-bar',\n              'aria-valuenow': score,\n              'aria-valuemin': '0',\n              'aria-valuemax': '4' },\n            _react2.default.createElement(\n              'span',\n              { className: 'sr-only' },\n              LABELS[score]\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'p',\n          { className: 'text-small' },\n          LABELS[score]\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../services/zxcvbn\":48,\"react\":\"react\"}],9:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _loader = require('./loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nvar _register = require('./register.js');\n\nvar _register2 = _interopRequireDefault(_register);\n\nvar _captcha = require('../services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _zxcvbn = require('../services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar _class = (function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.showRegisterModal = function () {\n      if (misago.get('SETTINGS').account_activation === 'closed') {\n        _snackbar2.default.info(gettext(\"New registrations are currently disabled.\"));\n      } else if (_this.state.isLoaded) {\n        _modal2.default.show(_register2.default);\n      } else {\n        _this.setState({\n          'isLoading': true\n        });\n\n        Promise.all([_captcha2.default.load(), _zxcvbn2.default.load()]).then(function () {\n          if (!_this.state.isLoaded) {\n            _this.setState({\n              'isLoading': false,\n              'isLoaded': false\n            });\n          }\n\n          _modal2.default.show(_register2.default);\n        });\n      }\n    };\n\n    _this.state = {\n      'isLoading': false,\n      'isLoaded': false\n    };\n    return _this;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'getClassName',\n\n    /* jshint ignore:end */\n\n    value: function getClassName() {\n      return this.props.className + (this.state.isLoading ? ' btn-loading' : '');\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showRegisterModal,\n          className: 'btn ' + this.getClassName(),\n          disabled: this.state.isLoaded },\n        gettext(\"Register\"),\n        this.state.isLoading ? _react2.default.createElement(_loader2.default, null) : null\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../services/captcha\":41,\"../services/modal\":45,\"../services/snackbar\":46,\"../services/zxcvbn\":48,\"./loader\":7,\"./register.js\":10,\"react\":\"react\"}],10:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.RegisterComplete = exports.RegisterForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('./form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _passwordStrength = require('./password-strength');\n\nvar _passwordStrength2 = _interopRequireDefault(_passwordStrength);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _auth = require('../services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _captcha = require('../services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar RegisterForm = exports.RegisterForm = (function (_Form) {\n  _inherits(RegisterForm, _Form);\n\n  function RegisterForm(props) {\n    _classCallCheck(this, RegisterForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RegisterForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'username': '',\n      'email': '',\n      'password': '',\n      'captcha': '',\n\n      'validators': {\n        'username': [validators.usernameContent(), validators.usernameMinLength(_index2.default.get('SETTINGS')), validators.usernameMaxLength(_index2.default.get('SETTINGS'))],\n        'email': [validators.email()],\n        'password': [validators.passwordMinLength(_index2.default.get('SETTINGS'))],\n        'captcha': _captcha2.default.validator()\n      },\n\n      'errors': {}\n    };\n    return _this;\n  }\n\n  _createClass(RegisterForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Form contains errors.\"));\n        this.setState({\n          'errors': this.validate()\n        });\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('USERS_API'), {\n        'username': this.state.username,\n        'email': this.state.email,\n        'password': this.state.password,\n        'captcha': this.state.captcha\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        this.setState({\n          'errors': Object.assign({}, this.state.errors, rejection)\n        });\n        _snackbar2.default.error(gettext(\"Form contains errors.\"));\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n        _modal2.default.hide();\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'getLegalFootNote',\n    value: function getLegalFootNote() {\n      if (_index2.default.get('TERMS_OF_SERVICE_URL')) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: _index2.default.get('TERMS_OF_SERVICE_URL'),\n            target: '_blank' },\n          gettext(\"By registering you agree to site's terms and conditions.\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-register', role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Register\")\n            )\n          ),\n          _react2.default.createElement(\n            'form',\n            { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n            _react2.default.createElement('input', { type: 'type', style: { display: 'none' } }),\n            _react2.default.createElement('input', { type: 'password', style: { display: 'none' } }),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-body' },\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Username\"), 'for': 'id_username',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.username },\n                _react2.default.createElement('input', { type: 'text', id: 'id_username', className: 'form-control',\n                  'aria-describedby': 'id_username_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('username'),\n                  value: this.state.username })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"E-mail\"), 'for': 'id_email',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.email },\n                _react2.default.createElement('input', { type: 'text', id: 'id_email', className: 'form-control',\n                  'aria-describedby': 'id_email_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('email'),\n                  value: this.state.email })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Password\"), 'for': 'id_password',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.password,\n                  extra: _react2.default.createElement(_passwordStrength2.default, { password: this.state.password,\n                    inputs: [this.state.username, this.state.email] }) },\n                _react2.default.createElement('input', { type: 'password', id: 'id_password', className: 'form-control',\n                  'aria-describedby': 'id_password_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('password'),\n                  value: this.state.password })\n              ),\n              _captcha2.default.component({\n                form: this,\n                labelClass: \"col-sm-4\",\n                controlClass: \"col-sm-8\"\n              })\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-footer' },\n              this.getLegalFootNote(),\n              _react2.default.createElement(\n                _button2.default,\n                { className: 'btn-primary', loading: this.state.isLoading },\n                gettext(\"Register account\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RegisterForm;\n})(_form2.default);\n\nvar RegisterComplete = exports.RegisterComplete = (function (_React$Component) {\n  _inherits(RegisterComplete, _React$Component);\n\n  function RegisterComplete() {\n    _classCallCheck(this, RegisterComplete);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(RegisterComplete).apply(this, arguments));\n  }\n\n  _createClass(RegisterComplete, [{\n    key: 'getLead',\n    value: function getLead() {\n      if (this.props.activation === 'user') {\n        return gettext(\"%(username)s, your account has been created but you need to activate it before you will be able to sign in.\");\n      } else if (this.props.activation === 'admin') {\n        return gettext(\"%(username)s, your account has been created but board administrator will have to activate it before you will be able to sign in.\");\n      }\n    }\n  }, {\n    key: 'getSubscript',\n    value: function getSubscript() {\n      if (this.props.activation === 'user') {\n        return gettext(\"We have sent an e-mail to %(email)s with link that you have to click to activate your account.\");\n      } else if (this.props.activation === 'admin') {\n        return gettext(\"We will send an e-mail to %(email)s when this takes place.\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-message modal-register',\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Registration complete\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-body' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'info_outline'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                interpolate(this.getLead(), { 'username': this.props.username }, true)\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                interpolate(this.getSubscript(), { 'email': this.props.email }, true)\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RegisterComplete;\n})(_react2.default.Component);\n\nvar _class = (function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this3 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this3.completeRegistration = function (apiResponse) {\n      if (apiResponse.activation === 'active') {\n        _modal2.default.hide();\n        _auth2.default.signIn(apiResponse);\n      } else {\n        _this3.setState({\n          'complete': apiResponse\n        });\n      }\n    };\n\n    _this3.state = {\n      'complete': false\n    };\n    return _this3;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.state.complete) {\n        return _react2.default.createElement(RegisterComplete, { activation: this.state.complete.activation,\n          username: this.state.complete.username,\n          email: this.state.complete.email });\n      } else {\n        return _react2.default.createElement(RegisterForm, { callback: this.completeRegistration });\n      }\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":16,\"../services/ajax\":39,\"../services/auth\":40,\"../services/captcha\":41,\"../services/modal\":45,\"../services/snackbar\":46,\"../utils/banned-page\":49,\"../utils/validators\":52,\"./button\":4,\"./form\":6,\"./form-group\":5,\"./password-strength\":8,\"react\":\"react\"}],11:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar _class = (function (_Form) {\n  _inherits(_class, _Form);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n      'showActivation': false,\n\n      'username': '',\n      'password': '',\n\n      'validators': {\n        'username': [],\n        'password': []\n      }\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'clean',\n    value: function clean() {\n      if (!this.isValid()) {\n        _snackbar2.default.error(gettext(\"Fill out both fields.\"));\n        return false;\n      } else {\n        return true;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('AUTH_API'), {\n        'username': this.state.username,\n        'password': this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess() {\n      var form = $('#hidden-login-form');\n\n      form.append('<input type=\"text\" name=\"username\" />');\n      form.append('<input type=\"password\" name=\"password\" />');\n\n      // fill out form with user credentials and submit it, this will tell\n      // Misago to redirect user back to right page, and will trigger browser's\n      // key ring feature\n      form.find('input[type=\"hidden\"]').val(_ajax2.default.getCsrfToken());\n      form.find('input[name=\"redirect_to\"]').val(window.location.pathname);\n      form.find('input[name=\"username\"]').val(this.state.username);\n      form.find('input[name=\"password\"]').val(this.state.password);\n      form.submit();\n\n      // keep form loading\n      this.setState({\n        'isLoading': true\n      });\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        if (rejection.code === 'inactive_admin') {\n          _snackbar2.default.info(rejection.detail);\n        } else if (rejection.code === 'inactive_user') {\n          _snackbar2.default.info(rejection.detail);\n          this.setState({\n            'showActivation': true\n          });\n        } else if (rejection.code === 'banned') {\n          (0, _bannedPage2.default)(rejection.detail);\n          _modal2.default.hide();\n        } else {\n          _snackbar2.default.error(rejection.detail);\n        }\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n        _modal2.default.hide();\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'getActivationButton',\n    value: function getActivationButton() {\n      if (this.state.showActivation) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: _index2.default.get('REQUEST_ACTIVATION_URL'),\n            className: 'btn btn-success btn-block' },\n          gettext(\"Activate account\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-sm modal-sign-in',\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Sign in\")\n            )\n          ),\n          _react2.default.createElement(\n            'form',\n            { onSubmit: this.handleSubmit },\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-body' },\n              _react2.default.createElement(\n                'div',\n                { className: 'form-group' },\n                _react2.default.createElement(\n                  'div',\n                  { className: 'control-input' },\n                  _react2.default.createElement('input', { id: 'id_username', className: 'form-control', type: 'text',\n                    disabled: this.state.isLoading,\n                    placeholder: gettext(\"Username or e-mail\"),\n                    onChange: this.bindInput('username'),\n                    value: this.state.username })\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'form-group' },\n                _react2.default.createElement(\n                  'div',\n                  { className: 'control-input' },\n                  _react2.default.createElement('input', { id: 'id_password', className: 'form-control', type: 'password',\n                    disabled: this.state.isLoading,\n                    placeholder: gettext(\"Password\"),\n                    onChange: this.bindInput('password'),\n                    value: this.state.password })\n                )\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-footer' },\n              this.getActivationButton(),\n              _react2.default.createElement(\n                _button2.default,\n                { className: 'btn-primary btn-block',\n                  loading: this.state.isLoading },\n                gettext(\"Sign in\")\n              ),\n              _react2.default.createElement(\n                'a',\n                { href: _index2.default.get('FORGOTTEN_PASSWORD_URL'),\n                  className: 'btn btn-default btn-block' },\n                gettext(\"Forgot password?\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_form2.default);\n\nexports.default = _class;\n\n},{\"../index\":16,\"../services/ajax\":39,\"../services/modal\":45,\"../services/snackbar\":46,\"../utils/banned-page\":49,\"./button\":4,\"./form\":6,\"react\":\"react\"}],12:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Snackbar = undefined;\nexports.select = select;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* jshint ignore:start */\nvar TYPES_CLASSES = {\n  'info': 'alert-info',\n  'success': 'alert-success',\n  'warning': 'alert-warning',\n  'error': 'alert-danger'\n};\n/* jshint ignore:end */\n\nvar Snackbar = exports.Snackbar = (function (_React$Component) {\n  _inherits(Snackbar, _React$Component);\n\n  function Snackbar() {\n    _classCallCheck(this, Snackbar);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(Snackbar).apply(this, arguments));\n  }\n\n  _createClass(Snackbar, [{\n    key: 'getSnackbarClass',\n    value: function getSnackbarClass() {\n      var snackbarClass = 'alerts-snackbar';\n      if (this.props.isVisible) {\n        snackbarClass += ' in';\n      } else {\n        snackbarClass += ' out';\n      }\n      return snackbarClass;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getSnackbarClass() },\n        _react2.default.createElement(\n          'p',\n          { className: 'alert ' + TYPES_CLASSES[this.props.type] },\n          this.props.message\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return Snackbar;\n})(_react2.default.Component);\n\nfunction select(state) {\n  return state.snackbar;\n}\n\n},{\"react\":\"react\"}],13:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactGuestNav = exports.GuestNav = exports.GuestMenu = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _registerButton = require('../register-button');\n\nvar _registerButton2 = _interopRequireDefault(_registerButton);\n\nvar _signIn = require('../sign-in.js');\n\nvar _signIn2 = _interopRequireDefault(_signIn);\n\nvar _mobileNavbarDropdown = require('../../services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nvar _modal = require('../../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar GuestMenu = exports.GuestMenu = (function (_React$Component) {\n  _inherits(GuestMenu, _React$Component);\n\n  function GuestMenu() {\n    _classCallCheck(this, GuestMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(GuestMenu).apply(this, arguments));\n  }\n\n  _createClass(GuestMenu, [{\n    key: 'showSignInModal',\n    value: function showSignInModal() {\n      _modal2.default.show(_signIn2.default);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu user-dropdown dropdown-menu-right',\n          role: 'menu' },\n        _react2.default.createElement(\n          'li',\n          { className: 'guest-preview' },\n          _react2.default.createElement(\n            'h4',\n            null,\n            gettext(\"You are browsing as guest.\")\n          ),\n          _react2.default.createElement(\n            'p',\n            null,\n            gettext('Sign in or register to start and participate in discussions.')\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-xs-6' },\n              _react2.default.createElement(\n                'button',\n                { type: 'button', className: 'btn btn-default btn-block',\n                  onClick: this.showSignInModal },\n                gettext(\"Sign in\")\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'col-xs-6' },\n              _react2.default.createElement(\n                _registerButton2.default,\n                { className: 'btn-primary btn-block' },\n                gettext(\"Register\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return GuestMenu;\n})(_react2.default.Component);\n\nvar GuestNav = exports.GuestNav = (function (_GuestMenu) {\n  _inherits(GuestNav, _GuestMenu);\n\n  function GuestNav() {\n    _classCallCheck(this, GuestNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(GuestNav).apply(this, arguments));\n  }\n\n  _createClass(GuestNav, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'nav nav-guest' },\n        _react2.default.createElement(\n          'button',\n          { type: 'button', className: 'btn navbar-btn btn-default',\n            onClick: this.showSignInModal },\n          gettext(\"Sign in\")\n        ),\n        _react2.default.createElement(\n          _registerButton2.default,\n          { className: 'navbar-btn btn-primary' },\n          gettext(\"Register\")\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return GuestNav;\n})(GuestMenu);\n\nvar CompactGuestNav = exports.CompactGuestNav = (function (_React$Component2) {\n  _inherits(CompactGuestNav, _React$Component2);\n\n  function CompactGuestNav() {\n    _classCallCheck(this, CompactGuestNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactGuestNav).apply(this, arguments));\n  }\n\n  _createClass(CompactGuestNav, [{\n    key: 'showGuestMenu',\n    value: function showGuestMenu() {\n      _mobileNavbarDropdown2.default.show(GuestMenu);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showGuestMenu },\n        _react2.default.createElement(_avatar2.default, { size: '64' })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return CompactGuestNav;\n})(_react2.default.Component);\n\n},{\"../../services/mobile-navbar-dropdown\":44,\"../../services/modal\":45,\"../avatar\":2,\"../register-button\":9,\"../sign-in.js\":11,\"react\":\"react\"}],14:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactUserMenu = exports.UserMenu = undefined;\nexports.select = select;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _guestNav = require('./guest-nav');\n\nvar _userNav = require('./user-nav');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n\n// jshint ignore:line\n\nvar UserMenu = exports.UserMenu = (function (_React$Component) {\n  _inherits(UserMenu, _React$Component);\n\n  function UserMenu() {\n    _classCallCheck(this, UserMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserMenu).apply(this, arguments));\n  }\n\n  _createClass(UserMenu, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.props.isAuthenticated) {\n        return _react2.default.createElement(_userNav.UserNav, { user: this.props.user });\n      } else {\n        return _react2.default.createElement(_guestNav.GuestNav, null);\n      }\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserMenu;\n})(_react2.default.Component);\n\nvar CompactUserMenu = exports.CompactUserMenu = (function (_React$Component2) {\n  _inherits(CompactUserMenu, _React$Component2);\n\n  function CompactUserMenu() {\n    _classCallCheck(this, CompactUserMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactUserMenu).apply(this, arguments));\n  }\n\n  _createClass(CompactUserMenu, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.props.isAuthenticated) {\n        return _react2.default.createElement(_userNav.CompactUserNav, { user: this.props.user });\n      } else {\n        return _react2.default.createElement(_guestNav.CompactGuestNav, null);\n      }\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return CompactUserMenu;\n})(_react2.default.Component);\n\nfunction select(state) {\n  return state.auth;\n}\n\n},{\"./guest-nav\":13,\"./user-nav\":15,\"react\":\"react\"}],15:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactUserNav = exports.UserNav = exports.UserMenu = undefined;\nexports.selectUserMenu = selectUserMenu;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = require('react-redux');\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _mobileNavbarDropdown = require('../../services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar UserMenu = exports.UserMenu = (function (_React$Component) {\n  _inherits(UserMenu, _React$Component);\n\n  function UserMenu() {\n    _classCallCheck(this, UserMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserMenu).apply(this, arguments));\n  }\n\n  _createClass(UserMenu, [{\n    key: 'logout',\n    value: function logout() {\n      var decision = confirm(gettext(\"Are you sure you want to sign out?\"));\n      if (decision) {\n        $('#hidden-logout-form').submit();\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu user-dropdown dropdown-menu-right',\n          role: 'menu' },\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown-header' },\n          _react2.default.createElement(\n            'strong',\n            null,\n            this.props.user.username\n          )\n        ),\n        _react2.default.createElement('li', { className: 'divider' }),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'a',\n            { href: this.props.user.absolute_url },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'account_circle'\n            ),\n            gettext(\"See your profile\")\n          )\n        ),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'a',\n            { href: _index2.default.get('USERCP_URL') },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'done_all'\n            ),\n            gettext(\"Change options\")\n          )\n        ),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn-link' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'face'\n            ),\n            gettext(\"Change avatar\")\n          )\n        ),\n        _react2.default.createElement('li', { className: 'divider' }),\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown-footer' },\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-default btn-block',\n              onClick: this.logout },\n            gettext(\"Log out\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserMenu;\n})(_react2.default.Component);\n\nvar UserNav = exports.UserNav = (function (_React$Component2) {\n  _inherits(UserNav, _React$Component2);\n\n  function UserNav() {\n    _classCallCheck(this, UserNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserNav).apply(this, arguments));\n  }\n\n  _createClass(UserNav, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'ul nav navbar-nav nav-user' },\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown' },\n          _react2.default.createElement(\n            'a',\n            { href: this.props.user.absolute_url, className: 'dropdown-toggle',\n              'data-toggle': 'dropdown', 'aria-haspopup': 'true', 'aria-expanded': 'false',\n              role: 'button' },\n            _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '64' })\n          ),\n          _react2.default.createElement(UserMenu, { user: this.props.user })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserNav;\n})(_react2.default.Component);\n\nfunction selectUserMenu(store) {\n  return { user: store.auth.user };\n}\n\nvar CompactUserNav = exports.CompactUserNav = (function (_React$Component3) {\n  _inherits(CompactUserNav, _React$Component3);\n\n  function CompactUserNav() {\n    _classCallCheck(this, CompactUserNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactUserNav).apply(this, arguments));\n  }\n\n  _createClass(CompactUserNav, [{\n    key: 'showUserMenu',\n    value: function showUserMenu() {\n      _mobileNavbarDropdown2.default.showConnected('user-menu', (0, _reactRedux.connect)(selectUserMenu)(UserMenu));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showUserMenu },\n        _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '64' })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return CompactUserNav;\n})(_react2.default.Component);\n\n},{\"../../index\":16,\"../../services/mobile-navbar-dropdown\":44,\"../avatar\":2,\"react\":\"react\",\"react-redux\":\"react-redux\"}],16:[function(require,module,exports){\n(function (global){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Misago = undefined;\n\nvar _orderedList = require('./utils/ordered-list');\n\nvar _orderedList2 = _interopRequireDefault(_orderedList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Misago = exports.Misago = (function () {\n  function Misago() {\n    _classCallCheck(this, Misago);\n\n    this._initializers = [];\n    this._context = {};\n  }\n\n  _createClass(Misago, [{\n    key: 'addInitializer',\n    value: function addInitializer(initializer) {\n      this._initializers.push({\n        key: initializer.name,\n\n        item: initializer.initializer,\n\n        after: initializer.after,\n        before: initializer.before\n      });\n    }\n  }, {\n    key: 'init',\n    value: function init(context) {\n      var _this = this;\n\n      this._context = context;\n\n      var initOrder = new _orderedList2.default(this._initializers).orderedValues();\n      initOrder.forEach(function (initializer) {\n        initializer(_this);\n      });\n    }\n\n    // context accessors\n\n  }, {\n    key: 'has',\n    value: function has(key) {\n      return this._context.hasOwnProperty(key);\n    }\n  }, {\n    key: 'get',\n    value: function get(key, fallback) {\n      if (this.has(key)) {\n        return this._context[key];\n      } else {\n        return fallback || undefined;\n      }\n    }\n  }]);\n\n  return Misago;\n})();\n\n// create  singleton\n\nvar misago = new Misago();\n\n// expose it globally\nglobal.misago = misago;\n\n// and export it for tests and stuff\nexports.default = misago;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"./utils/ordered-list\":51}],17:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _ajax2.default.init(_index2.default.get('CSRF_COOKIE_NAME'));\n}\n\n_index2.default.addInitializer({\n  name: 'ajax',\n  initializer: initializer\n});\n\n},{\"../index\":16,\"../services/ajax\":39}],18:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _reactRedux = require('react-redux');\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _authMessage = require('../components/auth-message');\n\nvar _authMessage2 = _interopRequireDefault(_authMessage);\n\nvar _mountComponent = require('../utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_authMessage.select)(_authMessage2.default), 'auth-message-mount');\n}\n\n_index2.default.addInitializer({\n  name: 'component:auth-message',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../components/auth-message\":1,\"../index\":16,\"../utils/mount-component\":50,\"react-redux\":\"react-redux\"}],19:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _auth = require('../reducers/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _store2.default.addReducer('auth', _auth2.default, Object.assign({\n    'isAuthenticated': context.get('isAuthenticated'),\n    'isAnonymous': !context.get('isAuthenticated'),\n\n    'user': context.get('user')\n  }, _auth.initialState));\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:auth',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../index\":16,\"../reducers/auth\":36,\"../services/store\":47}],20:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _auth = require('../services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _localStorage = require('../services/local-storage');\n\nvar _localStorage2 = _interopRequireDefault(_localStorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _auth2.default.init(_store2.default, _localStorage2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'auth',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../index\":16,\"../services/auth\":40,\"../services/local-storage\":43,\"../services/store\":47}],21:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  if (context.get('BAN_MESSAGE')) {\n    (0, _bannedPage2.default)(context.get('BAN_MESSAGE'), false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:baned-page',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../index\":16,\"../utils/banned-page\":49}],22:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _captcha = require('../services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _include = require('../services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _captcha2.default.init(context, _ajax2.default, _include2.default, _snackbar2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'captcha',\n  initializer: initializer\n});\n\n},{\"../index\":16,\"../services/ajax\":39,\"../services/captcha\":41,\"../services/include\":42,\"../services/snackbar\":46}],23:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _include = require('../services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _include2.default.init(context.get('STATIC_URL'));\n}\n\n_index2.default.addInitializer({\n  name: 'include',\n  initializer: initializer\n});\n\n},{\"../index\":16,\"../services/include\":42}],24:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _localStorage = require('../services/local-storage');\n\nvar _localStorage2 = _interopRequireDefault(_localStorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _localStorage2.default.init('misago_');\n}\n\n_index2.default.addInitializer({\n  name: 'local-storage',\n  initializer: initializer\n});\n\n},{\"../index\":16,\"../services/local-storage\":43}],25:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _mobileNavbarDropdown = require('../services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  var element = document.getElementById('mobile-navbar-dropdown-mount');\n  if (element) {\n    _mobileNavbarDropdown2.default.init(element);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'dropdown',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../index\":16,\"../services/mobile-navbar-dropdown\":44}],26:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  var element = document.getElementById('modal-mount');\n  if (element) {\n    _modal2.default.init(element);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'modal',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../index\":16,\"../services/modal\":45}],27:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _moment2.default.locale($('html').attr('lang'));\n}\n\n_index2.default.addInitializer({\n  name: 'moment',\n  initializer: initializer\n});\n\n},{\"../index\":16,\"moment\":\"moment\"}],28:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _reactRedux = require('react-redux');\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../components/snackbar');\n\nvar _mountComponent = require('../utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_snackbar.select)(_snackbar.Snackbar), 'snackbar-mount');\n}\n\n_index2.default.addInitializer({\n  name: 'component:snackbar',\n  initializer: initializer,\n  after: 'snackbar'\n});\n\n},{\"../components/snackbar\":12,\"../index\":16,\"../utils/mount-component\":50,\"react-redux\":\"react-redux\"}],29:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../reducers/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _store2.default.addReducer('snackbar', _snackbar2.default, _snackbar.initialState);\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:snackbar',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../index\":16,\"../reducers/snackbar\":37,\"../services/store\":47}],30:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _snackbar2.default.init(_store2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'snackbar',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../index\":16,\"../services/snackbar\":46,\"../services/store\":47}],31:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _store2.default.init();\n}\n\n_index2.default.addInitializer({\n  name: 'store',\n  initializer: initializer,\n  before: '_end'\n});\n\n},{\"../index\":16,\"../services/store\":47}],32:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _tick = require('../reducers/tick');\n\nvar _tick2 = _interopRequireDefault(_tick);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _store2.default.addReducer('tick', _tick2.default, _tick.initialState);\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:tick',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../index\":16,\"../reducers/tick\":38,\"../services/store\":47}],33:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _tick = require('../reducers/tick');\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar TICK_PERIOD = 50 * 1000; //do the tick every 50s\n\nfunction initializer() {\n  window.setInterval(function () {\n    _store2.default.dispatch((0, _tick.doTick)());\n  }, TICK_PERIOD);\n}\n\n_index2.default.addInitializer({\n  name: 'tick-start',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../index\":16,\"../reducers/tick\":38,\"../services/store\":47}],34:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _reactRedux = require('react-redux');\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _root = require('../components/user-menu/root');\n\nvar _mountComponent = require('../utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_root.select)(_root.UserMenu), 'user-menu-mount');\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_root.select)(_root.CompactUserMenu), 'user-menu-compact-mount');\n}\n\n_index2.default.addInitializer({\n  name: 'component:user-menu',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../components/user-menu/root\":14,\"../index\":16,\"../utils/mount-component\":50,\"react-redux\":\"react-redux\"}],35:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _include = require('../services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nvar _zxcvbn = require('../services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _zxcvbn2.default.init(_include2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'zxcvbn',\n  initializer: initializer\n});\n\n},{\"../index\":16,\"../services/include\":42,\"../services/zxcvbn\":48}],36:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.signIn = signIn;\nexports.signOut = signOut;\nexports.default = auth;\nvar initialState = exports.initialState = {\n  signedIn: false,\n  signedOut: false\n};\n\nvar SIGN_IN = exports.SIGN_IN = 'SIGN_IN';\nvar SIGN_OUT = exports.SIGN_OUT = 'SIGN_OUT';\n\nfunction signIn(user) {\n  return {\n    type: SIGN_IN,\n    user: user\n  };\n}\n\nfunction signOut() {\n  return {\n    type: SIGN_OUT\n  };\n}\n\nfunction auth() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  switch (action.type) {\n    case SIGN_IN:\n      return Object.assign({}, state, {\n        signedIn: action.user\n      });\n\n    case SIGN_OUT:\n      return Object.assign({}, state, {\n        isAuthenticated: false,\n        isAnonymous: true,\n        signedOut: true\n      });\n\n    default:\n      return state;\n  }\n}\n\n},{}],37:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.showSnackbar = showSnackbar;\nexports.hideSnackbar = hideSnackbar;\nexports.default = snackbar;\nvar initialState = exports.initialState = {\n  type: 'info',\n  message: '',\n  isVisible: false\n};\n\nvar SHOW_SNACKBAR = exports.SHOW_SNACKBAR = 'SHOW_SNACKBAR';\nvar HIDE_SNACKBAR = exports.HIDE_SNACKBAR = 'HIDE_SNACKBAR';\n\nfunction showSnackbar(message, type) {\n  return {\n    type: SHOW_SNACKBAR,\n    message: message,\n    messageType: type\n  };\n}\n\nfunction hideSnackbar() {\n  return {\n    type: HIDE_SNACKBAR\n  };\n}\n\nfunction snackbar() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  if (action.type === SHOW_SNACKBAR) {\n    return {\n      type: action.messageType,\n      message: action.message,\n      isVisible: true\n    };\n  } else if (action.type === HIDE_SNACKBAR) {\n    return Object.assign({}, state, {\n      isVisible: false\n    });\n  } else {\n    return state;\n  }\n}\n\n},{}],38:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.doTick = doTick;\nexports.default = tick;\nvar initialState = exports.initialState = {\n  tick: 0\n};\n\nvar TICK = exports.TICK = 'TICK';\n\nfunction doTick() {\n  return {\n    type: TICK\n  };\n}\n\nfunction tick() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  if (action.type === TICK) {\n    return Object.assign({}, state, {\n      tick: state.tick + 1\n    });\n  } else {\n    return state;\n  }\n}\n\n},{}],39:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Ajax = exports.Ajax = (function () {\n  function Ajax() {\n    _classCallCheck(this, Ajax);\n\n    this._cookieName = null;\n    this._csrfToken = null;\n  }\n\n  _createClass(Ajax, [{\n    key: 'init',\n    value: function init(cookieName) {\n      this._cookieName = cookieName;\n      this._csrfToken = this.getCsrfToken();\n    }\n  }, {\n    key: 'getCsrfToken',\n    value: function getCsrfToken() {\n      if (document.cookie.indexOf(this._cookieName) !== -1) {\n        var cookieRegex = new RegExp(this._cookieName + '\\=([^;]*)');\n        var cookie = document.cookie.match(cookieRegex)[0];\n        return cookie ? cookie.split('=')[1] : null;\n      } else {\n        return null;\n      }\n    }\n  }, {\n    key: 'request',\n    value: function request(method, url, data) {\n      var self = this;\n      return new Promise(function (resolve, reject) {\n        var xhr = {\n          url: url,\n          method: method,\n          headers: {\n            'X-CSRFToken': self._csrfToken\n          },\n\n          data: data || {},\n          dataType: 'json',\n\n          success: function success(data) {\n            resolve(data);\n          },\n\n          error: function error(jqXHR) {\n            var rejection = jqXHR.responseJSON || {};\n\n            rejection.status = jqXHR.status;\n            rejection.statusText = jqXHR.statusText;\n\n            reject(rejection);\n          }\n        };\n\n        $.ajax(xhr);\n      });\n    }\n  }, {\n    key: 'get',\n    value: function get(url) {\n      return this.request('GET', url);\n    }\n  }, {\n    key: 'post',\n    value: function post(url, data) {\n      return this.request('POST', url, data);\n    }\n  }, {\n    key: 'patch',\n    value: function patch(url, data) {\n      return this.request('PATCH', url, data);\n    }\n  }, {\n    key: 'put',\n    value: function put(url, data) {\n      return this.request('PUT', url, data);\n    }\n  }, {\n    key: 'delete',\n    value: function _delete(url) {\n      return this.request('DELETE', url);\n    }\n  }]);\n\n  return Ajax;\n})();\n\nexports.default = new Ajax();\n\n},{}],40:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Auth = undefined;\n\nvar _auth = require('../reducers/auth');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// jshint ignore:line\n\nvar Auth = exports.Auth = (function () {\n  function Auth() {\n    _classCallCheck(this, Auth);\n  }\n\n  _createClass(Auth, [{\n    key: 'init',\n    value: function init(store, local) {\n      this._store = store;\n      this._local = local;\n\n      // tell other tabs what auth state is because we are most current with it\n      this.syncSession();\n\n      // listen for other tabs to tell us that state changed\n      this.watchState();\n    }\n  }, {\n    key: 'syncSession',\n    value: function syncSession() {\n      var state = this._store.getState().auth;\n      if (state.isAuthenticated) {\n        this._local.set('auth', {\n          isAuthenticated: true,\n          username: state.user.username\n        });\n      } else {\n        this._local.set('auth', {\n          isAuthenticated: false\n        });\n      }\n    }\n  }, {\n    key: 'watchState',\n    value: function watchState() {\n      var _this = this;\n\n      this._local.watch('auth', function (newState) {\n        if (newState.isAuthenticated) {\n          _this._store.dispatch((0, _auth.signIn)({\n            username: newState.username\n          }));\n        } else {\n          _this._store.dispatch((0, _auth.signOut)());\n        }\n      });\n    }\n  }, {\n    key: 'signIn',\n    value: function signIn(user) {\n      this._store.dispatch((0, _auth.signIn)(user));\n      this._local.set('auth', {\n        isAuthenticated: true,\n        username: user.username\n      });\n    }\n  }, {\n    key: 'signOut',\n    value: function signOut() {\n      this._store.dispatch((0, _auth.signOut)());\n      this._local.set('auth', {\n        isAuthenticated: false\n      });\n    }\n  }]);\n\n  return Auth;\n})();\n\nexports.default = new Auth();\n\n},{\"../reducers/auth\":36}],41:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); /* global grecaptcha */\n// jshint ignore:line\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Captcha = exports.ReCaptcha = exports.ReCaptchaComponent = exports.QACaptcha = exports.NoCaptcha = exports.BaseCaptcha = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _formGroup = require('../components/form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// jshint ignore:line\n\nvar BaseCaptcha = exports.BaseCaptcha = (function () {\n  function BaseCaptcha() {\n    _classCallCheck(this, BaseCaptcha);\n  }\n\n  _createClass(BaseCaptcha, [{\n    key: 'init',\n    value: function init(context, ajax, include, snackbar) {\n      this._context = context;\n      this._ajax = ajax;\n      this._include = include;\n      this._snackbar = snackbar;\n    }\n  }]);\n\n  return BaseCaptcha;\n})();\n\nvar NoCaptcha = exports.NoCaptcha = (function (_BaseCaptcha) {\n  _inherits(NoCaptcha, _BaseCaptcha);\n\n  function NoCaptcha() {\n    _classCallCheck(this, NoCaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(NoCaptcha).apply(this, arguments));\n  }\n\n  _createClass(NoCaptcha, [{\n    key: 'load',\n    value: function load() {\n      return new Promise(function (resolve) {\n        // immediately resolve as we don't have anything to validate\n        resolve();\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return null;\n    }\n  }, {\n    key: 'component',\n    value: function component() {\n      return null;\n    }\n  }]);\n\n  return NoCaptcha;\n})(BaseCaptcha);\n\nvar QACaptcha = exports.QACaptcha = (function (_BaseCaptcha2) {\n  _inherits(QACaptcha, _BaseCaptcha2);\n\n  function QACaptcha() {\n    _classCallCheck(this, QACaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(QACaptcha).apply(this, arguments));\n  }\n\n  _createClass(QACaptcha, [{\n    key: 'load',\n    value: function load() {\n      var self = this;\n      return new Promise(function (resolve, reject) {\n        self._ajax.get(self._context.get('CAPTCHA_API_URL')).then(function (data) {\n          self.question = data.question;\n          self.helpText = data.help_text;\n          resolve();\n        }, function () {\n          self._snackbar.error(gettext(\"Failed to load CAPTCHA.\"));\n          reject();\n        });\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return [];\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return _react2.default.createElement(\n        _formGroup2.default,\n        { label: this.question, 'for': 'id_captcha',\n          labelClass: kwargs.labelClass || \"col-sm-4\",\n          controlClass: kwargs.controlClass || \"col-sm-8\",\n          validation: kwargs.form.state.errors.captcha,\n          helpText: this.helpText || null },\n        _react2.default.createElement('input', { type: 'text', id: 'id_captcha', className: 'form-control',\n          'aria-describedby': 'id_captcha_status',\n          disabled: kwargs.form.state.isLoading,\n          onChange: kwargs.form.bindInput('captcha'),\n          value: kwargs.form.state.captcha })\n      );\n    }\n    /* jshint ignore:end */\n\n  }]);\n\n  return QACaptcha;\n})(BaseCaptcha);\n\nvar ReCaptchaComponent = exports.ReCaptchaComponent = (function (_React$Component) {\n  _inherits(ReCaptchaComponent, _React$Component);\n\n  function ReCaptchaComponent() {\n    _classCallCheck(this, ReCaptchaComponent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ReCaptchaComponent).apply(this, arguments));\n  }\n\n  _createClass(ReCaptchaComponent, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this4 = this;\n\n      grecaptcha.render('recaptcha', {\n        'sitekey': this.props.siteKey,\n        'callback': function callback(response) {\n          // fire fakey event to binding\n          _this4.props.binding({\n            target: {\n              value: response\n            }\n          });\n        }\n      });\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement('div', { id: 'recaptcha' });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ReCaptchaComponent;\n})(_react2.default.Component);\n\nvar ReCaptcha = exports.ReCaptcha = (function (_BaseCaptcha3) {\n  _inherits(ReCaptcha, _BaseCaptcha3);\n\n  function ReCaptcha() {\n    _classCallCheck(this, ReCaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ReCaptcha).apply(this, arguments));\n  }\n\n  _createClass(ReCaptcha, [{\n    key: 'load',\n    value: function load() {\n      this._include.include('https://www.google.com/recaptcha/api.js', true);\n\n      return new Promise(function (resolve) {\n        var wait = function wait() {\n          if (typeof grecaptcha === \"undefined\") {\n            window.setTimeout(function () {\n              wait();\n            }, 200);\n          } else {\n            resolve();\n          }\n        };\n        wait();\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return [];\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return _react2.default.createElement(\n        _formGroup2.default,\n        { label: gettext(\"Captcha\"), 'for': 'id_captcha',\n          labelClass: kwargs.labelClass || \"col-sm-4\",\n          controlClass: kwargs.controlClass || \"col-sm-8\",\n          validation: kwargs.form.state.errors.captcha,\n          helpText: gettext(\"Please solve the quick test.\") },\n        _react2.default.createElement(ReCaptchaComponent, { siteKey: this._context.get('SETTINGS').recaptcha_site_key,\n          binding: kwargs.form.bindInput('captcha') })\n      );\n    }\n    /* jshint ignore:end */\n\n  }]);\n\n  return ReCaptcha;\n})(BaseCaptcha);\n\nvar Captcha = exports.Captcha = (function () {\n  function Captcha() {\n    _classCallCheck(this, Captcha);\n  }\n\n  _createClass(Captcha, [{\n    key: 'init',\n    value: function init(context, ajax, include, snackbar) {\n      switch (context.get('SETTINGS').captcha_type) {\n        case 'no':\n          this._captcha = new NoCaptcha();\n          break;\n\n        case 'qa':\n          this._captcha = new QACaptcha();\n          break;\n\n        case 're':\n          this._captcha = new ReCaptcha();\n          break;\n      }\n\n      this._captcha.init(context, ajax, include, snackbar);\n    }\n\n    // accessors for underlying strategy\n\n  }, {\n    key: 'load',\n    value: function load() {\n      return this._captcha.load();\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return this._captcha.validator();\n    }\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return this._captcha.component(kwargs);\n    }\n  }]);\n\n  return Captcha;\n})();\n\nexports.default = new Captcha();\n\n},{\"../components/form-group\":5,\"react\":\"react\"}],42:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Include = exports.Include = (function () {\n  function Include() {\n    _classCallCheck(this, Include);\n  }\n\n  _createClass(Include, [{\n    key: 'init',\n    value: function init(staticUrl) {\n      this._staticUrl = staticUrl;\n      this._included = [];\n    }\n  }, {\n    key: 'include',\n    value: function include(script) {\n      var remote = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\n\n      if (this._included.indexOf(script) === -1) {\n        this._included.push(script);\n        this._include(script, remote);\n      }\n    }\n  }, {\n    key: '_include',\n    value: function _include(script, remote) {\n      $.ajax({\n        url: (!remote ? this._staticUrl : '') + script,\n        cache: true,\n        dataType: 'script'\n      });\n    }\n  }]);\n\n  return Include;\n})();\n\nexports.default = new Include();\n\n},{}],43:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar storage = window.localStorage;\n\nvar LocalStorage = exports.LocalStorage = (function () {\n  function LocalStorage() {\n    _classCallCheck(this, LocalStorage);\n  }\n\n  _createClass(LocalStorage, [{\n    key: 'init',\n    value: function init(prefix) {\n      var _this = this;\n\n      this._prefix = prefix;\n      this._watchers = [];\n\n      window.addEventListener('storage', function (e) {\n        var newValueJson = JSON.parse(e.newValue);\n        _this._watchers.forEach(function (watcher) {\n          if (watcher.key === e.key && e.oldValue !== e.newValue) {\n            watcher.callback(newValueJson);\n          }\n        });\n      });\n    }\n  }, {\n    key: 'set',\n    value: function set(key, value) {\n      storage.setItem(this._prefix + key, JSON.stringify(value));\n    }\n  }, {\n    key: 'get',\n    value: function get(key) {\n      var itemString = storage.getItem(this._prefix + key);\n      if (itemString) {\n        return JSON.parse(itemString);\n      } else {\n        return null;\n      }\n    }\n  }, {\n    key: 'watch',\n    value: function watch(key, callback) {\n      this._watchers.push({\n        key: this._prefix + key,\n        callback: callback\n      });\n    }\n  }]);\n\n  return LocalStorage;\n})();\n\nexports.default = new LocalStorage();\n\n},{}],44:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.MobileNavbarDropdown = undefined;\n\nvar _mountComponent = require('../utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar MobileNavbarDropdown = exports.MobileNavbarDropdown = (function () {\n  function MobileNavbarDropdown() {\n    _classCallCheck(this, MobileNavbarDropdown);\n  }\n\n  _createClass(MobileNavbarDropdown, [{\n    key: 'init',\n    value: function init(element) {\n      this._element = element;\n      this._component = null;\n    }\n  }, {\n    key: 'show',\n    value: function show(component) {\n      if (this._component === component) {\n        this.hide();\n      } else {\n        this._component = component;\n        (0, _mountComponent2.default)(component, this._element.id);\n        $(this._element).addClass('open');\n      }\n    }\n  }, {\n    key: 'showConnected',\n    value: function showConnected(name, component) {\n      if (this._component === name) {\n        this.hide();\n      } else {\n        this._component = name;\n        (0, _mountComponent2.default)(component, this._element.id, true);\n        $(this._element).addClass('open');\n      }\n    }\n  }, {\n    key: 'hide',\n    value: function hide() {\n      $(this._element).removeClass('open');\n      this._component = null;\n    }\n  }]);\n\n  return MobileNavbarDropdown;\n})();\n\nexports.default = new MobileNavbarDropdown();\n\n},{\"../utils/mount-component\":50}],45:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Modal = undefined;\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _mountComponent = require('../utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Modal = exports.Modal = (function () {\n  function Modal() {\n    _classCallCheck(this, Modal);\n  }\n\n  _createClass(Modal, [{\n    key: 'init',\n    value: function init(element) {\n      var _this = this;\n\n      this._element = element;\n\n      this._modal = $(element).modal({ show: false });\n\n      this._modal.on('hidden.bs.modal', function () {\n        _reactDom2.default.unmountComponentAtNode(_this._element);\n      });\n    }\n  }, {\n    key: 'show',\n    value: function show(component) {\n      (0, _mountComponent2.default)(component, this._element.id);\n      this._modal.modal('show');\n    }\n  }, {\n    key: 'hide',\n    value: function hide() {\n      this._modal.modal('hide');\n    }\n  }]);\n\n  return Modal;\n})();\n\nexports.default = new Modal();\n\n},{\"../utils/mount-component\":50,\"react-dom\":\"react-dom\"}],46:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Snackbar = undefined;\n\nvar _snackbar = require('../reducers/snackbar');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar HIDE_ANIMATION_LENGTH = 300;\nvar MESSAGE_SHOW_LENGTH = 5000;\n\nvar Snackbar = exports.Snackbar = (function () {\n  function Snackbar() {\n    _classCallCheck(this, Snackbar);\n  }\n\n  _createClass(Snackbar, [{\n    key: 'init',\n    value: function init(store) {\n      this._store = store;\n      this._timeout = null;\n    }\n  }, {\n    key: 'alert',\n    value: function alert(message, type) {\n      var _this = this;\n\n      if (this._timeout) {\n        window.clearTimeout(this._timeout);\n        this._store.dispatch((0, _snackbar.hideSnackbar)());\n\n        this._timeout = window.setTimeout(function () {\n          _this._timeout = null;\n          _this.alert(message, type);\n        }, HIDE_ANIMATION_LENGTH);\n      } else {\n        this._store.dispatch((0, _snackbar.showSnackbar)(message, type));\n        this._timeout = window.setTimeout(function () {\n          _this._store.dispatch((0, _snackbar.hideSnackbar)());\n          _this._timeout = null;\n        }, MESSAGE_SHOW_LENGTH);\n      }\n    }\n\n    // shorthands for message types\n\n  }, {\n    key: 'info',\n    value: function info(message) {\n      this.alert(message, 'info');\n    }\n  }, {\n    key: 'success',\n    value: function success(message) {\n      this.alert(message, 'success');\n    }\n  }, {\n    key: 'warning',\n    value: function warning(message) {\n      this.alert(message, 'warning');\n    }\n  }, {\n    key: 'error',\n    value: function error(message) {\n      this.alert(message, 'error');\n    }\n\n    // shorthand for api errors\n\n  }, {\n    key: 'apiError',\n    value: function apiError(rejection) {\n      var message = gettext(\"Unknown error has occured.\");\n\n      if (rejection.status === 0) {\n        message = gettext(\"Lost connection with application.\");\n      }\n\n      if (rejection.status === 400 && rejection.detail) {\n        message = rejection.detail;\n      }\n\n      if (rejection.status === 403) {\n        message = rejection.detail;\n        if (message === \"Permission denied\") {\n          message = gettext(\"You don't have permission to perform this action.\");\n        }\n      }\n\n      if (rejection.status === 404) {\n        message = gettext(\"Action link is invalid.\");\n      }\n\n      this.error(message);\n    }\n  }]);\n\n  return Snackbar;\n})();\n\nexports.default = new Snackbar();\n\n},{\"../reducers/snackbar\":37}],47:[function(require,module,exports){\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.StoreWrapper = undefined;\n\nvar _redux = require('redux');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar StoreWrapper = exports.StoreWrapper = (function () {\n  function StoreWrapper() {\n    _classCallCheck(this, StoreWrapper);\n\n    this._store = null;\n    this._reducers = {};\n    this._initialState = {};\n  }\n\n  _createClass(StoreWrapper, [{\n    key: 'addReducer',\n    value: function addReducer(name, reducer, initialState) {\n      this._reducers[name] = reducer;\n      this._initialState[name] = initialState;\n    }\n  }, {\n    key: 'init',\n    value: function init() {\n      this._store = (0, _redux.createStore)((0, _redux.combineReducers)(this._reducers), this._initialState);\n    }\n  }, {\n    key: 'getStore',\n    value: function getStore() {\n      return this._store;\n    }\n\n    // Store API\n\n  }, {\n    key: 'getState',\n    value: function getState() {\n      return this._store.getState();\n    }\n  }, {\n    key: 'dispatch',\n    value: function dispatch(action) {\n      return this._store.dispatch(action);\n    }\n  }]);\n\n  return StoreWrapper;\n})();\n\nexports.default = new StoreWrapper();\n\n},{\"redux\":\"redux\"}],48:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/* global zxcvbn */\n\nvar Zxcvbn = exports.Zxcvbn = (function () {\n  function Zxcvbn() {\n    _classCallCheck(this, Zxcvbn);\n  }\n\n  _createClass(Zxcvbn, [{\n    key: \"init\",\n    value: function init(include) {\n      this._include = include;\n    }\n  }, {\n    key: \"scorePassword\",\n    value: function scorePassword(password, inputs) {\n      // 0-4 score, the more the stronger password\n      return zxcvbn(password, inputs).score;\n    }\n  }, {\n    key: \"load\",\n    value: function load() {\n      if (typeof zxcvbn === \"undefined\") {\n        this._include.include('misago/js/zxcvbn.js');\n        return this._loadingPromise();\n      } else {\n        return this._loadedPromise();\n      }\n    }\n  }, {\n    key: \"_loadingPromise\",\n    value: function _loadingPromise() {\n      return new Promise(function (resolve) {\n        var wait = function wait() {\n          if (typeof zxcvbn === \"undefined\") {\n            window.setTimeout(function () {\n              wait();\n            }, 200);\n          } else {\n            resolve();\n          }\n        };\n        wait();\n      });\n    }\n  }, {\n    key: \"_loadedPromise\",\n    value: function _loadedPromise() {\n      // we have already loaded zxcvbn.js, resolve away!\n      return new Promise(function (resolve) {\n        resolve();\n      });\n    }\n  }]);\n\n  return Zxcvbn;\n})();\n\nexports.default = new Zxcvbn();\n\n},{}],49:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (ban, changeState) {\n  _reactDom2.default.unmountComponentAtNode(document.getElementById('page-mount'));\n\n  _reactDom2.default.render(\n  /* jshint ignore:start */\n  _react2.default.createElement(\n    _reactRedux.Provider,\n    { store: _store2.default.getStore() },\n    _react2.default.createElement(RedrawedBannedPage, { message: ban.message,\n      expires: ban.expires_on ? (0, _moment2.default)(ban.expires_on) : null })\n  ),\n  /* jshint ignore:end */\n  document.getElementById('page-mount'));\n\n  if (typeof changeState === 'undefined' || changeState) {\n    var forumName = _index2.default.get('SETTINGS').forum_name;\n    document.title = gettext(\"You are banned\") + ' | ' + forumName;\n    window.history.pushState({}, \"\", _index2.default.get('BANNED_URL'));\n  }\n};\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = require('react-redux');\n\nvar _bannedPage = require('../components/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// jshint ignore:line\n\n/* jshint ignore:start */\n// jshint ignore:line\n// jshint ignore:line\nvar select = function select(state) {\n  return state.tick;\n}; // jshint ignore:line\n// jshint ignore:line\n\nvar RedrawedBannedPage = (0, _reactRedux.connect)(select)(_bannedPage2.default);\n/* jshint ignore:end */\n\n},{\"../components/banned-page\":3,\"../index\":16,\"../services/store\":47,\"moment\":\"moment\",\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],50:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = mount;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = require('react-redux');\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// jshint ignore:line\n\nfunction mount(Component, rootElementId) {\n  var connected = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];\n\n  var rootElement = document.getElementById(rootElementId);\n\n  if (rootElement) {\n    if (connected) {\n      _reactDom2.default.render(\n      /* jshint ignore:start */\n      _react2.default.createElement(\n        _reactRedux.Provider,\n        { store: _store2.default.getStore() },\n        _react2.default.createElement(Component, null)\n      ),\n      /* jshint ignore:end */\n      rootElement);\n    } else {\n      _reactDom2.default.render(\n      /* jshint ignore:start */\n      _react2.default.createElement(Component, null),\n      /* jshint ignore:end */\n      rootElement);\n    }\n  }\n} // jshint ignore:line\n// jshint ignore:line\n\n},{\"../services/store\":47,\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],51:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar OrderedList = (function () {\n  function OrderedList(items) {\n    _classCallCheck(this, OrderedList);\n\n    this.isOrdered = false;\n    this._items = items || [];\n  }\n\n  _createClass(OrderedList, [{\n    key: \"add\",\n    value: function add(key, item, order) {\n      this._items.push({\n        key: key,\n        item: item,\n\n        after: order ? order.after || null : null,\n        before: order ? order.before || null : null\n      });\n    }\n  }, {\n    key: \"get\",\n    value: function get(key, value) {\n      for (var i = 0; i < this._items.length; i++) {\n        if (this._items[i].key === key) {\n          return this._items[i].item;\n        }\n      }\n\n      return value;\n    }\n  }, {\n    key: \"has\",\n    value: function has(key) {\n      return this.get(key) !== undefined;\n    }\n  }, {\n    key: \"values\",\n    value: function values() {\n      var values = [];\n      for (var i = 0; i < this._items.length; i++) {\n        values.push(this._items[i].item);\n      }\n      return values;\n    }\n  }, {\n    key: \"order\",\n    value: function order(values_only) {\n      if (!this.isOrdered) {\n        this._items = this._order(this._items);\n        this.isOrdered = true;\n      }\n\n      if (values_only || typeof values_only === 'undefined') {\n        return this.values();\n      } else {\n        return this._items;\n      }\n    }\n  }, {\n    key: \"orderedValues\",\n    value: function orderedValues() {\n      return this.order(true);\n    }\n  }, {\n    key: \"_order\",\n    value: function _order(unordered) {\n      // Index of unordered items\n      var index = [];\n      unordered.forEach(function (item) {\n        index.push(item.key);\n      });\n\n      // Ordered items\n      var ordered = [];\n      var ordering = [];\n\n      // First pass: register items that\n      // don't specify their order\n      unordered.forEach(function (item) {\n        if (!item.after && !item.before) {\n          ordered.push(item);\n          ordering.push(item.key);\n        }\n      });\n\n      // Second pass: register items that\n      // specify their before to \"_end\"\n      unordered.forEach(function (item) {\n        if (item.before === \"_end\") {\n          ordered.push(item);\n          ordering.push(item.key);\n        }\n      });\n\n      // Third pass: keep iterating items\n      // until we hit iterations limit or finish\n      // ordering list\n      function insertItem(item) {\n        var insertAt = -1;\n        if (ordering.indexOf(item.key) === -1) {\n          if (item.after) {\n            insertAt = ordering.indexOf(item.after);\n            if (insertAt !== -1) {\n              insertAt += 1;\n            }\n          } else if (item.before) {\n            insertAt = ordering.indexOf(item.before);\n          }\n\n          if (insertAt !== -1) {\n            ordered.splice(insertAt, 0, item);\n            ordering.splice(insertAt, 0, item.key);\n          }\n        }\n      }\n\n      var iterations = 200;\n      while (iterations > 0 && index.length !== ordering.length) {\n        iterations -= 1;\n        unordered.forEach(insertItem);\n      }\n\n      return ordered;\n    }\n  }]);\n\n  return OrderedList;\n})();\n\nexports.default = OrderedList;\n\n},{}],52:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.required = required;\nexports.email = email;\nexports.minLength = minLength;\nexports.maxLength = maxLength;\nexports.usernameMinLength = usernameMinLength;\nexports.usernameMaxLength = usernameMaxLength;\nexports.usernameContent = usernameContent;\nexports.passwordMinLength = passwordMinLength;\nvar EMAIL = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\nvar USERNAME = new RegExp('^[0-9a-z]+$', 'i');\n\nfunction required() {\n  return function (value) {\n    if ($.trim(value).length === 0) {\n      return gettext(\"This field is required.\");\n    }\n  };\n}\n\nfunction email(message) {\n  return function (value) {\n    if (!EMAIL.test(value)) {\n      return message || gettext(\"Enter a valid email address.\");\n    }\n  };\n}\n\nfunction minLength(limitValue, message) {\n  return function (value) {\n    var returnMessage = '';\n    var length = $.trim(value).length;\n\n    if (length < limitValue) {\n      if (message) {\n        returnMessage = message(limitValue, length);\n      } else {\n        returnMessage = ngettext(\"Ensure this value has at least %(limit_value)s character (it has %(show_value)s).\", \"Ensure this value has at least %(limit_value)s characters (it has %(show_value)s).\", limitValue);\n      }\n      return interpolate(returnMessage, {\n        limit_value: limitValue,\n        show_value: length\n      }, true);\n    }\n  };\n}\n\nfunction maxLength(limitValue, message) {\n  return function (value) {\n    var returnMessage = '';\n    var length = $.trim(value).length;\n\n    if (length > limitValue) {\n      if (message) {\n        returnMessage = message(limitValue, length);\n      } else {\n        returnMessage = ngettext(\"Ensure this value has at most %(limit_value)s character (it has %(show_value)s).\", \"Ensure this value has at most %(limit_value)s characters (it has %(show_value)s).\", limitValue);\n      }\n      return interpolate(returnMessage, {\n        limit_value: limitValue,\n        show_value: length\n      }, true);\n    }\n  };\n}\n\nfunction usernameMinLength(settings) {\n  var message = function message(limitValue) {\n    return ngettext(\"Username must be at least %(limit_value)s character long.\", \"Username must be at least %(limit_value)s characters long.\", limitValue);\n  };\n  return this.minLength(settings.username_length_min, message);\n}\n\nfunction usernameMaxLength(settings) {\n  var message = function message(limitValue) {\n    return ngettext(\"Username cannot be longer than %(limit_value)s character.\", \"Username cannot be longer than %(limit_value)s characters.\", limitValue);\n  };\n  return this.maxLength(settings.username_length_max, message);\n}\n\nfunction usernameContent() {\n  return function (value) {\n    if (!USERNAME.test($.trim(value))) {\n      return gettext(\"Username can only contain latin alphabet letters and digits.\");\n    }\n  };\n}\n\nfunction passwordMinLength(settings) {\n  var message = function message(limitValue) {\n    return ngettext(\"Valid password must be at least %(limit_value)s character long.\", \"Valid password must be at least %(limit_value)s characters long.\", limitValue);\n  };\n  return this.minLength(settings.password_length_min, message);\n}\n\n},{}]},{},[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]);\n"],"sourceRoot":"/source/"}

+ 9 - 1
misago/templates/misago/errorpages/banned.html

@@ -28,7 +28,15 @@
         </p>
         {% endif %}
 
-        <div id="page-component" data-component-name="ban-expiration-message"></div>
+        <p className="message-footnote">
+        {% if ban.expires_on %}
+          {% blocktrans trimmed with expires_on=ban.expires_on|date:"DATETIME_FORMAT" %}
+            This ban expires {{ expires_on }}.
+          {% endblocktrans %}
+        {% else %}
+          {% trans "This ban is permanent." %}
+        {% endif %}
+        </p>
       </div>
 
     </div>

+ 0 - 3
misago/users/api/users.py

@@ -66,9 +66,6 @@ class UserViewSet(viewsets.GenericViewSet):
         return users_count
 
     def list(self, request):
-        import time
-        time.sleep(10)
-
         allow_browse_users_list(request.user)
 
         response_dict = {

+ 24 - 0
misago/users/tests/-test_options_views.py

@@ -0,0 +1,24 @@
+from django.core.urlresolvers import reverse
+from misago.users.testutils import AuthenticatedUserTestCase
+
+
+class OptionsViewsTests(AuthenticatedUserTestCase):
+    def test_lander_view_returns_200(self):
+        """/options has no show stoppers"""
+        response = self.client.get(reverse('misago:options'))
+        self.assertEqual(response.status_code, 302)
+
+    def test_form_view_returns_200(self):
+        """/options/some-form has no show stoppers"""
+        response = self.client.get(reverse('misago:options_form', kwargs={
+            'form_name': 'some-fake-form'
+        }))
+        self.assertEqual(response.status_code, 200)
+
+    def test_token_form_view_returns_200(self):
+        """/options/some-form has no show stoppers"""
+        response = self.client.get(reverse('misago:options_form', kwargs={
+            'form_name': 'some-fake-form',
+            'token': 's0m3-t0k3n'
+        }))
+        self.assertEqual(response.status_code, 200)

+ 9 - 0
misago/users/tests/test_bans.py

@@ -127,6 +127,15 @@ class UserBansTests(TestCase):
         self.assertIsNone(get_user_ban(self.user))
         self.assertFalse(self.user.ban_cache.is_banned)
 
+    def test_expired_non_flagged_ban(self):
+        """user is not caught by expired but checked ban"""
+        Ban.objects.create(banned_value='bo*',
+                           expires_on=timezone.now() - timedelta(days=7))
+        Ban.objects.update(is_checked=True)
+
+        self.assertIsNone(get_user_ban(self.user))
+        self.assertFalse(self.user.ban_cache.is_banned)
+
 
 class FakeRequest(object):
     def __init__(self):