Browse Source

complete auth flow in React.js

Rafał Pitoń 9 years ago
parent
commit
15092796f0

+ 2 - 5
frontend/src/components/request-activation-link.js

@@ -44,9 +44,7 @@ export class RequestLinkForm extends Form {
   }
 
   handleError(rejection) {
-    if (rejection.code === 'already_active') {
-      snackbar.info(rejection.detail);
-    } else if (rejection.code === 'inactive_admin') {
+    if (['already_active', 'inactive_admin'].indexOf(rejection.code) > -1) {
       snackbar.info(rejection.detail);
     } else if (rejection.status === 403 && rejection.ban) {
       showBannedPage(rejection.ban);
@@ -111,7 +109,6 @@ export class LinkSent extends React.Component {
     </div>;
     /* jshint ignore:end */
   }
-
 }
 
 export default class extends React.Component {
@@ -142,7 +139,7 @@ export default class extends React.Component {
     if (this.state.complete) {
       return <LinkSent user={this.state.complete} callback={this.reset} />;
     } else {
-      return <RequestLinkForm callback={this.complete}/>;
+      return <RequestLinkForm callback={this.complete} />;
     };
     /* jshint ignore:end */
   }

+ 200 - 0
frontend/src/components/request-password-reset.js

@@ -0,0 +1,200 @@
+import React from 'react'; // jshint ignore:line
+import ReactDOM from 'react-dom'; // jshint ignore:line
+import misago from 'misago/index';
+import Button from 'misago/components/button'; // jshint ignore:line
+import Form from 'misago/components/form';
+import ajax from 'misago/services/ajax';
+import snackbar from 'misago/services/snackbar';
+import * as validators from 'misago/utils/validators';
+import showBannedPage from 'misago/utils/banned-page';
+
+export class RequestResetForm extends Form {
+  constructor(props) {
+    super(props);
+
+    this.state = {
+      'isLoading': false,
+
+      'email': '',
+
+      'validators': {
+        'email': [
+          validators.email()
+        ]
+      }
+    };
+  }
+
+  clean() {
+    if (this.isValid()) {
+      return true;
+    } else {
+      snackbar.error(gettext("Enter a valid email address."));
+      return false;
+    }
+  }
+
+  send() {
+    return ajax.post(misago.get('SEND_PASSWORD_RESET_API'), {
+      'email': this.state.email
+    });
+  }
+
+  handleSuccess(apiResponse) {
+    this.props.callback(apiResponse);
+  }
+
+  handleError(rejection) {
+    if (['inactive_user', 'inactive_admin'].indexOf(rejection.code) > -1) {
+      this.props.showInactivePage(rejection);
+    } else if (rejection.status === 403 && rejection.ban) {
+      showBannedPage(rejection.ban);
+    } else {
+      snackbar.apiError(rejection);
+    }
+  }
+
+  render() {
+    /* jshint ignore:start */
+    return <div className="well well-form well-form-request-password-reset">
+      <form onSubmit={this.handleSubmit}>
+        <div className="form-group">
+          <div className="control-input">
+
+            <input type="text" className="form-control"
+                   placeholder={gettext("Your e-mail address")}
+                   disabled={this.state.isLoading}
+                   onChange={this.bindInput('email')}
+                   value={this.state.email} />
+
+          </div>
+        </div>
+
+        <Button className="btn-primary btn-block"
+                loading={this.state.isLoading}>
+          {gettext("Send link")}
+        </Button>
+
+      </form>
+    </div>;
+    /* jshint ignore:end */
+  }
+}
+
+export class LinkSent extends React.Component {
+  getMessage() {
+    return interpolate(gettext("Reset password link was sent to %(email)s"), {
+      email: this.props.user.email
+    }, true);
+  }
+
+  render() {
+    /* jshint ignore:start */
+    return <div className="well well-form well-form-request-password-reset well-done">
+      <div className="done-message">
+        <div className="message-icon">
+          <span className="material-icon">
+            check
+          </span>
+        </div>
+        <div className="message-body">
+          <p>
+            {this.getMessage()}
+          </p>
+        </div>
+        <button type="button" className="btn btn-primary btn-block"
+                onClick={this.props.callback}>
+          {gettext("Request another link")}
+        </button>
+      </div>
+    </div>;
+    /* jshint ignore:end */
+  }
+}
+
+export class AccountInactivePage extends React.Component {
+  getActivateButton() {
+    if (this.props.activation === 'inactive_user') {
+      /* jshint ignore:start */
+      return <p>
+        <a href={misago.get('REQUEST_ACTIVATION_URL')}>
+          {gettext("Activate your account.")}
+        </a>
+      </p>;
+      /* jshint ignore:end */
+    } else {
+      return null;
+    }
+  }
+
+  render() {
+    /* jshint ignore:start */
+    return <div className="page page-message page-message-info page-forgotten-password-inactive">
+      <div className="container">
+        <div className="message-panel">
+
+          <div className="message-icon">
+            <span className="material-icon">
+              info_outline
+            </span>
+          </div>
+
+          <div className="message-body">
+            <p className="lead">
+              {gettext("Your account is inactive.")}
+            </p>
+            <p>
+              {this.props.message}
+            </p>
+            {this.getActivateButton()}
+          </div>
+
+        </div>
+      </div>
+    </div>;
+    /* jshint ignore:end */
+  }
+}
+
+export default class extends React.Component {
+  constructor(props) {
+    super(props);
+
+    this.state = {
+      complete: false
+    };
+  }
+
+  /* jshint ignore:start */
+  complete = (apiResponse) => {
+    this.setState({
+      complete: apiResponse
+    });
+  }
+
+  reset = () => {
+    this.setState({
+      complete: false
+    });
+  }
+
+  showInactivePage(apiResponse) {
+    ReactDOM.render(
+      <AccountInactivePage activation={apiResponse.code}
+                           message={apiResponse.detail} />,
+      document.getElementById('page-mount')
+    );
+  }
+  /* jshint ignore:end */
+
+  render() {
+    /* jshint ignore:start */
+    if (this.state.complete) {
+      return <LinkSent user={this.state.complete} callback={this.reset} />;
+    } else {
+      return <RequestResetForm callback={this.complete}
+                               showInactivePage={this.showInactivePage} />;
+    };
+    /* jshint ignore:end */
+  }
+}

+ 150 - 0
frontend/src/components/reset-password-form.js

@@ -0,0 +1,150 @@
+import React from 'react'; // jshint ignore:line
+import ReactDOM from 'react-dom'; // jshint ignore:line
+import misago from 'misago/index';
+import Button from 'misago/components/button'; // jshint ignore:line
+import Form from 'misago/components/form';
+import SignInModal from 'misago/components/sign-in.js';
+import ajax from 'misago/services/ajax';
+import auth from 'misago/services/auth'; // jshint ignore:line
+import modal from 'misago/services/modal';
+import snackbar from 'misago/services/snackbar';
+import * as validators from 'misago/utils/validators';
+import showBannedPage from 'misago/utils/banned-page';
+
+export class ResetPasswordForm extends Form {
+  constructor(props) {
+    super(props);
+
+    this.state = {
+      'isLoading': false,
+
+      'password': '',
+
+      'validators': {
+        'password': [
+          validators.passwordMinLength(misago.get('SETTINGS'))
+        ]
+      }
+    };
+  }
+
+  clean() {
+    if (this.isValid()) {
+      return true;
+    } else {
+      if (this.state.password.trim().length) {
+        snackbar.error(this.state.errors.password[0]);
+      } else {
+        snackbar.error(gettext("Enter new password."));
+      }
+      return false;
+    }
+  }
+
+  send() {
+    return ajax.post(misago.get('CHANGE_PASSWORD_API'), {
+      'password': this.state.password
+    });
+  }
+
+  handleSuccess(apiResponse) {
+    this.props.callback(apiResponse);
+  }
+
+  handleError(rejection) {
+    if (rejection.status === 403 && rejection.ban) {
+      showBannedPage(rejection.ban);
+    } else {
+      snackbar.apiError(rejection);
+    }
+  }
+
+  render() {
+    /* jshint ignore:start */
+    return <div className="well well-form well-form-reset-password">
+      <form onSubmit={this.handleSubmit}>
+        <div className="form-group">
+          <div className="control-input">
+
+            <input type="password" className="form-control"
+                   placeholder={gettext("Enter new password")}
+                   disabled={this.state.isLoading}
+                   onChange={this.bindInput('password')}
+                   value={this.state.password} />
+
+          </div>
+        </div>
+
+        <Button className="btn-primary btn-block"
+                loading={this.state.isLoading}>
+          {gettext("Change password")}
+        </Button>
+
+      </form>
+    </div>;
+    /* jshint ignore:end */
+  }
+}
+
+export class PasswordChangedPage extends React.Component {
+  getMessage() {
+    return interpolate(gettext("%(username)s, your password has been changed successfully."), {
+      username: this.props.user.username
+    }, true);
+  }
+
+  showSignIn() {
+    modal.show(SignInModal);
+  }
+
+  render() {
+    /* jshint ignore:start */
+    return <div className="page page-message page-message-success page-forgotten-password-changed">
+      <div className="container">
+        <div className="message-panel">
+
+          <div className="message-icon">
+            <span className="material-icon">
+              check
+            </span>
+          </div>
+
+          <div className="message-body">
+            <p className="lead">
+              {this.getMessage()}
+            </p>
+            <p>
+              {gettext("You will have to sign in using new password before continuing.")}
+            </p>
+            <p>
+              <button type="button" className="btn btn-primary" onClick={this.showSignIn}>
+                {gettext("Sign in")}
+              </button>
+            </p>
+          </div>
+
+        </div>
+      </div>
+    </div>;
+    /* jshint ignore:end */
+  }
+}
+
+export default class extends React.Component {
+  /* jshint ignore:start */
+  complete = (apiResponse) => {
+    auth.softSignOut();
+
+    ReactDOM.render(
+      <PasswordChangedPage user={apiResponse} />,
+      document.getElementById('page-mount')
+    );
+  }
+  /* jshint ignore:end */
+
+  render() {
+    /* jshint ignore:start */
+    return <ResetPasswordForm callback={this.complete} />;
+    /* jshint ignore:end */
+  }
+}

+ 15 - 0
frontend/src/initializers/request-password-reset-component.js

@@ -0,0 +1,15 @@
+import misago from 'misago/index';
+import RequestPasswordReset from 'misago/components/request-password-reset';
+import mount from 'misago/utils/mount-component';
+
+export default function initializer() {
+  if (document.getElementById('request-password-reset-mount')) {
+    mount(RequestPasswordReset, 'request-password-reset-mount', false);
+  }
+}
+
+misago.addInitializer({
+  name: 'component:request-password-reset',
+  initializer: initializer,
+  after: 'store'
+});

+ 15 - 0
frontend/src/initializers/reset-password-form-component.js

@@ -0,0 +1,15 @@
+import misago from 'misago/index';
+import ResetPasswordForm from 'misago/components/reset-password-form';
+import mount from 'misago/utils/mount-component';
+
+export default function initializer() {
+  if (document.getElementById('reset-password-form-mount')) {
+    mount(ResetPasswordForm, 'reset-password-form-mount', false);
+  }
+}
+
+misago.addInitializer({
+  name: 'component:reset-password-form',
+  initializer: initializer,
+  after: 'store'
+});

+ 4 - 3
frontend/src/reducers/auth.js

@@ -13,9 +13,10 @@ export function signIn(user) {
   };
 }
 
-export function signOut() {
+export function signOut(soft=false) {
   return {
-    type: SIGN_OUT
+    type: SIGN_OUT,
+    soft
   };
 }
 
@@ -30,7 +31,7 @@ export default function auth(state=initialState, action=null) {
       return Object.assign({}, state, {
         isAuthenticated: false,
         isAnonymous: true,
-        signedOut: true
+        signedOut: !action.soft
       });
 
     default:

+ 7 - 0
frontend/src/services/auth.js

@@ -52,6 +52,13 @@ export class Auth {
       isAuthenticated: false
     });
   }
+
+  softSignOut() {
+    this._store.dispatch(signOut(true));
+    this._local.set('auth', {
+      isAuthenticated: false
+    });
+  }
 }
 
 export default new Auth();

+ 0 - 2
frontend/src/utils/banned-page.js

@@ -15,8 +15,6 @@ let RedrawedBannedPage = connect(select)(BannedPage);
 /* jshint ignore:end */
 
 export default function(ban, changeState) {
-  ReactDOM.unmountComponentAtNode(document.getElementById('page-mount'));
-
   ReactDOM.render(
     /* jshint ignore:start */
     <Provider store={store.getStore()}>

+ 18 - 1
frontend/tests/auth.js

@@ -115,7 +115,8 @@ describe("Auth", function() {
       },
       dispatch(action) {
         assert.deepEqual(action, {
-          type: SIGN_OUT
+          type: SIGN_OUT,
+          soft: false
         }, "action was dispatched");
         done();
       }
@@ -168,4 +169,20 @@ describe("Auth Reducer", function() {
       signedOut: true
     }, "reducer changed store state for sign out");
   });
+
+  it("soflty signs user out", function() {
+    let state = {
+      isAuthenticated: true,
+      isAnonymous: true,
+      signedIn: false,
+      signedOut: true
+    };
+
+    assert.deepEqual(reducer(state, signOut(true)), {
+      isAuthenticated: false,
+      isAnonymous: true,
+      signedIn: false,
+      signedOut: false
+    }, "reducer changed store state for soft sign out");
+  });
 });

