Browse Source

basic usermenu component in, option to sign out

Rafał Pitoń 9 years ago
parent
commit
1a051c4d93

+ 1 - 0
frontend/.jshintrc

@@ -9,6 +9,7 @@
     "window",
     "document",
     "require",
+    "confirm",
 
     "gettext",
     "ngettext",

+ 5 - 2
frontend/src/components/sign-in.js

@@ -42,8 +42,6 @@ export default class extends Form {
   }
 
   handleSuccess() {
-    modal.hide();
-
     let form = $('#hidden-login-form');
 
     form.append('<input type="text" name="username" />');
@@ -57,6 +55,11 @@ export default class extends Form {
     form.find('input[name="username"]').val(this.state.username);
     form.find('input[name="password"]').val(this.state.password);
     form.submit();
+
+    // keep form loading
+    this.setState({
+      'isLoading': true
+    });
   }
 
   handleError(rejection) {

+ 9 - 11
frontend/src/components/user-menu/guest-nav.js

@@ -1,11 +1,10 @@
 import React from 'react';
-import Button from 'misago/components/button'; // jshint ignore:line
-
-import modal from 'misago/services/modal';
-import dropdown from 'misago/services/mobile-navbar-dropdown';
 import Avatar from 'misago/components/avatar'; // jshint ignore:line
+import Button from 'misago/components/button'; // jshint ignore:line
 import SignInModal from 'misago/components/sign-in.js';
 import RegisterModal from 'misago/components/register/root.js';
+import dropdown from 'misago/services/mobile-navbar-dropdown';
+import modal from 'misago/services/modal';
 
 export class GuestMenu extends React.Component {
   showSignInModal() {
@@ -28,8 +27,9 @@ export class GuestMenu extends React.Component {
         <div className="row">
 
           <div className="col-xs-6">
-            <button type="button" className="btn btn-default btn-block">
-              Thy Sign In
+            <button type="button" className="btn btn-default btn-block"
+                    onClick={this.showSignInModal}>
+              Sign in
             </button>
 
           </div>
@@ -51,13 +51,11 @@ export class GuestNav extends GuestMenu {
   render() {
     /* jshint ignore:start */
     return <div className="nav nav-guest">
-      <Button type="button"
-              className="navbar-btn btn-default"
+      <button type="button" className="btn navbar-btn btn-default"
               onClick={this.showSignInModal}>
         Sign in
-      </Button>
-      <Button type="button"
-              className="navbar-btn btn-primary"
+      </button>
+      <Button type="button" className="navbar-btn btn-primary"
               onClick={this.showRegisterModal}>
         Register
       </Button>

+ 2 - 2
frontend/src/components/user-menu/root.js

@@ -1,6 +1,6 @@
 import React from 'react';
 import { GuestNav, CompactGuestNav } from 'misago/components/user-menu/guest-nav'; // jshint ignore:line
-import UserNav from 'misago/components/user-menu/user-nav'; // jshint ignore:line
+import { UserNav, CompactUserNav} from 'misago/components/user-menu/user-nav'; // jshint ignore:line
 
 export class UserMenu extends React.Component {
   render() {
@@ -18,7 +18,7 @@ export class CompactUserMenu extends React.Component {
   render() {
     /* jshint ignore:start */
     if (this.props.isAuthenticated) {
-      return <UserNav user={this.props.user} />;
+      return <CompactUserNav user={this.props.user} />;
     } else {
       return <CompactGuestNav />;
     }

+ 77 - 2
frontend/src/components/user-menu/user-nav.js

@@ -1,11 +1,86 @@
 import React from 'react';
+import { connect } from 'react-redux';
+import Avatar from 'misago/components/avatar'; // jshint ignore:line
+import misago from 'misago/index'; // jshint ignore:line
+import dropdown from 'misago/services/mobile-navbar-dropdown';
+
+export class UserMenu extends React.Component {
+  logout() {
+    let decision = confirm(gettext("Are you sure you want to sign out?"));
+    if (decision) {
+      $('#hidden-logout-form').submit();
+    }
+  }
 
-export default class UserNav extends React.Component {
   render() {
     /* jshint ignore:start */
-    return <ul class="ul nav navbar-nav nav-user">
+    return <ul className="dropdown-menu user-dropdown dropdown-menu-right"
+               role="menu">
+      <li className="dropdown-header">
+        <strong>{this.props.user.username}</strong>
+      </li>
+      <li className="divider" />
+      <li>
+        <a href={this.props.user.absolute_url}>
+          <span className="material-icon">account_circle</span>
+          {gettext("See your profile")}
+        </a>
+      </li>
+      <li>
+        <a href={misago.get('USERCP_URL')}>
+          <span className="material-icon">done_all</span>
+          {gettext("Change options")}
+        </a>
+      </li>
+      <li>
+        <button type="button" className="btn-link">
+          <span className="material-icon">face</span>
+          {gettext("Change avatar")}
+        </button>
+      </li>
+      <li className="divider" />
+      <li className="dropdown-footer">
+          <button type="button" className="btn btn-default btn-block"
+                  onClick={this.logout}>
+            {gettext("Log out")}
+          </button>
+      </li>
+    </ul>;
+    /* jshint ignore:end */
+  }
+}
 
+export class UserNav extends React.Component {
+  render() {
+    /* jshint ignore:start */
+    return <ul className="ul nav navbar-nav nav-user">
+      <li className="dropdown">
+        <a href={this.props.user.absolute_url} className="dropdown-toggle"
+           data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"
+           role="button">
+          <Avatar user={this.props.user} size="64" />
+        </a>
+        <UserMenu user={this.props.user} />
+      </li>
     </ul>;
     /* jshint ignore:end */
   }
 }
+
+export function selectUserMenu(store) {
+  return {user: store.auth.user};
+}
+
+export class CompactUserNav extends React.Component {
+  showUserMenu() {
+    dropdown.showConnected('user-menu', connect(selectUserMenu)(UserMenu));
+  }
+
+  render() {
+    /* jshint ignore:start */
+    return <button type="button" onClick={this.showUserMenu}>
+      <Avatar user={this.props.user} size="64" />
+    </button>;
+    /* jshint ignore:end */
+  }
+}

+ 5 - 1
frontend/src/reducers/auth.js

@@ -1,3 +1,7 @@
 export default function auth(state={}, action=null) {
-  return state;
+  if (action.type == 'NOT_YET') {
+    return {};
+  } else {
+    return state;
+  }
 }

+ 10 - 0
frontend/src/services/mobile-navbar-dropdown.js

@@ -16,6 +16,16 @@ export class MobileNavbarDropdown {
     }
   }
 
+  showConnected(name, component) {
+    if (this._component === name) {
+      this.hide();
+    } else {
+      this._component = name;
+      mount(component, this._element.id, true);
+      $(this._element).addClass('open');
+    }
+  }
+
   hide() {
     $(this._element).removeClass('open');
     this._component = null;

+ 62 - 2
frontend/src/test-setup.js

@@ -32,7 +32,67 @@ global.emptyTestContainers = function() {
   ReactDOM.unmountComponentAtNode(document.getElementById('test-mount'));
 };
 
-// global utility function for store init
+// global utility for mocking context
+global.contextClear = function(misago) {
+  misago._context = {};
+};
+
+global.contextGuest = function(misago) {
+  misago._context = Object.assign({}, misago._context, {
+    isAuthenticated: false,
+
+    user: {
+      id : null,
+
+      acl: {}
+    }
+  });
+};
+
+global.contextAuthenticated = function(misago, overrides) {
+  misago._context = Object.assign({}, misago._context, {
+    isAuthenticated: true,
+
+    user: {
+      id : 42,
+      absolute_url: "/user/loremipsum-1/",
+      avatar_hash: "5c6a04b4",
+      email: "test@example.com",
+      full_title: "Forum team",
+      is_hiding_presence: false,
+      joined_on: "2015-05-09T16:13:33.973603Z",
+      limits_private_thread_invites_to: 0,
+      new_notifications: 0,
+      posts: 30,
+      rank: {
+        id: 1,
+
+        css_class: "team",
+        description: '<p>Lorem ipsum dolor met sit amet elit, si vis pacem para bellum.</p>\n<p>To help see <a href="http://wololo.com/something.php?page=2131">http://wololo.com/something.php?page=2131</a></p>',
+        is_tab: true,
+        name: "Forum team",
+        slug: "forum-team",
+        title: "Team"
+      },
+      short_title: "Team",
+      slug: "loremipsum",
+      subscribe_to_replied_threads: 2,
+      subscribe_to_started_threads: 1,
+      threads: 0,
+      title: "",
+      unread_private_threads: 0,
+      username: "LoremIpsum",
+
+      acl: {}
+    }
+  });
+
+  if (overrides) {
+    Object.assign(misago._context.user, overrides);
+  }
+};
+
+// global utility function for store mocking
 global.initEmptyStore = function(store) {
   store.constructor();
   store.addReducer('test', function(state={}, action=null) { return {}; }, {}); // jshint ignore:line
@@ -93,7 +153,7 @@ global.simulateChange = function(selector, value) {
 global.afterAjax = function(component, callback) {
   window.setTimeout(function() {
     component.forceUpdate(callback);
-  }, 150);
+  }, 200);
 };
 
 global.onElement = function(selector, callback) {

+ 75 - 7
frontend/tests/components/user-menu/guest-menu.js

@@ -1,15 +1,28 @@
 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 { CompactGuestNav } from 'misago/components/user-menu/guest-nav'; // jshint ignore:line
+import { GuestMenu, GuestNav, CompactGuestNav } from 'misago/components/user-menu/guest-nav'; // jshint ignore:line
+import misago from 'misago/index';
 import dropdown from 'misago/services/mobile-navbar-dropdown';
+import modal from 'misago/services/modal';
 import store from 'misago/services/store';
 
-describe("CompactGuestNav", function() {
+describe("GuestMenu", function() {
   beforeEach(function() {
     window.initEmptyStore(store);
     window.initDropdown(dropdown);
+    window.initModal(modal);
+
+    misago._context = {
+      'FORGOTTEN_PASSWORD_URL': '/forgotten-password/'
+    };
+
+    /* jshint ignore:start */
+    ReactDOM.render(
+      <GuestMenu />,
+      document.getElementById('test-mount')
+    );
+    /* jshint ignore:end */
   });
 
   afterEach(function() {
@@ -17,26 +30,81 @@ describe("CompactGuestNav", function() {
   });
 
   it('renders', function() {
+    let element = $('#test-mount .dropdown-menu');
+    assert.ok(element.length, "component renders");
+  });
+
+  it('opens sign in modal on click', function(done) {
+    window.simulateClick('#test-mount .btn-default');
+
+    window.onElement('#modal-mount .modal-sign-in', function() {
+      assert.ok(true, "sign in modal was displayed");
+      done();
+    });
+  });
+});
+
+describe("GuestNav", function() {
+  beforeEach(function() {
+    window.initEmptyStore(store);
+    window.initDropdown(dropdown);
+    window.initModal(modal);
+
+    misago._context = {
+      'FORGOTTEN_PASSWORD_URL': '/forgotten-password/'
+    };
+
     /* jshint ignore:start */
     ReactDOM.render(
-      <CompactGuestNav />,
+      <GuestNav />,
       document.getElementById('test-mount')
     );
     /* jshint ignore:end */
+  });
 
-    let element = $('#test-mount img.user-avatar');
+  afterEach(function() {
+    window.emptyTestContainers();
+  });
+
+  it('renders', function() {
+    let element = $('#test-mount .nav-guest');
     assert.ok(element.length, "component renders");
   });
 
-  it('opens dropdown on click', function() {
+  it('opens sign in modal on click', function(done) {
+    window.simulateClick('#test-mount .btn-default');
+
+    window.onElement('#modal-mount .modal-sign-in', function() {
+      assert.ok(true, "sign in modal was displayed");
+      done();
+    });
+  });
+});
+
+describe("CompactGuestNav", function() {
+  beforeEach(function() {
+    window.initEmptyStore(store);
+    window.initDropdown(dropdown);
+
     /* jshint ignore:start */
     ReactDOM.render(
       <CompactGuestNav />,
       document.getElementById('test-mount')
     );
     /* jshint ignore:end */
+  });
+
+  afterEach(function() {
+    window.emptyTestContainers();
+  });
 
-    ReactTestUtils.Simulate.click($('#test-mount button').get(0));
+  it('renders', function() {
+    let element = $('#test-mount img.user-avatar');
+    assert.ok(element.length, "component renders");
+  });
+
+  it('opens dropdown on click', function() {
+    window.simulateClick('#test-mount button');
 
     let element = $('#dropdown-mount>.dropdown-menu');
     assert.ok(element.length, "component opened dropdown");

+ 104 - 0
frontend/tests/components/user-menu/user-menu.js

@@ -0,0 +1,104 @@
+import assert from 'assert';
+import React from 'react'; // jshint ignore:line
+import ReactDOM from 'react-dom'; // jshint ignore:line
+import { UserMenu, UserNav, CompactUserNav } from 'misago/components/user-menu/user-nav'; // jshint ignore:line
+import misago from 'misago/index';
+import dropdown from 'misago/services/mobile-navbar-dropdown';
+import store from 'misago/services/store';
+
+describe("UserMenu", function() {
+  beforeEach(function() {
+    window.contextClear(misago);
+    window.contextAuthenticated(misago);
+
+    window.initEmptyStore(store);
+    window.initDropdown(dropdown);
+
+    /* jshint ignore:start */
+    ReactDOM.render(
+      <UserMenu user={misago._context.user} />,
+      document.getElementById('test-mount')
+    );
+    /* jshint ignore:end */
+  });
+
+  afterEach(function() {
+    window.emptyTestContainers();
+  });
+
+  it('renders', function() {
+    let element = $('#test-mount .dropdown-menu');
+    assert.ok(element.length, "component renders");
+  });
+});
+
+describe("UserNav", function() {
+  beforeEach(function() {
+    window.contextClear(misago);
+    window.contextAuthenticated(misago);
+
+    window.initEmptyStore(store);
+    window.initDropdown(dropdown);
+
+    /* jshint ignore:start */
+    ReactDOM.render(
+      <UserNav user={misago._context.user} />,
+      document.getElementById('test-mount')
+    );
+    /* jshint ignore:end */
+  });
+
+  afterEach(function() {
+    window.emptyTestContainers();
+  });
+
+  it('renders', function() {
+    let element = $('#test-mount .user-dropdown');
+    assert.ok(element.length, "component renders");
+  });
+});
+
+describe("CompactUserNav", function() {
+  beforeEach(function() {
+    window.contextClear(misago);
+    window.contextAuthenticated(misago);
+
+    store.constructor();
+    store.addReducer('auth', function(state={}, action=null){
+      if (action) {
+        return state;
+      }
+    }, {
+      'isAuthenticated': misago.get('isAuthenticated'),
+      'isAnonymous': !misago.get('isAuthenticated'),
+
+      'user': misago.get('user')
+    });
+    store.init();
+
+    window.initDropdown(dropdown);
+
+    /* jshint ignore:start */
+    ReactDOM.render(
+      <CompactUserNav user={misago._context.user} />,
+      document.getElementById('test-mount')
+    );
+    /* jshint ignore:end */
+  });
+
+  afterEach(function() {
+    window.emptyTestContainers();
+  });
+
+  it('renders', function() {
+    let element = $('#test-mount img.user-avatar');
+    assert.ok(element.length, "component renders");
+  });
+
+  it('opens dropdown on click', function() {
+    window.simulateClick('#test-mount button');
+
+    let element = $('#dropdown-mount>.user-dropdown');
+    assert.ok(element.length, "component opened dropdown");
+  });
+});

+ 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.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]);
+!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"),E=r(k),O=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(){var e=$("#hidden-login-form");e.append('<input type="text" name="username" />'),e.append('<input type="password" name="password" />'),e.find('input[type="hidden"]').val(b["default"].getCsrfToken()),e.find('input[name="redirect_to"]').val(window.location.pathname),e.find('input[name="username"]').val(this.state.username),e.find('input[name="password"]').val(this.state.password),e.submit(),this.setState({isLoading:!0})}},{key:"handleError",value:function(e){400===e.status?"inactive_admin"===e.code?w["default"].info(e.detail):"inactive_user"===e.code?(w["default"].info(e.detail),this.setState({showActivation:!0})):"banned"===e.code?((0,E["default"])(e.detail),g["default"].hide()):w["default"].error(e.detail):403===e.status&&e.ban?((0,E["default"])(e.ban),g["default"].hide()):w["default"].apiError(e)}},{key:"getActivationButton",value:function(){return this.state.showActivation?l["default"].createElement("a",{href:f["default"].get("REQUEST_ACTIVATION_URL"),className:"btn btn-success btn-block"},gettext("Activate account")):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-dialog modal-sm modal-sign-in"},l["default"].createElement("div",{className:"modal-content"},l["default"].createElement("div",{className:"modal-header"},l["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},l["default"].createElement("span",{"aria-hidden":"true"},"×")),l["default"].createElement("h4",{className:"modal-title"},gettext("Sign in"))),l["default"].createElement("form",{onSubmit:this.handleSubmit},l["default"].createElement("div",{className:"modal-body"},l["default"].createElement("div",{className:"form-group"},l["default"].createElement("div",{className:"control-input"},l["default"].createElement("input",{id:"id_username",className:"form-control",type:"text",disabled:this.state.isLoading,placeholder:gettext("Username or e-mail"),onChange:this.bindInput("username"),value:this.state.username}))),l["default"].createElement("div",{className:"form-group"},l["default"].createElement("div",{className:"control-input"},l["default"].createElement("input",{id:"id_password",className:"form-control",type:"password",disabled:this.state.isLoading,placeholder:gettext("Password"),onChange:this.bindInput("password"),value:this.state.password})))),l["default"].createElement("div",{className:"modal-footer"},this.getActivationButton(),l["default"].createElement(p["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Sign in")),l["default"].createElement("a",{href:f["default"].get("FORGOTTEN_PASSWORD_URL"),className:"btn btn-default btn-block"},gettext("Forgot password?"))))))}}]),t}(h["default"]);n["default"]=O},{"../index":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("../avatar"),f=r(c),d=e("../button"),p=r(d),m=e("../sign-in.js"),h=r(m),v=e("../register/root.js"),b=r(v),y=e("../../services/mobile-navbar-dropdown"),g=r(y),_=e("../../services/modal"),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(){w["default"].show(h["default"])}},{key:"showRegisterModal",value:function(){w["default"].show(b["default"])}},{key:"render",value:function(){return l["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},l["default"].createElement("li",{className:"guest-preview"},l["default"].createElement("h4",null,gettext("You are browsing as guest.")),l["default"].createElement("p",null,gettext("Sign in or register to start and participate in discussions.")),l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-xs-6"},l["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.showSignInModal},"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("button",{type:"button",className:"btn navbar-btn btn-default",onClick:this.showSignInModal},"Sign in"),l["default"].createElement(p["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(){g["default"].show(k)}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showGuestMenu},l["default"].createElement(f["default"],{size:"64"}))}}]),t}(l["default"].Component)},{"../../services/mobile-navbar-dropdown":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");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(d.UserNav,{user:this.props.user}):c["default"].createElement(f.GuestNav,null)}}]),t}(c["default"].Component),n.CompactUserMenu=function(e){function t(){return a(this,t),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(d.CompactUserNav,{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)}function u(e){return{user:e.auth.user}}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserNav=n.UserNav=n.UserMenu=void 0,n.selectUserMenu=u;var l=e("react"),c=r(l),f=e("react-redux"),d=e("../avatar"),p=r(d),m=e("../../index"),h=r(m),v=e("../../services/mobile-navbar-dropdown"),b=r(v),y=n.UserMenu=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),s(t,[{key:"logout",value:function(){var e=confirm(gettext("Are you sure you want to sign out?"));e&&$("#hidden-logout-form").submit()}},{key:"render",value:function(){return c["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},c["default"].createElement("li",{className:"dropdown-header"},c["default"].createElement("strong",null,this.props.user.username)),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",null,c["default"].createElement("a",{href:this.props.user.absolute_url},c["default"].createElement("span",{className:"material-icon"},"account_circle"),gettext("See your profile"))),c["default"].createElement("li",null,c["default"].createElement("a",{href:h["default"].get("USERCP_URL")},c["default"].createElement("span",{className:"material-icon"},"done_all"),gettext("Change options"))),c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn-link"},c["default"].createElement("span",{className:"material-icon"},"face"),gettext("Change avatar"))),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",{className:"dropdown-footer"},c["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.logout},gettext("Log out"))))}}]),t}(c["default"].Component);n.UserNav=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),s(t,[{key:"render",value:function(){return c["default"].createElement("ul",{className:"ul nav navbar-nav nav-user"},c["default"].createElement("li",{className:"dropdown"},c["default"].createElement("a",{href:this.props.user.absolute_url,className:"dropdown-toggle","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",role:"button"},c["default"].createElement(p["default"],{user:this.props.user,size:"64"})),c["default"].createElement(y,{user:this.props.user})))}}]),t}(c["default"].Component),n.CompactUserNav=function(e){function t(){return a(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),s(t,[{key:"showUserMenu",value:function(){b["default"].showConnected("user-menu",(0,f.connect)(u)(y))}},{key:"render",value:function(){return c["default"].createElement("button",{type:"button",onClick:this.showUserMenu},c["default"].createElement(p["default"],{user:this.props.user,size:"64"}))}}]),t}(c["default"].Component)},{"../../index":12,"../../services/mobile-navbar-dropdown":29,"../avatar":1,react:"react","react-redux":"react-redux"}],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],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return"NOT_YET"==t.type?{}: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:"showConnected",value:function(e,t){this._component===e?this.hide():(this._component=e,(0,u["default"])(t,this._element.id,!0),$(this._element).addClass("open"))}},{key:"hide",value:function(){$(this._element).removeClass("open"),this._component=null}}]),e}();n["default"]=new s},{"../utils/mount-component":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","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/"}
+{"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","form","append","find","val","getCsrfToken","window","location","pathname","submit","status","info","detail","hide","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","_avatar","_avatar2","_signIn","_signIn2","_root","_root2","_mobileNavbarDropdown","_mobileNavbarDropdown2","show","role","showSignInModal","_GuestMenu","showRegisterModal","_React$Component2","showGuestMenu","../../services/mobile-navbar-dropdown","../../services/modal","../avatar","../button","../register/root.js","../sign-in.js",10,"auth","CompactUserMenu","UserMenu","_guestNav","_userNav","isAuthenticated","UserNav","CompactUserNav","./guest-nav","./user-nav",11,"selectUserMenu","store","_reactRedux","decision","confirm","absolute_url","logout","data-toggle","aria-haspopup","aria-expanded","_React$Component3","showConnected","connect","showUserMenu","../../index","react-redux",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","_mountComponent","../components/snackbar","../utils/mount-component",19,"initialState","../reducers/snackbar",20,21,22,"_tick2","_tick","../reducers/tick",23,"setInterval","dispatch","doTick","TICK_PERIOD",24,"../components/user-menu/root",25,"action",26,"showSnackbar","SHOW_SNACKBAR","messageType","hideSnackbar","HIDE_SNACKBAR","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","_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      var form = $('#hidden-login-form');\n\n      form.append('<input type=\"text\" name=\"username\" />');\n      form.append('<input type=\"password\" name=\"password\" />');\n\n      // fill out form with user credentials and submit it, this will tell\n      // Misago to redirect user back to right page, and will trigger browser's\n      // key ring feature\n      form.find('input[type=\"hidden\"]').val(_ajax2.default.getCsrfToken());\n      form.find('input[name=\"redirect_to\"]').val(window.location.pathname);\n      form.find('input[name=\"username\"]').val(this.state.username);\n      form.find('input[name=\"password\"]').val(this.state.password);\n      form.submit();\n\n      // keep form loading\n      this.setState({\n        'isLoading': true\n      });\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        if (rejection.code === 'inactive_admin') {\n          _snackbar2.default.info(rejection.detail);\n        } else if (rejection.code === 'inactive_user') {\n          _snackbar2.default.info(rejection.detail);\n          this.setState({\n            'showActivation': true\n          });\n        } else if (rejection.code === 'banned') {\n          (0, _bannedPage2.default)(rejection.detail);\n          _modal2.default.hide();\n        } else {\n          _snackbar2.default.error(rejection.detail);\n        }\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n        _modal2.default.hide();\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'getActivationButton',\n    value: function getActivationButton() {\n      if (this.state.showActivation) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: _index2.default.get('REQUEST_ACTIVATION_URL'),\n            className: 'btn btn-success btn-block' },\n          gettext(\"Activate account\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-sm modal-sign-in' },\n        _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 _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\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\nvar _mobileNavbarDropdown = require('../../services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nvar _modal = require('../../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar GuestMenu = exports.GuestMenu = (function (_React$Component) {\n  _inherits(GuestMenu, _React$Component);\n\n  function GuestMenu() {\n    _classCallCheck(this, GuestMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(GuestMenu).apply(this, arguments));\n  }\n\n  _createClass(GuestMenu, [{\n    key: 'showSignInModal',\n    value: function showSignInModal() {\n      _modal2.default.show(_signIn2.default);\n    }\n  }, {\n    key: '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                  onClick: this.showSignInModal },\n                '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          'button',\n          { type: 'button', className: 'btn navbar-btn btn-default',\n            onClick: this.showSignInModal },\n          'Sign in'\n        ),\n        _react2.default.createElement(\n          _button2.default,\n          { type: 'button', 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\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n\n// jshint ignore:line\n\nvar UserMenu = exports.UserMenu = (function (_React$Component) {\n  _inherits(UserMenu, _React$Component);\n\n  function UserMenu() {\n    _classCallCheck(this, UserMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserMenu).apply(this, arguments));\n  }\n\n  _createClass(UserMenu, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.props.isAuthenticated) {\n        return _react2.default.createElement(_userNav.UserNav, { user: this.props.user });\n      } else {\n        return _react2.default.createElement(_guestNav.GuestNav, null);\n      }\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserMenu;\n})(_react2.default.Component);\n\nvar CompactUserMenu = exports.CompactUserMenu = (function (_React$Component2) {\n  _inherits(CompactUserMenu, _React$Component2);\n\n  function CompactUserMenu() {\n    _classCallCheck(this, CompactUserMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactUserMenu).apply(this, arguments));\n  }\n\n  _createClass(CompactUserMenu, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.props.isAuthenticated) {\n        return _react2.default.createElement(_userNav.CompactUserNav, { user: this.props.user });\n      } else {\n        return _react2.default.createElement(_guestNav.CompactGuestNav, null);\n      }\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return CompactUserMenu;\n})(_react2.default.Component);\n\nfunction select(state) {\n  return state.auth;\n}\n\n},{\"./guest-nav\":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});\nexports.CompactUserNav = exports.UserNav = exports.UserMenu = undefined;\nexports.selectUserMenu = selectUserMenu;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = require('react-redux');\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _mobileNavbarDropdown = require('../../services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar UserMenu = exports.UserMenu = (function (_React$Component) {\n  _inherits(UserMenu, _React$Component);\n\n  function UserMenu() {\n    _classCallCheck(this, UserMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserMenu).apply(this, arguments));\n  }\n\n  _createClass(UserMenu, [{\n    key: 'logout',\n    value: function logout() {\n      var decision = confirm(gettext(\"Are you sure you want to sign out?\"));\n      if (decision) {\n        $('#hidden-logout-form').submit();\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu user-dropdown dropdown-menu-right',\n          role: 'menu' },\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown-header' },\n          _react2.default.createElement(\n            'strong',\n            null,\n            this.props.user.username\n          )\n        ),\n        _react2.default.createElement('li', { className: 'divider' }),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'a',\n            { href: this.props.user.absolute_url },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'account_circle'\n            ),\n            gettext(\"See your profile\")\n          )\n        ),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'a',\n            { href: _index2.default.get('USERCP_URL') },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'done_all'\n            ),\n            gettext(\"Change options\")\n          )\n        ),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn-link' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'face'\n            ),\n            gettext(\"Change avatar\")\n          )\n        ),\n        _react2.default.createElement('li', { className: 'divider' }),\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown-footer' },\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-default btn-block',\n              onClick: this.logout },\n            gettext(\"Log out\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserMenu;\n})(_react2.default.Component);\n\nvar UserNav = exports.UserNav = (function (_React$Component2) {\n  _inherits(UserNav, _React$Component2);\n\n  function UserNav() {\n    _classCallCheck(this, UserNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserNav).apply(this, arguments));\n  }\n\n  _createClass(UserNav, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'ul nav navbar-nav nav-user' },\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown' },\n          _react2.default.createElement(\n            'a',\n            { href: this.props.user.absolute_url, className: 'dropdown-toggle',\n              'data-toggle': 'dropdown', 'aria-haspopup': 'true', 'aria-expanded': 'false',\n              role: 'button' },\n            _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '64' })\n          ),\n          _react2.default.createElement(UserMenu, { user: this.props.user })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserNav;\n})(_react2.default.Component);\n\nfunction selectUserMenu(store) {\n  return { user: store.auth.user };\n}\n\nvar CompactUserNav = exports.CompactUserNav = (function (_React$Component3) {\n  _inherits(CompactUserNav, _React$Component3);\n\n  function CompactUserNav() {\n    _classCallCheck(this, CompactUserNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactUserNav).apply(this, arguments));\n  }\n\n  _createClass(CompactUserNav, [{\n    key: 'showUserMenu',\n    value: function showUserMenu() {\n      _mobileNavbarDropdown2.default.showConnected('user-menu', (0, _reactRedux.connect)(selectUserMenu)(UserMenu));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showUserMenu },\n        _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '64' })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return CompactUserNav;\n})(_react2.default.Component);\n\n},{\"../../index\":12,\"../../services/mobile-navbar-dropdown\":29,\"../avatar\":1,\"react\":\"react\",\"react-redux\":\"react-redux\"}],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  if (action.type == 'NOT_YET') {\n    return {};\n  } else {\n    return state;\n  }\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: 'showConnected',\n    value: function showConnected(name, component) {\n      if (this._component === name) {\n        this.hide();\n      } else {\n        this._component = name;\n        (0, _mountComponent2.default)(component, this._element.id, true);\n        $(this._element).addClass('open');\n      }\n    }\n  }, {\n    key: 'hide',\n    value: function hide() {\n      $(this._element).removeClass('open');\n      this._component = null;\n    }\n  }]);\n\n  return MobileNavbarDropdown;\n})();\n\nexports.default = new MobileNavbarDropdown();\n\n},{\"../utils/mount-component\":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/"}