Просмотр исходного кода

tests for sign in form, some tests utils

Rafał Pitoń 9 лет назад
Родитель
Сommit
5226d0fa50

+ 3 - 4
frontend/src/components/form.js

@@ -125,8 +125,7 @@ export default class extends React.Component {
 
   handleSubmit = (event) => {
     // we don't reload page on submissions
-    event.preventDefault();
-
+    event.preventDefault()
     if (this.state.isLoading) {
       return;
     }
@@ -137,11 +136,11 @@ export default class extends React.Component {
 
       if (promise) {
         promise.then((success) => {
-          this.handleSuccess(success);
           this.setState({'isLoading': false});
+          this.handleSuccess(success);
         }, (rejection) => {
-          this.handleError(rejection);
           this.setState({'isLoading': false});
+          this.handleError(rejection);
         });
       } else {
         this.setState({'isLoading': false});

+ 4 - 1
frontend/src/components/sign-in.js

@@ -26,7 +26,7 @@ export default class extends Form {
   }
 
   clean() {
-    if (this.validate()) {
+    if (!this.isValid()) {
       snackbar.error(gettext("Fill out both fields."));
       return false;
     } else {
@@ -74,6 +74,9 @@ export default class extends Form {
       } else {
         snackbar.error(rejection.detail);
       }
+    } else if (rejection.status === 403 && rejection.ban) {
+      showBannedPage(rejection.ban);
+      modal.hide();
     } else {
       snackbar.apiError(rejection);
     }

+ 1 - 0
frontend/src/services/snackbar.js

@@ -46,6 +46,7 @@ export class Snackbar {
   }
 
   // shorthand for api errors
+
   apiError(rejection) {
     let message = gettext("Unknown error has occured.");
 

+ 67 - 1
frontend/src/test-setup.js

@@ -10,6 +10,7 @@ require('bootstrap-dropdown');
 
 require('jquery-mockjax')(jQuery, window);
 $.mockjaxSettings.logging = false;
+$.mockjaxSettings.responseTime = 100;
 
 require("babel-polyfill");
 
@@ -19,13 +20,15 @@ $('head').append('<base href="/test-runner/">');
 // Bootstrap's modal (we'll need it anyway for tests);
 $('body').append('<div class="modal fade" id="modal-mount" tabindex="-1" role="dialog" aria-labelledby="misago-modal-label"></div>');
 $('body').append('<div id="dropdown-mount"></div>');
+$('body').append('<div id="page-mount"></div>');
 $('body').append('<div id="test-mount"></div>');
 
 // set global utility function for cleaning test containers
 var ReactDOM = require('react-dom');
 global.emptyTestContainers = function() {
-  ReactDOM.unmountComponentAtNode(document.getElementById('modal-mount'));
   ReactDOM.unmountComponentAtNode(document.getElementById('dropdown-mount'));
+  ReactDOM.unmountComponentAtNode(document.getElementById('modal-mount'));
+  ReactDOM.unmountComponentAtNode(document.getElementById('page-mount'));
   ReactDOM.unmountComponentAtNode(document.getElementById('test-mount'));
 };
 
@@ -36,6 +39,21 @@ global.initEmptyStore = function(store) {
   store.init();
 };
 
+global.snackbarStoreMock = function() {
+  return {
+    message: [],
+
+    dispatch: function(action) {
+      if (action.type === 'SHOW_SNACKBAR') {
+        this.message = {
+          message: action.message,
+          type: action.messageType
+        };
+      }
+    }
+  };
+};
+
 // global init function for modal and dropdown services
 global.initModal = function(modal) {
   modal.init(document.getElementById('modal-mount'));
@@ -45,6 +63,54 @@ global.initDropdown = function(dropdown) {
   dropdown.init(document.getElementById('dropdown-mount'));
 };
 
+// global util functions for events
+var ReactTestUtils = require('react-addons-test-utils');
+global.simulateClick = function(selector) {
+  if ($(selector).length) {
+    ReactTestUtils.Simulate.click($(selector).get(0));
+  } else {
+    throw 'selector "' + selector + '" did not match anything';
+  }
+};
+
+global.simulateSubmit = function(selector) {
+  if ($(selector).length) {
+    ReactTestUtils.Simulate.submit($(selector).get(0));
+  } else {
+    throw 'selector "' + selector + '" did not match anything';
+  }
+};
+
+global.simulateChange = function(selector, value) {
+  if ($(selector).length) {
+    $(selector).val(value);
+    ReactTestUtils.Simulate.change($(selector).get(0));
+  } else {
+    throw 'selector "' + selector + '" did not match anything';
+  }
+};
+
+global.afterAjax = function(component, callback) {
+  window.setTimeout(function() {
+    component.forceUpdate(callback);
+  }, 150);
+};
+
+global.onElement = function(selector, callback) {
+  var _getElement = function() {
+    window.setTimeout(function() {
+      var element = $(selector);
+      if (element.length >= 1) {
+        callback(element);
+      } else {
+        _getElement();
+      }
+    }, 50);
+  };
+
+  _getElement();
+};
+
 // inlined gettext functions form Django
 // jshint ignore: start
 (function (globals) {

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

@@ -15,6 +15,8 @@ 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()}>

+ 64 - 0
frontend/tests/banned-page.js

@@ -0,0 +1,64 @@
+import assert from 'assert';
+import moment from 'moment';
+import misago from 'misago/index';
+import store from 'misago/services/store'; // jshint ignore:line
+import showBannedPage from 'misago/utils/banned-page';
+
+let ban = {
+  message: {
+    plain: 'Lorem ipsum dolor met sit amet elit!',
+    html: '<p>Lorem ipsum dolor met sit amet elit!</p>'
+  },
+  expires_on: moment().add(7, 'days')
+};
+
+describe('showBannedPage', function() {
+  beforeEach(function() {
+    misago._context = {
+      'SETTINGS': {
+        'forum_name': 'Fake Forum'
+      },
+      'BANNED_URL': 'banned/'
+    };
+
+    /* jshint ignore:start */
+    store.constructor();
+    store.addReducer('tick', function(state={tick: 1}, action=null) {
+      return {tick: 1};
+    }, {});
+    store.init();
+    /* jshint ignore:end */
+  });
+
+  afterEach(function() {
+    window.emptyTestContainers();
+  });
+
+  it("renders banned page", function(done) {
+    showBannedPage(ban, false);
+
+    window.setTimeout(function() {
+      assert.equal(
+        $('#page-mount .page-error-banned .lead p').text().trim(),
+        "Lorem ipsum dolor met sit amet elit!",
+        "utility renders ban message");
+
+      assert.equal(
+        $('#page-mount .page-error-banned p.message-footnote').text().trim(),
+        "This ban expires in 7 days.",
+        "utility renders ban message expiration");
+
+      done();
+    }, 200);
+  });
+
+  it("changes context", function() {
+    showBannedPage(ban, true);
+
+    assert.equal(document.title, "You are banned | Fake Forum",
+      "page title was changed");
+    assert.equal(
+      String(document.location.href).substr(-19), 'test-runner/banned/',
+      "page location was changed.");
+  });
+});

+ 1 - 1
frontend/tests/components/banned-page.js

@@ -63,7 +63,7 @@ describe("Banned page", function() {
     assert.equal(
       $('#test-mount .page-error-banned p.message-footnote').text().trim(),
       "This ban expires in 7 days.",
-      "component renders with past ban expiration");
+      "component renders with future ban expiration");
   });
 
   it('renders with past expiration date', function() {

+ 1 - 2
frontend/tests/components/button.js

@@ -1,7 +1,6 @@
 import assert from 'assert';
 import React from 'react'; // jshint ignore:line
 import ReactDOM from 'react-dom'; // jshint ignore:line
-import ReactTestUtils from 'react-addons-test-utils';
 import Button from 'misago/components/button'; // jshint ignore:line
 
 describe("Button", function() {
@@ -43,7 +42,7 @@ describe("Button", function() {
     let element = $('#test-mount button');
     assert.ok(element.length, "component rendered");
     assert.equal(element.attr('type'), 'button', "component is regular button");
-    ReactTestUtils.Simulate.click(element.get(0));
+    window.simulateClick('#test-mount button');
   });
 
   it('renders disabled', function() {

+ 262 - 0
frontend/tests/components/sign-in.js

@@ -0,0 +1,262 @@
+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 SignIn from 'misago/components/sign-in'; // jshint ignore:line
+import modal from 'misago/services/modal';
+import snackbar from 'misago/services/snackbar';
+
+let component = null;
+let snackbarStore = null;
+
+describe("Sign In", function() {
+  beforeEach(function() {
+    snackbarStore = window.snackbarStoreMock();
+    snackbar.init(snackbarStore);
+    window.initModal(modal);
+
+    misago._context = {
+      'SETTINGS': {
+        forum_name: 'Test Forum'
+      },
+
+      'AUTH_API': '/test-api/auth/',
+      'REQUEST_ACTIVATION_URL': '/request-activation/',
+      'FORGOTTEN_PASSWORD_URL': '/forgotten-password/'
+    };
+
+    /* jshint ignore:start */
+    component = ReactDOM.render(
+      <SignIn />,
+      document.getElementById('test-mount')
+    );
+    /* jshint ignore:end */
+  });
+
+  afterEach(function() {
+    window.emptyTestContainers();
+    $.mockjax.clear();
+  });
+
+  it("renders", function() {
+    assert.ok($('#test-mount .modal-sign-in #id_username').length,
+      "username input rendered");
+    assert.ok($('#test-mount .modal-sign-in #id_password').length,
+      "password input rendered");
+
+    assert.equal(
+      $('#test-mount .modal-footer .btn-default').attr('href'),
+      misago.get('FORGOTTEN_PASSWORD_URL'),
+      "forgotten password form url is valid");
+  });
+
+  it("handles empty submit", function() {
+    window.simulateSubmit('#test-mount form');
+
+    assert.deepEqual(snackbarStore.message, {
+      message: "Fill out both fields.",
+      type: 'error'
+    }, "form validation rejected empty form");
+  });
+
+  it("handles partial submit", function() {
+    window.simulateChange('#id_username', 'loremipsum');
+    window.simulateSubmit('#test-mount form');
+
+    assert.deepEqual(snackbarStore.message, {
+      message: "Fill out both fields.",
+      type: 'error'
+    }, "form validation rejected empty form");
+  });
+
+  it("handles backend error", function(done) {
+    $.mockjax({
+      url: '/test-api/auth/',
+      status: 500
+    });
+
+    window.simulateChange('#id_username', 'SomeFake');
+    window.simulateChange('#id_password', 'pass1234');
+    window.simulateSubmit('#test-mount form');
+
+    window.afterAjax(component, function() {
+      assert.deepEqual(snackbarStore.message, {
+        message: "Unknown error has occured.",
+        type: 'error'
+      }, "form raised alert about backend error");
+      done();
+    });
+  });
+
+  it("handles invalid credentials", function(done) {
+    let message = 'Login or password is incorrect.';
+
+    $.mockjax({
+      url: '/test-api/auth/',
+      status: 400,
+      responseText: {
+        'detail': message,
+        'code': 'invalid_login'
+      }
+    });
+
+    window.simulateChange('#id_username', 'SomeFake');
+    window.simulateChange('#id_password', 'pass1234');
+    window.simulateSubmit('#test-mount form');
+
+    window.afterAjax(component, function() {
+      assert.deepEqual(snackbarStore.message, {
+        message: message,
+        type: 'error'
+      }, "form raised alert about invalid credentials");
+      done();
+    });
+  });
+
+  it("to admin-activated account", function(done) {
+    let message = "This account has to be activated by admin.";
+
+    $.mockjax({
+      url: '/test-api/auth/',
+      status: 400,
+      responseText: {
+        'detail': message,
+        'code': 'inactive_admin'
+      }
+    });
+
+    window.simulateChange('#id_username', 'SomeFake');
+    window.simulateChange('#id_password', 'pass1234');
+    window.simulateSubmit('#test-mount form');
+
+    window.afterAjax(component, function() {
+      assert.deepEqual(snackbarStore.message, {
+        message: message,
+        type: 'info'
+      }, "form raised alert about admin-activated account");
+      done();
+    });
+  });
+
+  it("to user-activated account", function(done) {
+    let message = "This account has to be activated.";
+
+    $.mockjax({
+      url: '/test-api/auth/',
+      status: 400,
+      responseText: {
+        'detail': message,
+        'code': 'inactive_user'
+      }
+    });
+
+    window.simulateChange('#id_username', 'SomeFake');
+    window.simulateChange('#id_password', 'pass1234');
+    window.simulateSubmit('#test-mount form');
+
+    window.afterAjax(component, function() {
+      assert.deepEqual(snackbarStore.message, {
+        message: message,
+        type: 'info'
+      }, "form raised alert about user-activated account");
+
+      let activateButton = $('#test-mount .modal-footer .btn-success');
+      assert.ok(activateButton.length, "activation button displayed");
+      assert.equal(
+        activateButton.attr('href'), misago.get('REQUEST_ACTIVATION_URL'),
+        "button to activation form has valid url");
+
+      done();
+    });
+  });
+
+  it("from banned IP", function(done) {
+    $.mockjax({
+      url: '/test-api/auth/',
+      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('#id_username', 'SomeFake');
+    window.simulateChange('#id_password', 'pass1234');
+    window.simulateSubmit('#test-mount form');
+
+    window.onElement('.page-error-banned .lead', function() {
+      assert.equal(
+        $('.page .message-body .lead p').text().trim(),
+        "Your ip is banned for spamming.",
+        "displayed error banned page with ban message.");
+
+      done();
+    });
+  });
+
+  it("to banned account", function(done) {
+    $.mockjax({
+      url: '/test-api/auth/',
+      status: 400,
+      responseText: {
+        'detail': {
+          'expires_on': null,
+          'message': {
+            'plain': 'You are banned for trolling.',
+            'html': '<p>You are banned for trolling.</p>',
+          }
+        },
+        'code': 'banned'
+      }
+    });
+
+    window.simulateChange('#id_username', 'SomeFake');
+    window.simulateChange('#id_password', 'pass1234');
+    window.simulateSubmit('#test-mount form');
+
+    window.onElement('.page-error-banned .lead', function() {
+      assert.equal(
+        $('.page .message-body .lead p').text().trim(),
+        "You are banned for trolling.",
+        "displayed error banned page with ban message.");
+
+      done();
+    });
+  });
+
+  it("login successfully", function(done) {
+    $('body').append('<div id="hidden-login-form"></div>');
+
+    $.mockjax({
+      url: '/test-api/auth/',
+      status: 200,
+      responseText: {
+        'detail': 'ok'
+      }
+    });
+
+    let form = $('#hidden-login-form');
+    form.on('submit', function(e) {
+      e.stopPropagation();
+
+      assert.equal(form.find('input[name="username"]').val(), 'SomeFake',
+        "form was filled with valid username.");
+      assert.equal(form.find('input[name="password"]').val(), 'pass1234',
+        "form was filled with valid password.");
+
+      form.remove();
+      done();
+
+      return false;
+    });
+
+    window.simulateChange('#id_username', 'SomeFake');
+    window.simulateChange('#id_password', 'pass1234');
+    window.simulateSubmit('#test-mount form');
+  });
+});

+ 64 - 0
frontend/tests/snackbar.js

@@ -88,4 +88,68 @@ describe("Snackbar", function() {
       isVisible: true
     }, "service set success message in store");
   });
+
+  it("provides shortcut for backend disconnection", function() {
+    snackbar.apiError({
+      status: 0
+    });
+
+    assert.deepEqual(store.getState().snackbar, {
+      type: 'error',
+      message: "Lost connection with application.",
+      isVisible: true
+    }, "service set disconnected message in store");
+  });
+
+  it("provides shortcut for backend permission denied", function() {
+    snackbar.apiError({
+      status: 403,
+      detail: "Permission denied"
+    });
+
+    assert.deepEqual(store.getState().snackbar, {
+      type: 'error',
+      message: "You don't have permission to perform this action.",
+      isVisible: true
+    }, "service set default 403 message in store");
+  });
+
+  it("provides shortcut for custom backend permission denied", function() {
+    snackbar.apiError({
+      status: 403,
+      detail: "REJECTION!"
+    });
+
+    assert.deepEqual(store.getState().snackbar, {
+      type: 'error',
+      message: "REJECTION!",
+      isVisible: true
+    }, "service set custom 403 message in store");
+  });
+
+  it("provides shortcut for backend rejection", function() {
+    snackbar.apiError({
+      status: 400,
+      detail: "NOPE!"
+    });
+
+    assert.deepEqual(store.getState().snackbar, {
+      type: 'error',
+      message: "NOPE!",
+      isVisible: true
+    }, "service set custom 400 message in store");
+  });
+
+  it("provides shortcut for backend 404 error", function() {
+    snackbar.apiError({
+      status: 404,
+      detail: "NOT FOUND"
+    });
+
+    assert.deepEqual(store.getState().snackbar, {
+      type: 'error',
+      message: "Action link is invalid.",
+      isVisible: true
+    }, "service set not found message in store");
+  });
 });

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

@@ -1,3 +1,3 @@
-!function e(t,n,r){function a(i,u){if(!n[i]){if(!t[i]){var s="function"==typeof require&&require;if(!u&&s)return s(i,!0);if(o)return o(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[i]={exports:{}};t[i][0].call(c.exports,function(e){var n=t[i][1][e];return a(n?n:e)},c,c.exports,e,t,n,r)}return n[i].exports}for(var o="function"==typeof require&&require,i=0;i<r.length;i++)a(r[i]);return a}({1:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=$("base").attr("href")+"user-avatar/",f=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(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"}],2:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("moment"),l=r(s),c=e("react"),f=r(c),d=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(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"}],3:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=e("./loader"),f=r(c),d=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"render",value:function(){var e=null,t="btn "+this.props.className,n=this.props.disabled;return this.props.loading?(e=l["default"].createElement(f["default"],null),t+=" btn-loading",n=!0):e=this.props.children,l["default"].createElement("button",{type:this.props.onClick?"button":"submit",className:t,disabled:n,onClick:this.props.onClick},e)}}]),t}(l["default"].Component);n["default"]=d,d.defaultProps={className:"btn-default",type:"submit",loading:!1,disabled:!1,onClick:null}},{"./loader":5,react:"react"}],4:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=e("../utils/validators"),f=(0,c.required)(),d=function(e){function t(){var e,n,r,i;a(this,t);for(var u=arguments.length,s=Array(u),l=0;u>l;l++)s[l]=arguments[l];return n=r=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(s))),r.bindInput=function(e){return function(t){var n={};n[e]=t.target.value;var a=r.state.errors||{};a[e]=r.validateField(e,n[e]),n.errors=a,r.setState(n)}},r.handleSubmit=function(e){if(e.preventDefault(),!r.state.isLoading&&r.clean()){r.setState({isLoading:!0});var t=r.send();t?t.then(function(e){r.handleSuccess(e),r.setState({isLoading:!1})},function(e){r.handleError(e),r.setState({isLoading:!1})}):r.setState({isLoading:!1})}},i=n,o(r,i)}return i(t,e),u(t,[{key:"validate",value:function(){var e={},t={required:this.state.validators.required||this.state.validators,optional:this.state.validators.optional||{}},n=[];for(var r in t.required)t.required.hasOwnProperty(r)&&n.push(r);for(var r in t.optional)t.optional.hasOwnProperty(r)&&n.push(r);for(var a in n){var r=n[a],o=this.validateField(r,this.state[r]);null===o?e[r]=null:o&&(e[r]=o)}return e}},{key:"isValid",value:function(){var e=this.validate();for(var t in e)if(e.hasOwnProperty(t)&&null!==e[t])return!1;return!0}},{key:"validateField",value:function(e,t){var n=[],r={required:(this.state.validators.required||this.state.validators)[e],optional:(this.state.validators.optional||{})[e]},a=f(t)||!1;if(r.required){if(a)n=[a];else for(var o in r.required){var i=r.required[o](t);i&&n.push(i)}return n.length?n:null}if(a===!1&&r.optional){for(var o in r.optional){var i=r.optional[o](t);i&&n.push(i)}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":36,react:"react"}],5:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(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"}],6:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-dialog modal-register"},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":"Close"},l["default"].createElement("span",{"aria-hidden":"true"},"×")),l["default"].createElement("h4",{className:"modal-title"},gettext("Register"))),l["default"].createElement("div",{className:"modal-body"},l["default"].createElement("p",null,"This will be registration form!")),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],7:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=e("../index"),f=r(c),d=e("./button"),p=r(d),m=e("./form"),h=r(m),v=e("../services/ajax"),b=r(v),y=e("../services/modal"),g=r(y),_=e("../services/snackbar"),w=r(_),k=e("../utils/banned-page"),O=r(k),E=function(e){function t(e){a(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,showActivation:!1,username:"",password:"",validators:{username:[],password:[]}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.validate()?(w["default"].error(gettext("Fill out both fields.")),!1):!0}},{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(){g["default"].hide();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()}},{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,O["default"])(e.detail),g["default"].hide()):w["default"].error(e.detail):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"},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"]=E},{"../index":12,"../services/ajax":28,"../services/modal":30,"../services/snackbar":31,"../utils/banned-page":33,"./button":3,"./form":4,react:"react"}],8:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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 u(e){return e.snackbar}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0,n.select=u;var l=e("react"),c=r(l),f={info:"alert-info",success:"alert-success",warning:"alert-warning",error:"alert-danger"};n.Snackbar=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(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"}],9:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactGuestNav=n.GuestNav=n.GuestMenu=void 0;var s=e("react"),l=r(s),c=e("../button"),f=r(c),d=e("../../services/modal"),p=r(d),m=e("../../services/mobile-navbar-dropdown"),h=r(m),v=e("../avatar"),b=r(v),y=e("../sign-in.js"),g=r(y),_=e("../register/root.js"),w=r(_),k=n.GuestMenu=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"showSignInModal",value:function(){p["default"].show(g["default"])}},{key:"showRegisterModal",value:function(){p["default"].show(w["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"},"Thy Sign In")),l["default"].createElement("div",{className:"col-xs-6"},l["default"].createElement("button",{type:"button",className:"btn btn-primary btn-block"},"Thy Registry")))))}}]),t}(l["default"].Component);n.GuestNav=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"nav nav-guest"},l["default"].createElement(f["default"],{type:"button",className:"navbar-btn btn-default",onClick:this.showSignInModal},"Sign in"),l["default"].createElement(f["default"],{type:"button",className:"navbar-btn btn-primary",onClick:this.showRegisterModal},"Register"))}}]),t}(k),n.CompactGuestNav=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"showGuestMenu",value:function(){h["default"].show(k)}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showGuestMenu},l["default"].createElement(b["default"],{size:"64"}))}}]),t}(l["default"].Component)},{"../../services/mobile-navbar-dropdown":29,"../../services/modal":30,"../avatar":1,"../button":3,"../register/root.js":6,"../sign-in.js":7,react:"react"}],10:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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 u(e){return e.auth}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserMenu=n.UserMenu=void 0,n.select=u;var l=e("react"),c=r(l),f=e("./guest-nav"),d=e("./user-nav"),p=r(d);n.UserMenu=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),s(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(p["default"],{user:this.props.user}):c["default"].createElement(f.GuestNav,null)}}]),t}(c["default"].Component),n.CompactUserMenu=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),s(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(p["default"],{user:this.props.user}):c["default"].createElement(f.CompactGuestNav,null)}}]),t}(c["default"].Component)},{"./guest-nav":9,"./user-nav":11,react:"react"}],11:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"render",value:function(){return l["default"].createElement("ul",{"class":"ul nav navbar-nav nav-user"})}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],12:[function(e,t,n){(function(t){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Misago=void 0;var i=e("./utils/ordered-list"),u=r(i),s=n.Misago=function(){function e(){a(this,e),this._initializers=[],this._context={}}return o(e,[{key:"addInitializer",value:function(e){this._initializers.push({key:e.name,item:e.initializer,after:e.after,before:e.before})}},{key:"init",value:function(e){var t=this;this._context=e;var 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":35}],13:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){s["default"].init(i["default"].get("CSRF_COOKIE_NAME"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../services/ajax"),s=r(u);i["default"].addInitializer({name:"ajax",initializer:a})},{"../index":12,"../services/ajax":28}],14:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){c["default"].addReducer("auth",s["default"],{isAuthenticated:e.get("isAuthenticated"),isAnonymous:!e.get("isAuthenticated"),user:e.get("user")})}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../reducers/auth"),s=r(u),l=e("../services/store"),c=r(l);i["default"].addInitializer({name:"reducer:auth",initializer:a,before:"store"})},{"../index":12,"../reducers/auth":25,"../services/store":32}],15:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){var e=document.getElementById("mobile-navbar-dropdown-mount");e&&s["default"].init(e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../services/mobile-navbar-dropdown"),s=r(u);i["default"].addInitializer({name:"dropdown",initializer:a,before:"store"})},{"../index":12,"../services/mobile-navbar-dropdown":29}],16:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){var e=document.getElementById("modal-mount");e&&s["default"].init(e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../services/modal"),s=r(u);i["default"].addInitializer({name:"modal",initializer:a,before:"store"})},{"../index":12,"../services/modal":30}],17:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){i["default"].locale($("html").attr("lang"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("moment"),i=r(o),u=e("../index"),s=r(u);s["default"].addInitializer({name:"moment",initializer:a})},{"../index":12,moment:"moment"}],18:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){(0,c["default"])((0,o.connect)(s.select)(s.Snackbar),"snackbar-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("react-redux"),i=e("../index"),u=r(i),s=e("../components/snackbar"),l=e("../utils/mount-component"),c=r(l);u["default"].addInitializer({name:"component:snackbar",initializer:a,after:"snackbar"})},{"../components/snackbar":8,"../index":12,"../utils/mount-component":34,"react-redux":"react-redux"}],19:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){c["default"].addReducer("snackbar",s["default"],u.initialState)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../reducers/snackbar"),s=r(u),l=e("../services/store"),c=r(l);i["default"].addInitializer({name:"reducer:snackbar",initializer:a,before:"store"})},{"../index":12,"../reducers/snackbar":26,"../services/store":32}],20:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){s["default"].init(c["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../services/snackbar"),s=r(u),l=e("../services/store"),c=r(l);i["default"].addInitializer({name:"snackbar",initializer:a,after:"store"})},{"../index":12,"../services/snackbar":31,"../services/store":32}],21:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){s["default"].init()}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../services/store"),s=r(u);i["default"].addInitializer({name:"store",initializer:a,before:"_end"})},{"../index":12,"../services/store":32}],22:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){c["default"].addReducer("tick",s["default"],u.initialState)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../reducers/tick"),s=r(u),l=e("../services/store"),c=r(l);i["default"].addInitializer({name:"reducer:tick",initializer:a,before:"store"})},{"../index":12,"../reducers/tick":27,"../services/store":32}],23:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){window.setInterval(function(){l["default"].dispatch((0,u.doTick)())},c)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../reducers/tick"),s=e("../services/store"),l=r(s),c=5e4;i["default"].addInitializer({name:"tick-start",initializer:a,after:"store"})},{"../index":12,"../reducers/tick":27,"../services/store":32}],24:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){(0,c["default"])((0,o.connect)(s.select)(s.UserMenu),"user-menu-mount"),(0,c["default"])((0,o.connect)(s.select)(s.CompactUserMenu),"user-menu-compact-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("react-redux"),i=e("../index"),u=r(i),s=e("../components/user-menu/root"),l=e("../utils/mount-component"),c=r(l);u["default"].addInitializer({name:"component:user-menu",initializer:a,after:"store"})},{"../components/user-menu/root":10,"../index":12,"../utils/mount-component":34,"react-redux":"react-redux"}],25:[function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];arguments.length<=1||void 0===arguments[1]?null:arguments[1];return e}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r},{}],26:[function(e,t,n){"use strict";function r(e,t){return{type:u,message:e,messageType:t}}function a(){return{type:s}}function o(){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===u?{type:t.messageType,message:t.message,isVisible:!0
-}:t.type===s?Object.assign({},e,{isVisible:!1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.showSnackbar=r,n.hideSnackbar=a,n["default"]=o;var i=n.initialState={type:"info",message:"",isVisible:!1},u=n.SHOW_SNACKBAR="SHOW_SNACKBAR",s=n.HIDE_SNACKBAR="HIDE_SNACKBAR"},{}],27:[function(e,t,n){"use strict";function r(){return{type:i}}function a(){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===i?Object.assign({},e,{tick:e.tick+1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.doTick=r,n["default"]=a;var o=n.initialState={tick:0},i=n.TICK="TICK"},{}],28:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=n.Ajax=function(){function e(){r(this,e),this._cookieName=null,this._csrfToken=null}return a(e,[{key:"init",value:function(e){this._cookieName=e,this._csrfToken=this.getCsrfToken()}},{key:"getCsrfToken",value:function(){if(-1!==document.cookie.indexOf(this._cookieName)){var e=new RegExp(this._cookieName+"=([^;]*)"),t=document.cookie.match(e)[0];return t?t.split("=")[1]:null}return null}},{key:"request",value:function(e,t,n){var r=this;return new Promise(function(a,o){var i={url:t,method:e,headers:{"X-CSRFToken":r._csrfToken},data:n||{},dataType:"json",success:function(e){a(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,t.statusText=e.statusText,o(t)}};$.ajax(i)})}},{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 o},{}],29:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.MobileNavbarDropdown=void 0;var i=e("../utils/mount-component"),u=r(i),s=n.MobileNavbarDropdown=function(){function e(){a(this,e)}return o(e,[{key:"init",value:function(e){this._element=e,this._component=null}},{key:"show",value:function(e){this._component===e?this.hide():(this._component=e,(0,u["default"])(e,this._element.id),$(this._element).addClass("open"))}},{key:"hide",value:function(){$(this._element).removeClass("open"),this._component=null}}]),e}();n["default"]=new s},{"../utils/mount-component":34}],30:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Modal=void 0;var i=e("react-dom"),u=r(i),s=e("../utils/mount-component"),l=r(s),c=n.Modal=function(){function e(){a(this,e)}return o(e,[{key:"init",value:function(e){var t=this;this._element=e,this._modal=$(e).modal({show:!1}),this._modal.on("hidden.bs.modal",function(){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":34,"react-dom":"react-dom"}],31:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0;var o=e("../reducers/snackbar"),i=300,u=5e3,s=n.Snackbar=function(){function e(){r(this,e)}return a(e,[{key:"init",value:function(e){this._store=e,this._timeout=null}},{key:"alert",value:function(e,t){var n=this;this._timeout?(window.clearTimeout(this._timeout),this._store.dispatch((0,o.hideSnackbar)()),this._timeout=window.setTimeout(function(){n._timeout=null,n.alert(e,t)},i)):(this._store.dispatch((0,o.showSnackbar)(e,t)),this._timeout=window.setTimeout(function(){n._store.dispatch((0,o.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":26}],32:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.StoreWrapper=void 0;var o=e("redux"),i=n.StoreWrapper=function(){function e(){r(this,e),this._store=null,this._reducers={},this._initialState={}}return a(e,[{key:"addReducer",value:function(e,t,n){this._reducers[e]=t,this._initialState[e]=n}},{key:"init",value:function(){this._store=(0,o.createStore)((0,o.combineReducers)(this._reducers),this._initialState)}},{key:"getStore",value:function(){return this._store}},{key:"getState",value:function(){return this._store.getState()}},{key:"dispatch",value:function(e){return this._store.dispatch(e)}}]),e}();n["default"]=new i},{redux:"redux"}],33:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){if(l["default"].render(u["default"].createElement(c.Provider,{store:v["default"].getStore()},u["default"].createElement(y,{message:e.message,expires:e.expires_on?(0,o["default"])(e.expires_on):null})),document.getElementById("page-mount")),"undefined"==typeof t||!t){var n=m["default"].get("SETTINGS").forum_name;document.title=gettext("You are banned")+" | "+n,window.history.pushState({},"",m["default"].get("BANNED_URL"))}};var a=e("moment"),o=r(a),i=e("react"),u=r(i),s=e("react-dom"),l=r(s),c=e("react-redux"),f=e("../components/banned-page"),d=r(f),p=e("../index"),m=r(p),h=e("../services/store"),v=r(h),b=function(e){return e.tick},y=(0,c.connect)(b)(d["default"])},{"../components/banned-page":2,"../index":12,"../services/store":32,moment:"moment",react:"react","react-dom":"react-dom","react-redux":"react-redux"}],34:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){var n=arguments.length<=2||void 0===arguments[2]?!0:arguments[2],r=document.getElementById(t);r&&(n?s["default"].render(i["default"].createElement(l.Provider,{store:f["default"].getStore()},i["default"].createElement(e,null)),r):s["default"].render(i["default"].createElement(e,null),r))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("react"),i=r(o),u=e("react-dom"),s=r(u),l=e("react-redux"),c=e("../services/store"),f=r(c)},{"../services/store":32,react:"react","react-dom":"react-dom","react-redux":"react-redux"}],35:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function e(t){r(this,e),this.isOrdered=!1,this._items=t||[]}return a(e,[{key:"add",value:function(e,t,n){this._items.push({key:e,item:t,after:n?n.after||null:null,before:n?n.before||null:null})}},{key:"get",value:function(e,t){for(var n=0;n<this._items.length;n++)if(this._items[n].key===e)return this._items[n].item;return t}},{key:"has",value:function(e){return void 0!==this.get(e)}},{key:"values",value:function t(){for(var t=[],e=0;e<this._items.length;e++)t.push(this._items[e].item);return t}},{key:"order",value:function(e){return this.isOrdered||(this._items=this._order(this._items),this.isOrdered=!0),e||"undefined"==typeof e?this.values():this._items}},{key:"orderedValues",value:function(){return this.order(!0)}},{key:"_order",value:function(e){function t(e){var t=-1;-1===a.indexOf(e.key)&&(e.after?(t=a.indexOf(e.after),-1!==t&&(t+=1)):e.before&&(t=a.indexOf(e.before)),-1!==t&&(r.splice(t,0,e),a.splice(t,0,e.key)))}var n=[];e.forEach(function(e){n.push(e.key)});var r=[],a=[];e.forEach(function(e){e.after||e.before||(r.push(e),a.push(e.key))}),e.forEach(function(e){"_end"===e.before&&(r.push(e),a.push(e.key))});for(var o=200;o>0&&n.length!==a.length;)o-=1,e.forEach(t);return r}}]),e}();n["default"]=o},{}],36:[function(e,t,n){"use strict";function r(){return function(e){return 0===$.trim(e).length?gettext("This field is required."):void 0}}function a(e){return function(t){return f.test(t)?void 0:e||gettext("Enter a valid email address.")}}function o(e,t){return function(n){var r="",a=$.trim(n).length;return e>a?(r=t?t(e,a):ngettext("Ensure this value has at least %(limit_value)s character (it has %(show_value)s).","Ensure this value has at least %(limit_value)s characters (it has %(show_value)s).",e),interpolate(r,{limit_value:e,show_value:a},!0)):void 0}}function i(e,t){return function(n){var r="",a=$.trim(n).length;return a>e?(r=t?t(e,a):ngettext("Ensure this value has at most %(limit_value)s character (it has %(show_value)s).","Ensure this value has at most %(limit_value)s characters (it has %(show_value)s).",e),interpolate(r,{limit_value:e,show_value:a},!0)):void 0}}function u(e){var t=function(e){return ngettext("Username must be at least %(limit_value)s character long.","Username must be at least %(limit_value)s characters long.",e)};return this.minLength(e.username_length_min,t)}function s(e){var t=function(e){return ngettext("Username cannot be longer than %(limit_value)s character.","Username cannot be longer than %(limit_value)s characters.",e)};return this.maxLength(e.username_length_max,t)}function l(){return function(e){return d.test($.trim(e))?void 0:gettext("Username can only contain latin alphabet letters and digits.")}}function c(e){var t=function(e){return ngettext("Valid password must be at least %(limit_value)s character long.","Valid password must be at least %(limit_value)s characters long.",e)};return this.minLength(e.password_length_min,t)}Object.defineProperty(n,"__esModule",{value:!0}),n.required=r,n.email=a,n.minLength=o,n.maxLength=i,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")},{}]},{},[12,13,14,15,16,17,18,19,20,21,22,23,24]);
+!function e(t,n,r){function a(i,u){if(!n[i]){if(!t[i]){var s="function"==typeof require&&require;if(!u&&s)return s(i,!0);if(o)return o(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[i]={exports:{}};t[i][0].call(c.exports,function(e){var n=t[i][1][e];return a(n?n:e)},c,c.exports,e,t,n,r)}return n[i].exports}for(var o="function"==typeof require&&require,i=0;i<r.length;i++)a(r[i]);return a}({1:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=$("base").attr("href")+"user-avatar/",f=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(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"}],2:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("moment"),l=r(s),c=e("react"),f=r(c),d=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(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"}],3:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=e("./loader"),f=r(c),d=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"render",value:function(){var e=null,t="btn "+this.props.className,n=this.props.disabled;return this.props.loading?(e=l["default"].createElement(f["default"],null),t+=" btn-loading",n=!0):e=this.props.children,l["default"].createElement("button",{type:this.props.onClick?"button":"submit",className:t,disabled:n,onClick:this.props.onClick},e)}}]),t}(l["default"].Component);n["default"]=d,d.defaultProps={className:"btn-default",type:"submit",loading:!1,disabled:!1,onClick:null}},{"./loader":5,react:"react"}],4:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=e("../utils/validators"),f=(0,c.required)(),d=function(e){function t(){var e,n,r,i;a(this,t);for(var u=arguments.length,s=Array(u),l=0;u>l;l++)s[l]=arguments[l];return n=r=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(s))),r.bindInput=function(e){return function(t){var n={};n[e]=t.target.value;var a=r.state.errors||{};a[e]=r.validateField(e,n[e]),n.errors=a,r.setState(n)}},r.handleSubmit=function(e){if(e.preventDefault(),!r.state.isLoading&&r.clean()){r.setState({isLoading:!0});var t=r.send();t?t.then(function(e){r.setState({isLoading:!1}),r.handleSuccess(e)},function(e){r.setState({isLoading:!1}),r.handleError(e)}):r.setState({isLoading:!1})}},i=n,o(r,i)}return i(t,e),u(t,[{key:"validate",value:function(){var e={},t={required:this.state.validators.required||this.state.validators,optional:this.state.validators.optional||{}},n=[];for(var r in t.required)t.required.hasOwnProperty(r)&&n.push(r);for(var r in t.optional)t.optional.hasOwnProperty(r)&&n.push(r);for(var a in n){var r=n[a],o=this.validateField(r,this.state[r]);null===o?e[r]=null:o&&(e[r]=o)}return e}},{key:"isValid",value:function(){var e=this.validate();for(var t in e)if(e.hasOwnProperty(t)&&null!==e[t])return!1;return!0}},{key:"validateField",value:function(e,t){var n=[],r={required:(this.state.validators.required||this.state.validators)[e],optional:(this.state.validators.optional||{})[e]},a=f(t)||!1;if(r.required){if(a)n=[a];else for(var o in r.required){var i=r.required[o](t);i&&n.push(i)}return n.length?n:null}if(a===!1&&r.optional){for(var o in r.optional){var i=r.optional[o](t);i&&n.push(i)}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":36,react:"react"}],5:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(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"}],6:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-dialog modal-register"},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":"Close"},l["default"].createElement("span",{"aria-hidden":"true"},"×")),l["default"].createElement("h4",{className:"modal-title"},gettext("Register"))),l["default"].createElement("div",{className:"modal-body"},l["default"].createElement("p",null,"This will be registration form!")),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],7:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=e("../index"),f=r(c),d=e("./button"),p=r(d),m=e("./form"),h=r(m),v=e("../services/ajax"),b=r(v),y=e("../services/modal"),g=r(y),_=e("../services/snackbar"),w=r(_),k=e("../utils/banned-page"),O=r(k),E=function(e){function t(e){a(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,showActivation:!1,username:"",password:"",validators:{username:[],password:[]}},n}return i(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(){g["default"].hide();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()}},{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,O["default"])(e.detail),g["default"].hide()):w["default"].error(e.detail):403===e.status&&e.ban?((0,O["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"},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"]=E},{"../index":12,"../services/ajax":28,"../services/modal":30,"../services/snackbar":31,"../utils/banned-page":33,"./button":3,"./form":4,react:"react"}],8:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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 u(e){return e.snackbar}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0,n.select=u;var l=e("react"),c=r(l),f={info:"alert-info",success:"alert-success",warning:"alert-warning",error:"alert-danger"};n.Snackbar=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(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"}],9:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactGuestNav=n.GuestNav=n.GuestMenu=void 0;var s=e("react"),l=r(s),c=e("../button"),f=r(c),d=e("../../services/modal"),p=r(d),m=e("../../services/mobile-navbar-dropdown"),h=r(m),v=e("../avatar"),b=r(v),y=e("../sign-in.js"),g=r(y),_=e("../register/root.js"),w=r(_),k=n.GuestMenu=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"showSignInModal",value:function(){p["default"].show(g["default"])}},{key:"showRegisterModal",value:function(){p["default"].show(w["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"},"Thy Sign In")),l["default"].createElement("div",{className:"col-xs-6"},l["default"].createElement("button",{type:"button",className:"btn btn-primary btn-block"},"Thy Registry")))))}}]),t}(l["default"].Component);n.GuestNav=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"nav nav-guest"},l["default"].createElement(f["default"],{type:"button",className:"navbar-btn btn-default",onClick:this.showSignInModal},"Sign in"),l["default"].createElement(f["default"],{type:"button",className:"navbar-btn btn-primary",onClick:this.showRegisterModal},"Register"))}}]),t}(k),n.CompactGuestNav=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"showGuestMenu",value:function(){h["default"].show(k)}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showGuestMenu},l["default"].createElement(b["default"],{size:"64"}))}}]),t}(l["default"].Component)},{"../../services/mobile-navbar-dropdown":29,"../../services/modal":30,"../avatar":1,"../button":3,"../register/root.js":6,"../sign-in.js":7,react:"react"}],10:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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 u(e){return e.auth}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserMenu=n.UserMenu=void 0,n.select=u;var l=e("react"),c=r(l),f=e("./guest-nav"),d=e("./user-nav"),p=r(d);n.UserMenu=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),s(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(p["default"],{user:this.props.user}):c["default"].createElement(f.GuestNav,null)}}]),t}(c["default"].Component),n.CompactUserMenu=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),s(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(p["default"],{user:this.props.user}):c["default"].createElement(f.CompactGuestNav,null)}}]),t}(c["default"].Component)},{"./guest-nav":9,"./user-nav":11,react:"react"}],11:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function 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 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)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=e("react"),l=r(s),c=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"render",value:function(){return l["default"].createElement("ul",{"class":"ul nav navbar-nav nav-user"})}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],12:[function(e,t,n){(function(t){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Misago=void 0;var i=e("./utils/ordered-list"),u=r(i),s=n.Misago=function(){function e(){a(this,e),this._initializers=[],this._context={}}return o(e,[{key:"addInitializer",value:function(e){this._initializers.push({key:e.name,item:e.initializer,after:e.after,before:e.before})}},{key:"init",value:function(e){var t=this;this._context=e;var 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":35}],13:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){s["default"].init(i["default"].get("CSRF_COOKIE_NAME"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../services/ajax"),s=r(u);i["default"].addInitializer({name:"ajax",initializer:a})},{"../index":12,"../services/ajax":28}],14:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e){c["default"].addReducer("auth",s["default"],{isAuthenticated:e.get("isAuthenticated"),isAnonymous:!e.get("isAuthenticated"),user:e.get("user")})}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../reducers/auth"),s=r(u),l=e("../services/store"),c=r(l);i["default"].addInitializer({name:"reducer:auth",initializer:a,before:"store"})},{"../index":12,"../reducers/auth":25,"../services/store":32}],15:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){var e=document.getElementById("mobile-navbar-dropdown-mount");e&&s["default"].init(e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../services/mobile-navbar-dropdown"),s=r(u);i["default"].addInitializer({name:"dropdown",initializer:a,before:"store"})},{"../index":12,"../services/mobile-navbar-dropdown":29}],16:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){var e=document.getElementById("modal-mount");e&&s["default"].init(e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../services/modal"),s=r(u);i["default"].addInitializer({name:"modal",initializer:a,before:"store"})},{"../index":12,"../services/modal":30}],17:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){i["default"].locale($("html").attr("lang"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("moment"),i=r(o),u=e("../index"),s=r(u);s["default"].addInitializer({name:"moment",initializer:a})},{"../index":12,moment:"moment"}],18:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){(0,c["default"])((0,o.connect)(s.select)(s.Snackbar),"snackbar-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("react-redux"),i=e("../index"),u=r(i),s=e("../components/snackbar"),l=e("../utils/mount-component"),c=r(l);u["default"].addInitializer({name:"component:snackbar",initializer:a,after:"snackbar"})},{"../components/snackbar":8,"../index":12,"../utils/mount-component":34,"react-redux":"react-redux"}],19:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){c["default"].addReducer("snackbar",s["default"],u.initialState)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../reducers/snackbar"),s=r(u),l=e("../services/store"),c=r(l);i["default"].addInitializer({name:"reducer:snackbar",initializer:a,before:"store"})},{"../index":12,"../reducers/snackbar":26,"../services/store":32}],20:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){s["default"].init(c["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../services/snackbar"),s=r(u),l=e("../services/store"),c=r(l);i["default"].addInitializer({name:"snackbar",initializer:a,after:"store"})},{"../index":12,"../services/snackbar":31,"../services/store":32}],21:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){s["default"].init()}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../services/store"),s=r(u);i["default"].addInitializer({name:"store",initializer:a,before:"_end"})},{"../index":12,"../services/store":32}],22:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){c["default"].addReducer("tick",s["default"],u.initialState)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../reducers/tick"),s=r(u),l=e("../services/store"),c=r(l);i["default"].addInitializer({name:"reducer:tick",initializer:a,before:"store"})},{"../index":12,"../reducers/tick":27,"../services/store":32}],23:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){window.setInterval(function(){l["default"].dispatch((0,u.doTick)())},c)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("../index"),i=r(o),u=e("../reducers/tick"),s=e("../services/store"),l=r(s),c=5e4;i["default"].addInitializer({name:"tick-start",initializer:a,after:"store"})},{"../index":12,"../reducers/tick":27,"../services/store":32}],24:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(){(0,c["default"])((0,o.connect)(s.select)(s.UserMenu),"user-menu-mount"),(0,c["default"])((0,o.connect)(s.select)(s.CompactUserMenu),"user-menu-compact-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("react-redux"),i=e("../index"),u=r(i),s=e("../components/user-menu/root"),l=e("../utils/mount-component"),c=r(l);u["default"].addInitializer({name:"component:user-menu",initializer:a,after:"store"})},{"../components/user-menu/root":10,"../index":12,"../utils/mount-component":34,"react-redux":"react-redux"}],25:[function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];arguments.length<=1||void 0===arguments[1]?null:arguments[1];return e}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r},{}],26:[function(e,t,n){"use strict";function r(e,t){return{type:u,message:e,messageType:t}}function a(){return{type:s}}function o(){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===u?{
+type:t.messageType,message:t.message,isVisible:!0}:t.type===s?Object.assign({},e,{isVisible:!1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.showSnackbar=r,n.hideSnackbar=a,n["default"]=o;var i=n.initialState={type:"info",message:"",isVisible:!1},u=n.SHOW_SNACKBAR="SHOW_SNACKBAR",s=n.HIDE_SNACKBAR="HIDE_SNACKBAR"},{}],27:[function(e,t,n){"use strict";function r(){return{type:i}}function a(){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===i?Object.assign({},e,{tick:e.tick+1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.doTick=r,n["default"]=a;var o=n.initialState={tick:0},i=n.TICK="TICK"},{}],28:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=n.Ajax=function(){function e(){r(this,e),this._cookieName=null,this._csrfToken=null}return a(e,[{key:"init",value:function(e){this._cookieName=e,this._csrfToken=this.getCsrfToken()}},{key:"getCsrfToken",value:function(){if(-1!==document.cookie.indexOf(this._cookieName)){var e=new RegExp(this._cookieName+"=([^;]*)"),t=document.cookie.match(e)[0];return t?t.split("=")[1]:null}return null}},{key:"request",value:function(e,t,n){var r=this;return new Promise(function(a,o){var i={url:t,method:e,headers:{"X-CSRFToken":r._csrfToken},data:n||{},dataType:"json",success:function(e){a(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,t.statusText=e.statusText,o(t)}};$.ajax(i)})}},{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 o},{}],29:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.MobileNavbarDropdown=void 0;var i=e("../utils/mount-component"),u=r(i),s=n.MobileNavbarDropdown=function(){function e(){a(this,e)}return o(e,[{key:"init",value:function(e){this._element=e,this._component=null}},{key:"show",value:function(e){this._component===e?this.hide():(this._component=e,(0,u["default"])(e,this._element.id),$(this._element).addClass("open"))}},{key:"hide",value:function(){$(this._element).removeClass("open"),this._component=null}}]),e}();n["default"]=new s},{"../utils/mount-component":34}],30:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Modal=void 0;var i=e("react-dom"),u=r(i),s=e("../utils/mount-component"),l=r(s),c=n.Modal=function(){function e(){a(this,e)}return o(e,[{key:"init",value:function(e){var t=this;this._element=e,this._modal=$(e).modal({show:!1}),this._modal.on("hidden.bs.modal",function(){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":34,"react-dom":"react-dom"}],31:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0;var o=e("../reducers/snackbar"),i=300,u=5e3,s=n.Snackbar=function(){function e(){r(this,e)}return a(e,[{key:"init",value:function(e){this._store=e,this._timeout=null}},{key:"alert",value:function(e,t){var n=this;this._timeout?(window.clearTimeout(this._timeout),this._store.dispatch((0,o.hideSnackbar)()),this._timeout=window.setTimeout(function(){n._timeout=null,n.alert(e,t)},i)):(this._store.dispatch((0,o.showSnackbar)(e,t)),this._timeout=window.setTimeout(function(){n._store.dispatch((0,o.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":26}],32:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.StoreWrapper=void 0;var o=e("redux"),i=n.StoreWrapper=function(){function e(){r(this,e),this._store=null,this._reducers={},this._initialState={}}return a(e,[{key:"addReducer",value:function(e,t,n){this._reducers[e]=t,this._initialState[e]=n}},{key:"init",value:function(){this._store=(0,o.createStore)((0,o.combineReducers)(this._reducers),this._initialState)}},{key:"getStore",value:function(){return this._store}},{key:"getState",value:function(){return this._store.getState()}},{key:"dispatch",value:function(e){return this._store.dispatch(e)}}]),e}();n["default"]=new i},{redux:"redux"}],33:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){if(l["default"].unmountComponentAtNode(document.getElementById("page-mount")),l["default"].render(u["default"].createElement(c.Provider,{store:v["default"].getStore()},u["default"].createElement(y,{message:e.message,expires:e.expires_on?(0,o["default"])(e.expires_on):null})),document.getElementById("page-mount")),"undefined"==typeof t||!t){var n=m["default"].get("SETTINGS").forum_name;document.title=gettext("You are banned")+" | "+n,window.history.pushState({},"",m["default"].get("BANNED_URL"))}};var a=e("moment"),o=r(a),i=e("react"),u=r(i),s=e("react-dom"),l=r(s),c=e("react-redux"),f=e("../components/banned-page"),d=r(f),p=e("../index"),m=r(p),h=e("../services/store"),v=r(h),b=function(e){return e.tick},y=(0,c.connect)(b)(d["default"])},{"../components/banned-page":2,"../index":12,"../services/store":32,moment:"moment",react:"react","react-dom":"react-dom","react-redux":"react-redux"}],34:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){var n=arguments.length<=2||void 0===arguments[2]?!0:arguments[2],r=document.getElementById(t);r&&(n?s["default"].render(i["default"].createElement(l.Provider,{store:f["default"].getStore()},i["default"].createElement(e,null)),r):s["default"].render(i["default"].createElement(e,null),r))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a;var o=e("react"),i=r(o),u=e("react-dom"),s=r(u),l=e("react-redux"),c=e("../services/store"),f=r(c)},{"../services/store":32,react:"react","react-dom":"react-dom","react-redux":"react-redux"}],35:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function e(t){r(this,e),this.isOrdered=!1,this._items=t||[]}return a(e,[{key:"add",value:function(e,t,n){this._items.push({key:e,item:t,after:n?n.after||null:null,before:n?n.before||null:null})}},{key:"get",value:function(e,t){for(var n=0;n<this._items.length;n++)if(this._items[n].key===e)return this._items[n].item;return t}},{key:"has",value:function(e){return void 0!==this.get(e)}},{key:"values",value:function t(){for(var t=[],e=0;e<this._items.length;e++)t.push(this._items[e].item);return t}},{key:"order",value:function(e){return this.isOrdered||(this._items=this._order(this._items),this.isOrdered=!0),e||"undefined"==typeof e?this.values():this._items}},{key:"orderedValues",value:function(){return this.order(!0)}},{key:"_order",value:function(e){function t(e){var t=-1;-1===a.indexOf(e.key)&&(e.after?(t=a.indexOf(e.after),-1!==t&&(t+=1)):e.before&&(t=a.indexOf(e.before)),-1!==t&&(r.splice(t,0,e),a.splice(t,0,e.key)))}var n=[];e.forEach(function(e){n.push(e.key)});var r=[],a=[];e.forEach(function(e){e.after||e.before||(r.push(e),a.push(e.key))}),e.forEach(function(e){"_end"===e.before&&(r.push(e),a.push(e.key))});for(var o=200;o>0&&n.length!==a.length;)o-=1,e.forEach(t);return r}}]),e}();n["default"]=o},{}],36:[function(e,t,n){"use strict";function r(){return function(e){return 0===$.trim(e).length?gettext("This field is required."):void 0}}function a(e){return function(t){return f.test(t)?void 0:e||gettext("Enter a valid email address.")}}function o(e,t){return function(n){var r="",a=$.trim(n).length;return e>a?(r=t?t(e,a):ngettext("Ensure this value has at least %(limit_value)s character (it has %(show_value)s).","Ensure this value has at least %(limit_value)s characters (it has %(show_value)s).",e),interpolate(r,{limit_value:e,show_value:a},!0)):void 0}}function i(e,t){return function(n){var r="",a=$.trim(n).length;return a>e?(r=t?t(e,a):ngettext("Ensure this value has at most %(limit_value)s character (it has %(show_value)s).","Ensure this value has at most %(limit_value)s characters (it has %(show_value)s).",e),interpolate(r,{limit_value:e,show_value:a},!0)):void 0}}function u(e){var t=function(e){return ngettext("Username must be at least %(limit_value)s character long.","Username must be at least %(limit_value)s characters long.",e)};return this.minLength(e.username_length_min,t)}function s(e){var t=function(e){return ngettext("Username cannot be longer than %(limit_value)s character.","Username cannot be longer than %(limit_value)s characters.",e)};return this.maxLength(e.username_length_max,t)}function l(){return function(e){return d.test($.trim(e))?void 0:gettext("Username can only contain latin alphabet letters and digits.")}}function c(e){var t=function(e){return ngettext("Valid password must be at least %(limit_value)s character long.","Valid password must be at least %(limit_value)s characters long.",e)};return this.minLength(e.password_length_min,t)}Object.defineProperty(n,"__esModule",{value:!0}),n.required=r,n.email=a,n.minLength=o,n.maxLength=i,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")},{}]},{},[12,13,14,15,16,17,18,19,20,21,22,23,24]);
 //# 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__","_createClass","defineProperties","target","props","descriptor","defineProperty","key","protoProps","staticProps","_react","_react2","BASE_URL","$","attr","_class","_React$Component","this","getPrototypeOf","apply","arguments","size","url","user","id","avatar_hash","createElement","src","getSrc","className","title","gettext","Component","react",2,"_moment","_moment2","message","html","dangerouslySetInnerHTML","__html","plain","expires","isAfter","interpolate","expires_on","fromNow","getReasonMessage","getExpirationMessage","moment",3,"_loader","_loader2","Button","content","disabled","loading","children","type","onClick","defaultProps","./loader",4,"_validators","validateRequired","required","_Object$getPrototypeO","_temp","_this","_ret","_len","args","Array","_key","concat","bindInput","name","event","newState","formErrors","state","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",5,6,"data-dismiss","aria-label","aria-hidden",7,"_index","_index2","_button","_button2","_form","_form2","_ajax","_ajax2","_modal","_modal2","_snackbar","_snackbar2","_bannedPage","_bannedPage2","_Form","showActivation","username","password","error","post","get","hide","form","append","find","val","getCsrfToken","window","location","pathname","submit","status","info","detail","apiError","href","onSubmit","placeholder","onChange","getActivationButton","../index","../services/ajax","../services/modal","../services/snackbar","../utils/banned-page","./button","./form",8,"select","snackbar","Snackbar","undefined","TYPES_CLASSES","warning","snackbarClass","isVisible","getSnackbarClass",9,"CompactGuestNav","GuestNav","GuestMenu","_mobileNavbarDropdown","_mobileNavbarDropdown2","_avatar","_avatar2","_signIn","_signIn2","_root","_root2","show","role","_GuestMenu","showSignInModal","showRegisterModal","_React$Component2","showGuestMenu","../../services/mobile-navbar-dropdown","../../services/modal","../avatar","../button","../register/root.js","../sign-in.js",10,"auth","CompactUserMenu","UserMenu","_guestNav","_userNav","_userNav2","isAuthenticated","./guest-nav","./user-nav",11,"UserNav","class",12,"global","Misago","_orderedList","_orderedList2","_initializers","_context","initializer","item","after","before","context","initOrder","orderedValues","forEach","fallback","has","misago","./utils/ordered-list",13,"init","addInitializer",14,"_store2","addReducer","_auth2","isAnonymous","_auth","_store","../reducers/auth","../services/store",15,"element","document","getElementById","../services/mobile-navbar-dropdown",16,17,"locale",18,"_mountComponent2","_reactRedux","connect","_mountComponent","../components/snackbar","../utils/mount-component","react-redux",19,"initialState","../reducers/snackbar",20,21,22,"_tick2","_tick","../reducers/tick",23,"setInterval","dispatch","doTick","TICK_PERIOD",24,"../components/user-menu/root",25,26,"showSnackbar","SHOW_SNACKBAR","messageType","hideSnackbar","HIDE_SNACKBAR","action","assign",27,"TICK","tick",28,"Ajax","_cookieName","_csrfToken","cookieName","cookie","indexOf","cookieRegex","RegExp","match","split","method","data","Promise","resolve","reject","xhr","headers","X-CSRFToken","dataType","jqXHR","responseJSON","statusText","ajax","request",29,"MobileNavbarDropdown","_element","_component","component","addClass","removeClass",30,"Modal","_reactDom","_reactDom2","modal","on","unmountComponentAtNode","react-dom",31,"HIDE_ANIMATION_LENGTH","MESSAGE_SHOW_LENGTH","store","_timeout","clearTimeout","setTimeout","alert",32,"StoreWrapper","_redux","_reducers","_initialState","reducer","createStore","combineReducers","getState","redux",33,"ban","changeState","render","Provider","getStore","RedrawedBannedPage","forumName","forum_name","history","pushState","../components/banned-page",34,"mount","rootElementId","connected","rootElement",35,"OrderedList","items","isOrdered","_items","order","values","values_only","_order","unordered","insertItem","insertAt","ordering","ordered","splice","index","iterations",36,"trim","email","EMAIL","test","minLength","limitValue","returnMessage","ngettext","limit_value","show_value","maxLength","usernameMinLength","settings","username_length_min","usernameMaxLength","username_length_max","usernameContent","USERNAME","passwordMinLength","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});\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\"}],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 _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\"}],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 _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 content = null;\n      var className = 'btn ' + this.props.className;\n      var disabled = this.props.disabled;\n\n      if (this.props.loading) {\n        /* jshint ignore:start */\n        content = _react2.default.createElement(_loader2.default, null);\n        /* jshint ignore:end */\n        className += ' btn-loading';\n        disabled = true;\n      } else {\n        content = this.props.children;\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        content\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\":5,\"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 _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\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.handleSuccess(success);\n            _this.setState({ 'isLoading': false });\n          }, function (rejection) {\n            _this.handleError(rejection);\n            _this.setState({ 'isLoading': false });\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)) {\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)) {\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\":36,\"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: \"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\"}],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\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: \"modal-dialog modal-register\" },\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\", \"aria-label\": \"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            \"div\",\n            { className: \"modal-body\" },\n            _react2.default.createElement(\n              \"p\",\n              null,\n              \"This will be registration form!\"\n            )\n          ),\n          _react2.default.createElement(\n            \"div\",\n            { className: \"modal-footer\" },\n            _react2.default.createElement(\n              \"button\",\n              { type: \"button\", className: \"btn btn-default\", \"data-dismiss\": \"modal\" },\n              \"Close\"\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"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\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.validate()) {\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      _modal2.default.hide();\n\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  }, {\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 {\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        _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\":12,\"../services/ajax\":28,\"../services/modal\":30,\"../services/snackbar\":31,\"../utils/banned-page\":33,\"./button\":3,\"./form\":4,\"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.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\"}],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});\nexports.CompactGuestNav = exports.GuestNav = exports.GuestMenu = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _modal = require('../../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _mobileNavbarDropdown = require('../../services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _signIn = require('../sign-in.js');\n\nvar _signIn2 = _interopRequireDefault(_signIn);\n\nvar _root = require('../register/root.js');\n\nvar _root2 = _interopRequireDefault(_root);\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 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: 'showRegisterModal',\n    value: function showRegisterModal() {\n      _modal2.default.show(_root2.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                'Thy Sign In'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'col-xs-6' },\n              _react2.default.createElement(\n                'button',\n                { type: 'button', className: 'btn btn-primary btn-block' },\n                'Thy Registry'\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          _button2.default,\n          { type: 'button',\n            className: 'navbar-btn btn-default',\n            onClick: this.showSignInModal },\n          'Sign in'\n        ),\n        _react2.default.createElement(\n          _button2.default,\n          { type: 'button',\n            className: 'navbar-btn btn-primary',\n            onClick: this.showRegisterModal },\n          '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\":29,\"../../services/modal\":30,\"../avatar\":1,\"../button\":3,\"../register/root.js\":6,\"../sign-in.js\":7,\"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.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\nvar _userNav2 = _interopRequireDefault(_userNav);\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(_userNav2.default, { 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(_userNav2.default, { 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\":9,\"./user-nav\":11,\"react\":\"react\"}],11:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\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 UserNav = (function (_React$Component) {\n  _inherits(UserNav, _React$Component);\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(\"ul\", { \"class\": \"ul nav navbar-nav nav-user\" });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserNav;\n})(_react2.default.Component);\n\nexports.default = UserNav;\n\n},{\"react\":\"react\"}],12:[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\":35}],13:[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\":12,\"../services/ajax\":28}],14:[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, {\n    'isAuthenticated': context.get('isAuthenticated'),\n    'isAnonymous': !context.get('isAuthenticated'),\n\n    'user': context.get('user')\n  });\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:auth',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../index\":12,\"../reducers/auth\":25,\"../services/store\":32}],15:[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\":12,\"../services/mobile-navbar-dropdown\":29}],16:[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\":12,\"../services/modal\":30}],17:[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\":12,\"moment\":\"moment\"}],18:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _reactRedux = require('react-redux');\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _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\":8,\"../index\":12,\"../utils/mount-component\":34,\"react-redux\":\"react-redux\"}],19:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _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\":12,\"../reducers/snackbar\":26,\"../services/store\":32}],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 _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\":12,\"../services/snackbar\":31,\"../services/store\":32}],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 _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\":12,\"../services/store\":32}],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 _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\":12,\"../reducers/tick\":27,\"../services/store\":32}],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 _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\":12,\"../reducers/tick\":27,\"../services/store\":32}],24:[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\":10,\"../index\":12,\"../utils/mount-component\":34,\"react-redux\":\"react-redux\"}],25:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = auth;\nfunction auth() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  return state;\n}\n\n},{}],26:[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},{}],27:[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},{}],28:[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},{}],29:[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: '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\":34}],30:[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\":34,\"react-dom\":\"react-dom\"}],31:[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\":26}],32:[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\"}],33:[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\":2,\"../index\":12,\"../services/store\":32,\"moment\":\"moment\",\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],34:[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\":32,\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],35:[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},{}],36:[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},{}]},{},[12,13,14,15,16,17,18,19,20,21,22,23,24]);\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__","_createClass","defineProperties","target","props","descriptor","defineProperty","key","protoProps","staticProps","_react","_react2","BASE_URL","$","attr","_class","_React$Component","this","getPrototypeOf","apply","arguments","size","url","user","id","avatar_hash","createElement","src","getSrc","className","title","gettext","Component","react",2,"_moment","_moment2","message","html","dangerouslySetInnerHTML","__html","plain","expires","isAfter","interpolate","expires_on","fromNow","getReasonMessage","getExpirationMessage","moment",3,"_loader","_loader2","Button","content","disabled","loading","children","type","onClick","defaultProps","./loader",4,"_validators","validateRequired","required","_Object$getPrototypeO","_temp","_this","_ret","_len","args","Array","_key","concat","bindInput","name","event","newState","formErrors","state","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",5,6,"data-dismiss","aria-label","aria-hidden",7,"_index","_index2","_button","_button2","_form","_form2","_ajax","_ajax2","_modal","_modal2","_snackbar","_snackbar2","_bannedPage","_bannedPage2","_Form","showActivation","username","password","isValid","error","post","get","hide","form","append","find","val","getCsrfToken","window","location","pathname","submit","status","info","detail","ban","apiError","href","onSubmit","placeholder","onChange","getActivationButton","../index","../services/ajax","../services/modal","../services/snackbar","../utils/banned-page","./button","./form",8,"select","snackbar","Snackbar","undefined","TYPES_CLASSES","warning","snackbarClass","isVisible","getSnackbarClass",9,"CompactGuestNav","GuestNav","GuestMenu","_mobileNavbarDropdown","_mobileNavbarDropdown2","_avatar","_avatar2","_signIn","_signIn2","_root","_root2","show","role","_GuestMenu","showSignInModal","showRegisterModal","_React$Component2","showGuestMenu","../../services/mobile-navbar-dropdown","../../services/modal","../avatar","../button","../register/root.js","../sign-in.js",10,"auth","CompactUserMenu","UserMenu","_guestNav","_userNav","_userNav2","isAuthenticated","./guest-nav","./user-nav",11,"UserNav","class",12,"global","Misago","_orderedList","_orderedList2","_initializers","_context","initializer","item","after","before","context","initOrder","orderedValues","forEach","fallback","has","misago","./utils/ordered-list",13,"init","addInitializer",14,"_store2","addReducer","_auth2","isAnonymous","_auth","_store","../reducers/auth","../services/store",15,"element","document","getElementById","../services/mobile-navbar-dropdown",16,17,"locale",18,"_mountComponent2","_reactRedux","connect","_mountComponent","../components/snackbar","../utils/mount-component","react-redux",19,"initialState","../reducers/snackbar",20,21,22,"_tick2","_tick","../reducers/tick",23,"setInterval","dispatch","doTick","TICK_PERIOD",24,"../components/user-menu/root",25,26,"showSnackbar","SHOW_SNACKBAR","messageType","hideSnackbar","HIDE_SNACKBAR","action","assign",27,"TICK","tick",28,"Ajax","_cookieName","_csrfToken","cookieName","cookie","indexOf","cookieRegex","RegExp","match","split","method","data","Promise","resolve","reject","xhr","headers","X-CSRFToken","dataType","jqXHR","responseJSON","statusText","ajax","request",29,"MobileNavbarDropdown","_element","_component","component","addClass","removeClass",30,"Modal","_reactDom","_reactDom2","modal","on","unmountComponentAtNode","react-dom",31,"HIDE_ANIMATION_LENGTH","MESSAGE_SHOW_LENGTH","store","_timeout","clearTimeout","setTimeout","alert",32,"StoreWrapper","_redux","_reducers","_initialState","reducer","createStore","combineReducers","getState","redux",33,"changeState","render","Provider","getStore","RedrawedBannedPage","forumName","forum_name","history","pushState","../components/banned-page",34,"mount","rootElementId","connected","rootElement",35,"OrderedList","items","isOrdered","_items","order","values","values_only","_order","unordered","insertItem","insertAt","ordering","ordered","splice","index","iterations",36,"trim","email","EMAIL","test","minLength","limitValue","returnMessage","ngettext","limit_value","show_value","maxLength","usernameMinLength","settings","username_length_min","usernameMaxLength","username_length_max","usernameContent","USERNAME","passwordMinLength","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});\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\"}],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 _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\"}],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 _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 content = null;\n      var className = 'btn ' + this.props.className;\n      var disabled = this.props.disabled;\n\n      if (this.props.loading) {\n        /* jshint ignore:start */\n        content = _react2.default.createElement(_loader2.default, null);\n        /* jshint ignore:end */\n        className += ' btn-loading';\n        disabled = true;\n      } else {\n        content = this.props.children;\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        content\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\":5,\"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 _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)) {\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)) {\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\":36,\"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: \"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\"}],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\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: \"modal-dialog modal-register\" },\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\", \"aria-label\": \"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            \"div\",\n            { className: \"modal-body\" },\n            _react2.default.createElement(\n              \"p\",\n              null,\n              \"This will be registration form!\"\n            )\n          ),\n          _react2.default.createElement(\n            \"div\",\n            { className: \"modal-footer\" },\n            _react2.default.createElement(\n              \"button\",\n              { type: \"button\", className: \"btn btn-default\", \"data-dismiss\": \"modal\" },\n              \"Close\"\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n})(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"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\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      _modal2.default.hide();\n\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  }, {\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        _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\":12,\"../services/ajax\":28,\"../services/modal\":30,\"../services/snackbar\":31,\"../utils/banned-page\":33,\"./button\":3,\"./form\":4,\"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.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\"}],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});\nexports.CompactGuestNav = exports.GuestNav = exports.GuestMenu = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _modal = require('../../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _mobileNavbarDropdown = require('../../services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _signIn = require('../sign-in.js');\n\nvar _signIn2 = _interopRequireDefault(_signIn);\n\nvar _root = require('../register/root.js');\n\nvar _root2 = _interopRequireDefault(_root);\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 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: 'showRegisterModal',\n    value: function showRegisterModal() {\n      _modal2.default.show(_root2.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                'Thy Sign In'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'col-xs-6' },\n              _react2.default.createElement(\n                'button',\n                { type: 'button', className: 'btn btn-primary btn-block' },\n                'Thy Registry'\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          _button2.default,\n          { type: 'button',\n            className: 'navbar-btn btn-default',\n            onClick: this.showSignInModal },\n          'Sign in'\n        ),\n        _react2.default.createElement(\n          _button2.default,\n          { type: 'button',\n            className: 'navbar-btn btn-primary',\n            onClick: this.showRegisterModal },\n          '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\":29,\"../../services/modal\":30,\"../avatar\":1,\"../button\":3,\"../register/root.js\":6,\"../sign-in.js\":7,\"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.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\nvar _userNav2 = _interopRequireDefault(_userNav);\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(_userNav2.default, { 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(_userNav2.default, { 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\":9,\"./user-nav\":11,\"react\":\"react\"}],11:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\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 UserNav = (function (_React$Component) {\n  _inherits(UserNav, _React$Component);\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(\"ul\", { \"class\": \"ul nav navbar-nav nav-user\" });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserNav;\n})(_react2.default.Component);\n\nexports.default = UserNav;\n\n},{\"react\":\"react\"}],12:[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\":35}],13:[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\":12,\"../services/ajax\":28}],14:[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, {\n    'isAuthenticated': context.get('isAuthenticated'),\n    'isAnonymous': !context.get('isAuthenticated'),\n\n    'user': context.get('user')\n  });\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:auth',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../index\":12,\"../reducers/auth\":25,\"../services/store\":32}],15:[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\":12,\"../services/mobile-navbar-dropdown\":29}],16:[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\":12,\"../services/modal\":30}],17:[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\":12,\"moment\":\"moment\"}],18:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _reactRedux = require('react-redux');\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _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\":8,\"../index\":12,\"../utils/mount-component\":34,\"react-redux\":\"react-redux\"}],19:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _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\":12,\"../reducers/snackbar\":26,\"../services/store\":32}],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 _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\":12,\"../services/snackbar\":31,\"../services/store\":32}],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 _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\":12,\"../services/store\":32}],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 _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\":12,\"../reducers/tick\":27,\"../services/store\":32}],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 _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\":12,\"../reducers/tick\":27,\"../services/store\":32}],24:[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\":10,\"../index\":12,\"../utils/mount-component\":34,\"react-redux\":\"react-redux\"}],25:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = auth;\nfunction auth() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  return state;\n}\n\n},{}],26:[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},{}],27:[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},{}],28:[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},{}],29:[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: '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\":34}],30:[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\":34,\"react-dom\":\"react-dom\"}],31:[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\":26}],32:[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\"}],33:[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\":2,\"../index\":12,\"../services/store\":32,\"moment\":\"moment\",\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],34:[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\":32,\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],35:[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},{}],36:[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},{}]},{},[12,13,14,15,16,17,18,19,20,21,22,23,24]);\n"],"sourceRoot":"/source/"}