+ 278 - 0
frontend/tests/components/request-password-reset.js

@@ -0,0 +1,278 @@
+import assert from 'assert';
+import React from 'react'; // jshint ignore:line
+import ReactDOM from 'react-dom'; // jshint ignore:line
+import misago from 'misago/index';
+import { RequestResetForm, LinkSent, AccountInactivePage } from 'misago/components/request-password-reset'; // jshint ignore:line
+import snackbar from 'misago/services/snackbar';
+
+let snackbarStore = null;
+
+describe("Request Password Reset Form", function() {
+  beforeEach(function() {
+    snackbarStore = window.snackbarStoreMock();
+    snackbar.init(snackbarStore);
+
+    misago._context = {
+      'SETTINGS': {
+        'forum_name': 'Test forum'
+      },
+      'SEND_PASSWORD_RESET_API': '/test-api/request-password-reset/'
+    };
+
+    /* jshint ignore:start */
+    ReactDOM.render(
+      <RequestResetForm />,
+      document.getElementById('test-mount')
+    );
+    /* jshint ignore:end */
+  });
+
+  afterEach(function() {
+    window.emptyTestContainers();
+    window.snackbarClear(snackbar);
+    $.mockjax.clear();
+  });
+
+  it("renders", function() {
+    let element = $('#test-mount .well-form-request-password-reset');
+    assert.ok(element.length, "component renders");
+  });
+
+  it("handles empty submit", function(done) {
+    snackbarStore.callback(function(message) {
+      assert.deepEqual(message, {
+        message: "Enter a valid email address.",
+        type: 'error'
+      }, "form brought error about no input");
+      done();
+    });
+
+    window.simulateSubmit('#test-mount form');
+  });
+
+  it("handles invalid submit", function(done) {
+    snackbarStore.callback(function(message) {
+      assert.deepEqual(message, {
+        message: "Enter a valid email address.",
+        type: 'error'
+      }, "form brought error about invalid input");
+      done();
+    });
+
+    window.simulateChange('#test-mount input', 'loremipsum');
+    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'
+      }, "form raised alert about backend error");
+      done();
+    });
+
+    $.mockjax({
+      url: '/test-api/request-password-reset/',
+      status: 500
+    });
+
+    window.simulateChange('#test-mount input', 'lorem@ipsum.com');
+    window.simulateSubmit('#test-mount form');
+  });
+
+  it("handles backend rejection", function(done) {
+    snackbarStore.callback(function(message) {
+      assert.deepEqual(message, {
+        message: "Nope nope nope!",
+        type: 'error'
+      }, "form raised alert about backend rejection");
+      done();
+    });
+
+    $.mockjax({
+      url: '/test-api/request-password-reset/',
+      status: 400,
+      responseText: {
+        detail: "Nope nope nope!"
+      }
+    });
+
+    window.simulateChange('#test-mount input', 'lorem@ipsum.com');
+    window.simulateSubmit('#test-mount form');
+  });
+
+  it("displays activation required message", function(done) { // jshint ignore:line
+    $.mockjax({
+      url: '/test-api/request-password-reset/',
+      status: 400,
+      responseText: {
+        code: 'inactive_user',
+        detail: "Your account is inactive!"
+      }
+    });
+
+    /* jshint ignore:start */
+    let showInactivePage = function(apiResponse) {
+      assert.deepEqual({
+        code: apiResponse.code,
+        detail: apiResponse.detail
+      }, {
+        code: 'inactive_user',
+        detail: "Your account is inactive!"
+      }, "component calls inactive page callback");
+
+      done();
+    };
+
+    ReactDOM.render(
+      <RequestResetForm showInactivePage={showInactivePage}/>,
+      document.getElementById('test-mount')
+    );
+    /* jshint ignore:end */
+
+    window.simulateChange('#test-mount input', 'lorem@ipsum.com');
+    window.simulateSubmit('#test-mount form');
+  });
+
+  it("from banned IP", function(done) {
+    $.mockjax({
+      url: '/test-api/request-password-reset/',
+      status: 403,
+      responseText: {
+        'ban': {
+          'expires_on': null,
+          'message': {
+            'plain': 'Your ip is banned for spamming.',
+            'html': '<p>Your ip is banned for spamming.</p>',
+          }
+        }
+      }
+    });
+
+    window.simulateChange('#test-mount input', 'lorem@ipsum.com');
+    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 for spamming.",
+        "displayed error banned page with ban message.");
+
+      done();
+    });
+  });
+
+  it("handles success", function(done) { // jshint ignore:line
+    $.mockjax({
+      url: '/test-api/request-password-reset/',
+      status: 200,
+      responseText: {
+        'username': 'Bob',
+        'email': 'bob@boberson.com'
+      }
+    });
+
+    /* jshint ignore:start */
+    let callback = function(apiResponse) {
+      assert.deepEqual(apiResponse, {
+        'username': 'Bob',
+        'email': 'bob@boberson.com'
+      }, "callback function was called on ajax success");
+      done();
+    };
+
+    ReactDOM.render(
+      <RequestResetForm callback={callback} />,
+      document.getElementById('test-mount')
+    );
+    /* jshint ignore:end */
+
+    window.simulateChange('#test-mount input', 'lorem@ipsum.com');
+    window.simulateSubmit('#test-mount form');
+  });
+});
+
+describe("Reset Link Sent", function() {
+  afterEach(function() {
+    window.emptyTestContainers();
+  });
+
+  it("renders message", function(done) { // jshint ignore:line
+    /* jshint ignore:start */
+    let callback = function() {
+      assert.ok(true, "callback function was called on button press");
+      done();
+    };
+
+    ReactDOM.render(
+      <LinkSent user={{email: 'bob@boberson.com' }}
+                callback={callback} />,
+      document.getElementById('test-mount')
+    );
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .well-done');
+    assert.ok(element.length, "component renders");
+
+    assert.equal(element.find('p').text().trim(),
+      "Reset password link was sent to bob@boberson.com",
+      "component renders valid message");
+
+    window.simulateClick('#test-mount .btn-primary');
+  });
+});
+
+describe("Account Inactive Page", function() {
+  beforeEach(function() {
+    misago._context = {
+      'REQUEST_ACTIVATION_URL': '/activate-thy-account/'
+    };
+  });
+
+  afterEach(function() {
+    window.emptyTestContainers();
+  });
+
+  it("renders page for user-activated user", function() {
+    /* jshint ignore:start */
+    ReactDOM.render(
+      <AccountInactivePage activation='inactive_user'
+                           message="Lorem ipsum dolor met." />,
+      document.getElementById('test-mount')
+    );
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .page-forgotten-password-inactive');
+    assert.ok(element.length, "component renders");
+
+    assert.equal(
+      $('#test-mount .page .message-body p:eq(1)').text().trim(),
+      "Lorem ipsum dolor met.",
+      "displayed error inactive page with backend message.");
+
+    assert.equal($('#test-mount a').attr('href'), '/activate-thy-account/',
+      "activate account link is displayed on inactive error page");
+  });
+
+  it("renders page for admin-activated user", function() {
+    /* jshint ignore:start */
+    ReactDOM.render(
+      <AccountInactivePage activation='inactive_admin'
+                           message="Lorem ipsum dolor met admin." />,
+      document.getElementById('test-mount')
+    );
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .page-forgotten-password-inactive');
+    assert.ok(element.length, "component renders");
+
+    assert.equal(
+      $('#test-mount .page .message-body p:eq(1)').text().trim(),
+      "Lorem ipsum dolor met admin.",
+      "displayed error inactive page with backend message.");
+
+    assert.ok(!$('#test-mount a').length,
+      "activate account link is not displayed on admin-activated error page");
+  });
+});

+ 201 - 0
frontend/tests/components/reset-password-form.js

@@ -0,0 +1,201 @@
+import assert from 'assert';
+import React from 'react'; // jshint ignore:line
+import ReactDOM from 'react-dom'; // jshint ignore:line
+import misago from 'misago/index';
+import { ResetPasswordForm, PasswordChangedPage } from 'misago/components/reset-password-form'; // jshint ignore:line
+import modal from 'misago/services/modal';
+import snackbar from 'misago/services/snackbar';
+
+let snackbarStore = null;
+
+describe("Reset Password Form", function() {
+  beforeEach(function() {
+    snackbarStore = window.snackbarStoreMock();
+    snackbar.init(snackbarStore);
+
+    misago._context = {
+      'SETTINGS': {
+        'forum_name': 'Test forum',
+        'password_length_min': 4
+      },
+      'CHANGE_PASSWORD_API': '/test-api/change-password/1/s0m3-t0k3n/'
+    };
+
+    /* jshint ignore:start */
+    ReactDOM.render(
+      <ResetPasswordForm />,
+      document.getElementById('test-mount')
+    );
+    /* jshint ignore:end */
+  });
+
+  afterEach(function() {
+    window.emptyTestContainers();
+    window.snackbarClear(snackbar);
+    $.mockjax.clear();
+  });
+
+  it("renders", function() {
+    let element = $('#test-mount .well-form-reset-password');
+    assert.ok(element.length, "component renders");
+  });
+
+  it("handles empty submit", function(done) {
+    snackbarStore.callback(function(message) {
+      assert.deepEqual(message, {
+        message: "Enter new password.",
+        type: 'error'
+      }, "form brought error about no input");
+      done();
+    });
+
+    window.simulateSubmit('#test-mount form');
+  });
+
+  it("handles invalid submit", function(done) {
+    snackbarStore.callback(function(message) {
+      assert.deepEqual(message, {
+        message: "Valid password must be at least 4 characters long.",
+        type: 'error'
+      }, "form brought error about invalid input");
+      done();
+    });
+
+    window.simulateChange('#test-mount input', 'abc');
+    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'
+      }, "form raised alert about backend error");
+      done();
+    });
+
+    $.mockjax({
+      url: '/test-api/change-password/1/s0m3-t0k3n/',
+      status: 500
+    });
+
+    window.simulateChange('#test-mount input', 'Som3L33tP455');
+    window.simulateSubmit('#test-mount form');
+  });
+
+  it("handles backend rejection", function(done) {
+    snackbarStore.callback(function(message) {
+      assert.deepEqual(message, {
+        message: "Nope nope nope!",
+        type: 'error'
+      }, "form raised alert about backend rejection");
+      done();
+    });
+
+    $.mockjax({
+      url: '/test-api/change-password/1/s0m3-t0k3n/',
+      status: 400,
+      responseText: {
+        detail: "Nope nope nope!"
+      }
+    });
+
+    window.simulateChange('#test-mount input', 'Som3L33tP455');
+    window.simulateSubmit('#test-mount form');
+  });
+
+  it("from banned IP", function(done) {
+    $.mockjax({
+      url: '/test-api/change-password/1/s0m3-t0k3n/',
+      status: 403,
+      responseText: {
+        'ban': {
+          'expires_on': null,
+          'message': {
+            'plain': 'Your ip is banned for spamming.',
+            'html': '<p>Your ip is banned for spamming.</p>',
+          }
+        }
+      }
+    });
+
+    window.simulateChange('#test-mount input', 'Som3L33tP455');
+    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 for spamming.",
+        "displayed error banned page with ban message.");
+
+      done();
+    });
+  });
+
+  it("handles success", function(done) { // jshint ignore:line
+    $.mockjax({
+      url: '/test-api/change-password/1/s0m3-t0k3n/',
+      status: 200,
+      responseText: {
+        'username': 'Bob'
+      }
+    });
+
+    /* jshint ignore:start */
+    let callback = function(apiResponse) {
+      assert.deepEqual(apiResponse, {
+        'username': 'Bob'
+      }, "callback function was called on ajax success");
+      done();
+    };
+
+    ReactDOM.render(
+      <ResetPasswordForm callback={callback} />,
+      document.getElementById('test-mount')
+    );
+    /* jshint ignore:end */
+
+    window.simulateChange('#test-mount input', 'Som3L33tP455');
+    window.simulateSubmit('#test-mount form');
+  });
+});
+
+describe("Password Changed Page", function() {
+  beforeEach(function() {
+    window.initModal(modal);
+
+    misago._context = {
+      'FORGOTTEN_PASSWORD_URL': '/forgotten-password/'
+    };
+
+    /* jshint ignore:start */
+    ReactDOM.render(
+      <PasswordChangedPage user={{username: 'BobBoberson'}} />,
+      document.getElementById('test-mount')
+    );
+    /* jshint ignore:end */
+  });
+
+  afterEach(function() {
+    window.emptyTestContainers();
+  });
+
+  it("renders", function() {
+    let element = $('#test-mount .page-forgotten-password-changed');
+    assert.ok(element.length, "component renders");
+
+    assert.equal(
+      $('#test-mount .page .message-body p.lead').text().trim(),
+      "BobBoberson, your password has been changed successfully.",
+      "displayed password changed page with valid message.");
+  });
+
+  it('opens sign in modal on click', function(done) {
+    window.simulateClick('#test-mount .btn-primary');
+
+    window.onElement('#modal-mount .modal-sign-in', function() {
+      assert.ok(true, "sign in modal was displayed");
+      done();
+    });
+  });
+});

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

@@ -1,4 +1,4 @@
-!function e(t,n,a){function r(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 r(n?n:e)},c,c.exports,e,t,n,a)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<a.length;o++)r(a[o]);return r}({1:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=u;var l=e("react"),c=a(l),f=function(e){function t(){return r(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 a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=a(s),c=$("base").attr("href")+"user-avatar/",f=function(e){function t(){return r(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 a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("moment"),l=a(s),c=e("react"),f=a(c),d=function(e){function t(){return r(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 a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=a(s),c=e("./loader"),f=a(c),d=function(e){function t(){return r(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 a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=a(s),c=function(e){function t(){return r(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 a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=a(s),c=e("../utils/validators"),f=(0,c.required)(),d=function(e){function t(){var e,n,a,o;r(this,t);for(var u=arguments.length,s=Array(u),l=0;u>l;l++)s[l]=arguments[l];return n=a=i(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(s))),a.bindInput=function(e){return function(t){var n={};n[e]=t.target.value;var r=a.state.errors||{};r[e]=a.validateField(e,n[e]),n.errors=r,a.setState(n)}},a.handleSubmit=function(e){if(e.preventDefault(),!a.state.isLoading&&a.clean()){a.setState({isLoading:!0});var t=a.send();t?t.then(function(e){a.setState({isLoading:!1}),a.handleSuccess(e)},function(e){a.setState({isLoading:!1}),a.handleError(e)}):a.setState({isLoading:!1})}},o=n,i(a,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 a in t.required)t.required.hasOwnProperty(a)&&t.required[a]&&n.push(a);for(var a in t.optional)t.optional.hasOwnProperty(a)&&t.optional[a]&&n.push(a);for(var r in n){var a=n[r],i=this.validateField(a,this.state[a]);null===i?e[a]=null:i&&(e[a]=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=[],a={required:(this.state.validators.required||this.state.validators)[e],optional:(this.state.validators.optional||{})[e]},r=f(t)||!1;if(a.required){if(r)n=[r];else for(var i in a.required){var o=a.required[i](t);o&&n.push(o)}return n.length?n:null}if(r===!1&&a.optional){for(var i in a.optional){var o=a.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":54,react:"react"}],7:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=a(s),c=function(e){function t(){return r(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 a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.LABELS=n.STYLES=void 0;var s=e("react"),l=a(s),c=e("../services/zxcvbn"),f=a(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){r(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,a=!1;return e.trim()!==this._password&&(a=!0),t.length!==this._inputs.length?a=!0:t.map(function(e,t){e.trim()!==n._inputs[t]&&(a=!0)}),a&&(this._score=f["default"].scorePassword(e,t),this._password=e.trim(),this._inputs=t.map(function(e){return e.trim()})),this._score}},{key:"render",value:function(){var e=this.getScore(this.props.password,this.props.inputs);return 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":50,react:"react"}],9:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=a(s),c=e("./loader"),f=a(c),d=e("./register.js"),p=a(d),m=e("../services/captcha"),h=a(m),v=e("../services/modal"),b=a(v),y=e("../services/snackbar"),g=a(y),_=e("../services/zxcvbn"),w=a(_),k=function(e){function t(e){r(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":43,"../services/modal":47,"../services/snackbar":48,"../services/zxcvbn":50,"./loader":7,"./register.js":10,react:"react"}],10:[function(e,t,n){"use strict";function a(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 r(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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.RegisterComplete=n.RegisterForm=void 0;var l=e("react"),c=r(l),f=e("./button"),d=r(f),p=e("./form"),m=r(p),h=e("./form-group"),v=r(h),b=e("./password-strength"),y=r(b),g=e("../index"),_=r(g),w=e("../services/ajax"),k=r(w),E=e("../services/auth"),O=r(E),x=e("../services/captcha"),j=r(x),P=e("../services/modal"),N=r(P),C=e("../services/snackbar"),S=r(C),M=e("../utils/banned-page"),T=r(M),I=e("../utils/validators"),R=a(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"]),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":17,"../services/ajax":41,"../services/auth":42,"../services/captcha":43,"../services/modal":47,"../services/snackbar":48,"../utils/banned-page":51,"../utils/validators":54,"./button":4,"./form":6,"./form-group":5,"./password-strength":8,react:"react"}],11:[function(e,t,n){"use strict";function a(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 r(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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.LinkSent=n.RequestLinkForm=void 0;var l=e("react"),c=r(l),f=e("../index"),d=r(f),p=e("./button"),m=r(p),h=e("./form"),v=r(h),b=e("../services/ajax"),y=r(b),g=e("../services/snackbar"),_=r(g),w=e("../utils/validators"),k=a(w),E=e("../utils/banned-page"),O=r(E),x=n.RequestLinkForm=function(e){function t(e){i(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,email:"",validators:{email:[k.email()]}},n}return u(t,e),s(t,[{key:"clean",value:function(){return this.isValid()?!0:(_["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return y["default"].post(d["default"].get("SEND_ACTIVATION_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){"already_active"===e.code?_["default"].info(e.detail):"inactive_admin"===e.code?_["default"].info(e.detail):403===e.status&&e.ban?(0,O["default"])(e.ban):_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-activation-link"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"text",className:"form-control",placeholder:gettext("Your e-mail address"),disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email}))),c["default"].createElement(m["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(v["default"]),j=n.LinkSent=function(e){function t(){return i(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return u(t,e),s(t,[{key:"getMessage",value:function(){return interpolate(gettext("Activation link was sent to %(email)s"),{email:this.props.user.email},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-activation-link well-done"},c["default"].createElement("div",{className:"done-message"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",null,this.getMessage())),c["default"].createElement("button",{type:"button",className:"btn btn-primary btn-block",onClick:this.props.callback},gettext("Request another link"))))}}]),t}(c["default"].Component),P=function(e){function t(e){i(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.complete=function(e){n.setState({complete:e})},n.reset=function(){n.setState({complete:!1})},n.state={complete:!1},n}
-return u(t,e),s(t,[{key:"render",value:function(){return this.state.complete?c["default"].createElement(j,{user:this.state.complete,callback:this.reset}):c["default"].createElement(x,{callback:this.complete})}}]),t}(c["default"].Component);n["default"]=P},{"../index":17,"../services/ajax":41,"../services/snackbar":48,"../utils/banned-page":51,"../utils/validators":54,"./button":4,"./form":6,react:"react"}],12:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=a(s),c=e("../index"),f=a(c),d=e("./button"),p=a(d),m=e("./form"),h=a(m),v=e("../services/ajax"),b=a(v),y=e("../services/modal"),g=a(y),_=e("../services/snackbar"),w=a(_),k=e("../utils/banned-page"),E=a(k),O=function(e){function t(e){r(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":17,"../services/ajax":41,"../services/modal":47,"../services/snackbar":48,"../utils/banned-page":51,"./button":4,"./form":6,react:"react"}],13:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0,n.select=u;var l=e("react"),c=a(l),f={info:"alert-info",success:"alert-success",warning:"alert-warning",error:"alert-danger"};n.Snackbar=function(e){function t(){return r(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"}],14:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactGuestNav=n.GuestNav=n.GuestMenu=void 0;var s=e("react"),l=a(s),c=e("../avatar"),f=a(c),d=e("../register-button"),p=a(d),m=e("../sign-in.js"),h=a(m),v=e("../../services/mobile-navbar-dropdown"),b=a(v),y=e("../../services/modal"),g=a(y),_=n.GuestMenu=function(e){function t(){return r(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 r(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 r(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":46,"../../services/modal":47,"../avatar":2,"../register-button":9,"../sign-in.js":12,react:"react"}],15:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserMenu=n.UserMenu=void 0,n.select=u;var l=e("react"),c=a(l),f=e("./guest-nav"),d=e("./user-nav");n.UserMenu=function(e){function t(){return r(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 r(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":14,"./user-nav":16,react:"react"}],16:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserNav=n.UserNav=n.UserMenu=void 0,n.selectUserMenu=u;var l=e("react"),c=a(l),f=e("react-redux"),d=e("../avatar"),p=a(d),m=e("../../index"),h=a(m),v=e("../../services/mobile-navbar-dropdown"),b=a(v),y=n.UserMenu=function(e){function t(){return r(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 r(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 r(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":17,"../../services/mobile-navbar-dropdown":46,"../avatar":2,react:"react","react-redux":"react-redux"}],17:[function(e,t,n){(function(t){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Misago=void 0;var o=e("./utils/ordered-list"),u=a(o),s=n.Misago=function(){function e(){r(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":53}],18:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){s["default"].init(o["default"].get("CSRF_COOKIE_NAME"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),u=e("../services/ajax"),s=a(u);o["default"].addInitializer({name:"ajax",initializer:r})},{"../index":17,"../services/ajax":41}],19:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,f["default"])((0,i.connect)(s.select)(l["default"]),"auth-message-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("react-redux"),o=e("../index"),u=a(o),s=e("../components/auth-message"),l=a(s),c=e("../utils/mount-component"),f=a(c);u["default"].addInitializer({name:"component:auth-message",initializer:r,after:"store"})},{"../components/auth-message":1,"../index":17,"../utils/mount-component":52,"react-redux":"react-redux"}],20:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(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"]=r;var i=e("../index"),o=a(i),u=e("../reducers/auth"),s=a(u),l=e("../services/store"),c=a(l);o["default"].addInitializer({name:"reducer:auth",initializer:r,before:"store"})},{"../index":17,"../reducers/auth":38,"../services/store":49}],21:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){s["default"].init(c["default"],d["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),u=e("../services/auth"),s=a(u),l=e("../services/store"),c=a(l),f=e("../services/local-storage"),d=a(f);o["default"].addInitializer({name:"auth",initializer:r,after:"store"})},{"../index":17,"../services/auth":42,"../services/local-storage":45,"../services/store":49}],22:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.get("BAN_MESSAGE")&&(0,s["default"])(e.get("BAN_MESSAGE"),!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),u=e("../utils/banned-page"),s=a(u);o["default"].addInitializer({name:"component:baned-page",initializer:r,after:"store"})},{"../index":17,"../utils/banned-page":51}],23:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){c["default"].init(e,s["default"],d["default"],m["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),u=e("../services/ajax"),s=a(u),l=e("../services/captcha"),c=a(l),f=e("../services/include"),d=a(f),p=e("../services/snackbar"),m=a(p);o["default"].addInitializer({name:"captcha",initializer:r})},{"../index":17,"../services/ajax":41,"../services/captcha":43,"../services/include":44,"../services/snackbar":48}],24:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){s["default"].init(e.get("STATIC_URL"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),u=e("../services/include"),s=a(u);o["default"].addInitializer({name:"include",initializer:r})},{"../index":17,"../services/include":44}],25:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){s["default"].init("misago_")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),u=e("../services/local-storage"),s=a(u);o["default"].addInitializer({name:"local-storage",initializer:r})},{"../index":17,"../services/local-storage":45}],26:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=document.getElementById("mobile-navbar-dropdown-mount");e&&s["default"].init(e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),u=e("../services/mobile-navbar-dropdown"),s=a(u);o["default"].addInitializer({name:"dropdown",initializer:r,before:"store"})},{"../index":17,"../services/mobile-navbar-dropdown":46}],27:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=document.getElementById("modal-mount");e&&s["default"].init(e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),u=e("../services/modal"),s=a(u);o["default"].addInitializer({name:"modal",initializer:r,before:"store"})},{"../index":17,"../services/modal":47}],28:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){o["default"].locale($("html").attr("lang"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("moment"),o=a(i),u=e("../index"),s=a(u);s["default"].addInitializer({name:"moment",initializer:r})},{"../index":17,moment:"moment"}],29:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("request-activation-link-mount")&&(0,c["default"])(s["default"],"request-activation-link-mount",!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),u=e("../components/request-activation-link"),s=a(u),l=e("../utils/mount-component"),c=a(l);o["default"].addInitializer({name:"component:request-activation-link",initializer:r,after:"store"})},{"../components/request-activation-link":11,"../index":17,"../utils/mount-component":52}],30:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,c["default"])((0,i.connect)(s.select)(s.Snackbar),"snackbar-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("react-redux"),o=e("../index"),u=a(o),s=e("../components/snackbar"),l=e("../utils/mount-component"),c=a(l);u["default"].addInitializer({name:"component:snackbar",initializer:r,after:"snackbar"})},{"../components/snackbar":13,"../index":17,"../utils/mount-component":52,"react-redux":"react-redux"}],31:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("snackbar",s["default"],u.initialState)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),u=e("../reducers/snackbar"),s=a(u),l=e("../services/store"),c=a(l);o["default"].addInitializer({name:"reducer:snackbar",initializer:r,before:"store"})},{"../index":17,"../reducers/snackbar":39,"../services/store":49}],32:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){s["default"].init(c["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),u=e("../services/snackbar"),s=a(u),l=e("../services/store"),c=a(l);o["default"].addInitializer({name:"snackbar",initializer:r,after:"store"})},{"../index":17,"../services/snackbar":48,"../services/store":49}],33:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){s["default"].init()}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),u=e("../services/store"),s=a(u);o["default"].addInitializer({name:"store",initializer:r,before:"_end"})},{"../index":17,"../services/store":49}],34:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("tick",s["default"],u.initialState)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),u=e("../reducers/tick"),s=a(u),l=e("../services/store"),c=a(l);o["default"].addInitializer({name:"reducer:tick",initializer:r,before:"store"})},{"../index":17,"../reducers/tick":40,"../services/store":49}],35:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){window.setInterval(function(){l["default"].dispatch((0,u.doTick)())},c)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),u=e("../reducers/tick"),s=e("../services/store"),l=a(s),c=5e4;o["default"].addInitializer({name:"tick-start",initializer:r,after:"store"})},{"../index":17,"../reducers/tick":40,"../services/store":49}],36:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){(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"]=r;var i=e("react-redux"),o=e("../index"),u=a(o),s=e("../components/user-menu/root"),l=e("../utils/mount-component"),c=a(l);u["default"].addInitializer({name:"component:user-menu",initializer:r,after:"store"})},{"../components/user-menu/root":15,"../index":17,"../utils/mount-component":52,"react-redux":"react-redux"}],37:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].init(s["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),u=e("../services/include"),s=a(u),l=e("../services/zxcvbn"),c=a(l);o["default"].addInitializer({name:"zxcvbn",initializer:r})},{"../index":17,"../services/include":44,"../services/zxcvbn":50}],38:[function(e,t,n){"use strict";function a(e){return{type:u,user:e}}function r(){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=a,n.signOut=r,n["default"]=i;var o=n.initialState={signedIn:!1,signedOut:!1},u=n.SIGN_IN="SIGN_IN",s=n.SIGN_OUT="SIGN_OUT"},{}],39:[function(e,t,n){"use strict";function a(e,t){return{type:u,message:e,messageType:t}}function r(){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=a,n.hideSnackbar=r,n["default"]=i;var o=n.initialState={type:"info",message:"",isVisible:!1},u=n.SHOW_SNACKBAR="SHOW_SNACKBAR",s=n.HIDE_SNACKBAR="HIDE_SNACKBAR"},{}],40:[function(e,t,n){"use strict";function a(){return{type:o}}function r(){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=a,n["default"]=r;var i=n.initialState={tick:0},o=n.TICK="TICK"},{}],41:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=n.Ajax=function(){function e(){a(this,e),this._cookieName=null,this._csrfToken=null}return r(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 a=this;return new Promise(function(r,i){var o={url:t,method:e,headers:{"X-CSRFToken":a._csrfToken},data:n||{},dataType:"json",success:function(e){r(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},{}],42:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Auth=void 0;var i=e("../reducers/auth"),o=n.Auth=function(){function e(){a(this,e)}return r(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":38}],43:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function 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 a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),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=a(s),c=e("../components/form-group"),f=a(c),d=n.BaseCaptcha=function(){function e(){o(this,e)}return u(e,[{key:"init",value:function(e,t,n,a){this._context=e,this._ajax=t,this._include=n,this._snackbar=a}}]),e}(),p=n.NoCaptcha=function(e){function t(){return o(this,t),r(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),r(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),r(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),r(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,a){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,a)}},{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"}],44:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=n.Include=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._staticUrl=e,this._included=[]}},{key:"include",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?!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},{}],45:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=window.localStorage,o=n.LocalStorage=function(){function e(){a(this,e)}return r(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},{}],46:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.MobileNavbarDropdown=void 0;var o=e("../utils/mount-component"),u=a(o),s=n.MobileNavbarDropdown=function(){function e(){r(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":52}],47:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Modal=void 0;var o=e("react-dom"),u=a(o),s=e("../utils/mount-component"),l=a(s),c=n.Modal=function(){function e(){r(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":52,"react-dom":"react-dom"}],48:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),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(){a(this,e)}return r(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":39}],49:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.StoreWrapper=void 0;var i=e("redux"),o=n.StoreWrapper=function(){function e(){a(this,e),this._store=null,this._reducers={},this._initialState={}}return r(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"}],50:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=n.Zxcvbn=function(){function e(){a(this,e)}return r(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},{}],51:[function(e,t,n){"use strict";function a(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 r=e("moment"),i=a(r),o=e("react"),u=a(o),s=e("react-dom"),l=a(s),c=e("react-redux"),f=e("../components/banned-page"),d=a(f),p=e("../index"),m=a(p),h=e("../services/store"),v=a(h),b=function(e){return e.tick},y=(0,c.connect)(b)(d["default"])},{"../components/banned-page":3,"../index":17,"../services/store":49,moment:"moment",react:"react","react-dom":"react-dom","react-redux":"react-redux"}],52:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){var n=arguments.length<=2||void 0===arguments[2]?!0:arguments[2],a=document.getElementById(t);a&&(n?s["default"].render(o["default"].createElement(l.Provider,{store:f["default"].getStore()},o["default"].createElement(e,null)),a):s["default"].render(o["default"].createElement(e,null),a))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("react"),o=a(i),u=e("react-dom"),s=a(u),l=e("react-redux"),c=e("../services/store"),f=a(c)},{"../services/store":49,react:"react","react-dom":"react-dom","react-redux":"react-redux"}],53:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=function(){function e(t){a(this,e),this.isOrdered=!1,this._items=t||[]}return r(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===r.indexOf(e.key)&&(e.after?(t=r.indexOf(e.after),-1!==t&&(t+=1)):e.before&&(t=r.indexOf(e.before)),-1!==t&&(a.splice(t,0,e),r.splice(t,0,e.key)))}var n=[];e.forEach(function(e){n.push(e.key)});var a=[],r=[];e.forEach(function(e){e.after||e.before||(a.push(e),r.push(e.key))}),e.forEach(function(e){"_end"===e.before&&(a.push(e),r.push(e.key))});for(var i=200;i>0&&n.length!==r.length;)i-=1,e.forEach(t);return a}}]),e}();n["default"]=i},{}],54:[function(e,t,n){"use strict";function a(){return function(e){return 0===$.trim(e).length?gettext("This field is required."):void 0}}function r(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 a="",r=$.trim(n).length;return e>r?(a=t?t(e,r):ngettext("Ensure this value has at least %(limit_value)s character (it has %(show_value)s).","Ensure this value has at least %(limit_value)s characters (it has %(show_value)s).",e),interpolate(a,{limit_value:e,show_value:r},!0)):void 0}}function o(e,t){return function(n){var a="",r=$.trim(n).length;return r>e?(a=t?t(e,r):ngettext("Ensure this value has at most %(limit_value)s character (it has %(show_value)s).","Ensure this value has at most %(limit_value)s characters (it has %(show_value)s).",e),interpolate(a,{limit_value:e,show_value:r},!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=a,n.email=r,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")},{}]},{},[17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]);
+!function e(t,n,a){function r(o,s){if(!n[o]){if(!t[o]){var u="function"==typeof require&&require;if(!s&&u)return u(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 r(n?n:e)},c,c.exports,e,t,n,a)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<a.length;o++)r(a[o]);return r}({1:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 s(e){return{user:e.auth.user,signedIn:e.auth.signedIn,signedOut:e.auth.signedOut}}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=s;var l=e("react"),c=a(l),f=function(e){function t(){return r(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(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 a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=$("base").attr("href")+"user-avatar/",f=function(e){function t(){return r(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(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 a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("moment"),l=a(u),c=e("react"),f=a(c),d=function(e){function t(){return r(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(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 a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./loader"),f=a(c),d=function(e){function t(){return r(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(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 a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(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 a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../utils/validators"),f=(0,c.required)(),d=function(e){function t(){var e,n,a,o;r(this,t);for(var s=arguments.length,u=Array(s),l=0;s>l;l++)u[l]=arguments[l];return n=a=i(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.bindInput=function(e){return function(t){var n={};n[e]=t.target.value;var r=a.state.errors||{};r[e]=a.validateField(e,n[e]),n.errors=r,a.setState(n)}},a.handleSubmit=function(e){if(e.preventDefault(),!a.state.isLoading&&a.clean()){a.setState({isLoading:!0});var t=a.send();t?t.then(function(e){a.setState({isLoading:!1}),a.handleSuccess(e)},function(e){a.setState({isLoading:!1}),a.handleError(e)}):a.setState({isLoading:!1})}},o=n,i(a,o)}return o(t,e),s(t,[{key:"validate",value:function(){var e={},t={required:this.state.validators.required||this.state.validators,optional:this.state.validators.optional||{}},n=[];for(var a in t.required)t.required.hasOwnProperty(a)&&t.required[a]&&n.push(a);for(var a in t.optional)t.optional.hasOwnProperty(a)&&t.optional[a]&&n.push(a);for(var r in n){var a=n[r],i=this.validateField(a,this.state[a]);null===i?e[a]=null:i&&(e[a]=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=[],a={required:(this.state.validators.required||this.state.validators)[e],optional:(this.state.validators.optional||{})[e]},r=f(t)||!1;if(a.required){if(r)n=[r];else for(var i in a.required){var o=a.required[i](t);o&&n.push(o)}return n.length?n:null}if(r===!1&&a.optional){for(var i in a.optional){var o=a.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":58,react:"react"}],7:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(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 a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.LABELS=n.STYLES=void 0;var u=e("react"),l=a(u),c=e("../services/zxcvbn"),f=a(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){r(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),s(t,[{key:"getScore",value:function(e,t){var n=this,a=!1;return e.trim()!==this._password&&(a=!0),t.length!==this._inputs.length?a=!0:t.map(function(e,t){e.trim()!==n._inputs[t]&&(a=!0)}),a&&(this._score=f["default"].scorePassword(e,t),this._password=e.trim(),this._inputs=t.map(function(e){return e.trim()})),this._score}},{key:"render",value:function(){var e=this.getScore(this.props.password,this.props.inputs);return 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":54,react:"react"}],9:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./loader"),f=a(c),d=e("./register.js"),p=a(d),m=e("../services/captcha"),h=a(m),v=e("../services/modal"),b=a(v),y=e("../services/snackbar"),g=a(y),_=e("../services/zxcvbn"),w=a(_),k=function(e){function t(e){r(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),s(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":47,"../services/modal":51,"../services/snackbar":52,"../services/zxcvbn":54,"./loader":7,"./register.js":10,react:"react"}],10:[function(e,t,n){"use strict";function a(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 r(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 s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.RegisterComplete=n.RegisterForm=void 0;var l=e("react"),c=r(l),f=e("./button"),d=r(f),p=e("./form"),m=r(p),h=e("./form-group"),v=r(h),b=e("./password-strength"),y=r(b),g=e("../index"),_=r(g),w=e("../services/ajax"),k=r(w),E=e("../services/auth"),O=r(E),x=e("../services/captcha"),j=r(x),P=e("../services/modal"),N=r(P),S=e("../services/snackbar"),C=r(S),M=e("../utils/banned-page"),T=r(M),I=e("../utils/validators"),R=a(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 s(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(C["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)}),C["default"].error(gettext("Form contains errors."))):403===e.status&&e.ban?((0,T["default"])(e.ban),N["default"].hide()):C["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 s(t,e),u(t,[{key:"getLead",value:function(){return"user"===this.props.activation?gettext("%(username)s, your account has been created but you need to activate it before you will be able to sign in."):"admin"===this.props.activation?gettext("%(username)s, your account has been created but board administrator will have to activate it before you will be able to sign in."):void 0}},{key:"getSubscript",value:function(){return"user"===this.props.activation?gettext("We have sent an e-mail to %(email)s with link that you have to click to activate your account."):"admin"===this.props.activation?gettext("We will send an e-mail to %(email)s when this takes place."):void 0}},{key:"render",value:function(){return 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 s(t,e),u(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":19,"../services/ajax":45,"../services/auth":46,"../services/captcha":47,"../services/modal":51,"../services/snackbar":52,"../utils/banned-page":55,"../utils/validators":58,"./button":4,"./form":6,"./form-group":5,"./password-strength":8,react:"react"}],11:[function(e,t,n){"use strict";function a(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 r(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 s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.LinkSent=n.RequestLinkForm=void 0;var l=e("react"),c=r(l),f=e("../index"),d=r(f),p=e("./button"),m=r(p),h=e("./form"),v=r(h),b=e("../services/ajax"),y=r(b),g=e("../services/snackbar"),_=r(g),w=e("../utils/validators"),k=a(w),E=e("../utils/banned-page"),O=r(E),x=n.RequestLinkForm=function(e){function t(e){i(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,email:"",validators:{email:[k.email()]}},n}return s(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(_["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return y["default"].post(d["default"].get("SEND_ACTIVATION_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){["already_active","inactive_admin"].indexOf(e.code)>-1?_["default"].info(e.detail):403===e.status&&e.ban?(0,O["default"])(e.ban):_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-activation-link"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"text",className:"form-control",placeholder:gettext("Your e-mail address"),disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email}))),c["default"].createElement(m["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(v["default"]),j=n.LinkSent=function(e){function t(){return i(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"getMessage",value:function(){return interpolate(gettext("Activation link was sent to %(email)s"),{email:this.props.user.email},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-activation-link well-done"},c["default"].createElement("div",{className:"done-message"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",null,this.getMessage())),c["default"].createElement("button",{type:"button",className:"btn btn-primary btn-block",onClick:this.props.callback},gettext("Request another link"))))}}]),t}(c["default"].Component),P=function(e){function t(e){i(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.complete=function(e){n.setState({complete:e})},n.reset=function(){n.setState({complete:!1})},n.state={complete:!1},n}return s(t,e),u(t,[{key:"render",
+value:function(){return this.state.complete?c["default"].createElement(j,{user:this.state.complete,callback:this.reset}):c["default"].createElement(x,{callback:this.complete})}}]),t}(c["default"].Component);n["default"]=P},{"../index":19,"../services/ajax":45,"../services/snackbar":52,"../utils/banned-page":55,"../utils/validators":58,"./button":4,"./form":6,react:"react"}],12:[function(e,t,n){"use strict";function a(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 r(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 s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.AccountInactivePage=n.LinkSent=n.RequestResetForm=void 0;var l=e("react"),c=r(l),f=e("react-dom"),d=r(f),p=e("../index"),m=r(p),h=e("./button"),v=r(h),b=e("./form"),y=r(b),g=e("../services/ajax"),_=r(g),w=e("../services/snackbar"),k=r(w),E=e("../utils/validators"),O=a(E),x=e("../utils/banned-page"),j=r(x),P=n.RequestResetForm=function(e){function t(e){i(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,email:"",validators:{email:[O.email()]}},n}return s(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(k["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return _["default"].post(m["default"].get("SEND_PASSWORD_RESET_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){["inactive_user","inactive_admin"].indexOf(e.code)>-1?this.props.showInactivePage(e):403===e.status&&e.ban?(0,j["default"])(e.ban):k["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-password-reset"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"text",className:"form-control",placeholder:gettext("Your e-mail address"),disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email}))),c["default"].createElement(v["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(y["default"]),N=n.LinkSent=function(e){function t(){return i(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"getMessage",value:function(){return interpolate(gettext("Reset password link was sent to %(email)s"),{email:this.props.user.email},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-password-reset well-done"},c["default"].createElement("div",{className:"done-message"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",null,this.getMessage())),c["default"].createElement("button",{type:"button",className:"btn btn-primary btn-block",onClick:this.props.callback},gettext("Request another link"))))}}]),t}(c["default"].Component),S=n.AccountInactivePage=function(e){function t(){return i(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"getActivateButton",value:function(){return"inactive_user"===this.props.activation?c["default"].createElement("p",null,c["default"].createElement("a",{href:m["default"].get("REQUEST_ACTIVATION_URL")},gettext("Activate your account."))):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"page page-message page-message-info page-forgotten-password-inactive"},c["default"].createElement("div",{className:"container"},c["default"].createElement("div",{className:"message-panel"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"info_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},gettext("Your account is inactive.")),c["default"].createElement("p",null,this.props.message),this.getActivateButton()))))}}]),t}(c["default"].Component),C=function(e){function t(e){i(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.complete=function(e){n.setState({complete:e})},n.reset=function(){n.setState({complete:!1})},n.state={complete:!1},n}return s(t,e),u(t,[{key:"showInactivePage",value:function(e){d["default"].render(c["default"].createElement(S,{activation:e.code,message:e.detail}),document.getElementById("page-mount"))}},{key:"render",value:function(){return this.state.complete?c["default"].createElement(N,{user:this.state.complete,callback:this.reset}):c["default"].createElement(P,{callback:this.complete,showInactivePage:this.showInactivePage})}}]),t}(c["default"].Component);n["default"]=C},{"../index":19,"../services/ajax":45,"../services/snackbar":52,"../utils/banned-page":55,"../utils/validators":58,"./button":4,"./form":6,react:"react","react-dom":"react-dom"}],13:[function(e,t,n){"use strict";function a(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 r(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 s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.PasswordChangedPage=n.ResetPasswordForm=void 0;var l=e("react"),c=r(l),f=e("react-dom"),d=r(f),p=e("../index"),m=r(p),h=e("./button"),v=r(h),b=e("./form"),y=r(b),g=e("./sign-in.js"),_=r(g),w=e("../services/ajax"),k=r(w),E=e("../services/auth"),O=r(E),x=e("../services/modal"),j=r(x),P=e("../services/snackbar"),N=r(P),S=e("../utils/validators"),C=a(S),M=e("../utils/banned-page"),T=r(M),I=n.ResetPasswordForm=function(e){function t(e){i(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,password:"",validators:{password:[C.passwordMinLength(m["default"].get("SETTINGS"))]}},n}return s(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(this.state.password.trim().length?N["default"].error(this.state.errors.password[0]):N["default"].error(gettext("Enter new password.")),!1)}},{key:"send",value:function(){return k["default"].post(m["default"].get("CHANGE_PASSWORD_API"),{password:this.state.password})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){403===e.status&&e.ban?(0,T["default"])(e.ban):N["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-reset-password"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"password",className:"form-control",placeholder:gettext("Enter new password"),disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement(v["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Change password"))))}}]),t}(y["default"]),R=n.PasswordChangedPage=function(e){function t(){return i(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"getMessage",value:function(){return interpolate(gettext("%(username)s, your password has been changed successfully."),{username:this.props.user.username},!0)}},{key:"showSignIn",value:function(){j["default"].show(_["default"])}},{key:"render",value:function(){return c["default"].createElement("div",{className:"page page-message page-message-success page-forgotten-password-changed"},c["default"].createElement("div",{className:"container"},c["default"].createElement("div",{className:"message-panel"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,gettext("You will have to sign in using new password before continuing.")),c["default"].createElement("p",null,c["default"].createElement("button",{type:"button",className:"btn btn-primary",onClick:this.showSignIn},gettext("Sign in")))))))}}]),t}(c["default"].Component),L=function(e){function t(){var e,n,a,r;i(this,t);for(var s=arguments.length,u=Array(s),l=0;s>l;l++)u[l]=arguments[l];return n=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.complete=function(e){O["default"].softSignOut(),d["default"].render(c["default"].createElement(R,{user:e}),document.getElementById("page-mount"))},r=n,o(a,r)}return s(t,e),u(t,[{key:"render",value:function(){return c["default"].createElement(I,{callback:this.complete})}}]),t}(c["default"].Component);n["default"]=L},{"../index":19,"../services/ajax":45,"../services/auth":46,"../services/modal":51,"../services/snackbar":52,"../utils/banned-page":55,"../utils/validators":58,"./button":4,"./form":6,"./sign-in.js":14,react:"react","react-dom":"react-dom"}],14:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../index"),f=a(c),d=e("./button"),p=a(d),m=e("./form"),h=a(m),v=e("../services/ajax"),b=a(v),y=e("../services/modal"),g=a(y),_=e("../services/snackbar"),w=a(_),k=e("../utils/banned-page"),E=a(k),O=function(e){function t(e){r(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),s(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":19,"../services/ajax":45,"../services/modal":51,"../services/snackbar":52,"../utils/banned-page":55,"./button":4,"./form":6,react:"react"}],15:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 s(e){return e.snackbar}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0,n.select=s;var l=e("react"),c=a(l),f={info:"alert-info",success:"alert-success",warning:"alert-warning",error:"alert-danger"};n.Snackbar=function(e){function t(){return r(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(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"}],16:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactGuestNav=n.GuestNav=n.GuestMenu=void 0;var u=e("react"),l=a(u),c=e("../avatar"),f=a(c),d=e("../register-button"),p=a(d),m=e("../sign-in.js"),h=a(m),v=e("../../services/mobile-navbar-dropdown"),b=a(v),y=e("../../services/modal"),g=a(y),_=n.GuestMenu=function(e){function t(){return r(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(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 r(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(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 r(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),s(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":50,"../../services/modal":51,"../avatar":2,"../register-button":9,"../sign-in.js":14,react:"react"}],17:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 s(e){return e.auth}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserMenu=n.UserMenu=void 0,n.select=s;var l=e("react"),c=a(l),f=e("./guest-nav"),d=e("./user-nav");n.UserMenu=function(e){function t(){return r(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(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 r(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(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":16,"./user-nav":18,react:"react"}],18:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 s(e){return{user:e.auth.user}}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserNav=n.UserNav=n.UserMenu=void 0,n.selectUserMenu=s;var l=e("react"),c=a(l),f=e("react-redux"),d=e("../avatar"),p=a(d),m=e("../../index"),h=a(m),v=e("../../services/mobile-navbar-dropdown"),b=a(v),y=n.UserMenu=function(e){function t(){return r(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(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 r(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(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 r(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"showUserMenu",value:function(){b["default"].showConnected("user-menu",(0,f.connect)(s)(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":19,"../../services/mobile-navbar-dropdown":50,"../avatar":2,react:"react","react-redux":"react-redux"}],19:[function(e,t,n){(function(t){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Misago=void 0;var o=e("./utils/ordered-list"),s=a(o),u=n.Misago=function(){function e(){r(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 s["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 u;t.misago=l,n["default"]=l}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./utils/ordered-list":57}],20:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init(o["default"].get("CSRF_COOKIE_NAME"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../services/ajax"),u=a(s);o["default"].addInitializer({name:"ajax",initializer:r})},{"../index":19,"../services/ajax":45}],21:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,f["default"])((0,i.connect)(u.select)(l["default"]),"auth-message-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("react-redux"),o=e("../index"),s=a(o),u=e("../components/auth-message"),l=a(u),c=e("../utils/mount-component"),f=a(c);s["default"].addInitializer({name:"component:auth-message",initializer:r,after:"store"})},{"../components/auth-message":1,"../index":19,"../utils/mount-component":56,"react-redux":"react-redux"}],22:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){c["default"].addReducer("auth",u["default"],Object.assign({isAuthenticated:e.get("isAuthenticated"),isAnonymous:!e.get("isAuthenticated"),user:e.get("user")},s.initialState))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../reducers/auth"),u=a(s),l=e("../services/store"),c=a(l);o["default"].addInitializer({name:"reducer:auth",initializer:r,before:"store"})},{"../index":19,"../reducers/auth":42,"../services/store":53}],23:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init(c["default"],d["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../services/auth"),u=a(s),l=e("../services/store"),c=a(l),f=e("../services/local-storage"),d=a(f);o["default"].addInitializer({name:"auth",initializer:r,after:"store"})},{"../index":19,"../services/auth":46,"../services/local-storage":49,"../services/store":53}],24:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.get("BAN_MESSAGE")&&(0,u["default"])(e.get("BAN_MESSAGE"),!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../utils/banned-page"),u=a(s);o["default"].addInitializer({name:"component:baned-page",initializer:r,after:"store"})},{"../index":19,"../utils/banned-page":55}],25:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){c["default"].init(e,u["default"],d["default"],m["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../services/ajax"),u=a(s),l=e("../services/captcha"),c=a(l),f=e("../services/include"),d=a(f),p=e("../services/snackbar"),m=a(p);o["default"].addInitializer({name:"captcha",initializer:r})},{"../index":19,"../services/ajax":45,"../services/captcha":47,"../services/include":48,"../services/snackbar":52}],26:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){u["default"].init(e.get("STATIC_URL"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../services/include"),u=a(s);o["default"].addInitializer({name:"include",initializer:r})},{"../index":19,"../services/include":48}],27:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init("misago_")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../services/local-storage"),u=a(s);o["default"].addInitializer({name:"local-storage",initializer:r})},{"../index":19,"../services/local-storage":49}],28:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=document.getElementById("mobile-navbar-dropdown-mount");e&&u["default"].init(e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../services/mobile-navbar-dropdown"),u=a(s);o["default"].addInitializer({name:"dropdown",initializer:r,before:"store"})},{"../index":19,"../services/mobile-navbar-dropdown":50}],29:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=document.getElementById("modal-mount");e&&u["default"].init(e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../services/modal"),u=a(s);o["default"].addInitializer({name:"modal",initializer:r,before:"store"})},{"../index":19,"../services/modal":51}],30:[function(e,t,n){"use strict";
+function a(e){return e&&e.__esModule?e:{"default":e}}function r(){o["default"].locale($("html").attr("lang"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("moment"),o=a(i),s=e("../index"),u=a(s);u["default"].addInitializer({name:"moment",initializer:r})},{"../index":19,moment:"moment"}],31:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("request-activation-link-mount")&&(0,c["default"])(u["default"],"request-activation-link-mount",!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../components/request-activation-link"),u=a(s),l=e("../utils/mount-component"),c=a(l);o["default"].addInitializer({name:"component:request-activation-link",initializer:r,after:"store"})},{"../components/request-activation-link":11,"../index":19,"../utils/mount-component":56}],32:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("request-password-reset-mount")&&(0,c["default"])(u["default"],"request-password-reset-mount",!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../components/request-password-reset"),u=a(s),l=e("../utils/mount-component"),c=a(l);o["default"].addInitializer({name:"component:request-password-reset",initializer:r,after:"store"})},{"../components/request-password-reset":12,"../index":19,"../utils/mount-component":56}],33:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("reset-password-form-mount")&&(0,c["default"])(u["default"],"reset-password-form-mount",!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../components/reset-password-form"),u=a(s),l=e("../utils/mount-component"),c=a(l);o["default"].addInitializer({name:"component:reset-password-form",initializer:r,after:"store"})},{"../components/reset-password-form":13,"../index":19,"../utils/mount-component":56}],34:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,c["default"])((0,i.connect)(u.select)(u.Snackbar),"snackbar-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("react-redux"),o=e("../index"),s=a(o),u=e("../components/snackbar"),l=e("../utils/mount-component"),c=a(l);s["default"].addInitializer({name:"component:snackbar",initializer:r,after:"snackbar"})},{"../components/snackbar":15,"../index":19,"../utils/mount-component":56,"react-redux":"react-redux"}],35:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("snackbar",u["default"],s.initialState)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../reducers/snackbar"),u=a(s),l=e("../services/store"),c=a(l);o["default"].addInitializer({name:"reducer:snackbar",initializer:r,before:"store"})},{"../index":19,"../reducers/snackbar":43,"../services/store":53}],36:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init(c["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../services/snackbar"),u=a(s),l=e("../services/store"),c=a(l);o["default"].addInitializer({name:"snackbar",initializer:r,after:"store"})},{"../index":19,"../services/snackbar":52,"../services/store":53}],37:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init()}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../services/store"),u=a(s);o["default"].addInitializer({name:"store",initializer:r,before:"_end"})},{"../index":19,"../services/store":53}],38:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("tick",u["default"],s.initialState)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../reducers/tick"),u=a(s),l=e("../services/store"),c=a(l);o["default"].addInitializer({name:"reducer:tick",initializer:r,before:"store"})},{"../index":19,"../reducers/tick":44,"../services/store":53}],39:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){window.setInterval(function(){l["default"].dispatch((0,s.doTick)())},c)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../reducers/tick"),u=e("../services/store"),l=a(u),c=5e4;o["default"].addInitializer({name:"tick-start",initializer:r,after:"store"})},{"../index":19,"../reducers/tick":44,"../services/store":53}],40:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,c["default"])((0,i.connect)(u.select)(u.UserMenu),"user-menu-mount"),(0,c["default"])((0,i.connect)(u.select)(u.CompactUserMenu),"user-menu-compact-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("react-redux"),o=e("../index"),s=a(o),u=e("../components/user-menu/root"),l=e("../utils/mount-component"),c=a(l);s["default"].addInitializer({name:"component:user-menu",initializer:r,after:"store"})},{"../components/user-menu/root":17,"../index":19,"../utils/mount-component":56,"react-redux":"react-redux"}],41:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].init(u["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("../index"),o=a(i),s=e("../services/include"),u=a(s),l=e("../services/zxcvbn"),c=a(l);o["default"].addInitializer({name:"zxcvbn",initializer:r})},{"../index":19,"../services/include":48,"../services/zxcvbn":54}],42:[function(e,t,n){"use strict";function a(e){return{type:s,user:e}}function r(){var e=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];return{type:u,soft:e}}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 s:return Object.assign({},e,{signedIn:t.user});case u:return Object.assign({},e,{isAuthenticated:!1,isAnonymous:!0,signedOut:!t.soft});default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.signIn=a,n.signOut=r,n["default"]=i;var o=n.initialState={signedIn:!1,signedOut:!1},s=n.SIGN_IN="SIGN_IN",u=n.SIGN_OUT="SIGN_OUT"},{}],43:[function(e,t,n){"use strict";function a(e,t){return{type:s,message:e,messageType:t}}function r(){return{type:u}}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===s?{type:t.messageType,message:t.message,isVisible:!0}:t.type===u?Object.assign({},e,{isVisible:!1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.showSnackbar=a,n.hideSnackbar=r,n["default"]=i;var o=n.initialState={type:"info",message:"",isVisible:!1},s=n.SHOW_SNACKBAR="SHOW_SNACKBAR",u=n.HIDE_SNACKBAR="HIDE_SNACKBAR"},{}],44:[function(e,t,n){"use strict";function a(){return{type:o}}function r(){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=a,n["default"]=r;var i=n.initialState={tick:0},o=n.TICK="TICK"},{}],45:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=n.Ajax=function(){function e(){a(this,e),this._cookieName=null,this._csrfToken=null}return r(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 a=this;return new Promise(function(r,i){var o={url:t,method:e,headers:{"X-CSRFToken":a._csrfToken},data:n||{},dataType:"json",success:function(e){r(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},{}],46:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Auth=void 0;var i=e("../reducers/auth"),o=n.Auth=function(){function e(){a(this,e)}return r(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})}},{key:"softSignOut",value:function(){this._store.dispatch((0,i.signOut)(!0)),this._local.set("auth",{isAuthenticated:!1})}}]),e}();n["default"]=new o},{"../reducers/auth":42}],47:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function 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 s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Captcha=n.ReCaptcha=n.ReCaptchaComponent=n.QACaptcha=n.NoCaptcha=n.BaseCaptcha=void 0;var u=e("react"),l=a(u),c=e("../components/form-group"),f=a(c),d=n.BaseCaptcha=function(){function e(){o(this,e)}return s(e,[{key:"init",value:function(e,t,n,a){this._context=e,this._ajax=t,this._include=n,this._snackbar=a}}]),e}(),p=n.NoCaptcha=function(e){function t(){return o(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),s(t,[{key:"load",value:function(){return new Promise(function(e){e()})}},{key:"validator",value:function(){return null}},{key:"component",value:function(){return null}}]),t}(d),m=n.QACaptcha=function(e){function t(){return o(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),s(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),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),s(t,[{key:"componentDidMount",value:function(){var e=this;grecaptcha.render("recaptcha",{sitekey:this.props.siteKey,callback:function(t){e.props.binding({target:{value:t}})}})}},{key:"render",value:function(){return l["default"].createElement("div",{id:"recaptcha"})}}]),t}(l["default"].Component),v=n.ReCaptcha=function(e){function t(){return o(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),s(t,[{key:"load",value:function(){return this._include.include("https://www.google.com/recaptcha/api.js",!0),new Promise(function(e){var t=function 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 s(e,[{key:"init",value:function(e,t,n,a){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,a)}},{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"}],48:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=n.Include=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._staticUrl=e,this._included=[]}},{key:"include",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?!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},{}],49:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=window.localStorage,o=n.LocalStorage=function(){function e(){a(this,e)}return r(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},{}],50:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.MobileNavbarDropdown=void 0;var o=e("../utils/mount-component"),s=a(o),u=n.MobileNavbarDropdown=function(){function e(){r(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,s["default"])(e,this._element.id),$(this._element).addClass("open"))}},{key:"showConnected",value:function(e,t){this._component===e?this.hide():(this._component=e,(0,s["default"])(t,this._element.id,!0),$(this._element).addClass("open"))}},{key:"hide",value:function(){$(this._element).removeClass("open"),this._component=null}}]),e}();n["default"]=new u},{"../utils/mount-component":56}],51:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Modal=void 0;var o=e("react-dom"),s=a(o),u=e("../utils/mount-component"),l=a(u),c=n.Modal=function(){function e(){r(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(){s["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":56,"react-dom":"react-dom"}],52:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0;var i=e("../reducers/snackbar"),o=300,s=5e3,u=n.Snackbar=function(){function e(){a(this,e)}return r(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},s))}},{key:"info",value:function(e){this.alert(e,"info")}},{key:"success",value:function(e){this.alert(e,"success")}},{key:"warning",value:function(e){this.alert(e,"warning")}},{key:"error",value:function(e){this.alert(e,"error")}},{key:"apiError",value:function(e){var t=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 u},{"../reducers/snackbar":43}],53:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.StoreWrapper=void 0;var i=e("redux"),o=n.StoreWrapper=function(){function e(){a(this,e),this._store=null,this._reducers={},this._initialState={}}return r(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"}],54:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=n.Zxcvbn=function(){function e(){a(this,e)}return r(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},{}],55:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){if(l["default"].render(s["default"].createElement(c.Provider,{store:v["default"].getStore()},s["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 r=e("moment"),i=a(r),o=e("react"),s=a(o),u=e("react-dom"),l=a(u),c=e("react-redux"),f=e("../components/banned-page"),d=a(f),p=e("../index"),m=a(p),h=e("../services/store"),v=a(h),b=function(e){return e.tick},y=(0,c.connect)(b)(d["default"])},{"../components/banned-page":3,"../index":19,"../services/store":53,moment:"moment",react:"react","react-dom":"react-dom","react-redux":"react-redux"}],56:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){var n=arguments.length<=2||void 0===arguments[2]?!0:arguments[2],a=document.getElementById(t);a&&(n?u["default"].render(o["default"].createElement(l.Provider,{store:f["default"].getStore()},o["default"].createElement(e,null)),a):u["default"].render(o["default"].createElement(e,null),a))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var i=e("react"),o=a(i),s=e("react-dom"),u=a(s),l=e("react-redux"),c=e("../services/store"),f=a(c)},{"../services/store":53,react:"react","react-dom":"react-dom","react-redux":"react-redux"}],57:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var i=function(){function e(t){a(this,e),this.isOrdered=!1,this._items=t||[]}return r(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===r.indexOf(e.key)&&(e.after?(t=r.indexOf(e.after),-1!==t&&(t+=1)):e.before&&(t=r.indexOf(e.before)),-1!==t&&(a.splice(t,0,e),r.splice(t,0,e.key)))}var n=[];e.forEach(function(e){n.push(e.key)});var a=[],r=[];e.forEach(function(e){e.after||e.before||(a.push(e),r.push(e.key))}),e.forEach(function(e){"_end"===e.before&&(a.push(e),r.push(e.key))});for(var i=200;i>0&&n.length!==r.length;)i-=1,e.forEach(t);return a}}]),e}();n["default"]=i},{}],58:[function(e,t,n){"use strict";function a(){return function(e){return 0===$.trim(e).length?gettext("This field is required."):void 0}}function r(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 a="",r=$.trim(n).length;return e>r?(a=t?t(e,r):ngettext("Ensure this value has at least %(limit_value)s character (it has %(show_value)s).","Ensure this value has at least %(limit_value)s characters (it has %(show_value)s).",e),interpolate(a,{limit_value:e,show_value:r},!0)):void 0}}function o(e,t){return function(n){var a="",r=$.trim(n).length;return r>e?(a=t?t(e,r):ngettext("Ensure this value has at most %(limit_value)s character (it has %(show_value)s).","Ensure this value has at most %(limit_value)s characters (it has %(show_value)s).",e),interpolate(a,{limit_value:e,show_value:r},!0)):void 0}}function s(e){var t=function(e){return ngettext("Username must be at least %(limit_value)s character long.","Username must be at least %(limit_value)s characters long.",e)};return this.minLength(e.username_length_min,t)}function u(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=a,n.email=r,n.minLength=i,n.maxLength=o,n.usernameMinLength=s,n.usernameMaxLength=u,n.usernameContent=l,n.passwordMinLength=c;var f=/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i,d=new RegExp("^[0-9a-z]+$","i")},{}]},{},[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41]);
 //# 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","_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,"LinkSent","RequestLinkForm","detail","placeholder","reset",12,"showActivation","append","find","val","getCsrfToken","pathname","submit","getActivationButton",13,"snackbar","Snackbar","TYPES_CLASSES","warning","snackbarClass","isVisible","getSnackbarClass",14,"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",15,"CompactUserMenu","UserMenu","_guestNav","_userNav","isAuthenticated","UserNav","CompactUserNav","./guest-nav","./user-nav",16,"selectUserMenu","store","_reactRedux","decision","confirm","absolute_url","logout","data-toggle","aria-haspopup","aria-expanded","_React$Component3","showConnected","connect","showUserMenu","../../index","react-redux",17,"global","Misago","_orderedList","_orderedList2","_initializers","_context","initializer","item","after","before","context","initOrder","orderedValues","forEach","fallback","has","./utils/ordered-list",18,"init","addInitializer",19,"_mountComponent2","_authMessage","_authMessage2","_mountComponent","../components/auth-message","../utils/mount-component",20,"_store2","addReducer","isAnonymous","initialState","_store","../reducers/auth","../services/store",21,"_localStorage2","_localStorage","../services/local-storage",22,23,"_include2","_include","../services/include",24,25,26,"element","document","getElementById","../services/mobile-navbar-dropdown",27,28,"locale",29,"_requestActivationLink2","_requestActivationLink","../components/request-activation-link",30,"../components/snackbar",31,"../reducers/snackbar",32,33,34,"_tick2","_tick","../reducers/tick",35,"setInterval","dispatch","doTick","TICK_PERIOD",36,"_root","../components/user-menu/root",37,38,"SIGN_IN","signOut","SIGN_OUT","action",39,"showSnackbar","SHOW_SNACKBAR","messageType","hideSnackbar","HIDE_SNACKBAR",40,"TICK","tick",41,"Ajax","_cookieName","_csrfToken","cookieName","cookie","indexOf","cookieRegex","RegExp","match","split","method","data","resolve","reject","xhr","headers","X-CSRFToken","dataType","jqXHR","responseJSON","statusText","ajax","request",42,"Auth","local","_local","syncSession","watchState","getState","set","watch",43,"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",44,"Include","staticUrl","_staticUrl","_included","script","remote","cache",45,"storage","localStorage","LocalStorage","prefix","_prefix","_watchers","addEventListener","newValueJson","JSON","parse","newValue","watcher","oldValue","setItem","stringify","itemString","getItem",46,"MobileNavbarDropdown","_element","_component","addClass","removeClass",47,"Modal","_reactDom","_reactDom2","modal","on","unmountComponentAtNode","react-dom",48,"HIDE_ANIMATION_LENGTH","MESSAGE_SHOW_LENGTH","_timeout","clearTimeout","alert",49,"StoreWrapper","_redux","_reducers","_initialState","reducer","createStore","combineReducers","redux",50,"Zxcvbn","zxcvbn","_loadingPromise","_loadedPromise",51,"changeState","Provider","getStore","RedrawedBannedPage","forumName","forum_name","history","pushState","../components/banned-page",52,"mount","rootElementId","connected","rootElement",53,"OrderedList","items","isOrdered","_items","order","values","values_only","_order","unordered","insertItem","insertAt","ordering","ordered","splice","index","iterations",54,"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\":54,\"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\":50,\"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\":43,\"../services/modal\":47,\"../services/snackbar\":48,\"../services/zxcvbn\":50,\"./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\":17,\"../services/ajax\":41,\"../services/auth\":42,\"../services/captcha\":43,\"../services/modal\":47,\"../services/snackbar\":48,\"../utils/banned-page\":51,\"../utils/validators\":54,\"./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});\nexports.LinkSent = exports.RequestLinkForm = undefined;\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 _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\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\nvar RequestLinkForm = exports.RequestLinkForm = (function (_Form) {\n  _inherits(RequestLinkForm, _Form);\n\n  function RequestLinkForm(props) {\n    _classCallCheck(this, RequestLinkForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RequestLinkForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'email': '',\n\n      'validators': {\n        'email': [validators.email()]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(RequestLinkForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Enter a valid email address.\"));\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('SEND_ACTIVATION_API'), {\n        'email': this.state.email\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.code === 'already_active') {\n        _snackbar2.default.info(rejection.detail);\n      } else if (rejection.code === 'inactive_admin') {\n        _snackbar2.default.info(rejection.detail);\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-activation-link' },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this.handleSubmit },\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', { type: 'text', className: 'form-control',\n                placeholder: gettext(\"Your e-mail address\"),\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('email'),\n                value: this.state.email })\n            )\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary btn-block',\n              loading: this.state.isLoading },\n            gettext(\"Send link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RequestLinkForm;\n})(_form2.default);\n\nvar LinkSent = exports.LinkSent = (function (_React$Component) {\n  _inherits(LinkSent, _React$Component);\n\n  function LinkSent() {\n    _classCallCheck(this, LinkSent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(LinkSent).apply(this, arguments));\n  }\n\n  _createClass(LinkSent, [{\n    key: 'getMessage',\n    value: function getMessage() {\n      return interpolate(gettext(\"Activation link was sent to %(email)s\"), {\n        email: this.props.user.email\n      }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-activation-link well-done' },\n        _react2.default.createElement(\n          'div',\n          { className: 'done-message' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-icon' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'check'\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'message-body' },\n            _react2.default.createElement(\n              'p',\n              null,\n              this.getMessage()\n            )\n          ),\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-primary btn-block',\n              onClick: this.props.callback },\n            gettext(\"Request another link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return LinkSent;\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.complete = function (apiResponse) {\n      _this3.setState({\n        complete: apiResponse\n      });\n    };\n\n    _this3.reset = function () {\n      _this3.setState({\n        complete: false\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(LinkSent, { user: this.state.complete, callback: this.reset });\n      } else {\n        return _react2.default.createElement(RequestLinkForm, { callback: this.complete });\n      };\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":17,\"../services/ajax\":41,\"../services/snackbar\":48,\"../utils/banned-page\":51,\"../utils/validators\":54,\"./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});\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\":17,\"../services/ajax\":41,\"../services/modal\":47,\"../services/snackbar\":48,\"../utils/banned-page\":51,\"./button\":4,\"./form\":6,\"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.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\"}],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.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\":46,\"../../services/modal\":47,\"../avatar\":2,\"../register-button\":9,\"../sign-in.js\":12,\"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.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\":14,\"./user-nav\":16,\"react\":\"react\"}],16:[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\":17,\"../../services/mobile-navbar-dropdown\":46,\"../avatar\":2,\"react\":\"react\",\"react-redux\":\"react-redux\"}],17:[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\":53}],18:[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\":17,\"../services/ajax\":41}],19:[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\":17,\"../utils/mount-component\":52,\"react-redux\":\"react-redux\"}],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('../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\":17,\"../reducers/auth\":38,\"../services/store\":49}],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 _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\":17,\"../services/auth\":42,\"../services/local-storage\":45,\"../services/store\":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 _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\":17,\"../utils/banned-page\":51}],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 _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\":17,\"../services/ajax\":41,\"../services/captcha\":43,\"../services/include\":44,\"../services/snackbar\":48}],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 _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\":17,\"../services/include\":44}],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 _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\":17,\"../services/local-storage\":45}],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 _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\":17,\"../services/mobile-navbar-dropdown\":46}],27:[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\":17,\"../services/modal\":47}],28:[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\":17,\"moment\":\"moment\"}],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 _requestActivationLink = require('../components/request-activation-link');\n\nvar _requestActivationLink2 = _interopRequireDefault(_requestActivationLink);\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  if (document.getElementById('request-activation-link-mount')) {\n    (0, _mountComponent2.default)(_requestActivationLink2.default, 'request-activation-link-mount', false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:request-activation-link',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../components/request-activation-link\":11,\"../index\":17,\"../utils/mount-component\":52}],30:[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\":13,\"../index\":17,\"../utils/mount-component\":52,\"react-redux\":\"react-redux\"}],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 _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\":17,\"../reducers/snackbar\":39,\"../services/store\":49}],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 _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\":17,\"../services/snackbar\":48,\"../services/store\":49}],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 _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\":17,\"../services/store\":49}],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 _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\":17,\"../reducers/tick\":40,\"../services/store\":49}],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 _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\":17,\"../reducers/tick\":40,\"../services/store\":49}],36:[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\":15,\"../index\":17,\"../utils/mount-component\":52,\"react-redux\":\"react-redux\"}],37:[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\":17,\"../services/include\":44,\"../services/zxcvbn\":50}],38:[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},{}],39:[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},{}],40:[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},{}],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 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},{}],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});\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\":38}],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; }; })(); /* 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\"}],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});\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},{}],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});\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},{}],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.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\":52}],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.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\":52,\"react-dom\":\"react-dom\"}],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});\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\":39}],49:[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\"}],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\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},{}],51:[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\":17,\"../services/store\":49,\"moment\":\"moment\",\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],52:[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\":49,\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],53:[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},{}],54:[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},{}]},{},[17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]);\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,"LinkSent","RequestLinkForm","indexOf","detail","placeholder","reset",12,"AccountInactivePage","RequestResetForm","_reactDom","_reactDom2","showInactivePage","getActivateButton","_React$Component3","_this4","render","document","getElementById","react-dom",13,"PasswordChangedPage","ResetPasswordForm","_signIn","_signIn2","showSignIn","softSignOut","./sign-in.js",14,"showActivation","append","find","val","getCsrfToken","pathname","submit","getActivationButton",15,"snackbar","Snackbar","TYPES_CLASSES","warning","snackbarClass","isVisible","getSnackbarClass",16,"CompactGuestNav","GuestNav","GuestMenu","_avatar","_avatar2","_registerButton","_registerButton2","_mobileNavbarDropdown","_mobileNavbarDropdown2","showSignInModal","_GuestMenu","showGuestMenu","../../services/mobile-navbar-dropdown","../../services/modal","../avatar","../register-button","../sign-in.js",17,"CompactUserMenu","UserMenu","_guestNav","_userNav","isAuthenticated","UserNav","CompactUserNav","./guest-nav","./user-nav",18,"selectUserMenu","store","_reactRedux","decision","confirm","absolute_url","logout","data-toggle","aria-haspopup","aria-expanded","showConnected","connect","showUserMenu","../../index","react-redux",19,"global","Misago","_orderedList","_orderedList2","_initializers","_context","initializer","item","after","before","context","initOrder","orderedValues","forEach","fallback","has","./utils/ordered-list",20,"init","addInitializer",21,"_mountComponent2","_authMessage","_authMessage2","_mountComponent","../components/auth-message","../utils/mount-component",22,"_store2","addReducer","isAnonymous","initialState","_store","../reducers/auth","../services/store",23,"_localStorage2","_localStorage","../services/local-storage",24,25,"_include2","_include","../services/include",26,27,28,"element","../services/mobile-navbar-dropdown",29,30,"locale",31,"_requestActivationLink2","_requestActivationLink","../components/request-activation-link",32,"_requestPasswordReset2","_requestPasswordReset","../components/request-password-reset",33,"_resetPasswordForm2","_resetPasswordForm","../components/reset-password-form",34,"../components/snackbar",35,"../reducers/snackbar",36,37,38,"_tick2","_tick","../reducers/tick",39,"setInterval","dispatch","doTick","TICK_PERIOD",40,"_root","../components/user-menu/root",41,42,"SIGN_IN","signOut","soft","SIGN_OUT","action",43,"showSnackbar","SHOW_SNACKBAR","messageType","hideSnackbar","HIDE_SNACKBAR",44,"TICK","tick",45,"Ajax","_cookieName","_csrfToken","cookieName","cookie","cookieRegex","RegExp","match","split","method","data","resolve","reject","xhr","headers","X-CSRFToken","dataType","jqXHR","responseJSON","statusText","ajax","request",46,"Auth","local","_local","syncSession","watchState","getState","set","watch",47,"Captcha","ReCaptcha","ReCaptchaComponent","QACaptcha","NoCaptcha","BaseCaptcha","include","_BaseCaptcha","_BaseCaptcha2","question","help_text","kwargs","grecaptcha","sitekey","siteKey","response","binding","_BaseCaptcha3","wait","setTimeout","recaptcha_site_key","captcha_type","../components/form-group",48,"Include","staticUrl","_staticUrl","_included","script","remote","cache",49,"storage","localStorage","LocalStorage","prefix","_prefix","_watchers","addEventListener","newValueJson","JSON","parse","newValue","watcher","oldValue","setItem","stringify","itemString","getItem",50,"MobileNavbarDropdown","_element","_component","addClass","removeClass",51,"Modal","modal","on","unmountComponentAtNode",52,"HIDE_ANIMATION_LENGTH","MESSAGE_SHOW_LENGTH","_timeout","clearTimeout","alert",53,"StoreWrapper","_redux","_reducers","_initialState","reducer","createStore","combineReducers","redux",54,"Zxcvbn","zxcvbn","_loadingPromise","_loadedPromise",55,"changeState","Provider","getStore","RedrawedBannedPage","forumName","forum_name","history","pushState","../components/banned-page",56,"mount","rootElementId","connected","rootElement",57,"OrderedList","items","isOrdered","_items","order","values","values_only","_order","unordered","insertItem","insertAt","ordering","ordered","splice","index","iterations",58,"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\":58,\"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\":54,\"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\":47,\"../services/modal\":51,\"../services/snackbar\":52,\"../services/zxcvbn\":54,\"./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\":19,\"../services/ajax\":45,\"../services/auth\":46,\"../services/captcha\":47,\"../services/modal\":51,\"../services/snackbar\":52,\"../utils/banned-page\":55,\"../utils/validators\":58,\"./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});\nexports.LinkSent = exports.RequestLinkForm = undefined;\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 _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\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\nvar RequestLinkForm = exports.RequestLinkForm = (function (_Form) {\n  _inherits(RequestLinkForm, _Form);\n\n  function RequestLinkForm(props) {\n    _classCallCheck(this, RequestLinkForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RequestLinkForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'email': '',\n\n      'validators': {\n        'email': [validators.email()]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(RequestLinkForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Enter a valid email address.\"));\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('SEND_ACTIVATION_API'), {\n        'email': this.state.email\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 (['already_active', 'inactive_admin'].indexOf(rejection.code) > -1) {\n        _snackbar2.default.info(rejection.detail);\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-activation-link' },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this.handleSubmit },\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', { type: 'text', className: 'form-control',\n                placeholder: gettext(\"Your e-mail address\"),\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('email'),\n                value: this.state.email })\n            )\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary btn-block',\n              loading: this.state.isLoading },\n            gettext(\"Send link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RequestLinkForm;\n})(_form2.default);\n\nvar LinkSent = exports.LinkSent = (function (_React$Component) {\n  _inherits(LinkSent, _React$Component);\n\n  function LinkSent() {\n    _classCallCheck(this, LinkSent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(LinkSent).apply(this, arguments));\n  }\n\n  _createClass(LinkSent, [{\n    key: 'getMessage',\n    value: function getMessage() {\n      return interpolate(gettext(\"Activation link was sent to %(email)s\"), {\n        email: this.props.user.email\n      }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-activation-link well-done' },\n        _react2.default.createElement(\n          'div',\n          { className: 'done-message' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-icon' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'check'\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'message-body' },\n            _react2.default.createElement(\n              'p',\n              null,\n              this.getMessage()\n            )\n          ),\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-primary btn-block',\n              onClick: this.props.callback },\n            gettext(\"Request another link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return LinkSent;\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.complete = function (apiResponse) {\n      _this3.setState({\n        complete: apiResponse\n      });\n    };\n\n    _this3.reset = function () {\n      _this3.setState({\n        complete: false\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(LinkSent, { user: this.state.complete, callback: this.reset });\n      } else {\n        return _react2.default.createElement(RequestLinkForm, { callback: this.complete });\n      };\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":19,\"../services/ajax\":45,\"../services/snackbar\":52,\"../utils/banned-page\":55,\"../utils/validators\":58,\"./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.AccountInactivePage = exports.LinkSent = exports.RequestResetForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\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 _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\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\nvar RequestResetForm = exports.RequestResetForm = (function (_Form) {\n  _inherits(RequestResetForm, _Form);\n\n  function RequestResetForm(props) {\n    _classCallCheck(this, RequestResetForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RequestResetForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'email': '',\n\n      'validators': {\n        'email': [validators.email()]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(RequestResetForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Enter a valid email address.\"));\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('SEND_PASSWORD_RESET_API'), {\n        'email': this.state.email\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 (['inactive_user', 'inactive_admin'].indexOf(rejection.code) > -1) {\n        this.props.showInactivePage(rejection);\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-password-reset' },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this.handleSubmit },\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', { type: 'text', className: 'form-control',\n                placeholder: gettext(\"Your e-mail address\"),\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('email'),\n                value: this.state.email })\n            )\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary btn-block',\n              loading: this.state.isLoading },\n            gettext(\"Send link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RequestResetForm;\n})(_form2.default);\n\nvar LinkSent = exports.LinkSent = (function (_React$Component) {\n  _inherits(LinkSent, _React$Component);\n\n  function LinkSent() {\n    _classCallCheck(this, LinkSent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(LinkSent).apply(this, arguments));\n  }\n\n  _createClass(LinkSent, [{\n    key: 'getMessage',\n    value: function getMessage() {\n      return interpolate(gettext(\"Reset password link was sent to %(email)s\"), {\n        email: this.props.user.email\n      }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-password-reset well-done' },\n        _react2.default.createElement(\n          'div',\n          { className: 'done-message' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-icon' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'check'\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'message-body' },\n            _react2.default.createElement(\n              'p',\n              null,\n              this.getMessage()\n            )\n          ),\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-primary btn-block',\n              onClick: this.props.callback },\n            gettext(\"Request another link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return LinkSent;\n})(_react2.default.Component);\n\nvar AccountInactivePage = exports.AccountInactivePage = (function (_React$Component2) {\n  _inherits(AccountInactivePage, _React$Component2);\n\n  function AccountInactivePage() {\n    _classCallCheck(this, AccountInactivePage);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(AccountInactivePage).apply(this, arguments));\n  }\n\n  _createClass(AccountInactivePage, [{\n    key: 'getActivateButton',\n    value: function getActivateButton() {\n      if (this.props.activation === 'inactive_user') {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'p',\n          null,\n          _react2.default.createElement(\n            'a',\n            { href: _index2.default.get('REQUEST_ACTIVATION_URL') },\n            gettext(\"Activate your account.\")\n          )\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: 'page page-message page-message-info page-forgotten-password-inactive' },\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                'info_outline'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                gettext(\"Your account is inactive.\")\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                this.props.message\n              ),\n              this.getActivateButton()\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return AccountInactivePage;\n})(_react2.default.Component);\n\nvar _class = (function (_React$Component3) {\n  _inherits(_class, _React$Component3);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this4 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this4.complete = function (apiResponse) {\n      _this4.setState({\n        complete: apiResponse\n      });\n    };\n\n    _this4.reset = function () {\n      _this4.setState({\n        complete: false\n      });\n    };\n\n    _this4.state = {\n      complete: false\n    };\n    return _this4;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'showInactivePage',\n    value: function showInactivePage(apiResponse) {\n      _reactDom2.default.render(_react2.default.createElement(AccountInactivePage, { activation: apiResponse.code,\n        message: apiResponse.detail }), document.getElementById('page-mount'));\n    }\n    /* jshint ignore:end */\n\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.state.complete) {\n        return _react2.default.createElement(LinkSent, { user: this.state.complete, callback: this.reset });\n      } else {\n        return _react2.default.createElement(RequestResetForm, { callback: this.complete,\n          showInactivePage: this.showInactivePage });\n      };\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":19,\"../services/ajax\":45,\"../services/snackbar\":52,\"../utils/banned-page\":55,\"../utils/validators\":58,\"./button\":4,\"./form\":6,\"react\":\"react\",\"react-dom\":\"react-dom\"}],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.PasswordChangedPage = exports.ResetPasswordForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\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 _signIn = require('./sign-in.js');\n\nvar _signIn2 = _interopRequireDefault(_signIn);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _auth = require('../services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\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 ResetPasswordForm = exports.ResetPasswordForm = (function (_Form) {\n  _inherits(ResetPasswordForm, _Form);\n\n  function ResetPasswordForm(props) {\n    _classCallCheck(this, ResetPasswordForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ResetPasswordForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'password': '',\n\n      'validators': {\n        'password': [validators.passwordMinLength(_index2.default.get('SETTINGS'))]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(ResetPasswordForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        if (this.state.password.trim().length) {\n          _snackbar2.default.error(this.state.errors.password[0]);\n        } else {\n          _snackbar2.default.error(gettext(\"Enter new password.\"));\n        }\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('CHANGE_PASSWORD_API'), {\n        'password': this.state.password\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 === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-reset-password' },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this.handleSubmit },\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', { type: 'password', className: 'form-control',\n                placeholder: gettext(\"Enter new password\"),\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('password'),\n                value: this.state.password })\n            )\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary btn-block',\n              loading: this.state.isLoading },\n            gettext(\"Change password\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ResetPasswordForm;\n})(_form2.default);\n\nvar PasswordChangedPage = exports.PasswordChangedPage = (function (_React$Component) {\n  _inherits(PasswordChangedPage, _React$Component);\n\n  function PasswordChangedPage() {\n    _classCallCheck(this, PasswordChangedPage);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(PasswordChangedPage).apply(this, arguments));\n  }\n\n  _createClass(PasswordChangedPage, [{\n    key: 'getMessage',\n    value: function getMessage() {\n      return interpolate(gettext(\"%(username)s, your password has been changed successfully.\"), {\n        username: this.props.user.username\n      }, true);\n    }\n  }, {\n    key: 'showSignIn',\n    value: function showSignIn() {\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        'div',\n        { className: 'page page-message page-message-success page-forgotten-password-changed' },\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                'check'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                this.getMessage()\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                gettext(\"You will have to sign in using new password before continuing.\")\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                _react2.default.createElement(\n                  'button',\n                  { type: 'button', className: 'btn btn-primary', onClick: this.showSignIn },\n                  gettext(\"Sign in\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return PasswordChangedPage;\n})(_react2.default.Component);\n\nvar _class = (function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this3, _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 = (_this3 = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this3), _this3.complete = function (apiResponse) {\n      _auth2.default.softSignOut();\n\n      _reactDom2.default.render(_react2.default.createElement(PasswordChangedPage, { user: apiResponse }), document.getElementById('page-mount'));\n    }, _temp), _possibleConstructorReturn(_this3, _ret);\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      return _react2.default.createElement(ResetPasswordForm, { callback: this.complete });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":19,\"../services/ajax\":45,\"../services/auth\":46,\"../services/modal\":51,\"../services/snackbar\":52,\"../utils/banned-page\":55,\"../utils/validators\":58,\"./button\":4,\"./form\":6,\"./sign-in.js\":14,\"react\":\"react\",\"react-dom\":\"react-dom\"}],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});\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\":19,\"../services/ajax\":45,\"../services/modal\":51,\"../services/snackbar\":52,\"../utils/banned-page\":55,\"./button\":4,\"./form\":6,\"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.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\"}],16:[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\":50,\"../../services/modal\":51,\"../avatar\":2,\"../register-button\":9,\"../sign-in.js\":14,\"react\":\"react\"}],17:[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\":16,\"./user-nav\":18,\"react\":\"react\"}],18:[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\":19,\"../../services/mobile-navbar-dropdown\":50,\"../avatar\":2,\"react\":\"react\",\"react-redux\":\"react-redux\"}],19:[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\":57}],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 _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\":19,\"../services/ajax\":45}],21:[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\":19,\"../utils/mount-component\":56,\"react-redux\":\"react-redux\"}],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 _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\":19,\"../reducers/auth\":42,\"../services/store\":53}],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 _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\":19,\"../services/auth\":46,\"../services/local-storage\":49,\"../services/store\":53}],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 _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\":19,\"../utils/banned-page\":55}],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 _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\":19,\"../services/ajax\":45,\"../services/captcha\":47,\"../services/include\":48,\"../services/snackbar\":52}],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 _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\":19,\"../services/include\":48}],27:[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\":19,\"../services/local-storage\":49}],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 _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\":19,\"../services/mobile-navbar-dropdown\":50}],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 _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\":19,\"../services/modal\":51}],30:[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\":19,\"moment\":\"moment\"}],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 _requestActivationLink = require('../components/request-activation-link');\n\nvar _requestActivationLink2 = _interopRequireDefault(_requestActivationLink);\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  if (document.getElementById('request-activation-link-mount')) {\n    (0, _mountComponent2.default)(_requestActivationLink2.default, 'request-activation-link-mount', false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:request-activation-link',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../components/request-activation-link\":11,\"../index\":19,\"../utils/mount-component\":56}],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 _requestPasswordReset = require('../components/request-password-reset');\n\nvar _requestPasswordReset2 = _interopRequireDefault(_requestPasswordReset);\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  if (document.getElementById('request-password-reset-mount')) {\n    (0, _mountComponent2.default)(_requestPasswordReset2.default, 'request-password-reset-mount', false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:request-password-reset',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../components/request-password-reset\":12,\"../index\":19,\"../utils/mount-component\":56}],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 _resetPasswordForm = require('../components/reset-password-form');\n\nvar _resetPasswordForm2 = _interopRequireDefault(_resetPasswordForm);\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  if (document.getElementById('reset-password-form-mount')) {\n    (0, _mountComponent2.default)(_resetPasswordForm2.default, 'reset-password-form-mount', false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:reset-password-form',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../components/reset-password-form\":13,\"../index\":19,\"../utils/mount-component\":56}],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 _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\":15,\"../index\":19,\"../utils/mount-component\":56,\"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 _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\":19,\"../reducers/snackbar\":43,\"../services/store\":53}],36:[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\":19,\"../services/snackbar\":52,\"../services/store\":53}],37:[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\":19,\"../services/store\":53}],38:[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\":19,\"../reducers/tick\":44,\"../services/store\":53}],39:[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\":19,\"../reducers/tick\":44,\"../services/store\":53}],40:[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\":17,\"../index\":19,\"../utils/mount-component\":56,\"react-redux\":\"react-redux\"}],41:[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\":19,\"../services/include\":48,\"../services/zxcvbn\":54}],42:[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  var soft = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];\n\n  return {\n    type: SIGN_OUT,\n    soft: soft\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: !action.soft\n      });\n\n    default:\n      return state;\n  }\n}\n\n},{}],43:[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},{}],44:[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},{}],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});\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},{}],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.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    key: 'softSignOut',\n    value: function softSignOut() {\n      this._store.dispatch((0, _auth.signOut)(true));\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\":42}],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; }; })(); /* 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\"}],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\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},{}],49:[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},{}],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});\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\":56}],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});\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\":56,\"react-dom\":\"react-dom\"}],52:[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\":43}],53:[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\"}],54:[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},{}],55:[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.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\":19,\"../services/store\":53,\"moment\":\"moment\",\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],56:[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\":53,\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],57:[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},{}],58:[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},{}]},{},[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41]);\n"],"sourceRoot":"/source/"}

+ 1 - 1
misago/templates/misago/forgottenpassword/form.html

@@ -16,7 +16,7 @@
   <div class="container">
 
     <div class="row">
-      <div id="page-component" class="col-md-4 col-md-offset-4" data-component-name="forgotten-password:reset-password">
+      <div id="reset-password-form-mount" class="col-md-4 col-md-offset-4">
 
         <noscript>
           <div class="well well-form well-noscript">

+ 1 - 1
misago/templates/misago/forgottenpassword/request.html

@@ -29,7 +29,7 @@
 
         </div>
       </div>
-      <div id="page-component" class="col-md-4" data-component-name="forgotten-password:request-link">
+      <div id="request-password-reset-mount" class="col-md-4">
 
         <noscript>
           <div class="well well-form well-noscript">